sem
Hacker ApprovedShares rank 3 of 13 diff tools by recommenders
Shows which functions and classes changed rather than lines, layered on Git with no repo migration. Critics say it would be rough on something like the Linux kernel.
Shows which functions and classes changed rather than lines, layered on Git with no repo migration. Critics say it would be rough on something like the Linux kernel.
26 people gave an opinion
- recommend it
- 19
- criticize it
- 7
- approval share
- 73%
Recommended in 5 of 13 months
- November 2025: not recommended
- December 2025: not recommended
- January 2026: not recommended
- February 2026: recommended
- March 2026: recommended
- April 2026: recommended
- May 2026: not recommended
- June 2026: recommended
- July 2026: recommended
- August 2026: not recommended
- September 2026: not recommended
- October 2026: not recommended
- November 2026: not recommended (month in progress)
Why it carries the badge
- 19 people recommend itNeeds 10 or more, met.
- 2.7 recommenders for every criticNeeds 2 to 1 or better, met.
- Recommended in 5 of 13 monthsNeeds 4 or more, met.
The same three rules apply to every product, and the badge can’t be bought. How the badge works
What people say about it
The reasons people give, with the number of comments that give each one. Open a reason to read what they said.
Why people recommend it
Each mark is one comment
Works on top of Git
“sem stays on top of git so there's zero migration cost, you keep your existing repo and workflows.”
Comment from 9 Mar 2026 in “Sem – Semantic version control. Entity-level diffs on top of Git” “A step in the right direction, and interesting in that it layers over existing git”
Comment from 7 Jun 2026 in “Sem: New primitive for code understanding – not LSPs, but entities on top of Git” “sem computes semantic diffs on top of your Git repo—no repo rewrite needed.”
Comment from 7 Feb 2026 in “Show HN: Sem – Semantic diffs and patches for Git” Wide language support via tree-sitter
“extracts entities from 30+ languages via tree-sitter and builds a cross-file dependency graph”
Comment from 30 Apr 2026 in “Vera: a programming language designed for machines to write” “I'm glad someone else already implemented it with support for more languages.”
Comment from 8 Mar 2026 in “Sem – Semantic version control. Entity-level diffs on top of Git” “working across multiple languages with a single tool can be quite helpful”
Comment from 6 Jun 2026 in “Sem: New primitive for code understanding – not LSPs, but entities on top of Git” Shows changed functions, not lines
“When AI agents are committing hundreds of changes a session, you need to know which functions changed, not which lines”
Comment from 8 Mar 2026 in “Sem – Semantic version control. Entity-level diffs on top of Git” “Instead of showing you which syntax nodes changed, it shows you which functions, classes, and methods changed”
Comment from 28 Mar 2026 in “Improved Git Diffs with Delta, Fzf and a Little Shell Scripting” Ignores cosmetic changes, fewer false conflicts
“purely cosmetic changes like reformatting or renaming a local variable won't show as a diff”
Comment from 9 Mar 2026 in “Sem – Semantic version control. Entity-level diffs on top of Git” “that level of understanding is enough to resolve 100% of false conflicts on our benchmarks”
Comment from 9 Mar 2026 in “Sem – Semantic version control. Entity-level diffs on top of Git”
What people warn about
Each mark is one comment
Overrides git diff, hard to undo
“I'd remove setup/unsetup commands and replace with a note that if you want to use it for git diff”
Comment from 7 Jun 2026 in “Sem: New primitive for code understanding – not LSPs, but entities on top of Git” “But there are no instructions for how to reverse those actions if you don't like the tool.”
Comment from 6 Jun 2026 in “Sem: New primitive for code understanding – not LSPs, but entities on top of Git” “incredibly obnoxious that it overrides default git diff”
Comment from 7 Jun 2026 in “Sem: New primitive for code understanding – not LSPs, but entities on top of Git” Real-world value still unproven
“I doubt if this actually solves a real problem for humans or agents”
Comment from 6 Jun 2026 in “Sem: New primitive for code understanding – not LSPs, but entities on top of Git” “I am not sure if these are ready for prime-time yet.”
Comment from 20 Mar 2026 in “Kin: Semantic version control that tracks code as entities, not files” Overclaims, benchmarks favor sem
“The benchmarks aren't great, they're super specific to sem's output”
Comment from 6 Jun 2026 in “Sem: New primitive for code understanding – not LSPs, but entities on top of Git” “Your tool is cool. Sell it for what it is. Not for what it's not.”
Comment from 6 Jun 2026 in “Sem: New primitive for code understanding – not LSPs, but entities on top of Git”
Other diff tools people recommend
The four most recommended other diff tools, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.
| Product | Recommend | Criticize | Approval | Months | Owned | Badge |
|---|---|---|---|---|---|---|
| difftastic | 23 | 1 | 96% | 10 | — | Approved |
| Weave merge tool | 20 | 11 | 65% | 6 | — | — |
| semThis page | 19 | 7 | 73% | 5 | — | Approved |
| Mergiraf | 19 | 4 | 83% | 5 | 6 mo3 owners | Approved |
| Meld | 12 | 2 | 86% | 5 | — | Approved |
What people said
36 of the 39 comments that mention it, newest first. Each links to the original comment.
“They at least give a more structured approach to dealing with code than simple text.”
“indispensable for models to make less mistakes for me”
“I'd remove setup/unsetup commands and replace with a note that if you want to use it for git diff”
“incredibly obnoxious that it overrides default git diff”
“This looks really neat, but I see its diff output as complimentary to git”
“A step in the right direction, and interesting in that it layers over existing git”
“The tool looks great! Thanks for sharing.”
“But there are no instructions for how to reverse those actions if you don't like the tool.”
“Your tool is cool. Sell it for what it is. Not for what it's not.”
“I doubt if this actually solves a real problem for humans or agents”
“Okay that is pretty cool. I appreciate this information as a human also.”
“The benchmarks aren't great, they're super specific to sem's output”
“working across multiple languages with a single tool can be quite helpful”
“extracts entities from 30+ languages via tree-sitter and builds a cross-file dependency graph”
“Semantic diffing would pair really well with stacks.”
“The key insight is distinguishing signature changes from body changes.”
“sem does it structurally: parses both sides with tree-sitter, computes structural hashes, walks the real dependency graph”
“sem gives you both. sem diff --verbose shows the full before/after body of each changed entity.”
“It tells you the function changed but not how; you still need line-level diffs.”
“Instead of showing you which syntax nodes changed, it shows you which functions, classes, and methods changed”
“i think that's where version control is going”
“I am not sure if these are ready for prime-time yet.”
“sem already does this. sem graph builds a cross-file entity dependency graph and sem impact tells you”
“that level of understanding is enough to resolve 100% of false conflicts on our benchmarks”
“sem stays on top of git so there's zero migration cost, you keep your existing repo and workflows.”
“purely cosmetic changes like reformatting or renaming a local variable won't show as a diff”
“as it relies on function names and changes therein having a direct mapping to meaning with standard text processing”
“I'm glad someone else already implemented it with support for more languages.”
“knowledge graph matching on top of commits”
“When AI agents are committing hundreds of changes a session, you need to know which functions changed, not which lines”
“Fully deterministic, no llm calls”
“For most application-level C++ it works well, but something like the Linux kernel would be rough.”
“Much less tokens, and much more accurate”
“which does entity-level diffs”
“sem computes semantic diffs on top of your Git repo—no repo rewrite needed.”
“Results: 95.9% accuracy vs 41.5%.”
Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.