AI-first dependency graph & code intelligence for VS Code. Visualize file imports, symbol call hierarchies, and cross-file call graphs. Detect circular dependencies, dead code, and breaking changes. Built-in MCP Server with 21 tools for GitHub Copilot, Cursor, Claude, Windsurf, and Antigravity. Gene
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
The AI-first dependency intelligence platform for VS Code.
See your codebase the way your AI does — as a graph.
Star History
Star History
Graph-It-Live turns your codebase into a live, interactive dependency graph — one that both you and your AI assistant can query in real time.
Built for architects who need the big picture and developers who need to ship safely, it combines three analysis layers in one tool:
Layer
What you see
Powered by
File Graph
File-to-file import relationships
Regex + AST parsing
Symbol View
Function/class call hierarchy inside a file
AST (ts-morph)
Live Call Graph
Cross-file symbol call relationships
Tree-sitter + SQLite
All three layers are also exposed to AI via a 22-tool MCP server, so your assistant can answer architecture questions with zero hallucination.
Why Graph-It-Live?
Graph-It Review Gate
graph-it review-pr --base origin/main --format markdown performs a deterministic, local Git-diff review before CI. It compares exported TypeScript signatures and, when the warmed local index supports them, reports cycle and unused-export evidence, known dependents, and conventional test-file candidates. Every score factor and unavailable analysis capability is explicit; bounded work is marked partial rather than complete. The composite Action is informational by default; set fail-on-risk: high or critical to gate a PR. It sends only a sanitized report to GitHub, verifies GitHub API responses, and emits an encoded VS Code link only when a workspace-relative risky symbol exists.
The Action does not trigger itself: add a consumer workflow such as docs/examples/graph-it-review-gate.yml. It installs @magic5644/graph-it-live@latest into an isolated temporary directory and analyzes the consumer checkout; it never runs npm ci or builds that checkout. Set cli-version to an npm version, tag, or range to override latest. The Action logs and exposes the resolved cli-version, and rejects an installed version below 1.13.0.
- uses: magic5644/Graph-It-Live/.github/actions/graph-it-review-gate@v1.13.0
with:
token: ${{ secrets.GITHUB_TOKEN }}
cli-version: 1.13.2 # optional; omitted means npm latest
comment: true
fail-on-risk: high
Use pull_request, not pull_request_target, for untrusted PR code. Fork workflows should set comment: false; remove pull-requests: write when comments are disabled. The npm publication of 1.13.0, the public npx verification, and the immutable Git tag v1.13.0 are manual post-merge release steps, not part of this PR.
Stop pasting file paths and explaining your project structure. Graph-It-Live exposes 23 powerful dependency analysis tools directly to your AI assistant via the Model Context Protocol (MCP), and 22 native LM Tools directly in Copilot Agent mode (no MCP setup required).
Works with: GitHub Copilot, Claude (Desktop & Code), Cursor, Windsurf, Antigravity, and any MCP-compatible client.
What your AI can do with Graph-It-Live
You ask
AI uses
Result
"Map out the architecture of the auth module"
crawl_dependency_graph
Full dependency tree as structured data
"What breaks if I change User.ts?"
find_referencing_files
All dependent files with O(1) lookup
"Give me an overview of Spider.ts"
generate_codemap
Exports, internals, deps, dependents, call flow — in one call
"What calls formatDate() across the project?"
get_symbol_callers
All callers with instant lookup
"Show function-level flow in this file"
analyze_file_logic
Intra-file call hierarchy
"Analyze the impact of changing calculateTotal's signature"
get_impact_analysis
Breaking change detection + all affected callers
"Find unused exports in the codebase"
find_unused_symbols
Dead code detection
"Are there circular dependencies?"
crawl_dependency_graph
Cycle detection built in
"How does Spider crawl files?"
query_natural_language
Natural language answer synthesised from the call graph
GitHub Copilot querying Graph-It-Live to analyze a project's dependency structure
🗺️ Codemap Generation (New)
The graphitlive_generate_codemap tool gives your AI a complete structural overview of any file in a single call — no more chaining 5 different tools.
Background indexing: Workspace indexed in a background thread for O(1) queries
Interactive file dependency graph with expand/collapse and cycle detection
Symbol-Level Drill-Down
Go beyond file dependencies — drill into any file to visualize function-to-function and class-to-class call relationships powered by AST analysis (ts-morph for TypeScript/JavaScript, tree-sitter for Python/Rust).
How it works:
From the File Graph: Double-click any file node (or right-click → "Drill Down")
Instant symbol graph: See an interactive tree showing:
Functions in vibrant blue
Classes in deep purple
Variables/Constants in amber
→ calls — outgoing calls from each symbol
← called by — incoming callers (including from other files)
Recursive calls with cycle badges
Click-to-navigate: Click any symbol to jump to its definition
Breadcrumb nav:Project > folder > file.ts — one click to return to file view
Multi-language support (symbol drill-down):
TypeScript / JavaScript (ts-morph AST)
Python (tree-sitter WASM)
Rust (tree-sitter WASM)
Note: C#, Go, and Java are supported at the file dependency graph level (L1) and the Live Call Graph level (L3). Symbol drill-down (intra-file view, L2) is not yet available for these languages.
Benefits:
Understand code flow without reading every line
See who calls your exports — incoming dependencies from other files
Detect recursive calls — cycle detection with visual indicators
Refactoring confidence — visualize all internal dependencies
Symbol drill-down: purple classes, blue functions, amber variables with call relationships
🔷 Live Call Graph (New)
The Live Call Graph visualises cross-file symbol call relationships across your entire project in a Cytoscape.js panel backed by an in-memory SQLite database.
Unlike the Symbol View (which shows relationships within a single file via AST), the Call Graph shows how symbols call each other across files using Tree-sitter AST extraction.
Key capabilities:
Feature
Description
Cross-file analysis
See function calls that span multiple files
Neighbourhood queries
BFS expansion from any symbol, configurable depth (1–5)
Cycle detection
Mutual-recursion and self-recursion highlighted in red
Compound node layout
Symbols grouped by folder for visual clarity
Call order numbering
CALLS edges numbered to show invocation order
Theme-aware
Adapts to dark, light, and high-contrast VS Code themes
Live refresh
On file save, the graph updates automatically (500ms debounce)
Filter legend
Toggle visibility by symbol type (function, class, variable) and by folder
How to use:
Open a source file and place the cursor on a symbol (function, class, method…). Then open the command palette → Graph-It-Live: Show Call Graph or click the "Call Graph" button in the sidebar toolbar
The extension indexes your workspace (Tree-sitter AST extraction)
Click any symbol to re-center the neighbourhood
Drag any node (symbol or entire file/folder group) to rearrange the layout freely
Use the depth slider to expand or narrow the view
Filter by symbol type or folder using the legend overlay
Live Call Graph — cross-file symbol relationships with cycle detection and folder grouping
Language support (Live Call Graph):
TypeScript / JavaScript (including Vue, Svelte)
Python
Rust
C# (New)
Go (New)
Java (New)
Unused Dependency Filter
Smart filter to show only dependencies that are actually used in your code. Toggle between showing all imports or filtering unused ones with a single click.
Hide mode: Unused dependencies completely removed from the graph
Dim mode: Unused dependencies shown with reduced opacity and dashed lines
Hide mode: Unused dependencies completely removed
Dim mode: Unused dependencies shown with reduced opacity
Prerequisites
Node.js: v22 or higher
VS Code: v1.96.0 or higher
No build tools required — the extension uses WebAssembly (WASM) parsers. No Python, C++ compiler, or native compilation needed.
Installation
From Marketplace
Search for "Graph-It-Live" in the Extensions view (Ctrl+Shift+X / Cmd+Shift+X), or install from the VS Code Marketplace.
From Open VSX Registry
Also available on the Open VSX Registry for VSCodium and other compatible editors.
Usage
Open a Project — TypeScript, JavaScript, Python, Rust, C#, Go, Java, Vue, Svelte, or GraphQL
Open the Graph — Click the Graph-It-Live icon in the Activity Bar, or run Graph-It-Live: Show Dependency Graph
Interact:
Click a node → open the file
Double-click a node → drill down to symbol view
Right-click a node → expand, collapse, find referencing files
Command palette → Show Call Graph for cross-file symbol analysis
Configuration
Performance Profiles
Choose a performance profile based on your machine:
Profile
RAM
Concurrency
Max Edges
Cache
default(recommended)
4-8 GB
4
2000
500/200
low-memory
< 4 GB
2
1000
200/100
high-performance
16 GB+
12
5000
1500/800
custom
Any
Manual
Manual
Manual
Set via graph-it-live.performanceProfile in VS Code settings.
With custom profile, you can fine-tune:
unusedAnalysisConcurrency (1-16)
unusedAnalysisMaxEdges (0 = unlimited)
maxCacheSize (50-2000)
maxSymbolCacheSize (50-1000)
indexingConcurrency (1-16)
All Settings
Configure how unused dependencies are displayed: hide (remove completely) or dim (show with reduced opacity)
Setting
Default
Description
graph-it-live.performanceProfile
default
Performance preset: default, low-memory, high-performance, or custom for manual control.
graph-it-live.enableMcpServer
false
Enable the MCP server for AI/LLM integration.
graph-it-live.enableMcpDebugLogging
false
Privacy-sensitive debug logging for MCP (creates ~/mcp-debug.log). Enable only for troubleshooting.
graph-it-live.maxDepth
50
Maximum dependency depth to analyze.
graph-it-live.excludeNodeModules
true
Exclude node_modules imports from the graph.
graph-it-live.ignoreTypeImports
false
Ignore TypeScript type-only imports/exports in the dependency graph. A VS Code restart may be required after changing this setting.
graph-it-live.enableBackgroundIndexing
true
Enable background indexing for O(1) reverse dependency lookups.
graph-it-live.persistIndex
false
Persist reverse index to disk for faster startup.
graph-it-live.indexingConcurrency
4
Parallel file processing during indexing (1-16).
graph-it-live.indexingStartDelay
1000
Delay (ms) before starting background indexing after activation.
graph-it-live.logLevel
info
Logging verbosity: debug, info, warn, error, or none.
graph-it-live.unusedDependencyMode
hide
How to display unused dependencies: hide or dim.
graph-it-live.unusedAnalysisConcurrency
4
Parallel file analysis for unused detection (1-16).
graph-it-live.unusedAnalysisMaxEdges
2000
Skip auto unused analysis above this edge count (0 = no limit).
graph-it-live.persistUnusedAnalysisCache
false
Cache unused analysis results to disk.
graph-it-live.maxUnusedAnalysisCacheSize
200
Max cached unused analysis results (LRU eviction).
graph-it-live.maxCacheSize
500
Max cached file dependency analyses.
graph-it-live.maxSymbolCacheSize
200
Max cached symbol analysis results.
graph-it-live.preIndexCallGraph
true
Pre-index the call graph database at startup for near-instant first query.
graph-it-live.symbolViewLayout
hierarchical
Layout for symbol drill-down: hierarchical, force-directed, or radial.
Standalone CLI
Graph-It-Live is also available as a standalone npm package — no VS Code required.
npm install -g @magic5644/graph-it-live
After install, graph-it is available on your PATH:
graph-it --version # Show installed version
graph-it --help # Full help with MCP config snippets
graph-it scan # Index/re-index the workspace
graph-it summary # Workspace overview
graph-it summary <file> # Per-file codemap (exports, internals, deps, call flow)
graph-it trace <file#Symbol> # Trace execution flow from an entry symbol
graph-it explain <file> # File logic analysis — intra-file call hierarchy
graph-it path <file> # Full dependency graph from a file
graph-it check # Scan whole workspace for dead code (unused exports)
graph-it check <dir> # Scan a subdirectory for dead code
graph-it check <file> # Detect unused exported symbols in a single file
graph-it query "<question>" # Natural language query over the call graph (LLM or heuristic fallback)
graph-it wiki # Generate a navigable markdown wiki from the call graph
graph-it serve # Launch MCP stdio server (for AI clients)
graph-it tool --list # List all 21 CLI analysis tools
graph-it tool <mcp-tool> [args] # Run any MCP tool directly from the terminal
graph-it export [path] [--format html] # Export graph as standalone HTML (vis.js)
graph-it update # Update graph-it to the latest version
graph-it install # Symlink the binary into your system PATH (opt-in)
Troubleshooting: if graph-it runs but prints nothing at all (versions
≤ v1.13.6 shipped a broken npm bin wrapper), graph-it update can't help
— the CLI is silently dead on arrival. Reinstall directly instead:
npm install -g @magic5644/graph-it-live@latest. Fixed in v1.14.0; see
docs/CLI.md for details.
Output formats: All analysis commands support --format json|toon|markdown. Use toon for AI consumption (30–60% token savings). The trace and path commands additionally support --format mermaid to generate a Mermaid diagram of the call or dependency flow:
This output can be pasted directly into any Markdown renderer (GitHub, Notion, VS Code Preview, etc.) or piped to a diagramming tool.
Analyze Locally. Send Less Context.
Graph-It-Live reduces the context an AI assistant needs to inspect. Instead of sending source files or a broad repository dump to a model, use the CLI or MCP tools to ask for the specific dependency, symbol, caller, impact, or call-graph result you need.
The analysis happens locally. Graph-It-Live builds its index and extracts code structure with AST analysis and Tree-sitter, then computes graph traversal, reverse dependencies, and impact analysis in the local process. Architecture, codemap, impact, and call-graph tools do not need an LLM to calculate their results.
For AI-facing workflows, request toon output when the result contains structured lists or graphs. TOON (Token-Oriented Object Notation) removes repeated JSON field names while retaining the data an agent needs. This compounds the main saving: targeted local analysis first, compact structured output second.
The practical alternative is often much larger: pass a tool result to the model rather than the source files, imports, and unrelated modules it would otherwise need to reconstruct the same relationship. The exact reduction depends on the repository and the question. Measure it for your workflow by comparing the bytes or characters of the Graph-It-Live output with the raw source/context you would otherwise provide.
Run npm run test:context-economy to produce a reproducible JSON-versus-TOON corpus for architecture, codemap, impact, and call-graph analysis. Its report records bytes, characters, and chars/4 token estimates separately from actual llmUsage. These are representation estimates, not provider billing tokens or a universal cost-saving guarantee.
The optional query command is deliberately narrower: a configured LLM can extract search keywords, but graph scoring and traversal stay local. Without provider credentials, it uses the heuristic keyword fallback.
Workspace flag: Use --workspace <path> (or -w) to specify the project root explicitly; defaults to the current working directory.
Interactive REPL: Run graph-it with no arguments to enter interactive mode. Type /query how does X work to ask natural language questions about your codebase (no quotes needed). Use /wiki to generate a navigable markdown wiki from the call graph. Other slash commands: /trace, /summary, /architecture, /check, /cycles, /export (export dependency graph as standalone HTML), /format, /help.
Full CLI reference: See docs/CLI.md for complete documentation on every command, all options, output format examples, advanced workflows, and the full MCP tools reference.
Agent Skill
A Graph-It-Live skill is available for AI agents (GitHub Copilot, Claude Code, Cursor, and others). It gives your agent pre-built knowledge of all Graph-It-Live tools, workflows, and best practices — so it can use the extension and CLI without any manual guidance.
Install it with:
npx skills add magic5644/skills/graph-it-live
Once installed, your agent automatically knows how to query the dependency graph, use MCP tools, generate codemaps, detect breaking changes, and more.
MCP Server (AI/LLM Integration)
Graph-It-Live includes an optional MCP server that exposes its full analysis engine to AI assistants and LLMs.
Setup
Option A — VS Code extension:
Set graph-it-live.enableMcpServer to true in VS Code settings
The server starts automatically when the extension activates
Your AI assistant detects the tools via MCP auto-discovery
Option B — Standalone CLI (no VS Code required):
Install: npm install -g @magic5644/graph-it-live
Run graph-it serve — starts an MCP stdio server pointing at your current directory
The MCP server exposes 26 tools for AI/LLM consumption. The 21 general-purpose analysis tools, excluding the server-management-only set_workspace and the 4 tools with dedicated CLI commands (review-pr, query, wiki, stats), are also available as native LM Tools (#graphResolve, #graphBreaking, #graphCallGraph, etc.) directly in Copilot Agent mode — no MCP server required for those.
Tool
Description
graphitlive_set_workspace
Set the project directory to analyze
graphitlive_analyze_dependencies
Analyze a single file's direct imports and exports
graphitlive_crawl_dependency_graph
Crawl the full dependency tree from an entry file
graphitlive_find_referencing_files
Find all files that import a given file (reverse lookup)
graphitlive_expand_node
Expand a node to discover dependencies beyond known paths
graphitlive_parse_imports
Parse raw import statements without path resolution
graphitlive_verify_dependency_usage
Verify whether a specific dependency is actually used in a file
graphitlive_resolve_module_path
Resolve a module specifier to an absolute file path
graphitlive_get_symbol_graph
Get symbol-level dependencies (functions, classes) within a file
Fallback (if CLI not installed): replace "command": "graph-it" with "command": "node" and add "args": ["${extensionPath:magic5644.graph-it-live}/dist/mcpServer.mjs"].
Cursor
Create or edit .cursor/mcp.json in your workspace or ~/.cursor/mcp.json for global configuration:
git clone https://github.com/magic5644/Graph-It-Live.git
cd Graph-It-Live
nvm use # optional, uses Node.js 22 when nvm is installed
npm install
npm run build
# Press F5 in VS Code to launch the Extension Development Host