
sem
Semantic version control CLI — entity-level diff, blame, graph, and impact analysis for code across 21 languages.
Coldcast Lens
Sem is git diff for people who think in functions, not lines. It parses code through tree-sitter into an AST and computes semantic diffs — showing you that a function was renamed, a parameter was added, or a method moved between classes. Not "line 42 changed," but "getUserById was renamed to findUserById and gained a cache parameter." Supports 21 languages.
If you're doing code review and want diffs that match how you actually think about changes, sem is a revelation. Standard git diff is the baseline everyone tolerates. Difftastic is the structural diff alternative focused on display quality. GitHub's code review UI is what most teams use daily but only shows line-level changes.
The catch: sem is nascent — 945 stars, early-stage CLI tool. The 21-language support via tree-sitter is broad but parser quality varies by language. Impact analysis ("what breaks if I change this function") is promising but depends on accurate dependency graphs that aren't always complete. And integrating sem into existing git workflows and CI pipelines requires custom scripting — there's no GitHub Action or IDE plugin yet.
About
- Stars
- 947
- Forks
- 29
Explore Further
More tools in the directory
Featured in The Open Source Drop #1
Get tools like this delivered weekly
The Open Source Drop — the best new open source tools, analyzed. Free.