Guide
How to run several Claude Code agents at once
One agent fixes a bug while another writes a migration and a third reads logs. Running Claude Code in parallel is easy to start and easy to lose control of. These are the problems you'll meet, and ways to handle them.
Keep them out of each other's way
Two agents editing the same files in the same checkout will trip over each other. The usual fixes:
- One folder per agent. Separate projects, or separate clones of one repository.
- Git worktrees.
git worktree add ../app-feature featuregives an agent its own working folder and branch while sharing one repository. - Split by kind of work. One agent writes code, another only reads, reviews or watches logs.
Know which is which
With three terminals you remember what each one does. With ten you won't. Give every session a name that says its job, and a way to find it again: tmux session names if you work by hand, or a list in a dashboard.
In AgentKennel each terminal is one Claude conversation with a name and a short code, and the code is the same everywhere: in the dashboard, the tmux session (cs-<code>), the logs, the task board, Telegram and the transcript. You can rename and reorder terminals, and search finds them by name or code, archived ones too.
Know what each one is doing
Agents work for a long time without you watching. The cheapest way to stay in the picture is to make each agent write down its task and its steps somewhere you can see them all at once, before it starts editing.
AgentKennel ships a shared task board for this. Each agent puts its task on the board before editing, is nudged to keep going until the task is closed (or to set a timer), and you see every task with the terminal behind it. Click a terminal's code and the board shows only its tasks.
Fit them in memory
Every running Claude Code session is its own process with its own memory, and a small server fills up. You either stop sessions by hand and remember how to resume them, or let something do it.
- A limit. AgentKennel keeps at most 12 terminals loaded (
AGENTKENNEL_MAX_ACTIVE). - Idle unloading. A terminal idle for 2 hours is unloaded, but never one with an open tab or a pending timer. Clicking it loads it again, in the same conversation.
- Archive. Finished work goes to the archive and out of memory; click it to restore it.
- A Server tab. CPU and memory over 15 minutes, split into agents, sites and apps, background jobs and the system, so you can see which agent or build is using the machine.
Watch your usage
Parallel agents use your Claude plan in parallel. AgentKennel shows the 5-hour and weekly windows of your Claude subscription next to the terminal list, as /usage does, turning amber from 70% and red from 90%.
Survive restarts
A server reboots, a service restarts. With bare tmux, every session is gone and you resume each one by hand with claude --resume. AgentKennel reopens every terminal in the same conversation where it left off, after a restart of the service or a reboot of the server.
Long-lived helpers are their own problem: a tunnel, a site's server or a bot that an agent started shouldn't die with its terminal. AgentKennel runs those from .services/<name>.sh files in the work folder: a keeper starts them, restarts them after a crash and keeps their logs.
Keep the blast radius small
More agents means more commands nobody reviews. Run them on a dedicated server or in a container, and keep secrets out of their reach. AgentKennel's guard hooks check every shell command and stop a commit with a key or token in it, a pkill by pattern that could hit other agents' processes, and mail to people without your yes. Each guard has a visible one-time override.
Doing it by hand
All of this works with plain tmux, a few naming habits and a text file per task. If you run more than a handful of agents on a server, AgentKennel packages the same ideas in one dashboard you open from a browser or Telegram. Install it, or read how it compares with SSH and tmux.