A setup that turns Claude Code into your chief of staff. Two jobs:
- Second brain — Chief's memory: an Obsidian vault of Markdown notes (planner, project cards, a daily brief) you mind-sync to.
- Right hand — Chief's control plane: the
.claude/toolkit (skills, agents, tools) and the claude-fleet adapter, driving Claude across your projects and machines —attachto take over any session.
The second brain grows as you mind-sync to it; Chief grows its own capabilities as the work calls for it.
Setup — just tell Claude Code to set up your chief vault (it'll fork or clone this repo — a plain zip-download works too, but only for a single machine with no sync), then run claude from inside it. That's Chief.
From there, it's mostly just chat — a few threads worth naming:
- Brief — say "morning" for your daily brief: Chief archives yesterday, clears done items, and refreshes Today (agenda + inbox), intel, and project status into
planner.md. - Chat — talk to Chief about anything ("what's next?", "add this doc"); it lands in your vault — your planner (
planner.md: Today, Focus, Projects), to read and edit. - Dispatch — just ask: "fix the failing tests in project X", "run something on a box". Chief works in your real repos and machines, never the vault.
- Take over — ask Chief for a session's handle and
attachto take the wheel.
Handy commands:
/remote-control— drive a session running on a box from the Claude app (or claude.ai/code), on any device — your phone as a remote. Chief sets it up for you./goal— hand Chief a bounded objective; it self-drives to completion, checking in only as needed (this is how it runs the fleet)./loop— run a prompt or check on a recurring interval (polling, babysitting a job).
Prerequisites: Claude Code. Optional: Obsidian for real-time sync to all your devices, a private GitHub repo to sync across machines, and claude-fleet for a remote fleet.
The vault is just a folder, so sync is optional — one machine needs none. To run across machines, Chief sets up sync for you (the sync-setup skill). Two routes, for reference:
- git — free, not real-time. Carries the whole vault (notes +
.claude/toolkit) to your private repo. - Obsidian Sync — paid, real-time, reaches your phone. Carries content only (the notes); the
.claude/toolkit rides git or is copied by Chief.
To drive Claude across other machines, just ask Chief to set up the fleet — it clones claude-fleet (a separate repo, not copied into this vault), puts its CLI on PATH, and writes your ~/.config/claude-fleet/fleet.conf (asking only for host details it can't assume). From then on the Fleet Dispatch protocol in CLAUDE.md just works; local sessions need no remote at all.
The one bit you do by hand (optional): to also load claude-fleet as a Claude Code plugin — interactive slash commands an agent can't run for you — type:
/plugin marketplace add kengz/claude-fleet
/plugin install claude-fleet
That loads the claude-fleet skill alongside the CLI. It's optional — Chief operates the fleet from the CLI alone.
Chief's premise: native Claude Code features + good general principles + a few salient tools and the vault structure — not a pile of bespoke per-task tooling.
At its simplest, Chief is just the second brain — a Markdown vault you read, write, and get briefed from; a complete way to use it on its own, no agents or machines. One repo:
chief/
├── CLAUDE.md its instructions (ends with @index.md)
├── index.md the always-loaded map (MOC)
├── planner.md your planner — Focus + today's brief
├── fleet.md dispatch ledger — what's in flight across machines
├── inbox/ raw capture
├── projects/ one thin card per sibling repo
├── areas/ ongoing life threads
├── archive/daily/ dated planner.md history
└── .claude/ skills · agents · settings (the toolkit)
The vault (planner.md, projects/, inbox/, areas/) is the memory; CLAUDE.md + .claude/ (derived from good-code) are the right hand's instructions and tools. Code never lives here — Chief reaches your repos through thin cards.
The right hand is Chief running work for you — directly in the conversation, or by driving Claude sessions where your code and machines live. You already run Claude Code a session per project (terminal → claude); Chief drives those, local by default, stretching across machines for a fleet:
base: claude you run it (local)
remote: ssh → tmux → claude on another machine
chief: adapter → [ssh →] tmux → claude Chief drives it
Wrap a Claude session in tmux (plus ssh for a remote box) and it becomes a durable surface. Chief drives that same session through its adapter (claude-fleet, a stateless CLI + plugin) — exactly as you would by hand — so either of you can attach and take over, anytime.
flowchart TD
you([You]) -->|talk| chief["chief (claude)"]
chief -->|remembers| vault[("second brain<br>Obsidian · git vault")]
chief -->|drives| adapter["right hand<br>claude-fleet adapter"]
adapter -.->|attach| sessions["Claude sessions<br>[ssh →] tmux → claude"]
you -.->|attach| sessions
Going remote is optional — it just adds the ssh hop; the full protocol lives in CLAUDE.md's Fleet Dispatch. Standing up a box — Tailscale access, a hardened sshd, your dotfiles, and Claude Code in tmux — is standard setup Chief handles for you, no special repo required.
That's it — it's yours. Once you understand it, it's just Claude as your chief of staff: a second brain for your notes, a right hand on your repos and machines — one that grows the more you use it. Grow the vault, add the skills, agents, and tools your work needs, make it your own.
MIT © kengz