Repolode
redhat-et

redhat-et/ripwire

A zero-dependency C++23 CLI and MCP server that gives coding agents a ranked map of a codebase and checks their edits for blast radius, tests to run and quality regressions.

Stars
2,464
Forks
158
Open issues
70
Last commit
5 hours ago

What is it?

ripwire is a command-line tool and MCP server for coding agents. Before an agent reads a repository, it can run ripwire to get a ranked, deterministic call graph: the main subsystems, entry points, the symbols that matter most, and their callers. Queries such as --for, --expand, --callers and --path return compact answers with a token budget, so an agent can avoid repeated grep and whole-file reads.

After an edit, the same tool reports what the change touches: blast radius, the tests that reach the changed code, quality deltas that only list regressions, forgotten co-change partners, and public-symbol contract changes. Unsure results are labelled, for example with a confidence value or dashed edges in the HTML map, and truncated output names the next command to recover the rest.

The project is written in C++23 with no runtime dependencies and supports a broad set of languages through tree-sitter, including Rust, Python, Go, TypeScript and Java. It installs with one shell line and can set up skills for agents such as Claude Code, Codex, Cursor and Gemini.

Key features

  • 01Produces a ranked, deterministic map of a repository's subsystems, entry points and key symbols.
  • 02Answers targeted queries such as where a concept is handled, who calls a function and what a function's body is.
  • 03Reports blast radius, tests that reach changed code and quality regressions after an edit.
  • 04Labels uncertain call edges and disclosed truncations instead of presenting guesses as fact.
  • 05Ships as a single C++ binary with no runtime dependencies and can run as an MCP server.

Use cases

  • Orienting a coding agent in a large unfamiliar repository before it starts editing.
  • Checking which tests to run and what else a change might break before opening a pull request.
  • Reviewing a diff for shotgun-surgery patterns and forgotten co-changed files.
  • Visualizing a codebase's call graph with complexity or churn coloring in a standalone HTML file.

Quick start

  1. 1

    Install ripwire with the one-line installer from the README

  2. 2

    Add the install directory to your PATH

    export PATH="$HOME/.local/bin:$PATH"
  3. 3

    Run ripwire on your repo with a description of the change

    ripwire . --for="<the change you are about to make, in words>"

Things to know

  • The quick install runs a remote script that is piped into bash, so review it first if that concerns you.

Topics

FAQ

What is ripwire?
A zero-dependency C++23 CLI and MCP server that gives coding agents a ranked map of a codebase and checks their edits for blast radius, tests to run and quality regressions. ripwire is a command-line tool and MCP server for coding agents. Before an agent reads a repository, it can run ripwire to get a ranked, deterministic call graph: the main subsystems, entry points, the symbols that matter most, and their callers. Queries such as --for, --expand, --callers and --path return compact answers with a token budget, so an agent can avoid repeated grep and whole-file reads.
Is ripwire free to use? What license does it have?
ripwire is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
Is ripwire still maintained?
Actively maintained. The last commit to ripwire was on Oct 22, 2026.
What can I use ripwire for?
Orienting a coding agent in a large unfamiliar repository before it starts editing. Checking which tests to run and what else a change might break before opening a pull request. Reviewing a diff for shotgun-surgery patterns and forgotten co-changed files. Visualizing a codebase's call graph with complexity or churn coloring in a standalone HTML file.
How do I install ripwire?
Install ripwire with the one-line installer from the README Add the install directory to your PATH: export PATH="$HOME/.local/bin:$PATH" Run ripwire on your repo with a description of the change: ripwire . --for="<the change you are about to make, in words>"
Where can I get ripwire?
The source code and installation instructions are on GitHub: https://github.com/redhat-et/ripwire

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects