Skip to content
| Marketplace
Sign in
Visual Studio Code>Visualization>Code Canvas OSSNew to Visual Studio Code? Get it now.
Code Canvas OSS

Code Canvas OSS

ahsaniat

|
1 install
| (0) | Free
Interactive canvas for your codebase: a file and folder graph with inline code previews, search, descriptions and resizable nodes.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Code Canvas OSS

Interactive canvas for your codebase: a file and folder graph with inline code previews, search, descriptions and resizable nodes.

An actively maintained fork of waLLxAck/code-canvas.

Features

  • Folder-level graph - a collapsed folder shows the union of its descendants' external imports, with in/out degree badges
  • Expand on demand - open a folder to reveal its files and subfolders; edges re-anchor to the specific file
  • Four layouts - Radial (connected nodes on concentric rings, orphans in the centre), ELK, Dagre and Force
  • Circuit-style edges - orthogonal wires that route around nodes, not through them
  • Search everything - find a node by name, path, exported symbol or tag, even inside a collapsed folder, and jump straight to it
  • Symbols on hover - a wire tells you which functions, classes and types cross that boundary
  • Automatic descriptions - every file and folder is described from its doc comment, exports and imports; your own text always wins
  • Inline code previews - syntax-highlighted, scrollable, click a token to jump to its definition
  • Resizable nodes - select a file node and drag its corners; the size is remembered
  • Git-aware - open changed files, live refresh on save

Screenshots

Canvas overview

Selection & resize handles Inline code preview
Selection and resize handles Inline code preview
File descriptions Expanded description & resized node
File descriptions Resized node

Install

From the VS Code Marketplace:

code --install-extension ahsaniat.code-canvas-oss

Or search Code Canvas OSS in the Extensions view. VSIX builds are also attached to GitHub Releases.

Getting started

  1. Open a folder with JavaScript/TypeScript or Python files.
  2. Run Code Canvas: Open from the Command Palette.
  3. The canvas opens with folders collapsed; expand only what you care about.

Toolbar

  • Search - find nodes by name, path, export or tag
  • Layout - Radial, ELK, Dagre or Force; Relayout recomputes the current one
  • Expand (E) - grow the graph from the selected nodes
  • Hide/Show Edges, Wrap/Unwrap, Refs (R)
  • Seed Folder… - scope the view to one folder
  • Load More - raise the node cap
  • Restore Hidden - bring back nodes hidden with Delete

Search

  • Press / or Ctrl/Cmd+F to focus the search box
  • ↑/↓ move through results, Enter reveals the active one, Esc closes the list
  • Plain text searches every field; name:, path:, sym: and tag: narrow it to one
  • Filter dims everything that doesn't match - folders containing a match stay lit
  • Revealing expands whatever collapsed folders were hiding the result and centres on it

Interaction tips

  • Click the chevron on a folder (or double-click it) to expand or collapse
  • Double-click a file header to open it in the editor
  • Scroll inside a code card with the wheel; the canvas zooms everywhere else
  • Hover an edge to see the symbols crossing that boundary
  • Click an edge to scroll both code cards to the import site
  • Click a token in code to jump to its definition and populate the references panel
  • Press E to expand from the selection; Delete hides nodes (restorable)
  • Zoom out far enough and code bodies become labels - a deliberate performance floor

Commands

  • Code Canvas: Open (codeCanvas.open)
  • Code Canvas: Open Changed Files (codeCanvas.openChanged)
  • Code Canvas: Layout - Radial / Dagre / ELK / Force (codeCanvas.layout.*)
  • Code Canvas: Toggle Refs (codeCanvas.toggleRefs)
  • Code Canvas: Open Folder as Seed (codeCanvas.seedFolder)
  • Code Canvas: Load 25 More (codeCanvas.loadMore)

Keybindings

These apply while the canvas has focus and are handled inside it, so they never intercept typing in the editor.

  • ⇧O - Open Changed Files
  • ⇧+ - Load 25 More
  • ⇧1 / ⇧2 / ⇧3 / ⇧4 - Layout: Radial / Dagre / ELK / Force
  • R - Toggle Refs

Settings

Settings under Code Canvas:

  • codeCanvas.initialCap (default 400) - files pulled in on first render
  • codeCanvas.maxNodes (default 1000) - ceiling for expansion and "Load more"
  • codeCanvas.maxPreviewBytes (default 100000) - max bytes per file sent to the code preview
  • codeCanvas.excludeGlobs (array) - glob patterns excluded from indexing. Setting this replaces the default list rather than adding to it. Defaults cover node_modules, venv/.venv, site-packages, __pycache__, dist, build, out, .next, .expo, coverage, .cache, vendor, Pods, logs and more.

Requirements

  • VS Code 1.102+
  • A JavaScript/TypeScript or Python project (Python support is experimental)
  • Git is optional; when available it powers changed-file highlighting

Known limitations

  • JavaScript/TypeScript, Python, Go, Rust, Java and C# are indexed
  • Resolution covers relative imports, TypeScript paths/baseUrl, Go modules, Rust modules, Java packages and C# namespaces; bare npm package specifiers are skipped by design
  • Descriptions are heuristic, not model-generated

Support

Report bugs and request features via GitHub Issues. Please include your VS Code version, the extension version and the steps to reproduce.

Credits

  • Original project by waLLxAck
  • Built with React Flow, ELK, highlight.js and the VS Code extension APIs

License

MIT - free to use, modify and distribute. See the repository LICENSE for details.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft