0xindiebruh/openclaw-mission-control-skill5 files

Openclaw Mission Control

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.

Specification
Skill ID
0xindiebruh/openclaw-mission-control-skill/openclaw-mission-control
Publisher
0xindiebruh
Repository
openclaw-mission-control-skill
Installs
0
Files
5
Synced
Sep 23, 2026
How to use it

Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.

0xindiebruh/openclaw-mission-control-skill/openclaw-mission-controlInstalls these files
  • LICENSE
  • SKILL.md
  • examples/agent-SOUL.md
  • examples/lead-HEARTBEAT.md
  • examples/worker-HEARTBEAT.md

What this skill tells the agent

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

# 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:

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:

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:

{
  "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:

# Agent Heartbeat

## Step 1: Check for Tasks

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

Step 2: Pick up todo tasks

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

Step 3: Log Progress

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

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

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

Mark as read when done.


Create the agent directories:

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

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

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


### Approving Completed Work

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


### Adding Deliverable Path

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

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


### Logging Progress

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

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

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

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


### Marking Mentions as Read

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              |

Use this skill in a project

Open any RiverX project, search the Skills panel for 0xindiebruh/openclaw-mission-control-skill/openclaw-mission-control, and install it in one click.

Use this skill