Skip to content

crshdn/mission-control

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

118 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Autensa

Formerly known as Mission Control
autensa.com

AI Agent Orchestration Dashboard
Create tasks. Plan with AI. Dispatch to agents. Watch them work.

GitHub Stars GitHub Issues License PRs Welcome Next.js TypeScript SQLite

🎮 Live DemoQuick StartDockerFeaturesHow It WorksConfigurationContributors


🆕 What's New in v1.4.0

  • Multi-Agent Pipeline — End-to-end lifecycle now runs as Planning → Inbox → Assigned → In Progress → Testing → Review → Verification → Done
  • Core Team Bootstrap — New workspaces auto-bootstrap a 4-agent core team: Builder (🛠️), Tester (🧪), Reviewer (🔍), Learner (📚)
  • Workflow Engine Upgrades — Queue-aware review handling, automatic stage handoffs, and fail-loopback routing with detailed reasons
  • Learner Knowledge Loop — Learner now captures transition outcomes and injects relevant lessons into future dispatches
  • New Workflow APIs — Added routes for stage failure reporting, role visibility, workspace knowledge writes, and workflow template listing
  • Migration 013 (Fresh Start) — Resets task/agent runtime data, sets Strict as default template, and bootstraps default workspace agents

See the full CHANGELOG for details.


✨ Features

🎯 Task Management — Kanban board with drag-and-drop across 7 status columns

🧠 AI Planning — Interactive Q&A flow where AI asks clarifying questions before starting work

🤖 Agent System — Auto-creates specialized agents, assigns tasks, tracks progress in real-time

🔗 Gateway Agent Discovery — Import existing agents from your OpenClaw Gateway with one click — no need to recreate them

🔌 OpenClaw Integration — WebSocket connection to OpenClaw Gateway for AI agent orchestration

🐳 Docker Ready — Production-optimized Dockerfile and docker-compose for easy deployment

🔒 Security First — Bearer token auth, HMAC webhooks, Zod validation, path traversal protection, security headers

🛡️ Privacy First — No built-in analytics trackers or centralized user-data collection; data stays in your deployment by default

📡 Live Feed — Real-time event stream showing agent activity, task updates, and system events

🌐 Multi-Machine — Run the dashboard and AI agents on different computers (supports Tailscale for remote)


🛡️ Privacy

Mission Control is open-source and self-hosted. The project does not include ad trackers, third-party analytics beacons, or a centralized data collector run by us.

By default, your task/project data stays in your own deployment (SQLite + workspace). If you connect external services (for example AI providers or remote gateways), only the data you explicitly send to those services leaves your environment and is governed by their policies.


🏗 Architecture

┌──────────────────────────────────────────────────────────────┐
│                       YOUR MACHINE                           │
│                                                              │
│  ┌─────────────────┐          ┌──────────────────────────┐  │
│  │ Mission Control  │◄────────►│    OpenClaw Gateway      │  │
│  │   (Next.js)      │   WS     │  (AI Agent Runtime)      │  │
│  │   Port 4000      │          │  Port 18789              │  │
│  └────────┬─────────┘          └───────────┬──────────────┘  │
│           │                                │                  │
│           ▼                                ▼                  │
│  ┌─────────────────┐          ┌──────────────────────────┐  │
│  │     SQLite       │          │     AI Provider          │  │
│  │    Database      │          │  (Anthropic / OpenAI)    │  │
│  └─────────────────┘          └──────────────────────────┘  │
└──────────────────────────────────────────────────────────────┘

Mission Control = The dashboard you interact with (this project) OpenClaw Gateway = The AI runtime that executes tasks (separate project)


🚀 Quick Start

Prerequisites

  • Node.js v18+ (download)
  • OpenClaw Gatewaynpm install -g openclaw
  • AI API Key — Anthropic (recommended), OpenAI, Google, or others via OpenRouter

Install

# Clone
git clone https://github.com/crshdn/mission-control.git
cd mission-control

# Install dependencies
npm install

# Setup
cp .env.example .env.local

Edit .env.local:

OPENCLAW_GATEWAY_URL=ws://127.0.0.1:18789
OPENCLAW_GATEWAY_TOKEN=your-token-here

Where to find the token: Check ~/.openclaw/openclaw.json under gateway.token

Run

# Start OpenClaw (separate terminal)
openclaw gateway start

# Start Mission Control
npm run dev

Open http://localhost:4000 — you're in! 🎉

Production

npm run build
npx next start -p 4000

🐳 Docker

You can run Mission Control in a container using the included Dockerfile and docker-compose.yml.

Prerequisites

  • Docker Desktop (or Docker Engine + Compose plugin)
  • OpenClaw Gateway running locally or remotely

1. Configure environment

Create a .env file for Compose:

cp .env.example .env

Then set at least:

OPENCLAW_GATEWAY_URL=ws://host.docker.internal:18789
OPENCLAW_GATEWAY_TOKEN=your-token-here

Notes:

  • Use host.docker.internal when OpenClaw runs on your host machine.
  • If OpenClaw is on another machine, set its reachable ws:// or wss:// URL instead.

2. Build and start

docker compose up -d --build

Open http://localhost:4000.

3. Useful commands

# View logs
docker compose logs -f mission-control

# Stop containers
docker compose down

# Stop and remove volumes (deletes SQLite/workspace data)
docker compose down -v

Data persistence

Compose uses named volumes:

  • mission-control-data for SQLite (/app/data)
  • mission-control-workspace for workspace files (/app/workspace)

🎯 How It Works

 CREATE          PLAN            ASSIGN          EXECUTE         DELIVER
┌────────┐    ┌────────┐    ┌────────────┐    ┌──────────┐    ┌────────┐
│  New   │───►│  AI    │───►│   Agent    │───►│  Agent   │───►│  Done  │
│  Task  │    │  Q&A   │    │  Created   │    │  Works   │    │  ✓     │
└────────┘    └────────┘    └────────────┘    └──────────┘    └────────┘
  1. Create a Task — Give it a title and description
  2. AI Plans It — The AI asks you clarifying questions to understand exactly what you need
  3. Agent Assigned — A specialized agent is auto-created based on your answers
  4. Work Happens — The agent writes code, browses the web, creates files — whatever's needed
  5. Delivery — Completed work shows up in Mission Control with deliverables

Task Flow

PLANNING → INBOX → ASSIGNED → IN PROGRESS → TESTING → REVIEW → DONE

Drag tasks between columns or let the system auto-advance them.


⚙️ Configuration

Environment Variables

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

Security (Production)

Generate secure tokens:

# API authentication token
openssl rand -hex 32

# Webhook signature secret
openssl rand -hex 32

Add to .env.local:

MC_API_TOKEN=your-64-char-hex-token
WEBHOOK_SECRET=your-64-char-hex-token

When MC_API_TOKEN is set:

  • External API calls require Authorization: Bearer <token>
  • Browser UI works automatically (same-origin requests are allowed)
  • SSE streams accept token as query param

See PRODUCTION_SETUP.md for the full production guide.


🌐 Multi-Machine Setup

Run Mission Control on one machine and OpenClaw on another:

# Point to the remote machine
OPENCLAW_GATEWAY_URL=ws://YOUR_SERVER_IP:18789
OPENCLAW_GATEWAY_TOKEN=your-shared-token

With Tailscale (Recommended)

OPENCLAW_GATEWAY_URL=wss://your-machine.tailnet-name.ts.net
OPENCLAW_GATEWAY_TOKEN=your-shared-token

🗄 Database

SQLite database auto-created at ./mission-control.db.

# Reset (start fresh)
rm mission-control.db

# Inspect
sqlite3 mission-control.db ".tables"

📁 Project Structure

mission-control/
├── src/
│   ├── app/                    # Next.js pages & API routes
│   │   ├── api/
│   │   │   ├── tasks/          # Task CRUD + planning + dispatch
│   │   │   ├── agents/         # Agent management
│   │   │   ├── openclaw/       # Gateway proxy endpoints
│   │   │   └── webhooks/       # Agent completion webhooks
│   │   ├── settings/           # Settings page
│   │   └── workspace/[slug]/   # Workspace dashboard
│   ├── components/             # React components
│   │   ├── MissionQueue.tsx    # Kanban board
│   │   ├── PlanningTab.tsx     # AI planning interface
│   │   ├── AgentsSidebar.tsx   # Agent panel
│   │   ├── LiveFeed.tsx        # Real-time events
│   │   └── TaskModal.tsx       # Task create/edit
│   └── lib/
│       ├── db/                 # SQLite + migrations
│       ├── openclaw/           # Gateway client + device identity
│       ├── validation.ts       # Zod schemas
│       └── types.ts            # TypeScript types
├── scripts/                    # Bridge & hook scripts
├── src/middleware.ts            # Auth middleware
├── .env.example                # Environment template
└── CHANGELOG.md                # Version history

🔧 Troubleshooting

Can't connect to OpenClaw Gateway

  1. Check OpenClaw is running: openclaw gateway status
  2. Verify URL and token in .env.local
  3. Check firewall isn't blocking port 18789

Planning questions not loading

  1. Check OpenClaw logs: openclaw gateway logs
  2. Verify your AI API key is valid
  3. Refresh and click the task again

Port 4000 already in use

lsof -i :4000
kill -9 <PID>

Agent callbacks failing behind a proxy (502 errors)

If you're behind an HTTP proxy (corporate VPN, Hiddify, etc.), agent callbacks to localhost may fail because the proxy intercepts local requests.

Fix: Set NO_PROXY so localhost bypasses the proxy:

# Linux / macOS
export NO_PROXY=localhost,127.0.0.1

# Windows (cmd)
set NO_PROXY=localhost,127.0.0.1

# Docker
docker run -e NO_PROXY=localhost,127.0.0.1 ...

See Issue #30 for details.


🤝 Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'feat: add amazing feature'
  4. Push: git push origin feature/amazing-feature
  5. Open a Pull Request

👏 Contributors

Mission Control is built by a growing community. Thank you to everyone who has contributed!

Steve
Steve

Device Identity
Ryan Christman
Ryan Christman

Port Configuration
nicozefrench
nicozefrench

ARIA Hooks
GOPAL
GOPAL

Node v25 Support
Jorge Martinez
Jorge Martinez

Orchestration
Nik
Nik

Planning & Dispatch
Michael G
Michael G

Usage Dashboard
Z8Medina
Z8Medina

Metabase Integration
Mark Phelps
Mark Phelps

Gateway Agent Discovery 💡
Alessio
Alessio

Docker Support
James Tsetsekas
James Tsetsekas

Planning Flow Fixes
nice-and-precise
nice-and-precise

Agent Protocol Docs
JamesCao2048
JamesCao2048

Task Creation Fix
davetha
davetha

Force-Dynamic & Model Discovery
pkgaiassistant-droid
pkgaiassistant-droid

Activity Dashboard & Mobile UX
Coder-maxer
Coder-maxer

Static Route Fix
grunya-openclaw
grunya-openclaw

Dispatch & Proxy Bug Reports
ilakskill
ilakskill

Dispatch Recovery Design
plutusaisystem-cmyk
plutusaisystem-cmyk

Agent Daemon & Fleet View
nithis4th
nithis4th

2nd Brain Knowledge Base
davidpellerin
davidpellerin

Dynamic Agent Config
tmchow
tmchow

Agent Import Improvements
xiaomiusa87
xiaomiusa87

Session Key Bug Report
lutherbot-ai
lutherbot-ai

Security Audit

⭐ Star History

Star History Chart

📜 License

MIT License — see LICENSE for details.


🙏 Acknowledgments

OpenClaw Next.js Tailwind CSS SQLite Anthropic


Happy orchestrating! 🚀

About

AI Agent Orchestration Dashboard - Manage AI agents, assign tasks, and coordinate multi-agent collaboration via OpenClaw Gateway.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors