Skip to content
cccskills
FreePublished on GitHub

mission-control

Connect AI agents to Mission Control through its API to register agents, retrieve assigned tasks, report progress, manage skills, and check agent or system status from scripts and automated workflows.

OriginalShow the original description

Interact with Mission Control — AI agent orchestration dashboard. Use when registering agents, managing tasks, syncing skills, or querying agent/task status via MC APIs.

See how to install

Good for

  • Registering agents and reporting their online status
  • Retrieving assigned tasks and reporting progress
  • Reading and updating registered skills
  • Checking agent activity and system health

Files included (200)

  • SKILL.md8.2 KB
  • .dockerignore231 B
  • .env.example11.1 KB
  • .env.test191 B
  • .github/CODEOWNERS76 B
  • .github/dependabot.yml1.4 KB
  • .github/FUNDING.yml31 B
  • .github/ISSUE_TEMPLATE/bug_report.yml1.9 KB
  • .github/ISSUE_TEMPLATE/config.yml261 B
  • .github/ISSUE_TEMPLATE/feature_request.yml2.3 KB
  • .github/pull_request_template.md825 B
  • .github/workflows/codeql.yml951 B
  • .github/workflows/config-integrity.yml2.5 KB
  • .github/workflows/docker-publish.yml2.4 KB
  • .github/workflows/osv-scanner.yml557 B
  • .github/workflows/quality-gate.yml1.8 KB
  • .github/workflows/scorecard.yml1.2 KB
  • .github/workflows/screenshot-drift.yml3.9 KB
  • .github/workflows/star-chart.yml1.1 KB
  • .gitignore695 B
  • .node-version3 B
  • .npmrc48 B
  • .nvmrc3 B
  • CHANGELOG.md20.3 KB
  • CLAUDE.md3.3 KB
  • CODE_OF_CONDUCT.md5.4 KB
  • CONTRIBUTING.md2.1 KB
  • docker-compose.hardened.yml486 B
  • docker-compose.yml3.0 KB
  • docker-entrypoint.sh1.3 KB
  • Dockerfile4.6 KB
  • docs/agent-setup.md9.9 KB
  • docs/cli-agent-control.md4.2 KB
  • docs/cli-integration.md3.3 KB
  • docs/deployment.md23.7 KB
  • docs/mission-control-activity.png45.6 KB
  • docs/mission-control-agents.png59.6 KB
  • docs/mission-control-cron.png62.3 KB
  • docs/mission-control-memory.png37.5 KB
  • docs/mission-control-overview.png44.8 KB
  • docs/mission-control-tasks.png85.9 KB
  • docs/openclaw-config-compatibility.md1.4 KB
  • docs/operator-field-notes.webp74.5 KB
  • docs/orchestration.md10.5 KB
  • docs/plans/2026-03-10-onboarding-walkthrough-hardening.md1.1 KB
  • docs/plans/2026-03-20-mission-control-platform-cli-tui-prd.md8.4 KB
  • docs/quickstart.md7.6 KB
  • docs/releases/2.0.0.md10.0 KB
  • docs/releases/2.0.1.md4.6 KB
  • docs/releases/2.2.0.md2.5 KB
  • docs/releases/2.3.0.md2.8 KB
  • docs/SCREENSHOT-GUIDE.md2.9 KB
  • docs/SECURITY-HARDENING.md12.7 KB
  • docs/star-history-dark.svg5.5 KB
  • docs/star-history-light.svg5.5 KB
  • eslint.config.mjs1.4 KB
  • examples/MULTI-PROVIDER-DEMO.md38.4 KB
  • install.ps116.1 KB
  • install.sh15.7 KB
  • LICENSE1.0 KB
  • messages/ar.json108.2 KB
  • messages/de.json91.6 KB
  • messages/en.json83.2 KB
  • messages/es.json92.2 KB
  • messages/fr.json94.8 KB
  • messages/ja.json102.0 KB
  • messages/ko.json92.7 KB
  • messages/pt.json91.7 KB
  • messages/ru.json122.0 KB
  • messages/zh-tw.json82.3 KB
  • messages/zh.json82.0 KB
  • next.config.js2.4 KB
  • openapi.json330.6 KB
  • openclaw_hardening_guide.md6.9 KB
  • ops/mc-provisioner-daemon.js11.6 KB
  • ops/provisioner-limits.cjs907 B
  • ops/templates/openclaw-gateway@.service567 B
  • package.json4.2 KB
  • playwright.config.ts1.3 KB
  • playwright.openclaw.gateway.config.ts627 B
  • playwright.openclaw.local.config.ts625 B
  • pnpm-lock.yaml328.7 KB
  • pnpm-workspace.yaml743 B
  • postcss.config.js71 B
  • public/brand/claude-logo.png61.4 KB
  • public/brand/codex-logo.png2.8 KB
  • public/brand/hermes-logo.png24.8 KB
  • public/brand/mc-logo-128.png16.7 KB
  • public/brand/mc-logo-256.png63.0 KB
  • public/brand/mc-logo-512.png279.3 KB
  • public/brand/openclaw-logo.png25.1 KB
  • public/llms.txt1.3 KB
  • public/mc-logo.png1.8 MB
  • public/mc.png2.3 MB
  • public/office-sprites/cc0-hero/ATTRIBUTION-CC0-HERO.txt210 B
  • public/office-sprites/cc0-hero/player_full_animation.png49.4 KB
  • public/office-sprites/cc0-hero/player.png13.6 KB
  • public/office-sprites/desk.svg665 B
  • public/office-sprites/floor-tile.svg436 B
  • public/office-sprites/kenney/ATTRIBUTION-KENNEY.txt575 B
  • public/office-sprites/kenney/chairDesk.png997 B
  • public/office-sprites/kenney/computerScreen.png353 B
  • public/office-sprites/kenney/desk.png560 B
  • public/office-sprites/kenney/floorFull.png795 B
  • public/office-sprites/kenney/plantSmall1.png257 B
  • public/office-sprites/kenney/plantSmall2.png248 B
  • public/office-sprites/kenney/rugRectangle.png418 B
  • public/office-sprites/kenney/tableCross.png512 B
  • public/office-sprites/lounge-rug.svg358 B
  • public/office-sprites/plant.svg487 B
  • public/office-sprites/worker-base.svg603 B
  • public/office-sprites/worker-idle-a.svg603 B
  • public/office-sprites/worker-idle-b.svg603 B
  • public/office-sprites/worker-type-a.svg601 B
  • public/office-sprites/worker-type-b.svg601 B
  • public/office-sprites/worker-walk-a.svg603 B
  • public/office-sprites/worker-walk-b.svg603 B
  • public/robots.txt198 B
  • README.md11.9 KB
  • RELEASE.md1.6 KB
  • scripts/agent-heartbeat.sh7.1 KB
  • scripts/api-contract-parity.ignore670 B
  • scripts/check-api-contract-parity.mjs5.1 KB
  • scripts/check-node-version.mjs681 B
  • scripts/check-standalone-artifact.mjs2.4 KB
  • scripts/check-workflow-action-pins.py1.3 KB
  • scripts/deploy-standalone.sh6.2 KB
  • scripts/e2e-openclaw/bin/clawdbot353 B
  • scripts/e2e-openclaw/bin/openclaw353 B
  • scripts/e2e-openclaw/bin/opencode699 B
  • scripts/e2e-openclaw/mock-gateway.mjs1.5 KB
  • scripts/e2e-openclaw/start-e2e-server.mjs8.4 KB
  • scripts/gen-star-history.py5.8 KB
  • scripts/generate-env.sh2.4 KB
  • scripts/load-env.sh2.1 KB
  • scripts/load-env.test.sh1.9 KB
  • scripts/mc-base-url.cjs1.0 KB
  • scripts/mc-cli.cjs25.4 KB
  • scripts/mc-mcp-server.cjs30.1 KB
  • scripts/mc-server.cjs2.8 KB
  • scripts/mc-tui.cjs45.9 KB
  • scripts/notification-daemon.sh10.1 KB
  • scripts/prepare-standalone-artifact.mjs1.8 KB
  • scripts/security-audit.sh6.5 KB
  • scripts/security-audit.test.sh1.4 KB
  • scripts/smoke-staging.mjs5.3 KB
  • scripts/start-standalone.sh1.5 KB
  • scripts/station-doctor.sh6.7 KB
  • scripts/take-screenshots.ts3.2 KB
  • SECURITY.md2.5 KB
  • skills/mission-control-installer/README.md1.7 KB
  • skills/mission-control-installer/skill.json786 B
  • skills/mission-control-manage/README.md2.6 KB
  • skills/mission-control-manage/skill.json605 B
  • src/app/[[...panel]]/page.tsx26.8 KB
  • src/app/api/activities/route.ts7.7 KB
  • src/app/api/adapters/route.ts4.3 KB
  • src/app/api/agent-runtimes/route.ts3.9 KB
  • src/app/api/agents/[id]/attribution/route.ts12.1 KB
  • src/app/api/agents/[id]/diagnostics/route.ts14.2 KB
  • src/app/api/agents/[id]/files/route.ts6.3 KB
  • src/app/api/agents/[id]/heartbeat/route.ts8.9 KB
  • src/app/api/agents/[id]/hide/route.ts2.6 KB
  • src/app/api/agents/[id]/keys/route.ts7.1 KB
  • src/app/api/agents/[id]/memory/route.ts11.2 KB
  • src/app/api/agents/[id]/route.ts11.0 KB
  • src/app/api/agents/[id]/soul/route.ts11.0 KB
  • src/app/api/agents/[id]/wake/route.ts2.1 KB
  • src/app/api/agents/comms/route.ts5.8 KB
  • src/app/api/agents/evals/route.ts5.7 KB
  • src/app/api/agents/message/route.ts3.3 KB
  • src/app/api/agents/optimize/route.ts3.6 KB
  • src/app/api/agents/register/route.ts4.7 KB
  • src/app/api/agents/route.ts17.0 KB
  • src/app/api/agents/sync/route.ts2.3 KB
  • src/app/api/alerts/route.ts12.9 KB
  • src/app/api/audit/route.ts1.9 KB
  • src/app/api/auth/access-requests/route.ts5.4 KB
  • src/app/api/auth/google/disconnect/route.ts1.4 KB
  • src/app/api/auth/google/route.ts4.4 KB
  • src/app/api/auth/login/route.ts2.6 KB
  • src/app/api/auth/logout/route.test.ts2.0 KB
  • src/app/api/auth/logout/route.ts1.3 KB
  • src/app/api/auth/me/route.ts5.1 KB
  • src/app/api/auth/users/route.ts7.1 KB
  • src/app/api/backup/route.ts6.4 KB
  • src/app/api/channels/route.ts9.9 KB
  • src/app/api/chat/conversations/route.ts3.6 KB
  • src/app/api/chat/messages/[id]/route.ts2.6 KB
  • src/app/api/chat/messages/route.ts26.9 KB
  • src/app/api/chat/session-prefs/route.ts4.0 KB
  • src/app/api/claude-tasks/route.ts907 B
  • src/app/api/claude/sessions/route.ts3.8 KB
  • src/app/api/cleanup/route.ts7.2 KB
  • src/app/api/connect/route.ts6.1 KB
  • src/app/api/cron/route.ts14.6 KB
  • src/app/api/debug/route.ts5.8 KB
  • src/app/api/diagnostics/route.ts6.7 KB
  • src/app/api/docs/content/route.ts1.4 KB
  • src/app/api/docs/route.ts464 B

