A self-hosted operations dashboard that connects to OpenClaw to give you a unified command center for managing multiple companies with AI-powered agents.
Built with React, TypeScript, and Tailwind CSS. Designed to run inside Docker alongside an OpenClaw Gateway on any VPS.
Mission Command Center is a Founder Operating System — a single dashboard where you manage everything across your companies (MetaWatt & b1nary) through AI agents powered by OpenClaw.
The dashboard connects to your OpenClaw Gateway via WebSocket and gives you:
- Chat with Claw — Talk to your AI orchestrator directly from the bottom bar. Messages route through OpenClaw's agent runtime with streaming responses.
- Live Agent Status — See which agents are active, what they're working on, and gateway health (version, uptime, sessions, channels) pulled in real-time.
- Memory Search — Search OpenClaw's memory backend directly from the dashboard with relevance scoring.
- Skills & Integration Management — View installed OpenClaw skills, connected channels (Telegram, Slack, etc.), and manage API integrations.
- 13 Operational Pages — Dashboard, Communications, Research, Outreach, Projects, Certifications, Content, Video Studio, AI Team, Calendar, Memory, Code, Settings.
When OpenClaw is connected, pages show live data. When disconnected, they fall back to mock data so the UI is always usable.
Browser
|
| WebSocket (wss://)
v
+---------------------------+
| Nginx (port 80/3000) |
| - Serves React SPA |
| - Proxies /ws -> OpenClaw |
| - Proxies /api -> OpenClaw|
+---------------------------+
|
| Docker shared network
v
+---------------------------+
| OpenClaw Gateway (18789) |
| - Agent runtime |
| - Skills & plugins |
| - Channels (Telegram etc) |
| - Memory backend |
+---------------------------+
Both containers run on the same VPS and communicate over a shared Docker network. The browser only talks to the Nginx container, which proxies WebSocket and API requests to OpenClaw internally.
The dashboard is built to work with these integrations via OpenClaw skills:
| Integration | OpenClaw Skill | Purpose |
|---|---|---|
| OpenRouter | openrouter-provider |
Unified AI gateway — 200+ models (Claude, GPT, Gemini, Llama) |
| Google Workspace | google-workspace-mcp |
Gmail, Calendar, Drive, Docs, Sheets |
| YouTube | youtube |
Video uploads, channel management |
linkedin |
Post scheduling, engagement tracking | |
| Telegram | Built-in channel | Push notifications, quick commands |
| Claude API | anthropic-provider |
Direct Anthropic API (fallback) |
| VS Code | Local integration | Dev workflow via Claude Code |
Install skills on your OpenClaw instance:
docker exec -it <openclaw-container> openclaw skills install google-workspace-mcp
docker exec -it <openclaw-container> openclaw skills install linkedinThe Settings page automatically detects installed skills and shows their status.
- React 18 + TypeScript + Vite — Frontend framework
- Tailwind CSS + shadcn/ui — Styling and component library
- TanStack Query — Data fetching with caching and auto-refresh
- React Router v6 — Client-side routing
- WebSocket — Real-time connection to OpenClaw Gateway
- Docker + Nginx — Production deployment (~25MB final image)
| Route | Page | Description |
|---|---|---|
/ |
Dashboard | Mission control with metrics + activity feed |
/communications |
Communications | Email inbox with tags, search, reply drafting |
/research |
Research | Company discovery with relevance scoring |
/outreach |
Outreach | 7-stage partnership pipeline |
/projects |
Projects | 4-column kanban board |
/certifications |
Certifications | Certification tracking |
/content |
Content | 7-stage content production pipeline |
/video-studio |
Video Studio | Video production management |
/ai-team |
AI Team | Live agent status from OpenClaw Gateway |
/calendar |
Calendar | Schedule management |
/memory |
Memory | OpenClaw memory search |
/settings |
Settings | Skills, channels, integrations, config |
/code |
Code | Development task tracking |
npm install
npm run devThe dev server runs on http://localhost:8080. Without an OpenClaw Gateway, the dashboard shows mock data.
To connect to a local OpenClaw instance, create a .env file:
cp .env.example .env
# Edit .env with your OpenClaw Gateway URL and token- Hostinger VPS with Docker Manager enabled
- OpenClaw already running (the
openclaw-ffdwproject) - Your OpenClaw Gateway token (click "Gateway token" in Docker Manager)
Step 1: Open Hostinger Docker Manager and click Terminal (top right).
Step 2: Create the shared Docker network and connect OpenClaw to it:
docker network create shared-net
docker network connect shared-net $(docker ps --filter "name=openclaw" -q)Step 3: Clone this repo and build the image:
cd ~
git clone https://github.com/E-Jacko/mission-command-center.git
cd mission-command-centerStep 4: Create your environment file:
cp .env.example .env
nano .envSet these values:
VITE_OPENCLAW_WS_URL=ws://srv1396951.hstgr.cloud:3000/ws
VITE_OPENCLAW_TOKEN=<paste your gateway token>
DASHBOARD_PORT=3000
Step 5: Back in the Docker Manager UI:
- Click the Compose dropdown button (top right of Docker projects table)
- Select "Compose manually"
- Paste the contents of
docker-compose.ymlfrom this repo - Set the environment variables when prompted
- Click Deploy
Alternatively, select "Compose from URL" and point it to this repo's raw docker-compose.yml.
Step 6: Wait for it to build and start. You'll see a second project appear in the Docker projects list with status "Running".
Step 7: Click Open next to your new project, or visit:
http://srv1396951.hstgr.cloud:3000
If you prefer the terminal over the Docker Manager UI:
# 1. Create shared network
docker network create shared-net
# 2. Connect OpenClaw to it
docker network connect shared-net $(docker ps --filter "name=openclaw" -q)
# 3. Clone and enter the repo
cd ~ && git clone https://github.com/E-Jacko/mission-command-center.git
cd mission-command-center
# 4. Create .env
cp .env.example .env
nano .env # Set your token and URLs
# 5. Build and run
docker compose up -d --build
# 6. Check it's running
docker psOnce deployed, look for these indicators in the dashboard:
- Green WiFi icon in the top-right header = connected to OpenClaw
- "Live from OpenClaw" label on the AI Team page
- Chat bar at the bottom shows "Ask Claw anything..." when connected
If you see a red WiFi icon or "Claw offline", check:
- The Gateway token is correct in your
.env - Both containers are on the
shared-netnetwork:docker network inspect shared-net - OpenClaw is running:
docker ps
Connect integrations by installing OpenClaw skills:
# Find your OpenClaw container name
docker ps --filter "name=openclaw"
# Install skills
docker exec -it <container-name> openclaw skills install google-workspace-mcp
docker exec -it <container-name> openclaw skills install linkedin
docker exec -it <container-name> openclaw skills install youtube
# Set API keys in OpenClaw config
docker exec -it <container-name> nano ~/.openclaw/openclaw.jsonFor OpenRouter (recommended — gives access to 200+ models):
# Set the OPENROUTER_API_KEY environment variable on your OpenClaw container
docker exec -it <container-name> bash -c 'echo "OPENROUTER_API_KEY=your-key-here" >> ~/.openclaw/.env'Installed skills automatically appear on the Settings page.
The sidebar header has a company switcher. Click "MISSION CONTROL" to filter all pages by:
- All — Show everything
- MetaWatt — Energy company data only
- b1nary — Tech company data only
To add a new company, update src/contexts/CompanyContext.tsx:
export type Company = "All" | "MetaWatt" | "b1nary" | "NewCompany";The dashboard uses these OpenClaw Gateway RPC methods:
| Method | Used By | Purpose |
|---|---|---|
gateway.health |
AI Team, Dashboard | Version, uptime, session count |
agents.list |
AI Team | Agent names and status |
agents.status |
AI Team | Per-agent task info |
sessions.send |
ClawChatBar | Send chat messages |
sessions.list |
Dashboard | Active session count |
tools.list |
Settings | Installed skills/tools |
channels.list |
Settings | Connected channels |
memory.search |
Memory | Search knowledge base |
config.get |
Settings | Read OpenClaw config |
config.patch |
Settings | Update config |
cron.list |
(future) | Scheduled jobs |
Full Gateway protocol docs: docs.openclaw.ai/gateway/protocol
MIT