Interactive code maps in VS Code. See who calls what, how modules → classes → functions connect, with call (solid, arrowed) and import (dashed) edges. Python / TypeScript / JavaScript. Export stuff.
- Answer “what breaks if I touch X?” in seconds.
- Jump to code (Go to Definition / Peek References).
- Slice impact inbound/outbound to see blast radius.
- Export PNG / SVG / JSON / snapshot (
.dv
).
- VS Code → Extensions → search DepViz → install.
- Or
code --install-extension depviz-*.vsix
if you like pain.
DepViz: Open
(Command Palette) → empty canvas.- Drag files/folders in, or
DepViz: Import
. - Pan (mouse), zoom (wheel), right-click canvas for actions.
- Click legend to toggle call/import visibility.
- Import from Explorer / drag & drop.
- See modules, classes, functions; edges: call ✅, import ✅.
- Arrange: folders (Ctrl/Cmd+Shift+A) or balanced grid (…+B).
- Search labels (Ctrl/Cmd+F) with live highlighting.
- Impact slices: right-click node → Outbound / Inbound / Clear.
- Export: PNG / SVG / JSON /
.dv
snapshot. - Snapshots: open
.dv
as a custom editor; Ctrl/Cmd+S saves.
- Arrange by folders: Ctrl/Cmd+Shift+A
- Balanced grid: Ctrl/Cmd+Shift+B
- Search: Ctrl/Cmd+F
- Toggle help: Ctrl/Cmd+/
- Clear slice: Ctrl/Cmd+Shift+S
- Undo/Redo: Ctrl/Cmd+Z / Shift+Z or Y
- Zoom:
+
/-
, Pan: arrows
- Functions and classes drag.
- Drop near their home (module/class) to re-dock; otherwise they float.
- Cards won’t overlap: collisions get nudged.
- Right-click anything for context actions.
- Uses VS Code symbols when available; falls back to a heuristic parser.
- Handles Python + TS/JS. Calls = best-effort: name-based, scope-aware enough to be useful.
- Imports detected from
import
/from…import
/require
. - Yes, dynamic/reflective nonsense will fool it. Bring tests, not tears.
- Not a typechecker. If two functions share a name, it picks the closest import/module match.
- Huge repos: tune
maxFiles
,maxFileSizeMB
, and globs. - Impact slice summary (copy file list) appears when opened via the main panel; the
.dv
custom editor is view-only for that part.
Right-click canvas → Export → PNG / SVG / JSON / .dv
.
SVG includes styles; PNG renders the current viewport.
It won’t touch your code. It only reads files and writes snapshots you save.
TL;DR: drag code in, see who calls who, slice blast radius, export receipts.