intentdiff

Competitive analysis

Research date: 2026-07-24.

Tool Relevant capability License / availability notes intentdiff positioning
Git diff Whitespace ignore flags and moved-code coloring via --color-moved and --color-moved-ws. Git is GPL-2.0-only. intentdiff shells out to installed Git for acquisition, not code reuse. Git-native acquisition plus explicit structured classifications.
Difftastic Structural diff using tree-sitter; strong syntax-aware terminal diffs. MIT; vendored parsers are mixed MIT/Apache. intentdiff is not a clone or highlighter; the differentiator is review classification, hidden-change evidence, JSON/SARIF, and move/rename event modeling.
SemanticDiff Language-aware review UI that hides irrelevant changes, detects moves/refactorings. Product/service availability; not treated as reusable OSS core. intentdiff provides local deterministic CLI/library reports.
GumTree AST differencing and move/update actions. LGPL/EPL-style ecosystem depending on package; evaluate before adapter use. Potential optional adapter; not bundled in v0.1.
Delta Git pager with syntax highlighting and better display. MIT. intentdiff is classification-first, not a pager-only UX.
diff-so-fancy Readable Git diff formatting. MIT. intentdiff targets normalized structural events rather than prettier hunks.
tree-sitter crates Parser infrastructure and grammars. Core tree-sitter and selected Tier 1 grammar crates are MIT. v0.1 pins Rust, Python, JavaScript, TypeScript, and TSX parser backends; deeper AST matching remains internal roadmap.
Rust diff crates (similar, imara-diff) Text diff algorithms. similar is dependency-free and MIT; imara-diff is optimized and permissive. v0.1 uses similar for raw line metrics; matching/classification are internal.

Why intentdiff can be better for reviews

intentdiff is designed around the reviewer’s triage question: “what should I inspect first?” That makes it better suited than display-oriented diffs when a change mixes reformatting, movement, and real edits.

Concrete differences:

This does not make intentdiff universally better than Difftastic, Delta, or Git. For pure human-readable patch viewing, those tools are mature and excellent. intentdiff is better when review triage, deterministic machine output, and explicit noise classification matter more than patch aesthetics.

Name check: the original requested working name smartdiff conflicts on npm/PyPI and has existing GitHub usage. intentdiff was selected for public release because it checked as available across crates.io, npm, PyPI, and the target GitHub owner at release-prep time. Other available fallbacks checked: sift-diff, cleardiff, actualdiff, reviewdiff.