lap README

The project's README from github.com/julyx10/lap. As one markdown file: README.md.

Lap Logo

Lap - Private Local Photo Manager

Open-source desktop photo manager for macOS, Windows, and Linux.

julyx10%2Flap | Trendshift

GitHub release GitHub all releases GitHub stars

English | Deutsch | Español | Français | Italiano | Magyar | Nederlands | Polski | Português | Русский | Українська | 中文简体 | 中文繁體 | 日本語 | 한국어

Lap is an open-source, local-first photo manager for browsing family albums, finding old photos quickly, and managing large personal media libraries offline. It is a privacy-focused alternative to cloud photo services: no forced upload, local AI search, folder-first workflow, and free to use.

Download Lap

Open the latest release page, then download the file that matches your system:

Platform Package Note
macOS (Apple Silicon / Intel) _aarch64.dmg / _x64.dmg Notarized by Apple
Windows 10/11 (x64 / ARM64) _x64_en-US.msi / _arm64_en-US.msi Unsigned — if SmartScreen blocks the download, click Keep anyway
Linux (x64 / ARM64) _amd64.deb / _arm64.deb For Debian-based distros (Ubuntu, Debian, Linux Mint, etc.)
Linux (x64 / ARM64) _amd64.AppImage / _aarch64.AppImage Make the file executable, then double-click to run

macOS with Homebrew

brew tap julyx10/lap
brew install --cask lap

Screenshots

Lap local photo library manager Lap map view Lap photo collage

Why Lap

Features

Metadata, Collections, and Moving Files

Lap is folder-first, but not every piece of information shown in Lap is embedded in the original file. This distinction matters when you also manage the same folders in Finder, Explorer, or another photo app.

What stays with the file

What is stored locally by Lap

The following are Lap library data. They are stored in Lap's local database or library configuration, not written into EXIF, IPTC, or XMP sidecars:

This data does not travel with a file when it is copied, exported, or moved outside Lap, and it is not available automatically to other applications.

Working with files outside Lap

Lap can rescan folders and detect many filesystem changes. But changes made outside Lap—such as renaming, moving, replacing, or copying files—can disrupt organization that is stored only in Lap.

For the most reliable results, rename and move files in Lap whenever you rely on Collections, Tags, Comments, Favorites, Ratings, or culling states. If you also manage files outside Lap, back up Lap's database and configuration together with your photos. You can manage the database location and create a backup in Settings → Storage.

Deleting Lap's database or configuration removes this local organization and index data, but does not delete your original media files.

Uninstall Lap

Lap works directly with your existing photo folders. Uninstalling Lap, or deleting its database and cache files, does not delete your original photos.

The standard uninstall steps remove the application. To remove Lap completely, quit Lap first, uninstall the application, then delete its local database, thumbnail cache, and configuration files using the cleanup command for your platform.

macOS

If you installed Lap with Homebrew:

brew uninstall --cask lap

For a manual installation, quit Lap and move Lap.app from the Applications folder to the Trash.

To remove all Lap database, cache, and configuration files:

rm -rf "$HOME/Library/Application Support/com.julyx10.lap" \
       "$HOME/Library/Caches/com.julyx10.lap" \
       "$HOME/Library/WebKit/com.julyx10.lap"
rm -f "$HOME/Library/Preferences/com.julyx10.lap.plist"

Windows

Open Settings > Apps > Installed apps, find Lap, and select Uninstall.

Then open PowerShell and remove all Lap database, cache, and configuration files:

Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "$env:LOCALAPPDATA\com.julyx10.lap"
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "$env:APPDATA\com.julyx10.lap"

Linux

For DEB installations, uninstall the package:

sudo apt remove lap

For AppImage installations, quit Lap and delete the downloaded .AppImage file.

Then remove all Lap database, cache, and configuration files:

rm -rf "$HOME/.local/share/com.julyx10.lap" \
       "$HOME/.cache/com.julyx10.lap" \
       "$HOME/.config/com.julyx10.lap"

If you selected a custom database storage directory in Lap settings, delete that directory separately after confirming that it contains only Lap database files.

Build from Source

Requirements: Node.js 20+, pnpm, Rust stable.

# macOS system deps
xcode-select --install
brew install nasm pkg-config autoconf automake libtool cmake

# Linux system deps
# sudo apt install libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev \
#   patchelf nasm clang pkg-config autoconf automake libtool cmake

# Clone and build
git clone --recursive https://github.com/julyx10/lap.git
cd lap
git submodule update --init --recursive
cargo install tauri-cli --version "^2.0.0" --locked
./scripts/download_models.sh            # Windows: .\scripts\download_models.ps1
./scripts/download_ffmpeg_sidecar.sh    # Windows: .\scripts\download_ffmpeg_sidecar.ps1
cd src-vite && pnpm install && cd ..
cargo tauri dev

