LLM Wiki — Using Claude to Maintain My Second Brain

“I don’t want to manage my notes. I want to think.”

I’ve been trying to build a second brain for years. The problem was never capturing notes — it was that notes rot. You write something, it sits in a folder, you forget it exists. The act of organising notes became a second job.

Then I came across an idea from Andrej Karpathy (former OpenAI/Tesla AI director) that reframed everything.

Resources:


The Karpathy Insight

In a tweet and a GitHub gist, Karpathy described what he called the LLM Wiki pattern:

Raw sources → LLM compiles them → Wiki as output → Obsidian as viewer.

The key idea: you are not the organiser. The LLM is.

Your job is to capture raw material — articles, videos, book highlights, meeting notes. The LLM’s job is to read that material and maintain a clean, cross-linked wiki. You just ask questions.

It’s not a chatbot on top of your notes. It’s a persistent, compounding knowledge base that gets better every time new material flows in.


What I Built

I implemented this pattern inside Obsidian using Claude Code as the LLM layer.

The Vault Structure

My Vault/
├── 0 - Everything/     ← Wiki layer. Claude maintains this.
├── 1 - Material/       ← Raw sources (videos, books, articles, podcasts)
├── 4 - Meetings/       ← Raw meeting notes
├── 5 - Work/           ← Project-specific raw notes
├── Dump/               ← Quick captures, no structure
└── _Main Notes/        ← Staging area for rough/active notes

The split is clean: you write into the raw layers, Claude writes into 0 - Everything/. Obsidian is just the viewer for both.

The Three Operations

Claude runs three operations, invoked as slash commands:

/ingest <source> Read a raw note or folder. Extract what’s worth knowing. Update or create wiki pages. Cross-link everything. Extract signals (project ideas, research topics) into synthesis pages. Update the index and log.

/ask <question> Read the Index. Find relevant pages. Synthesize an answer. If the answer is substantial, save it as a new synthesis page — so the next time you ask something related, that answer is already in the wiki.

/lint Health check. Find orphaned pages, broken links, stale content, missing cross-links. Report and fix.


How It Works in Practice

I have 46 book highlights from Atomic Habits, The Psychology of Money, Kaizen, and others — all sitting in 1 - Material/Books/Highlights/ as tiny individual files.

I type: /ingest 1 - Material/Books/Highlights/

Claude reads all 46 files, recognises they cluster around a few themes, and creates:

  • concept - habit formation.md — synthesising the Four Laws, Goldilocks Rule, environment design
  • concept - psychology of money.md — wealth is hidden, fee vs fine, manage to sleep
  • concept - kaizen.md — 1% rule, forest bathing, adversity as teacher
  • person - james clear.md, person - morgan housel.md, etc.

Each page is cross-linked. Each person links to their concepts. Each concept links to related concepts. The graph builds itself.

I didn’t write any of those pages. I just captured the highlights.


Our Modifications to Karpathy’s Pattern

Karpathy’s original idea was language-model-agnostic and tool-agnostic. Here’s what we adapted for Obsidian + Claude Code:

Obsidian has a backlink graph. Empty .md files in a Tags/ folder act as tag nodes — every note that links [[psychology]] creates a backlink to Tags/psychology.md. This gives you a live, visual tag graph with zero extra tooling.

Every wiki page starts with a type tag first, then topic tags:

Tags: [[concept]] [[psychology]]

Type tags: concept, person, tool, project, synthesis, career, community

2. No YAML Frontmatter on Wiki Pages

Obsidian’s YAML frontmatter (---) is designed for structured data (Obsidian Bases). But wikilinks inside YAML need careful handling and don’t render the same way.

For wiki pages, we use plain text headers instead:

Tags: [[concept]] [[psychology]]
Status: #in-progress
Updated: 2026-05-02
Sources: [[1 - Material/Books/Repository/Atomic Habits - James Clear]]

# Page Title

Clean, readable, and every link is a real backlink in the graph.

3. Claude Code Skills for Persistent Operations

Claude Code has a skills system: markdown files in .claude/skills/<name>/SKILL.md that define reusable instructions Claude follows when you type /skillname.

The ingest/ask/lint operations live as skills. This means the instructions persist across every session — Claude always knows the schema, the page formats, the extraction rules — without you having to explain it again.

4. Extraction to Synthesis Pages

During every ingest, Claude scans the source for three types of signals:

  • Project ideas → appended to synthesis - project ideas.md
  • Research topics → appended to synthesis - research topics.md
  • Post ideas → appended to synthesis - post ideas.md

