PM Workspace Setup
One-command vault installer, adding your Anthropic API key, connecting JIRA or Linear, and setting up Vault Bridges.
This guide gets your full Obsidian + Claude Threads + issue-tracker stack running. No philosophy — just the desk. By the end you’ll have a configured workspace and know what to click on Monday morning.
Time: ~30 minutes for the full stack. What you’re installing:
| Tool | What it does for you |
|---|---|
| Obsidian | Your PM notes home — OST, Signal Ledger, daily synthesis, everything searchable |
| Claude Threads plugin | Claude running inside Obsidian — threaded conversations that see your notes |
| Vault Bridges plugin | A live link from your product repo (or docs folder) into your vault |
| Issue tracker connection | Your Linear or JIRA work items surfaced alongside your OST |
| Agent PM skills | The 6 agents + PM skills (ost-workflow, pm-signal-synthesis, etc.) installed in Claude Code |
Step 1 — Install Obsidian + the pre-configured vault
The fastest path is the one-command installer. It downloads a pre-configured vault template with Claude Threads, Linear integration, and the right workspace layout already set up:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/rbcodelabs/ObsidianSetup/main/install.sh)"
The installer will:
- Check Obsidian is installed (download from obsidian.md if not)
- Download the pre-configured vault (~1.6MB)
- Ask where to put it on your machine
- Register it so it appears in Obsidian’s vault picker on relaunch
Restart Obsidian. Your new vault will appear in the picker — open it.
Prefer manual install? If you’d rather configure Obsidian yourself: create a new vault, enable community plugins (Settings → Community plugins → Turn on), then install Claude Threads and Vault Bridges via BRAT (see Appendix at the end of this doc).
Step 2 — Add your Anthropic API key
Claude Threads needs an Anthropic API key to run conversations. Your key is stored in the macOS keychain — not in any file.
Get your key:
- Go to console.anthropic.com → API Keys → Create Key
- Name it “Obsidian PM Workspace” and copy it — you won’t see it again
Add it to Claude Threads:
- In Obsidian: Settings (⌘,) → Claude Threads → Secret environment variables
- In the “Add secret key” field, type
ANTHROPIC_API_KEY→ press Enter - A prompt appears for the value — paste your key → confirm
- The key is saved to your macOS keychain under the name
ct-secret-ANTHROPIC_API_KEY
Verify: Open the Claude Threads panel (left sidebar or Cmd+P → “Open Claude Threads”). Start a new thread and type anything. You should get a response; if you get an auth error, the key wasn’t saved — repeat Step 2.
Step 3 — Connect your issue tracker
Pick your tracker below. Both follow the same pattern: get a key, add it as a secret, confirm the connection.
Linear
Get your API key:
- Go to linear.app → Settings (bottom-left) → API → Personal API Keys
- Click New API key → label it “Obsidian PM Workspace” → Create
- Copy the key
Add it as a secret in Claude Threads:
- Settings → Claude Threads → Secret environment variables
- Add key name:
LINEAR_API_KEY→ paste the value → confirm
Add your workspace identifier:
- Add a second secret:
LINEAR_WORKSPACE_SLUG→ your workspace’s slug (the part in your Linear URL afterlinear.app/, e.g.,acmefromlinear.app/acme/)
Verify: In a Claude Thread, ask: “List my 5 most recent Linear issues.” If it returns issues, you’re connected. If it can’t find the key, re-check the secret names exactly.
JIRA (Atlassian)
Get your API token:
- Go to id.atlassian.com/manage-profile/security/api-tokens
- Click Create API token → label it “Obsidian PM Workspace” → Create
- Copy the token — you won’t see it again
Add the three secrets:
| Secret name | Value |
|---|---|
JIRA_API_TOKEN | Your token from above |
JIRA_EMAIL | The email address on your Atlassian account |
JIRA_BASE_URL | Your Jira instance URL, e.g. https://yourcompany.atlassian.net |
Add each: Settings → Claude Threads → Secret environment variables → key name → paste value → confirm.
Verify: In a Claude Thread, ask: “List my 5 most recent JIRA issues assigned to me.” A working connection returns a list; an auth error means one of the three secrets is wrong — check JIRA_EMAIL and JIRA_BASE_URL first.
Step 4 — Set up Vault Bridges
Vault Bridges creates a bidirectional link between a local folder (a product repo, a Notion export, a docs folder) and your vault. Pull to bring the repo’s content into your vault; edit in Obsidian; push to send your changes back to the repo. You don’t need a code repo — any folder of files works.
Install Vault Bridges (if it’s not already in your vault):
- Settings → Community plugins → Browse → search “Vault Bridges” → Install → Enable
- Or via BRAT: see Appendix
Add a bridge:
- Settings → Vault Bridges → Add Bridge
- Fill in:
- Name: something descriptive, e.g., “Product Docs”
- Repo path: the absolute path to the local folder you want to bridge, e.g.,
/Users/you/projects/my-product/docs - Vault path: where in your vault it should appear, e.g.,
Product/Docs - Branch:
main(or whichever branch you want to sync from)
- Click Sync now to pull the initial copy into your vault
Verify: Navigate to the vault path you specified — you should see the files from your folder.
No code repo? Bridge any folder: a Notion export, a shared Google Drive folder synced locally, a folder of spec PDFs. The bridge copies files as Markdown-readable content into your vault.
Step 5 — Install the Claude Code agent skills
The agents and skills (ost-workflow, pm-signal-synthesis, investment-gate, etc.) run in Claude Code, not in Obsidian. If you haven’t done this yet:
git clone https://github.com/rbcodelabs/agent-pm-playbook
cd agent-pm-playbook
./setup.sh --dry-run # preview what it will install
./setup.sh # do it
Restart Claude Code afterward (exit then claude again). Confirm by opening a session and typing use the pm-coach skill — it should respond as a thinking partner.
If you haven’t installed Claude Code yet, see Module 1: Environment Setup for the Step 0 install instructions.
Step 6 — Configure pm-setup (one-time)
With Claude Code running inside your product workspace folder:
Run the pm-setup skill to configure my notes system, issue tracker, and current desired outcome.
Answer its questions — especially desired outcome (a measurable behavior change, not a feature). This writes pm-config.md, which every agent and skill reads for context.
Your first 10 minutes on Monday
Here’s what “using the stack” actually looks like day-to-day:
1. Open Obsidian → open today’s daily note (Cmd+Shift+D or the calendar in the sidebar).
2. 10-minute passive triage. Scan your inbox: new JIRA/Linear comments, app store reviews, any support tickets that came in over the weekend. Don’t synthesize yet — just note that there’s material.
3. Open a Claude Thread. In the left panel, start a new thread in your product project.
4. Run a quick synthesis. Paste or describe the signals:
Synthesize this batch of customer signals into OST-ready opportunity clusters:
[paste tickets / quotes / review excerpts]
The pm-signal-synthesis skill will cluster them, tag confidence, flag contradictions, and suggest OST mappings.
5. Update your OST note. Take the clusters that add, update, or challenge your tree and edit your OST Markdown note in the vault. Two minutes, same vault, searchable forever.
6. Done. One Signal Ledger entry, one OST update, 10 minutes of judgment work. That’s the weekly heartbeat.
Appendix — Manual plugin install via BRAT
If you’re setting up plugins without the ObsidianSetup installer, or if a plugin needs updating:
Install BRAT first: Settings → Community plugins → Browse → search “BRAT” (by TfTHacker) → Install → Enable
Install Claude Threads:
- Settings → BRAT → Add Beta Plugin
- Enter repo:
rbcodelabs/obsidian-claude-threads - Click Add Plugin → enable it in Community plugins
Install Vault Bridges:
- Settings → BRAT → Add Beta Plugin
- Enter repo:
rbcodelabs/obsidian-vault-bridges - Click Add Plugin → enable it
Verify each: both should appear under Settings → Community plugins with a toggle you can flip on.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| Claude Thread returns auth error | API key not saved or mistyped | Settings → Claude Threads → Secret environment variables → remove and re-add ANTHROPIC_API_KEY |
| “Can’t find Linear/JIRA issues” | Secret name has a typo or workspace slug wrong | Re-check the exact secret names in Step 3; they’re case-sensitive |
| Vault Bridges sync shows nothing | Wrong repo path, or folder doesn’t exist | Confirm the path in Settings → Vault Bridges → your bridge; run Sync now |
pm-coach answers generically | pm-config.md missing or empty | Re-run pm-setup from inside your project folder |
| BRAT plugin shows no plugins after install | Forgot to enable the plugin | Settings → Community plugins → scroll to find the plugin → flip the toggle on |
| Vault doesn’t appear in Obsidian after ObsidianSetup | Obsidian wasn’t restarted | Quit and reopen Obsidian completely |