Digraph
An interactive graph of the links between your Markdown notes, inside VS Code.
Open any folder of .md files and Digraph draws every note as a node and every link as an edge.
Nodes settle under a physics layout. You can drag them, filter them, color them, and click
one to open the note.
Features
- Global graph: run Digraph: Open Graph View to see every note in the workspace.
- Local graph: the Local Graph view in the Digraph sidebar follows the active editor and
shows the current note's neighborhood, up to 5 links deep. You can also run
Digraph: Open Local Graph.
- Link syntax:
[[note]], [[note|alias]], [[note#heading]], ![[embed]],
standard Markdown links to .md files, #tags, and frontmatter aliases / tags.
Links inside code blocks are ignored.
- Filters and search:
word, "phrase", -exclude, path:, file:, tag:#x, a OR b.
Search matches file paths, names and tags, not note contents.
- Color groups: color notes by search query.
- Display and forces: node size, line width, label fade, arrows, and center, repel and
link forces.
- Saved views: save named snapshots of your filters, groups, display and force settings.
- Animate: replays your notes in creation order. A note's date comes from frontmatter
created / date, or the file's creation time if neither is set.
- Export PNG: saves the current view at 2× resolution.
- Live updates: the graph changes as you create, edit, rename or delete notes.
Usage
- Click a node to open its note.
- Drag nodes to move them, scroll to zoom, and drag the background to pan.
- Hover a node to highlight its connections.
- The ⚙ button opens filters, groups, display, forces, saved views, Animate and Export PNG.
Obsidian vaults
If the workspace contains .obsidian/graph.json, Digraph reads its graph settings as a starting
point. Digraph saves its own changes to VS Code workspace state and never writes to .obsidian/.
Link resolution follows Obsidian's rules: notes are matched by file name, case-insensitively,
and frontmatter aliases count.
Digraph is not affiliated with Obsidian.
Known limitations
- Search does not look inside note contents.
- Two attachments with the same file name in different folders share one node.
- File creation times are often unreliable. Cloning or copying files resets them, so add
created to frontmatter if you need Animate to be accurate.
Development
npm install
npm run build # bundle dist/extension.js and dist/webview.js
npm test # unit tests
npm run package # build the .vsix
Press F5 in VS Code to launch an Extension Development Host. Design notes are in
docs/design.md.
License
MIT
| |