A code knowledge graph built for agents
rgctl indexes your repository once, then answers reachability and structure questions in compact JSON — so coding agents use fewer tokens and make fewer confident mistakes.
$ rgctl --version$ rgctl install --skill --tools cursor,claude,codex,antigravity,agents
What sets it apart
Most code graphs stop at symbols, callers, and impact. rgctl adds precomputed reachability, hybrid CPG depth, centrality, communities, and migration/CI outputs — always as deterministic -f json for agents.
Index & ask
Agent-ready facts without dumping trees into context.
discover
One Rust indexing pass builds the graph plus reachability caches. Later questions are lookups — not greps.
find · callers
Exact inventory and typed edges (find, callers, relations, inventory). Stable -f json with schema_version.
semantic
Opt-in intent search ("checkout flow") over functions or communities — offline hash/vocab or ONNX, not a substitute for structure.
Program analysis
Beyond call lists — CFG, PDG, flows, and security paths.
blast-radius
Deterministic upstream impact for a symbol at any depth — compact JSON agents can gate edits on.
cpg · slice · inspect
Hybrid CALL + CFG/PDG façade: statement slices, field mutations, dominance — Joern-class depth without leaving the CLI.
taint · security
Source→sink and CVE-oriented paths when you discover with --with-taint / --with-security — not just “who calls whom.”
Architecture & change
Where complexity concentrates — and what to migrate first.
communities
Label-propagation clusters so agents reason about subsystems, not a flat bag of functions.
metrics
PageRank, betweenness, harmonic centrality, and hotspots — ranked facts, not LLM guesses about importance.
migration · check
Export a prioritized migration_plan.json; enforce blast-radius policy in CI with check --policy-file.
See it run
The same path as the first hour of the user guide, on the ecommerce-java fixture.

From prompt → graph facts → edit
Install the agent pack (rgctl install --skill) for a single skill named rgctl — or drop AGENTS.md into your repo. The model calls rgctl instead of grepping blindly — then reasons on structured impact.
cd your-repo$ rgctl install --skill --tools cursor$ rgctl discover .$ rgctl -f json blast-radius "priceShoppingCart" --depth 2