Willian Saez111 downloadsLights up graph nodes like a brain as Claude Code reads your notes.
An Obsidian community plugin (beta) — desktop only — pairs with Claude Code. It animates Obsidian's native graph view: nodes flash as Claude Code reads and edits the notes in your vault.

Watch your vault light up like a brain. Every file the agent touches flashes on the graph — your knowledge base looks like neurons firing.
Claude Code reads a note
│ PostToolUse hook (.claude/settings.json in the vault)
▼
curl → http://127.0.0.1:8765/read
│ plugin's localhost listener
▼
node matched on the native graph → glows green, swells, fades
The plugin drives Obsidian's built-in PIXI graph renderer directly — no separate view. It also keeps the graph "alive": the render cooldown is disabled and the force simulation stays warm, so nodes keep drifting under their real physics instead of freezing.
isDesktopOnly)main.js yourselfnpm install
npm run build
main.js and manifest.json into your vault:<vault>/.obsidian/plugins/neural-vault/
Add these hooks to <vault>/.claude/settings.json — reads glow green, edits/writes glow red:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Read",
"hooks": [
{
"type": "command",
"command": "curl -s --max-time 1 -X POST http://127.0.0.1:8765/read --data-binary @- >/dev/null 2>&1"
}
]
},
{
"matcher": "Edit|Write|MultiEdit|NotebookEdit",
"hooks": [
{
"type": "command",
"command": "curl -s --max-time 1 -X POST http://127.0.0.1:8765/read --data-binary @- >/dev/null 2>&1"
}
]
}
]
}
}
Then run claude inside the vault, ask it to read some notes, and watch the graph.
Note: the Claude desktop app (Cowork) does not fire hooks — use the Claude Code CLI.
POST /clear-trail).color, writeColor, swell, hold, decay, pulse, cascade, trace).8765; use one port per vault if you run several at once (update the hook too).Always on: POST /read (hook target) · GET /status · POST /pulse · POST /clear-trail
With debug enabled: POST /pulse-all · POST /paint-all · POST /unpaint · POST /reset-view?scale= · GET /probe-green · POST /reload
Nothing lights up? Almost always a port mismatch. The port in the hook URL
(http://127.0.0.1:<port>/read) must match the plugin's Listener port
(Settings → Neural Vault, default 8765). The hook's curl is silenced
(--max-time 1 … >/dev/null 2>&1), so a wrong port fails with no error — it looks
broken, not misconfigured.
Quick checks:
curl http://127.0.0.1:8765/status → should respond. No response = plugin off, Obsidian not reloaded, or wrong port.isDesktopOnly).