Sem – Semantic version control. Entity-level diffs on top of Git

github.com
March 8, 2026
3 min read
🔥🔥🔥🔥🔥
49/100
Summary
Ataraxy Labs' sem is a semantic version control CLI that provides entity-level diffs, blame, graph, and impact analysis for code across 16 programming languages using tree-sitter. Instead of traditional line changes, sem identifies specific functions or properties that were added, modified, or deleted in the codebase.
Key Takeaways
- The sem CLI tool provides semantic version control by offering entity-level diffs, allowing users to see changes at the function or class level instead of just line changes in Git.
- sem supports 16 programming languages and structured data formats, utilizing tree-sitter for code parsing and enabling detailed impact analysis and entity-level blame.
- The tool can output changes in JSON format, making it suitable for integration with AI agents and CI pipelines.
- sem employs a three-phase entity matching system to detect renames and moves, distinguishing between cosmetic changes and significant logic alterations.
Coverage & discussions
Hacker News · github.com
Community discussions
Community Sentiment
Positives
- Semantic version control is crucial as AI agents increasingly commit numerous changes, making function-level diffs more relevant than traditional line-level diffs.
- The potential for semantic diffing tools to enhance understanding of code changes is significant, especially as AI continues to evolve in coding practices.
Concerns
- The reliance on function names for semantic meaning may oversimplify the complexities of code changes, raising concerns about the effectiveness of current semantic diffing approaches.
- There is skepticism about the term 'semantic' in this context, as many tools still rely heavily on syntax rather than true semantic understanding.




![[RFC] JSIR: A High-Level IR for JavaScript - MLIR - LLVM Discussion Forums](https://pub-90f0ac00d93c47daac3e1d2cdd28d496.r2.dev/articles/3c76d3d29a00115e08d7d3fedf4ee650.webp)