Lap: An Offline AI Manager for 100k+ Local Photos
An offline desktop photo manager for large local libraries, keeping AI and indexes on-device instead of locking files into the cloud.
GitHub julyx10/lap Updated 2026-09-25 Branch main Stars 2.9K Forks 172
Vue Rust Tauri SQLite Local Photo Management Offline AI Search macOS/Windows/Linux

🧭 Decision Guide

Try it if you

  • You need to browse 100k+ files while using local AI search, similarity search, and face features.
    README sections Why Lap and Features: it targets 100k+ files and runs Local AI search on the machine.
  • Your photos are already organized in folders and you do not want to import them into a closed database.
    README section Why Lap: No library lock-in; section Features: Folder-first workflow.
  • You use a macOS, Windows 10/11, or Debian-based Linux desktop.
    README section Download Lap: packages are listed for macOS, Windows 10/11, and Linux.
  • You need to handle RAW, JPEG/HEIC, Live Photos, and videos together.
    README sections Features and Supported Formats: it supports RAW + JPEG/HEIC pairs, Apple Live Photos, and 60+ formats.

Skip it if you

  • You require tags, ratings, and Smart Albums to travel with files into other applications.
    README section Metadata, Collections, and Moving Files: this data is stored in Lap's local database, not EXIF, IPTC, or XMP.
  • You must rely on a cloud photo service or remote photo access.
    README section Why Lap: Lap emphasizes no forced upload, offline use, and local AI; the material does not provide cloud synchronization or remote access.
  • You need video playback on Linux but cannot install GStreamer plugins.
    README section Linux Video Playback: Ubuntu, Debian, and Linux Mint may require gstreamer1.0-libav and gstreamer1.0-plugins-good.
  • Your Windows environment cannot accept an unsigned MSI installer.
    README section Download Lap: the Windows package is marked Unsigned and may be blocked by SmartScreen.

Requirements

  • For packaged releases: macOS provides _aarch64.dmg or _x64.dmg; Windows supports Windows 10/11 x64 or ARM64; Linux provides Debian packages and AppImage.
  • Source builds require Node.js 20+, pnpm, and Rust stable.
  • Linux video playback requires the README-listed GStreamer plugins: gstreamer1.0-libav and gstreamer1.0-plugins-good.
  • Source builds also download models and the FFmpeg sidecar with ./scripts/download_models.sh and ./scripts/download_ffmpeg_sidecar.sh.

First step (verbatim from README)

brew tap julyx10/lap

Watch out

  • Renaming, moving, or replacing files externally in Finder or Explorer can disrupt Collections and Ratings.
    README section Working with files outside Lap: external file changes can interfere with data stored only in Lap.
  • Uninstalling the application does not delete photos, but deleting the database, cache, and configuration removes local organization data.
    README sections Uninstall Lap and Metadata: original media is not deleted, but removing the database and configuration removes organization and index data.
  • Native HEVC/H.265 and VP9 support is stated for macOS; other platforms may require compatibility processing.
    README section Supported Formats: H.264 is supported on all platforms, while native HEVC/H.265 and VP9 support is specified for macOS.
  • Windows SmartScreen may block the unsigned MSI, requiring the Keep anyway action.
    README section Download Lap: the Windows installer is unsigned and includes the Keep anyway instruction.

Not stated in the README

  • The README does not specify CPU, memory, disk, or GPU requirements for a 100k+ file library.
  • The README does not identify the local AI models, model sizes, or initial indexing time.
  • The README provides no benchmarks for scanning, searching, thumbnail generation, or face clustering across platforms.
  • The README does not describe automated database backup, recovery procedures, or the default database path.
  • The README does not explain which feature changes correspond to 5 releases, 9 contributors, and the latest 10 commits.

💡 Deep Analysis

6
No I move photos among Lap, Finder/Explorer, and other photo applications, and I need tags, comments, favorites, ratings, and Smart Album rules written into EXIF, IPTC, or XMP. Is Lap suitable as my cross-application master database?
For: A photography workflow user who needs to continue working in Lightroom, Finder, Explorer, or another photo application and expects tags and ratings to travel with files

No. Lap is not a good master database for cross-application metadata because its organization data normally belongs to Lap’s local database rather than to the photo files.

  • The README states that Collections, Tags, Comments, Favorites, Ratings, Culling states, Smart Albums, AI search data, and face data are stored in the local database or library configuration.
  • This information is not written into EXIF, IPTC, or XMP sidecars, and it does not automatically travel with a file when the file is copied, exported, or moved outside Lap.
  • The folder-first design preserves control of the original paths and folders, but it does not make Lap’s organization metadata portable across applications.
  • If other software must read your tags and ratings, Lap’s stated model conflicts with that requirement. The supplied README also does not document built-in EXIF/IPTC/XMP write-back.
  • Metadata, Collections, and Moving Files: “not written into EXIF, IPTC, or XMP sidecars”
  • Metadata, Collections, and Moving Files: Collections, Tags, Comments, Favorites, Ratings, and Smart Albums are stored locally
  • Metadata, Collections, and Moving Files: “This data does not travel with a file”
  • Why Lap: “No library lock-in” describes folder-first access, not portable metadata
