NEW Live Mode: your TUI shows what matters right now. Read the blog post

Managing Multiple Claude Code Agents Without Losing Track

One Claude Code session is easy. Three is where it falls apart.

You open a tmux window for each agent, paste a different task into each, and start cycling with Ctrl+b arrow to check progress. Five minutes in you cannot remember which pane was the refactor and which was the test pass. Ten minutes in one agent has finished and is idling; another is stuck on a tool-approval prompt. You only know because you happened to look. The whole point of running three agents in parallel was to not have to babysit them, but you are.

The underlying problem is not Claude Code. Running multiple long-lived agents is a terminal-multiplexer problem, and general-purpose multiplexers like tmux were not designed around it. A tmux pane has no name that means anything to the developer (it is %3 or session:0.2). Pane activity flags fire on every byte of output, so a streaming response looks identical to a finished task. There is no way to send one agent a follow-up message from outside the pane without hand-translating a role name to a coordinate. Every missing primitive adds friction you feel most when you are trying to run more than one agent.

What a Purpose-Built Runtime Adds

initech is a terminal runtime that treats each pane as an agent, not a shell. That shift changes what you can do:

A Three-Agent Config

Here is the minimum initech.yaml for a three-engineer session. Everything is declarative, so two developers on the same project get the same layout:

# initech.yaml
agents:
  super:  { role: super }     # dispatcher / you
  eng1:   { role: engineer }  # Claude Code
  eng2:   { role: engineer }  # Claude Code
  eng3:   { role: engineer }  # Claude Code

layout: grid-2x2
live_mode: auto

Launch with initech. Each pane opens in its own terminal window and runs claude with the role preloaded. The statusline gives you a running view of who is active, who is idle, and who finished most recently.

A Real Morning Check-In

You walked away for fifteen minutes. Here is what initech status looks like when you come back:

$ initech status
AGENT   STATE       LAST UPDATE   CURRENT BEAD
eng1    idle        8m ago        ini-42   (ready_for_qa)
eng2    streaming   just now      ini-55   (in_progress)
eng3    stuck       3m ago        ini-61   (in_progress)
qa1     idle        15m ago       —

eng1 is done and waiting. eng3 has not made progress in three minutes — probably stuck on an approval prompt or confused. eng2 is actively working. You initech peek eng3 to see what it is stuck on, initech send eng1 "start ini-78 next" to dispatch the next task, and leave eng2 alone. Thirty seconds of work.

When You Need This

If you are running one Claude Code session, none of this matters. The second you run two, the ergonomics start to hurt. By three, most people either accept the friction or build a custom tmux script per project. initech is that tooling, generalized. See the getting-started guide for a full walkthrough, or compare initech to tmux if you are deciding whether to switch.

Install initech

macOS via Homebrew:

$ brew install nmelo/tap/initech

Or curl:

$ curl -fsSL https://initech.sh/install.sh | sh

Then initech init && initech.