# sem

A semantic version-control tool built on top of Git that diffs, blames and analyzes impact at the level of functions, methods and classes instead of lines, across 28 languages.

sem is a semantic version control tool that works on top of Git. It parses code with tree-sitter, extracts every function, method and class as an entity, and diffs at that entity level, so a change shows as a modified function rather than a range of changed lines. It works in any Git repository with no setup and supports 28 languages through tree-sitter.

Cloud-backed queries are opt-in per repository: signing in does not by itself upload a repository or send a query, and a local audit log together with forget controls track what has been sent. It is designed to be used both directly by developers and through an MCP interface by coding agents, alongside sibling tools for entity-level git merging and semantic code review from the same Ataraxy Labs stack.

It is written in Rust, released under the Apache 2.0 license, and installs through a shell script, Homebrew, winget, Scoop, npm, Cargo or Docker.

Website: https://ataraxy-labs.github.io/sem/
