Diff tools for a Mac, against what the terminal already gives you

Two versions of a config file disagree, or a folder that was copied last week no longer matches the original, and the obvious move is to find a diff tool for the Mac. The search results are mostly lists of applications with prices attached, which quietly assumes the answer is a purchase.

The machine already has a comparison engine, a graphical merge tool, and a documented way to hand files from Git to whichever viewer you prefer. Knowing what those cover makes the shopping question much smaller: not which diff tool is best, but which specific gap in the built in set is worth paying to close.

What the built in diff already covers

The diff command that ships with macOS is more capable than its reputation, and its manual page is the fastest way to see that.

Unified output is there, with a context size you can set. Side by side output is there as well, which is the mode most people assume requires an application. Recursive comparison of two directory trees is a flag, and it pairs with exclude patterns given inline or read from a file, so build output and version control directories can be kept out of the report. Brief mode reports only which files differ, which is what you want when the question is scope rather than detail.

The option that surprises people most is colour. The macOS diff accepts a colour setting with a when value, so coloured output does not require installing anything. Alongside it sit the controls that decide what counts as a difference at all: ignoring whitespace changes, ignoring all whitespace, ignoring lines that match a pattern, and stripping trailing carriage returns, which is the fix for a file that came from Windows and appears to have changed on every line.

There is also an algorithm option, a label option for naming the sides in the output, and a show function line option for printing the enclosing function name with each change. Two siblings round out the set: diff3 for three way comparison and cmp for byte level checks.

FileMerge is already installed if Xcode is

Apple ships a graphical comparison and merge application, and its command line launcher is documented.

The opendiff command launches FileMerge to compare two files or two directories. Its manual page notes that FileMerge is installed as part of the Xcode Developer Tools, that opendiff connects to an already running instance rather than starting a second one, and that it exits immediately once the request has been sent.

Two flags carry the real weight. An ancestor flag compares both sides against a common ancestor, which is the three way case that comes up whenever two people edited copies of the same original. A merge flag names where the merged result should be written, and without it FileMerge asks for a destination when you try to save. The merged content can be edited directly in the window, with the merge pane revealed by dragging the splitter at the bottom.

For a Mac that already has Xcode installed for other reasons, that is a three way merge tool with a documented command line entry point and no purchase decision attached.

git difftool is the bridge most people skip

The question is usually framed as terminal against application, when the documented answer is that Git will hand the files to whichever one you name.

The git difftool command is a front end to git diff and accepts the same options and arguments, so anything you know how to express as a diff also works here. A tool option picks the viewer for one invocation, a no prompt option stops it asking before each launch, and a tool help option prints the tools Git recognises. Without an explicit tool, it reads the diff.tool configuration value.

The flag worth learning is the directory diff option. It copies the modified files to a temporary location and performs a single directory comparison on them, and the documentation notes that this mode never prompts before launching. That turns a review of thirty changed files from thirty consecutive windows into one folder comparison, which is exactly what people buy applications hoping to get.

The terminal tools that changed the question

Two open source projects moved the free end of this market, and both are permissively licensed.

Delta describes itself as a syntax highlighting pager for git, diff, grep and blame output. It sits between a command and the terminal rather than replacing either, which means the workflow does not change, only the legibility of what comes back. It is MIT licensed and among the most widely adopted tools of its kind.

Difftastic takes a different angle: it is a structural diff that understands syntax, comparing the structure of the code rather than the sequence of lines. That distinction matters most on the changes line based tools handle worst, such as reindentation or a block that moved without being edited. It is also MIT licensed.

Neither carries a licence decision, a seat count or a renewal date, which is worth weighing before comparing paid options.

What the paid applications cost today

Prices below were read from each vendor's own pricing page in late September 2026 and are in US dollars. Vendors state separately whether tax is included.

Tool How it is licensed Price Worth knowing
diff, diff3, cmp Ships with macOS None Unified and side by side output, colour, recursive with exclude patterns
FileMerge and opendiff Part of the Xcode Developer Tools None Two way and three way with an ancestor, writes a merged file
Delta MIT, open source None Pager for git, diff, grep and blame output
Difftastic MIT, open source None Structural diff that compares syntax rather than lines
VisualDiffer GPL-3.0, open source None Folder and file comparison, macOS 13 or later, sandboxed, no telemetry
Kaleidoscope Subscription only; the app stops working when it lapses 8 dollars per month billed yearly for one user and three devices, 10 dollars per month per user for the team plan billed yearly, 7 day trial Needs macOS Sequoia 15 or later; its ksdiff tool wires it into git difftool
Beyond Compare One time purchase, no renewal fees 35 dollars per user for Standard, 70 dollars per user for Pro Two and three way text merge and folder merge are Pro only; one user on any number of computers
Araxis Merge Perpetual licence with one year of upgrades included 129 dollars for Standard, 269 dollars for Professional at one to four licences One licence covers both Windows and macOS; optional renewal afterwards at 29 or 49 dollars a year

Two entries in that table deserve expanding, because they are the ones people get wrong.

VisualDiffer is now open source and free. Its own site states it plainly, the repository carries a GPL-3.0 licence, and it requires macOS 13 or later. Older comparison articles still list it among the paid options, which is a good reminder to check a price rather than inherit it from a list.

Kaleidoscope is subscription only, and its documentation is unusually direct about the consequence: an active subscription is required to use the app, and once the subscription has ended the app can no longer be used. There is no one time purchase. Anyone comparing a monthly figure against a one time price is comparing two different kinds of thing, and the honest comparison runs over however many years the tool will actually be in use.

Images and remote folders are where the free set runs out

Text is the easy case. Two other comparisons come up often enough to justify a purchase on their own.

Images are the first. Kaleidoscope lists image comparison as a headline feature, with split, blink and drag modes for spotting a visual change, and a pixel comparison view that reports formats and colour profiles alongside the difference. Nothing in the built in set answers that question, and asking a line based diff about two exported assets produces noise rather than an answer.

Remote and cloud locations are the second. Beyond Compare puts integrated SFTP and FTP over SSL in its Pro edition rather than relying on a separate mount, and the same edition adds WebDAV, Dropbox, OneDrive, Amazon S3 and Subversion as places a comparison can point at. If half of the work is confirming that a deployed directory matches a local one, that is the feature being paid for, not the diff engine.

Two more Pro only items in the same list are quietly useful: text replacements, which let a known substitution be flagged as an unimportant difference, and folder comparison alignment overrides, which pair files with different extensions on either side. Both exist because real comparisons are rarely between two identical shapes. The vendor also notes that its source control integration and registry comparison are Windows only, which is the kind of detail worth checking before buying on the strength of a feature list written for both platforms.

Three questions that decide it faster than a feature list

Do you need to merge, or only to look? Seeing what changed is covered by diff, delta, difftastic and any folder comparison tool. Resolving two sets of edits against a common ancestor is a narrower need, and it is where the money goes. Beyond Compare puts two and three way text merging and folder merging in its Pro edition rather than Standard, which is a 35 dollar difference per user, and FileMerge does the three way case for nothing if Xcode is present.

Files or trees? Comparing two files is a solved problem at every price point including zero. Comparing folder trees with include and exclude rules, then acting on the result by copying items between sides, is what folder oriented applications are actually for. The built in diff will report recursively, but it will not let you fix the difference from the report.

How long will this tool be in use, and on how many machines? The licence shapes differ more than the feature sets. Beyond Compare is a one time purchase covering one person on any number of computers, with no annual renewal and major upgrades generally at half price. Araxis sells a perpetual licence with one year of upgrades included and an optional renewal afterwards, and one licence covers both platforms. Kaleidoscope is a subscription that ends access when it ends. None of those is wrong; they just reward different situations, and the same reasoning applies to any Mac tool you are choosing between.

Where the friction actually sits

After all of that, the common complaint is not that the comparison was wrong. It is the number of places the work lives.

The folder is in one window. The terminal that produced the two versions is in another. The comparison opens in a third, and the file you need to look at afterwards is back in the first. The directory diff flag on git difftool removes one of those hops by batching a whole changeset into a single comparison. The rest is a layout problem rather than a tooling problem, and it is why a file manager with a terminal in the same window changes the experience of this work more than swapping one comparison engine for another.

What to change first

Before buying anything, spend ten minutes on the three built in routes: side by side output from diff, a recursive comparison with exclude patterns, and git difftool with the directory diff flag pointed at a tool you already have. If a gap is still there after that, name it precisely, because a three way merge need and a folder sync need lead to different products at very different prices.

Frequently asked questions

Does macOS come with a diff command?

Yes, and it covers more than most lists suggest. The manual page documents unified output, side by side output, a colour option, recursive comparison of directories with exclude patterns, brief mode for listing only which files differ, and several ways to ignore whitespace or matching lines. diff3 and cmp ship alongside it.

Is FileMerge still available on a Mac?

It is installed as part of the Xcode Developer Tools, and the opendiff command launches it from the terminal. It compares two files or two directories, takes an ancestor for three way comparison, and can write the merged result to a path given with its merge flag.

How do you make Git open one specific diff tool just this once?

Use git difftool with its tool option, and add the no prompt option so it does not ask before each file. The tool help option lists the tools Git recognises. Without an explicit tool, Git reads the diff.tool configuration value.

Is Kaleidoscope a one time purchase?

No. Its own documentation states that it is subscription based, that an active subscription is required to use the app, and that once the subscription ends the app can no longer be used. The plans read as 8 dollars per month billed yearly for one user and three devices, and 10 dollars per month per user for the team plan, with a 7 day trial.

What is the cheapest way to compare two folders on a Mac?

Recursive diff with exclude patterns costs nothing and reports every difference, but it will not help you fix them. For a graphical folder comparison at no cost, VisualDiffer is open source under GPL-3.0 and runs on macOS 13 or later, and FileMerge compares directories as well as files if Xcode is installed.

Back to all posts