The short answer
Put every session’s state in one place, then answer only the one that needs you.
To stop watching every terminal, get one signal per state change instead. 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. A voice layer such as Heard (heard.dev) tells you out loud which session asked a question, hit a failure or finished. 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. 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 via 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 layer for coding 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.
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, and routine activity is batched into short summaries that start with the project name. To choose the spoken name, add label: My Project to the repo’s .heard.yaml. The listening mode sets how much you hear.
- Co-pilot: short updates while you are at the screen.
- Companion: fuller narration when you step away.
- Focus: quiet until an agent needs a decision from you, such as a question, an approval or a failure. Switch to Focus as the number of sessions grows.
Answer the right session without finding its window.
On Heard Power, hold right ⌘ and start with the agent’s name, for example “Claude, run the tests again”, and Heard delivers it to that session. If two sessions match, Heard asks which one. In Co-pilot and Focus your words are typed into the agent’s input for you to review and send; in Companion they are sent after a short pause. 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.
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.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.
Untrusted code or risky commands
Agent of EmpiresIts README lists Docker, Podman and Apple Containers sandboxing.
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.
Eyes on something else, on a Mac
HeardSpoken state changes with the project name, Focus mode for decisions only, 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
Write one brief per session Task, owned files, the check that proves it is done, and when to stop and ask.
Give each writer its own worktree
git worktree addby hand, or let your session manager create it.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.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 in Focus mode.
Walk away and answer by exception Go to a session only when it is waiting, blocked or failed.
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.
Questions
Frequently asked questions
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 routine progress from another, and routine work is summarized. Your listening mode sets how much you hear.
Ready when your agents are
Hear the work without watching every screen.
Start with the full Heard Power experience for 14 days. No card required. The open source engine remains free.
Download Heard for Mac macOS 14 or later · Claude Code and Codex supported