"Would I rather be feared or loved? Easy. Both." — Michael Scott, waiting for a task
A GameBoy / GatherTown-style simulation where the Dunder Mifflin Scranton branch portrays the Claude agents running on your laptop. Every employee is an agent: they sit down and type when their agent is working, pace around dropping quips from the show when the agent is waiting for your answer (❓), and drift off to the water cooler with a whole different set of quips when it's waiting for a new task (💤).
Press SELECT for the authentic four-shades-of-green experience:
Demo mode — no setup, no dependencies:
open index.html # or just double-click it
A simulated branch of agents autonomously picks up tasks ("Deploy Threat Level Midnight", "Audit the Schrute Bucks ledger"), works, gets blocked on you, and goes idle — so the office is always alive.
Live mode — portray your real Claude Code sessions (Node 18+, zero deps):
node bridge.mjs # then open http://localhost:4711
The bridge watches the session transcripts Claude Code writes under
~/.claude/projects and streams each session's state to the page over
Server-Sent Events. The cast acts them out:
| In the office | Your agent |
|---|---|
| Sitting at the desk, monitor glowing | working — transcript written to in the last 20s |
| Pacing by the desk, ❓, quipping | waiting_for_answer — Claude finished its turn or is holding a tool call for your approval |
| Water cooler / breakroom, 💤, quipping | waiting_for_task — session quiet for 5+ minutes |
State detection is a best-effort heuristic over the JSONL transcripts (mtime +
last entry role + unresolved tool_use). Tune with env vars: PORT,
CLAUDE_DIR, WINDOW_MIN (how long finished sessions stay on screen).
| Key / button | Action |
|---|---|
A |
Assign a task to an idle agent |
B |
Answer a blocked agent's prompt |
+ / − |
Spawn / remove an agent (11 on payroll) |
↑ ↓ |
Select an employee (or click them) |
P / START |
Pause |
S |
Speed ×1 / ×2 / ×4 |
G / SELECT |
GameBoy palette |
M |
Sound (chiptune blips, off by default) |
Clicking a waiting character makes them say something. They would have said it anyway. Eventually. To the camera.
Michael (fable-5), Dwight (opus-4.8), Jim, Pam, Oscar, Andy (sonnet-5), Stanley, Kevin, Angela, Creed, Toby (haiku-4.5). Assistant TO the Regional Manager sold separately.
Everything is a single self-contained index.html — no build step, no
frameworks, all pixel art drawn procedurally at runtime. bridge.mjs is
optional and uses only the Node standard library.