Distribution packages can link against the system libheif (1.17 or newer) instead of the bundled libheif and libde265. Set LAP_SYSTEM_LIBHEIF=1 for the build. The submodules third_party/libheif and third_party/libde265 are then not needed. HEVC decoding depends on the codec plugins of the system libheif.

Supported Formats

Lap supports 60+ photo, RAW, and video formats.

Type Formats
Images JPG/JPEG/JFIF, PNG, GIF, BMP, TIFF, WebP, HEIC/HEIF/HIF, AVIF, JXL, PSD, EXR, HDR/RGBE, TGA, JPEG 2000 (JP2/J2K/J2C/JPC/JPF/JPX), DDS, DPX, QOI
RAW photos CR2, CR3, CRW, NEF, NRW, ARW, SRF, SR2, RAF, RW2, ORF, PEF, DNG, SRW, RWL, MRW, 3FR, MOS, DCR, KDC, ERF, MEF, RAW, MDC
Videos MP4, MOV, M4V, MKV, AVI, FLV, TS/M2TS, WMV, WebM, 3GP/3G2, F4V, VOB, MPG/MPEG, ASF, DIVX and more. H.264 playback is supported on all platforms, with automatic compatibility processing when native playback is unavailable. HEVC/H.265 and VP9 are natively supported on macOS.

Linux Video Playback

Lap uses system GStreamer plugins for video playback, including in the AppImage. If videos fail to play on Ubuntu, Debian, or Linux Mint, install:

sudo apt install gstreamer1.0-libav gstreamer1.0-plugins-good

Architecture

Key Libraries

Library Purpose
LibRaw RAW image decoding and thumbnail extraction
libheif HEIC/HEIF/HIF image decoding and preview generation
libjpeg-turbo Fast JPEG decoding and thumbnail generation
FFmpeg Video processing and thumbnail generation
Video.js Cross-platform video playback UI
ONNX Runtime Local AI model inference engine
CLIP Image-text similarity search
InsightFace Face detection and recognition
Leaflet Interactive map for geotagged photos
daisyUI UI component library

License

GPL-3.0-or-later. See LICENSE.

Privacy

Read the Privacy Policy for details on data handling and optional online services.

lap (julyx10/lap)

Searching Database…

3.9K ·GitHub
这是什么?Lap 是一款面向 macOS、Windows 和 Linux 的开源、本地优先的照片管理器,让你完全离线地浏览家庭相册、快速找到老照片,并整理庞大的个人媒体库。
怎么安装 Lap?打开最新的 release 页面,下载与系统匹配的安装包:macOS 用经过公证的 .dmg,Windows 10/11 用 .msi,Linux 用 .deb/.AppImage(macOS 上也提供 Homebrew)。
安装上有什么坑需要知道吗?Windows 版本未签名,Windows SmartScreen 可能会拦截,你需要点击「仍然保留」;此外,标签、相册和评分等整理信息只保存在 Lap 的本地数据库中,因此在应用之外重命名或移动文件可能会破坏这些整理结果。
AI 功能需要联网吗?不需要,AI 搜索、相似度匹配、智能标签和人脸检测功能都使用 ONNX Runtime、CLIP 和 InsightFace 在本地运行,无需任何云端处理。
Lap 会把我的照片传到云端吗?不会,Lap 的设计就是让照片留在你自己的磁盘上,不强制要求云账号、上传或生态锁定;一份可选的隐私政策涵盖各项自愿加入的在线服务。
Lap 和 Google Photos、iCloud 这类云服务有什么不同?Lap 坚持本地优先、不强制上传,AI 搜索和人脸识别在设备上运行而非云端,并且免费开源,而不是订阅制。
可以用自然语言搜索照片吗?可以,Lap 内置本地 AI 搜索,支持文本提示、视觉相似度、主题和人脸聚类,还可选支持超过 50 种语言的多语言搜索。
Lap 支持 RAW 照片文件吗?支持,它支持 60 多种照片、RAW 和视频格式,包括 CR2、NEF、ARW 和 DNG,并提供可配置的 RAW 缩略图和自动的 RAW+JPEG/HEIC 配对。
重复照片清理是怎么工作的?Lap 可以查找并分组重复照片,显示可释放空间的摘要,并让你跨检测到的各组批量删除重复项。
Creator
julyx10
Size
75.5 MB
Stars
3.9K
Age
2y
Commits · 90 Days