For the ones who shoot in bursts

Every burst has exactly one keeper.

photo·dedupe finds your near-duplicate shots and judges them the way you would — by focus, not just file size — then sets the rest aside. Nothing leaves your machine.

100% offline, no account quarantined, you stay in control one-time $14.99, no subscription
Contact sheet — one burst, five frames
_014
_015
_016
_017
_018
_016 wins on sharpness — the rest move to quarantine

The process

Three judgments, made in order.

No machine-learning black box — a fixed, inspectable process you can tune with three numbers. Every step narrows the pool; nothing is ever thrown away without passing through all three.

01

Cluster by time

Shots fired within moments of each other are grouped into a burst — a gap you control with -gap, not a guess baked into the code. Being close in time is only a candidate pool, never proof of duplication on its own.

02

Compare by eye

A perceptual hash compares what's actually in the frame, not just the file's bytes — so a recompressed copy or a resized export doesn't slip past as "different." Threshold is yours to tighten with -similarity.

03

Judge by focus

Sharpness — the variance of the image's Laplacian, if you're curious — decides the keeper. A soft, blurry frame is disqualified outright, even if it otherwise looks fine. Among what's left, resolution and file size break ties.


On the light table

Built like a darkroom tool, not a dashboard.

FRAME 01

Nothing leaves your machine

No cloud, no account, no network call of any kind. Your library is scanned where it lives.

FRAME 02

Quarantined — you decide

Losers move to a dedupe-quarantine folder next to your photos. The app never deletes anything; review it, restore it, or clear it out yourself, whenever you're ready.

FRAME 03

You have the final say

Review every group before anything moves. Overrule the automatic pick with one click if it judged wrong.

FRAME 04

Reads what your camera shoots

JPEG, PNG, and HEIC/HEIF — decoded natively, no plugin hunting.

FRAME 05

Built to be tuned

Time gap, similarity threshold, sharpness margin — three sliders instead of one opaque "clean up" button.


Spec sheet

How it sits next to the alternatives.

Feature photo·dedupe Google Photos Mac Duplicate Photo Cleaner Gemini Photos
Runs fully offline yes no yes no
One-time purchase yes no yes no
Manual review before moving files yes no yes no
Judges by sharpness, not just hash yes unclear unclear unclear
Cross-platform (Mac / Win / Linux) yes yes Mac only mobile only
Price $14.99 once $120/yr storage plan $19.99 once $4.99/mo

Get the build

One license. Every platform.

photo·dedupe is a native app for each OS — not a shared web wrapper. macOS, Windows, and Linux builds are all available now, from the same purchase.

macOS Available

Apple Silicon & Intel, packaged as a native .app.

Get it →
Windows Available

Native .exe, built on the same Go + Wails core.

Get it →
Linux Available

Native binary, built on the same Go + Wails core.

Get it →

First launch: since photo·dedupe isn't notarized/code-signed yet, your OS will flag it the first time. On macOS: right-click the app → Open → Open (instead of double-clicking). On Windows: click More info → Run anyway on the SmartScreen prompt. This is normal for independently-distributed software, not a sign anything's wrong with the download.


Pricing

Pay once. Own it. No subscription, ever.

Individual

photo·dedupe

One machine, every scan you'll ever run.

$14.99USD, once
  • Unlimited scans
  • macOS, Windows & Linux builds included
  • Free updates
  • 100% offline
Buy now

Stop reviewing bursts by hand.

Point it at a folder, let it judge by focus, keep the frame that earned it. Everything else waits in quarantine until you say otherwise.

Get photo·dedupe — $14.99