Operate any Obsidian vault as a living second brain. Use this skill whenever the user asks Claude to read, write, update, search, or manage their Obsidian vault — including saving notes from conversation, creating daily entries, updating kanban boards, logging dev work, managing people notes, capturing decisions, tracking deals, or maintaining any vault structure. Also triggers when the user wants to bootstrap a new vault from scratch, run a vault health check, or drop a _CLAUDE.md into their vault so all Claude surfaces share the same operating rules. Use proactively whenever the conversation produces information worth preserving (decisions, people met, projects started, tasks completed, lessons learned).
Claude operates your Obsidian vault as a living OS — not a note-taking app. Everything worth remembering gets saved. Every update propagates everywhere it belongs.
This skill uses the mcp-obsidian MCP server. The tool names below (get_file_contents, list_files_in_vault, search, append_content, write_file) are specific to that package. If you are using a different Obsidian MCP server, tool names may differ — check that server's documentation.
If MCP vault tools are unavailable: fall back to reading and writing files directly via the filesystem using standard file tools (Read, Write, Edit, Glob). The vault is plain markdown files — all operations can be done without MCP, just more verbosely. Tell the user:
"The obsidian-vault MCP server isn't connected — I'll read/write vault files directly instead. To enable MCP for faster vault access, run:
claude mcp add obsidian-vault -s user -- npx -y mcp-obsidian \"/path/to/your/vault\""
_CLAUDE.mdBefore doing anything in a vault, check if _CLAUDE.md exists at the vault root:
get_file_contents("_CLAUDE.md")
If it exists: follow its rules exactly — they override the defaults in this skill. Where _CLAUDE.md is silent, fall back to the defaults below.
If it doesn't exist: use the defaults in this skill, then offer to create one.
list_files_in_vault()
Scan the structure to understand: folder names, template locations, naming conventions, frontmatter patterns. Then read 2–3 existing notes with get_file_contents(path) to calibrate writing style before creating anything new.
If the user has no vault yet, run:
# One-line install + bootstrap (asks 3 questions: vault path, your name, preset)
curl -sL https://raw.githubusercontent.com/eugeniughelbur/obsidian-second-brain/main/scripts/quick-install.sh | bash
# Or manual:
python scripts/bootstrap_vault.py --path ~/path/to/vault --name "Your Name"
# With a preset:
python scripts/bootstrap_vault.py --path ~/my-vault --name "Your Name" --preset executive
python scripts/bootstrap_vault.py --path ~/my-vault --name "Your Name" --preset builder
python scripts/bootstrap_vault.py --path ~/my-vault --name "Your Name" --preset creator
python scripts/bootstrap_vault.py --path ~/my-vault --name "Your Name" --preset researcher
# With style override:
python scripts/bootstrap_vault.py --path ~/my-vault --name "Your Name" --style obsidian
# With assistant mode (maintaining vault for someone else):
python scripts/bootstrap_vault.py --path ~/my-vault --name "Your Name" --mode assistant --subject "Boss Name"
Then configure mcp-obsidian to point at the new vault path and restart Claude.
Presets customize the vault for different use cases:
executive — Decisions, people, meetings, strategic planning. Kanban: OKRs, Quarterly, Weekly.builder — Projects, dev logs, architecture decisions, debugging. Kanban: Backlog, Sprint, Done.creator — Content calendar, ideas pipeline, audience notes, publishing. Kanban: Ideas, Drafts, Published.researcher — Sources, literature notes, hypotheses, methodology. Kanban: Reading, Processing, Synthesized.Default (no preset) gives a general-purpose vault. All presets use wiki-style by default.
Assistant mode creates a _CLAUDE.md configured for operating a vault on behalf of someone else. See references/claude-md-assistant-template.md.
See references/vault-schema.md for full structural details.
Every write operation must ask: where else does this belong?
| You create/update... | Also update... |
|---|---|
| A new project note | Kanban board (add to Backlog), today's daily note (link it) |
| A task completed | Kanban board (move to Done), project note (log it), daily note |
| A person note | Daily note (mention interaction), People index if it exists |
| A dev log | Daily note (link it), project note (Recent Activity) |
| A deal update | Side Biz / Deals kanban, Dashboard totals |
| A decision made | Project note (Key Decisions), daily note |
| A mention/shoutout | Mentions Log, person's note, daily note |
| Any vault write | log.md (append timestamped entry), index.md (update if new note created) |
Always propagate. Never create a single orphaned note.
When a fact changes (role, company, status, location, tool), NEVER delete the old value. Add a new entry to the timeline: frontmatter array with both event time AND transaction time: