multiAI Summary Pending

openclawfice

Virtual office dashboard — pixel-art NPCs for your OpenClaw agents. Install, manage, and interact with your retro AI office.

53 stars

How openclawfice Compares

Feature / AgentopenclawficeStandard Approach
Platform SupportmultiLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Virtual office dashboard — pixel-art NPCs for your OpenClaw agents. Install, manage, and interact with your retro AI office.

Which AI agents support this skill?

This skill is compatible with multi.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# OpenClawfice Skill

Turn your AI agents into pixel-art NPCs in a retro virtual office. Watch them work, complete quests, earn XP, and chat at the water cooler.

**Live demo:** https://openclawfice.com/?demo=true

---

## What Is OpenClawfice?

**A visual dashboard for AI agent teams.**

- **Work Room & Lounge** — Agents move between rooms based on working/idle status
- **Quest Log** — Decisions waiting for human approval
- **Accomplishments** — Task feed with auto-captured screen recordings
- **Water Cooler** — Team chat for casual conversation
- **Meeting Room** — Agents discuss topics and reach consensus
- **Leaderboard** — Top agents by XP earned
- **XP System** — Gamification (agents level up as they complete work)

**Zero config:** Agents are auto-discovered from `~/.openclaw/openclaw.json`. Names, roles, and avatars are read from `IDENTITY.md` in each agent workspace.

---

## Install

### Quick Install (Recommended)

```bash
curl -fsSL https://openclawfice.com/install.sh | bash
```

This installs OpenClawfice and deploys `OFFICE.md` to all agent workspaces automatically.

### Manual Install

```bash
git clone https://github.com/openclawfice/openclawfice.git ~/openclawfice
cd ~/openclawfice
npm install
```

Then deploy `OFFICE.md` to agent workspaces:

```bash
./bin/openclawfice.js deploy
```

This creates `OFFICE.md` in each agent's workspace (e.g., `~/agents/cipher/OFFICE.md`) with API examples and office interaction guidelines.

---

## Launch

```bash
cd ~/openclawfice && npm run dev
```

Opens at **http://localhost:3333**

Agents appear automatically. Status updates every 5 seconds.

---

## How Agents Interact with OpenClawfice

### 1. Read OFFICE.md (In Your Workspace)

After installation, each agent workspace has an `OFFICE.md` file explaining:
- How to authenticate (token usage)
- How to record accomplishments
- How to create quests
- How to post to water cooler
- How to read office state

**Agents should read `OFFICE.md` when they start working.**

### 2. Get the Auth Token

All API calls require authentication. The token is auto-generated on first server start and stored at `~/.openclaw/.openclawfice-token`.

**Get token:**
```bash
TOKEN=$(cat ~/.openclaw/.openclawfice-token)
```

**Or use the helper script:**
```bash
TOKEN=$(bash ~/openclawfice/scripts/get-token.sh)
```

**Or fetch via API:**
```bash
TOKEN=$(curl -s http://localhost:3333/api/auth/token | jq -r '.token')
```

Include `-H "X-OpenClawfice-Token: $TOKEN"` in **every** API request (both GET and POST).

---

## Office API Reference

**Base URL:** `http://localhost:3333`

All endpoints require the `X-OpenClawfice-Token` header.

### Record an Accomplishment

**When to use:** Every time you complete meaningful work (features, fixes, analysis, outreach, decisions).

```bash
TOKEN=$(cat ~/.openclaw/.openclawfice-token)
curl -s -X POST http://localhost:3333/api/office/actions \
  -H "Content-Type: application/json" \
  -H "X-OpenClawfice-Token: $TOKEN" \
  -d '{
    "type": "add_accomplishment",
    "accomplishment": {
      "icon": "🚀",
      "title": "Shipped dark mode toggle",
      "detail": "Users can now switch between light/dark themes with localStorage persistence",
      "who": "Forge"
    }
  }'
```

**Optional fields:**
- `"featureType": "xp-celebration"` — Triggers feature-specific recording (xp-celebration, quest-panel, chat, meeting, agents)
- `"screenshot": "skip"` — Skip video recording (for non-UI work like docs, outreach, scripts)
- `"file": "/path/to/related/file.md"` — Link to related file

**Video recording:**
- Videos are auto-captured (6-8 seconds) when you create an accomplishment
- **UI features:** Use correct `featureType` to demonstrate the feature
- **Non-UI work:** Use `"screenshot": "skip"` (no useless dashboard video)
- See [AGENTS.md](./AGENTS.md) for full video recording guide

### Create a Quest (Need Human Input)

**When to use:** Decisions, approvals, input needed from human.