Not stated in the README:The README does not describe an official workflow for exporting Lap metadata in bulk through an external tool.;It does not state whether database backups can fully restore organization data across operating systems.
Yes I have 100k+ local photo and video files and want offline search on macOS, Windows, or Linux without uploading them or importing my existing folders into a cloud library. Is Lap suitable?
For: A family-photo user managing 100k+ local files who prioritizes privacy and does not want a cloud account

Yes, because Lap is explicitly designed for large local libraries and offline use rather than cloud synchronization.

  • The README states “Local-first by design”: photos remain on your own disk, with no required cloud account or upload.
  • “Built for large collections” explicitly targets libraries with 100k+ files. Browsing and search include dates, folders, locations, cameras, lenses, tags, faces, and local AI search.
  • It supports macOS, Windows, and Linux, and its folder-first workflow works with existing directories instead of forcing import into a closed media library.
  • However, AI data, face data, thumbnails, tags, and ratings are stored in Lap’s local database. That supports offline privacy, but those organization details will not automatically synchronize between machines.
  • Why Lap: “Local-first by design”, “Built for large collections”, and “optimized ... across libraries with 100k+ files”
  • Why Lap: “no required cloud account or upload”
  • Download Lap: macOS, Windows 10/11, and Linux packages
  • Metadata, Collections, and Moving Files: AI search data, face data, and thumbnails are stored locally
Not stated in the README:The README does not specify first-scan time for 100k+ files across different CPU, memory, and storage configurations.;It does not describe database merging or synchronization of organization data across multiple devices.
Yes I maintain a Vue/Vite frontend and already have Node.js 20+, pnpm, and Rust stable. I want to run Lap from source on macOS or Linux instead of downloading a release. Are the build requirements clear?
For: A Vue/Vite engineer building the desktop application from source with Node.js 20+, pnpm, and Rust stable available

Yes. The README provides a concrete source-build path, and the stack matches your Vue/Vite and Rust experience.

  • Architecture identifies Tauri + Rust for the core, Vue + Vite + Tailwind CSS for the frontend, and SQLite for data.
  • Build from Source requires Node.js 20+, pnpm, and Rust stable, matching the tools you already have.
  • It also lists macOS command-line tools and Homebrew dependencies, plus Linux WebKitGTK and related system packages. The build process includes downloading the AI models and the FFmpeg sidecar.
  • The command sequence is actionable. The model and FFmpeg download scripts differ between Unix-like systems and Windows, but the macOS/Linux path is stated directly and is less ambiguous for your target platforms.
  • Architecture: “Core: Tauri + Rust”, “Frontend: Vue + Vite + Tailwind CSS”, and “Data: SQLite”
  • Build from Source: “Requirements: Node.js 20+, pnpm, Rust stable”
  • Build from Source: macOS system dependencies, Linux system dependencies, and model/FFmpeg sidecar download commands
git clone --recursive https://github.com/julyx10/lap.git
Not stated in the README:The README does not specify minimum disk space, memory, or GPU requirements for source builds.;It does not state the exact relationship between the current source branch and release v0.3.2.
Yes I manage CR3, NEF, ARW, JPEG/HEIC, Apple Live Photos, and videos, and I need RAW pairs and related files to stay linked while preserving my original folders without duplicating or rearranging files. Is Lap suitable?
For: A photographer using CR3, NEF, ARW, JPEG/HEIC, Apple Live Photos, and videos who wants to preserve the existing folder structure

Yes, especially if you need mixed-media browsing without giving up control of your folders.

  • The README’s Supported Formats section lists RAW formats such as CR3, NEF, and ARW, plus HEIC/HEIF, MP4, MOV, and more than 60 photo, RAW, and video formats overall.
  • The Features section explicitly says “RAW + JPEG/HEIC pairs displayed as one item” and says linked files are kept together during file operations.
  • Apple Live Photos and Google Motion Photos support motion playback and a unified Smart Album filter.
  • The folder-first workflow supports multiple libraries, drag-and-drop, copy-paste import, filesystem sync, and day/month/year import layouts without requiring a proprietary media-library import. Actual RAW rendering and video decoding behavior may still vary by platform.
  • Supported Formats: “Lap supports 60+ photo, RAW, and video formats”, including CR3, NEF, ARW, HEIC/HEIF, MP4, and MOV
  • Features: “RAW + JPEG/HEIC pairs displayed as one item, with linked files kept together during file operations”
  • Features: “Apple Live Photos and Google Motion Photos”
  • Features: “Folder-first workflow” and “Date-organized import”
