The game interface where AI agents build real things
Pixel Agents turns multi-agent AI systems into something you can actually see and manage. Each agent becomes a character in a pixel art office. They walk around, sit at their desk, and visually reflect what they are doing — typing when writing code, reading when searching files, waiting when it needs your attention.
Right now it works as a VS Code extension with Claude Code. The vision though, is a fully agent-agnostic, platform-agnostic interface for orchestrating any AI agents, deployable anywhere.
This is the source code for the free Pixel Agents extension for VS Code — install from the VS Code Marketplace or Open VSX with the full furniture catalog included.
Features
- One agent, one character — every Claude Code terminal gets its own animated character
- Live activity tracking — characters animate based on what the agent is actually doing (writing, reading, running commands)
- Office layout editor — design your office with floors, walls, and furniture using a built-in editor
- Speech bubbles — visual indicators when an agent is waiting for input or needs permission
- Sound notifications — optional chime when an agent finishes its turn
- Sub-agent visualization — Task tool sub-agents spawn as separate characters linked to their parent
- Persistent layouts — your office design is saved and shared across VS Code windows
- External asset directories — load custom or third-party furniture packs from any folder on your machine
- Diverse characters — 6 diverse characters. These are based on the amazing work of JIK-A-4, Metro City.
Requirements
- VS Code 1.105.0 or later
- Claude Code CLI installed and configured
- Platform: Windows, Linux, and macOS are supported
Getting Started
If you just want to use Pixel Agents, the easiest way is to download the VS Code extension. If you want to play with the code, develop, or contribute, then:
Install from source
git clone https://github.com/pablodelucca/pixel-agents.git cd pixel-agents npm install cd webview-ui && npm install && cd .. npm run build
Then press F5 in VS Code to launch the Extension Development Host.
Usage
- Open the Pixel Agents panel (it appears in the bottom panel area alongside your terminal)
- Click + Agent to spawn a new Claude Code terminal and its character. Right-click for the option to launch with
--dangerously-skip-permissions(bypasses all tool approval prompts) - Start coding with Claude — watch the character react in real time
- Click a character to select it, then click a seat to reassign it
- Click Layout to open the office editor and customize your space
Layout Editor
The built-in editor lets you design your office:
- Floor — Full HSB color control
- Walls — Auto-tiling walls with color customization
- Tools — Select, paint, erase, place, eyedropper, pick
- Undo/Redo — 50 levels with Ctrl+Z / Ctrl+Y
- Export/Import — Share layouts as JSON files via the Settings modal
The grid is expandable up to 64×64 tiles. Click the ghost border outside the current grid to grow it.
Office Assets
All office assets (furniture, floors, walls) are now fully open-source and included in this repository under webview-ui/public/assets/. No external purchases or imports are needed — everything works out of the box.
Each furniture item lives in its own folder under assets/furniture/ with a manifest.json that declares its sprites, rotation groups, state groups (on/off), and animation frames. Floor tiles are individual PNGs in assets/floors/, and wall tile sets are in assets/walls/. This modular structure makes it easy to add, remove, or modify assets without touching any code.
To add a new furniture item, create a folder in webview-ui/public/assets/furniture/ with your PNG sprite(s) and a manifest.json, then rebuild. The asset manager (scripts/asset-manager.html) provides a visual editor for creating and editing manifests.
To use furniture from an external directory, open Settings → Add Asset Directory. See docs/external-assets.md for the full manifest format and how to use third-party asset packs.
Characters are based on the amazing work of JIK-A-4, Metro City.
How It Works
Pixel Agents watches Claude Code's JSONL transcript files to track what each agent is doing. When an agent uses a tool (like writing a file or running a command), the extension detects it and updates the character's animation accordingly. No modifications to Claude Code are needed — it's purely observational.
The webview runs a lightweight game loop with canvas rendering, BFS pathfinding, and a character state machine (idle → walk → type/read). Everything is pixel-perfect at integer zoom levels.
Tech Stack
- Extension: TypeScript, VS Code Webview API, esbuild
- Webview: React 19, TypeScript, Vite, Canvas 2D
Known Limitations
- Agent-terminal sync — the way agents are connected to Claude Code terminal instances is not super robust and sometimes desyncs, especially when terminals are rapidly opened/closed or restored across sessions.
- Heuristic-based status detection — Claude Code's JSONL transcript format does not provide clear signals for when an agent is waiting for user input or when it has finished its turn. The current detection is based on heuristics (idle timers, turn-duration events) and often misfires — agents may briefly show the wrong status or miss transitions.
- Linux/macOS tip — if you launch VS Code without a folder open (e.g. bare
codecommand), agents will start in your home directory. This is fully supported; just be aware your Claude sessions will be tracked under~/.claude/projects/using your home directory as the project root.
Troubleshooting
If your agent appears stuck on idle or doesn't spawn:
- Debug View — In the Pixel Agents panel, click the gear icon (Settings), then toggle Debug View. This shows connection diagnostics per agent: JSONL file status, lines parsed, last data timestamp, and file path. If you see "JSONL not found", the extension can't locate the session file.
- Debug Console — If you're running from source (Extension Development Host via F5), open VS Code's View > Debug Console. Search for
[Pixel Agents]to see detailed logs: project directory resolution, JSONL polling status, path encoding mismatches, and unrecognized JSONL record types.
Where This Is Going
The long-term vision is an interface where managing AI agents feels like playing the Sims, but the results are real things built.
- Agents as characters you can see, assign, monitor, and redirect, each with visible roles (designer, coder, writer, reviewer), stats, context usage, and tools.
- Desks as directories — drag an agent to a desk to assign it to a project or working directory.
- An office as a project — with a Kanban board on the wall where idle agents can pick up tasks autonomously.
- Deep inspection — click any agent to see its model, branch, system prompt, and full work history. Interrupt it, chat with it, or redirect it.
- Token health bars — rate limits and context windows visualized as in-game stats.
- Fully customizable — upload your own character sprites, themes, and office assets. Eventually maybe even move beyond pixel art into 3D or VR.
For this to work, the architecture needs to be modular at every level:
- Platform-agnostic: VS Code extension today, Electron app, web app, or any other host environment tomorrow.
- Agent-agnostic: Claude Code today, but built to support Codex, OpenCode, Gemini, Cursor, Copilot, and others through composable adapters.
- Theme-agnostic: community-created assets, skins, and themes from any contributor.
We're actively working on the core module and adapter architecture that makes this possible. If you're interested to talk about this further, please visit our Discussions Section.
Community & Contributing
Use Issues to report bugs or request features. Join Discussions for questions and conversations.
See CONTRIBUTING.md for instructions on how to contribute.
Please read our Code of Conduct before participating.
Supporting the Project
If you find Pixel Agents useful, consider supporting its development:
Star History
License
This project is licensed under the MIT License.