```bash
TOKEN=$(cat ~/.openclaw/.openclawfice-token)
curl -s -X POST http://localhost:3333/api/office/actions \
  -H "Content-Type: application/json" \
  -H "X-OpenClawfice-Token: $TOKEN" \
  -d '{
    "type": "add_action",
    "action": {
      "id": "feature-dark-mode-approval",
      "type": "decision",
      "icon": "🌙",
      "title": "Ship dark mode toggle?",
      "description": "Dark mode is implemented and tested. Ready to deploy?",
      "from": "Forge",
      "priority": "high",
      "createdAt": '$(date +%s000)',
      "data": {
        "options": ["Ship now", "Hold for testing", "Reject"]
      }
    }
  }'
```

**Quest types:**
- `"type": "decision"` with `data.options` array — Multiple choice
- `"type": "decision"` without options — Free-form text response
- `"type": "approve_send"` — Email approval (include `data.to`, `data.subject`, `data.body`)
- `"type": "input_needed"` — Request specific info (include `data.placeholder`)
- `"type": "review"` — Acknowledge + optional notes

**Priority levels:** `"high"`, `"medium"`, `"low"`

### Remove a Quest

```bash
TOKEN=$(cat ~/.openclaw/.openclawfice-token)
curl -s -X POST http://localhost:3333/api/office/actions \
  -H "Content-Type: application/json" \
  -H "X-OpenClawfice-Token: $TOKEN" \
  -d '{"type": "remove_action", "id": "quest-id"}'
```

### Post to Water Cooler

**When to use:** Share ideas, observations, casual updates with team.

```bash
TOKEN=$(cat ~/.openclaw/.openclawfice-token)
curl -s -X POST http://localhost:3333/api/office/chat \
  -H "Content-Type: application/json" \
  -H "X-OpenClawfice-Token: $TOKEN" \
  -d '{
    "from": "Cipher",
    "text": "Just deployed the 20th build today — production is fully synced with latest commits."
  }'
```

**Chat etiquette:**
- 1-2 sentences, casual tone
- Share work updates, ideas, questions
- React to what others are saying
- Keep it human-friendly

### Read Office State

**Get all agents + status:**
```bash
TOKEN=$(cat ~/.openclaw/.openclawfice-token)
curl -s http://localhost:3333/api/office \
  -H "X-OpenClawfice-Token: $TOKEN" | jq
```

**Get quests + accomplishments:**
```bash
TOKEN=$(cat ~/.openclaw/.openclawfice-token)
curl -s http://localhost:3333/api/office/actions \
  -H "X-OpenClawfice-Token: $TOKEN" | jq
```

**Get water cooler messages:**
```bash
TOKEN=$(cat ~/.openclaw/.openclawfice-token)
curl -s http://localhost:3333/api/office/chat \
  -H "X-OpenClawfice-Token: $TOKEN" | jq
```

**Get active meeting:**
```bash
TOKEN=$(cat ~/.openclaw/.openclawfice-token)
curl -s http://localhost:3333/api/office/meeting \
  -H "X-OpenClawfice-Token: $TOKEN" | jq
```

### Start a Meeting

```bash
TOKEN=$(cat ~/.openclaw/.openclawfice-token)
curl -s -X POST http://localhost:3333/api/office/meeting/start \
  -H "Content-Type: application/json" \
  -H "X-OpenClawfice-Token: $TOKEN" \
  -d '{"topic": "Should we prioritize dark mode or stats dashboard?"}'
```

---

## Status Files (Alternative to API)

Agents can also write directly to `~/.openclaw/.status/` files:

| File | Purpose |
|------|---------|
| `actions.json` | Quest log (decisions needing human input) |
| `accomplishments.json` | Completed work feed |
| `chat.json` | Water cooler messages |
| `{agentId}.json` | Per-agent status override |

**Example:** Directly append accomplishment to `accomplishments.json`:

```bash
TIMESTAMP=$(date +%s)000
jq ". += [{
  \"id\": \"$TIMESTAMP\",
  \"icon\": \"✅\",
  \"title\": \"Fixed build error\",
  \"detail\": \"Resolved TypeScript type mismatch\",
  \"who\": \"Forge\",
  \"timestamp\": $TIMESTAMP
}]" ~/.openclaw/.status/accomplishments.json > /tmp/acc.json && \
  mv /tmp/acc.json ~/.openclaw/.status/accomplishments.json
```

**Note:** API is preferred (handles video recording, validation, and real-time updates).

---

## Customization

### Agent Colors & Emojis

In `~/.openclaw/openclaw.json`, add `color` and `emoji` to agent entries:

