redhat-et/ripwire
The ripgrep of AI context: a zero-dependency C++23 CLI + MCP server for coding agents. Find what you want without reading the repo, then check you built what you meant — blast radius, tests-to-run, quality deltas. Signatures at 74.7% fewer bytes than bodies; every guess labelled, every loss published. Paddle out with a map.
它是什么 ripwire 是一个在代码仓库中运行的单一二进制文件。它构建一个轻量级索引,并回答诸如“X 在哪里处理?”或“这个更改会破坏什么?”的问题,给出简洁、排名的答案——无需服务器、API 密钥、嵌入或后台守护进程。它离线工作,支持多种语言(C++、Python、Rust、Java、TypeScript 等)。
为什么重要 编码代理(如 Claude Code、Codex 或 Cursor)通常通过读取整个文件或反复 grep 来探索代码,这会消耗令牌和时间。ripwire 通过一次调用提供相同的信息:一个排名的调用图,显示相关内容、存在的调用者、覆盖符号的测试以及建议的编辑将影响的内容。目标是“一个问题,一个完整答案”——无需后续 grep。
主要特性
- 定向:
ripwire .提供主要子系统、入口点和重要符号的排名概览。 - 定向查询:
--for(“你即将进行的更改”)、--callers、--expand、--path等每个都返回精简、完整的响应。 - 编辑安全:
--edit-check标记调用点兼容性、爆炸半径以及哪些测试覆盖更改。 - 质量门禁:
--quality-delta仅报告 12 种代码质量问题(例如重复、共享工具误用)中变差的部分。它还跟踪你可以固定到符号上的持久笔记,供后续代理使用。 - 诚实性:输出始终标记限制(例如“这是下限,不是总数”),披露截断,并提供
next=令牌以获取缺失行——不会静默丢弃。 - 令牌预算:你可以为每个答案设置预算;如果无法容纳,它会告诉你并显示如何获取其余部分。
安装和使用 一行安装二进制文件,并自动教会你机器上找到的每个编码代理何时使用 ripwire(Claude Code、Codex、Cursor、Windsurf、Gemini、opencode、aider)。然后开始会话,例如“在这个仓库上使用 ripwire”——代理将根据需要调用它。还有一个可选的 MCP 服务器接口。
性能证据 README 包含测量数据:索引一个仓库需要 0.25–0.45 秒,使用 6.6–16.5 MB,而领先的图数据库 MCP 服务器需要 23–52 秒和 391–623 MB。热查询在 197 毫秒内回答,而对比为 1,082 毫秒。典型任务的令牌节省与朴素文件读取或 grep 相比为 2–25 倍。
构建方式 其质量视角基于 50 年的软件工程研究(McCabe 1976、Halstead 1977 等)以及最近的论文(截至 2026 年底),全部在 docs/LINEAGE.md 中逐条记录。它还调查了 237 个工具,这些工具没有贡献(并说明了这一点)——保持方法诚实和基于证据。
限制(在 README 中说明)
- 它是诚实性的下限,不是自定义测量设计的替代品。
- 当存在默认尾随参数时,arity 启发式可能过度计算不兼容的调用点(已记录;编译验证)。
- 对于广泛、常见词的概念查询,简单的 grep 和读取仍然可能更胜一筹。
版本和许可证 当前版本是 0.6.8(Apache 2.0)。完整参考指南、安装选项和评估在仓库的 docs 中。
相关
- 项目
- 项目
- 项目
- 项目
- 项目