966 Stars on GitHub

The AI agent control room.

Mission Control is an open-source dashboard that lets you orchestrate AI agents from one place — plan with interactive Q&A, dispatch to specialized agents, and track everything in real time.

01 Create tasks
02 Plan with AI
03 Dispatch to agents
04 Watch them work
missioncontrol.ghray.com
Mission Control dashboard showing Kanban board, agent sidebar, and live event feed
Open Source AI Agent Orchestration
🔒 MIT License
📦 Version v1.3.0
👥 20+ Contributors

Everything you need to orchestrate AI agents

Mission Control provides a comprehensive toolkit for managing AI-powered workflows, from task creation to delivery.

Task Management

Kanban board with drag-and-drop across 7 status columns — Planning, Inbox, Assigned, In Progress, Testing, Review, and Done.

💬

AI Planning

Interactive Q&A flow where AI asks clarifying questions to deeply understand your requirements before any work begins.

🤖

Agent System

Automatically creates specialized agents based on your task, assigns work, and tracks progress in real-time.

🔌

Gateway Discovery

Import existing agents from OpenClaw Gateway with one click. Discover remote models and capabilities instantly.

Live Feed

Real-time event stream showing agent activity, task updates, and system events as they happen.

🌐

Multi-Machine

Run the dashboard and agents on different computers. Supports Tailscale and custom gateway URLs for distributed setups.

📦

Docker Ready

Production-optimized Dockerfile and docker-compose configuration. Deploy anywhere containers run.

🔒

Security First

Bearer token authentication, HMAC webhook verification, Zod validation, path traversal protection, and security headers.

📈

Agent Activity Dashboard

Dedicated monitoring view for tracking agent work, session history, and performance across all active agents.

From task to delivery in five steps

Mission Control handles the full lifecycle — you describe what you need, and agents handle the rest.

1

Create a Task

Give it a title and description. Define what you need built, fixed, or researched.

2

AI Plans It

The AI asks you clarifying questions to understand exactly what you need before starting work.

3

Agent Assigned

A specialized agent is auto-created based on your answers, tailored to the task requirements.

4

Work Happens

The agent writes code, browses the web, creates files — all visible in the live feed.

5

Delivery

Completed work shows up in Mission Control with deliverables ready for review.

Clean, composable design

Mission Control connects to OpenClaw Gateway via WebSocket, which orchestrates AI providers for agent execution.

Mission Control
Next.js Dashboard
:4000
↔ WebSocket
OpenClaw Gateway
Agent Orchestration
:18789
AI Provider
Anthropic / OpenAI
SQLite
Tasks, agents, events

Up and running in minutes

Clone the repo, configure your environment, and start orchestrating agents.

Mission Control
# Clone and install
git clone https://github.com/crshdn/mission-control.git
cd mission-control
npm install

# Configure environment
cp .env.example .env.local
# Edit .env.local with your OpenClaw token

# Start the dashboard
npm run dev
# Open http://localhost:4000
OpenClaw Gateway
# Install OpenClaw globally
npm install -g openclaw

# Start the gateway
openclaw gateway start

# Gateway runs on port 18789
# Mission Control connects automatically
# via WebSocket

v1.3.0 Release

The latest release brings monitoring improvements, smarter discovery, and better reliability.

📈

Agent Activity Dashboard

Dedicated view for monitoring all agent work, sessions, and performance metrics.

🔍

Remote Model Discovery

Discover and import models available on connected OpenClaw Gateway instances.

🔄

Dispatch Recovery

Automatic recovery when agent dispatches fail, ensuring tasks are never lost.

📝

Planning Spec Forwarding

Planning specifications are forwarded directly to agents for better task context.

Built with modern tools

Next.js 14 TypeScript 5 SQLite Tailwind CSS Anthropic OpenAI

Secure by default

Every layer of Mission Control is hardened — from API authentication to error handling.

🔑

Bearer Token Auth

API authentication with MC_API_TOKEN. Same-origin browser requests are auto-allowed without a token.

🔏

HMAC-SHA256 Webhooks

Agent completion webhooks validated with X-Webhook-Signature header to prevent spoofing.

Zod Validation

All request payloads validated with Zod schemas before processing. Malformed data never reaches business logic.

🛡

Path Traversal Protection

File downloads use realpathSync to validate paths within the allowed directory. No directory escape.

📜

Security Headers

X-Frame-Options, X-Content-Type-Options, Referrer-Policy, and Permissions-Policy on every response.

🚫

Error Sanitization

API errors never leak internal details like stack traces or file paths in production mode.

