Skip to content

ripwire v0.1.0 — the ripgrep of AI context

Choose a tag to compare

@joyful-ii-V-I joyful-ii-V-I released this 02 Aug 15:03
· 5675 commits to main since this release

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.md documents 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 and prompts/, 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