My Second Brain Has an AI Layer
How I use Obsidian as a personal operating system — and Claude Code as the AI agent that runs on top of it.
I sent a Telegram message from my phone asking about my mom’s surgery appointment. Ten seconds later I got back a structured summary: the next steps, the surgeon’s contact information, the FMLA certification deadline, and a note that I still needed to fill out Section 1 of the form. It was pulled directly from my notes — the ones I had been keeping in Obsidian for the past few weeks as I navigated the process.
I wasn’t impressed by the AI. I was impressed by the system. The AI just read my files.
The Problem
Every AI chat session starts from zero. You spend the first few minutes re-explaining context that you’ve already explained a dozen times. Your notes are somewhere else — a different app, a different tab, a different device. By the time the AI has enough context to be useful, you’ve lost the thread.
I tried other AI agent tools. Some of them are powerful, but without a way to inspect what the agent actually knows, they’re a black box. Did it use the right context? Did it read the latest version of that file? Did it remember what we decided last week? You can’t tell. The agent acts, you see the result, and you hope the reasoning was sound.
That’s the core problem: AI without a legible knowledge layer is powerful but opaque. You can’t audit it. You can’t trust it the way you trust a system you understand.
The Obsidian layer fixes this. Everything the agent reads or writes is a markdown file you can open in thirty seconds. The vault is the agent’s working memory — visible, editable, human-readable. If something goes wrong, you know exactly where to look.
The Second Brain Layer
My Obsidian vault is organized around a simple idea: everything worth tracking has a home.
Four top-level folders:
Projects/— work with a finish line. A property sale. A website. A side project. Each project gets its own folder with an overview (_index.md), a task list (Tasks.md), a running journal (Log.md), and a planning subfolder.Areas/— ongoing responsibilities with no end date. Health tracking for a family member. Personal assistant configuration. These follow the same structure as projects but never “complete.”Resources/— reference material by topic. Articles I’ve saved. Notes on tools. Research. Organized by subject, not by date.Archive/— completed projects and inactive areas. Out of the way but findable.
Every project and area has the same shape: overview, tasks, log, planning notes. The consistency matters — not for aesthetics, but because it makes the whole vault navigable by both humans and software.
The Home.md file is a dashboard. It uses Obsidian’s Dataview plugin to render live tables of active projects and areas, and the Tasks plugin to surface what’s due today, this week, and what’s overdue. No manual updating. The tables rebuild whenever you open the file.
At the vault root, there’s a CLAUDE.md file. This is the agent’s instruction manual — it explains the vault structure, the task syntax, when to update which files, and how to respond via Telegram. When the agent starts a session, it reads this file first. Everything it needs to navigate the vault is in there.
The vault is the source of truth. The AI reads and writes to it. The vault persists. The AI session doesn’t.
The AI Agent Layer
The setup runs on a Mac mini that stays on. Claude Code runs there permanently, connected to the vault directory and to Telegram.
CLAUDE.md as the system prompt. The file at the vault root defines how the agent behaves: the folder structure and what each folder means, the task syntax (the Tasks plugin uses emoji-based priority flags — 📅 for due date, ⏫ for high priority), when to update Log.md, and the rule that any response needs to be sent back via Telegram. This file is everything the agent needs to operate without re-explanation.
Telegram as the interface. I send a message from my phone. The agent receives it, acts on it, and replies. The response arrives in the same chat. No terminal open, no laptop required. It has the same authority as typing directly into the terminal — which means I can ask it to add tasks, look up information, save articles, check what’s due, or help me think through a decision.
Every morning I get a message with my pending tasks for the day. No app to open, no dashboard to check. Just a summary of what needs to happen, organized by priority. It’s the kind of thing that sounds small until you realize how often a good start to the day is just knowing what you’re supposed to be doing.
The same system handles everything because everything lives in the vault. Work tasks and personal tasks. Surgery coordination for a family member. An ongoing property sale. Errands. The AI doesn’t know the difference — it just reads the files and does what the instructions say.
MCP tools. Beyond reading and writing vault files, the agent has access to a few external tools:
qmd— a local semantic search engine that indexes all vault files. Uses small GGUF models running entirely on-device (Apple Silicon, no network requests). When I ask about something that might be spread across multiple files, the agent searches instead of guessing.- Google Calendar and Gmail — for scheduling and email context.
- Playwright — for browser automation when needed.
A Real Example
Here’s how a /save request works end-to-end.
I send a Telegram message: /save https://... with a link to an article I want to keep.
The agent fetches the article, reads it, and creates a Markdown file in Resources/Topic Name/. The file has a standard format: source URL, save date, key points, and a note on why I saved it. It picks the topic folder based on the content — or creates a new one if nothing fits. It replies with the file path and a one-line summary of what was saved.
From my side: I sent one message. I got back a confirmation and a file that’s now indexed, searchable, and connected to the rest of my notes. The article doesn’t live in a browser bookmark that I’ll never open again. It lives in the vault where the agent can find it when it’s relevant.
Or: I ask “what do I have open for the property sale?” The agent queries the vault with qmd, finds the relevant tasks and the most recent log entries, and replies with a structured summary. The information was already there. The agent just retrieved it.
What Makes This Work
The vault is structured so the agent can navigate it without explanation each session.
CLAUDE.md is the single source of behavioral truth. If I want to change how the agent behaves — different task format, new conventions, different reply style — I edit one file and every subsequent session picks it up. No prompt engineering in the chat. No re-explaining.
Log.md entries are memory across sessions. When the agent updates a log after completing work, that entry is there next time. The agent can read what happened last week without me summarizing it. The log is how context persists beyond the session window.
Consistent frontmatter and task syntax make the vault parseable by both humans and software. The Tasks plugin reads the same task format the agent writes. Dataview queries work because every _index.md has the same frontmatter fields. Everything is interoperable because the structure was designed to be.
The insight isn’t that AI is powerful — it’s that AI is most useful when it has access to well-organized, legible information. The Second Brain is the part you build. The AI layer is what you attach to it.
Honest Reflection
This took time to set up. The vault structure, the conventions, the CLAUDE.md, the MCP integrations — none of it is zero-effort. It’s opinionated about how information should be organized, and if you’re starting from scratch it can feel like overhead before it feels like leverage.
It’s also not for everyone. If you don’t already have a note-taking practice, adding an AI layer to it won’t fix that. The system is useful because the vault is useful. The AI makes the vault more accessible, not more valuable.
But if you already live in Obsidian — or something like it — the AI layer is surprisingly low-friction to add. The structure you already have is exactly what the agent needs to be useful. You’re not building something new. You’re connecting something that already works to something that makes it faster.
If you’ve ever felt like your AI assistant has amnesia every time you open a new session — this is the fix. The vault remembers. The agent reads the vault. The rest follows.