SKILL.md (original)

Review the instructions the agent will receive before you install.

Mission Control Agent Skill

Mission Control (MC) is an AI agent orchestration dashboard with real-time SSE/WebSocket, a skill registry, framework adapters, and RBAC. This skill teaches agents how to interact with MC APIs programmatically.

Quick Start

Base URL: http://localhost:3000 (default Next.js dev) or your deployed host.

Auth header: x-api-key: <your-api-key>

Register + heartbeat in two calls:

# 1. Register
curl -X POST http://localhost:3000/api/adapters \
  -H "Content-Type: application/json" \
  -H "x-api-key: $MC_API_KEY" \
  -d '{
    "framework": "generic",
    "action": "register",
    "payload": { "agentId": "my-agent-01", "name": "My Agent" }
  }'

# 2. Heartbeat (repeat every 5 minutes)
curl -X POST http://localhost:3000/api/adapters \
  -H "Content-Type: application/json" \
  -H "x-api-key: $MC_API_KEY" \
  -d '{
    "framework": "generic",
    "action": "heartbeat",
    "payload": { "agentId": "my-agent-01", "status": "online" }
  }'

Authentication

MC supports two auth methods:

MethodHeaderUse Case
API Keyx-api-key: <key> or Authorization: Bearer <key>Agents, scripts, CI/CD
Session cookieCookie: __Host-mc-session=<token> (HTTPS) or mc-session=<token> (HTTP)Browser UI

