Left ↔ RightDiff Anything 1.5 Smart Diff comparing two TypeScript files with normal syntax highlighting, exact token changes, and the conventional Line Diff option beside it

Comparison and merge tool macOSWindows

Available on macOS and Windows · Available on the Mac App Store and Microsoft Store

Diff AnythingFile and folder comparison for Mac and Windows

Find the changes that matter in your code, files, and folders.

Compare code, spreadsheets, documents, databases, images, archives, and folders in one desktop app. Review exact differences, merge and resolve conflicts with Pro, and keep compared files on your computer.

See every change. Keep every source local.

Spot meaningful code changes with Smart Diff across 117 editor languages. Switch to Line Diff whenever you want an exact line-by-line review. Both views keep syntax highlighting and editing close at hand. Ignore rules leave timestamps, IDs, comments, or fixed columns out of a text comparison, and Align these lines pairs two lines by hand where the automatic match is not the one you want.

Excel, OpenDocument, and Apple Numbers workbooks compare row by row across formats: an inserted row is one added row, rows can be matched by key columns, formulas are compared between two workbooks of the same format, and a CSV or TSV export can be checked against the sheet it came from. JSON, YAML, TOML, INI, property lists, and XML compare by their data, even across formats, such as a JSON file against a TOML file. Jupyter notebooks compare cell by cell, SQLite databases by schema and rows, and Word and OpenDocument documents by their text and their formatting. PDFs switch between rendered-page visual comparison and extracted text, images from PNG to PSD, HEIC, and SVG offer overlay, swipe, blink, heatmap, and changed-pixel views with ignore regions, and any two files can be compared byte by byte in a hex view.

Folder comparison provides two-pane tree and table layouts, global search and filtering, size and date filters, progressive loading, semantic nested-file comparison, moved-file detection, ignore patterns, and optional .gitignore rules. Archives inside the folders are compared entry by entry, and with Pro a folder snapshot records a folder's state so you can later see what changed since. Archive mode compares normalized paths and streamed SHA-256 hashes across ZIP/ZIP64/ZIPX, 7z, RAR, TAR families, and standalone compressed streams, including encrypted and supported multipart sets. Pro turns reviewed folder changes into explicit create, update, delete, and move plans with stale-result protection, progress, cancellation, metadata preservation, durable recovery, rollback, and one-click undo.

Pro adds a three-way merge workspace that merges JSON, YAML, TOML, and INI files value by value and opens files that already contain conflict markers straight into the merge. Keep repeat comparisons ready with Pro: save profiles and rules, return to recent work, export side-by-side HTML reports, print, apply patches, and export JSON Patch. Bring comparisons into scripts and everyday source control with the CLI, a Git difftool or diff driver, and, with Pro, the merge driver, a merge window for git mergetool, and a CI check that can fail only on breaking API schema changes. The Microsoft Store version on Windows includes the command line; on a Mac, the free command-line helper adds it to the Mac App Store version.

Start a comparison from Finder, the Dock, or File Explorer's Compare with Diff Anything command, or from other apps with diffanything:// links and, on a Mac, AppleScript. Tabs reopen at the next launch, and the interface is available in English, German, and French. Read every result your way: a Blue and yellow difference palette offers an alternative to red and green highlights, and the accessible workspace lists each difference in words, with its location and both values, for keyboard review and supported apply actions.

One customer’s experience · 5 out of 5 stars

“Holy smokes, this tool is worth the price just because of the visual diffing alone.”
sddista · Mac App Store, Estonia · Read the review

Why I built it

I built Diff Anything because the useful question is rarely ‘which lines changed?’ It is ‘what changed in the thing I am actually looking at?’

Capabilities

Use the comparison model that matches the material.

Explore local code, spreadsheet, data file, notebook, database, folder, archive, PDF, image, and API comparisons in Diff Anything. Pro adds merge, synchronization, reports, and automation.

Diff Anything image heatmap with changed-pixel, similarity, dimension, alignment, and threshold measurements
Product view Use heatmap, changed pixels, overlay, swipe, or blink while exact visual measurements stay visible.

Language-aware code comparison

Switch between Smart Diff and the conventional Line Diff while keeping normal syntax highlighting, exact source text, editing, moved blocks, wrapping, and compact context visible. Detection uses filenames, extensions, shebangs, and pasted content.

Folder and archive review

Compare folders in two-pane tree or table layouts with global search, status, size, and date filters, progressive loading, semantic nested-file comparison, moved-file detection, ignore patterns, optional .gitignore rules, and direct opening of nested pairs. Archives inside both folders, such as ZIP, JAR, TGZ, 7z, and RAR files, are compared entry by entry and expanded in the tree, and an archive can be compared with the folder it was extracted from. Archive mode compares normalized paths, types, sizes, link targets, and streamed SHA-256 hashes across ZIP/ZIP64/ZIPX and ZIP-based packages, 7z, RAR, TAR variants, Gzip, Bzip2, XZ, and Zstandard. It supports encrypted ZIP, 7z, and RAR archives plus multipart numbered 7z and common RAR volume sets, with separate in-memory passwords for each side, cancellation, and expansion safety limits; open changed text entries or extract them explicitly. Pro folder synchronization applies reviewed create, update, delete, and move plans transactionally with stale-result protection, progress, cancellation, metadata preservation, durable recovery, restart-safe rollback, and one-click undo.

