I Tried Running Four Agents in Parallel. Twenty Minutes of Silence Is Where It Broke.
You spawn four agents and three push branches on schedule. The fourth has been silent for twelve minutes, and you will not notice until you check.
I learned this the hard way. I was running a Claude Code agent team, four sessions, each on its own task. Mid-sprint, one hit the Anthropic quota ceiling and stalled. The other three kept going. I did not find out for twenty minutes.
Switching the stalled agent to a fallback model got the task unstuck. It did not fix the bigger problem. I had no way to know which agents were healthy and which were drifting, without checking each one by hand.
What I actually changed
Not the agents. The inspection.
Each agent now runs in its own Herdr workspace, its own worktree, its own pane. The orchestrator session sits outside all of them. When one feels quiet, I do not attach and interrupt. I read its last buffer from outside.
herdr agent list
herdr agent read <name>
herdr agent get <name>agent list gives the fleet state in one table. agent read dumps the last terminal buffer without switching panes. agent get returns structured status: workspace, pane, interactive state, agent kind.
When the buffer shows a loop or a stall, I stop the agent from the orchestrator with herdr agent send-keys. When it shows steady progress, I let it run.
What changed in practice
On my machine, the sustainable ceiling is three heavy worktrees in parallel. Four is possible but I lose track of one inside ten minutes. Two is comfortable but wastes the setup.
The number is observation, not contract. Yours depends on machine, model quota, and how often you can pause to inspect. The point is the ceiling is set by your observation budget, not by your spawn capacity.
The move I use most: pause the orchestrator, run herdr agent list, read each agent that has been quiet for more than a few minutes. If one has drifted, I catch it in the buffer before it produces a PR I will reject.
What worktree isolation does not fix
Herdr gives you physical isolation. Each worktree has its own files, its own branch, its own session. It does not give you logical isolation.
If agent A is changing the auth schema and agent B is building on the old one, both worktrees build clean. Both PRs pass review in isolation. The merge still breaks. Observability catches the silent agent. It does not catch the silent dependency.
That part is on you, at the planning layer.
Before you spawn four
Write the one command you will run to catch the silent agent. If that line is blank, you are not ready to spawn four. You are ready to lose an hour.
Recommended for you
- CollaborationClaude CodeFigma
Cutting Designer-Engineer Handoff From Two Weeks to Two Hours
The bottleneck is not engineering speed. It is the loop between intent and working interface. Claude Design compresses that loop, but only if you use it the way that actually pays off.
- CollaborationClaude CodeAmp
Why I Stopped Running Parallel Agents in the Same Repo
Three agents in one workspace collide on branches, stash each other's state, and inherit leftover files. Sibling worktrees plus a fresh base branch fix all three. Here is the setup.
- CollaborationHerdrClaude Code
Why Your Coding Agent Terminal Becomes Unreadable Past Three Panes
Two agents fit on one screen. Three forces you to switch. Four means you stop reading the output. The terminal is not the right unit for parallel agents.
- CollaborationHerdrClaude Code
How I Stopped Losing Track of Which Agent Owns Which Task
Two agents can share a branch and you survive. The third agent is where ownership breaks. Here is the mapping I use to keep one agent tied to one task, one branch, one worktree.
Enjoyed this article?
Subscribe for new articles. No spam. Unsubscribe anytime.
By subscribing you agree to receive the newsletter. See the Privacy page.