Run several AI agent sessions at once and see which one needs you.
You can run multiple Claude Code sessions at once and mix in Codex or Gemini CLI. This guide shows how to keep them apart and spot the one that is waiting.
Yes. Each Claude Code, Codex or other terminal agent you start in its own terminal tab is a separate session. Give each one its own git worktree or folder, so two agents don't change the same files. The hard part is noticing which one is waiting for you, because built-in views such as Claude Code's agent view show only their own tool's sessions.
Cowork Island
macOS 14 or later.
Apple silicon and Intel.
No account needed for Free.
Give each session its own copy of the project.
A terminal is the text window where you type commands, such as Terminal or iTerm2. Every agent you start in a terminal tab works on its own. The risk is two agents editing the same files. Claude Code's docs use git worktrees to keep them apart. A worktree is a second working copy of the same project, on its own branch.
Claude Code.
Pass --worktree (or -w) with a name, and Claude Code creates the worktree and starts in it:
claude --worktree feature-auth
This makes the folder .claude/worktrees/feature-auth/ on a branch named worktree-feature-auth. Add .claude/worktrees/ to your .gitignore. For each extra session, open a new tab and run the command with another name.
Codex and other agents.
With its usual “Ask for approval” setting, Codex asks before it edits files outside its workspace. So start each Codex session in its own folder, such as a separate copy or worktree of the project. The same habit works for Gemini CLI and the rest: one task, one folder.
Name your tabs.
Rename each terminal tab after its task, for example “login” or “docs”. When a signal arrives, you know which tab to open.
See what your tools already show you.
Some tools now have a status view of their own. Each one covers its own sessions only.
| View | What it shows | Limits |
|---|---|---|
Claude Code agent view (claude agents) | One screen for your background sessions: working, needs input, idle, completed, failed or stopped. | Research preview. Claude Code background sessions only. |
| Terminal status (OSC 7501) | Whether each interactive Claude Code session is working, waiting on you or done, in terminals that support it. | Recent Claude Code versions. Not background sessions or sessions under tmux. Check your terminal's documentation. |
| Claude desktop app, Code tab | Parallel sessions in the sidebar (Cmd+N), and a notification when a session finishes while you aren't viewing it. | Sessions you run in the desktop app. A session started in a terminal shows there only after you resume it in the app. |
| ChatGPT desktop app, Pets | A pet that floats above other windows (Option+Space shows its controls), showing Running, Needs input, Ready or Blocked. | Chats inside the ChatGPT desktop app. In the Codex CLI, /pets reports only the current session and doesn't work inside tmux. |
For scripts, claude agents --json prints the state of your active Claude Code sessions, which Anthropic calls the supported way to read session state from outside Claude Code.
Make every agent signal when it stops.
Without one shared view, set up a signal that points you to the right tab. The simplest is the terminal bell: a sound or mark your terminal shows when a program asks for attention. Most agents can ring it or show their own alert.
| Agent | What it can do | Default | Where to set it |
|---|---|---|---|
| Claude Code | Desktop notification when it finishes or waits for permission, or the terminal bell | Notification in iTerm2, Ghostty and Kitty only | /config > Local notifications (preferredNotifChannel) |
| Codex CLI | Terminal notification when a turn completes or an approval is requested: a desktop notification in terminals that support it, a bell elsewhere | On, while the terminal is not focused | [tui] notifications and notification_method (auto, osc9 or bel) in ~/.codex/config.toml |
| Gemini CLI | System notification when a session completes or needs your attention, in terminals that support it, such as iTerm2, WezTerm, Ghostty and Kitty; a terminal bell elsewhere (experimental). A notice on Gemini CLI's docs says unpaid-tier and Google One users were moved to Antigravity CLI on 18 June 2026. | Off | /settings > General > Enable Notifications |
| Cursor CLI | Terminal notification when the agent finishes or needs input | Not stated in the docs | "notifications": true in ~/.cursor/cli-config.json |
| GitHub Copilot CLI | Audible beep when attention is required | On | beep in ~/.copilot/settings.json |
To make Claude Code ring the bell in Terminal, Warp or the VS Code terminal, add this key to ~/.claude/settings.json. Merge it into the existing top-level object; don't paste it over the file.
{ "preferredNotifChannel": "terminal_bell" }
Then let your terminal show where the bell rang:
- Terminal: Settings > Profiles > Advanced > Bell, then “Badge app and window Dock icons” or “Bounce the app icon when in the background”.
- iTerm2: Settings > Profiles > Terminal, turn on Notification Center alerts, then use Filter Alerts to choose the bell. For Claude Code's own desktop notifications, also turn on “Send escape sequence-generated alerts” in Filter Alerts.
- Ghostty: by default, a bell marks the title with a bell symbol and, while Ghostty is in the background, bounces the Dock icon once (
bell-features). - tmux: add the two lines below.
Add to ~/.tmux.conf (create the file if it doesn't exist; keep your other lines), then run tmux source-file ~/.tmux.conf to apply them:
set -g monitor-bell on
set -g allow-passthrough on
monitor-bell highlights the window where a bell rang in tmux's status line. allow-passthrough lets escape sequences, such as Claude Code's desktop notifications, reach your terminal; Claude Code's docs ask for it under tmux.
A bell says that something happened, not what. Claude Code signals when it finishes or waits for permission and you seem to be away from the terminal. Codex's default only fires while its terminal is not focused.
For banners, sounds or spoken alerts, see the guides for Claude Code and Codex, or build the exact snippet for your agent and terminal with the notify setup generator.
The no-setup option.
Cowork Island, made by the author of this guide, is a macOS 14+ app that keeps your AI agent sessions from supported tools in a notch panel, showing the state of each one. It works with or without a notch, including on external displays.
Sessions from different supported tools appear in the same Island, each with its own name, source and status. Coding integrations include Claude Code, Codex CLI, Gemini CLI, Cursor, Copilot, OpenCode, Cline, Qwen Code, Kimi Code CLI and more. Sessions are grouped by the project folder they work in. While the Claude app is open, Claude Cowork tasks show in the same panel.
Tools the app finds on your Mac connect on their own. Codex, Cline and any tool you add yourself stay off until you switch them on in Settings; for Codex, you also allow Cowork Island's hooks in Codex.
- By default, the island opens by itself when a session starts needing you, unless that session's terminal or app is already in front. If you turn this off, the card still shows “Needs you”.
- Focus shows Working and Priority sessions by default. You can also include Pending in Settings. Sessions that show as “Needs you” stay visible.
- A finished turn shows as Pending, so you can review the result. Done is a mark in your Island list. It doesn’t delete, close or stop the session.
- For supported Claude Code requests, you can allow or deny an action, or answer a multiple-choice question in the Island. With other tools, you may need to respond in their own app or terminal.
- Sounds are off until you turn them on. The “Approval needed” sound is free; the “Session complete” chime is part of Pro. The app does not post macOS notifications of its own.
Free shows one session card at a time. Pro shows all your sessions together and jumps back to the right window, tab or pane in supported terminals such as Terminal, iTerm2, Ghostty, Warp, WezTerm, kitty and tmux, or to apps such as the Claude app and Cursor. So for several sessions at once, the full view is part of Pro. A 7-day Pro trial starts by itself, once per Mac, without payment details.
Download for freeSetup steps and permissions are on the install page. Plans are on the home page, and Jump is explained in the FAQ.
Several sessions use more of your plan.
Anthropic says it plainly: “Running several sessions or subagents at once multiplies token usage.” On paid Claude plans, claude.ai, Claude Code and the Claude desktop app count toward the same limits: a session limit that resets every five hours and weekly limits. Type /usage in Claude Code to see where you stand. In the Codex CLI, OpenAI's pricing page says /status shows your remaining limits during a session.
Step-by-step: check how much Claude usage you have left and check your Codex usage limits.
Sources.
- Claude Code: Run agents in parallel
- Claude Code: Git worktrees
- Claude Code: Agent view
- Claude Code: Terminal configuration
- Claude Code: Settings reference
- Claude Code: Desktop app
- Claude Code: Commands
- Claude Help Center: How do usage and length limits work
- Codex: Approvals and security
- Codex: Permission modes
- Codex: Configuration reference
- Codex: Advanced configuration
- Codex: Sample configuration
- ChatGPT desktop app: Pets
- Codex: Pricing and limits
- Gemini CLI: Notifications
- Cursor CLI: Configuration
- GitHub Copilot CLI: Configuration directory
- Apple: Terminal profile Advanced settings
- iTerm2: Profiles, Terminal
- Ghostty: Configuration reference
- tmux manual
Sources checked 18 October 2026. This guide is written by Cowork Island's maker. For corrections, email support@coworkisland.com or open an issue on GitHub.