A post idea isn’t necessarily a long article. It could be a tweet, a LinkedIn post, a thread — the format gets decided later based on depth. What Claude captures during ingest is the seed: the insight, framing, or pattern that’s worth sharing publicly. A rough format hint ([tweet] / [article]) gets added based on complexity.

These pages compound over time. Ask “do I have any project ideas?” and Claude reads a growing, cross-referenced backlog extracted from everything you’ve ever ingested.

5. Avoid Circular Tags

One early mistake: tagging everything with [[learning]]. In a second brain, everything is something you’ve learned — the tag adds zero signal. We removed it entirely and replaced it with specific tags ([[psychology]], [[productivity]], [[philosophy]]) that actually help group related pages.

The rule: a tag is only useful if not everything would qualify for it.


The Index

Claude maintains 0 - Everything/Index.md — a single catalog of every wiki page with a one-line description. This is what Claude reads first when you ask a question. It’s also how you browse the wiki without the graph.

## Concepts
- [[concept - habit formation]] — Four Laws, 1% compounding, environment design, Goldilocks Rule
- [[concept - psychology of money]] — Wealth is hidden; autonomy as highest form; fee vs fine

## People
- [[person - james clear]] — Author of Atomic Habits; 1% daily improvement, identity-based habits
- [[person - morgan housel]] — Author of The Psychology of Money; wealth is hidden, know your game

The Log

0 - Everything/Log.md is append-only. Every operation leaves a record:

- #ingest 2026-05-02 — "Books/Highlights/" (46 notes) → created [[concept - habit formation]], 
  [[concept - psychology of money]], [[person - james clear]], [[person - morgan housel]]...

This gives you a full audit trail and makes it easy to answer “what has Claude touched?”


What It Feels Like

Before: notes pile up, never revisit them, feel guilty.

After: capture anything, anywhere. Run /ingest. Ask questions in plain English. The wiki grows and connects on its own.

The compounding effect is real. The more you ingest, the richer the cross-links become. A book highlight about habit stacking links to a meeting note about team processes links to a startup lesson about product distribution. Ideas that would never have connected in separate notebooks now sit one hop apart.


Tools Used

  • Obsidian — vault viewer, graph, backlinks, Bases for structured data
  • Claude Code — CLI running Claude; skills for persistent operations
  • Claude Sonnet — the LLM doing the actual synthesis

The schema lives in SCHEMA.md. The instructions live in CLAUDE.md. The skills live in .claude/skills/. Everything is plain markdown, portable, and not locked into any service.


Try It Yourself

If you want this in your own vault, I’ve packaged the full setup into two guides. Give the relevant one to your coding agent and say “read this and set up the LLM knowledge base for my Obsidian vault”:

Both guides handle empty vaults and existing vaults with years of notes already inside — the agent asks before building, reuses what’s already there, and only adds the compiled wiki layer on top.


The Loop Nobody Builds

The ingest flow is one-directional: raw material flows in, the wiki grows. That’s the part that’s satisfying to build.

The harder part is closing the loop.

When you act on something the wiki surfaced — a project idea you shipped, a post you published, a concept that changed how you work — that outcome is raw material too. If it doesn’t flow back in, the wiki becomes a snapshot of who you were when you built it, not who you are now.

How It Works

You act on something → write a short note about what happened → drop it in Dump//ingest picks it up → Claude updates the relevant wiki pages.

The note doesn’t need structure. Three lines is enough:

Tried habit stacking for my morning coding block.
Didn't work — trigger was too vague. Environment design (phone in other room) worked better.
The implementation intention framing was the actually useful part.

That’s enough for Claude to update concept - habit formation.md with real-world signal, not just book theory.

Three Feedback Sources

Post outcome — after you publish something, drop the text and link in Dump/. Claude updates the relevant concept pages and appends to synthesis - posted.md. Over time this becomes a record of what ideas were worth sharing publicly — and what resonated.

Project outcome — when a project idea gets started, killed, or pivots, a 5-line note with what happened and why. Project ideas without outcomes are just wishes.

Concept evolution — when your thinking on something changes, write “I used to think X, now I think Y because Z.” The rarest but highest-signal update.

The Behavioral Trick

The capture reflex already exists — a notes app for quick mobile capture. The habit is: when you do something the wiki recommended or inspired, immediately drop a 2-line note. Same reflex, different trigger. It flows into Dump/ with everything else.

The wiki loop closes itself. You just have to capture the exit condition.


What’s Next

  • /ingest on articles, podcasts, meeting notes
  • /ask as the primary interface — ask the wiki questions instead of browsing it
  • /lint to keep the graph healthy as it grows
  • Potentially: auto-ingest via a Claude Code hook when new files land in 1 - Material/

The goal isn’t a perfect note system. It’s a system that thinks with you.