ripwire logo

ripwire

開く

ripwire は Red Hat の Apache-2.0 CLI 兼 MCP サーバーで、コーディングエージェントに呼び出しグラフを渡し、読むファイルとトークンを減らします。

共有:
代替ツールを見る

ripwire が狙うのは、エージェントがリポジトリを grep で探し回り、呼び出しグラフで答えが出る問いのためにファイル全体を読むという高価な癖です。プロジェクトは自らを AI コンテキストの ripgrep と呼びます。リポジトリを指すと、ランク付けされたシンボルマップを出力します。これから行う作業に関係するシンボル、その呼び出し元、到達するテストです。

第一者リポジトリ2026-07-29 に作成され、ライセンスは Apache-2.0。2026-09-20 の GitHub は 2,277 stars145 forks で、公開されているリリース線は 0.6.1 でした。バイナリは単一ファイルの C++23 でランタイム依存はゼロ。25 個の tree-sitter グラマーを含む依存はすべて同梱されるため、ソースビルドはネットワークを切っても完了します。ここでの star は熱量の信号であり、トラフィックではありません。

CLI を主インターフェースにしているのは意図的です。PATH 上の ripwire はエージェントが実行するまでコンテキストを消費しません。一方 MCP のツールスキーマは、呼ばれなくても毎セッションのコンテキストに載り続けます。

主な機能

  • 読む前の地図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。
  • 必要なときだけ MCPripwire wrap <agent> は Claude、Codex、OpenCode の登録手順を表示するだけで、設定は書き換えません。--mcp --listen=HOST:PORT は数少ないソケットを開くモードの一つです。
  • タスク別の 17 スキルskills/install.sh が、どの場面でどの動詞を使うかをエージェントに教えます。182 個の長いフラグをメニュー扱いさせないためです。

プロジェクトは、グラフデータベース系のコードコンテキスト MCP サーバーに対する比較も公開しています。django、webpack、自リポジトリの 48 問で 勝ち 27、負け 7、引き分け 14、消費は約 77K トークン相手の約 486K。これらの数値はベンダー自身のベンチマークであり、第三者監査ではありません。

使用シナリオ

  • コールドスタート:新しいセッションで、ディレクトリ一覧の代わりに重要な 2〜3 ファイルを得る。
  • 変更前レビュー:エージェントが編集する前に、影響範囲と走らせるべきテストを確認する。
  • トークン予算:タスクに紐づいた地図で、「全部読んでから判断」のループを置き換える。

制約:ripwire は助言だけを行い、コードの編集も実行もしません。「これは grep で十分」という答えも正当な結果として返します。履歴を使うコマンドには git と実際のチェックアウトが必要です。複雑さを測定しますが、下げる作業はしません。

料金プラン

プラン 価格 内容
ripwire $0 Apache-2.0 のソースとビルド済みバイナリ。アカウントも API キーも不要。
スキルと 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 キー、埋め込み、デーモン、インデックスサーバーは不要です。ネットワークに触れるのは git URL 入力と --mcp --listen だけです。

CI でビルドできますか?

ビルドには CMake 3.24 以上と C++23 コンパイラだけが必要で、他の依存は同梱されています。

代替案

  • Serena:LSP ベースのセマンティックコードツールキットを MCP 経由で公開。
  • Chrome DevTools MCP:エージェントループのうちリポジトリ側ではなくブラウザ側を担当。
  • Claude Code:ホスト側のエージェント本体。ripwire は読み始める前に渡すものです。

ヒント

  1. バイナリだけでなくスキルも入れてください。スキルがないと、不要な場面でも毎回フルマップを取りに行きます。
  2. --for= は依頼者の言葉で書いてください。順位付けの質はその一文で決まります。
  3. 大きなリファクタの後は再実行してください。地図は都度導出され、古い結論を返しません。

まとめ

ripwire は、大規模リポジトリでコーディングエージェントに与える安価で決定的な第一手です。呼び出しグラフを作り、タスクに対して順位付けし、読むバイト数を減らします。新しいリポジトリでの最初の動作が今もディレクトリ一覧と全ファイル読込なら、試す価値があります。

コメント

まだコメントがありません。最初のコメントを投稿してください!