RadarTopicsBuildersWeeklyReads
Open Source Radar
Ataraxy-Labs/

sem

GitHubWebsite

sem provides entity-level diffs atop Git, using tree-sitter for code entities and supports multiple languages. It offers install options, CLI commands, and AI-agent integration via MCP.

3.3kstars
96forks
6issues
Apache-2.0license
2026since
Star historydaily snapshots by VibeCrowd

Collecting history — the radar snapshots this repo daily. The trend line appears after 3 days of data (1 so far).

Alternatives & relatedmatched by topic overlap
Reviewgenerated from repository data · Aug 5, 2026

What it is

sem is a semantic version control tool that works on top of Git. It parses code with tree-sitter, extracts every function, class, and method as an entity, and diffs at the entity level instead of lines. It supports 32 programming languages with full entity extraction and structured data formats. Cloud-backed queries are opt-in per repo.

How it works

sem diffs at the entity level, with rename detection, structural hashing, and word-level inline highlights. It can generate outputs in plain, json, or markdown formats. It tracks entities across commits to provide impact, blame, and logs. It stores its SQLite entity cache outside the repository by default. It can operate with local or cloud-backed graphs depending on configuration.

Getting started

Install options include:

curl -fsSL https://raw.githubusercontent.com/Ataraxy-Labs/sem/main/install.sh | sh

Or via Homebrew:

brew install sem-cli

Or via winget on Windows:

winget install AtaraxyLabs.sem

Or the npm wrapper:

npm install --save-dev @ataraxy-labs/sem

With Bun:

bun add -d @ataraxy-labs/sem
bun pm trust @ataraxy-labs/sem

To update:

sem update

Or build from source:

cargo install --git https://github.com/Ataraxy-Labs/sem sem-cli

Or run via Docker:

docker build -t sem .
docker run --rm -it -u "$(id -u):$(id -g)" -v "$(pwd):/repo" sem diff

Commands

sem supports several commands:

  • sem diff
  • sem impact
  • sem blame
  • sem log
  • sem entities
  • sem context

Commands operate in any Git repo with no setup required. sem stores its cache outside the repo and can override the cache root via SEM_CACHE_DIR.

Examples (selected commands from README)

# Semantic diff of working changes
sem diff
# Full impact analysis
sem impact authenticateUser
sem blame src/auth.ts
sem log authenticateUser

Use with AI agents (MCP)

sem mcp starts a Model Context Protocol server over stdin/stdout for agent integration. Example snippet:

claude mcp add sem -- sem mcp

What it parses

32 languages with full entity extraction via tree-sitter (and structured data formats like JSON, YAML, TOML, EDN, CSV, Markdown). For files with non-standard extensions, create a .semrc in the project root mapping extensions to languages. If files have no extension, language is detected from content.

Cloud acceleration

Local is free; cloud is optional. When connected, cloud can serve a warm graph for faster queries. Local remains available when cloud is unreachable.

Traction

3271 stars, 96 forks, 6 open issues, language Rust, license Apache-2.0, last push 2026-07-18

SharePost on XLinkedIn
All trending reposRevenue-verified startups →