My Virtual Office
π myvirtualoffice.ai
A self-hosted 2D AI workspace for AI Agents. Turn invisible agent work into a living, breathing office.

What Is It?
Virtual Office gives your AI agents a physical presence. Instead of watching logs scroll by, you see agents walking between desks, grabbing coffee, sitting in meetings, and chatting in a charming 2D style office that runs in your browser.
It connects to supported agent harnesses and visualizes what your agents are doing in real time.
Supported Agent Harnesses
OpenClaw
Virtual Office connects to OpenClaw through the OpenClaw gateway and the mounted OpenClaw home directory. The gateway provides live chat and activity events, while the home directory lets Virtual Office discover agents, read safe profile metadata, load model settings, and surface workspace tools in the UI.
For Docker deployments, mount your OpenClaw home directory into the container and set VO_OPENCLAW_PATH, VO_GATEWAY_URL, and VO_GATEWAY_HTTP when the defaults do not match your setup.
Hermes Agents
Virtual Office can discover local Hermes Agent profiles as first-class office agents when the Hermes CLI and home directory are available to the app. It uses conservative Hermes CLI surfaces for discovery and status, sends chat messages through hermes -z with the selected profile, captures replies from stdout, and stores local Virtual Office history under VO_STATUS_DIR.
For Docker deployments, mount or otherwise expose the Hermes home directory and CLI path to the container, then set VO_HERMES_HOME and VO_HERMES_BIN accordingly. Hermes secrets, private memory files, raw logs, and config internals are not read or exposed by default.
Features
π’ Live Office Canvas
- Real-time 2D style office with agents that walk, sit, work, and interact
- Agents move to their desks when working, wander when idle, visit the kitchen, lounge on the couch
- Smooth A* pathfinding with collision avoidance
- Wall occlusion: agents behind walls get naturally shadowed
- 100 FPS rendering with configurable canvas size
π¨ Full Office Editor
- Drag-and-drop furniture placement with snap-to-grid
- 25+ furniture items: desks, boss desk, meeting table, couches, bookshelves, whiteboards, filing cabinets, plants, vending machines, kitchen appliances, ping pong table, dart board, TV, and more
- Interior wall builder: create rooms, hallways, and departments with doors
- Wall color picker per section with accent and trim colors
- Floor tile color customization
- Rotation support for select furniture (couch)
- Text labels for naming rooms and areas
π€ Agent Customization
- Full character appearance editor: skin tone, hair style/color, eye color, eyebrows
- Facial hair, glasses, headwear options
- Costumes (lobster suit, capes, etc.)
- Held items and desk accessories (coffee mug, envelope, clipboard, plant, etc.)
- Gender-aware sprite rendering
- Each agent gets a unique color tag and emoji
πΎ Office Pet
- Choose from Cat, Pug, or Lobster
- Realistic behavior: sleeping, sitting, grooming, wandering, greeting agents, investigating furniture
- Agents interact with the pet: petting (β₯) and playful chasing
- Full pathfinding and collision avoidance, same as agents
- Directional walking sprites (front, back, side views) for cat and pug
- Custom naming: default pet is a lobster named Clawy
π¬ Chat with Agents
- Click any agent to open a chat window
- Full markdown rendering with syntax highlighting
- Inline image support: send images and see thumbnails in the chat
- Click images for full-size lightbox view
- Voice input via Whisper STT (premium)
- File attachments with drag-and-drop or paste
- Audio file auto-transcription
- Streaming responses with live typing indicator
- Tool activity feed showing what the agent is doing (exec, read, write, search, etc.)
- Movable/snappable chat window with float mode
- Agent selector dropdown to switch between agents
π Dashboard Panel
- PC Performance: live CPU and RAM monitoring
- API Usage: track agent API calls and costs
- Branch Management: organize agents into departments/teams with color-coded borders
- Agent Directory: see all agents with live status (working, idle, meeting, break)
- Activity Log: real-time feed of office events
π¦οΈ Dynamic Environment
- Interactive windows with live weather pulled from your location
- Day/night cycle: ambient lighting shifts throughout the day
- Animated furniture: TV with 5 channels (sports, news, cooking, cartoon, movie) that agents walk over to watch
- Clock showing real time
π Meeting System
- 1-on-1 meetings: agents walk to each other's desks
- Group meetings: agents gather around the meeting table (10 seats, 5 per side)
- Meetings triggered by agent activity or manual scheduling
- Meeting status visible in dashboard
ποΈ Branch System
- Create departments (Engineering, Sales, Support, etc.)
- Color-coded wall sections per branch
- Agents assigned to branches with visual grouping
- Branch themes and emoji customization
π§ Additional Tools (Premium)
- Agent Browser: embedded browser with live view, URL bar, and remote control
- SMS Panel: Twilio integration for SMS/phone from the office
- Cron Manager: schedule recurring agent tasks visually
- Models Panel: per-agent model switching from the UI
- Whisper STT: voice-to-text input in chat
Quick Start
Docker Compose (recommended)
git clone https://github.com/eliautobot/my-virtual-office.git
cd my-virtual-office
docker compose up -d
Then open http://localhost:8090/setup to run the setup wizard.
Docker Image / Platform Support
The published Docker image is available at:
ghcr.io/eliautobot/my-virtual-office:latest
Multi-arch images are published for:
linux/amd64linux/arm64
That means the same image tag works on standard x86_64 machines and ARM64 devices like a Raspberry Pi 5.
First Run
- Open
http://localhost:8090/setup - Follow the setup wizard to connect your OpenClaw instance, Hermes Agents, or both
- Enter a license key or skip for demo mode
- Customize your office, add agents, and watch them come to life
Remote Access and Security
Recommended remote access: use Tailscale.
Virtual Office is a control surface for your local agent harnesses. If you want to reach it away from home, the safest default is to keep it on your private machine or LAN and access it over a private tailnet such as Tailscale.
Recommended setup
- Keep Virtual Office bound to your local machine, LAN, or private tailnet
- Use Tailscale to reach the host remotely instead of opening router ports
- Keep your agent harnesses and Virtual Office behind trusted access controls
- Use strong device/account security on the machines that can reach your tailnet
Warning
- Do not expose Virtual Office directly to the public internet unless you fully understand and accept the security risk
- Avoid simple port forwarding for ports
8090,8091, or your agent harness gateways - If someone can reach your Virtual Office deployment, they may be able to interact with a live control surface for your agents
This project is designed first for self-hosted local/private-network use. You are responsible for securing any remote deployment.
Modes
Free Demo
Works without a license key:
- Up to 3 agents
- Branch management
- Weather and day/night cycle
- Chat with any agent
- API usage monitoring
- Setup wizard
Demo mode shows a watermark and demo banner.
Full License
Unlocks everything:
- Unlimited agents
- Full office editor and furniture
- Agent customization and appearance editor
- Office pet
- Agent Browser panel
- SMS / Twilio panel
- Cron Job Manager
- Whisper STT voice input
- No watermark or demo banner
How to Activate
Activate during the setup wizard or later from β° Menu β Settings.
License keys are provided after purchase and look like this:
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Enter your key during setup or in β° Menu β Settings. The key is validated once online with Lemon Squeezy, then works offline forever. Premium features unlock immediately and persist across restarts and updates.
Configuration
All settings live in vo-config.json. Environment variables override config values.
| Variable | Default | Description |
|---|---|---|
VO_OFFICE_NAME |
Virtual Office | Office display name |
VO_PORT |
8090 | HTTP server port |
VO_WS_PORT |
8091 | WebSocket proxy port |
VO_GATEWAY_URL |
ws://127.0.0.1:18789 | OpenClaw gateway WebSocket URL |
VO_GATEWAY_HTTP |
http://127.0.0.1:18789 | OpenClaw gateway HTTP URL |
VO_OPENCLAW_PATH |
~/.openclaw | Path to OpenClaw home directory |
VO_HERMES_ENABLED |
true | Enable discovery of local Hermes Agent profiles when Hermes is available |
VO_HERMES_HOME |
~/.hermes | Path to the Hermes home/profile root directory |
VO_HERMES_BIN |
~/.local/bin/hermes | Hermes CLI binary used for discovery and safe request/response chat calls |
VO_HERMES_TIMEOUT_SEC |
600 | Timeout for Hermes CLI chat calls |
VO_STATUS_DIR |
/data | Directory for presence/status data inside the container. By default this is backed by the vo-data Docker volume. |
VO_WEATHER_LOCATION |
(none) | Weather location for window display |
Updating
docker compose down
docker compose pull
docker compose up -d
Or pull the image directly:
docker pull ghcr.io/eliautobot/my-virtual-office:latest
Your license key, office layout, and all settings persist across updates. They're stored in the vo-data volume.
Roadmap
- More office themes and skins
- Premium character packs and costumes
- More pet species and behaviors
- Agent-to-agent visible interactions
- Deeper IDE integrations
- More idle activities and office events
License
GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later).
Virtual Office remains open source. You may use, modify, host, and redistribute it under the AGPL. If you modify the app and make it available to users over a network, you must offer those users the corresponding source code for your modified version.
Paid license keys unlock the hosted/product feature set and support the official distribution. Commercial licensing is available separately for organizations that need terms outside the AGPL.