English | 简体中文
Your AI agents are running 24/7. You need to know what they're doing.
Command Center gives you real-time visibility into your OpenClaw deployment — sessions, costs, system health, scheduled tasks — all in one secure dashboard.
- Single API call — unified state endpoint, not 16+ separate requests
- 2-second updates — real-time SSE push, not polling
- 5-second cache — backend stays responsive under load
- Instant startup — no build step, no compilation
- Zero dependencies for users — just Node.js
- ~200KB total — dashboard + server
- No webpack/vite/bundler — runs directly
- No React/Vue/Angular — vanilla JS, works everywhere
- Desktop & mobile — works on any screen size
- Dark mode — easy on the eyes, Starcraft-inspired
- Live updates — no manual refresh needed
- Offline-friendly — graceful degradation
- ES Modules — clean component architecture
- SSE streaming — efficient real-time updates
- REST API — integrate with your tools
- TypeScript-ready — JSDoc types included
Command Center takes security seriously:
| Feature | Description |
|---|---|
| Auth Modes | Token, Tailscale, Cloudflare Access, IP allowlist |
| No external calls | Dashboard runs 100% locally — no telemetry, no CDNs |
| Localhost default | Binds to 127.0.0.1 by default |
| Read-only by default | View your agents without exposing control |
| No secrets in UI | API keys, tokens never displayed |
| Audit logging | Know who accessed what, when |
# Secure deployment example (Tailscale)
DASHBOARD_AUTH_MODE=tailscale node lib/server.js
# Only users on your Tailscale network can access| Feature | Description |
|---|---|
| 📊 Session Monitoring | Real-time view of active AI sessions |
| ⛽ LLM Fuel Gauges | Token usage, costs, quota remaining |
| 💻 System Vitals | CPU, memory, disk, temperature |
| ⏰ Cron Jobs | View and manage scheduled tasks |
| 🧠 Cerebro Topics | Automatic conversation tagging |
| 👥 Operators | Who's talking to your agents |
| 📝 Memory Browser | View agent memory files |
| 🔒 Privacy Controls | Hide sensitive topics for demos/screenshots |
| 💰 Cost Breakdown | Detailed per-model cost analysis |
| 📈 Savings Projections | Monthly cost vs. manual estimates |
npx clawhub@latest install command-center
cd skills/command-center
node lib/server.jsDashboard runs at http://localhost:3333 🎉
Alternative: Git clone
git clone https://github.com/jontsai/openclaw-command-center
cd openclaw-command-center
node lib/server.jsCommand Center auto-detects your OpenClaw workspace:
$OPENCLAW_WORKSPACEenvironment variable~/.openclaw-workspaceor~/openclaw-workspace- Common names:
~/molty,~/clawd,~/moltbot
If you have memory/ or state/ directories, you're good to go.
Command Center requires only Node.js to run. However, some system vitals features benefit from optional packages. Without them, the dashboard still works — those metrics simply show zeros or fall back gracefully.
| OS | Package | Purpose | Install | Without It |
|---|---|---|---|---|
| Linux | sysstat |
Disk I/O vitals (IOPS, throughput) | sudo apt install sysstat |
Disk stats show zeros |
| Linux | lm-sensors |
Additional temperature sensors | sudo apt install lm-sensors |
Uses thermal_zone (usually works) |
| macOS (Intel) | osx-cpu-temp |
CPU temperature | Build from source | Battery temp fallback |
| macOS (Apple Silicon) | passwordless sudo |
CPU temperature via powermetrics |
Configure in sudoers | Shows note in UI |
Command Center logs hints for missing optional dependencies once at startup.
| Variable | Description | Default |
|---|---|---|
PORT |
Server port | 3333 |
OPENCLAW_WORKSPACE |
Workspace root | Auto-detect |
OPENCLAW_PROFILE |
Profile name | (none) |
| Mode | Use Case | Config |
|---|---|---|
none |
Local dev | DASHBOARD_AUTH_MODE=none |
token |
API access | DASHBOARD_AUTH_MODE=token DASHBOARD_TOKEN=secret |
tailscale |
Team access | DASHBOARD_AUTH_MODE=tailscale |
cloudflare |
Public deploy | DASHBOARD_AUTH_MODE=cloudflare |
allowlist |
IP whitelist | DASHBOARD_AUTH_MODE=allowlist DASHBOARD_ALLOWED_IPS=... |
For the best Command Center experience, configure your OpenClaw gateway:
Enable threading for all messages to get proper topic tracking:
# In your OpenClaw config (gateway.yaml or via openclaw gateway config)
slack:
capabilities:
threading: all # Options: all, dm, group, noneWhy this matters: Without threading, the dashboard can't track conversation topics properly. Each thread becomes a trackable unit of work.
Use descriptive session labels for better dashboard visibility:
sessions:
labelFormat: "{channel}:{topic}" # Customize as neededEnable Cerebro for automatic conversation tagging:
# Initialize Cerebro directories
mkdir -p ~/your-workspace/cerebro/topics
mkdir -p ~/your-workspace/cerebro/orphansThe dashboard will automatically detect and display topic data.
Running multiple OpenClaw instances?
# Production dashboard
node lib/server.js --profile production --port 3333
# Development dashboard
node lib/server.js --profile dev --port 3334Command Center exposes a REST API:
| Endpoint | Description |
|---|---|
GET /api/state |
Unified state — all dashboard data in one call |
GET /api/health |
Health check |
GET /api/vitals |
System metrics |
GET /api/sessions |
Active sessions |
GET /api/events |
SSE stream for real-time updates |
command-center/
├── lib/
│ ├── server.js # HTTP server + API
│ ├── config.js # Configuration
│ └── jobs.js # Cron integration
├── public/
│ ├── index.html # Dashboard UI
│ └── js/ # Components (ES modules)
└── scripts/
├── setup.sh # First-time setup
└── verify.sh # Health check
Building on OpenClaw's native cron system with intelligent scheduling primitives:
| Primitive | Description |
|---|---|
| run-if-not | Skip if job already running (dedupe) |
| run-if-idle | Only execute when system capacity available |
| run-after | Dependency chains between jobs |
| run-with-backoff | Exponential retry on failure |
| priority-queue | Critical vs. background work prioritization |
- Agent-to-agent handoffs
- Swarm coordination patterns
- Specialized agent routing (data analysis, documentation, testing)
- Cross-session context sharing
- Webhook triggers for external systems
- Slack slash commands for quick actions
- API for custom integrations
- Plugin architecture for specialized agents
The hero view shows key metrics at a glance: total tokens, costs, active sessions, estimated savings, and system capacity.
Monitor all active AI sessions in real-time. Each card shows model, channel, token usage, cost, and activity status. Filter by status (live/recent/idle), channel, or session type.
View and manage scheduled tasks. See run history, next scheduled time, and enable/disable jobs. The dashboard shows job success/failure sparklines and filters by status and schedule type.
Automatic conversation organization. Topics are auto-detected from Slack threads, with status tracking (active/resolved/parked), thread counts, and quick navigation. Privacy controls let you hide sensitive topics.
See who's interacting with your AI agents. Track active sessions per operator, permission levels, and last activity timestamps.
Browse your agent's memory files — daily logs, long-term memory, and workspace files. Quick navigation with file sizes and modification times.
Click on any cost stat to see detailed breakdowns: token usage by type, pricing rates, and calculation methodology. Includes estimated savings vs. manual work.
Click on an operator card to see their session history, stats, and activity timeline.
Control what's visible for demos and screenshots. Hide sensitive topics, sessions, or cron jobs. Settings sync to the server automatically.
Click any session card to see detailed information: summary, key facts, tools used, and recent messages.
The complete dashboard with all panels visible.
Contributions welcome! Please read CONTRIBUTING.md.
npm install # Install dev dependencies
npm run dev # Watch mode
npm run lint # Check code style
npm run format # Auto-format
./scripts/verify.sh # Run health checksMIT © Jonathan Tsai










