Advanced · Claude Code in VS Code

Build Your Personal OS
in Claude Code

The full engine. Filesystem skills that run as real slash commands, auto memory that persists across sessions, and MCP servers wired into your day. This is the technical track.

Jump to Setup

Who This Guide Is For

The first two guides set up your Personal OS in Claude Cowork — the friendly desktop path where you point Claude at a folder and ask it to work. That is the right place to start, and for most people it is enough.

This guide is for when you outgrow it. Claude Code, running inside VS Code, gives you three things Cowork does not: skills that live on your own machine and fire as /slash commands, an auto-memory layer that writes itself across every session, and MCP servers configured to your exact workflow. It is more technical. The payoff is a system that does more with less prompting.

New here? Start with Guide 1 (Cowork foundation) and Guide 2 (Cowork, going deeper), then come back when you want the full build.

Cowork vs. Claude Code: What Actually Changes

The folder, the CLAUDE.md, and the PARA structure are identical across both. What changes is the engine underneath.

Claude Cowork (Guides 1 & 2) Claude Code (this guide)
Where it runs Claude desktop app VS Code, on your local filesystem
Skills Added one at a time through Settings; you often just ask Claude directly Live in ~/.claude/skills/, fire as /slash commands, auto-trigger from their descriptions
Memory CLAUDE.md plus a learnings file you ask Claude to keep Auto memory: Claude writes its own durable notes to ~/.claude across every session
Outside tools Connectors toggled in Settings MCP servers configured per project and per environment
Best for Getting started, conversational use, less setup Heavy daily use, batch automation, a wide skill library
You don't have to choose forever. Your folder and CLAUDE.md work in both. Many people keep Cowork open for quick conversational work and use Claude Code in VS Code for the heavy filing, automation, and skill-driven routines. A skill you build here is one ZIP export away from also working in Cowork.

Day-1 Setup in VS Code

Claude does most of the work. You install two tools, create one empty folder, and let Claude interview you to build the rest.

1

Install VS Code

Download from code.visualstudio.com and run the installer. Default settings are fine.

2

Install Claude Code

Open VS Code. Click the Extensions icon in the left sidebar, or press Cmd+Shift+X (Mac) / Ctrl+Shift+X (Windows).

Search for "Claude" and install the official extension by Anthropic. Sign in with your Claude account when prompted. You need a Claude Pro or Max subscription.

3

Create Your Personal_OS Folder

One empty folder. This is the only thing you create by hand.

Mac: Finder → Documents → Right-click → New Folder → name it Personal_OS

Windows: File Explorer → Documents → Right-click → New → Folder → name it Personal_OS

4

Open the Folder in VS Code

VS Code: File → Open Folder → select your Personal_OS folder → Open. If VS Code asks "Do you trust the authors?", click "Yes."

Open the Claude Code panel and set the model to Opus 4.8 before you start the conversation. You can't switch models mid-chat.

5

Have Claude Interview You and Build the Structure

Paste this prompt. Claude interviews you first, then writes everything from your answers — so the CLAUDE.md reflects how you actually work instead of a generic guess.

Copy and paste into Claude Code:

Please set up a Personal OS for me, and interview me to get it right.

First, interview me ONE question at a time, waiting for each answer
before asking the next. Do not dump all the questions at once. Cover:
  - My name, title, and organization
  - What I do day to day and who I work with most
  - How I want you to behave: concise or more explanatory, tone
  - The 2-3 projects or responsibilities that matter most right now
Tell me I can answer by voice if that's faster.

Once I've answered, create:

1. These folders:
   00_Inbox, 10_Projects, 20_Areas, 20_Areas/Calls,
   20_Areas/People, 20_Areas/Companies, 30_Resources,
   40_Archives, 50_Personal,
   99_System/Context_Library/project_specs, 99_System/Scripts, Apps

