A code-graph that never forgets what your codebase looks like.
Drop structural code intelligence into Claude Code, Cursor, Codex, or any MCP-aware agent. Your agent stops grepping ten files to find who calls X and just asks the substrate. Sub-millisecond answers. Persistent across sessions. $0 per query.
One pipeline. Eight languages. One substrate.
Your codebase is parsed locally into structural triples (caller / callee / class / module / import edges) and pushed to the substrate as a portable knowledge graph. The agent queries it through 5 MCP tools — no LLM in the loop on the substrate side, just a deterministic engine.
Eight languages, same triple schema.
Every language indexes into the same (subject, relation, object) shape. defined_in_module, defined_in_class, calls, called_by, imports_from, inherits, implements. The agent asks the same MCP tool regardless of language; the substrate returns the same answer shape.
| Language | Extensions | Parser | Install |
|---|---|---|---|
| Python | .py | stdlib ast | included in base |
| JavaScript | .js / .jsx / .mjs / .cjs | Babel | included in base |
| TypeScript | .ts / .tsx | Babel | included in base |
| Go | .go | tree-sitter | [multilang] extra |
| Rust | .rs | tree-sitter | [multilang] extra |
| Java | .java | tree-sitter | [multilang] extra |
| Ruby | .rb | tree-sitter | [multilang] extra |
| C / C++ | .c / .h / .cpp / .hpp | tree-sitter | [multilang] extra |
Five MCP tools. Five questions your agent stops grepping for.
Each is a thin wrapper over the substrate's graph query surface, with “Call this when…” routing nudges in the tool description so your agent picks the structural path instead of opening files.
code_kg_calleesWho does this function call?
code_kg_callees("engines.kg::HDKnowledgeGraph.query")code_kg_callersWhat calls this function?
code_kg_callers("bind")code_kg_class_ofWhat class owns this method?
code_kg_class_of("engines.kg::HDKnowledgeGraph.query")code_kg_module_ofWhat module owns this name?
code_kg_module_of("HDKnowledgeGraph")code_kg_importsWhat does this module import?
code_kg_imports("engines.kg")Install in under a minute.
Auto-fires on every Claude Code session. No CI step, no extra service, no separate billing.
# 1. install (Python + JS/TS in the base package) pip install neruva-record # 2. wire the SessionStart hook neruva-record install --api-key <your-key> # 3. optional: add Go / Rust / Java / Ruby / C++ pip install 'neruva-record[multilang]' # 4. open any project — your code-graph indexes silently cd ~/projects/my-repo && claude
Index runs in the background; if the same project was indexed within the last hour, it's skipped. Subsequent sessions re-resolve the same code-graph automatically via a stable hash of the project path.
Why this is different from grep, embeddings, or repo-maps.
Index once at SessionStart, query forever. Survives across sessions, across machines, across the same agent revisiting the codebase a week later. The .neruva export means you own it — mail the file, version it in git, replay it bit-identically.
Embeddings tell you 'this function is semantically near that one.' A code-graph tells you 'this function calls that one,' with exact answers and calibrated confidence. The questions an agent actually needs answered are structural, not approximate.
Code-graph triples land in HD knowledge graphs on the substrate, not the records bucket. They don't consume your tier's records cap. Query cost on the substrate side is $0 per call — no LLM in the loop.
How this compares.
See /compare for the full breakdown vs Sourcegraph / SCIP / LSP / Cursor @codebase / Aider / roll-your-own.
Hosted enterprise service · web UX · per-seat pricing. Strong cross-repo. Separate billing from your AI stack, no MCP, no agent-memory pairing.
Per-process, dies when the editor closes. No persistence across sessions, no cross-codebase queries, no portable export.
Re-greps + re-reads every session. O(tokens × codebase) burned every turn for the same information.
Approximate semantic similarity. Right for 'docs that mention X,' wrong for 'who calls X' with exact answer.
Stop grepping. Start asking.
Your AI coding agent already has memory. Give it structural code intelligence too. One install, eight languages, free forever on the starter tier.