sem:代码语义对比工具

2
分类开源项目
作者Ataraxy Labs
来源跳转
发表时间

内容

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

  • 核心功能: 使用 tree-sitter 提取代码实体,实现实体级差异分析,支持重命名检测、结构哈希和模糊相似度匹配,可识别移动、重命名等操作。
  • 主要命令: sem diff(实体级差异)、sem impact(跨文件依赖影响分析)、sem blame(实体级追溯)、sem log(单实体历史追踪)、sem entities(列出实体)、sem context(为 LLM 生成令牌预算内的上下文)。
  • 安装方式: 支持 curl 脚本、Homebrew、npm/Bun 包装器、Cargo 源码编译、Docker 及 Nix 等多种安装途径。
  • 输出格式: 支持纯文本、JSON、Markdown 格式,JSON 输出适用于 AI 代理和 CI 流水线。
  • MCP 服务器: 内置 6 个工具(sem_entities、sem_diff 等),供 AI 代理通过 sem-mcp 二进制文件调用。
  • 语言支持: 涵盖 TypeScript、Python、Rust、Go、Java 等 31 种编程语言,以及 JSON、YAML、Markdown 等结构化数据格式,支持通过 .semrc 自定义扩展名映射。
  • Git 集成: 可通过 sem setup 替换默认的 git diff 输出,并安装 pre-commit 钩子显示暂存变更的实体级影响范围。

评论

(0)
未配置登录方式
暂无评论