Graphoxide for VS CodeGraphoxide turns a repository into a navigable code knowledge graph. This extension brings extraction, architecture discovery, impact analysis, and source navigation into VS Code.
RequirementsThe extension requires VS Code 1.101 or newer for native MCP server discovery. Marketplace and packaged VSIX builds include the native Graphoxide executable for
their target platform, so no separate CLI installation is required. When running
the extension from source, build
Alternatively, set Graphoxide: Binary Path to an absolute executable path. The extension has no Node runtime dependencies and its graph visualization loads no remote scripts or assets. Binary discovery checks an explicit setting first, followed by the packaged
binary, Tagged releases build and publish six VSIX packages for macOS, Linux, and
Windows on x64 and arm64. Each package stages the matching native executable,
records its version and target, includes the third-party license report, and is
verified before Marketplace publication. Extension-specific notes live in
Get started
Enabling is workspace-specific and requires a trusted workspace. Not now asks again on a future opening; Don’t ask for this workspace suppresses the prompt. Run Graphoxide: Reset Workspace Welcome to restore it, or turn off Graphoxide: Prompt On First Open globally. Existing graphs and external MCP registrations are not deleted when managed mode is disabled. By default, the extension reads For a Registry v1-backed source tree, set Graphoxide: Registry Binding in the workspace settings. The extension appends the binding to every extract, index, update, and watch command; the CLI then verifies the registry checkout and the local origin binding before it can publish a graph.
Run the extension from sourceThe repository includes a one-click Extension Development Host configuration and an architecture-rich sample application.
The sequential pre-launch task builds the release The sample README suggests queries and node pairs that exercise the explorer, visualization, CodeLens, source reveal, path finding, affected-node analysis, watcher, report, and export workflows. Its generated End-to-end testingThe E2E suite launches a clean VS Code Extension Development Host with a disposable copy of the sample project:
It verifies executable discovery without a Explore the graphThe Graph Explorer groups indexed code by community, architectural importance, and source file. Selecting a node opens the exact source line. Expanding communities reveals their member symbols, and the node context menu provides explanation and impact commands. The interactive graph supports:
The graph opens in the active editor group by default, using the available editor space. Run Graphoxide: Open Interactive Graph Beside only when you explicitly want the source and graph side by side. Only a deterministic, degree-ranked subset is drawn when a graph exceeds Graphoxide: Visualization Max Nodes; the configured value is clamped between 25 and 5,000. The host also bounds the relationship payload sent to the webview, and the renderer applies additional level-of-detail limits while preserving the selected node and its immediate context. Omitted node and relationship counts are shown rather than presented as an empty result. The full graph remains available to sidebar and CLI commands. The focused Lens describes generic graph direction precisely without assigning unsupported caller, dependency, or effect semantics. It does not infer a risk score or reconstruct source code. Relationship provenance is shown only when the graph records it; known extracted, inferred, and ambiguous confidence values use distinct encodings, with an explicit Unspecified fallback for any other value. Arrows follow each relationship's recorded source and target facts, which Graphoxide preserves even when the graph container uses undirected compatibility semantics. The visual hierarchy is anchored in Graphoxide purple for selection, focus, active modes, and primary actions. Lavender supplies high-contrast highlights; cyan and teal remain secondary signals for relationship direction and recorded confidence, with matching arrows, patterns, glyphs, and text labels. Understand code in contextWhen Graphoxide: Code Lens Enabled is on, indexed symbols show their graph connection count directly above the source. Select that CodeLens—or right-click and choose Graphoxide: Explain Symbol at Cursor—to inspect the symbol and its neighbors. Useful commands include:
Query results appear in a dedicated sidebar view. Node results link back to source. Text output also streams to View → Output → Graphoxide. Keyboard shortcuts:
Keep the graph currentUse Graphoxide: Update Graph (Incremental) for routine manual maintenance of
an existing valid graph. Use Graphoxide: Rebuild Graph (Full) when you need a
clean rescan, or when an existing Managed workspaces remember one freshness policy. Continuous watch incrementally rebuilds while the workspace is open, update-on-save performs a debounced update, and manual mode changes nothing in the background. Use Graphoxide: Configure Automatic Updates… to change the policy. The status bar shows an eye while watch mode is active. Managed automatic refreshes accept intentional graph reductions, so deleting or consolidating code cannot leave the graph permanently stale behind the CLI shrink guard. Builds and automatic updates honor Place a For smaller projects, Graphoxide: Update On Save can run a debounced update whenever a source document is saved. It is disabled by default. Watch mode is more efficient for sustained editing sessions. Graph build and update commands require a trusted workspace. All spawned commands are argument-safe, run without a shell, support cancellation where applicable, and stream diagnostics to the Graphoxide output channel. Manual builds display their current phase and any real phase-local counters in a VS Code progress notification. Update-on-save and continuous-watch rebuilds use the status bar instead, so background maintenance does not repeatedly interrupt editing. Progress closes with the exact child process that owns the build. After an index or reindex succeeds, the Control Center's Workspace graph card shows the latest total runtime, actual full or incremental mode, indexed-input count, exact indexed source size when available, completion time, stage timings, and incremental changed/deleted counts. These aggregates come from the completed indexing pass; the extension does not pre-scan the workspace or reread source to calculate them. A failed or cancelled attempt does not create partial statistics and leaves the previous successful summary in place. Improve community names with an LLMGraphoxide can optionally ask an LLM to replace its deterministic community
names with concise architecture-oriented labels. Run Graphoxide: Configure AI
Community Labeling… and choose OpenAI, LM Studio, Ollama, a custom
OpenAI-compatible endpoint, or Anthropic. LM Studio defaults to
Then run Graphoxide: Improve Community Names with AI. Before sending
anything, the extension shows the endpoint, model, exact graph file, resolved
executable, and data disclosure for confirmation. The request contains up to 12
representative API keys are kept in VS Code Secret Storage, not settings. Provider, endpoint,
model, concurrency, batch size, and timeout are machine-scoped settings. Remote
endpoints must use HTTPS except for an explicitly configured Ollama endpoint.
Before labeling through non-loopback Ollama HTTP, the confirmation warns that
graph-derived labels and any optional key will travel without TLS. Remote model
discovery remains disabled, so enter the model ID manually. For this labeling
command, the extension ignores Binary Path,
Additional Arguments, Connect an AI coding clientGraphoxide includes an MCP server in the same binary:
For an enabled workspace, the extension publishes Graphoxide directly to VS Code through its native MCP provider. Open Graphoxide: Open Control Center to detect and configure other installed clients:
The Control Center separates project scope from all-projects user scope, reports installed, missing, and stale registrations, and confirms every Install, Update, or Remove action. It preserves unrelated servers and settings. Project configuration can be shared with collaborators; user configuration applies across projects. The extension does not keep an MCP process running. VS Code, Claude Code, Codex,
or OpenCode starts The MCP server tells Codex to use Graphoxide before broad filesystem searches for
architecture, navigation, call-flow, and impact questions. Its compact
Core extraction, clustering, querying, visualization, and reports are offline and require no API key. Explicit AI configuration may contact a loopback endpoint to discover models, and the labeling command contacts the confirmed model endpoint. SettingsOpen Graphoxide: Open Settings to configure:
Settings that identify files are scoped per workspace, so multi-root workspaces can use a different graph for each folder. AI endpoint and model settings are machine-scoped. Commands prefer the active editor's workspace and prompt when necessary. TroubleshootingThe binary cannot be found: Set Graphoxide: Binary Path to the absolute path returned by The graph is empty or missing: Run Graphoxide: Build Graph. If the repository already has a graph, verify Graphoxide: Graph Path. A graph fails to load: Open View → Output → Graphoxide for the validation error, then use Graphoxide: Rebuild Graph (Full) if the generated file should be replaced. The parser accepts both built graphs using A source node does not open: Graph paths must be repository-relative. For safety, absolute paths and paths containing Privacy and securityThe extension does not send complete source files over the network. Its visualizer uses a restrictive Content Security Policy, has no external runtime dependencies, and escapes graph content before rendering. The explicit AI-labeling command sends representative node labels and community IDs to the endpoint shown in its confirmation dialog; labels can contain identifiers, filenames, and truncated comments or docstrings, while full files and LicenseApache License 2.0. See LICENSE, LICENSE-MIT, and NOTICE. |