Pixel art office viewer - watch AI agents work in a Gather Town style startup office
npx claudepluginhub sebyul2/backstageIT startup office pixel art viewer - watch AI agents work in a Gather Town style office
Share bugs, ideas, or general feedback.
Watch your AI agents work in a Gather Town-style pixel art office
Installation • Scope • Features • How It Works • Characters • Configuration • Architecture
Claude Backstage is a Claude Code plugin that transforms your terminal AI workflow into a living, breathing pixel art startup office.
When Claude delegates work to sub-agents, each one becomes a character — they walk to their desk, sit down, code away, and head to the break room when they're done. All in real time, all in pixel art.
Bored between tasks? Wander around the office and press Spacebar — your character might have something to say.
| Tool | Purpose |
|---|---|
| Claude Code | CLI for Claude |
| Bun | Server runtime |
| jq | JSON processing in hooks |
Add the marketplace and install the plugin:
claude plugin marketplace add https://github.com/sebyul2/backstage.git
claude plugin install backstage
git clone https://github.com/sebyul2/backstage.git
cd backstage
./install.sh
In Claude Code, run:
/backstage:server on
Then open http://localhost:7777 in your browser. That's it — the office is open for business.
The server starts automatically when you run the command, and shuts down after 10 minutes of inactivity (no browser tabs open).
# If installed via plugin system:
claude plugin uninstall backstage
# If installed manually:
./uninstall.sh
Removes all plugin files, hooks, cache, and configuration cleanly. No leftovers.
Backstage hooks can run globally (all projects) or locally (single project), depending on how you install:
| Install Method | Scope | Hooks Run In |
|---|---|---|
claude plugin install | Global | Every Claude Code session, all projects |
./install.sh (manual) | Local | Only the workspace where you installed |
claude plugin install backstage
~/.claude/plugins/installed_plugins.json with scope: "user"${CLAUDE_PLUGIN_ROOT} at runtime — no hardcoded pathsclaude plugin uninstall backstage cleanly removes everything./install.sh
.claude/settings.local.json./uninstall.sh removes plugin files + hook entries from settingsRunning multiple Claude Code sessions in split panes (e.g., iTerm2)?
One localhost:7777 viewer collects activity from all active sessions automatically. Each session's work appears with a [project-name] prefix in the chat panel — no extra configuration needed.
The office is split into two zones: the workspace on the left and the break room on the right, connected by a doorway. Characters navigate around furniture using A* pathfinding, bump into each other (with stun physics!), and idle in the break room between tasks.
The status bar at the top shows token usage, API quota, active agent count, and session info at a glance.
The chat panel on the right streams everything happening in real time — user requests, agent activity, completions, idle banter, and task updates — all color-coded by character.
The dashboard board in the top-left corner tracks all tasks in the current session, organized into TODO, DOING, and DONE columns.
TaskCreate / TaskUpdate calls