English | 简体中文
Click Est. API Cost to enter a monthly spend baseline for the savings scenario. The baseline is stored only in this browser and dashboard path; no plan price is assumed. The selected calendar-day average is projected to 30 days and compared with your baseline. Include subscription and API spending for the same scope. Incomplete pricing stays marked partial, and negative differences are displayed. This is a what-if comparison, not realized savings or a billing forecast.
Channel names come from OpenClaw's native directory, cached per provider/account for five minutes. Channel IDs remain in session-title and cost-breakdown tooltips. Unknown channels have an explicit generic label; stale cached names retain their status in the tooltip. No workspace-specific channel map or provider credentials are embedded in the dashboard. Directory reads are bounded and asynchronous.
Cron Jobs lists OpenClaw automations through its read-only CLI API, cached for 30 seconds. Loading, partial and stale catalogs are labeled; missing legacy JSON files no longer imply zero automations. AI Jobs is a separate optional provider: without it the page shows "not connected", not an empty successful job catalog.
Command Center works out of the box without Spacesuit. It owns OpenClaw
sessions, health, jobs, usage and the common dashboard. For a minimal core-only
view, run COMMAND_CENTER_MODE=core npm start.
Spacesuit is the highly recommended companion for per-agent flavors, domain panels and workflows. Spacesuit can scaffold a workspace and collect data by itself, but it has no graphical human–agent interaction surface of its own; Command Center provides the dashboard and supported controls. The extension system does not add a chat composer.
The read-only extension API loads explicit, profile-bound Spacesuit snapshots through the existing state feed. Legacy built-in domain panels remain the default compatibility mode until you select a flavor or core-only mode; existing panels and data are not silently removed. See the ownership and migration plan.
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.
UI changes must preserve existing data-i18n attributes and related translation hooks. Update every supported locale when adding or changing user-facing text, including loading and error states. Keep translated labels separate from dynamic values, and verify English → Chinese → English switching with the affected panel open and after live updates. See AGENTS.md for the full agent requirements.
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
The Projects board groups delivery outcomes by workflow stage across explicitly selected tracker sources. Spacesuit supplies Linear/Jira adapters; Command Center supplies the unified view without depending on a tracker. Native statuses, source freshness and missing metrics stay visible. This slice consumes snapshots, not a live tracker connection configured at install. No tasks are moved and no external tracker records are changed.
Explore outcomes, roles, agents, and topics with evidence-labeled relationships in operations.html. See the work graph contract for collectors, limitations, and privacy behavior.
Operations opens on All sessions from the native catalog. Group by channel, agent or activity; layer in outcome/role/topic relationships when available. Clickable stacks, composable breadcrumbs, density zoom and an inspector replace search-first navigation. Privacy, snapshot coverage and unknown accounting stay explicit. See the source-build pilot guide to test a pinned revision under another profile without publishing a package.