Connected PDF review

Review rendered PDF pages, move between them, zoom the originals, or switch to extracted text. Visual diff compares page pixels, highlights changed regions, and reports a per-page visual-match percentage; selecting a wording difference keeps Extracted text active. Free shows the first 3 rendered page previews; Pro removes that preview cap.

Browse all Diff Anything capabilities

Workflow

Choose the material, inspect the change, act on it.

  1. Choose sources

    Open files or folders, paste content, or use Pro to load a saved profile with known options.

  2. Select a mode

    Use automatic detection or explicitly choose text, structured data, cross-format spreadsheet, notebook, SQLite, folder, archive, document, image, binary, or API comparison. In code comparisons, switch between Smart Diff and conventional Line Diff without changing sources.

  3. Review and resolve

    Navigate stable differences, apply supported changes, or use Pro to resolve three-way conflicts and conflict markers or approve a folder synchronization plan without losing source context.

  4. Save or automate

    Use Pro to export or print a report, export a JSON Patch, apply a patch, or retain a profile, invoke the CLI, or wire the comparison into Git and CI.

Diff Anything PDF Visual diff with rendered-page highlights and a visual match percentage
In practice Visual diff compares rendered pages, highlights changed areas, and reports a per-page visual match percentage.

Go deeper

Every comparison mode, explained.

Popular workflows

Start with the job you need to do.

compare folders on Windows

Compare two folders on Windows and see what changed

File Explorer can't compare folders. Use robocopy /L, PowerShell's Compare-Object, or a visual folder diff to find missing, changed, and moved files.

Open workflow →
compare folders on Mac

Compare two folders on Mac and see what changed

Finder can't compare folders. Use Terminal's diff -rq, FileMerge, or a visual folder diff to find missing, changed, and moved files. 2-minute video.

Open workflow →
Beyond Compare alternative

A Beyond Compare alternative for spreadsheets, archives, and structured files

Compare Diff Anything with Beyond Compare. See where each tool fits, then try Diff Anything free on Windows or Mac for folders, spreadsheets, archives, JSON, and code.

Open workflow →
archive compare tool

Compare encrypted, multipart, and compressed archives by content

Compare ZIP/ZIP64/ZIPX, 7z, RAR, TAR families, Gzip, Bzip2, XZ, and Zstandard locally, with passwords, multipart support, streaming, and explicit safety limits.

Open workflow →
file compare tool

Compare the files developers actually work with

A local file compare tool for cross-format spreadsheets, text, JSON, YAML, TOML, XML, notebooks, SQLite, folders, archives, documents, images, binaries, and API schemas.

Open workflow →
compare spreadsheets different formats

Compare spreadsheets even when the file formats differ

Compare Excel, OpenDocument, and Apple Numbers workbooks row by row in a private desktop diff, even when the formats differ, with key columns and formulas.

Open workflow →
three-way merge tool

A local three-way merge tool for Base, Ours, and Theirs

Merge three versions locally on Mac or Windows with Diff Anything Pro. Merge JSON, YAML, TOML, and INI by their data, resolve Git conflict markers, and edit the result.

Open workflow →
Browse all Diff Anything workflows

How-to guides

Step-by-step help with common jobs.

Start here

Diff Anything guides.

Set up local comparisons, review folders and spreadsheets, resolve merge conflicts, and use Diff Anything with Git and CI on Windows or, through the free command-line helper, on a Mac.

Open the complete manual

Start your next project

Get Diff Anything.

See every change. Keep every source local. Available on the Mac App Store and Microsoft Store.

Command-line helper for Mac Free download that adds the diff-anything command, Git settings, and git mergetool to the Mac App Store version.

Free & Pro: what’s included

Free desktop use lets you try every comparison engine for files up to 5 MiB per side and 10 new comparison sessions per local day; collection previews show the first 100 items, binary comparisons the first 100 byte differences, and PDF previews the first 3 pages. Plain text, JSON, and Jupyter notebook comparison are complete, and opening files from Finder or File Explorer, diffanything:// links, and AppleScript are free. The free CLI supports text, JSON, and notebooks, and the command-line helper that brings the CLI to the Mac App Store version is a free download that uses the Pro purchase made in the app. A one-time Pro purchase removes the preview and session limits and unlocks larger sources within technical limits, saved profiles and history, saving folder snapshots, report export and printing, JSON Patch export, applying patches, three-way merge and conflict resolution, the Git merge driver and merge tool, folder synchronization, batch manifests, every CLI mode, and, on Windows, trusted preprocessors.

Privacy and data

No accounts, cloud comparison service, analytics, or telemetry.

Getting started

Your first workflow, explained.

Follow the Diff Anything guide from setup to your first result.

Open the getting-started guide

Common questions

Before you download Diff Anything.

Do compared files leave the computer?

No. Comparison is local. The application has no account, cloud comparison service, analytics, or telemetry.

How does automatic mode choose a comparison?

