CodeNexus
Persistent function-call graph for fast codebase navigation in Copilot. Builds a graph of symbols and call relationships once — answers agent queries instantly without per-prompt semantic search.
Supports TypeScript, JavaScript, and Python. Works in mono-repos.
Features
Index your codebase
Run CodeNexus: Index Repository (Ctrl+Shift+P) to scan all TS/JS/Python files. Graph persists across sessions — no re-index needed on restart.
Status bar: $(graph) CodeNexus → $(sync~spin) indexing… → $(graph) CodeNexus: ready (N symbols · M edges)
Files re-index automatically on save. External changes (git checkout, etc.) detected via file system watcher.
Graph visualization
Run CodeNexus: Open Graph Visualization for an interactive SVG canvas:
- File-grouped cards with dagre LR layout
- Tarjan SCC cycle detection — cyclic groups collapsed into amber super-nodes
- Port dot connectors — hollow ring (source) / solid dot (target)
- Impact slice — right-click → "Show callees" / "Show callers"
- Symbol drag-extract — drag a member out to create a standalone card
- Context menu — collapse/expand, open in editor, extract, put back, reassemble
- Search + filter — by project root, edge type, symbol type; search by name
- Details panel — click any card to see symbol details and open in editor
| Tool |
Reference |
What it does |
| Trace Callers |
#traceCallers |
All symbols that call the given symbol |
| Trace Callees |
#traceCallees |
All symbols called by the given symbol |
| Find Symbol |
#findSymbol |
Symbol definition + all reference locations |
| Trace Dependency Path |
#traceDependencyPath |
Shortest call path between two symbols (BFS) |
| Graph Summary |
#graphSummary |
Symbol/edge counts by type, staleness, project roots |
| Index Repository |
#indexRepository |
Trigger a full re-index |
| Clear Index |
#clearIndex |
Clear all graph data |
| Export Graph |
#exportGraph |
Dump full graph as codenexus-graph.json |
| Open Graph |
#openGraph |
Open the interactive graph visualization |
| Show Performance Report |
#showPerformanceReport |
Timing breakdown of last index run |
Examples:
#traceCallers symbolName="activate"
#traceCallees symbolName="GraphStore"
#findSymbol symbolName="indexWorkspace"
#traceDependencyPath fromSymbol="activate" toSymbol="persistGraph"
Results include file paths and line numbers. Stale results include a ⚠️ warning when the file has changed since last index.
Commands
| Command |
What it does |
CodeNexus: Index Repository |
Full index of all workspace files |
CodeNexus: Clear Index |
Remove all stored graph data |
CodeNexus: Open Graph Visualization |
Open the interactive graph panel |
CodeNexus: Export Graph to JSON |
Write codenexus-graph.json to workspace root |
CodeNexus: Show Performance Report |
Timing breakdown of last index run |
Requirements
- VS Code 1.116.0 or later
- GitHub Copilot for chat tool usage
- TypeScript language server active for best TS/JS call-edge accuracy (built-in)
- Pylance for best Python call-edge accuracy (optional — AST + regex fallback used otherwise)
Extension Settings
| Setting |
Type |
Default |
Description |
codenexus.includeGlobs |
string[] |
["**/*.{ts,js,tsx,jsx,py}"] |
File globs to index |
codenexus.excludeGlobs |
string[] |
[] |
Additional globs to exclude |
codenexus.autoIndexOnStartup |
boolean |
false |
Auto-index when workspace opens |
codenexus.maxFileSizeKB |
number |
500 |
Skip files larger than this (KB) |
Copilot Skill
The extension contributes a Copilot agent skill (chatSkills in package.json) from .github/skills/codenexus/SKILL.md — auto-loaded by Copilot when the extension is active. Provides a workflow guide for using CodeNexus tools: when to index, how to chain tools, edge type meanings.
Known Issues
- CJS
require() path resolution incomplete for non-standard paths (path aliases, barrel index detection). import/from statements fully supported.
- Bare Python
import module (stdlib/third-party) not resolved — external libraries out of scope.
Extension Guidelines