obsidian-brain
A starter Obsidian vault wired as a Karpathy-style second brain — file-based AI memory, model-agnostic, local. Companion repo for the Substack post.
second-brain-template
A starter Obsidian vault wired to work as a Karpathy-style LLM OS second brain — the AI (Claude Code by default, but the pattern is model-agnostic) lives inside your knowledge graph instead of being called across an API boundary.
File-based memory. Local. Git-versioned. Readable. Portable.
Context: Anthropic shipped Claude Managed Agents memory on 2026-04-23 with the same file-based memory primitive. This repo is the model-agnostic, local, do-it-yourself version — the same shape, no platform lock-in.
What's in here
.
├── CLAUDE.md # Vault-level operating instructions (the AI's constitution)
├── MEMORY.md # Cross-session memory index
├── .claude-memory/ # Per-topic memory files (user / feedback / project / reference)
├── Templates/ # Note templates: Daily, Project, Idea, Learning, Person, Meeting, Course, Council
├── Resources/
│ └── Tools/
│ ├── Second-Brain System Runbook.md # Operational spec for scheduled agents
│ └── Council Procedure.md # 5-persona deliberation ritual for high-stakes decisions
├── scripts/
│ └── setup.sh # Bootstrap: creates standard folders + reminds you of next steps
└── .claude/
├── commands/
│ └── council.md # Slash command — invoke the council with /council <question>
└── settings.example.json # Example Claude Code permissions config
Notable features
- File-based memory (
MEMORY.md+.claude-memory/) — the AI's continuity across sessions, owned by you. See.claude-memory/README.mdfor the full spec. - Proactive linking — the AI is instructed to wikilink every entity it encounters, treating graph density as a primary job function rather than an afterthought.
- Active growth layer — the AI maintains a Research Log, Teaching Queue, and auto-ingests sources into
Resources/Learning/Auto/even when you don't ask. The vault grows while you sleep. - The Council — a 5-persona deliberation ritual (
/council <question>) for decisions you don't trust a single take on. Default personas are Skeptic / Builder / Analyst / Operator / Outside Voice; rewrite them to match your decision style. Procedure spec inResources/Tools/Council Procedure.md; slash command at.claude/commands/council.md. - Scheduled cycles — morning brief, evening sweep, weekly review specs all live in
Resources/Tools/Second-Brain System Runbook.md. Wire them up using your LLM's scheduling primitive (Claude Code'sscheduleskill, cron, etc.) or run them manually.
Who this is for
You if you:
- Want an AI assistant that remembers you across sessions without a proprietary memory platform
- Use Obsidian (or are willing to) for notes
- Use Claude Code, or another CLI-capable LLM assistant you can point at a directory
- Are comfortable with git and plain markdown
You probably don't want this if you need a turnkey SaaS, a mobile-first UX, or a team/multi-user system out of the box.
Quick start (≈30 minutes)
- Get the repo. Click "Use this template" on GitHub, or:
git clone https://github.com/YOUR_USERNAME/YOUR_VAULT_NAME.git cd YOUR_VAULT_NAME - Open in Obsidian. Point Obsidian's "Open folder as vault" at this directory.
- Run the bootstrap script. Creates the standard folders (
Daily Notes/,Projects/,Ideas/, etc.):bash scripts/setup.sh - Install Claude Code (or your preferred CLI LLM) and point it at the vault.
- Fill in the Owner section of
CLAUDE.md(name, context, current commitments, career thesis if you have one). This is the personality layer — leave the structural rules alone unless you know why you're changing them. - Seed one memory. Copy one of the example memory files in
.claude-memory/to a new file, edit it to reflect something true about you, and add a line toMEMORY.md. - Start talking. Let the AI write to daily notes, memory files, and the Learning folder as you work. The graph grows itself.
The philosophy (the short version)
Three load-bearing ideas:
- Proactive linking. Every note that gets touched gets its entities wikilinked. Under-linking is a failure mode. The graph's density is the system's intelligence.
- Memory is files. Not a vector store, not a platform feature, not a hosted service — plain markdown files in git. Exportable, editable, readable, diff-able, model-agnostic.
- The AI grows the vault unprompted. Not just when you ask. Research Log, Teaching Queue, source ingestion, pattern surfacing — the vault expands while you sleep.
Everything else in CLAUDE.md flows from those three.
Customize
The pieces you'll likely change:
CLAUDE.mdOwner section — who you are, your context, your active projects- Folder structure — the default is PARA-ish (Projects / Areas / Resources / Archive) with Daily Notes, Inbox, and Ideas on the side. Reshape freely.
- Templates — tweak the frontmatter fields and section order to match your work
- Scheduled agents — the Runbook spec documents how a morning-brief agent should behave; wire it up using Claude Code's schedule skill or equivalent
The pieces that earn their keep unchanged:
- The memory system (
MEMORY.md+.claude-memory/) — changing this breaks continuity across sessions - Proactive linking principle — degrading this degrades everything downstream
- Daily note live-capture dispatch table — the AI uses it to decide where to write
Credits
- Andrej Karpathy — the LLM OS framing that underwrites the whole pattern
- Obsidian — the graph substrate
- Claude Code — the default AI that lives in the vault (swappable)
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 5mo ago
Categories