Atoll92/agent-standup
Your Claude Code session as a live, animated team call (VS Code extension, stand alone node server, locally, no additional token usage)
About Atoll92/agent-standup
Atoll92/agent-standup is an open-source project on GitHub, mainly written in HTML. Your Claude Code session as a live, animated team call (VS Code extension, stand alone node server, locally, no additional token usage) It currently holds 132 stars and 17 forks with 0 open issues, and was last pushed on an unknown date (repository created unknown).
Project Overview
AI Homed tracks it on the Today's Trending board, currently at rank #82 with 0 new stars today.
GitHub Repository Details
README
Agent Standup
See who is waiting on whom, and who is blocked — across all your Claude Code and Codex sessions — at zero token cost. Agent Standup turns the session files Claude Code and Codex already write into a live team call (and a board of every session): it only reads local files and never calls Claude unless you turn on French translation or the jokes.
Your Claude Code or Codex session as a live team call. The lead gives orders, sub-agents join the call, work at their desks, share their screen and report back — with voices, expressions and a view of the real work as it happens.
Runs as a VS Code extension, a terminal command, or a desktop app. Try it in 30 seconds, no install and no editor (Node 18+): npx @double_geste/agent-standup --open, then ⚙ → Source → Demo.
→ Website & download: https://atoll92.github.io/agent-standup/
_A fictional team fixing a slow login page — the built-in demo (⚙ → Source → Demo). Watch the full 1-minute video._
%20dev%20a%20coffee-ffdd00?logo=buymeacoffee&logoColor=black)
Unofficial community project, not affiliated with or endorsed by Anthropic or OpenAI. "Claude" is a trademark of Anthropic; "Codex" is a trademark of OpenAI.
What you get
- Token usage per agent — a ⚡ counter in the header and on each tile shows how many tokens each agent used (input + output + cache writes; cache reads shown separately in the tooltip), counted once per message as recorded by Claude Code. Handy to see which sub-agent is the expensive one. It is read from the session files, not an estimate of your bill.
- Stuck or quiet agents — in the live call, a tile pulses amber with ⏳ when a command has been running for over a minute, shows 💤 when a working agent has gone quiet for 3 minutes, and a red ✗ counter for failed tool calls. The browser tab title shows how many agents are working.
- Built-in demo — no session yet? ⚙ → Source → Demo plays a fictional team (no data of yours).
- Live call — follows your newest Claude Code session in real time. Each agent is a small character at its desk; the one who speaks gets the spotlight and keeps it until someone else talks. Agents that talk back-to-back talk over each other, like a real meeting.
- Real voices, lip-sync — lines are spoken aloud; mouths follow the actual volume of the voice. For the best experience, switch to the very natural voices (see Voices).
- Live screen sharing with the real output — when an agent works, its screen fills the stage (presenter's camera in the corner, "sharing" badge): a terminal with the command history and the actual output of each command, search results and tool calls; or an editor with the file it reads (real content and line numbers) or the exact diff it applies. See What you see for each agent below.
- Agents come and go — a sub-agent joins when it is given a task and leaves the call 2 minutes (playback time) after its report, with a dissolve animation. It comes back if it gets a new task.
- Sub-agent tree — the full hierarchy (you → Claude → sub-agents → their sub-agents) with status, tool counts and the current action.
- Click any agent — its prompt, tool usage and reports.
- Replay — pick any past session, scrub through it, see a timeline of who worked when, and get a recap (agents, tool calls, commands, files changed, busiest agents).
- Video export — ⚙ → Tools → 🎞 Export video records the call at 1280×720 with voices and subtitles, as an MP4 (H.264 + AAC) when the browser can record it, and as a
.webmwhen it cannot. X, phones and most chat apps refuse.webm. - Clip to share — ⚙ → Tools → 🎬 Clip to share (25 s) records about 25 seconds, saved as
agent-standup-clip.mp4(.webmwhen the browser cannot record MP4). In the middle of a replay it starts at the current position; otherwise one spoken line before the first error or loop of the session, and failing that at the moment the lead first hands out work. The line being said when time is up is finished rather than cut, so the length varies by a few seconds. The clip carries the site address (atoll92.github.io/agent-standup) in the top right corner and ends with a short end card; the full export has neither. - Hide code & file names in videos — ⚙ → Tools, off by default, for the full export and the clip. Commands, their output, file contents, diffs and search results on the shared screen are drawn as grey bars of the same length; file names are removed from the window title and from the activity tags on tiles (the tool's name, e.g.
BashorRead, stays); the session title is replaced by "Agent Standup"; pictures (screenshots, images) become an empty frame. What the agents say is not masked: speech bubbles, subtitles and voices are kept as they are, so check the clip before posting if agents quote code or names aloud. - French or English — agent text is translated on the fly (see below).
- Office music — optional live web radio (FIP and its themed stations) that fades down smoothly while an agent talks and fades back up when the room goes quiet.
- Office ambience, optional (off by default) and fully synthesised: keyboards that type when agents run commands, clicks when they read, a coffee machine, a phone buzzing, a far-away door… (⚙ → Office ambience). Plus small reactions and jokes between agents ("episode mode").
Codex sessions too
Sessions of OpenAI’s Codex (the desktop app and the codex command) appear next to your Claude Code sessions: in the session list (project “Codex”), on the board, and in the live call when one of them is the most recent. Nothing to set up: the app reads the files Codex already writes in ~/.codex/sessions (or $CODEX_HOME), and never writes there.
- What is shown: what you typed, what the agent says, each command with its real output and whether it failed, files it created or changed, web searches, MCP calls, the questions it asks you, its reasoning summaries as inner thoughts, token counts, and the end of each turn. The lead is called Codex.
- Not yet: Codex sub-agents (a Codex session is the lead and you), and pictures. The short reviews Codex runs on its own before a command are not shown as sessions.
- In VS Code the call follows the Codex sessions started in the folder you have open, like it does for Claude Code.
- Turn it off or point it elsewhere: in VS Code, the setting
agentStandup.codex; anywhere elseAGENT_STANDUP_CODEX=off, orAGENT_STANDUP_CODEX=/path/to/codex-home(command line:--codex offor--codex DIR). With--projects DIR, Codex sessions are only read if you also pass--codex.
What you see for each agent
On its tile
- Activity tag (top right) — what the agent is doing right now:
Reading App.jsx,Editing foo.ts,Writing …,Running npm test(or the command's own description),Searching “pattern”,Listing **/*.js,Fetching host,Updating todo list; then✓ donewhen it reports. - Ticker (bottom) — the current tool call and target, with a spinner and a running counter while it executes, then
✓/✗and its real duration. - Status border: orange while working, spotlight while speaking, the tile fades and dissolves 2 minutes after its report.
- Terminal —
❯ command(with its description), then its real output (first lines, errors in red, “… +N lines”),● Grep(…)/● Glob(…)with matches, a spinner for what is still running. Footer:✓ Bash · 1.2 sor⠋ Bash · running 3.4 s. - Editor — for
Read: the file with its real content and line numbers (read-only); forEdit: the removed/added lines; forWrite: the new content, with the tool's result line. - Pictures — when a tool gives the agent a picture (a screenshot it takes, an image file it reads: PNG, JPEG, GIF, WebP), the picture is shown on the shared screen, in a taller window, and stays up for several seconds (8 in a live call) whatever the agent does next. It is also in the agent's Recent activity and in exported videos. Pictures are read from the session file itself, never from your disk.
- Task list — if the agent keeps a todo list, a side panel shows it live (☐ pending, ◐ in progress, ☑ done).
- The presenter's camera lip-syncs when they speak; the subtitle bar shows what they say.
Outputs are trimmed (about 1–2 KB each) to keep the call fast. Results of internal calls (sub-agent launches, messages) are not shown.
Screenshots
| Real commands, real output | The exact change | Who asked whom |
|---|---|---|
|
|
|
|
| Task list of an agent | End-of-episode recap | In French |
|---|---|---|
|
|
|
|
Personality, without noise
In a live call, an agent that has been at work for a while thinks to itself in a lighter bubble that is not said out loud: its own reasoning when the session keeps it, otherwise what it is on (the command it waits for, the files it goes between, its to-do item); about one in five is mumbled, low. In a live call, when the lead starts on its tools without a word after your order, it says what it is starting with ("Got it. Let me look at server.js."). Sub-agents answer when they get an order ("Running the tests, as usual.", "Grepping like there's no tomorrow."), say goodbye when they leave, and now and then have a little thought; a failing tool call makes the tile shake; confetti when the lead finishes a long job. Whoever receives a report sometimes says thanks ("Got it, thanks."), and an agent that has been thinking for a long time says so ("Hmm, let me think."). When the call has been silent for a while, someone fills the gap the way people do in video calls ("Can you hear me?", "You guys still here?", "Can everyone see my screen?"): after 45 seconds in a live call, about 10 seconds in a replay, at most three times per silence and further and further apart. It is all local (no API), absent from the transcript, and can be turned off in ⚙ → Little lines & animations.Sub-agents also talk to each other, from what really happened: a new agent asks a question and the lead answers, a report gets a reaction that fits (all good, errors along the way, it took long) and sometimes a word from a third agent, an agent that fails three times in a row gets a “you okay?”, and every few minutes the lead calls a quick round. ⚙ → Display → Chatter between agents: Quiet (only the real exchanges) / Normal (default) / Lively. When the lead finishes, it reads the part of its last message that the live reading had cut short, so you know what was done.
Glance without the panel (VS Code)
The status bar shows live counts for your workspace (needs you, working, your turn) and turns red when an agent may be waiting for you; hover for the sessions, click to open the call on the most urgent one (agentStandup.statusBar).
Context gauge, highlights, loop watch
The header shows how full the lead's context is (ctx 62%, orange then red, with a warning before auto-compaction); tiles and list rows show it from 50%. In Replay, the Highlights bar jumps to the first error, the longest wait, compactions and possible loops. A 🔁 badge marks an agent repeating the exact same call or failing repeatedly. The context window (200k or 1M) is inferred, because transcripts do not state it.
Works with your tools
| Where | How | |---|---| | VS Code | Install Agent Standup from the Extensions view (Marketplace). | | Cursor, Windsurf, VSCodium… | Downloadagent-standup-.vsix from the latest release and use Extensions → … → Install from VSIX. |
| Any terminal, no editor | npx @double_geste/agent-standup --open (Node 18+; the package is on npm). Offline alternative: npx https://github.com/Atoll92/agent-standup/releases/latest/download/agent-standup-cli.tgz --open. |
| A small desktop app (macOS) | Download Agent-Standup--mac-apple-silicon.zip (or -mac-intel.zip) from the release, unzip, move Agent Standup to Applications. The app is not signed with an Apple developer ID, so the first time: right-click the app → Open → Open (or run xattr -dr com.apple.quarantine "/Applications/Agent Standup.app"). It has a window and an indicator in the menu bar, and notifies you when an agent may need you. Windows and Linux builds (-windows-x64.zip, -linux-x64.zip) are on the same release page but experimental and not tested by hand. |
| Claude Code status line | npm i -g @double_geste/agent-standup, then in ~/.claude/settings.json: { "statusLine": { "type": "command", "command": "agent-standup statusline" } } → shows ⚙2 ✋1 under your prompt. |
| tmux (not tested here) | set -g status-right '#(agent-standup status --here)' |
| Neovim (not tested here) | call vim.fn.system('agent-standup status --here') from a timer and show the result in your statusline plugin; agent-standup status --json gives machine-readable output. |
| JetBrains IDEs (not native yet) | Settings → Tools → External Tools → +: program npx, arguments -y @double_geste/agent-standup --open, working directory $ProjectFileDir$. |
Other agent tools than Claude Code (Codex CLI, Gemini CLI, OpenCode…) are researched in ROADMAP.md: their log formats are mostly undocumented, so no adapter is shipped yet.
Languages
Pick one in ⚙ → Language: English, Français, 繁體中文, 简体中文, Español, Deutsch, Dansk, Português (Brasil), 日本語. The interface (menus, chips, tooltips, recap) is translated; VS Code's command titles, setting descriptions and status bar follow VS Code's own display language. English and French are written by hand; the other languages are AI-drafted and not yet reviewed by native speakers, so corrections are very welcome: each language is one small JSON file (public/locales/.json), see public/locales/README.md to fix or add one (npm run i18n checks the files). The words the agents say stay in the language of your session (French translation of their lines is optional); the little banter lines and the demo exist in English and French.
Your own characters
A cat pack ships with the app: ⚙ → Characters → Cat pack (11 cats by a contributor) puts them on the call at once, and Drawn characters goes back to the default. My folder uses your own images below (picked by itself the first time if your folder already has images).
Replace the drawn characters with your own pixel art. Drop PNG (or GIF/WebP) files, 300 KB at most each, into ~/.agent-standup/characters (⚙ → Characters shows the folder, and in VS Code Open folder opens it; the agentStandup.charactersPath setting changes it):
lead.png (or claude.png) is the lead, you.png is you, any other image becomes a sub-agent (one per agent: two sub-agents only share an image once every image is taken);
name-talk.png next to name.png is an optional open-mouth frame that shows while the character speaks;
- 32×32 or 64×64 px, transparent background, facing front, feet at the bottom looks best. The art is shown crisp (no smoothing) on top of the usual scene and desk, and every status, hand and badge still works.
Your characters sit at the desk without the laptop (it would cover the bottom of the sprite); ⚙ → Characters → Laptop in front of your own characters puts a darker one back while they work. Press Reload in the menu to see changes. Three example images to start from are in examples/characters (in the repository, not shipped with the app), and the cat pack is in examples/cats.
Agents list
On wide windows (900 px+), a fixed list sits left of the call: every agent with its role and one status line, most urgent first (needs you, stalled, working, waiting, done) and the lead pinned on top. It stays readable with dozens of agents, which a grid of tiles does not. Click a name to put that agent in the spotlight (kept for 25 s even when someone else speaks), double-click for details. Toggle it in ⚙ → Agents list.
All your sessions (Sessions view)
The Sessions tab lists every session active in the last 12 hours, across all projects, with one state each: working, needs you?, waiting on sub-agents, your turn, or idle (and how many sub-agents are active). It refreshes every few seconds and reads only the end of each transcript, so thirty parallel sessions stay cheap. Click a card to follow that session in the call.
At a glance
Every tile carries one status: working (with what it is doing), waiting on another agent (who), needs you? (a file edit or write, or a question, has been pending for 15 s+), stalled (waiting on an agent that has been silent for 2 min+), or done. A summary sits in the header, and the tab title shows how many agents need you. The "needs you?" signal is a heuristic: Claude Code does not record permission prompts, so commands (Bash) are not flagged because they can legitimately run for minutes (they get a ⏳ badge after 1 min instead). Measured on real sessions, edits that stay pending for 15 s+ are rare, so the signal is mostly right.
Voices
Each line is read with a voice of its own language (French or English), whatever language the interface is in.
Five styles in ⚙ (default: Cartoon voices, so everything stays understandable):
- Animal Crossing — every agent "talks" in gibberish, one blip per letter, with a sentence melody (up for questions, down for statements) and a register of its own.
- Simlish — the same idea with flowing syllables, vowels and little consonant noises.
- Cartoon voices — the real words read by your system voice, with a character per agent (chipmunk, deep, robot, wobbly, radio, monster, squeaky).
- Natural voices — plain system voices.
- Very natural voices — Kokoro-82M, a small open speech model that runs on your machine. Optional: pick it in ⚙ and click Install (about 730 MB, one folder in your user cache, installed with npm; the model is fetched on first use). Until it is ready the system voices keep talking. Mostly English voices, one French voice.
Our tip: once you are set up, switch to Very natural voices. It is a one-time install and the agents then sound like real people, which is the nicest way to follow a call.
Long lines are subtitled one sentence at a time, in step with the voice.
Handy extras
- Copy as Markdown in the recap: a ready-to-paste standup report (who did what, files, tokens, final report of each agent).
- Notify me when agents finish (⚙): a soft chime, the tab title and, in VS Code, a notification once the team has worked for a while and gone quiet.
- Search the transcript, ambience volume, and a compact layout when the panel is narrow (side bar): under about 300 px wide, one row per agent instead of tiles. In replay, speed presets (1×, 2×, 4×, 8×) and each session remembers where you stopped.
Install
Three ways in — pick one (details in Works with your tools): the VS Code extension (below), the agent-standup command (npx @double_geste/agent-standup --open), or the desktop app (macOS, from the release page). Cursor, Windsurf and VSCodium install the same .vsix.
VS Code
Option 0 — from the Marketplace (easiest)
In VS Code: Extensions view → search Agent Standup → Install. Or: https://marketplace.visualstudio.com/items?itemName=DoubleGeste.agent-standup
Option A — from a GitHub Release
1. Open the repository's Releases page and download agent-standup-.vsix (don't send it by email: Gmail and others block .vsix files).
2. In VS Code: Extensions view → … menu (top right) → Install from VSIX… → pick the file.
Or from a terminal: code --install-extension agent-standup-.vsix (macOS: run Shell Command: Install 'code' command in PATH first if code isn't found).
3. Developer: Reload Window, then click the camera icon in the Activity Bar (or run Agent Standup: Open live call) and press Join.
Direct download of the latest version: https://github.com/Atoll92/agent-standup/releases/latest/download/agent-standup.vsix
Or with the GitHub CLI: gh release download --repo Atoll92/agent-standup --pattern "*.vsix", then the code --install-extension line above.
Option B — build it yourself
git clone https://github.com/Atoll92/agent-standup.git
cd agent-standup
npm run package # needs Node 18+; produces agent-standup-.vsix
code --install-extension agent-standup-*.vsix
To hack on it instead: open the folder in VS Code and press F5 (launches an Extension Development Host).
Option C — no extension
After cloning the repository (Option B): node server.js and open http://localhost:4747 (see Standalone below). Without cloning: npx @double_geste/agent-standup --open.
The first click on Join is required by browsers to allow sound.
Commands
| Command | What it does |
|---|---|
| Agent Standup: Open live call | Opens the call in a panel beside the editor |
| Agent Standup: Show sidebar | Opens the call in the Activity Bar view |
| Agent Standup: Open characters folder (your own pixel art) | Creates and opens the folder for your own characters |
| Agent Standup: Open in browser (voice + sound) | Opens the same call in your default browser |
Settings
| Setting | Default | |
|---|---|---|
| agentStandup.port | 0 | Local port of the server. 0 = a free port is picked automatically for each VS Code window (recommended) |
| agentStandup.statusBar | true | Live counts in the VS Code status bar (needs you / working / your turn) for this workspace |
| agentStandup.shareUsage | false | Opt-in, anonymous: at most one empty request per day to a 1-pixel file on GitHub, to count active installs (ignored when VS Code telemetry is off) |
| agentStandup.charactersPath | _(empty)_ | Folder with your own character images (default ~/.agent-standup/characters) |
| agentStandup.codex | true | Also show Codex sessions (read from ~/.codex/sessions, or $CODEX_HOME). Turn off to show Claude Code sessions only |
| agentStandup.claudePath | _(auto)_ | Full path to the Claude Code executable if it isn't found automatically (needed only for French translation) |
| agentStandup.autoOpen | false | Open the call when VS Code starts |
| agentStandup.onlyThisWorkspace | true | Follow only sessions started in the open folder (falls back to the newest session if there is none) |
Controls
| | |
|---|---|
| Call · Tree · Sessions (Appel · Arbre · Sessions in French) | tiles, hierarchy, or one card per recent session |
| ⏸ / ▶ (Sp