Agent Desk
Watch your Claude Code sessions work, as an isometric pixel-art office.
Every live Claude Code session becomes a Manager sitting at a desk. When the
session is working, they type. When they delegate to subagents, each subagent
walks in as an Employee, sits down, types, and leaves when its task is done —
while the Manager supervises: drinking coffee, glancing at them, occasionally
taunting one. When a session is waiting for your prompt, the Manager takes a
coffee break and a ? bubble appears above their head — click it to reopen that
conversation.
Sessions started anywhere are shown, not just those launched from the VSCode
panel — a session running in your terminal appears too.
Usage
Open the Agent Desk panel (bottom panel, next to Terminal / Problems).
On first launch the extension asks permission to install its hooks — see
How it works. Nothing is tracked until you accept.
- Scope toggle (globe icon in the panel title bar) — show only the current
workspace's Room, or one Room per active project on the machine.
Cmd/Ctrl + scroll — zoom. Cmd/Ctrl + drag — pan.
- Hover a character — tooltip with the session's current activity.
- Click a
? bubble — reopen the conversation waiting for your input.
A conversation can only be reopened from a window that has its project open:
Claude Code resumes a session in the window's own workspace folder. In machine
scope, Managers from other projects still show their ? bubble — the signal is
useful — but it is not clickable, and their tooltip names the project to open.
Commands
| Command |
What it does |
Agent Desk: Install hooks |
Install the Hook Bridge (asks first) |
Agent Desk: Uninstall hooks |
Remove it, leaving your other hooks intact |
Agent Desk: Toggle workspace/machine scope |
Same as the globe icon |
Settings
| Setting |
Default |
What it does |
agentDesk.scope |
workspace |
workspace = one Room for the current project. machine = one Room per active project. |
How it works
Agent Desk has no access to your conversations, your code or your prompts. It
learns only that something happened, never what.
To do that it installs hooks into ~/.claude/settings.json
(SessionStart, UserPromptSubmit, PreToolUse, PostToolUse,
Notification, Stop, SubagentStop, SessionEnd). Each hook appends one
line — session id, project path, event kind, timestamp — to
~/.claude/agent-desk/events.ndjson, which the extension tails to animate the
office. That file stays on your machine; nothing is sent anywhere.
Your existing hooks are preserved: installing merges Agent Desk's entries
alongside them, and Agent Desk: Uninstall hooks removes only its own. The
events file is capped to a bounded number of recent lines, so it does not grow
without limit.
Requirements
Development
npm install
npm run build # bundle extension + webview into dist/
npm test # vitest
npm run typecheck # tsc --noEmit on both projects
Press F5 in VSCode to launch an Extension Development Host.
docs/adr/ records the architectural decisions, CONTEXT.md the domain
vocabulary — read both before changing how the office behaves.
License
MIT