Claude
Skills
Sign in
โ† Back

openclaw-mission-control

Included with Lifetime
$97 forever

Coordinate AI agent teams via a Kanban task board with local JSON storage. Enables multi-agent workflows with a Team Lead assigning work and Worker Agents executing tasks via heartbeat polling. Perfect for building AI agent command centers.

AI Agents

What this skill does


# Mission Control

Coordinate a team of AI agents using a Kanban-style task board with HTTP API.

## Overview

Mission Control lets you run multiple AI agents that collaborate on tasks:

- **Team Lead**: Creates and assigns tasks, reviews completed work
- **Worker Agents**: Poll for tasks via heartbeat, execute work, log progress
- **Kanban Board**: Visual task management at `http://localhost:8080`
- **HTTP API**: Agents interact via REST endpoints
- **Local Storage**: All data stored in JSON files โ€” no external database needed

## Quick Start

### 1. Install the Kanban Board

```bash
# Clone the Mission Control app
git clone https://github.com/0xindiebruh/openclaw-mission-control.git
cd mission-control

# Install dependencies
npm install

# Start the server
npm run dev
```

The board runs at `http://localhost:8080`.

### 2. Configure Your Agents

Edit `lib/config.ts` to define your agent team:

```typescript
export const AGENT_CONFIG = {
  brand: {
    name: "Mission Control",
    subtitle: "AI Agent Command Center",
  },
  agents: [
    {
      id: "lead",
      name: "Lead",
      emoji: "๐ŸŽฏ",
      role: "Team Lead",
      focus: "Strategy, task assignment",
    },
    {
      id: "writer",
      name: "Writer",
      emoji: "โœ๏ธ",
      role: "Content",
      focus: "Blog posts, documentation",
    },
    {
      id: "growth",
      name: "Growth",
      emoji: "๐Ÿš€",
      role: "Marketing",
      focus: "SEO, campaigns",
    },
    {
      id: "dev",
      name: "Dev",
      emoji: "๐Ÿ’ป",
      role: "Engineering",
      focus: "Features, bugs, code",
    },
    {
      id: "ux",
      name: "UX",
      emoji: "๐ŸŽจ",
      role: "Product",
      focus: "Design, activation",
    },
    {
      id: "data",
      name: "Data",
      emoji: "๐Ÿ“Š",
      role: "Analytics",
      focus: "Metrics, reporting",
    },
  ] as const,
};
```

### 3. Seed the Database (First Run)

Initialize the agents in the database:

```bash
curl -X POST http://localhost:8080/api/seed
```

This creates agent records from your `lib/config.ts` configuration. Safe to run multiple times โ€” it only adds missing agents.

### 4. Configure OpenClaw Multi-Agent Mode

Add each agent to your `~/.openclaw/config.json`:

```json
{
  "sessions": {
    "list": [
      {
        "id": "main",
        "default": true,
        "name": "Lead",
        "workspace": "~/.openclaw/workspace"
      },
      {
        "id": "writer",
        "name": "Writer",
        "workspace": "~/.openclaw/workspace-writer",
        "agentDir": "~/.openclaw/agents/writer/agent",
        "heartbeat": {
          "every": "15m"
        }
      },
      {
        "id": "growth",
        "name": "Growth",
        "workspace": "~/.openclaw/workspace-growth",
        "agentDir": "~/.openclaw/agents/growth/agent",
        "heartbeat": {
          "every": "15m"
        }
      },
      {
        "id": "dev",
        "name": "Dev",
        "workspace": "~/.openclaw/workspace-dev",
        "agentDir": "~/.openclaw/agents/dev/agent",
        "heartbeat": {
          "every": "15m"
        }
      }
    ]
  }
}
```

**Key fields:**

- `id`: Unique agent identifier (must match an agent ID in `lib/config.ts`)
- `workspace`: Agent's working directory for files
- `agentDir`: Contains `SOUL.md`, `HEARTBEAT.md`, and agent personality
- `heartbeat.every`: Polling frequency (e.g., `5m`, `15m`, `1h`)

### 5. Set up Agent Heartbeats

Each worker agent needs a `HEARTBEAT.md` in their `agentDir`:

````markdown
# Agent Heartbeat

## Step 1: Check for Tasks

```bash
curl "http://localhost:8080/api/tasks/mine?agent=writer"
```
````

## Step 2: Pick up `todo` tasks

```bash
curl -X POST "http://localhost:8080/api/tasks/{TASK_ID}/pick" \
  -H "Content-Type: application/json" \
  -d '{"agent": "writer"}'
```

## Step 3: Log Progress

```bash
curl -X POST "http://localhost:8080/api/tasks/{TASK_ID}/log" \
  -H "Content-Type: application/json" \
  -d '{"agent": "writer", "action": "progress", "note": "Working on..."}'
```

