pkm-agent-vault
Obsidian vault template + Claude Code slash commands for agent-assisted knowledge curation
PKM Vault + Claude Code Curator
An Obsidian vault paired with Claude Code, set up so Claude does the curation work
(classifying notes, finding structural gaps, proposing links) instead of just writing
files on request. Nothing here writes to your notes without asking first — that rule is
enforced by the instructions in VAULT-INDEX.md, not by anything technical.
What this actually is
- A folder structure and frontmatter schema for notes (concept, question, reference, project, MOC, log), each with its own status lifecycle.
- Three Python scripts that build a machine-readable index of the vault and detect structurally disconnected clusters of notes, so Claude can work from a compact summary instead of reading every file.
- Two Claude Code slash commands (
/process-inbox,/gap-review) that use those scripts and walk through triage and connection-finding with you, one proposal at a time. - A
CLAUDE.mdboot file that loads the rules automatically whenever Claude Code runs in this directory.
This is a template, not a populated vault — it ships empty aside from the scaffolding above. You fill in your own domains and notes.
Requirements
- Obsidian (or any editor that reads plain Markdown with YAML frontmatter — Obsidian is what the wikilink/MOC conventions assume, but nothing here is Obsidian-specific at the file level)
- Claude Code
- Python 3, plus
pyyaml,networkx, andpython-louvainfor the two analysis scripts (pip install pyyaml networkx python-louvain --break-system-packages) - Optional: Syncthing if you want the vault synced across more than one device; Tailscale if one of those devices is a headless server you need to reach from outside your home network
See SETUP.md for the full walkthrough, including the headless-server pattern.
Layout
.
├── CLAUDE.md # boot file — loads automatically, imports VAULT-INDEX.md
├── VAULT-INDEX.md # the actual rules: schema, folders, permission model
├── Templates/ # one template per note type
├── 00-MOC/ # root index note
├── 99-Inbox/ # unsorted capture — drop things here, run /process-inbox
├── .claude/commands/ # /process-inbox and /gap-review slash commands
├── build_index.py # generates INDEX.json
├── find_vault_gaps.py # generates GAP_REPORT.md / .json
└── prep_inbox.py # generates the inbox triage manifest
Working rules
The actual rules — permission model, frontmatter schema, folder conventions — live in
VAULT-INDEX.md, not here. Read that file before using this for real; it's short. The
short version: nothing gets created or edited without Claude proposing the exact content
first and you saying yes, and every domain you add gets a row in that file's domain
table.
License
MIT — see LICENSE.
How to Install
- Download the ZIP or clone the repository
- Open the folder as a vault in Obsidian (File → Open Vault)
- Obsidian will prompt you to install required plugins
Stats
Stars
0
Forks
0
License
MIT
Last updated 23d ago