Skip to main content

Command Palette

Search for a command to run...

How I Built an AI-Powered Second Brain with Obsidian + Claude Code

Published
9 min read
D
Technical Architect · 20 years in software · Writing about AI architecture, system design, and real decisions at scale

13 skills, no plugins, one CLAUDE.md file.


1. The Problem

My notes were in Obsidian. My tasks were in Todoist. My AI remembered neither.

I'm a Technical Architect. Decisions, meeting notes, architecture reviews, a long-term learning goal — all producing knowledge daily. I had a decent PKM setup. But the AI layer was disconnected. Every Claude conversation started from zero. Every session, I re-explained my vault structure, my workflows, my preferences.

The real problem isn't note-taking. It's that your AI forgets everything the moment you close the terminal.

I wanted an AI that knows my vault, runs workflows when I say /start-my-day, tracks what's overdue, and builds a knowledge graph alongside me. Not a chatbot. A companion that compounds.


2. The Idea and the Four Pillars

I didn't invent this from scratch. The spark came from Karpathy's LLM Wiki — using LLMs to build and maintain personal knowledge bases in plain markdown. Not RAG. Not vector databases. Just an AI that reads your files and writes back to them.

The community ran with it. People built Obsidian + Claude Code implementations, wiki compilers, auto-linkers. What I saw was a deeper pattern: separate storage from intelligence.

  • Obsidian = storage. Plain markdown. No vendor lock-in. You own it forever.

  • Claude Code = intelligence. Reads files, runs skills, creates notes, remembers context.

  • MCP = the bridge. Claude Code reads and writes to the vault directly.

What's original in my approach: the skill system (13 markdown instruction files, not code), the four-pillar philosophy, the Architect's Codex vocabulary, and the daily orchestration flow.

The four pillars — all Sanskrit names — each own one responsibility:

SMRITI (Memory) — The vault. Plain markdown, owned forever. Atomic knowledge that compounds.

SARATHI (Charioteer) — Claude Code as the AI companion. Like Krishna guiding Arjuna's chariot — it sees the battlefield and executes the strategy. 13 skills are its capabilities.

SADHANA (Practice) — The operating principles. Partnership model, autonomy levels, daily rhythm. The constitution that governs how the system operates.

SIDDHI (Achievement) — Long-term goal pursuit. Structured weekly plans, session notes, progress tracking. Any ambitious multi-week goal.

They reinforce each other: SMRITI stores what you learn. SARATHI captures and connects it. SADHANA keeps it consistent. SIDDHI gives it direction.

If Claude Code disappears tomorrow, I keep every note.


3. The Architecture

YOU (Ideas, Decisions, Judgment)
  |
  v
CLAUDE CODE (Reads vault → Runs skills → Writes back)
  |
  +---> Obsidian MCP (vault read/write)
  +---> Todoist MCP (task sync, optional)
  |
  v
OBSIDIAN VAULT (Plain markdown — you own this forever)

The vault follows IPARAG (Inbox, Projects, Areas, Resources, Archives, Galaxy) — six folders that route every piece of information:

00 - INBOX/          Capture everything here first
01 - PROJECTS/       Active work with end dates
02 - AREAS/          Ongoing responsibilities (no end date)
03 - RESOURCES/      Reference material
04 - ARCHIVES/       Done or inactive
05 - GALAXY/         Permanent atomic knowledge

The Galaxy is the crown jewel. Every note is one atomic idea — a claim stated as a title, written in 3-5 sentences, linked to related ideas. A vault with 1000 unlinked notes is a graveyard. A vault with 100 well-connected Galaxy notes is a thinking tool.

But the folder structure is just the skeleton. Four layers make it intelligent:

