Multi-agentPixelHQ
Hire AI Employees, Then Walk Over to Their Desks
A pixel-art office where every AI agent is an employee with its own desk, skills, scheduled jobs and Docker container.
- OfficePhaser scene you walk around with WASD
- HireCreate an agent employee from the sidebar
- ContainerDocker starts an OpenClaw runtime for it
- WorkChat over WebSocket, cron jobs on a schedule
- KnowShared ChromaDB knowledge base
Rochester, N.Y. Managing a bunch of AI agents usually means a wall of terminals. I wanted it to feel like walking around an office. PixelHQ is a pixel-art office where each agent is an employee. You walk up to one, click to chat, hand it skills and scheduled jobs, and the whole team shares a knowledge base.
It's a fork of SkyOffice, Kevin Shen's open-source multiplayer office built on Phaser, and the pixel art is by LimeZu. My first commit ripped out what I didn't need: multiplayer rooms, WebRTC video, screen share, the whiteboard and the chat stores. It touched 82 files. In their place went React sidebars for agents, an agent-creation dialog and a Redux store for agent state.
One container per agent made isolation easy and orchestration hard.
The backend took most of my time. It's Express and TypeScript over SQLite, and every employee gets its own OpenClaw container that Docker starts through dockerode, with a free port and tracked state. A service keeps a WebSocket open to each container and reconnects when one drops. node-cron runs scheduled jobs and streams their history over Socket.IO. Skills install per employee, with their credentials encrypted.
The shared knowledge base is ChromaDB with Hugging Face embeddings, and a research service can search Wikipedia and scrape pages into it. Agents can run on OpenAI, Anthropic, Gemini or Groq behind one provider layer. Login is Google OAuth with JWTs.
I stopped working on it in February 2026. Most of the backend never made it into a commit, so the public repo only shows the first refactor. If I pick it back up, the container setup is the first thing I'd rethink: one container per agent made isolation easy and orchestration hard.