Running coding agents in parallel has a hidden job attached: checking on them.

You start three Claude Code sessions, one of them spawns four sub-agents, a Codex thread is running a migration somewhere. Then you spend the afternoon alt-tabbing between terminals asking the same three questions:

  • Is this one still working, or is it stuck on a command?
  • Is that one waiting for me?
  • Which sub-agent just burned 400k tokens?

I got tired of being the person refreshing terminals, so I built the thing I wanted to look at instead: a stand-up call.

The demo call: a lead agent and its sub-agents at their desks

What it actually is

Agent Standup reads the session files that Claude Code, Codex and Mistral Vibe already write to disk, and plays them as a live team call:

  • The lead agent gives the orders. Sub-agents join the call when they get a task, work at their desks, report back, and leave.
  • Whoever is working shares their screen: the real command and its real output, or the exact diff it's applying.
  • Each tile has one status: working, waiting on another agent, needs you, done. A tile pulses amber when a command has run for over a minute, and shows 💤 when an agent has gone quiet.
  • Tokens per agent, so the expensive sub-agent is obvious.
  • It only calls you in when an agent actually needs you (a permission prompt, a question), not every time a turn ends.

It costs zero tokens: it never calls a model to watch your agents, it just reads files. It runs locally and sends nothing by default.

The shared screen: a sub-agent's terminal with real output

Yes, they talk

The agents speak their updates out loud, with a small speech model that runs on your machine, and their mouths move with the voice. You can switch to an Animal Crossing–style babble, or mute it.

This is the part people call a gimmick, and on Hacker News some did. Fair. But here's what I found: I notice a voice saying "I need you to approve this" from across the room. I don't notice a terminal that silently stopped scrolling. Sound turned out to be the feature, not the decoration.

Three things I learned reading agent logs

None of these formats is documented, so the reader has to be defensive. A few traps, in case you're building something similar:

  1. Token usage is repeated. Claude Code writes the same assistant message once per content block, each copy with identical usage. Count once per message.id, or a five-block message costs five times as much.
  2. "Quiet" doesn't mean "done". The end of a turn is an explicit stop_reason: "end_turn" mark. Until it arrives the agent is still working, even after a minute of silence.
  3. Most Codex sub-threads aren't yours. On my machine, 34 of 57 Codex rollouts were short automatic "guardian" reviews. Show them all and the list drowns.

I wrote the full field guide (where each tool keeps its sessions, how sub-agents show up, how to survive format changes) in Reading the undocumented session logs of Claude Code, Codex and Mistral Vibe.

Try it

No install, from any terminal (Node 18+):

npx @double_geste/agent-standup@latest --open 

No sessions yet? ⚙ → Source → Demo plays a fictional team fixing a slow login page.

It's also a VS Code extension (Cursor and Windsurf via Open VSX), a Claude Code plugin, and a macOS app. MIT licensed, interface in 10 languages: github.com/Atoll92/agent-standup.

Your turn

I'm curious how other people handle this, because I don't think a cartoon call is the only answer:

How many agent sessions do you run at once, and how do you know which one needs you? Separate terminal tabs? tmux? Notifications? Just... checking a lot?