Repository navigation
Local Lens v3.2.0
Keep one copy of every photo.
A memory card, a phone backup, a folder of exports: most photo collections end up holding
the same picture three times, under three names, in three sizes. v3.2.0 finds those
copies, keeps the best one, and stops new ones getting in. It all runs on your machine,
like everything else in Local Lens, and it's free for everyone.
Duplicates tab
Pick a folder and Local Lens finds copies of the same photo, even when they've been
resized, re-exported, renamed or rotated. For each group it picks the copy worth
keeping (the RAW original, then the most pixels, then the least compression) and you
check its choice before anything moves. Extras go to the Trash, so nothing is lost for
good.
Scan · review one group at a time or all at once · the best copy is pre-selected
Choose how strict the match is: Exact copies, Near-identical (the default,
which also catches resized and re-exported copies), or Similar shots for bursts.
Compare a card with your library
Set Compare with folder and Local Lens checks a memory card against the library
you already have. Photos you already own are shown next to their library copy, which
is locked so it can never be removed. Clear them off the card in one click, then import
only the new photos, sorted by date, place or people, or as they are.
3 of 12 already in the library · the 9 new ones go straight into a sort
Skip duplicates while sorting
A new switch under Duplicates in Standard and Hybrid sorts leaves out photos that
are already in the destination, and extra copies inside the source. It is off unless you
turn it on for that sort. Skipped photos are never touched. After a Move, Local Lens
tells you how many it skipped and asks what to do with them: review them, move them to
the Trash, or leave them where they are.
5 photos moved, 7 duplicates skipped and left on the card
Replies to your community posts
Open the community forum from Local Lens's
Community button and post there, and replies come back to the app: in the bell, as a
count on the app icon, and as a system notification when Local Lens is in the
background. There's no account. The app and the forum tab share a random key that the
forum stores only as a hash.
A short tour of what's new
After you update, Local Lens shows this release's new features once, right where they
live in the app. They stay in the tutorial menu afterwards, marked New.
Also in this release
- Errors you can act on: sorting problems open a message that says how to fix them, and
a drive that can't be changed (such as a Windows drive on a Mac) is caught before a
Move starts instead of after. - Repeat duplicate scans are much faster. Photo fingerprints stay on this device, and
Erase photo index in the privacy panel clears them. - Each Browse button remembers its own folder, and hovering a folder shows its full path.
The full list is in the release notes below.
Upgrading
Existing users get the in-app update notification as usual, or can download the
installer below. Nothing to migrate: your presets, enrolled faces and settings carry
over.
Release notes
Added
- Duplicates tab. Finds copies of the same photo, even resized, re-exported or rotated ones. Local Lens picks the best copy; you check it and send the rest to the Trash. Free for everyone.
- Compare with another folder. Check a memory card against your library, clear off the copies you already have, and import only the new photos.
- Skip duplicates when sorting. An optional switch leaves out photos already in the destination and extra copies in the source. Skipped photos are never touched; after a Move you decide what happens to them.
- Replies to your community posts. A reply shows up in the bell, on the app icon, and as a system alert. No account needed.
- A tour of what's new. After an update, Local Lens shows the new features once. They stay in the tutorial menu, marked New.
Changed
- Repeat duplicate scans are much faster. Photo fingerprints stay on this device; "Erase photo index" in the privacy panel clears them.
- The Community button opens what's new for you, and the bell only shows what still needs you.
- Each Browse button remembers its own folder, hovering a folder shows its full path, and nested folders start collapsed.
- The Claude agent keeps the best copy when it cleans up duplicates.
- The tutorial spotlight glides between steps, and its cards always fit the window.
Fixed
- Moving photos off a drive that can't be changed (such as a Windows drive on a Mac) now stops with a clear message, instead of reporting a move that didn't happen.
- Moving new photos to another drive no longer risks deleting files that weren't sorted.
- Sorting problems open a message that says how to fix them. When face recognition, HEIC or RAW support can't start, the log says why and what to do.
- Abort now works while importing photos unsorted.
- The setup screen no longer leaves an empty gap beside the folder list.
Installation
macOS via Homebrew (Recommended)
brew install ashesbloom/locallens/local-lens
Homebrew automatically handles Gatekeeper - no extra steps needed!
Windows
- Download the .msi (enterprise) or .exe (individual) installer
- Run the installer
- Launch Local Lens from the Start Menu
macOS Manual Install (DMG)
- Download the DMG file from this release
- Open the DMG and drag Local Lens to Applications
- Fix Gatekeeper block (choose one):
- Download and double-click Fix_Local_Lens.command
- If blocked: run
bash ~/Downloads/Fix_Local_Lens.command - Right-click the app, Open, click Open in the dialog
- Terminal: xattr -cr "/Applications/Local Lens.app"
macOS Security Note
Local Lens is not notarized with Apple (requires $99/year developer fee).
macOS may show a damaged or unidentified developer warning.
This is normal for open-source apps.
The Fix_Local_Lens.command script automatically removes quarantine,
applies an ad-hoc signature, and sets permissions.
Security and Verification
- Source Code: Available at this tag
- Build Process: See Actions tab for build logs
- Checksums: SHA256 checksums provided for verification




