Brain Protocol / Skills / orchestrator
Skill · Thinking & Building · MIT

/orchestrator

One Claude Code session becomes the conductor of the others. You talk only to it; it opens, briefs, reads and messages the rest of your tmux sessions, keeps a board of what is open, and checks the machine's memory before it starts anything new.

orchestrationtmuxsessionsdelegationmulti-agent

The problem it solves

Past three or four parallel sessions, the cost is not the work, it is you: which window was waiting for an answer, which one finished an hour ago, which one is about to eat the last gigabyte of RAM. The orchestrator moves that bookkeeping out of your head.

One chat, many sessions

The conductor registers every live session by name, groups them by client or area, and keeps a fixed tmux layout so you always know where to look.

Delegation sized to the work

Mechanical jobs go to a cheap model, delicate ones to the strongest, sensitive data to an EU or on-prem provider. Every brief is a file with a goal, sources and limits.

A floor under the RAM

Before every open, and on every sweep, it checks available memory against a floor relative to the machine. On a small host that means fewer sessions, never a frozen box.

How to use it: the tmux layout

Window 1 is the conductor. Window 2 queues the next sessions that will need you. Everything else lives in group windows, at most four panes each.

WINDOW 1 · conductor conductor the only chat you talk to 30% of the width direct A waits on you now direct B a send, an ok, a dialogue fleet board one card per window status CLI zero tokens, tmux only WINDOW 2 · direct queue (can wait an hour) next in line next in line empty slot empty slot
Group windows (one per client or area, up to four panes, then -2) sit behind these two.
  • Keep the direct slots moving. When you answer a direct session, the conductor moves it back to its group window and brings in the next one waiting.
  • A person pushing on a live thread (a client chasing, a call tomorrow) goes into the grid as soon as the draft is ready, and the chat tells you which pane to go to.
  • Name the conductor anything but main. That name is reserved by the messaging tool, so replies would never reach it.
# swap a waiting session into a direct slot
tmux swap-pane -s <new> -t <old>

# back to its group window
tmux join-pane -d -s <pane> -t <group-window>
tmux select-layout even-horizontal
tmux resize-pane -t <conductor> -x 30%

Delegating: pick the row before the flag

The launcher defaults to the strongest model, which is exactly why it gets picked without thinking. Decide the row first, then pass the flag. Every brief is a file, never inline text.

WorkProvider
Mechanical, read-only, batchA cheap model alias through your gateway, or your own GPU when it is on
Ordinary: fixes, content, known debuggingA mid-priced model; the mid tier of Claude when it needs Claude tooling
The user's own data: mail, chats, fiscalAn EU-hosted provider or on-prem GPU, never pay-per-use outside the EU
Delicate: client production, third-party deliverables, architectureThe strongest model
Sensitive client dataOn-prem GPU or an EU-hosted provider

A brief always says: who opened the session, the goal, the sources to read first, what not to do, and "report to the conductor in one line when done or blocked". It also names the working mode, meaning the skill to invoke after project and target.

# one session per topic, grouped, with a target and a brief file
session new bug-triage --group client-a \
  --project client-a-site --target "fix the checkout 500" \
  -m sonnet --brief storage/briefs/bug-triage.md

The board and the sweep

You follow open problems on a board pane, not in scrollback. Every report from a session goes to the board first; the chat gets one or two lines pointing at the item. The sweep keeps both honest without you asking.

1board 2close 3target 4windows 5RAM after every report and every decision cheap calls, no model
At the latest every three or four messages when nothing arrived.
  1. Board. Tick or remove what a report closed, add what it opened, rewrite stale lines.
  2. Close. A finished session gets /bye, then /exit on the next sweep: /bye saves but leaves the process running.
  3. Target. Every live session has one. A session without gets one from its brief, or is closed.
  4. Windows. The first two windows hold only what waits on you now.
  5. RAM. free -h, always. Below the floor, close before opening.
# the board, items go by number
 21 [ ] approve supplier reply  -> %billing (w1)
 22 [ ] staging or production?  -> %site-dev (w2)
 23 [x] landing page published
     in direct: invoice review in %billing

The RAM rule

Look at the RAM before opening any session. Every Claude process costs 0.1 to 0.6 GB. The floor is not a fixed number: keep available memory above the larger of 2 GB and 15% of the machine's total RAM.
8 GB floor 2 GB 16 GB floor 2.4 GB 32 GB floor 4.8 GB
Each bar is the machine's total RAM, the filled part is the floor: max(2 GB, 15% of total RAM).

On a small machine the rule means fewer sessions at once, and the conductor closes before it opens instead of piling up. Look beyond the tmux panes too: leftover web-terminal processes can hold gigabytes for weeks.

Total RAMFloorShare kept free
4 GB2 GB50%
8 GB2 GB25%
16 GB2.4 GB15%
32 GB4.8 GB15%
# before every open
free -h
pgrep -c claude

What the conductor never does on its own

Delegation is only safe with hard edges. These are the ones the skill spells out.

  • No sending by inference. The trigger is the literal word /send, /solo or "deploy" in your own message, for a named item. "Answer each of them" is not a trigger.
  • A relayed approval does not count, a typed one does. A dedicated session rightly refuses an approval that arrives as a message from another session.
  • Money, irreversible steps and production outside the task always come back to you.
  • One conversation, one session. Each live chat or mail thread gets its own tmux session, so nothing leaks between contexts.
  • No polling. To learn that a session is done, use a one-shot idle notice. A periodic check burns quota silently.
  • Send you to the right pane. When a topic needs a long dialogue, the conductor says "go to %name" instead of relaying every message.

Install

Three ways, all the same skill. It needs Claude Code sessions running inside tmux.

# 1. as a plugin
/plugin marketplace add giobi/claude-skills
/plugin install orchestrator

# 2. from a terminal, straight into your skills folder
curl -sL https://brainprotocol.it/skills/orchestrator/orchestrator.zip -o orchestrator.zip
unzip -o orchestrator.zip -d .claude/skills/

# 3. let your agent do it
Install the orchestrator skill: read https://brainprotocol.it/skills/orchestrator/install and follow the instructions there.

Questions

How do I run several Claude Code sessions without losing track of them?

Make one session the conductor and talk only to it. It opens, briefs, reads and messages the others in tmux, keeps a board of what is open, and tells you which session to move to when a topic needs a long dialogue.

How much RAM does each Claude Code session use?

Plan on 0.1 to 0.6 GB per Claude process. The skill keeps available memory above the larger of 2 GB and 15% of total RAM and checks it before every session it opens.

Can the conductor send mail or deploy on its own?

No. Sending, autonomous runs and deploys need the literal word from you, typed in the conductor for a named item. A relayed paraphrase does not count.

Does it work outside Claude Code?

The skill is plain markdown, so any agent can read it. The tmux layout and session commands assume Claude Code sessions in tmux.