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. |
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:
formatting_only, moved_unchanged, probable_rename, literal_changed) instead of leaving the reviewer to infer intent from hunks.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.