icdiff
jefftk.com
What it is
icdiff is a free, open-source command-line program for comparing two files in a side-by-side terminal view. It emphasizes small changes within existing lines that may be difficult to spot with standard diff, rather than replacing diff for every situation. Users can highlight changes with foreground or background colors and customize the color map. Display options include line numbers, labels, whole-file output, whitespace highlighting, line truncation, and recursive directory comparison. The tool works with Git, Subversion, and Mercurial and supports two-way comparisons, not three-way merges. Installation methods listed by the maker include pip, apt, Homebrew, AUR, and Nix. It runs on Linux and macOS as a command-line tool that can be placed on the PATH. Input and output default to UTF-8, with command-line encoding options. Screen-width autodetection is Unix-only, and exclude-lines cannot be combined with line numbers.
Spec sheet
- Purpose
- icdiff highlights changes between similar files in a side-by-side terminal view, especially small changes within existing lines.Read 9 Oct 2026 · jefftk.com
- Support
- The product page links to the maker's contact page.Read 9 Oct 2026 · jefftk.com
- License
- The README says the maker releases their changes under the same license as Python's difflib.HtmlDiff and that the license is GPL compatible.Read 9 Oct 2026 · github.com
- Color options
- It can highlight changes with foreground or background colors, and users can customize the color map.Read 9 Oct 2026 · github.com
- Display options
- Options include line numbers, labels, whole-file output, whitespace highlighting, line truncation, and recursive directory comparison.Read 9 Oct 2026 · github.com
- Encoding
- Input and output encoding default to UTF-8 and can be specified with command-line options.Read 9 Oct 2026 · github.com
- File comparison
- The command accepts left and right files and shows their differences in a two-column view.Read 9 Oct 2026 · github.com
- Install methods
- The maker lists pip, apt, and Homebrew installation on the product page; the README also lists AUR and Nix.Read 9 Oct 2026 · github.com
- Limit
- Screen-width autodetection is Unix-only, and the exclude-lines option is incompatible with line numbers.Read 9 Oct 2026 · github.com
- Maker location
- Jeff Kaufman's About page says he lives in the Boston area.Read 9 Oct 2026 · jefftk.com
- Positioning
- The maker describes icdiff as a tool for seeing changes that are not immediately obvious from diff, rather than a replacement for diff in all circumstances.Read 9 Oct 2026 · jefftk.com
- Terminal use
- icdiff is installed as a command-line program and can be placed on the user's PATH.Read 9 Oct 2026 · github.com
- Version control
- The README describes using icdiff with Git, Subversion, and Mercurial.Read 9 Oct 2026 · github.com
Plans and prices
Strong points and limits
Strong points
- Side-by-side view reveals small inline changes
- Supports recursive directory comparison
- Works with Git, Subversion, and Mercurial
- Color maps are customizable
- Available through several package managers
Limits
- No three-way merge support
- Screen-width autodetection is Unix-only
- Exclude-lines cannot be combined with line numbers
- Command-line interface only
Who it suits
It suits developers who want terminal-based, side-by-side file or folder comparisons. Users working with Git, Subversion, or Mercurial can incorporate it into version-control workflows.
Verdict
icdiff is a focused, free tool for two-way terminal comparisons, especially when inline edits are easy to miss. It adds display controls and version-control compatibility without claiming to replace diff universally.
Where Specifiction places it
- Diff and Merge Tools#22 of 297.4