一键导入
openclawfice
Virtual office dashboard — pixel-art NPCs for your OpenClaw agents. Install, manage, and interact with your retro AI office.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Virtual office dashboard — pixel-art NPCs for your OpenClaw agents. Install, manage, and interact with your retro AI office.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | openclawfice |
| description | Virtual office dashboard — pixel-art NPCs for your OpenClaw agents. Install, manage, and interact with your retro AI office. |
| homepage | https://openclawfice.com |
| metadata | {"openclaw":{"emoji":"🏢","requires":{"bins":["node","npm","git"]},"minNodeVersion":"18"}} |
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
A visual dashboard for AI agent teams.
Zero config: Agents are auto-discovered from ~/.openclaw/openclaw.json. Names, roles, and avatars are read from IDENTITY.md in each agent workspace.
curl -fsSL https://openclawfice.com/install.sh | bash
This installs OpenClawfice and deploys OFFICE.md to all agent workspaces automatically.
git clone https://github.com/openclawfice/openclawfice.git ~/openclawfice
cd ~/openclawfice
npm install
Then deploy OFFICE.md to agent workspaces:
./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.
cd ~/openclawfice && npm run dev
Opens at http://localhost:3333
Agents appear automatically. Status updates every 5 seconds.
After installation, each agent workspace has an OFFICE.md file explaining:
Agents should read OFFICE.md when they start working.
All API calls require authentication. The token is auto-generated on first server start and stored at ~/.openclaw/.openclawfice-token.
Get token:
TOKEN=$(cat ~/.openclaw/.openclawfice-token)
Or use the helper script:
TOKEN=$(bash ~/openclawfice/scripts/get-token.sh)
Or fetch via API:
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).
Base URL: http://localhost:3333
All endpoints require the X-OpenClawfice-Token header.
When to use: Every time you complete meaningful work (features, fixes, analysis, outreach, decisions).
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 fileVideo recording:
featureType to demonstrate the feature"screenshot": "skip" (no useless dashboard video)When to use: Decisions, approvals, input needed from human.
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 notesPriority levels: "high", "medium", "low"
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"}'
When to use: Share ideas, observations, casual updates with team.
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:
Get all agents + status:
TOKEN=$(cat ~/.openclaw/.openclawfice-token)
curl -s http://localhost:3333/api/office \
-H "X-OpenClawfice-Token: $TOKEN" | jq
Get quests + accomplishments:
TOKEN=$(cat ~/.openclaw/.openclawfice-token)
curl -s http://localhost:3333/api/office/actions \
-H "X-OpenClawfice-Token: $TOKEN" | jq
Get water cooler messages:
TOKEN=$(cat ~/.openclaw/.openclawfice-token)
curl -s http://localhost:3333/api/office/chat \
-H "X-OpenClawfice-Token: $TOKEN" | jq
Get active meeting:
TOKEN=$(cat ~/.openclaw/.openclawfice-token)
curl -s http://localhost:3333/api/office/meeting \
-H "X-OpenClawfice-Token: $TOKEN" | jq
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?"}'
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:
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).
In ~/.openclaw/openclaw.json, add color and emoji to agent entries:
{
"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.
OpenClawfice reads IDENTITY.md in each agent workspace for:
Example ~/agents/cipher/IDENTITY.md:
- **Name:** Cipher
- **Role:** Digital Operative
- **Emoji:** ⚡
# 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
# Check port 3333 is free
lsof -ti:3333 | xargs kill -9
# Clear build cache
cd ~/openclawfice && rm -rf .next && npm run dev
# 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
# Check OpenClaw config exists
cat ~/.openclaw/openclaw.json
# Verify agents are listed
jq '.agents.list' ~/.openclaw/openclaw.json
# Check ffmpeg is installed
which ffmpeg
# macOS: Grant screen recording permission
# System Preferences → Security & Privacy → Screen Recording → Enable Terminal
# 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
# 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.