2. A CLAUDE.md at the root, built from my interview answers, with:
   - Role: you are my Chief of Staff for this vault
   - Who I Am: my name, title, organization, and context
   - Core Behavior: edit files directly, keep changes minimal,
     read local files before asking, confirm before deleting,
     concise responses, AND: whenever you set something new up,
     interview me one question at a time rather than guessing
   - Architecture: the folders above
   - Task Schema: YAML with type, status, created, due_date,
     priority, tags

3. A Someday_Maybe.md in 20_Areas/ with Ideas, Long-Term Projects,
   Things to Explore, Wishlist.

Create everything once I've answered.

Claude creates all the folders and files. You'll see them appear in VS Code's file explorer on the left.

The interview is the point

The single biggest reason a fresh Personal OS feels generic is a CLAUDE.md filled in from a blank template. The interview mandate — one question at a time, baked into Core Behavior — forces the system to learn you. It also means every future "set this up for me" gets the same treatment instead of guessing.

6

Install Your First Two Skills

Skills are folders inside ~/.claude/skills/ with a SKILL.md file describing what they do. Claude reads the descriptions and triggers them when relevant. The / prefix forces a specific skill to run. Paste this:

Copy and paste into Claude Code:

Please create two skills for me.

1. ~/.claude/skills/today/SKILL.md with this content:

---
name: today
description: Scans the vault for tasks due today and creates a daily agenda.
allowed-tools: Bash(*), Read(*), Write(*)
---

# /today

Build today's agenda by scanning all .md files in 10_Projects/ and
00_Inbox/ for YAML frontmatter with a due_date field.

## What to do

1. Group tasks: Overdue, Due Today, Due This Week, Due Next Week
2. Create a new file in 00_Inbox/ named YYYY-MM-DD_Agenda.md
3. Format with sections for each group, plus Daily Focus and Quick Notes
4. Tell me: "Your agenda is ready: [filename]"


2. ~/.claude/skills/shutdown/SKILL.md with this content:

---
name: shutdown
description: End-of-day ritual. Captures what moved, what didn't, and what's queued for tomorrow.
allowed-tools: Bash(*), Read(*), Write(*), Edit(*)
---

# /shutdown

End-of-day capture.

## What to do

1. Review today's agenda in 00_Inbox/
2. For each task: mark done, carry over, or mark as waiting
3. Append a brief end-of-day summary to today's agenda file:
   - What moved (3-5 lines max)
   - What stalled and why
   - Tomorrow's top 3 candidates
4. Tell me: "Shutdown complete. Tomorrow's queue: [top 3]"

Create both skills now.
7

Test It

Type /today in the Claude Code panel. Claude creates your first daily agenda file in 00_Inbox/. Open it in VS Code and hit Cmd+Shift+V (Mac) / Ctrl+Shift+V (Windows) to preview it formatted, with headings and lists. This is how you read your agenda each morning without a separate notes app.

Auto Memory (How It Really Works)

This is the part Cowork doesn't have. Claude Code carries knowledge across sessions two ways: CLAUDE.md (instructions you write) and auto memory (notes Claude writes itself). The first is covered above. This section is the second — the layer that turns Claude into a coworker who learns from how you actually work.

CLAUDE.md vs. Auto Memory

CLAUDE.md Auto Memory
Who writes it You Claude
Contains Instructions and rules Learnings and patterns
Best for Architecture, conventions, "always do X" rules Corrections, preferences Claude discovers, durable facts
Loaded into context Every session, in full Every session (first 200 lines or 25KB of the index)

Use CLAUDE.md when you want to instruct. Auto memory lets Claude take notes for itself based on your corrections, without you writing anything.

Requires Claude Code v2.1.59 or later

Auto memory is on by default in current versions. Check yours with claude --version. To toggle it, run /memory in a session.

Where Auto Memory Lives

Each project gets its own auto memory directory:

~/.claude/projects/<project>/memory/

The <project> path is derived from the git repository, so all worktrees and subdirectories within the same repo share one auto memory directory. Outside a git repo, the project root is used instead.

Inside that folder, two things matter:

  • MEMORY.md — an index file. The first 200 lines or 25KB (whichever comes first) load into Claude's context at the start of every session.
  • Topic files — additional markdown files Claude creates as memories accumulate. These are lazy-loaded: Claude reads them on demand when something in the current conversation makes them relevant.
