You Don't Need an Agent. You Need a Librarian.
I run my consulting pipeline, content calendar, family logistics, workouts, and sourdough experiments from a folder of text files. The useful part is not an autonomous agent. It is a system that keeps the journal.
If you want to understand how I use an Obsidian vault as a second brain, with AI operating it, read through "Automate the mechanics, not the judgment." Those are my experiences and the principles that have survived as the system evolved.
Everything from "The blueprint" onward was generated by asking the system to describe itself from the files and instructions it already maintains. You can read those sections, but the better use is to feed them into your own AI harness. Ask it to review your current setup, instructions, and any past sessions it can access, then identify the ideas and elements worth borrowing. The scaffold prompt is explicitly meant to be edited and pasted into your harness. The goal is not to reproduce my vault. It is to help your AI improve the system you have already been building together.
I've tried a few times to explain exactly how I run my life and business using AI. Every time I run into the same problem. The system is simple, but it isn't easy to explain. It is a collection of Markdown files and tools that has evolved along with the models, their harnesses, and my needs.
The Markdown lives in an Obsidian vault. Obsidian gives me a useful interface, but the files are the important part.
One area of this system is a CRM for my consulting business. Another holds my content pipeline. There are active client projects, meeting transcripts, workout logs, the school pickup schedule, and a sourdough journal for the hobby that continues to kick my ass.
Claude Code and Codex both work from the same files. A scheduled daily command in Claude Code checks my calendar, looks for new email and meeting signals, updates the relevant files, and prepares a morning briefing. On Sundays it walks the pipeline, drafts the week's priorities, and points out decisions it refused to make without me. Because the state lives in the vault, I can bring different models and harnesses into the system without teaching each one my life from scratch.
Most of this does not need an agent in the grand, autonomous sense. It needs something that keeps the journal.
A librarian does more than retrieve what is already on the shelf. Much of the work is feeding it. The system collects research, transcripts, documents, and other people's wisdom, then files, distills, and links that material so a model has useful context when I need it. The leverage comes from what the system has gathered before I ask the question.
A friend shared the architecture of his system with me in a Markdown document and PDF. I fed both into my vault to see what was worth stealing. That exchange pushed me to ask my system to describe itself. The blueprint later in this post is the result.
The vault is the memory
I do not rely on chat history as memory because every new session still needs somewhere durable to recover the state of the work.
The rules for my system live beside the work in CLAUDE.md files and smaller guidance documents. The current state of a client relationship lives in that company's file. Repeated workflows become slash commands with their steps, edge cases, and output formats written down.
A fresh Claude Code session can read the same files and pick up where the last one stopped. I do not need it to remember. I need it to maintain the record.
Distill, do not archive
My email stays in Gmail. Slack stays in Slack. Articles begin in the Obsidian Web Clipper. Granola deposits meeting notes and transcripts into the vault.
The operating system does not copy everything into a giant knowledge dump. It creates dated, source-linked distillations of what changed and why it matters. A CRM entry derived from a meeting links back to the meeting note, which links to the transcript. I can move from a one-line summary to the original words when I need to check it.
This is also how the system stays navigable. Metadata-rich files and familiar search tools do a surprising amount of work. Claude can find meetings by company or attendee without a separate vector database. Special-purpose CLIs work well for my setup, but MCP is valid too. The principle is inspectability, not allegiance to one protocol.
As I put it in a recent conversation, AI is also Unix. Give it a collection of simple tools and a legible environment before you architect an elaborate memory system.
Automate the mechanics, not the judgment
Claude drafts invoices in Stripe. I review them and hit send. It drafts emails. I send them.
Scheduled runs can append factual activity, update timestamps, and regenerate views. They cannot change a deal stage or rewrite a next action because they feel like it. Interpretive calls go into a pending-decisions file that appears in my next briefing.
An AI with broad access can be a malicious god in a box without having a malicious bone in its body. At this level of capability, the difference between stupidity and malice becomes academic. The Mickey Mouse sorcerer's-apprentice problem is enough. I only grant the system autonomy through narrow, written rules.
The blueprint
This is the compact version to copy into your own model as context. Adapt the names, tools, and areas to your life rather than reproducing mine exactly.
PARA structure
The vault uses Tiago Forte's PARA system as its overall structure.
- Projects: active efforts with a defined outcome or deadline
- Areas: ongoing responsibilities without an end date
- Resources: reference material organized by topic
- Archives: completed projects and inactive material from the other three categories
- Supporting folders handle intake, clippings, templates, and attachments without changing the PARA hierarchy
Substrate
- An Obsidian vault containing ordinary Markdown files
- Git for history and rollback, not file transport
- A root
CLAUDE.mdcontaining the layout, workflows, tool rules, and command inventory - Scoped
CLAUDE.mdfiles for areas complex enough to need their own operating rules - Frontmatter for state the system must query, including status, next action, owner, and dates
- Commands for repeated workflows; ordinary conversation for everything else
Sources
- Keep email, Slack, calendars, and other source material in their original systems
- Connect each source through a CLI or MCP tool that Claude can inspect and operate
- Confirm Claude can read every source independently before building workflows around it
- Store meeting notes and transcripts in the vault when the full record is worth citing
- Distill other sources into dated notes rather than building a second archive
Memory and traceability
- Durable rules live in files, never chat history
- Every distilled fact links to its source when one is available
- Sync state records the source item ID, timestamp, and every file it updated
- Repeated runs use watermarks, deduplicate old items, and report coverage gaps
- Synced source files are read-only; processing state lives elsewhere
The blueprint and prompt are designed to travel together. The blueprint gives a model the structure and boundaries. The prompt asks it to build. Feed it both, then replace my tools, operating areas, and rules with yours.
The rest of the blueprint, including my operating areas, sync contract, cadence, failure modes, and the complete Phase 1 scaffold, is available to newsletter subscribers. The subscription is free.