Blog

Five agents on one feature without losing track

Give each agent a part of the feature that does not overlap the others, start each in a session of its own in the same project, and watch five colors instead of five terminals.

Running five agents is easy. Knowing which of the five is waiting for you is the hard part: each one sits in a terminal window, and the one that needs an answer is under the other four. The fix has three parts. Split the work so the agents do not collide, give each a session in the same project, and read their status in one place.

Split by what does not overlap

Agents in the same folder share its files. Two of them editing the same file will undo each other, so cut the feature along lines that keep them apart:

  • api: the endpoint and its migration
  • web: the form that calls it
  • worker: the background job
  • tests: a shell that runs the suite
  • docs: the API reference

Tell each agent its part and what it must leave alone. That one sentence saves most collisions.

Start the five

grenade new api --cwd ~/code/shop --agent claude
grenade new web --cwd ~/code/shop --agent claude
grenade new worker --cwd ~/code/shop --agent codex
grenade new tests --cwd ~/code/shop --agent shell
grenade new docs --cwd ~/code/shop --agent claude

Each grenade new starts an agent in a tmux session of its own. Sessions in the same folder form a group, so the five are one entry on your phone and one row of panes in the Mac app. --agent picks what runs: Claude Code, Codex, or a plain shell for the tests.

Read the colors, not the terminals

grenade ls

lists every session with its status, and the apps show the same thing as a color:

  • Amber: it asked for a permission, a question or a plan. Answer it.
  • Green: it has finished. Have a look.
  • Blue: it is working. Leave it.
  • Grey: idle.

Claude Code and Codex report this through their own hooks, so it is not guessed from the screen. A shell has no hooks; its status comes from whether its output is still moving.

With five agents, the question “who is waiting?” becomes “is anything amber?”.

Answer the one that asks

When Claude Code wants to run a migration, the phone shows the command in full on a card. Allow it once, or deny it and say what to do instead. That agent goes on, and the other four never stopped.

When two agents need the same files

Sometimes the parts do overlap. Give those agents a worktree each, and keep them in one group:

git worktree add ../shop-web -b web
grenade new web --cwd ~/code/shop-web --with api --agent claude

--with api puts the session in api’s group although it runs in another folder. Grenade does not create worktrees or touch your repository: it starts the agent where you tell it to.

To move a session later:

grenade group tests api     # tests next to api
grenade ungroup tests       # on its own again

On the Mac, side by side

The Grenade Mac app shows a project’s agents as panes next to each other. If you live in iTerm2, this opens each group as a tab with its sessions side by side:

grenade terminal iterm

More on this: several agents at once, the Mac app, and how Grenade differs from a terminal built for agents, cmux.

Try it on your own agents.

Two commands on the Mac, one QR code on the phone. No account.