Koala OSS Club


sem | 语义级代码 Diff


sem 是一个命令行工具,它不再按行对比代码改动,而是从函数、类这种语义实体的层面理解一次提交到底改了什么。它提供 sem diff 命令做语义式差异识别,sem blame 把改动归因到具体开发者,sem impact 分析跨文件依赖影响,所有都相比原生 git 操作增强了易用性。项目用 Rust 写成,支持 26 种语言,一次 diff 通常只要 8 毫秒,零配置即可接入 Git。作者称把 sem 的输出喂给 AI agent,准确率比原始行 diff 高 2.3 倍。 点评:传统行 diff 是给人看的,但在 AI 写代码的时代,agent 需要的是结构化、语义化的变更信息。sem 通过代码静态分析,希望提供这种对 agent 更友好的新格式。