Tool Open source

OmniDiff

OmniDiff is a Rust command-line diffing tool by Marko Ivankovic that compares files according to their content. It uses tree-sitter grammars to structurally diff 25 programming and markup languages, showing changes in terms of functions, classes, structs, and other syntax nodes rather than only line-by-line text; unknown extensions fall back to plain-text comparison.

View repository Visit site Mentioned in 2 videos ↓

Overview

It provides an interactive terminal viewer, plain-text headless output for scripts and CI, JSON output, and integrations with Git and Jujutsu. It also compares non-text content, including pictures pixel by pixel, archives member by member, fonts glyph by glyph, message catalogs message by message, and PDFs page by page. It can be installed from source with Cargo, through prebuilt releases and several package managers, or used through VS Code and Neovim integrations.

The project is distributed under the GNU Affero General Public License version 3, with a separate commercial license available through GitHub Sponsors.

What OmniDiff is used for

2 uses taken from transcripts — each links to the moment in the video.

  • A Rust code diffing tool that understands code structure via tree-sitter parsing, showing renames and moved blocks instead of a wall of red and green lines. Handles 24 languages with interactive terminal, plain, and JSON output.

    unverified Github Awesome
  • Fast Rust syntax-aware diff tool classifying changes as insert/delete/update/move; also diffs images; works as git diff tool, VS Code and Neovim.

Videos mentioning OmniDiff

2 in the library.