Why this design works: The index is small enough that loading it every session is cheap. Topic files can be detailed without bloating Claude's context window. You get instant awareness of every rule and reference Claude has ever saved, plus deep detail on the ones that come up in the current conversation. Claude keeps MEMORY.md concise by moving longer notes into topic files.

The /memory Command

Run /memory in any Claude Code session to:

  • See which CLAUDE.md and rules files are loaded in your current session
  • Toggle auto memory on or off
  • Open the auto memory folder in your editor to browse, edit, or delete files

Auto memory is plain markdown. You can read and edit any file by hand — Claude treats your edits as the source of truth.

How Auto Memory Gets Written

Claude decides what's worth remembering based on whether the information would help in a future conversation. The common triggers:

  • You correct Claude. "Don't do that again" tends to become a durable note.
  • You confirm a non-obvious choice was right. Worth saving so Claude doesn't second-guess the same call next month.
  • You teach Claude a durable fact. Vendor relationships, process details, who handles what.
  • You say "remember this." Direct trigger.

When you see "Writing memory" or "Recalled memory" in the Claude Code interface, Claude is actively updating or reading from your auto memory folder.

What a Real Auto Memory File Looks Like

This is one of my feedback memories:

REAL AUTO MEMORY EXAMPLE

---
name: feedback-no-stopping-suggestions
description: Never suggest stopping, pausing, or saving work for later.
  She decides when to stop.
type: feedback
---

Never suggest stopping, pausing, deferring, or "saving for later" —
including soft framings like "clean stopping point," "pause here,"
"call it for tonight," or "fresh eyes tomorrow."

**Why:** I flagged this directly after Claude repeatedly offered
exit ramps during a productive Saturday session. The pattern was
Claude pattern-matching on session length as a signal I should stop.
That signal is wrong. Time of day and accumulated progress carry
zero information about my capacity to continue.

**How to apply:**
- Continue executing. When one piece finishes, offer the next concrete
  option.
- If multiple options exist, present them as choices to make.
- If I want a break, I'll say so directly.

The "Why" line is load-bearing

A rule without a reason is brittle. The next time Claude faces an edge case, the reason is what tells it whether the rule applies. The headline ("never suggest stopping") is enough 95% of the time. The reason is what lets Claude judge the 5% intelligently.

The Skills Ecosystem

The Cowork guides used a handful of skills. A mature Claude Code Personal OS has 30+. Each one is a folder inside ~/.claude/skills/ with a SKILL.md file describing what it does and when to use it. Claude reads the descriptions and triggers automatically when a request matches. The / prefix is shorthand to force a specific skill to run.

What I Actually Run

Here's how mine cluster, by job:

Category Skills
Daily rhythm /today · /weekstart · /shutdown · /weekend · /remember
Meeting capture /call · /granola · /brief · /conference · /conference-prep · /attendee-brief · /keynote
Content production /linkedin-carousel · /build-pptx · /keynote-writer · /text-to-html · /janette-voice · /editorial-style
Review & research /brand-review · /advisory · /file-research · /deep-research · /review
Shipping /deploy · /single-use-site · /add-webinar · /site-audit
Ops & automation /tent-cards · /social-boosting · /ingest
The pattern that emerged: Each skill replaces a 15-30 minute task that I used to do manually. Built up slowly — one or two a month — whenever I noticed myself repeating a workflow. The library is wide because the workflows are real, not because I went on a skill-building spree.

How a Skill Is Structured

A SKILL.md file looks like this:

---
name: call
description: Create or update a call note in 20_Areas/Calls/.
  Auto-populates People and Companies directories.
allowed-tools: Glob(*), Read(*), Write(*), Edit(*)
---

# /call

Create a structured call note.

## What to do

1. Ask for contact name and date (default today).
2. Check if the person exists in 20_Areas/People/. If yes, read their
   profile for context. If no, create from the template.
