diffctx 是一款面向 LLM 与 AI 智能体的 Git 差异上下文工具,其目标不只是展示改动本身,而是回答“一次 Git 改动到底触及了什么,以及理解它需要哪些代码”。
用途 diffctx 用于为智能体或代码审查者提供改动 diff 之外的上下文,包括:该改动的调用方、能够触及这些调用方的测试,以及它跨越的接口契约。在此基础上,工具会在给定的 token 预算内选出理解该改动所必需的最小代码片段。
主要能力
- 以 diff 为种子:输入是一次代码改动,输出是它触及的内容以及解释这些内容所需的代码。
- 预算化的片段选择:在 token 预算约束下挑选代码片段。
- 确定性:输出结果确定,便于复现。
- 本地运行、无需索引、不进行模型调用。
- 调用方解析为静态、按语言进行;无法解析时明确说明,而不是输出零值。
- 内置 MCP 服务器。
- 提供 Python API。
使用方式
- 安装:支持 pipx、pip、cargo、npm、Docker、Scoop 等,并可接入其他 MCP 客户端及 Python API。
- --diff 参数:可接受 Git 范围、暂存区(staged),或截至当前的时间窗口(例如 24h、90min、2w)。
- 命令行参考:完整收录每个参数、默认值与退出码。
- 提供 GitHub Action,可将 diff 上下文作为 CI 步骤运行。
- Token 计数:通过 --budget 支持非 GPT 模型的 token 预算。
与前两类工具的对比 全仓库打包工具会导出所有内容;代码图服务器则针对维护中的索引回答查询。diffctx 是“以 diff 为种子”的:输入是改动,输出是它触及的内容及其解释。相关测量结果与适用场景说明可参见 COMPARISON.md。
兼容与更名 该工具此前以 treemapper 名称发布,更名后每个命令、参数和 API 调用均保持不变。
适用场景 适合需要为 AI 智能体或代码审查者自动补充改动上下文、控制提示词 token 规模的开发流程,也适合作为 CI 步骤集成。
限制与暂未提供的信息
- 调用方解析为静态且按语言进行,无法解析的语言或情形会明确提示无法解析,而非给出结果。
- 价格、收费模式、支持的具体编程语言清单、各安装方式的具体命令、Python API 的详细用法、MCP 客户端配置步骤、性能基准数据等,在提供的资料中暂未提供。