Guide

How to keep track of several AI coding agents at once

Running two or three agents at once is easy to start and hard to keep up with: each session finishes, fails or stops for approval on its own schedule, in a tab you are not looking at. The fix is four small habits, most of them free: a worktree per session, one window per session with a name, a signal from the agent when it needs you, and a single place to look. This guide sets each one up, with the tools compared honestly at the end.

Written for macOS · Claude Code, Codex and the other agent CLIs · commands tested on git 2.44 and tmux 3.6a, October 2026

Give every session its own worktree

Two agents in one folder edit the same files, run the same tests and overwrite each other's work. A git worktree gives each session its own folder and branch while sharing a single repository, so they never collide and every change still lands as an ordinary branch you can review.

# from inside your repository git worktree add ../api-auth -b auth git worktree add ../api-billing -b billing git worktree list # when a branch is merged git worktree remove ../api-billing

Start each agent in its own folder: cd ../api-auth && claude in one window, cd ../api-billing && codex in the next. The folder name now travels with everything the session does, which the rest of this guide relies on.

One window per session, with a name

Terminal tabs work, but they all look alike after the third. tmux names its windows and can tell you which one wants attention. Open a window per worktree:

tmux new-session -d -s agents -n auth -c ../api-auth tmux new-window -t agents -n billing -c ../api-billing tmux attach -t agents

Then make a waiting agent visible. Add this to ~/.tmux.conf:

# ~/.tmux.conf - flag a window that rings the bell while you are elsewhere set -g monitor-bell on set -g bell-action other

With that, a bell rung in a window you are not looking at puts a ! on that window in the status bar, drawn in reverse video, until you visit it. It was checked by ringing a bell in a background window and reading tmux's own window_bell_flag, which flipped to 1, and with Codex itself waiting on an approval in that window.

Make each agent signal when it needs you

The bell flag only helps if the agent rings the bell, and a banner is better still when you are in another app. Each agent has its own setting for this.

  • Codex: in ~/.codex/config.toml, [tui] with notifications = true and notification_method = "bel" rings the bell when an approval is waiting and when a turn ends. That is the setup tested in tmux above. For a banner instead, the Codex notifications guide has a notify script that puts the folder in the title.
  • Claude Code: preferredNotifChannel set to terminal_bell rings the bell, and a Notification hook can post a banner naming the project from the event's cwd. The permission guide has that hook, tested.
  • Other agents: most CLIs either ring the bell or run hooks. Check whether yours can put the working directory in what it sends, since that is the one detail that makes a signal useful with several sessions.

Name the session in every signal. "Approval requested" from one of four sessions sends you hunting through all four; "Codex: api-auth" sends you to one.

What to watch for

Not everything a session does needs you. These are the moments that do, roughly in order of cost if you miss them:

  • An approval or a question. The session is stopped until you answer, so every minute unnoticed is a minute of nothing.
  • A failed turn. An error or a rejected request ends the turn without the result you wanted, and some agents send no notification for it at all.
  • A finished turn. Less urgent, but the next instruction is usually yours to give, and a session left finished for an hour is an hour of idle capacity.
  • Context running out. A session close to its context limit will compact or lose detail soon; it is better to give it a clean next step first.
  • Your plan's usage window. Several sessions spend a shared session and weekly window much faster than one, and running out stops all of them together.

The tools, compared honestly

ApproachWhich sessionAll at onceAnswer in placeCost
NotificationsIf you script itNoNoFree
tmux bell flagsBy window nameYesNoFree
Hook scriptsFrom the folderNoNoFree
Notch appsYesYesDepends on the appFree to paid

The free tools cover knowing, and tmux covers seeing the whole set if you live in it. What none of them do is carry an answer back: you still go to the window to approve. That last column is where the apps differ, and the comparison page sets the current notch apps side by side, free and paid, with the rows each one loses.

Where CrewTower fits

CrewTower is a native macOS app that puts every running session in the MacBook notch: what each is doing, how long it has been going, and which ones are waiting, sorted to the front. It speaks natively to six agents, Claude Code, Codex, Cursor, Gemini CLI, Qwen Code and opencode, and recognises twenty-six in all; the agents page lists what it does for each.

For the six, a permission request can be answered on the card where the agent exposes a decision channel, and for some of them a question or a plan too: the agent's hook blocks on a local Unix socket and CrewTower answers over it, so nothing is typed into a terminal. For the rest, the card shows the session, Jump takes you to its terminal tab or its app, and approving stays in the agent. It also shows how much context is left for the agents that report it and, for Claude Code and Codex, how much of the usage window is left.

It costs $9.99 once for one Mac and needs macOS 15 or later. Worktrees and named windows are still worth setting up with it; they are what keep the sessions apart.

Questions

How many AI coding agents can I run at once?

As many as you can review. The limit is rarely the Mac; it is how many waiting sessions you can notice and answer before each one sits idle. Two or three is where most people start to need the setup on this page.

Can two agents work in the same folder?

They can, but they will edit the same files and step on each other's changes. Give each one its own git worktree: a separate folder and branch sharing one repository, which is what the first section sets up.

How do I tell which session a notification came from?

Put the folder in it. Claude Code's Notification hook and Codex's notify program both receive the session's working directory, so a short script can name the project in the banner's title; the permission guide and the Codex guide each have one, tested.

Which tmux setting shows that an agent is waiting?

set -g bell-action other, with monitor-bell on, which is its default. A bell rung in a window you are not looking at puts a ! on that window in the status line, so an agent set to ring the bell when it waits shows up there.

Is there one place that shows every agent's status?

Not built into any agent; each one only knows about itself. That is the job of a status app that reads every session, such as a notch app; the comparison page sets the current ones side by side, CrewTower among them.

Every session, one place to look

CrewTower shows every agent session in the notch and lets you answer from there. Explore the interactive demo on our homepage before purchasing a license.

Get CrewTower for Mac

$9.99 once · macOS 15 or later