Difftastic
difftastic.wilfred.me.uk
What it is
Difftastic is a command-line diff tool that compares files by syntax rather than matching lines alone. It identifies a file’s language, parses its code, and compares syntax trees with tree-sitter. The manual lists support for more than 30 programming languages, and the site names HCL, HTML, JSON, and YAML among supported formats. It can identify expressions that remain unchanged through whitespace or line-wrapping changes and show the files’ actual line numbers. Unsupported formats and extremely large inputs instead receive a conventional line-based diff with word highlighting. Difftastic can be configured as Git’s external diff command and used with Git subcommands; the manual also links configuration instructions for Mercurial, Fossil, and Jujutsu. Folder comparison and syntax highlighting are supported, while merge scope is two-way. Prebuilt binaries are available for Linux, macOS, and Windows, and the manual lists package-manager installation options. Difftastic is free, open source, and MIT licensed. The manual warns that Git 2.43.1 and earlier can crash when an external diff is used if file permissions have changed.
Spec sheet
- Purpose
- Difftastic is a CLI diff tool that compares files based on syntax rather than line by line.Read 5 Oct 2026 · difftastic.wilfred.me.uk
- Support
- The manual identifies GitHub as the place where the project is available and its changelog records features and bug fixes by version.Read 5 Oct 2026 · difftastic.wilfred.me.uk
- License
- Difftastic is open source software under the MIT license.Read 5 Oct 2026 · difftastic.wilfred.me.uk
- Fallback behavior
- For unsupported formats or extremely large inputs, it uses a conventional line-oriented diff with word highlighting.Read 5 Oct 2026 · difftastic.wilfred.me.uk
- File formats
- The site lists HCL, HTML, JSON, and YAML among supported file formats, and points to the manual for more.Read 5 Oct 2026 · difftastic.wilfred.me.uk
- Git integration
- Difftastic can be configured as Git’s external diff command and used with Git subcommands.Read 5 Oct 2026 · difftastic.wilfred.me.uk
- How it works
- It detects a file’s language, parses the code, and compares syntax trees using tree-sitter.Read 5 Oct 2026 · difftastic.wilfred.me.uk
- Install options
- Prebuilt binaries are published for Windows, macOS, and Linux; the manual also lists package manager installation options.Read 5 Oct 2026 · difftastic.wilfred.me.uk
- Notable Git limitation
- The manual warns that Git 2.43.1 and earlier can crash when using an external diff if file permissions have changed.Read 5 Oct 2026 · difftastic.wilfred.me.uk
- Other version control
- The usage manual links instructions for configuring Difftastic with Mercurial, Fossil, and Jujutsu.Read 5 Oct 2026 · difftastic.wilfred.me.uk
- Readable changes
- It can recognize unchanged expressions across whitespace or line wrapping changes and shows actual line numbers from the files.Read 5 Oct 2026 · difftastic.wilfred.me.uk
- Security and compliance
- The maker’s site and manual pages reviewed here do not state security certifications or compliance claims.Read 5 Oct 2026 · difftastic.wilfred.me.uk
- Supported languages
- The manual says Difftastic supports over 30 programming languages.Read 5 Oct 2026 · difftastic.wilfred.me.uk
Plans and prices
Strong points and limits
Strong points
- Compares syntax trees with tree-sitter.
- Supports over 30 programming languages.
- Recognizes unchanged expressions across whitespace changes.
- Can be configured as Git’s external diff.
- Free and MIT licensed.
Limits
- Unsupported formats fall back to line-oriented diffs.
- Merge scope is two-way.
- Git 2.43.1 and earlier can crash in a noted case.
Who it suits
Difftastic suits developers who want syntax-aware file or folder comparisons from the command line. It can also fit workflows using Git, Mercurial, Fossil, or Jujutsu.
Verdict
Difftastic focuses on syntax-aware comparisons and offers integrations with several version-control tools. Its fallback behavior and the Git version warning are important compatibility considerations.
Where Specifiction places it
- Diff and Merge Tools#15 of 297.7