Vault ModeA vibecoded IDE extension I built for personal use, for densely linked collections of Markdown notes. Wikilinks behave like code references: preview rendering, jump-to-definition, backlinks, completion. Semantic search is optional, aimed at LLM-agent workflows: point your agent at the vault root and ask questions over your notes. Works in VS Code and Cursor. In my experience, a vault like this built up over months of personal writing, when given to an LLM agent as context, yields much deeper and personalized answers than the default one.
Features
InstallVS Code: search Vault Mode in the Marketplace, or Cursor / VSCodium / other forks: grab the From source:
Recommended sidecar extensions: Feedback and bug reportsBug reports and small feature requests are welcome in GitHub Issues. For bugs, include version, editor, OS, a minimal markdown/vault snippet, and relevant lines from the "Vault Mode" output channel. Large features should start as an issue before a PR. The
|
| Setting | Default | What |
|---|---|---|
vaultMode.vsPath |
vs |
Path to the search CLI |
vaultMode.vsTimeoutMs |
5000 |
Hard timeout for any search invocation |
vaultMode.dailyNotesFolder |
Daily |
Folder under vault root for daily notes |
vaultMode.dailyNoteTemplate |
# {date}\n\n |
Template (placeholders: {date}, {iso}, {weekday}) |
vaultMode.updateLinksOnRename |
true |
Rewrite wikilinks when a note is renamed |
vaultMode.hover.augmentWithVs |
true |
Append semantic neighbors to wikilink hover |
vaultMode.ignorePatterns |
(see settings) | Globs excluded from the workspace index |
vaultMode.perfLog |
true |
Log detailed timings and counters to the output channel |
Commands
| Command | What |
|---|---|
vaultMode.semanticSearch |
QuickPick over search results |
vaultMode.insertWikilink |
Search + insert [[Stem]] at cursor |
vaultMode.relatedNotes |
Semantic neighbors of the current file |
vaultMode.openDailyNote |
Open / create today's daily note |
vaultMode.openRandomNote |
Open a random vault note |
vaultMode.previewToSide |
Open Markdown preview to the side |
vaultMode.rebuildIndex |
Rebuild the wikilink index from scratch |
No default keybindings; bind in keybindings.json if you want hotkeys.
Performance
Benched on my 2718-file / 18MB vault (npm run bench, mean ± σ over 5 runs).
| Operation | Measured |
|---|---|
| Full index build (read + parse, 32-way concurrent) | 525 ± 66 ms |
| Parse all files, CPU only | 67 ± 5 ms |
| Resolve 2000 wikilink targets | 3.4 ± 1.2 ms |
| Backlinks for 2000 targets | 1.6 ± 0.4 ms |
| Bundle size | ~38KB |
Activation, indexing, watcher updates, commands, providers, and vs calls log timings to the "Vault Mode" output channel when perfLog is on.
Index logs include file count, bytes, wikilink count, read errors, list time, parse/read time, and total time.
Development
npm install
npm run test:unit # vitest
npm run typecheck # tsc --noEmit
npm run lint # eslint + prettier check
npm run build # esbuild bundle to dist/extension.js
code --extensionDevelopmentPath="$PWD" /path/to/your/vault # Extension Development Host
License
MIT.
