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 planClaude 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.

PieceCostNeed it?
Claude Pro (includes Claude Code)$17/mo annual · $20/mo monthlyRequired
Obsidian, VS Code, Homebrew, Git, the CLIs$0Free
Obsidian Sync (multi-device)$4/mo annual · $5/mo monthlyOptional
claude.ai connectors (Slack, Notion, Gmail, Drive, etc.)$0 to connect*Optional
Pipeboard (Meta + TikTok ad MCPs)Paid — see pipeboard.coOptional
Claude Max (more usage than Pro)from $100/moOptional

*The connectors are free; you still need accounts on those services, which have their own pricing.

⚡ Fast path

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

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 evalcopy and run those, they add Homebrew to your shell.

If you later type 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

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

Type each of these and get a version number, not an error: 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.

If 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 planPro ($17–20/mo) includes Claude Code.

Claude Pro: $17/mo billed annually, $20/mo billed monthly. That's the one required cost for this whole setup. Claude Max (from $100/mo) just gives you more usage — start with Pro.
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

  1. Open Obsidian → Open folder as vault → choose ~/Documents/MyVault.
  2. Click "Trust author and enable plugins" when asked.
  3. 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.)
Obsidian itself is free for personal use. Multi-device sync is $4/mo (annual). Commercial use is $50/user/year if you're using it for a business.

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.

Obsidian shows an (empty) file list. VS Code's Explorer shows the same folder. 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.

  1. In VS Code: Extensions icon (or ⌘ + Shift + X).
  2. Search Claude Code, install the one by Anthropic, reload if asked.
  3. Click the Claude icon in the left rail, sign in (same browser flow as claude login).
A Claude panel appears in VS Code and you can chat with it without leaving the editor.
The CLI and the extension share the same login, settings, plugins, and MCPs. Use whichever you like; many people keep VS Code open for editing and a Terminal tab for long sessions.

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"
  }
}
Restart Claude Code; the bottom line shows MyVault | Claude Opus 4.7 | ctx: 12K/200K (6%).
No status line? You probably don't have 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:

In Obsidian, open _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.

Drop a small 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.
"marketplace already exists" or "plugin already installed" are fine — they mean it's done. A real failure says "not found" — check the spelling of the 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:

claude plugin list shows every plugin you've installed.

11MCPs 101

An MCP gives Claude one outside power. Three kinds, easiest first:

  1. 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.
  2. Remote (HTTP) MCPs — you paste a URL with claude mcp add --transport http ….
  3. 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.

The connectors are free. You need accounts on the underlying services — Slack, Notion, Klaviyo, Shopify, etc. have their own free or paid tiers.

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
Pipeboard is a paid service — check pipeboard.co for current pricing. Skip it unless you manage Meta or TikTok ads.
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.

Keep a hand-written _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:

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.

WhatWhyHow to back it up
~/Documents/MyVault/All your notes, company context, memory index, custom toolsObsidian Sync, or git, or Time Machine
~/.claude/Settings, status line, installed plugins, the actual memory filesTime Machine, or copy the folder to a drive

To rebuild on a new Mac

  1. Restore ~/Documents/MyVault/ (or clone it from git / let Obsidian Sync pull it down).
  2. Run rebuild.sh from Chapter "Fast path" — it reinstalls the tools, plugins, and status line, and re-creates the _memory symlink.
  3. Run claude login and reconnect your claude.ai MCPs in the browser.
  4. Re-add any paid/local MCPs (Pipeboard, GA4) with the commands in Chapter 12.
The memory files live in ~/.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)

ServiceCostNotes
Claude Pro$17/mo annual · $20/mo monthlyRequired. Includes Claude Code.
Claude Maxfrom $100/moOptional. 5× or 20× more usage than Pro.
Anthropic API (alt to a plan)Pay per tokenOnly if you don't want a subscription.
Obsidian$0 personalCommercial use: $50/user/yr.
Obsidian Sync$4/mo annual · $5/mo monthlyOptional, for multi-device.
VS Code$0Free.
Homebrew, Node, Git, gh, jq$0Free.
claude.ai connectors$0 to connectUnderlying services bill separately.
Playwright MCP$0Free.
Google Analytics MCP$0GA4 + service account are free.
Pipeboard (Meta/TikTok ads)Paid — see pipeboard.coOnly for ad management.
Cloudflare Pages (to host this guide)$0 (free tier)Optional.
Domain name~$10–15/yrOptional, 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

TermOne-liner
VaultA folder of Markdown files Obsidian opens.
Claude CodeAnthropic's command-line AI — reads and writes files for you.
SkillA Markdown file teaching Claude one specific job.
PluginA bundle of skills you install in one command.
MCPA connector giving Claude one external power (email, Slack, Shopify…).
MemoryNotes Claude keeps about you between sessions.
CLAUDE.mdVault-root instructions, auto-loaded every session.
MarketplaceA GitHub repo Claude Code installs plugins from.
Status lineThe customizable bottom line of Claude Code's UI.

Every link in this guide

ThingWhere
Claude Code install docsdocs.claude.com/en/docs/claude-code/setup
Claude plans / pricinganthropic.com/pricing
claude.ai MCP connectorsclaude.ai/settings/connectors
Homebrewbrew.sh
VS Codecode.visualstudio.com/download
Obsidianobsidian.md/download
Obsidian pricingobsidian.md/pricing
Dataview plugingithub.com/blacksmithgu/obsidian-dataview
Anthropic Skillsgithub.com/anthropics/skills
Marketing Skillsgithub.com/coreyhaines31/marketingskills
Superpowersgithub.com/obra/superpowers-marketplace
Obsidian Skillsgithub.com/kepano/obsidian-skills
Codex CLIgithub.com/openai/codex
Pipeboard (Meta/TikTok MCP)pipeboard.co
Playwright MCPgithub.com/microsoft/playwright-mcp