Compatible spreadsheet formats can use the shared spreadsheet comparison even when their extensions differ, matching structured formats use their semantic engine, two files in different data formats, such as JSON and TOML, are compared by their data, two folders use folder comparison, an archive beside a folder is compared as the folder it holds, and other compatible inputs fall back to text. You can always choose a concrete mode.

Can I compare different spreadsheet formats?

Yes. Diff Anything compares Excel, OpenDocument, and Apple Numbers workbooks in any pairing, sheet by sheet and row by row. Rows are matched by their content, or by key columns you choose under Match rows by, so an inserted row is one added row. A CSV or TSV file opened beside a workbook is compared by cell values with one sheet, the first by default; choose another under Compare with sheet. Values are compared as stored text, so 20 and 20.0 count as different. Formulas are compared between two workbooks of the same format; formatting, charts, macros, and workbook layout are not compared. Sheets are matched by name, and a Numbers file shows each table under its own name, “Table 1” unless you renamed it. Before you compare a Numbers file with an Excel or ODS copy, give the table in Numbers the same name as the other file's sheet; otherwise its rows show as removed and added.

Can Diff Anything be used from Git or CI?

Yes. The Microsoft Store version on Windows includes the command line. On a Mac, install the free command-line helper, which adds the diff-anything command to the Mac App Store version and uses the Pro purchase made in the app on the same Mac. The CLI supports difference exit codes, machine-readable output, Git difftool configuration, and a Git diff driver for file types you assign in .gitattributes. The free CLI compares text, JSON, and Jupyter notebooks; Pro adds every other CLI mode, the merge driver, the merge tool that git mergetool opens in a window, batch manifests with JSON, JUnit, or SARIF output, and --fail-on breaking for API schema checks.

How does three-way merge handle conflicts?

Three-way merge is part of Pro. Choose a common Base for Ours and Theirs. JSON, YAML, TOML, and INI files are merged by their data, value by value, so a conflict appears only where both sides changed the same value differently; other files merge by lines. Focused source diffs show what each side changed from Base, and independent line edits, or edits to separate words of the same line, combine automatically. When both sides change the same words, the result is a conflict; a value is never assembled from parts of each side. Overlapping edits offer Ours, Theirs, Ours then Theirs, Theirs then Ours, and Base choices, with conflict navigation, bulk side choices, and reset. The result remains editable and cannot become the current right source while conflict markers remain; saving that modified source is a separate action.

Can folder synchronization be undone?

Yes. Pro folder synchronization previews create, update, delete, and move actions, rejects stale plans, applies the reviewed selection transactionally with progress and cancellation, preserves supported metadata, uses durable recovery journals and restart-safe rollback, and offers one-click undo after a successful synchronization.

Which archives can Diff Anything compare?

ZIP/ZIP64 and ZIPX, ZIP-based packages, 7z, RAR 1.3 through 7, TAR and compressed TAR variants, plus standalone Gzip, Bzip2, XZ, and Zstandard streams. Encrypted ZIP, 7z, and RAR archives are supported, as are numbered 7z and common RAR volume sets. Split ZIP, ACE, ARJ, CAB, ISO/disk images, and filesystem images are not archive-mode inputs.

Which changes can be applied directly?

Selected text, JSON, YAML, TOML, INI, property list, XML, environment-file, HTTP-response, and API-schema differences can be applied in either direction. JSON, TOML, INI, XML property list, and HTTP targets are edited in place, so their comments, indentation, and layout are kept; a binary property list is compared but never written. Between two data formats, a change is written in the target's own format, or refused, with the reason, where that format cannot hold it. YAML and XML targets are rewritten from their parsed data after a confirmation, which drops comments and custom layout. A JSON API schema keeps its layout; a YAML schema is rewritten after a confirmation.

Can I change the red and green difference colors?

Yes. In Settings → Difference colors, choose Blue and yellow. Additions become blue and removals yellow, in light and dark themes. Written difference descriptions provide another way to check what changed. The setting is part of the free plan.

Can Diff Anything resolve Git merge conflicts?

Yes. With Pro, open a file that contains conflict markers and choose Resolve: its conflicts open in the merge workspace, every line outside them stays as Git merged it, and the resolved file is saved in its own encoding and line endings. Diff Anything can also be Git's merge tool, so git mergetool opens each conflicted file in its merge window: the Microsoft Store version on Windows directly, and the Mac App Store version through the free command-line helper. Seeing the conflicts in a file is free.

Is Diff Anything available in German or French?

Yes. The interface is available in English, German, and French. It follows the system's language or the one chosen in Settings, and switches at once.

Does Diff Anything reopen my tabs after a restart?

Yes. With Reopen tabs from last time in Settings, on by default, the tabs that were open reopen in their order, with their comparison types, options, and views, and files and folders are read again from disk. Pasted text and unsaved edits are not kept.

Can I review a comparison without the side-by-side view?

Yes. The accessible workspace (Command-Shift-A on a Mac, Control-Shift-A on Windows) lists every difference in words with its location and both values, and lets you review, ignore, and apply changes from the keyboard. On a Mac it opens automatically when VoiceOver is running.