Rust Β· MCP Β· 14 languages Β· source-available

Your AI agent stops reading files one by one. It understands the whole codebase.

Code Explorer pre-indexes your entire repository into a queryable knowledge graph β€” every function, class, call and import β€” and serves it to any AI agent over MCP. Ask "who calls this?" or "what breaks if I change it?" and get a precise answer in milliseconds, instead of reading file after file.

πŸ¦€ Written in Rust πŸ”Œ 30 tools over MCP πŸ’» 100% local Β· offline 🧩 Claude Code Β· Cursor Β· VS Code
gitnexus impact
$ gitnexus impact executePlan --direction both

Downstream (symbols affected by a change):
  Depth 1 (7)  Depth 2 (39)  Depth 3 (4)
  Depth 4 (7)  Depth 5 (4)
Upstream (symbols that affect this):
  Depth 1 (1)  Depth 2 (13)  Depth 3 (22) …

βœ“ 136 symbols, 5 levels β€” 0.65 s
  no files read Β· whole-repo graph

Real run on a 1,984-file codebase. A text search can't compute that transitive blast radius at all.

The problem it solves

AI coding assistants (Claude Code, Cursor, Copilot…) read source files one at a time, on demand.

  • They read dozens of files to follow a single call chain.
  • They start from scratch every conversation.
  • They fill the context window with raw code, leaving no room to reason.
  • And a text search can't compute a transitive blast radius β€” grep finds where a name appears, not the chain of things that break three hops away.

Code Explorer pre-computes all of that, once, into a graph that lives on disk and answers structural questions instantly.

The gain, measured

Real numbers from indexing a 1,984-file TypeScript codebase (the Code Buddy agent itself), measured 2026-07-03.

πŸ“¦ Index: 1,984 files πŸ”— 67,114 nodes / 153,966 edges ⚑ built once

Question: "What breaks if I change executePlan?"

Agent alone (grep + read)Agent + Code Explorer
Method grep finds 4 files that mention the name one impact call
Cost reading them β‰ˆ 35,000 tokens (est.) 0.65 s Β· one call
Answer direct mentions only β€” the transitive blast radius is uncomputable by text search 136 affected symbols (75 up + 61 down), 5 levels deep

The point isn't only the token saving on this query. It's capability: the complete transitive impact is something a text-search agent simply can't produce reliably β€” it gives up after a few hops or guesses. The graph returns it in one call.

What the graph gives your agent

πŸ•ΈοΈ

Pre-indexed knowledge graph

Your whole repo parsed into symbols and typed relationships β€” functions, classes, calls, imports, hierarchy. Persists on disk, queryable in one call.

πŸ’₯

Blast-radius analysis

impact <symbol> traces upstream callers, downstream callees and transitive impact β€” the single highest-value habit before any refactor.

πŸ”Œ

30 tools over MCP

context, impact, find_cycles, detect_changes, cypher and more β€” to any MCP agent: Claude Code, Cursor, VS Code.

🌐

14 languages

JS, TypeScript, Python, Java, C, C++, C#, Go, Rust, Ruby, PHP, Kotlin, Swift, Razor β€” via tree-sitter, plus deep legacy ASP.NET MVC support.

πŸ’»

100% local & offline

The graph is a snapshot you own. No cloud, no API, no telemetry β€” runs entirely on your machine.

🧭

Honest static analysis

Read-only by design. Call edges through dynamic imports may be missed β€” so "dead code" is a candidate, not proof. A fast, precise navigation aid, stated plainly.

Quick start

# 1. Build (release, ~35 MB binary)
cargo build --release        # binary at target/release/gitnexus

# 2. Index your repo once (re-run with --incremental after changes)
gitnexus analyze .

# 3. Point your agent at it over MCP
gitnexus mcp-install         # writes .mcp.json for Claude Code
# …or add it manually:  { "command": "gitnexus", "args": ["mcp"] }

Verify: your agent should report "gitnexus Β· 30 tools".

License

PolyForm Noncommercial 1.0.0. Free to use, study, test and build on for any non-commercial purpose β€” personal projects, research, education, evaluation. Commercial use requires a separate license β€” open an issue or get in touch.