Review thousands of groups without thousands of clicks
Every group lands in a native Mac table you can sort by any column. Shift-click ranges, select everything Sift marked High Confidence, and clear it with one keystroke. Double-click a row to compare.

Side by side, with the reasons spelled out
Each card shows the file's format, size, sharpness and capture time, and why Sift chose it. Use the arrow keys to step through, K to keep, X to remove, or ask Claude for a second opinion on a hard group.


Rules are applied in this order. RAW always wins: its weight outranks resolution, sharpness and exposure combined, and a RAW is never removed in favor of its JPEG.
- Protected folders
- Your preferred folders
- RAW over TIFF over HEIC over JPEG
- Resolution
- Sharpness
- An original name rather than "copy"
- The oldest file
Clean a whole folder pattern at once
Duplicates are grouped by the folders they span, so you can make one decision for all of them, like "keep Photography, move the OneDrive copies".


What it finds
A matching name is never enough on its own. The pixels have to match too, and exact copies are compared byte for byte before anything moves.
Exact copies
Identical bytes, even after a rename or a move.
Same shot
Same camera, same instant to the sub-second: RAW+JPEG, CR2 to DNG, exports.
Filename families
IMG_1234 copy, IMG_1234(1), IMG_1234_ARW.dng.
Look-alikes
Bursts and near-identical frames, and re-encoded videos.
Library health
Blurry shots, wrong extensions, unreadable files.
Fast because it's built for Apple silicon
One worker per performance core, a cache that never re-reads an unchanged file, and the Neural Engine for the hard comparisons.
| Stage | How |
|---|---|
| Previews | ImageIO reads the preview embedded in RAW files and uses the hardware JPEG and HEVC decoders. |
| Content hash | SHA-256 over sampled chunks, on the CPU's crypto extensions. |
| Perceptual hashes | DCT pHash through Accelerate, plus mirrored pHash, dHash and a pixel correlation. |
| Similarity | Apple Vision feature prints on the Neural Engine. |
| Cache | SQLite, so unchanged files are never read twice. |