3. Check the contact's company in 20_Areas/Companies/. If exists,
   update Engagement Timeline; if not, create from template.
4. Create the call note in 20_Areas/Calls/YYYY-MM-DD_Contact-Name.md
   using the call schema in CLAUDE.md.
5. When the source is a Granola meeting, always read the full transcript
   via get_meeting_transcript. Never rely on the AI-generated summary.
6. Surface any prior notes with this contact from past calls.

Build skills out of friction

The skills I use most weren't planned. They came from noticing the third or fourth time I was repeating the same multi-step prompt. When that happens, ask Claude: "Turn this into a skill." Claude writes the SKILL.md, drops it in the right place, and the next time you need that workflow it's one trigger away.

Install the Core Five

Past /today and /shutdown, these five do the most work in a typical week: meeting capture, pre-meeting prep, auto memory hygiene, Monday kickoff, and Friday wrap-up. Paste this into Claude Code to install all five at once.

Copy and paste into Claude Code:

Please install five skills for me. Each lives at ~/.claude/skills/<name>/SKILL.md.

1. ~/.claude/skills/call/SKILL.md

---
name: call
description: Create or update a structured call note in 20_Areas/Calls/. Auto-populates People and Companies entries.
allowed-tools: Glob(*), Read(*), Write(*), Edit(*)
---

# /call

Create a structured call note.

## What to do

1. Ask for the contact name and date (default today).
2. Check 20_Areas/People/ for the contact. If found, read their profile for context. If not, create one from the template.
3. Check 20_Areas/Companies/ for their company. If exists, update Engagement Timeline. If not, create from template.
4. Create the call note at 20_Areas/Calls/YYYY-MM-DD_Contact-Name.md.
5. When the source is a Granola meeting, ALWAYS read the full transcript via get_meeting_transcript. Never work from the AI-generated summary; summaries drop and distort decisions.
6. Surface any prior notes with this contact.
7. Append a Relationship History line to the person's profile.


2. ~/.claude/skills/brief/SKILL.md

---
name: brief
description: Generate a one-page pre-meeting brief for a person, company, or topic. Pulls vault context for a structured briefing.
allowed-tools: Glob(*), Read(*), Write(*)
---

# /brief

Generate a one-page brief.

## What to do

1. Ask what or who the brief is about.
2. Search 20_Areas/People/, 20_Areas/Companies/, and 20_Areas/Calls/ for relevant context.
3. Synthesize into a brief with: who/what, relationship history, open items, recommended angles for the meeting.
4. Save to 00_Inbox/YYYY-MM-DD_Brief_Topic.md and tell me where it is.


3. ~/.claude/skills/remember/SKILL.md

---
name: remember
description: Review the current session and save durable learnings to auto memory.
allowed-tools: Read(*), Write(*), Edit(*)
---

# /remember

Review what happened in the session and propose memory updates.

## What to do

1. Scan the conversation for: corrections I gave, durable facts I shared, non-obvious choices that worked, patterns worth keeping.
2. For each candidate, propose a memory file name and a one-line summary.
3. Ask which to save; write the approved ones to ~/.claude/projects/<this-project>/memory/.
4. Update MEMORY.md index with new entries.


4. ~/.claude/skills/weekstart/SKILL.md

---
name: weekstart
description: Monday kickoff. Daily agenda, overdue triage, project health, people follow-ups, weekly focus.
allowed-tools: Bash(*), Read(*), Write(*)
---

# /weekstart

Monday morning routine.

## What to do

1. Run the same scan as /today to build today's agenda.
2. Scan 10_Projects/ for projects with no activity in 7+ days. Flag them.
3. Scan 20_Areas/People/ for entries where last_contact is more than 14 days ago and follow_up is true.
4. Ask me for a one-line focus for the week.
5. Save everything as 00_Inbox/YYYY-MM-DD_Weekstart.md.


5. ~/.claude/skills/weekend/SKILL.md

---
name: weekend
description: Friday wrap-up. Weekly review, unresolved items, next week preview.
allowed-tools: Bash(*), Read(*), Write(*)
---

