All essentials

Add one folder or several. Duplicates are looked for across all of them.

Free tool

Duplicate Finder

Find byte-for-byte duplicate files across folders. Files are grouped by size first and then hashed, so only possible matches are read. See each group and the wasted space, and export CSV. This tool never deletes anything.

Drop a folder here

Add as many as you like · any file type · sub-folders included

Good to know

  • Exact means exact. A re-saved or re-scanned copy of a document is not a duplicate here.
  • Files with a unique size are never read, which is what keeps a big folder quick.
  • The tool only reports. What to remove is your decision.

Your files stay on your machine

This tool runs entirely inside your browser tab. Nothing is uploaded, stored, or sent to a server — close the tab and every trace is gone.

These are the free ones — see the full suite

How big a file can it take?

There is no upload, so there is no upload limit — but the work happens in this tab, which means your browser’s memory is the budget. Nothing here will refuse a file for being large; a big enough one simply gets slow and, eventually, reloads the tab. The figures below are rules of thumb on a desktop browser, not enforced caps. On a phone or tablet, expect a good deal less.

  • Hashing reads each candidate whole into memory, so the largest single file binds: comfortable to about 1 GB.
  • Thousands of files are fine. The time depends on how many share a size and how big they are.

Password-protected PDFs are declined whatever their size — unlock the file first. If a run does die on a long document, splitting it into volumes and working through them one at a time is the reliable way round it.

Built on open source

The Essentials tools do their work in your browser using these open-source libraries, used under the licenses below. Each remains the copyright of its authors.

  • pdf-lib — MIT · creates and edits the PDFs you download
  • pdf.js — Apache-2.0 · reads your PDF and renders the page previews
  • SheetJS (xlsx) — Apache-2.0 · reads Excel workbooks — .xlsx, .xls, .xlsb and .ods
  • hyparquet — MIT · reads Apache Parquet files
  • hyparquet-compressors — MIT · the Parquet codecs beyond Snappy — Gzip, Zstd, Brotli, LZ4
  • JSZip — MIT · bundles multi-file results into one ZIP
  • Tesseract.js — Apache-2.0 · reads the text on scanned pages in OCR PDF, with its self-hosted engine and English data
  • exifr — MIT · reads photo dates, locations and orientation
  • geotiff.js — MIT · reads GeoTIFF elevation models
  • LERC — Apache-2.0 · decodes LERC-compressed GeoTIFFs, through geotiff.js
  • zstddec (with Zstandard) — MIT, BSD-3-Clause · decodes Zstandard-compressed GeoTIFFs, through geotiff.js
  • pako — MIT, Zlib · compresses and decompresses data inside pdf-lib, JSZip, PizZip and geotiff.js
  • shpjs — MIT · reads zipped Shapefiles
  • docxtemplater — MIT · fills the fields in Word templates
  • PizZip — MIT · opens Word templates for filling
  • jsdiff — BSD-3-Clause · finds the word changes in PDF Compare
  • msgreader — Apache-2.0 · reads Outlook .msg files
  • Lucide — ISC · the icons throughout these tools
  • React — MIT · the interface itself
  • Next.js — MIT · builds and serves these pages

pdf.js ships fallback fonts contributed by Foxit Software, redistributed here as part of pdf.js. JSZip is dual-licensed; it is used here under the MIT license.