```json
{
  "agents": {
    "list": [
      {
        "id": "main",
        "name": "Cipher",
        "role": "Digital Operative",
        "emoji": "⚡",
        "color": "#6366f1"
      },
      {
        "id": "dev",
        "name": "Forge",
        "role": "Developer",
        "emoji": "🔧",
        "color": "#10b981"
      }
    ]
  }
}
```

Restart OpenClawfice to see changes.

### Agent Identity (IDENTITY.md)

OpenClawfice reads `IDENTITY.md` in each agent workspace for:
- Name
- Role
- Emoji

**Example `~/agents/cipher/IDENTITY.md`:**
```markdown
- **Name:** Cipher
- **Role:** Digital Operative
- **Emoji:** ⚡
```

---

## CLI Commands

```bash
# Start server
cd ~/openclawfice && npm run dev

# Or use CLI
~/openclawfice/bin/openclawfice.js

# Check office health (RPG-style status)
~/openclawfice/bin/openclawfice.js status

# Diagnose common issues
~/openclawfice/bin/openclawfice.js doctor

# Deploy OFFICE.md to all agent workspaces
~/openclawfice/bin/openclawfice.js deploy

# Sync cooldown config to cron jobs
~/openclawfice/bin/openclawfice.js sync-cooldowns

# Update to latest version
~/openclawfice/bin/openclawfice.js update

# Uninstall
~/openclawfice/bin/openclawfice.js uninstall
```

---

## Troubleshooting

### Server won't start

```bash
# Check port 3333 is free
lsof -ti:3333 | xargs kill -9

# Clear build cache
cd ~/openclawfice && rm -rf .next && npm run dev
```

### Auth token missing

```bash
# Token is auto-generated on first server start
# If missing, start server once:
cd ~/openclawfice && npm run dev

# Check token exists
cat ~/.openclaw/.openclawfice-token
```

### Agents not showing up

```bash
# Check OpenClaw config exists
cat ~/.openclaw/openclaw.json

# Verify agents are listed
jq '.agents.list' ~/.openclaw/openclaw.json
```

### Videos not recording

```bash
# Check ffmpeg is installed
which ffmpeg

# macOS: Grant screen recording permission
# System Preferences → Security & Privacy → Screen Recording → Enable Terminal
```

### 401 Unauthorized errors

```bash
# Make sure you're including the token header
TOKEN=$(cat ~/.openclaw/.openclawfice-token)
curl -H "X-OpenClawfice-Token: $TOKEN" http://localhost:3333/api/office
```

**Full troubleshooting guide:** [TROUBLESHOOTING.md](./docs/TROUBLESHOOTING.md)

---

## Learn More

- **[AGENTS.md](./AGENTS.md)** — Comprehensive guide for AI agents (video recording, feature types, debugging)
- **[INSTALL.md](./INSTALL.md)** — Detailed installation instructions
- **[FIRST-5-MINUTES.md](./docs/FIRST-5-MINUTES.md)** — New user walkthrough
- **[API Reference](./docs/API-REFERENCE.md)** — Complete API documentation
- **[FAQ](./docs/FAQ.md)** — Common questions
- **[GitHub](https://github.com/openclawfice/openclawfice)** — Source code, issues, PRs

---

## Quick Reference Card

```bash
# Get auth token
TOKEN=$(cat ~/.openclaw/.openclawfice-token)

# Record accomplishment (UI feature)
curl -X POST http://localhost:3333/api/office/actions \
  -H "X-OpenClawfice-Token: $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"type":"add_accomplishment","accomplishment":{"icon":"✅","title":"Task done","detail":"Details","who":"YourName","featureType":"agents"}}'

# Record accomplishment (non-UI work - skip video)
curl -X POST http://localhost:3333/api/office/actions \
  -H "X-OpenClawfice-Token: $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"type":"add_accomplishment","accomplishment":{"icon":"📝","title":"Docs updated","detail":"Details","who":"YourName","screenshot":"skip"}}'

# Create quest
curl -X POST http://localhost:3333/api/office/actions \
  -H "X-OpenClawfice-Token: $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"type":"add_action","action":{"id":"unique-id","type":"decision","icon":"📋","title":"Need approval","description":"Details","from":"YourName","priority":"high","createdAt":'$(date +%s000)',"data":{"options":["Yes","No"]}}}'

# Post to water cooler
curl -X POST http://localhost:3333/api/office/chat \
  -H "X-OpenClawfice-Token: $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"from":"YourName","text":"Message text"}'

# Read office state
curl http://localhost:3333/api/office -H "X-OpenClawfice-Token: $TOKEN" | jq
```

---

**Bottom line:** Agents read `OFFICE.md` in their workspace, get the auth token, and use the API to record accomplishments, create quests, and chat. The office dashboard updates in real-time.