# /weekend

Friday wrap-up.

## What to do

1. Read this week's daily agenda files in 00_Inbox/.
2. Summarize what moved, what stalled, and what got committed to.
3. Pull open action items into a single list.
4. Propose 3 priorities for next week.
5. Save as 00_Inbox/YYYY-MM-DD_Weekend.md.


Create all five now and confirm when done.

Take a skill back to Cowork

Built a skill here you want for a Cowork demo? Zip the skill's folder (so the ZIP contains skill-name/SKILL.md), then in the Claude desktop app go to Settings → Customize → Skills → "+" → Upload a skill. There is no automatic sync between Claude Code and Cowork — each keeps its own copy — so test it once in Cowork before you rely on it live.

MCP Servers: What's Actually Worth Connecting

MCP (Model Context Protocol) servers let Claude reach beyond your filesystem — into project management tools, calendars, CRMs, BigQuery, your inbox. In Cowork these appear as one-click Connectors. In Claude Code you configure them yourself, which is more work and more control. After months of use, only a few are load-bearing.

What I Actually Use

Server What It Unlocks
Project management (Wrike, Asana, Linear) Tasks, due dates, and team workload show up in /today alongside vault tasks. Replaces tab-switching between Claude and the PM tool.
Slack Search past messages, post drafts to channels, read DMs Claude was @-mentioned in. Useful for context retrieval and async delivery.
Meeting transcript service (Granola, Otter, etc.) Pull Zoom transcripts directly into the vault without manual download. Foundation for the capture pipeline.
Calendar / email (Outlook, Google) Read inbox for meeting context, draft replies in voice.
Data warehouse (BigQuery, Snowflake) Query your own org's data. High-leverage if you do any analysis work.
Cloud storage (Drive, Box, SharePoint) Read files from team shared drives without downloading. Essential when collaborators store things outside your vault.

Two Environments, Two Configs

If you use both Claude Code (in VS Code) and Claude Desktop, MCP servers are configured separately:

Claude Code Claude Desktop
Config: .claude/.mcp.json in your project, plus enabledMcpjsonServers in settings Config: ~/Library/Application Support/Claude/claude_desktop_config.json
Best for: file work, coding, vault management, batch automation Best for: research, browsing, conversational use, email reading
Same servers can be enabled in both, but each needs its own setup Some MCP servers only work in Desktop (e.g. Outlook integrations)

Two gotchas worth knowing

Claude Desktop overwrites its config on restart. If you're editing claude_desktop_config.json, quit Desktop first (Cmd+Q on Mac, not just close the window), then edit, then relaunch.

MCP servers consume context. Each connected server adds its tool descriptions to Claude's context window. Don't connect everything. Connect the two or three that match your real workflow and turn the rest off.

Start with your project management tool

For most people, the highest-leverage first MCP server is whichever project management tool runs your day. Once Claude can see your tasks, deadlines, and assignments, /today becomes meaningfully better — it pulls from your vault and your PM tool in the same view.

What Carries Over From Guides 1 & 2

Everything in the Cowork guides works here too, and gets sharper because skills and memory are doing more of the lifting. You don't need to relearn any of it:

Capture pipelines

Granola, recorders, and transcript filing — the same /granola and /call patterns, now firing as real slash commands. See Guide 2.

The voice system

The 99_System/Context_Library/ files that let Claude draft in your voice. Built once, used everywhere. See Guide 2.

Companies as wiki entries

The People / Companies / Calls cross-linking pattern. Identical structure; auto memory makes the enforcement stick. See Guide 2.

Shipping from the vault

Single-use sites, webinar pages, branded decks, carousels — the place where Claude Code's filesystem access and deploy skills earn their keep. See Guide 2.

The Full Engine

Filesystem skills, auto memory, MCP servers. This is the build I run every day. Start with the Cowork guides if you haven't, get one capture pipeline working, and add the rest as the friction calls for it.

Back to Guide 1 (Cowork)

Created by Janette Roush | Agents of Change

This guide is part of the AI Lab for Travel Innovation.