GitNexus knowledge graph integration for pi. Enriches every search, file read, and symbol lookup with call chains, callers/callees, and execution flows — automatically.
kb-agent.mp4
The graph view in the demo is from gitnexus-web and is not part of this extension.
When the agent reads a file or runs a search (grep, find, bash, read_many), the extension appends graph context from the knowledge graph inline with the results. The agent sees both together and can follow call chains without additional queries.
Agent reads auth/session.ts
→ file content returned normally
→ [GitNexus] appended: callers of the module, what it imports, related tests
Agent runs grep("validateUser")
→ grep results returned normally
→ [GitNexus] appended: Called by: login, signup / Calls: checkPermissions, getUser
→ filenames in the grep output are also looked up in parallel
Agent calls read_many([api.ts, db.ts, router.ts])
→ file contents returned normally
→ [GitNexus] appended with per-file labeled sections:
### api.ts
<call graph context for api>
### db.ts
<call graph context for db>
Seven tools are also registered directly in pi — the agent can use them explicitly for deeper analysis without any setup.
- gitnexus >= 1.4.8 available as
gitnexuson PATH (e.g.npm i -g gitnexus) - A GitNexus index in your project: run
/gitnexus analyze
The extension never installs anything automatically. It assumes gitnexus is on PATH. If your setup differs, use /gitnexus settings to set a custom command (e.g. npx gitnexus@latest).
- Install the extension:
pi install npm:pi-gitnexus - Install gitnexus:
npm i -g gitnexus - Open your project in pi
- Run
/gitnexus analyzeto build the knowledge graph - Done — file reads and searches are now enriched automatically
| Tool | Pattern used |
|---|---|
grep |
Longest identifier literal extracted from the search pattern |
bash with grep/rg |
First non-flag argument after grep/rg (quote-aware, pipe-safe) |
bash with cat/head/tail |
Filename of the target file (quote-aware) |
bash with find |
Value of -name/-iname |
find |
Glob pattern basename |
read |
Filename of the file being read (indexed code/docs files only) |
read_many |
Each indexed code/docs file in the batch (up to 5), labeled per-file in output |
| Any grep/bash result | Filenames extracted from result lines (path/file.ts:line:) |
Each tool result augments up to 3 patterns in parallel (up to 5 for read_many). Patterns already augmented this session are skipped.
| Command | Description |
|---|---|
/gitnexus |
Open the main menu (status, Analyze, Settings, Help) |
/gitnexus status |
Show index status and session enrichment count |
/gitnexus analyze |
Build or rebuild the knowledge graph |
/gitnexus on / /gitnexus off |
Enable/disable auto-augment (tools unaffected) |
/gitnexus settings |
Open the settings panel (auto-augment, timeout, limits, command) |
/gitnexus <pattern> |
Manual graph lookup for a symbol or pattern |
/gitnexus query <text> |
Search execution flows |
/gitnexus context <name> |
360° view of a symbol: callers, callees, processes |
/gitnexus impact <name> |
Upstream blast radius of a change |
/gitnexus help |
Show command reference |
The following tools are registered in pi and always available to the agent:
| Tool | Description |
|---|---|
gitnexus_list_repos |
List all indexed repositories |
gitnexus_query |
Search the knowledge graph for execution flows |
gitnexus_context |
360° view of a symbol: callers, callees, processes |
gitnexus_impact |
Blast radius analysis for a symbol |
gitnexus_detect_changes |
Analyze staged/unstaged/all/compare git changes and affected execution flows |
gitnexus_rename |
Coordinated multi-file rename preview/apply through the knowledge graph |
gitnexus_cypher |
Execute raw Cypher queries against the graph |
The extension bundles 5 workflow skills that guide the agent through common tasks:
| Skill | When to use |
|---|---|
/skill:gitnexus-exploring |
Understand architecture, trace execution flows, explore unfamiliar code |
/skill:gitnexus-debugging |
Debug a bug, trace an error, find why something fails |
/skill:gitnexus-pr-review |
Review a PR, assess merge risk, check blast radius |
/skill:gitnexus-refactoring |
Rename, extract, split, or restructure code safely |
/skill:gitnexus-impact-analysis |
Know what breaks before changing something |
Skills are loaded on-demand — only the description is in context until the agent or user invokes one.
Auto-augment hook — fires after every grep/find/bash/read/read_many tool result. Extracts up to 3 patterns (primary from input, secondary filenames from result content) and calls gitnexus augment for each in parallel. Regex patterns are parsed to extract the longest identifier-like literal; bash commands are tokenized with quote and pipe boundary awareness. Results are wrapped in --- delimiters and appended to the tool result. For read_many, each file in the batch gets its own labeled section so the agent knows exactly which context belongs to which file.
Session dedup cache — each symbol or filename is augmented at most once per session (case-insensitive). Patterns with results are cached in augmentedCache; patterns that returned empty are tracked in a separate emptyCache to prevent unbounded retries while still allowing retries after an index rebuild (both caches clear on session reset).
MCP client — tools (list_repos, query, context, impact, detect_changes, rename, cypher) communicate with gitnexus mcp over a stdio pipe. The process is spawned lazily on the first tool call and kept alive for the session. No network socket, no port.
Session lifecycle — on session start/switch, the extension resolves the full shell PATH through /bin/sh (picking up nvm/fnm/volta without depending on a user shell like nushell), probes the binary, checks for an index, and notifies accordingly. The MCP process is restarted with the new working directory.
Auto-augment toggle — /gitnexus off disables the hook without affecting tools. Useful when the graph output is noisy for a particular task. Resets to enabled on session switch.
Analyze guard — auto-augment is paused during /gitnexus analyze to avoid injecting stale or partially-built index results.
This extension (pi-gitnexus) is MIT licensed. GitNexus itself is published under the PolyForm Noncommercial License — commercial use requires a separate agreement with its author. Install and use gitnexus in accordance with its license terms.
- Tested with gitnexus 1.4.8. Older versions may have incompatible MCP schemas.
- The extension never runs
gitnexus analyzeautomatically — indexing is always user-initiated via/gitnexus analyze. - The index is a static snapshot. Re-run
/gitnexus analyzeafter significant code changes. The agent will suggest this when the index appears stale. - In multi-repo GitNexus setups the extension automatically passes the current repo root path to MCP tools, but every tool also accepts an explicit
repooverride. gitnexus_detect_changesfollows the current MCP API: usescope(unstaged,staged,all, orcompare) and optionalbase_refinstead of pasting raw diffs.- Markdown files (
.md,.mdx) participate in augmentation alongside code files when GitNexus has indexed them. gitnexus_renameandgitnexus_cypherare exposed intentionally; usegitnexus_renamewithdry_runfirst because it can propose multi-file edits.- The enrichment is appended to the tool result the agent receives — files on disk and raw tool outputs are never modified.
