Blog · · Dimitris Kyriakakis

Running several Claude Code and Codex sessions at once without missing a prompt

On 7 October I had 8 agent sessions going in 5 repositories: agentnod, babytrack, babypath-app, housemaster-backend and housemaster-frontend, plus a worktree. 7 were Claude Code and one was Codex, spread across apps and terminal tabs.

Running them is the easy part. The cost shows up when one of them stops to ask something in a tab you aren't looking at, because that agent does nothing until you happen to switch back.

One folder per session

Two agents editing the same checkout will step on each other's files. For parallel work in one repository, give each session its own git worktree. Claude Code can create one for you:

claude --worktree feature-auth

That creates the worktree under .claude/worktrees/feature-auth/ on a branch called worktree-feature-auth, and starts the session inside it. The manual route works for any agent, Codex included:

git worktree add ../project-feature-a -b feature-a
cd ../project-feature-a && claude

Different repositories need nothing special, since every session already has its own folder.

Seeing what's running

Claude Code has 2 places that show more than one session:

  1. claude agents opens Agent view, one screen for all your background sessions.
  2. The Claude desktop app lists your sessions in its sidebar, and Cmd+N starts another.

claude --continue picks up the most recent conversation in the current folder, and claude --resume shows a picker, which helps when you come back to a tab the next morning.

None of these cover Codex, though, and neither covers a session in a terminal tab you started by hand.

Getting told when a session needs you

Claude Code can send a desktop notification when it's waiting. By default it does that only in Ghostty, Kitty and iTerm2, and the setting is Local notifications in /config. In the macOS Terminal you can set it to the bell instead:

{
  "preferredNotifChannel": "terminal_bell"
}

Keep in mind the permission notification fires only after the prompt has waited about 6 seconds, so it is a reminder more than a signal. Codex has its own notification settings, including one for approval requests, in its config.

💡 A notification tells you a session is waiting, and that's all it can do. You still have to find the right tab, read the prompt and answer it there.

One queue for every agent

With 8 sessions in 2 agents, finding the right tab is most of the work, and that is the part I built AgentNod for.

Every request from Claude Code, Codex and Cursor lands in one queue on the Mac, oldest first. Each card names the session, its folder and branch, the terminal it's running in and how long it has waited, with the full command or diff on it. You allow, deny, or deny with a note the agent reads, and ⌘J jumps to the window when you'd rather answer there.

Since 25 September I have answered 83 of my 103 agent decisions from AgentNod's bar at the top of the screen, and my median answer time is 27 seconds. 46 of those decisions were questions, which are easy to miss in a background tab because the agent just sits there waiting for a choice.

One agent in one tab needs none of this. Once you're past 3 or 4 sessions, try counting how often an agent sits on a prompt you haven't seen yet.