ripwire logo

ripwire

打开

ripwire 是 Red Hat 开源的 Apache-2.0 命令行工具与 MCP 服务,为编程智能体生成带排序的调用图,让它少读文件、少烧 token。

分享:
查看替代方案

ripwire 针对的是一个很贵的习惯:智能体在仓库里到处 grep、整文件通读,只为回答一个调用图本来就能回答的问题。项目自称「AI 上下文的 ripgrep」。把它指向一个仓库,它会输出带排序的符号地图:这次任务真正相关的符号、谁调用它们、哪些测试能覆盖到。

第一方仓库 创建于 2026-07-29,许可证 Apache-2.0。2026-09-20 GitHub 显示 2,277 star145 fork,当时发布的版本线是 0.6.1。二进制是单文件 C++23,没有运行时依赖;包括 25 个 tree-sitter 语法在内的全部依赖都 vendored 进仓库,断网也能完成源码构建。这里的 star 是热度信号,不是访问量。

命令行被有意设为主入口。ripwire 放在 PATH 上,智能体不调用就不花任何上下文;而 MCP 的工具 schema 无论是否被调用,都会在每次会话里占着上下文窗口。

核心功能

  • 先给地图,再读代码ripwire . --for="给上传路径加重试" 返回排序后的符号、调用方,以及能覆盖到的测试。
  • 改之前先看影响面--callers--uses--impact--affected 直接回答「改这里会炸到哪」,不需要编辑器插件。
  • 25 个 tree-sitter 语法:Rust、C++、Objective-C/C++、C、Python、Go、Swift、TypeScript、JavaScript、Java、Ruby、PHP、Lua、Elixir、Dart、Kotlin、GDScript、Bash、C#,外加 JSON、TOML、YAML、Markdown。
  • 想用 MCP 就用ripwire wrap <agent> 只把 Claude、Codex、OpenCode 的注册写法打印出来,不替你改配置;--mcp --listen=HOST:PORT 是为数不多会开网络端口的模式之一。
  • 17 个按任务切分的技能skills/install.sh 教智能体在什么时机用哪个动词,避免把 182 个长参数当成菜单。

项目自己公布过一轮对比:对上一款基于图数据库的代码上下文 MCP 服务,在 django、webpack 和自身仓库的 48 道匹配问题上 胜 27、负 7、平 14,整轮消耗约 77K token,对手约 486K。这些数字属于厂商自测,不是独立审计。

适用场景

  • 冷启动熟悉代码:在新会话里直接拿到关键的两三个文件,而不是先吃一遍目录树。
  • 改前评审:智能体动手之前,先问影响面和该跑哪些测试。
  • 控制 token 预算:用任务相关的符号地图替代「全读一遍再决定」的循环。

限制:ripwire 只给建议,不会替你改代码或执行命令,「这件事直接 grep 就行」也是它认可的答案。历史相关命令需要 git 在 PATH 上,并且得是真实 checkout。它度量复杂度,但不负责把复杂度降下来。

定价方案

方案 价格 说明
ripwire $0 Apache-2.0 源码与预编译二进制,无需账号和 API key。
技能与 hook $0 同一个仓库里安装,hook 需要显式加参数才会注册。

截至 2026-09-20,没有付费档位,也没有托管服务。

快速开始

RIPWIRE_REPO=redhat-et/ripwire bash -c "$(curl -fsSL https://raw.githubusercontent.com/redhat-et/ripwire/main/scripts/install.sh)"
export PATH="$HOME/.local/bin:$PATH"
cd your-repo
ripwire . --for="<你接下来要做的改动,用一句话描述>"

然后在会话里说一句「Use ripwire on this repo.」。第一方入口是 INSTALL.mddocs/COMMANDS.mddocs/LIMITS.md

常见问题

它和代码搜索有什么区别?

搜索找字符串,ripwire 面向任务给符号排序,并给出调用方、能覆盖到的测试和影响面。

需要服务端、向量库或索引吗?

不需要 API key、embedding、守护进程或索引服务。只有 git URL 输入和 --mcp --listen 会碰网络。

能在 CI 里构建吗?

构建只要求 CMake 3.24+ 和 C++23 编译器,其他依赖都已内置,流水线里可以离线构建。

替代方案

  • Serena:基于 LSP 的语义代码工具集,经 MCP 暴露给智能体。
  • Chrome DevTools MCP:管智能体循环里的浏览器那一半,而不是仓库这一半。
  • Claude Code:宿主智能体本身,ripwire 是你在它动手读书之前递给它的东西。

使用技巧

  1. 只装二进制不够,技能也要装。没有技能,智能体会每次都去拿全量地图,包括不该拿的时候。
  2. --for= 用调用方的原话写。排序质量取决于这句任务描述。
  3. 大重构之后重新跑一次。地图是即时推导的,不会给你过期结论。

总结

ripwire 是大型仓库里给编程智能体用的一步便宜且确定的前置动作:先建调用图,再按任务排序,然后少读字节。如果你的智能体进入新仓库的第一动作还是列目录加整文件通读,值得试一下。

评论

还没有评论。成为第一个评论的人!