Ten terminals running Claude Code, no idea which one is stuck or waiting on you. Conductor reads all of them — and lets you reply — from one window.
Agentic coding flipped the ratio. One person now runs five, ten, fifteen autonomous windows at once — and the scarce resource stopped being compute. It's your attention. Which one finished? Which one is wedged on a failing test? Which one is silently waiting on a yes/no before it can ship? You find out by alt-tabbing through all of them, one at a time.
Every Claude Code window logs a live .jsonl transcript under
~/.claude/projects/. Conductor streams those files — never loading
8 MB into memory — and pulls each session's own title, latest prompt, recent tool calls,
and last action.
Watching is always-on and free. Control is opt-in — and the moment it could do something irreversible, Conductor stops and hands the decision back to you. An orchestrator can drive ordinary work end-to-end; it can't quietly ship a deploy or move money.
The bias is to stop when unsure: a false gate costs one manual reply; a false pass can ship a bad
deploy or move real funds. The irreversibility gate lives in policy.js — auditable, no model in the loop.
A source-agnostic supervisory core owns grouping, status ranking, and sectioning. You pick the surface.
Run conductor up for a live web dashboard. Every window a card, color-coded by
status, auto-refreshing. Managed windows get one-tap Yes / No / Continue / Review replies.
Conductor speaks the Model Context Protocol over stdio. Any agent can call
list_sessions, whats_left, pending_questions, and the gated
control tools to watch and drive your windows.
Drop in the Claude Code skill and any window can summarize the rest in plain English: “sort out my windows” → a doing-now / done / what's-left report per session.
Launch managed windows through tmux, or adopt an existing one (forked, history
intact). Then reply from the CLI or cockpit. Read-only stays read-only.
Conductor is supervisory awareness over a fleet of semi-autonomous workers that already emit an append-only trail. Claude Code is one adapter. Swap the adapter, keep the engine — grouping, status, and all three surfaces come free.
~/.claude/projects transcripts; liveness from a live claude processevents.jsonl; derives wedged orders & drawdown, session PnL
A domain fits when it has all four: many units with intent · a trail that already exists · a liveness
signal · supervise-by-exception status. Write one file at adapters/<name>.js
and every surface works with --adapter <name>.
V1 watches windows you opened by hand. Its sibling
Conductor V2
flips the order: pick a formation, set one purpose, press FIRE —
and a fleet of Claude Code windows launches into tmux and coordinates through two dumb, reliable
channels: a shared swarm directory for artifacts and a per-swarm swarm-say
helper for one-line handoffs. The formation decides who talks to whom and who starts.
┌─ ORC ─┐ ┌───┼───┬───┼───┐ w1 w2 w3 w4
One orchestrator decomposes the mission, delegates a task per worker, collects reports, and synthesizes. Best when the work splits into independent chunks.
s1 ─▶ s2 ─▶ s3 ─▶ s4 each stage hands off to the next
Stages run in order; each consumes the previous stage's output and hands off. Best for a natural assembly line — recon → audit → verify → report.
p1 ─── p2 │ ╲ ╱ │ │ ╱ ╲ │ p3 ─── p4
Equal peers self-organize: each claims a distinct angle, works it, and broadcasts findings to the rest. Best for breadth — sweep a space from several directions at once.
Watching is read-only observation of trails that already exist — nothing leaves your laptop.
The cockpit binds to 127.0.0.1 only.
~/.claude — never another user's transcripts.Wire Conductor into Claude Code at user scope and it's available in every session. Ask “what's left across my windows?” or run an orchestrator that triages, continues the safe work, and stops on anything irreversible.
Prefer to watch? npm link puts a global conductor
on your PATH — no build, no dependencies — then one command opens the live web dashboard in your
browser, grouped by status and refreshing every 4s.
Opening tabs is the problem. Conductor reads every window's transcript at once and floats the one that needs you — wedged, waiting, or done — to the top, so you supervise by exception instead of polling fifteen terminals by hand.
No. It reads the .jsonl trail Claude Code already writes under
~/.claude/projects/. Zero instrumentation, zero new infrastructure, zero dependencies.
Other workers (bots, validators) just need a small adapter file.
Not anything irreversible. Ordinary work auto-continues, but the moment a window's question — or a
proposed reply — touches deploy, send, delete, or spend, the gate in
policy.js refuses and returns the reason so a human decides. Approving an irreversible
action is always your call.
No. Everything is local-first. The cockpit binds to 127.0.0.1, reads only your own
~/.claude, and state-changing requests require a local origin plus a CSRF header.
Run it for yourself, not as a service.
Watched, always. Controlled, only if you adopt them — Conductor forks the session into
a managed tmux window (full history intact) so it can inject replies. Plain terminals the OS won't
let anything type into stay read-only, by design.