Read-only dashboard for OpenClaw pipeline, agents, and parking lot.
npm install
npm run dev # Runs server (:18790) + Vite (:5173)
npm run build
npm start # Serves built SPA + API on :18790
| Variable |
Default |
Description |
PORT |
18790 |
Server port |
PIPELINE_DB_PATH |
~/.openclaw/pipeline/pipeline.db |
SQLite DB path |
AGENTS_DIR |
/home/ubuntu/clawd/agents |
Agent directories |
VITE_DISCORD_GUILD_ID |
`` |
Discord guild for thread links |
GET /api/pipeline — All pipeline items
GET /api/pipeline/stats — Stage counts
GET /api/pipeline/:threadId — Single item
GET /api/parking-lot — Parking lot items
GET /api/parking-lot/stats — Status counts
GET /api/agents — Agent fleet with SOUL.md metadata
GET /api/approvals — Items awaiting approval (lobster_resume_token set)
GET /api/events — SSE stream (pipeline-update, parking-lot-update)
GET /health — Health check
| Route |
Description |
/ |
Pipeline Overview — 4-column swim lane by stage |
/kanban |
Kanban Board — 6 columns from parked → done |
/agents |
Agent Fleet — status indicators per agent |
/approvals |
Approval Queue — grouped by gate type |
/costs |
Metrics — bar/line charts + summary stats |
- Server: Node.js + Express on port 18790
- DB: Read-only SQLite via better-sqlite3 (
~/.openclaw/pipeline/pipeline.db)
- Frontend: React 19 + Vite + Tailwind CSS 4 + Zustand
- Real-time: SSE polling every 5s, diff-based updates
sudo cp mission-control.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now mission-control
sudo systemctl status mission-control