difftastic

a structural diff tool that understands syntax

Difftastic is a CLI diff tool that compares files based on their syntax, not line-by-line. Difftastic produces accurate diffs that are easier for humans to read.

Understand What Actually Changed

screenshot

Difftastic parses your code with tree-sitter. Unlike a line-oriented text diff, difftastic understands that the inner expression hasn't changed here.

Ignore Formatting Changes

screenshot

Has your code formatter decided to split something over multiple lines? Difftastic can show what has actually changed.

Visualise Wrapping Changes

screenshot

Have you added a wrapper? Difftastic can match the delimiters exactly.

screenshot

Even if you change the inner content, difftastic can still show you the additional wrapper.

Real Line Numbers

screenshot

Do you know how to read @@ -5,6 +5,7 @@ syntax? Difftastic shows the actual line numbers from your files, both before and after.

60 Second Demo

Programming Languages

C++

C#

Clojure

Dart

Erlang

Go

Haskell

Java

JavaScript

Kotlin

Lisp

Lua

OCaml

PHP

Python

R

Ruby

Rust

Scala

TypeScript

And more! See the full list of supported languages in the manual.

File Formats

HCL

HTML

JSON

YAML

And even more! See the full list of supported file formats in the manual.

Works With Git

screenshot

See the git configuration instructions in the manual.

Fully Open Source

Difftastic is MIT licensed. Download it, modify it, share it with your friends!

Made with Emacs and coffee by Wilfred Hughes.