sem 是由 Ataraxy Labs 开发的语义版本控制 CLI 工具,基于 Git 构建,通过 tree-sitter 解析代码,以函数、类、方法等实体为单位进行差异对比,而非传统的行级对比。支持 31 种编程语言及多种结构化数据格式,提供 diff、impact、blame、log、entities、context 等命令,并包含 MCP 服务器供 AI 代理调用。

sem diff(实体级差异)、sem impact(跨文件依赖影响分析)、sem blame(实体级追溯)、sem log(单实体历史追踪)、sem entities(列出实体)、sem context(为 LLM 生成令牌预算内的上下文)。sem-mcp 二进制文件调用。.semrc 自定义扩展名映射。sem setup 替换默认的 git diff 输出,并安装 pre-commit 钩子显示暂存变更的实体级影响范围。