Layer File What it does
Master Context CLAUDE.md Who I am, vault map, startup checks. Under 80 lines.
Skills .claude/skills/*.md 13 capabilities. Read on invoke, not memorized.
L1 Cache L1-static.md Tags, frontmatter, schedule — one read replaces ten.
State session-active.md, workflow-state.md Persistence across sessions. Overdue detection.

The whole system is ~2,500 lines of markdown instructions and templates. Built over 3 weeks of evenings.


4. A Day in the System

Morning: /start-my-day

One command. Claude reads state files, counts Galaxy notes, checks overdue workflows, pulls Todoist tasks, generates a brief:

> MORNING BRIEF — Friday, April 25
> Focus: SIDDHI W3 Day 5 + Sprint close
> Atlas: 31 · Drop Zone: 0
>
> SIDDHI: Week 3 — 14.5/15 hrs | 22/29 tasks | on track
>
> Active Quests:
> 1. SIDDHI study session — Hybrid Search
> 2. PR Review scan #2
>
> Bounties:
> 3. Update property IDs (15m)
> 4. LinkedIn post draft (30m)

Creates the daily note, fills the session log, sets up quests (big tasks) and bounties (small jobs). Most important task goes first.

During the day: /capture

Mid-meeting thought: /capture the retry logic on event grid should use exponential backoff with jitter. Claude detects the domain, structures a note, suggests wikilinks, offers to create a Todoist task. Captured in seconds.

Need to close the terminal mid-task? /checkpoint saves full context — plan, progress, next step. Resume later with "continue."

Evening: /close-my-day

Claude reads my daily note, harvests uncaptured action items, syncs completed Todoist tasks, generates a summary:

> SESSION CLOSED — Friday, April 25
> Quests: 2/2 · Bounties: 3/4
> Galaxy candidates: 2 — run /extract
> Tomorrow: SIDDHI Day 6 + Blog draft

Drafts tomorrow's quests, rates intention score, and on Fridays generates a weekly summary. Under 2 minutes.


5. The Skill System and Knowledge Pipeline

No code. Zero.

Each skill is a markdown file — plain text instructions that tell Claude Code what to do. Here's /extract, simplified:

/extract — Knowledge Extraction to Galaxy

1. Read & Identify Atomic Ideas
   Read source. Find ideas that pass:
   - Assertion test — statable as a claim?
   - Standalone test — readable without source context?

2. Check Duplicates
   Search Galaxy for existing notes on same concept.

3. Draft Galaxy Notes
   Assertion-style title, 3-5 sentences, 2+ wikilinks.

4. Present for Approval
   Show previews. User approves/modifies/rejects each.

5. Create Notes
   On approval: create in Galaxy, update source.

No API calls. No function definitions. No deployment. Claude reads this file when you type /extract and writes results back to your vault.

The 13 skills form a knowledge lifecycle:

Category Skills
Orchestration /start-my-day, /close-my-day, /checkpoint
Capture /capture, /braindump
Knowledge Pipeline /triage, /extract, /promote, /connect
Review /weekly-review, /consolidate
Integration /task-sync (Todoist)
Goals /siddhi-session

The pipeline moves knowledge through stages:

  • Capture → raw thoughts land in inbox

  • Triage → route to the right folder

  • Extract → pull atomic ideas into the Galaxy

  • Promote → synthesize mature knowledge

  • Connect → build the graph

Because skills are markdown, you can edit them in 30 seconds. My morning brief was too long — I added "Keep output under 400 words" to the rules. Wanted quest/bounty separation — added a template to the brief format. The system evolves at the speed of editing a text file.


6. What Surprised Me — and What Breaks

The AI actually follows instructions. I expected drift, hallucinated steps, constant correction. Instead, Claude follows markdown instructions with surprising fidelity. "Ask before creating" — it asks. "Skip Todoist if not configured" — it skips. Markdown-as-code works.

The system self-improves. Claude Code has auto-memory — it saves your corrections and preferences across sessions. I said "stop summarizing what you just did." It saved that as feedback and never did it again. The vault feeds the AI. The AI feeds the vault. Flywheel.

Plain text wins. Notion databases, Roam graphs, Tana supertags — I've tried them. They all hit the same wall: AI can't access it, data is locked, or the tool pivots. Markdown in a folder will outlive every app. Swap the intelligence layer anytime. The knowledge layer is permanent.

What breaks

Context window limits. A skill that reads too many files in one session burns through context. I hit this with /weekly-review trying to read 7 daily notes at once. The fix: L1 cache pre-assembles common context so skills don't re-read source files.

Permission prompts. Claude Code asks for approval on every file write by default. Useful for safety, annoying at scale. You need to configure allow-rules in settings.json for your vault paths — this takes trial and error.

The AI occasionally over-helps. Tell it to update a date in a state file and it might also "improve" surrounding content. The fix: explicit rules in skills — "touch only what's needed, match existing style." It works, but you learn this through corrections.

Todoist sync is fragile. Task IDs, project IDs, section IDs — one wrong ID and tasks land in the wrong project. I burned an hour debugging this on day one. The setup script handles it now, but it's the least forgiving part of the system.


7. What I'd Do Differently

I built 13 skills before locking in the daily habit. Wrong order. Should have started with 3 — /start-my-day, /close-my-day, /capture — and lived with them for a week before adding the pipeline skills. The knowledge pipeline only matters once you have enough notes to pipeline.

I optimized tokens before the flow worked. Built an L1 cache to reduce context usage before I had the basic skills running cleanly. Cache optimization matters at scale. At the start, just get the flow right.

The one thing I got right: anchoring to a physical trigger. /start-my-day follows making warm water after my morning walk. Physical trigger, not digital. The system followed the habit, not the other way around.


8. Get Started

SMRITI is open source. Three steps:

git clone https://github.com/deepakgoyal-ai/smriti.git
cd smriti
claude
# Paste: "Set up SMRITI for me. Read SETUP.md and follow the instructions."

Claude auto-detects your system, configures MCP, walks you through setup. Open the folder in Obsidian as your viewing layer. Done.

What you need:

  • Obsidian (free)

  • Claude Code (Pro plan recommended)

  • 30 minutes (longer if you hit MCP auth issues — see the repo README)

What you get:

  • 13 skills for daily orchestration, knowledge management, and goal tracking

  • IPARAG vault structure that routes every piece of information

  • A knowledge pipeline that compounds over time

  • An AI companion that remembers your context across sessions

Ships with sample notes, templates, and a full operating system you can customize.

Your notes are markdown. Your skills are markdown. Your knowledge is yours.


Built by Deepak Goyal. Follow the journey: GitHub · LinkedIn