## Step 4: Complete Tasks

```bash
curl -X POST "http://localhost:8080/api/tasks/{TASK_ID}/complete" \
  -H "Content-Type: application/json" \
  -d '{
    "agent": "writer",
    "note": "Completed! Summary...",
    "deliverables": ["path/to/output.md"]
  }'
```

## Step 5: Check for @Mentions

```bash
curl "http://localhost:8080/api/mentions?agent=writer"
```

Mark as read when done.

````

Create the agent directories:

```bash
mkdir -p ~/.openclaw/agents/{writer,growth,dev,ux,data}/agent
mkdir -p ~/.openclaw/workspace-{writer,growth,dev,ux,data}
````

---

## Task Lifecycle

```
backlog โ†’ todo โ†’ in_progress โ†’ review โ†’ done
   โ”‚        โ”‚         โ”‚           โ”‚
   โ”‚        โ”‚         โ”‚           โ””โ”€ Team Lead approves
   โ”‚        โ”‚         โ””โ”€ Agent completes (โ†’ review)
   โ”‚        โ””โ”€ Agent picks up (โ†’ in_progress)
   โ””โ”€ Team Lead prioritizes (โ†’ todo)
```

---

## Team Lead Operations

### Creating a Task

```bash
curl -X POST http://localhost:8080/api/tasks \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Task title",
    "description": "Detailed description",
    "priority": "high",
    "assignee": "writer",
    "tags": ["tag1", "tag2"],
    "createdBy": "lead"
  }'
```

**Priority:** `urgent`, `high`, `medium`, `low`

### Moving to Todo

```bash
curl -X PATCH "http://localhost:8080/api/tasks/{id}" \
  -H "Content-Type: application/json" \
  -d '{"status": "todo"}'
```

### Approving Completed Work

```bash
curl -X PATCH "http://localhost:8080/api/tasks/{id}" \
  -H "Content-Type: application/json" \
  -d '{"status": "done"}'
```

### Adding Deliverable Path

```bash
curl -X PATCH "http://localhost:8080/api/tasks/{id}" \
  -H "Content-Type: application/json" \
  -d '{"deliverable": "path/to/file.md"}'
```

---

## Worker Agent Operations

### Picking Up Tasks

```bash
curl -X POST "http://localhost:8080/api/tasks/{id}/pick" \
  -H "Content-Type: application/json" \
  -d '{"agent": "{AGENT_ID}"}'
```

### Logging Progress

```bash
curl -X POST "http://localhost:8080/api/tasks/{id}/log" \
  -H "Content-Type: application/json" \
  -d '{
    "agent": "{AGENT_ID}",
    "action": "progress",
    "note": "Updated the widget component"
  }'
```

**Actions:** `picked`, `progress`, `blocked`, `completed`

### Completing a Task

```bash
curl -X POST "http://localhost:8080/api/tasks/{id}/complete" \
  -H "Content-Type: application/json" \
  -d '{
    "agent": "{AGENT_ID}",
    "note": "Completed! Summary of changes...",
    "deliverables": ["docs/api.md", "src/feature.js"]
  }'
```

Deliverables render as markdown in the task view.

---

## Comments & @Mentions

### Adding a Comment

```bash
curl -X POST "http://localhost:8080/api/tasks/{id}/comments" \
  -H "Content-Type: application/json" \
  -d '{
    "author": "agent-id",
    "content": "Hey @other-agent, need your input here"
  }'
```

### Checking for @Mentions

```bash
curl "http://localhost:8080/api/mentions?agent={AGENT_ID}"
```

### Marking Mentions as Read

```bash
curl -X POST "http://localhost:8080/api/mentions/read" \
  -H "Content-Type: application/json" \
  -d '{"agent": "{AGENT_ID}", "all": true}'
```

---

## API Reference

### Tasks

| Endpoint                     | Method | Description              |
| ---------------------------- | ------ | ------------------------ |
| `/api/tasks`                 | GET    | List all tasks           |
| `/api/tasks`                 | POST   | Create new task          |
| `/api/tasks/{id}`            | GET    | Get task detail          |
| `/api/tasks/{id}`            | PATCH  | Update task fields       |
| `/api/tasks/{id}`            | DELETE | Delete task              |
| `/api/tasks/mine?agent={id}` | GET    | Agent's assigned tasks   |
| `/api/tasks/{id}/pick`       | POST   | Agent picks up task      |
| `/api/tasks/{id}/log`        | POST   | Log work action          |
| `/api/tasks/{id}/complete`   | POST   | Complete task (โ†’ review) |
| `/api/tasks/{id}/comments`   | POST   | Add comment              |

### Age
Files: 5
Size: 16.3 KB
Complexity: 25/100
Category: AI Agents

Related in AI Agents