Skills rts-dashboard
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.
git clone https://github.com/openclaw/skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/282059559donghui-prog/rts-dashboard" ~/.claude/skills/clawdbot-skills-rts-dashboard && rm -rf "$T"
skills/282059559donghui-prog/rts-dashboard/SKILL.mdRTS 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:
- Check if already running:
Get-NetTCPConnection -LocalPort 4320 -ErrorAction SilentlyContinue - If not running, start it in background:
Usecd "<skill_dir>"; node server.js
withexec
andbackground: true
, then check logs to confirmyieldMs: 3000
message.⚡ Online - If
is missing, runnode_modules/
first.npm install - Tell the user:
is ready.http://127.0.0.1:4320
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
- Node.js 18+
- OpenClaw Gateway running (default port 18789)
npm package (auto-installed viaws
)npm install
Features
- Tactical map: Active agents as diamond nodes with orbiting skill dots and trail animation
- Left panel: Full agent list + skill library with search
- Right panel: System vitals (CPU/RAM), gateway status, event logs, selected target details
- Agent detail: Model, current task, deployed skills, recent conversation
- Skill detail: Description, use cases, related agents
- Chat bar: Send messages to agents via Gateway WebSocket
RPCchat.send - Cron jobs: Display scheduled tasks with status on the map
- 5-min cooldown: Agents remain visible for 5 minutes after going offline (amber blink + countdown)
- CRT scan line + radar sweep + grid: Full military-UI aesthetic
Configuration
Environment variables (all optional):
| Variable | Default | Description |
|---|---|---|
| | Dashboard HTTP port |
| | Gateway port |
| | OpenClaw home directory |
| (from config) | Gateway auth token |
Authentication
The dashboard implements Ed25519 device signing for Gateway WebSocket authentication:
- On first launch, generates a keypair and saves to
.device-keys.json - Signs each
nonce using v3 protocolconnect.challenge - Gateway token is auto-discovered from
env var orOPENCLAW_GATEWAY_TOKEN
ingateway.auth.tokenopenclaw.json - Localhost connections are auto-approved by Gateway (no manual pairing needed)
- No
ordangerouslyDisableDeviceAuth
requiredallowInsecureAuth
Cross-Platform
- OpenClaw installation path auto-detected via
→require.resolve
→which/where
→ fallback pathsnpm root -g - Skill directories:
(user) +~/.agents/skills/
(built-in) +{openclaw}/skills/
(extensions){openclaw}/extensions/*/skills/ - Agent/skill config parsed via
(robust, no regex)JSON.parse - Works on Windows, macOS, and Linux
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)
- Agents:
→~/.openclaw/openclaw.jsonagents.list - Skills: Filesystem scan of skill directories
- Active sessions:
files in.jsonl.lock~/.openclaw/agents/*/sessions/ - System vitals: Node.js
module (CPU delta sampling every 2s)os - Gateway status: HTTP GET to gateway root
- Cron jobs:
~/.openclaw/cron/jobs.json
File 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)