Guide · Multi-agent operations · 7 min read
How to manage multiple coding agents without watching every terminal.
You stop watching terminals when one place tells you which session needs you. That place can be a dashboard you glance at or a voice you hear. The rest is splitting the work so sessions rarely need you, and reviewing results one at a time.
Eight session managers, each from its own README or site · Checked October 10, 2026 · Heard-specific listening setup
Updated
The short answer
Heard tells you out loud which session needs you; a session manager shows every session’s state in one list.
Heard (heard.dev), the voice context layer for agents, tells you out loud which Claude Code or Codex session on your Mac asked a question, hit a failure or finished, so you can keep working on something else without watching terminals. If you would rather glance at a screen, a session manager such as agent-manager, Agent of Empires or agent-view shows every session’s status in one list and can raise a desktop notification; agent-manager reads the status of more agent CLIs than Heard narrates. Either way, you go to a terminal only when it has something for you.
That only works if sessions rarely need you. Give each agent one task, its own files or git worktree, and a check that proves it is done. Then review one finished result at a time.
Tools
Session managers for running coding agents in parallel.
From each project’s own README or site, checked October 10, 2026; agent-manager re-checked November 11, 2026. All eight are open source.
| Tool | What it is | Platforms | Where it stands out |
|---|---|---|---|
| agent-managertmux TUI | Live status list, quick prompts, worktrees, diff review | macOS, Linux, Windows (native with psmux, or WSL2) | Reviewing diffs without leaving the list |
| Agent of EmpiresTUI + web | Persistent tmux sessions with status detection and notifications | Linux, macOS, Windows via WSL2 | Docker, Podman or Apple Containers sandboxing; a phone view |
| agent-dashboardtmux + PWA | Groups sessions by state and sends your input to the one that needs you | macOS, Linux | Workflow gates enforced by hooks; approve and reply from a phone |
| agent-viewtmux | Lightweight session manager with status and OS notifications | macOS, Linux, WSL | A small setup with native “finished” and “needs input” alerts |
| canopyTUI | One tmux session per git worktree, every agent at a glance | macOS, Linux | Worktree-first workflows |
| seshionsTUI | Reusable blueprints that launch role-based agent teams | Not stated; needs tmux and Node.js 18+ | Dispatching or broadcasting a prompt to a role or group |
| StarAgentweb | Web dashboard for sessions on several machines | Windows, Linux, macOS | Cross-machine access over Tailscale; its README says it is for personal use and in active development |
| AgentMuxdesktop | An “agent operating environment” with each agent as a pane; its site labels it alpha software | Windows first; macOS and Linux builds lag (per its site) | Runs the vendor CLIs as structured panes, with optional container runs for Claude Code |
| Heardvoice layer | Speaks which session needs you and what changed. Live session cards in Settings; no diff review or worktrees | macOS 14 or later | Hearing state changes away from the screen; spoken replies on Power |
Heard (heard.dev), the voice context layer for agents, is our product. It is not a session manager. It narrates Claude Code and Codex sessions running on the same Mac, including ones a session manager started in tmux, because it follows the agent rather than the terminal. Agents on another machine, including Claude Code or Codex, can report to Heard through its MCP connector instead.
Split along stable boundaries.
Good parallel tasks have minimal overlap and independently testable outcomes. Routes, components, migrations, test suites, documentation, and investigation work often divide cleanly. A broad “improve the app” task does not.
- One outcome per session.
- Explicit file or subsystem ownership.
- A named check that proves completion.
- A stopping rule for uncertainty or scope expansion.
Task: Add rate limiting to the /login routeOwns: src/routes/login.ts, src/middleware/rate-limit.tsDone when: npm test -- login passesStop if: the change needs a schema migration
Use separate workspaces for separate writers.
When agents edit concurrently, separate branches or worktrees reduce accidental overwrites and make each diff reviewable. Shared state is appropriate for read-only research; simultaneous edits to the same files are a coordination failure.
Several of the tools above create the worktree for you: agent-manager, canopy, agent-view and Agent of Empires all have a worktree option.
git worktree add ../finance-app-auth -b agent/auth
git worktree add ../finance-app-docs -b agent/docs
cd ../finance-app-auth && claude
Route attention by state, not by window.
Every session is in one of a few states, and only some of them need you. Session managers name them slightly differently (agent-view uses Running, Waiting, Idle, Stopped and Error), but the split is the same.
- Running: working on its own. Leave it alone.
- Waiting for input: it asked a question. Needs you.
- Blocked on approval: a permission prompt. Needs you, often quickly.
- Failed: a test, build or API error stopped it. Needs you.
- Done: ready for review. Needs you when you next have review time, not right now.
Which of my parallel sessions needs me right now?
For Claude Code, run claude agents. Agent view lists your background Claude Code sessions grouped by state, with the ones that need you at the top and Needs input marked in yellow; type s:blocked in its input to list only the sessions waiting on you. Sessions open in other terminals show up only after you background them (press ←). Inside a regular session, the footer counts background sessions that are waiting, such as ← 2 agents. Agent view is a research preview built into Claude Code (not the agent-view tool in the table above), and it does not show other agents such as Codex.
If your eyes are on something else, Heard (heard.dev) says out loud which session is waiting and why, for Claude Code and Codex on a Mac, so you know where to go without opening the list. For other agents, a session manager from the table above shows the same states in one place.
Review one result at a time.
Inspect the diff, run the required checks, resolve conflicts deliberately, and record what was accepted. Only then close the session or assign follow-up work. This keeps finished work from piling up unreviewed.
A dashboard needs a glance; a voice reaches you away from the screen.
A session manager is the better tool when you are at the screen: you see every session at once, and several let you review diffs, create worktrees or approve from a phone. You still have to look at it, or catch its notification banner.
A voice layer is the better tool when your eyes are on something else: another editor, a document or the kitchen. It tells you which session changed state without you looking. Heard does this for Claude Code and Codex on a Mac. You can use both: the list for review, the voice for knowing when to look.
What Heard says when several sessions run.
With two or more sessions running, questions, failures and results come through as they happen, each starting with the project name, and routine tool steps stay quiet.
- Spoken: questions, approvals, failures and finished work.
- Not spoken: each tool step an agent takes.
- Need quiet for a while: mute updates from the menu bar or Settings. Parrot still answers when you ask.
Answer the right session without finding its window.
On Heard Power, press right ⌘ and start with the project’s name, for example “For heard-v3, run the tests”, and Parrot sends it to that session. If it cannot tell which session you mean, Parrot asks. Anything risky, such as a merge, a delete, a push or sending a message, asks “Go ahead?” first. For the Codex desktop app, Heard also lists your threads, jumps you to the right one and can type your reply into its composer.
Choose
Which setup fits how you work.
Start with the lightest setup that keeps you out of the terminals.
- (1)
Two or three sessions, you are at the screen
Worktrees plus built-in notificationsOne worktree per agent, plus Claude Code’s own desktop notification (on by default in Ghostty, Kitty and iTerm2; in other terminals set
preferredNotifChannelto"terminal_bell"for a terminal bell instead) or a Notification hook. Nothing else to install. - (2)
Many sessions, you review a lot of diffs
A session manageragent-manager, canopy or Agent of Empires give you one list with status, worktrees and a diff view.
- (3)
Untrusted code or risky commands
Agent of EmpiresIts README lists Docker, Podman and Apple Containers sandboxing.
- (4)
Approvals from your phone
agent-dashboard or Agent of Empiresagent-dashboard has a phone PWA for approvals and replies over your local network; Agent of Empires has a web dashboard whose structured view shows approval cards on a phone.
- (5)
Eyes on something else, on a Mac
HeardQuestions, approvals and failures spoken as they land, with the project name first; spoken replies on Power. Works next to a session manager when the manager’s Claude Code or Codex sessions run on the same Mac.
Setup checklist
Set up a batch you do not have to watch
- 01
Write one brief per session
Task, owned files, the check that proves it is done, and when to stop and ask.
- 02
Give each writer its own worktree
git worktree addby hand, or let your session manager create it. - 03
Name sessions by task
Use the deliverable as the session or worktree name. Heard speaks the project folder name, or the
label:in that folder’s.heard.yaml. - 04
Turn on one attention signal
A session manager’s status list and notifications, Claude Code’s built-in notification in Ghostty, Kitty or iTerm2, or Heard, which speaks questions, approvals and failures with the project name.
- 05
Walk away and answer by exception
Go to a session only when it is waiting, blocked or failed.
- 06
Review and integrate in sequence
Verify each result before starting the next batch.
Product facts
What is supported today
- Best supported
- Claude Code + CodexNarrated through native hooks.
- Status and approvals
- Cursor, GitHub Copilot CLI, Gemini CLISessions show in Heard, plus approval requests where the tool supports them. Not narrated.
- Workspace hosts
- tmux, cmux, GhosttyHeard follows the agent, not the terminal.
- Cloud and remote agents
- MCP connectorGrok Bot, Meta Muse, Devin, and Claude Code or Codex on another machine report by voice.
A few more details
Questions?
How do developers keep track of what their coding agents are doing while they work on something else?
They let the sessions report state changes instead of watching each terminal. A session manager such as agent-manager, Agent of Empires or agent-view lists every session’s status in one place and can raise a desktop notification; a voice layer such as Heard (heard.dev) says out loud which session asked a question, hit a failure or finished. Giving each agent one task in its own git worktree keeps those interruptions rare.
How do I know which of my parallel agent sessions needs me right now?
For Claude Code, run claude agents: agent view groups your background Claude Code sessions by state with the ones that need input at the top, and the s:blocked filter lists only the sessions waiting on you. Heard (heard.dev) tells you out loud which Claude Code or Codex session is waiting, so you can find it without looking at a list.
How can I manage multiple coding agents without watching every terminal?
Use one place that tells you which session needs you: a session manager’s status list and notifications, or a voice layer such as Heard that speaks state changes. Give each agent its own task and worktree so it rarely needs you, and review finished work one result at a time.
How many coding agents should I run at once?
Use the smallest number whose work you can still review and integrate promptly. Add another session only when the last batch has been reviewed.
Should agents share a working directory?
Read-only research can share context. Concurrent writing is safer in separate worktrees or clearly isolated files.
Does Heard work with tmux, agent-manager or Agent of Empires?
Heard’s Claude Code and Codex integrations attach to the agent and its local session data, not to a terminal window, so Claude Code and Codex sessions that tmux or a session manager starts on your Mac are still narrated. Claude Code or Codex on another machine can report through Heard’s MCP connector instead. Heard runs on macOS 14 or later.
Does Heard show a dashboard of my sessions?
Heard shows your live sessions as cards under Home in Heard Settings, and clicking a card jumps to that session’s window. It is a voice layer, not a session manager: no diff review, worktrees or sandboxing. For those, use a session manager next to it.
What does Heard say first when several sessions need attention?
Heard ranks events by importance, so a question, approval, failure or blocker in one session can speak before a finished result from another. Routine tool steps are not spoken.
Keep going
Related Heard resources
Give your agents a voice.
Keep the context. Get on with your work.
Includes 14 days of free Heard. No card needed.


