second-brain-obsidian
A ready-to-adopt second-brain system: Obsidian vault + Claude Code SessionEnd autolog hook. Structure, 14 pre-configured plugins, templates, docs, and a bootstrap script. Bring your own notes.
Second Brain — Obsidian + Claude Code
A ready-to-adopt second-brain system: one Obsidian vault that does four jobs — personal knowledge, a work OS, a research base, and a shared memory between you and Claude Code. This repo is the scaffold: folder structure, plugin config, note templates, the docs, and the SessionEnd hook that auto-logs your Claude sessions into the vault. No personal notes — you bring the content.
Built and documented for Claude Code. The Obsidian half stands on its own; the shared-memory half is what makes it a beast.
What's inside
Atlas/ evergreen notes + MOCs -> the thinking web
Calendar/ daily + weekly + meetings -> the timeline
Efforts/ Work/ + Personal/ -> active projects (PARA)
Sources/ articles, highlights -> research
Archive/ dead projects -> kept for search
Meta/ templates, attachments, Claude-Memory bridge
Help/ GUIDE (when/why) · SETUP (how) · WORKFLOW (repo + Claude + Obsidian)
hooks/ obsidian-autolog.sh -> SessionEnd breadcrumb into the daily note
claude/ settings-hooks.example.json -> the hook wiring for ~/.claude/settings.json
bootstrap.sh installs the hook, splices settings, re-links the memory bridge
14 community plugins, pre-configured (settings shipped as each plugin's data.json):
Templater · QuickAdd · Periodic Notes · Dataview · Homepage · Omnisearch · Iconize ·
Excalidraw · Breadcrumbs · 3D Graph · Tasks · Kanban · Full Calendar · Smart Connections.
Quick start
git clone https://github.com/v60samurai/second-brain-obsidian.git ~/SecondBrain
cd ~/SecondBrain
./bootstrap.sh # installs the hook + wires ~/.claude/settings.json
Then, one time in the app:
- Open
~/SecondBrainas a vault in Obsidian. - Settings → Community plugins → install each plugin in
.obsidian/community-plugins.json. Their settings are already in place. - Restart Claude Code so the SessionEnd hook loads.
Read Help/SETUP.md for how it's built, Help/GUIDE.md for how to use it day to day, Help/WORKFLOW.md for how repos, GitHub, Claude Code, and the vault fit together without duplicating anything.
The two pieces that need wiring on a new machine
Everything else is a plain git clone. Two things point outside the vault and
bootstrap.sh handles both:
1. The SessionEnd autolog hook
hooks/obsidian-autolog.sh runs when a Claude Code session ends. If real work
happened in a git repo (that isn't the vault), it drops one line into today's
daily note under ## Log:
- 14:32 — session in [[my-project]] · 3 changed: PRD.md, api.ts, schema.sql
Capture only — it never routes, never blocks, always exits 0. The judgment of
what a change means stays human ("log this decision: …"). bootstrap.sh copies
it to ~/.claude/hooks/ and splices the SessionEnd block from
claude/settings-hooks.example.json into ~/.claude/settings.json (backed up,
idempotent). Override the vault location with SECONDBRAIN_VAULT.
2. The Claude-Memory bridge
Meta/Claude-Memory/ is a set of symlinks into the memory dirs Claude Code
actually reads and writes — so Obsidian, its graph, and the obsidian MCP all see
your Claude memory live. Symlinks to machine-local paths aren't committed. Re-create
them:
./bootstrap.sh --link "Personal=$HOME/.claude/projects/<slug>/memory" \
--link "Work/myproject=/path/to/that/project/memory"
See Claude Memory MOC.
Optional: the obsidian MCP server
To let Claude create/edit notes directly (not just the hook breadcrumb), register
the obsidian MCP with your vault.
The vault name is the lowercase folder basename (secondbrain). Paths split into
filename + folder — never a slashed filename. Details in
Help/SETUP.md.
What is deliberately NOT in this repo
- Your notes. Content folders ship empty (
.gitkeep). This is the system, not a brain. - Plugin binaries. Re-installed from
community-plugins.json; only theirdata.jsonsettings are versioned. - Machine state.
workspace.json,.smart-env/embeddings, icon packs — all regenerate. See.gitignore. - Memory contents. Only the symlink bridge is described; the symlinks themselves are local.
License
MIT — see LICENSE. Plugins are the property of their respective authors.
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 11d ago