Docker or bare metal

Choose the deployment method that fits your infrastructure.

Docker

Persistent volumes for data and workspace. Runs as non-root with dumb-init. Built-in health checks.

docker-compose
# Start with Docker Compose
docker compose up -d

# Persistent volumes:
#   mission-control-data
#   mission-control-workspace

# Health check built in
docker compose ps

Bare Metal

Standard Node.js deployment. Build once, run on any machine with Node 18+.

terminal
# Build for production
npm run build

# Start on port 4000
npx next start -p 4000

# Or use a process manager
pm2 start npm -- start

Distributed by design

Run the dashboard on one machine and OpenClaw on another. Connect them over your local network or a Tailscale mesh.

Machine A
Mission Control Dashboard
↔ WebSocket
Machine B
OpenClaw Gateway + Agents
.env.local — LAN setup
# Point to the machine running OpenClaw
OPENCLAW_GATEWAY_URL=ws://YOUR_SERVER_IP:18789

With Tailscale

Use Tailscale for secure, zero-config networking between machines. No port forwarding needed.

.env.local — Tailscale setup
# Use your Tailscale hostname (WSS for encrypted)
OPENCLAW_GATEWAY_URL=wss://your-machine.tailnet-name.ts.net

Environment variables

All configuration is done through environment variables in .env.local.

Variable Required Default Description
OPENCLAW_GATEWAY_URL Yes ws://127.0.0.1:18789 WebSocket URL to OpenClaw Gateway
OPENCLAW_GATEWAY_TOKEN Yes Authentication token for OpenClaw
MC_API_TOKEN No API auth token (enables auth middleware)
WEBHOOK_SECRET No HMAC secret for webhook validation
DATABASE_PATH No ./mission-control.db SQLite database location
WORKSPACE_BASE_PATH No ~/Documents/Shared Base directory for workspace files
PROJECTS_PATH No ~/Documents/Shared/projects Directory for project folders

18 REST endpoints

Full REST API for tasks, agents, files, and OpenClaw sessions — plus real-time SSE events.

Tasks

GET/api/tasks
POST/api/tasks
GET/api/tasks/{id}
PATCH/api/tasks/{id}
GET/api/tasks/{id}/activities
GET/api/tasks/{id}/deliverables
POST/api/tasks/{id}/subagent

OpenClaw Sessions

GET/api/openclaw/sessions
POST/api/openclaw/sessions
GET/api/openclaw/sessions/{id}
PATCH/api/openclaw/sessions/{id}
DEL/api/openclaw/sessions/{id}

Files

POST/api/files/reveal
GET/api/files/preview
POST/api/files/upload
GET/api/files/download
GET/api/events
POST/api/webhook

Real-Time SSE Events

task_created task_updated activity_logged deliverable_added agent_spawned agent_completed

What's next

Shipped features and what we're building next.

FAQ

Can't connect to OpenClaw Gateway
Run openclaw gateway status to verify the gateway is running. Check that OPENCLAW_GATEWAY_URL and OPENCLAW_GATEWAY_TOKEN are set correctly in your .env.local. If connecting across machines, make sure port 18789 is open in your firewall.
Planning questions not loading
Check the OpenClaw logs for errors with openclaw logs. Verify your AI provider API key (Anthropic or OpenAI) is configured in OpenClaw. Try refreshing the page and clicking the task again to re-trigger the planning flow.
Port 4000 already in use
Find the process using the port with lsof -i :4000, then stop it with kill -9 PID. Alternatively, change the port with npx next start -p 4001.
Agent callbacks failing behind proxy (502)
Corporate proxies can intercept localhost callbacks. Set NO_PROXY=localhost,127.0.0.1 in your environment so agent completion webhooks bypass the proxy and reach Mission Control directly.
How do I reset the database?
Delete the SQLite file with rm mission-control.db (or whatever path DATABASE_PATH is set to). Mission Control auto-creates a fresh database on next startup.

Star History

Built by 20+ contributors

Mission Control is MIT licensed and actively maintained. Pull requests welcome — join the community and help shape the future of AI agent orchestration.

superlowburn rchristman89 nicozefrench misterdas joralemarti niks918 gmb9000 Z8Medina markphelps muneale JamesTsetsekas nice-and-precise JamesCao2048 davetha pkgaiassistant-droid Coder-maxer grunya-openclaw ilakskill plutusaisystem-cmyk nithis4th davidpellerin tmchow xiaomiusa87 lutherbot-ai
MIT Licensed
PRs Welcome
TypeScript + Next.js
Contribute on GitHub