Not stated in the README:The README does not specify preview, full decoding, or editing capability for every RAW format.;It does not define compatibility boundaries for camera-specific Live Photo or Motion Photo variants.
It depends I use a Windows 10/11 x64 or ARM64 device and want a free, open-source, subscription-free local photo manager. I also need clear boundaries around installation blocking and data after uninstall. Is Lap suitable?
For: A home user deploying a free open-source photo manager on Windows 10/11 x64 or ARM64 while keeping organization data local

It depends. The features and license fit your requirements, but Windows unsigned-install behavior and local database ownership add deployment constraints.

  • Download Lap provides MSI packages for Windows 10/11 on both x64 and ARM64. Project data identifies the license as GNU GPLv3, and the latest release is v0.3.2.
  • The README explicitly warns that the Windows installer is unsigned and SmartScreen may block it; the user may need to select “Keep anyway”. That is unsuitable for tightly controlled devices that cannot bypass such prompts.
  • Uninstalling the application, or deleting its database and cache, does not delete original photos. However, it removes local organization data such as tags, ratings, favorites, AI data, and thumbnails.
  • It therefore fits personal Windows machines where local database backup is acceptable, but not environments requiring signed installers, centralized deployment, or automatic cross-device synchronization.
  • Download Lap: Windows 10/11 x64/ARM64 MSI; “Unsigned — if SmartScreen blocks the download, click Keep anyway”
  • Why Lap: “Open source and free”
  • Project data: GNU General Public License v3.0; latest release v0.3.2
  • Uninstall Lap: uninstalling or deleting the database and cache does not delete original photos
  • Metadata, Collections, and Moving Files: organization data is stored in the local database
Not stated in the README:The README does not specify silent-install parameters for household or enterprise deployment.;It does not state whether AI models, video processing, and thumbnail generation are identical on Windows ARM64 and x64.;It does not document the exact backup location, format, or automatic-backup policy for the database.
It depends I manage H.264, HEVC/H.265, and VP9 videos on x64 Ubuntu, Debian, or Linux Mint and want to use the AppImage or DEB directly. Is Lap a safe fit for my environment?
For: An x64 user on Ubuntu, Debian, or Linux Mint who needs to browse H.264, HEVC/H.265, and VP9 videos

It depends: Linux installation is clearly supported, but video playback still depends on distribution-specific capabilities that the supplied README does not fully define.

  • Download Lap provides Linux x64 _amd64.deb and _amd64.AppImage packages, with Debian, Ubuntu, and Linux Mint listed as Debian-based targets.
  • Supported Formats states that H.264 playback works on all platforms and that compatibility processing is used when native playback is unavailable.
  • The same section explicitly describes native HEVC/H.265 and VP9 support only on macOS; it does not make the same promise for Linux.
  • The Linux build dependency example lists libraries such as libwebkit2gtk-4.1-dev, but the supplied README does not identify the exact GStreamer plugins required for Linux playback. Therefore, it cannot guarantee smooth playback for all three codecs on your distribution.
  • Download Lap: Linux x64 `_amd64.deb` / `_amd64.AppImage`, targeting Ubuntu, Debian, and Linux Mint
  • Supported Formats: “H.264 playback is supported on all platforms”
  • Supported Formats: “HEVC/H.265 and VP9 are natively supported on macOS”
  • Build from Source: Linux system dependency example
Not stated in the README:The README does not specify which GStreamer plugins are required on each Linux distribution.;It does not define the actual hardware-decoding or compatibility-processing coverage for HEVC/H.265 and VP9 on Linux.

✨ Highlights

  • Targets smooth browsing across 100k+ file libraries
  • Local AI supports search, similarity, and face features
  • Folder-first workflow avoids importing into a closed database
  • Supports 60+ photo, RAW, and video formats

🔧 Engineering

  • Vue, Vite, and Tauri provide the cross-platform desktop interface
  • SQLite stores Smart Albums, tags, and AI index data
  • Supports map clustering, RAW pairing, and four-pane comparison
  • Provides packages for macOS, Windows 10/11, and Linux

⚠️ Risks

  • Tags and ratings stay in the local database and do not travel with files
  • Moving files outside Lap can disrupt Lap-only organization data
  • The Windows package is unsigned and may trigger SmartScreen
  • Linux video playback depends on GStreamer plugins
  • Deleting the database removes indexes but not original photos

👥 For who?

  • Individuals managing 100k+ local files without cloud uploads
  • Developers interested in a Vue, Rust, and SQLite desktop stack
  • Multi-platform users working with RAW, HEIC, and Live Photos