AI Agent Orchestration Dashboard
Mission Control is a task management system that lets you create tasks, plan them through an AI-guided Q&A process, and automatically dispatch them to AI agents for execution. Think of it as a project manager for AI workers.
🎉 v1.0.0 Released! First official working build. See CHANGELOG.md for details.
- Create Tasks - Add tasks with a title and description
- AI Planning - An AI asks you clarifying questions to understand exactly what you need
- Agent Creation - Based on your answers, the AI creates a specialized agent for the job
- Auto-Dispatch - The task is automatically sent to the agent
- Execution - The agent works on your task (browses web, writes code, creates files, etc.)
- Delivery - Completed work is delivered back to Mission Control
┌─────────────────────────────────────────────────────────────────┐
│ YOUR COMPUTER │
│ │
│ ┌─────────────────┐ ┌─────────────────────────────┐ │
│ │ Mission Control │ ◄─────► │ OpenClaw Gateway │ │
│ │ (Next.js) │ WS │ (AI Agent Runtime) │ │
│ │ Port 3000 │ │ Port 18789 │ │
│ └─────────────────┘ └─────────────────────────────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌─────────────┐ ┌─────────────────┐ │
│ │ SQLite │ │ AI Provider │ │
│ │ Database │ │ (Anthropic/etc) │ │
│ └─────────────┘ └─────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
Mission Control = The dashboard you interact with (this project)
OpenClaw Gateway = The AI runtime that actually executes tasks (separate project)
Before you start, you need:
Check if you have it:
node --versionIf not, download from: https://nodejs.org/
Mission Control needs OpenClaw to run AI agents. You have two options:
Option A: Install OpenClaw (Recommended)
npm install -g openclawOption B: Use an existing OpenClaw instance If someone else is running OpenClaw on your network, you just need the URL and token.
OpenClaw needs access to an AI provider. Supported providers:
- Anthropic (Claude) - Recommended
- OpenAI (GPT-4)
- Google (Gemini)
- Others via OpenRouter
git clone https://github.com/crshdn/mission-control.git
cd mission-controlnpm installCreate a file called .env.local in the project root:
touch .env.localOpen it in a text editor and add:
# OpenClaw Gateway Connection
OPENCLAW_GATEWAY_URL=ws://127.0.0.1:18789
OPENCLAW_GATEWAY_TOKEN=your-openclaw-token-here
# Optional: Custom port for Mission Control
PORT=3000How to get these values:
| Variable | Where to find it |
|---|---|
OPENCLAW_GATEWAY_URL |
The WebSocket URL where OpenClaw is running. Default is ws://127.0.0.1:18789 for local. For remote, use wss://your-server.example.com |
OPENCLAW_GATEWAY_TOKEN |
Found in your OpenClaw config file at ~/.openclaw/openclaw.json under gateway.token |
In a separate terminal:
# First time setup - this will guide you through configuration
openclaw init
# Start the gateway
openclaw gateway startOpenClaw will ask you to configure your AI provider (like Anthropic). Follow the prompts.
Back in the Mission Control directory:
npm run devYou should see:
▲ Next.js 15.x.x
- Local: http://localhost:3000
Go to: http://localhost:3000
🎉 You should see the Mission Control dashboard!
- Click the "+ New Task" button
- Enter a title (e.g., "Research best coffee machines under $200")
- Add a description with any details
- Click Create
- Your task appears in the PLANNING column
- Click on it to start planning
- An AI will ask you questions to understand exactly what you need:
- What's the goal?
- Who's the audience?
- Any constraints?
- Answer each question by selecting an option or typing your own
- When planning is complete, an agent is automatically created and assigned
- The task moves to IN PROGRESS
- The agent starts working (you might see browser windows open, files being created, etc.)
- When done, the task moves to REVIEW
- Check the deliverables and mark as DONE
PLANNING → INBOX → ASSIGNED → IN PROGRESS → TESTING → REVIEW → DONE
You can drag tasks between columns manually, or let the system auto-advance them.
| 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 |
PORT |
No | 3000 |
Port for Mission Control web server |
Your OpenClaw config lives at ~/.openclaw/openclaw.json. Key settings:
{
"gateway": {
"mode": "local",
"token": "your-secret-token"
},
"providers": {
"anthropic": {
"apiKey": "${ANTHROPIC_API_KEY}"
}
},
"defaultModel": "anthropic/claude-sonnet-4-5"
}Important: Store API keys in ~/.openclaw/.env, not directly in the config:
# ~/.openclaw/.env
ANTHROPIC_API_KEY=sk-ant-xxxxxYou can run Mission Control and OpenClaw on different computers.
On Computer B (OpenClaw):
- Configure OpenClaw to accept remote connections:
{
"gateway": {
"mode": "local",
"token": "your-secret-token"
}
}-
Make sure port 18789 is accessible (firewall, etc.)
-
Start OpenClaw:
openclaw gateway startOn Computer A (Mission Control):
- Set the remote URL in
.env.local:
OPENCLAW_GATEWAY_URL=ws://192.168.1.100:18789
OPENCLAW_GATEWAY_TOKEN=your-secret-tokenReplace 192.168.1.100 with Computer B's IP address.
If your machines are on different networks, use Tailscale for secure connections:
OPENCLAW_GATEWAY_URL=wss://your-machine-name.tailnet-name.ts.net
OPENCLAW_GATEWAY_TOKEN=your-secret-tokenMission Control uses SQLite for storage. The database file is automatically created at:
./mission-control.db
To start fresh, simply delete the database file:
rm mission-control.dbIt will be recreated on next startup.
You can use any SQLite viewer, or the command line:
sqlite3 mission-control.db
.tables
SELECT * FROM tasks;Cause: Mission Control can't reach OpenClaw.
Solutions:
- Make sure OpenClaw is running:
openclaw gateway status - Check the URL in
.env.localis correct - Verify the token matches OpenClaw's config
- Check firewall isn't blocking port 18789
Cause: The AI response is slow or failed.
Solutions:
- Check OpenClaw logs:
openclaw gateway logs - Verify your AI API key is valid
- Try refreshing and clicking the task again
Cause: Dispatch may have failed.
Solutions:
- Check the Events panel in Mission Control
- Look for errors in the browser console (F12)
- Check OpenClaw logs for errors
# Find what's using port 3000
lsof -i :3000
# Kill it (replace PID with the actual number)
kill -9 PID
# Or use a different port
PORT=3001 npm run devmission-control/
├── src/
│ ├── app/ # Next.js pages and API routes
│ │ ├── api/ # Backend API endpoints
│ │ │ ├── tasks/ # Task CRUD operations
│ │ │ ├── agents/ # Agent management
│ │ │ └── openclaw/ # OpenClaw proxy endpoints
│ │ └── page.tsx # Main dashboard page
│ ├── components/ # React components
│ │ ├── MissionQueue.tsx # Kanban board
│ │ ├── TaskModal.tsx # Task create/edit modal
│ │ └── ...
│ └── lib/ # Utilities and core logic
│ ├── db/ # Database setup and queries
│ ├── openclaw/ # OpenClaw client
│ └── store.ts # State management
├── .env.local # Your environment config (create this)
├── package.json
└── README.md
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
MIT License - see LICENSE for details.
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Happy orchestrating! 🚀