Roles (hierarchical): viewer < operator < admin

  • viewer — Read-only access (GET endpoints)
  • operator — Create/update agents, tasks, skills, use adapters
  • admin — Full access including user management

API key auth grants admin role by default. The key is set via API_KEY env var or the security.api_key DB setting.

Agents can identify themselves with the optional X-Agent-Name header for attribution in audit logs.

Agent Lifecycle

register → heartbeat (5m interval) → fetch assignments → report task status → disconnect

All lifecycle actions go through the adapter protocol (POST /api/adapters).

1. Register

{
  "framework": "generic",
  "action": "register",
  "payload": {
    "agentId": "my-agent-01",
    "name": "My Agent",
    "metadata": { "version": "1.0", "capabilities": ["code", "review"] }
  }
}

2. Heartbeat

Send every ~5 minutes to stay marked as online.

{
  "framework": "generic",
  "action": "heartbeat",
  "payload": {
    "agentId": "my-agent-01",
    "status": "online",
    "metrics": { "tasks_completed": 5, "uptime_seconds": 3600 }
  }
}

3. Fetch Assignments

Returns up to 5 pending tasks sorted by priority (critical → low), then due date.

{
  "framework": "generic",
  "action": "assignments",
  "payload": { "agentId": "my-agent-01" }
}

Response:

