v0.6.0Native design · photo recovery · reliability →

Tens of thousands
of photos. One fast app.

Local · NAS · Apple Photos in one fast, native app.
Browse comfortably. Pick up where you left off.

Download

macOS 14+ · Apple Silicon · Native · Open Source (MIT)

Lumen grid — large photo library

New in 0.6.0

Feel at home.
Keep your work recoverable.

Familiar macOS controls

A native toolbar, persistent inspector, and quieter selection. Keep window controls accessible and switch between Fit and Actual Pixels.

Recovery that survives a restart

Restore files and their organization from Recently Deleted. Metadata backups and save retries help protect your work.

Continue your review

Review status, Hold, and session resume. Organize local folders, NAS volumes, and Apple Photos in one window.

Features

Everything you need to view, find,
organize, and refine

Local · NAS · Apple Photos in one sidebar

All your scattered photos in one place. iCloud-only photos download on demand; GPS photos cluster on a map by zoom level.

  • Local folders · NAS · Apple Photos (iCloud) · iCloud Drive
  • Map pin clustering — zoom in/out to expand or collapse thousands of pins
  • Live folder watching (FSEvents) · incremental cache · on-demand download
Lumen map — clustering + Apple Photos integration

Immersive viewer · Space-key quick cull

Go full-screen and stay there. The fastest culling flow for photographers:

  • Space = favorite + advance — cull thousands of shots without lifting a hand
  • Keyboard culling: star ratings 1–5 · favorite (F) · reject (X) — works in grid and viewer. Hide rejected photos to see only the keepers.
  • Thumbnail strip · EXIF overlay · 2-up compare · slideshow · zoom & pan
Lumen viewer — Space-key quick cull
✂️

Lightweight non-destructive editing

Crop (free or locked ratio) · rotate / flip · straighten · resize / square canvas (letterbox fill). Large edit canvas with zoom and precision crop, output-size preview. Saves a new file by default; overwrite is opt-in.

🧩

Merge & watermark

Combine multiple photos horizontally, vertically, or in a grid (drag to reorder, set rows). Text or logo watermarks (position · color · opacity) — in the editor, merge tool, and batch export.

🚀

Batch processing

Resize, apply canvas rules, and stamp watermarks across many photos at once and export to a folder. Originals stay untouched.

🏷️

Non-destructive organization

Albums · tags · star ratings · color labels · reject flag · smart collections (favorites, recent, today, duplicates). Originals never modified.

Recover deleted files

Files move to .LumenTrash on the same volume and appear in Recently Deleted. No automatic expiry; reconnect the source volume to recover after a restart.

🔍

Search & filter

Search by filename, tag, or camera model. Filter by star rating, label, location, camera (e.g. SONY), and hide-rejected toggle.

📤

Share & export

System share sheet, export original / resized / zip, bulk rename, set as desktop wallpaper.

Performance

Designed for large libraries

Cached lists and background work support large libraries. The historical v0.5.3 measurements below are not guarantees for this release or every storage device.

Measured on the real library — 66,849 photos · 632 folders · external USB storage · Apple Silicon · v0.5.3. Not synthetic benchmarks: numbers come from an in-app instrumentation probe.

TestResult
App launch → photo list ready~0.47 s (no loading screen — the grid is just there)
Folder open — all 632 folders sweptavg 0.6 ms · p95 1.1 ms · max 1.3 ms
Select all (⌘A, 66,849 photos)~20 ms
Search — filter+sort 66.8k photosmain-thread blocking: 0 (processed in background)
Thumbnail size / window resizeNo stalls (GPU scaling)
Memory (66.8k library, idle)~394 MB · returns within seconds after scroll bursts (bounded by cache caps)
CPUIdle 0.0%

Methodology: in-app instrumentation probe (full folder sweep, main-thread cost timing) + process sampling, as of v0.5.3. The process is documented in the release notes.

Memoized lists · folder index · debounced navigation · background thumbnail warming · lazy EXIF indexing · progressive image loading

Reliability

Visible failures. Practical recovery.

Explicit recovery paths

A journal is saved before deletion. Restore never overwrites a conflicting destination. Automatic metadata backups retain 14 copies.

Isolated image failures

A separate image decoder supports deadlines and cancellation. Retry failed images and inspect interrupted jobs in the activity history.

459 automated tests

Regression coverage includes recovery, metadata conflicts, permissions, and job state. Live NAS disconnects and macOS 14 hardware still need separate coverage.

Privacy

Photo organization, centered on your Mac

No tracking

No analytics, telemetry, or ads. Lumen does not automatically upload photos to a Lumen server.

Local metadata

Ratings, tags, and albums live in a SQLite database on your Mac. You control export and restore.

Connections with a purpose

GitHub update checks, Apple map services, and NAS or iCloud content you open can use the network. Sharing is initiated by you.

Diagnostics are your choice

Crash records stay local and are not sent automatically. Review a report before choosing to share it.

Download

Get started in seconds

Install via Homebrew · macOS 14 (Sonoma) or later · Apple Silicon · Free

brew tap rescenedev/tap brew trust --cask rescenedev/tap/lumen-photos brew install --cask lumen-photos
✓ Developer ID signed + notarized by Apple (since v0.5.1) — no workarounds, it launches right after download.
Also available: zip from the latest release · Build from source: git clone the repo, then run ./Scripts/make_app.sh — no Xcode needed, just Command Line Tools.