GNU Parallel ships its own `sem` binary at `/usr/bin/sem`; if you have both, run `sem --version` to see which one wins and fix your PATH or alias. Past that, the argument for wiring it into an agent is token cost — asking what breaks if `submitOrder` changes gets a precise answer from the dependency graph instead of reading files until the agent is confident.
A Rust CLI that parses your code with tree-sitter, extracts every function, class and method as an entity, and diffs at that level rather than by lines. `sem mcp` starts an MCP server over stdin/stdout so a coding agent can ask those questions while it works.
- Six entity-level tools for agents — `sem_impact`, `sem_context`, `sem_diff`, `sem_entities`, `sem_blame`, `sem_log`
- What breaks if an entity changes, from a cross-file dependency graph, narrowable to direct dependencies, direct dependents or affected tests — `sem_impact`
- Just the context needed to refactor one function, instead of reading whole files — `sem_context`
- Entity-level diffs with rename detection, structural hashing and word-level inline highlights, over working changes, staged changes, a commit or a range — `sem_diff`
- Entity-level blame showing who last touched each function, class or method — `sem_blame`
- One entity's history through git, so you can see how a single function evolved — `sem_log`
- The same operations from the CLI with plain, JSON and Markdown output, plus comparison of two files with no git repo at all
The binary — install script, `brew install sem-cli`, winget, Scoop, `npm install --save-dev @ataraxy-labs/sem`, `cargo install`, a GitHub release, or Docker. `sem mcp` ships in the same binary, so there is nothing extra to install; register it with `claude mcp add sem -- sem mcp` or point any `mcpServers` config at the `sem` command. The SQLite entity cache lives outside the repository under the OS cache directory, overridable with `SEM_CACHE_DIR`. Cloud-backed queries are opt-in per repo — logging in does not upload a repo or send a query. Version 0.16.2, MIT licensed.
One command — curl -fsSL https://raw.githubusercontent.com/Ataraxy-Labs/sem/main/install.sh | sh