{
  "assignments": [
    { "taskId": "42", "description": "Fix login bug\nUsers cannot log in with SSO", "priority": 1 }
  ],
  "framework": "generic"
}

4. Report Task Progress

{
  "framework": "generic",
  "action": "report",
  "payload": {
    "taskId": "42",
    "agentId": "my-agent-01",
    "progress": 75,
    "status": "in_progress",
    "output": "Fixed SSO handler, running tests..."
  }
}

status values: in_progress, done, failed, blocked

5. Disconnect

{
  "framework": "generic",
  "action": "disconnect",
  "payload": { "agentId": "my-agent-01" }
}

Core API Reference

Agents — /api/agents

MethodMin RoleDescription
GETviewerList agents. Query: ?status=online&role=dev&limit=50&offset=0
POSToperatorCreate agent. Body: { name, role, status?, config?, template?, session_key?, soul_content? }
PUToperatorUpdate agent. Body: { name, status?, role?, config?, session_key?, soul_content?, last_activity? }

GET response shape:

{
  "agents": [{
    "id": 1, "name": "scout", "role": "researcher", "status": "online",
    "config": {}, "taskStats": { "total": 10, "assigned": 2, "in_progress": 1, "completed": 7 }
  }],
  "total": 1, "page": 1, "limit": 50
}

Tasks — /api/tasks

MethodMin RoleDescription
GETviewerList tasks. Query: ?status=in_progress&assigned_to=scout&priority=high&project_id=1&limit=50&offset=0
POSToperatorCreate task. Body: { title, description?, status?, priority?, assigned_to?, project_id?, tags?, metadata?, due_date?, estimated_hours? }
PUToperatorBulk status update. Body: { tasks: [{ id, status }] }

Priority values: critical, high, medium, low

Status values: inbox, assigned, in_progress, review, done, failed, blocked, cancelled

Note: Moving a task to done via PUT requires an Aegis quality review approval.

POST response:

{
  "task": {
    "id": 42, "title": "Fix login bug", "status": "assigned",
    "priority": "high", "assigned_to": "scout", "ticket_ref": "GEN-001",
    "tags": ["bug"], "metadata": {}
  }
}

Skills — /api/skills

MethodMin RoleDescription
GETviewerList all skills across roots
GET ?mode=content&source=...&name=...viewerRead a skill's SKILL.md content
GET ?mode=check&source=...&name=...viewerRun security check on a skill
POSToperatorCreate/upsert skill. Body: { source, name, content }
PUToperatorUpdate skill content. Body: { source, name, content }
DELETE ?source=...&name=...operatorDelete a skill

Skill sources: user-agents, user-codex, project-agents, project-codex, openclaw

Status — /api/status

ActionMin RoleDescription
GET ?action=overviewviewerSystem status (uptime, memory, disk, sessions)
GET ?action=dashboardviewerAggregated dashboard data with DB stats
GET ?action=gatewayviewerGateway process status and port check
GET ?action=modelsviewerAvailable AI models (catalog + local Ollama)
GET ?action=healthviewerHealth checks (gateway, disk, memory)
GET ?action=capabilitiesviewerFeature flags: gateway reachable, Claude home, subscriptions

Adapters — /api/adapters

MethodMin RoleDescription
GETviewerList available framework adapter names
POSToperatorExecute adapter action (see Agent Lifecycle above)

Framework Adapter Protocol

All agent lifecycle operations use a single endpoint:

POST /api/adapters
Content-Type: application/json
x-api-key: <key>

{
  "framework": "<adapter-name>",
  "action": "<action>",
  "payload": { ... }
}

Available frameworks: generic, openclaw, crewai, langgraph, autogen, claude-sdk

Available actions: register, heartbeat, report, assignments, disconnect

All adapters implement the same FrameworkAdapter interface — choose the one matching your agent framework, or use generic as a universal fallback.

Payload shapes by action:

ActionRequired FieldsOptional Fields
registeragentId, namemetadata
heartbeatagentIdstatus, metrics
reporttaskId, agentIdprogress, status, output
assignmentsagentId—
disconnectagentId—

Environment Variables

VariableDefaultDescription
API_KEY—API key for agent/script authentication
OPENCLAW_GATEWAY_HOST127.0.0.1Gateway host address
OPENCLAW_GATEWAY_PORT18789Gateway port
OPENCLAW_STATE_DIR~/.openclawOpenClaw state directory
OPENCLAW_CONFIG_PATH<state-dir>/openclaw.jsonGateway config file path
MC_CLAUDE_HOME~/.claudeClaude home directory

Real-Time Events

MC broadcasts events via SSE (/api/events) and WebSocket. Key event types:

  • agent.created, agent.updated, agent.status_changed
  • task.created, task.updated, task.status_changed

Subscribe to SSE for live dashboard updates when building integrations.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

Report a problem with this skill