Repository navigation
ripwire v0.1.0 — the ripgrep of AI context
The first public release.
ripwire is a zero-runtime-dependency C++23 CLI that maps a codebase into a ranked, deterministic call graph for coding agents — ripgrep-fast structural answers, with a tripwire on every claim it emits: unprovable totals ship labelled as floors, truncation is disclosed in-band, and a zero always means none found, never none exists.
What's in the box
- 123 long flags across seven families — orientation (
--for,--tree), navigation (--callers,--impact,--test-gate), the detail ladder (--pack-signatures,--expand), quality (--hotspots,--quality-delta,--edit-check), self-diagnosis, security scanning, and shaping knobs.docs/COMMANDS.mddocuments 101 of them with real recorded output, generated from the binary so it cannot drift. - An MCP server (
ripwire wrap <agent>for Claude Code, Cursor, Codex, Windsurf, Gemini, aider): 30 verbs — 15 read, 12 flagship reflexes, 3 span-addressed edits with a safety contract — plus 17 moment-matched agent skills andprompts/, ten copy-paste orchestrator loops for improving the tool with your own agent. - Determinism as a contract: two runs over the same tree are byte-identical, warm equals cold — gated in CI on every merge, not a tendency.
The numbers (each pinned by an instrument in-tree — see docs/EVALS.md, and its §7 counterexamples)
- Head-to-head on frozen LocBench instances: 36.7% strict file@10 vs 26.7 / 21.7 / 13.3 for three other context tools; median answer 0.074 s (warm, pre-built index — the caveat travels with the number).
- Query routing: +33.3pp held-out localization accuracy over the unrouted baseline (clustered-bootstrap 95% lower bound +25.0pp) at a −39.4% token ceiling.
--pack-signatures: 67.0% fewer element bytes at top-50, root-neutralised and re-derived by a gate on every capture.
Proven where it counts
This release is the product of a portability campaign against real hardware: macOS arm64, Linux x86-64 and aarch64, gcc and clang, the full sanitizer stack (ASan/UBSan/integer/float, fail-fast). First contact with CI found and fixed real bugs no single platform could see — including a silent lint-predicate no-op on gcc/x86-64 (unspecified evaluation order) and a sanitizer-fatal sign-change in the hash loops — each root-caused with measured evidence and pinned by a gate. The suite is 312 gate scripts; test/regression.sh runs green on both build flavours on every merge.
Honesty, structurally
docs/EVALS.md §8 lists the numbers this project refuses to publish, with reasons. The counterexample section is not an afterthought.
git clone https://github.com/redhat-et/ripwire.git && cd ripwire
cmake -S . -B build && cmake --build build -j
./build/ripwire --help
🤖 Generated with Claude Code