Claude Code + Obsidian Vault — Setup & Rebuild Guide
How to build this AI workspace from a fresh Mac — and how to rebuild it from scratch if you lose your computer. Written for people who know browser Claude but have never opened a Terminal. Fast path: ~15 minutes with the script. Full read: ~45 minutes.
The only thing you must pay for is a Claude plan — Claude Pro at $17/mo (annual, $200 up front) or $20/mo (monthly). That plan includes Claude Code. Everything else in the core setup is free. Optional paid add-ons are marked throughout and totaled in Chapter 17.
| Piece | Cost | Need it? |
|---|---|---|
| Claude Pro (includes Claude Code) | $17/mo annual · $20/mo monthly | Required |
| Obsidian, VS Code, Homebrew, Git, the CLIs | $0 | Free |
| Obsidian Sync (multi-device) | $4/mo annual · $5/mo monthly | Optional |
| claude.ai connectors (Slack, Notion, Gmail, Drive, etc.) | $0 to connect* | Optional |
| Pipeboard (Meta + TikTok ad MCPs) | Paid — see pipeboard.co | Optional |
| Claude Max (more usage than Pro) | from $100/mo | Optional |
*The connectors are free; you still need accounts on those services, which have their own pricing.
Run the script
There's a tested script, rebuild.sh, that does the boring deterministic parts for you: installs the tools, creates the vault, sets up the status line, installs the skill bundles, and links your memory folder. It's safe to run more than once and never overwrites files you already have.
Step 1 — get the script. It lives next to this guide. If you're reading this on the web, download it from the same folder, or copy it from rebuild.sh. Save it somewhere like your Downloads folder.
Step 2 — run it. Open Terminal (⌘+Space, type "Terminal", Enter) and run:
bash ~/Downloads/rebuild.sh ~/Documents/MyVault
The first run installs Claude Code, then stops and asks you to log in. Do that:
claude login
Then run the same script line again — it picks up where it left off and finishes everything. At the end it prints the 3-4 things only you can do (connecting accounts in a browser, opening Obsidian).
Prefer to understand each step, or something went wrong? The chapters below are the same setup, done by hand, with a "if it breaks" note on every tricky step.
0What you're building
The whole stack is one folder on disk, looked at by three apps that cooperate by reading and writing the same files. Once you see that, everything else makes sense.
┌──────────────────────────┐
│ ~/Documents/MyVault/ │
│ (one folder on disk) │
└────────────┬─────────────┘
│
┌────────────────────────────┼────────────────────────────┐
┌──────▼──────┐ ┌───────▼───────┐ ┌────────▼──────┐
│ Obsidian │ │ Claude Code │ │ VS Code │
│ (notes) │ │ (AI agent) │ │ (code editor) │
└─────────────┘ └───────┬───────┘ └───────────────┘
│
┌────────────────┼────────────────┐
┌────▼────┐ ┌─────▼─────┐ ┌──────▼──────┐
│ Skills │ │ MCPs │ │ Memory │
│(recipes)│ │ (hands) │ │ (brain) │
└─────────┘ └─────┬─────┘ └─────────────┘
▼
Slack · Notion · Gmail · Drive · Klaviyo
Shopify · Canva · Meta Ads · TikTok · GA4
- Vault — a folder of plain-text notes. (Obsidian's word; we use it too.)
- Claude Code — Anthropic's command-line AI. You talk to it; it reads and edits files in the folder.
- VS Code — a code editor. It can host Claude Code in a side panel and shows the same folder.
- Obsidian — a notes app. Opens the same folder, treats every
.mdfile as a note. - MCP — a connector that gives Claude one outside power: read your inbox, post to Slack, query Shopify.
- Skill — a recipe file that teaches Claude how to do a specific job well.
- Memory — small notes Claude keeps about you, so it remembers between sessions.
- Plugin — a bundle of skills (and sometimes MCPs/commands) you install in one command.
Mental model: your filesystem is the database. Three apps look at it. They cooperate by editing the same files.
1Prerequisites — one-time machine setup
This is the only part the script can't fully skip on a brand-new Mac, so here's the manual version. macOS only; Windows users install WSL first and use the Linux steps inside it.
1.1 Open Terminal
Press ⌘ + Space, type Terminal, press Enter. A window with a blinking cursor appears — that's where commands go. To run a command: paste it, press Enter.
1.2 Install Apple's developer tools
xcode-select --install
A popup appears — click Install, wait for it to finish (a few minutes). This provides the basic build tools the next steps need.
1.3 Install Homebrew (the Mac app installer for developer tools)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
It asks for your Mac password (typing shows nothing — that's normal). When it finishes it prints 2-3 lines under "Next steps" that start with echo and eval — copy and run those, they add Homebrew to your shell.
brew and get "command not found", you skipped the "Next steps" lines. Re-run them from the Homebrew install output, or run eval "$(/opt/homebrew/bin/brew shellenv)".1.4 Install the three small tools we use
brew install git gh jq
git— version control (probably already there; harmless to re-run).gh— GitHub's CLI, lets Claude open PRs/issues for you.jq— reads JSON; the status line in Chapter 5 needs it.
That's it for prerequisites. (Older guides told you to install pyenv and compile Python — you don't need that. The one MCP that needs Python handles its own, in Chapter 12.)
1.5 Install the two apps
- VS Code — download, drag to Applications. Free.
- Obsidian — same. Free for personal use. Don't open a vault yet — that's Chapter 3.
brew --version, git --version, gh --version, jq --version.2Install Claude Code
Two ways. The first is simplest — no Node.js needed, and it updates itself.
2.1 The easy way (recommended)
curl -fsSL https://claude.ai/install.sh | bash
This is Anthropic's official installer. It drops the claude command into ~/.local/bin.
claude isn't found afterward, open a brand-new Terminal window (the installer updates your PATH, which only takes effect in new windows).2.2 The npm way (alternative)
If you already have Node.js 18+ and prefer npm:
npm install -g @anthropic-ai/claude-code
To update this version later, run npm install -g @anthropic-ai/claude-code@latest (not npm update -g).
2.3 Log in
claude login
Your browser opens; click Approve. You need a paid Claude plan — Pro ($17–20/mo) includes Claude Code.
claude --version prints something like 2.1.153 (Claude Code). To update any time: claude update.3Create the vault & point all three apps at it
The key idea: one folder is the Obsidian vault, the Claude Code working directory, and the VS Code workspace — all at once.
3.1 Make the folder
mkdir -p ~/Documents/MyVault
cd ~/Documents/MyVault
Name it anything — MyVault is a placeholder.
3.2 Open it in Obsidian
- Open Obsidian → Open folder as vault → choose
~/Documents/MyVault. - Click "Trust author and enable plugins" when asked.
- Settings (gear, bottom-left) → Community plugins → turn off Restricted mode → Browse → search Dataview → Install → Enable. (This makes your memory index render as a live table later.)
3.3 Open the same folder in VS Code
First, add the code command: open VS Code, press ⌘ + Shift + P, type "Shell Command", choose "Install 'code' command in PATH". Then:
code ~/Documents/MyVault
3.4 Open Claude Code in the folder
cd ~/Documents/MyVault
claude
Quit with /exit for now.
claude launches without error.4Install the Claude Code VS Code extension
Optional but nice: it puts Claude in a side panel so you see file changes in the editor as they happen.
- In VS Code: Extensions icon (or
⌘ + Shift + X). - Search Claude Code, install the one by Anthropic, reload if asked.
- Click the Claude icon in the left rail, sign in (same browser flow as
claude login).
5A better status line
Shows your folder, model, and how much of the context window you've used. Save this as ~/.claude/statusline-command.sh:
#!/usr/bin/env bash
# ~/.claude/statusline-command.sh — shows: dir | model | context usage
input=$(cat)
cwd=$(echo "$input" | jq -r '.workspace.current_dir // .cwd // ""')
dir=$(basename "$cwd")
model=$(echo "$input" | jq -r '.model.display_name // .model.id // "unknown"')
used_pct=$(echo "$input" | jq -r '.context_window.used_percentage // empty')
total=$(echo "$input" | jq -r '.context_window.context_window_size // 200000')
tokens=$(echo "$input" | jq -r '.context_window.total_input_tokens // 0')
if [ -n "$used_pct" ]; then
used_int=$(printf '%.0f' "$used_pct")
if [ "$total" -ge 1000000 ]; then tf=$(echo "$total" | awk '{printf "%.0fM",$1/1000000}'); else tf=$(echo "$total" | awk '{printf "%.0fK",$1/1000}'); fi
tk=$(echo "$tokens" | awk '{printf "%.0fK",$1/1000}'); ctx="${tk}/${tf} (${used_int}%)"
else ctx="--"; fi
printf "%s | %s | ctx: %s\n" "$dir" "$model" "$ctx"
Make it executable and wire it in:
chmod +x ~/.claude/statusline-command.sh
Open ~/.claude/settings.json (code ~/.claude/settings.json) and add the statusLine block — keep any other keys that are already there:
{
"statusLine": {
"type": "command",
"command": "bash ~/.claude/statusline-command.sh"
}
}
MyVault | Claude Opus 4.7 | ctx: 12K/200K (6%).jq (run brew install jq), or your settings.json has a syntax error — paste it into jsonlint.com to find the typo.6Memory — so Claude remembers you
Claude Code can keep small notes about you (your preferences, your companies, your projects) and read them back every session. They live at ~/.claude/projects/<encoded-path>/memory/, where the encoded path is your vault's path with slashes turned into dashes.
The trick: link memory into your vault
That deep path is invisible to Obsidian. Link it in as _memory so both apps see the same files. Run this from inside your vault:
cd ~/Documents/MyVault
ENC=$(echo "$PWD" | sed 's#[/.]#-#g')
mkdir -p ~/.claude/projects/$ENC/memory
ln -s ~/.claude/projects/$ENC/memory _memory
(The rebuild.sh script does exactly this for you.)
Add memories by just talking
You don't write memory files yourself — you tell Claude and it writes them:
- "Remember that I prefer short answers with no summary at the end."
- "I'm CEO of Acme; we sell B2B widgets — don't suggest consumer tactics."
_memory/MEMORY.md and switch to Reading view — the Dataview table lists your memories. After you say "remember X", a new file shows up here.7The vault layout
A few files are auto-loaded by Claude Code if they exist. Here's the pattern the script sets up:
~/Documents/MyVault/
├── CLAUDE.md # Your standing instructions — auto-loaded every session
├── me.md # Your personal profile
├── _memory → … # Symlinked memory dir (Chapter 6)
├── companies/<slug>/ # One folder per business (overview.md, brand.md, …)
├── projects/<slug>/ # Personal projects
├── .agents/<slug>/ # Per-business positioning (product-marketing-context.md)
├── .claude/skills/ # Skills that only apply to this vault
├── _stack/ # manifest.md + snapshot.sh (Chapter 14)
└── .gitignore
The most important file is CLAUDE.md — everything in it is loaded into every session. It's your standing orders: who you are, how you want Claude to work, your list of companies/projects. The script writes a starter you can fill in.
CLAUDE.md inside each companies/<slug>/ folder. Claude auto-loads it when you cd into that folder, giving you per-business context with zero typing.8Skills 101
A skill is a Markdown file that teaches Claude how to do one job. Frontmatter says when to use it; the body is the instructions. Example:
---
name: cold-email
description: Write B2B cold emails that get replies. Use when the user wants
outbound emails, prospecting, or SDR sequences.
---
You are an experienced SDR. When writing cold emails:
1. Open with a specific observation, not flattery.
2. Keep it under 90 words.
3. One clear call to action.
Skills live in two places: ~/.claude/skills/ (available everywhere) or <vault>/.claude/skills/ (this vault only). Claude reads each skill's description at startup and picks the right one based on what you ask — you rarely invoke them by name.
9Install skill bundles
Don't write skills from scratch — install community bundles. These commands run in your normal Terminal (the claude plugin CLI). You can also run them as /plugin commands inside an interactive Claude session — same result.
9.1 Anthropic's official skills
Document creation (Word, PDF, PowerPoint, Excel) plus example skills.
claude plugin marketplace add anthropics/skills
claude plugin install document-skills@anthropic-agent-skills
claude plugin install example-skills@anthropic-agent-skills
9.2 Marketing Skills (Corey Haines)
~30 skills: SEO, CRO, copywriting, paid ads, email, analytics.
claude plugin marketplace add coreyhaines31/marketingskills
claude plugin install marketing-skills@marketingskills
9.3 Superpowers (Jesse Vincent)
A full software-development methodology as skills: TDD, planning, code review.
claude plugin marketplace add obra/superpowers-marketplace
claude plugin install superpowers@superpowers-marketplace
9.4 Obsidian Skills (kepano)
Teaches Claude to write proper Obsidian Markdown, edit .canvas and .base files.
claude plugin marketplace add kepano/obsidian-skills
claude plugin install obsidian@obsidian-skills
claude plugin list shows all four installed. Inside a session, the skills are picked automatically when relevant.plugin@marketplace name against this page.10Plugins
A plugin bundles skills (and sometimes commands, agents, or MCPs) into one install — that's all you did in Chapter 9. Two more worth knowing:
- Codex (OpenAI) — hand a coding task to GPT for a second opinion.
claude plugin marketplace add openai/codex-plugin-ccthenclaude plugin install codex@openai-codex. Needs the Codex CLI installed too. - The official Anthropic marketplace — a big curated directory.
claude plugin marketplace add anthropics/claude-plugins-official, then browse with/plugininside a session.
claude plugin list shows every plugin you've installed.11MCPs 101
An MCP gives Claude one outside power. Three kinds, easiest first:
- claude.ai connectors — connect once in your browser at claude.ai → Settings → Connectors; they show up in Claude Code automatically. This is how you'll add most of them. Free to connect.
- Remote (HTTP) MCPs — you paste a URL with
claude mcp add --transport http …. - Local MCPs — Claude runs a program on your Mac (used for Playwright and Google Analytics).
Handy commands: claude mcp list (see everything + status), claude mcp add (add one), claude mcp remove <name>.
12Recommended MCPs
12.1 Free connectors (do these first)
At claude.ai → Settings → Connectors, connect the ones you use: Slack, Notion, Gmail, Google Drive, Google Calendar, Canva, Klaviyo, Shopify. Each opens that service's normal login.
12.2 Playwright — let Claude drive a browser (free, local)
claude mcp add -s user playwright -- npx -y @playwright/mcp@latest --user-data-dir ~/.cache/playwright-meta-profile
The --user-data-dir part keeps you logged into sites between sessions, so you only sign into Meta/Google once.
12.3 Google Analytics (free, local)
Needs a Google service-account JSON key with Viewer access to your GA4 property (create one in Google Cloud Console, then grant it Viewer in GA4 admin). Then:
claude mcp add -s user google-analytics -e GOOGLE_APPLICATION_CREDENTIALS=/full/path/to/key.json -- pipx run analytics-mcp
(pipx comes with Homebrew Python; if missing, brew install pipx.)
12.4 Pipeboard — Meta & TikTok ads (paid)
Meta and TikTok don't publish AI-friendly MCPs; Pipeboard bridges them. Sign up, connect your ad accounts, then:
claude mcp add -s user --transport http meta-ads https://mcp.pipeboard.co/meta-ads-mcp
claude mcp add -s user --transport http tiktok-ads https://tiktok-ads.mcp.pipeboard.co
claude mcp list shows each one as Connected (a green check). Connectors needing browser login show "Needs authentication" until you finish at claude.ai.13A daily flow — how it fits together
Monday morning. You open Obsidian and glance at a dashboard note. You open the Claude panel in VS Code and say:
"Refresh the dashboard — pull yesterday's Meta, TikTok, and Klaviyo numbers, flag anything off target, and list pending actions."
Claude Code reads the note to learn the targets, calls the Meta / TikTok / Klaviyo MCPs, writes the updated note back into the vault. Obsidian re-renders it in front of you. You never switched apps.
The pattern repeats for everything: open Obsidian to read, talk to Claude to write, glance at VS Code if you want to see exactly what changed.
14Stack audit (power-user)
Once you have a dozen MCPs and several plugins, keep track of what's installed. The script creates _stack/snapshot.sh, which prints your current state:
bash _stack/snapshot.sh > _stack/snapshot-latest.md
It lists your MCPs, Claude Code version, installed plugins, skills, CLI versions, and anything Homebrew says is outdated. Run it weekly and skim for drift.
_stack/manifest.md describing what should be installed, and diff it against the snapshot. There's a community stack-audit skill that automates the comparison.15Custom CLI tooling (power-user)
When no MCP exists for an API you need, write a small CLI and let Claude call it. Two rules make a tool work well with Claude:
- Output JSON by default — Claude parses it instantly.
- Add a
--dry-runflag on anything that writes, so Claude can preview before doing it for real.
Save tools under companies/<company>/operations/ and ask Claude: "run my-tool whoami and tell me what you see."
16Backup & rebuild (if you lose your computer)
This whole stack is two folders. Back up both and you can rebuild anywhere.
| What | Why | How to back it up |
|---|---|---|
~/Documents/MyVault/ | All your notes, company context, memory index, custom tools | Obsidian Sync, or git, or Time Machine |
~/.claude/ | Settings, status line, installed plugins, the actual memory files | Time Machine, or copy the folder to a drive |
To rebuild on a new Mac
- Restore
~/Documents/MyVault/(or clone it from git / let Obsidian Sync pull it down). - Run
rebuild.shfrom Chapter "Fast path" — it reinstalls the tools, plugins, and status line, and re-creates the_memorysymlink. - Run
claude loginand reconnect your claude.ai MCPs in the browser. - Re-add any paid/local MCPs (Pipeboard, GA4) with the commands in Chapter 12.
~/.claude/, not the vault — the vault only holds a symlink to them. If you only back up the vault, back up ~/.claude/projects/<encoded-path>/memory/ too, or you'll keep the index but lose the notes.Updating
claude update # Claude Code itself
claude plugin marketplace update # refresh all marketplace sources
claude plugin update <name> # update one plugin (restart Claude after)
brew upgrade # Mac tools
17Glossary & all links
What everything costs (full picture)
| Service | Cost | Notes |
|---|---|---|
| Claude Pro | $17/mo annual · $20/mo monthly | Required. Includes Claude Code. |
| Claude Max | from $100/mo | Optional. 5× or 20× more usage than Pro. |
| Anthropic API (alt to a plan) | Pay per token | Only if you don't want a subscription. |
| Obsidian | $0 personal | Commercial use: $50/user/yr. |
| Obsidian Sync | $4/mo annual · $5/mo monthly | Optional, for multi-device. |
| VS Code | $0 | Free. |
| Homebrew, Node, Git, gh, jq | $0 | Free. |
| claude.ai connectors | $0 to connect | Underlying services bill separately. |
| Playwright MCP | $0 | Free. |
| Google Analytics MCP | $0 | GA4 + service account are free. |
| Pipeboard (Meta/TikTok ads) | Paid — see pipeboard.co | Only for ad management. |
| Cloudflare Pages (to host this guide) | $0 (free tier) | Optional. |
| Domain name | ~$10–15/yr | Optional, for a custom URL. |
Minimum to run everything: Claude Pro at $17–20/mo. The rest is free unless you add the optional paid pieces.
Glossary
| Term | One-liner |
|---|---|
| Vault | A folder of Markdown files Obsidian opens. |
| Claude Code | Anthropic's command-line AI — reads and writes files for you. |
| Skill | A Markdown file teaching Claude one specific job. |
| Plugin | A bundle of skills you install in one command. |
| MCP | A connector giving Claude one external power (email, Slack, Shopify…). |
| Memory | Notes Claude keeps about you between sessions. |
CLAUDE.md | Vault-root instructions, auto-loaded every session. |
| Marketplace | A GitHub repo Claude Code installs plugins from. |
| Status line | The customizable bottom line of Claude Code's UI. |
Every link in this guide
| Thing | Where |
|---|---|
| Claude Code install docs | docs.claude.com/en/docs/claude-code/setup |
| Claude plans / pricing | anthropic.com/pricing |
| claude.ai MCP connectors | claude.ai/settings/connectors |
| Homebrew | brew.sh |
| VS Code | code.visualstudio.com/download |
| Obsidian | obsidian.md/download |
| Obsidian pricing | obsidian.md/pricing |
| Dataview plugin | github.com/blacksmithgu/obsidian-dataview |
| Anthropic Skills | github.com/anthropics/skills |
| Marketing Skills | github.com/coreyhaines31/marketingskills |
| Superpowers | github.com/obra/superpowers-marketplace |
| Obsidian Skills | github.com/kepano/obsidian-skills |
| Codex CLI | github.com/openai/codex |
| Pipeboard (Meta/TikTok MCP) | pipeboard.co |
| Playwright MCP | github.com/microsoft/playwright-mcp |