RTS Dashboard
by @282059559donghui-prog
RTS (Real-Time Strategy) style monitoring dashboard for OpenClaw. Provides a browser-based tactical command center with real-time visualization of agents, sk...
clawhub install rts-dashboardπ About This Skill
name: rts-dashboard description: "RTS (Real-Time Strategy) style monitoring dashboard for OpenClaw. Provides a browser-based tactical command center with real-time visualization of agents, skills, sessions, cron jobs, and system vitals. Features include a tactical map with active agents, radar scan animation, agent/skill detail panels, and chat messaging via Gateway WebSocket (chat.send). Use when the user wants to monitor OpenClaw status visually, launch a dashboard, or view agents/sessions/skills in a game-style UI."
RTS Dashboard
A StarCraft/C&C-inspired tactical command center for OpenClaw monitoring.
Agent Actions
Start Dashboard
When the user wants to open/view/launch the dashboard, or when visiting 127.0.0.1:4320 fails:
1. Check if already running:
Get-NetTCPConnection -LocalPort 4320 -ErrorAction SilentlyContinue
2. If not running, start it in background:
cd ""; node server.js
Use exec with background: true and yieldMs: 3000, then check logs to confirm β‘ Online message.
3. If node_modules/ is missing, run npm install first.
4. Tell the user: http://127.0.0.1:4320 is ready.Stop Dashboard
Get-NetTCPConnection -LocalPort 4320 | ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }
Quick Start (Manual)
cd rts-dashboard
npm install
node server.js
Open http://127.0.0.1:4320 in browser.
Requirements
ws npm package (auto-installed via npm install)Features
chat.send RPCConfiguration
Environment variables (all optional):
| Variable | Default | Description |
|----------|---------|-------------|
| RTS_PORT | 4320 | Dashboard HTTP port |
| OPENCLAW_GATEWAY_PORT | 18789 | Gateway port |
| OPENCLAW_HOME | ~/.openclaw | OpenClaw home directory |
| OPENCLAW_GATEWAY_TOKEN | (from config) | Gateway auth token |
Authentication
The dashboard implements Ed25519 device signing for Gateway WebSocket authentication:
.device-keys.jsonconnect.challenge nonce using v3 protocolOPENCLAW_GATEWAY_TOKEN env var or gateway.auth.token in openclaw.jsondangerouslyDisableDeviceAuth or allowInsecureAuth requiredCross-Platform
require.resolve β which/where β npm root -g β fallback paths~/.agents/skills/ (user) + {openclaw}/skills/ (built-in) + {openclaw}/extensions/*/skills/ (extensions)JSON.parse (robust, no regex)Gateway Requirements
The dashboard needs the Gateway to allow its WebSocket origin:
{
gateway: {
controlUi: {
allowedOrigins: ["http://127.0.0.1:4320"]
}
}
}
This is the only Gateway config change needed. Apply with openclaw config set gateway.controlUi.allowedOrigins '["http://127.0.0.1:4320"]' or via the Control UI config panel.
Data Sources (refreshed every 3 seconds)
~/.openclaw/openclaw.json β agents.list.jsonl.lock files in ~/.openclaw/agents/*/sessions/os module (CPU delta sampling every 2s)~/.openclaw/cron/jobs.jsonFile Structure
rts-dashboard/
βββ SKILL.md # This file
βββ server.js # Node.js server (HTTP + WebSocket)
βββ package.json # Dependencies (ws only)
βββ public/
βββ index.html # Single-file dashboard (HTML + CSS + Canvas JS)
βοΈ Configuration
Environment variables (all optional):
| Variable | Default | Description |
|----------|---------|-------------|
| RTS_PORT | 4320 | Dashboard HTTP port |
| OPENCLAW_GATEWAY_PORT | 18789 | Gateway port |
| OPENCLAW_HOME | ~/.openclaw | OpenClaw home directory |
| OPENCLAW_GATEWAY_TOKEN | (from config) | Gateway auth token |