A folder of images always ends up with repeats in it. A screenshot saved twice by accident, a reference exported at two different sizes, the same photo downloaded from two different tabs. Finding the exact copies is a solved problem: macOS can already tell you, in two different ways, when two files are genuinely the same. Finding the near copies, the version that has been resized or re-saved somewhere along the way, is a different job entirely, and neither tool below can do it.
Here is what actually works, starting with what is already on your Mac for free.
Does Photos already find your duplicates?
Since macOS Ventura, released in 2022, Photos has had a built-in Duplicates tool. Open Photos, look under Utilities in the sidebar, and if your library has any repeats they surface on their own in a Duplicates collection. Apple's own guide to removing duplicate photos and videos on Mac covers the mechanics: select the ones you want merged, click Merge, and one original takes the place of the group. Anything removed goes to Recently Deleted first, so you have thirty days to change your mind before it is gone for good.
It is more capable than a simple copy check, too. It catches more than exact copies: pairs that are not byte-for-byte identical but close enough to be the same image, a photo re-shared through an app that stripped its metadata, or a burst of near-identical shots taken a second apart. Apple does not publish how the matching works, and in practice it is good rather than exhaustive, so treat it as a strong first pass rather than the last word. That is genuinely useful, and it costs nothing.
The catch is scope. Photos only looks inside your Photos library. Anything sitting in Downloads, on the Desktop, in a folder of design references, or anywhere else in Finder never gets checked, because it was never imported.
What Finder can do with everything else
For images that live outside Photos, Finder gives you two honest tools and no automatic answer. Switch a folder to List view (Command-2) and click the Size column to sort largest to smallest; two exports of the same image at similar dimensions often end up sitting near each other. Or use the search field with Kind set to Image and a size range added, which narrows a cluttered folder down to a shorter list worth a closer look.
Neither tool compares what is actually inside a file. Both just sort or filter what is already there, which means the last step is always you, scrolling and comparing by eye, assuming Finder is actually rendering previews to compare in the first place. If a folder shows blank icons instead of thumbnails, what to check when image thumbnails aren't showing on a Mac is worth a look before you go any further. That works for a folder of forty images. It stops working long before a folder reaches four hundred.
How do you find exact duplicates with Terminal?
For an exact answer outside Photos, Terminal has one built in: a checksum. Every file can be run through a short calculation that produces a fixed code based purely on its contents. Two files with identical bytes always produce the identical code. Change even one pixel, or re-save the same picture at a slightly different quality setting, and the code comes out completely different, every time.
Open Terminal, found in Applications then Utilities, paste the line below, changing the folder path if your images live somewhere other than Pictures, and press Return.
- Run the command.
find ~/Pictures -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" -o -iname "*.heic" -o -iname "*.gif" \) -exec md5 -r {} \; | sort > ~/Desktop/duplicate-check.txt - Open the result. A file named duplicate-check.txt appears on your Desktop. Double-click it to open in TextEdit.
- Read down the list. Every line starts with a long code followed by a file's full path, sorted so that matching codes sit on consecutive lines. Two lines that start with the same code are byte-for-byte identical files.
This command only writes a list. It does not delete anything, and that is deliberate. Never point a script at your files and let it delete on your behalf without checking first. Open both files yourself, confirm they really are the same image, then move the one you do not want to Trash by hand. Empty the Trash only once you are certain, and do it last, after everything else.
Exact duplicates are the easy problem
Everything above, Photos' merge tool, a Finder sort, a Terminal checksum, is built to catch the same kind of thing: two files that are the same, or close enough for an algorithm to say so with confidence. That covers less of a real collection than it sounds like it should.
The image that actually clutters a reference library is rarely an exact copy. It is the same picture saved twice in two different ways: a Pinterest pin saved as a screenshot and also saved as a link, a reference exported at 800 pixels wide and again at 2,000, the same photo passed through three apps until its compression looks nothing like the original on disk. Visually it is one image. On disk it is three unrelated files with three unrelated checksums, and no hash, no matter how it is calculated, will ever tell you they match.
That is the gap none of the tools above close, and it is usually the bigger one.
Where seeing everything at once helps
The honest fix for a near-duplicate is not a smarter algorithm. It is being able to see everything at once. A resized repeat is obvious the moment you are looking at both images side by side. It is invisible in a file list headed IMG_4821.jpg and IMG_4821 (2).jpg, because a filename carries none of what the picture actually looks like.
This is the one honest thing a visual library changes. Muse lays a collection out as a grid of the images themselves rather than a list of names, so a near-duplicate catches your eye the way it never would scrolling Finder. It also runs the same exact-match check Terminal does, quietly, on its own: when something you save already matches a file already sitting in your library, byte for byte, the two merge into one item automatically rather than adding a second copy. That covers the easy case. The harder case, the resized or re-saved repeat, still comes down to a person recognising it, and a grid is simply a better place to do that than a folder of filenames.
None of this needs an app to start. Photos will catch what is already in your library, and the Terminal command above will catch exact copies anywhere else, both for free. A visual library is worth it once the near-duplicates, the ones no checksum will ever find, are the pile actually slowing you down.
Frequently asked
Does Photos on Mac find duplicate images automatically?
Can I find duplicate images on a Mac without installing anything?
Why doesn't a checksum find a resized or re-saved copy of an image?
Is it safe to delete images straight from a Terminal duplicate list?
Stop hunting for near-duplicates by eye
Free for 30 days. Then $29 once, and it is yours.