Skip to content
Development
Skill

/cm-dashboard

Track and manage tasks across multiple AI coding agents (Codex, Google Antigravity, Cursor, Gemini CLI, Claude Code) through the Mission Control web UI at http://localhost:6969. Use when you need a visual kanban for multi-agent work, dispatching tasks, monitoring agent activity,

From plugin
cm
5362 skills8 agents11 commands3 hooks
+1
Install
$ npx -y skills add tody-agent/codymaster --skill cm-dashboard --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/cm-dashboard

Context preview

The summary Claude sees to decide when to auto-load this skill.

Track and manage tasks across multiple AI coding agents (Codex, Google Antigravity, Cursor, Gemini CLI, Claude Code) through the Mission Control web UI at http://localhost:6969. Use when you need a visual kanban for multi-agent work, dispatching tasks, monitoring agent activity,

SKILL.md

cm-dashboard.SKILL.md
name: cm-dashboard
description: Track and manage tasks across multiple AI coding agents (Codex, Google Antigravity, Cursor, Gemini CLI, Claude Code) through the Mission Control web UI at http://localhost:6969. Use when you need a visual kanban for multi-agent work, dispatching tasks, monitoring agent activity, or syncing task state from a CLI agent.

cm-dashboard — Multi-Agent Mission Control

> Visual + API control plane for tasks dispatched to **Codex, Google Antigravity, Cursor, Gemini CLI, and Claude Code**. Runs locally at **http://localhost:6969**.

When to use

  • You are juggling work across multiple AI coding agents and need one source of truth.
  • You want a kanban (`backlog → in-progress → review → done`) per project.
  • You need to dispatch a task to a specific agent and capture its progress.
  • A CLI agent (Codex, Gemini, etc.) needs to report its conversation lifecycle to a shared board.

Supported agents

| ID | Display name | Skill prefix | |----------------|---------------------|--------------| | `codex` | OpenAI Codex | `/` | | `antigravity` | Google Antigravity | `@[/...]` | | `cursor` | Cursor | `@` | | `gemini-cli` | Gemini CLI | `@[/...]` | | `claude-code` | Claude Code | `/` |

(Also: `windsurf`, `cline`, `copilot`, `manual`.)

Quick start

# 1. Start the dashboard (auto-starts on first cm command, or run explicitly)
cm dashboard         # opens http://localhost:6969

# 2. Health-check
curl -s http://localhost:6969/api/projects | jq

Core workflows

A. Create + dispatch a task to an agent

# Create
TASK_ID=$(curl -s -X POST http://localhost:6969/api/tasks \
  -H "Content-Type: application/json" \
  -d '{"title":"Refactor auth middleware","agent":"codex","skill":"cm-execution","priority":"high"}' \
  | jq -r .id)

# Dispatch (writes .agent-tasks/<id>-*.agent-task.md inside the project)
curl -s -X POST http://localhost:6969/api/tasks/$TASK_ID/dispatch | jq

The dispatcher emits a per-agent CLI command:

  • `codex --task "<file>"`
  • `antigravity -p "$(cat <file>)"`
  • `cursor --task "<file>"`
  • `gemini run --task "<file>"`
  • `claude --task "<file>"`

B. Move a task across columns

curl -s -X PUT http://localhost:6969/api/tasks/$TASK_ID/move \
  -H "Content-Type: application/json" \
  -d '{"column":"in-progress"}'   # backlog | in-progress | review | done

C. Auto-sync from an agent conversation

Use this from a running Codex/Gemini/Cursor/Antigravity session to report status — upserts by `conversationId`.

curl -s -X POST http://localhost:6969/api/tasks/auto-sync \
  -H "Content-Type: application/json" \
  -d '{
    "conversationId":"codex-2026-05-11-001",
    "title":"Refactor auth middleware",
    "status":"in-progress",
    "agent":"codex",
    "skill":"cm-execution"
  }'

Status values map to columns: `pending|todo` → backlog, `started|active|in-progress|idle` → in-progress, `review` → review, `completed|done` → done.

D. Get agent suggestions for a skill

curl -s 'http://localhost:6969/api/agents/suggest?skill=cm-debugging' | jq
# → { skill, domain, agents: ["claude-code","codex","cursor","antigravity"] }

E. Live activity & per-agent badges

The web UI shows:

  • **Agent badges** with color + task count per agent (Codex teal, Antigravity green, Cursor blue, Gemini gold, Claude purple).
  • **Active Agents** sidebar — currently working on `in-progress` tasks.
  • **Activity feed** — task created/moved/dispatched/transitioned events in real time (WebSocket).

API reference (most-used)

| Method | Path | Purpose | |--------|---------------------------------------|--------------------------------------| | GET | `/api/projects` | List projects with task counts | | POST | `/api/projects` | Create project | | GET | `/api/tasks?projectId=…` | List tasks (optionally per project) | | POST | `/api/tasks` | Create task (`agent`, `skill`, …) | | POST | `/api/tasks/sync` | Bulk import tasks from an agent | | POST | `/api/tasks/auto-sync` | Upsert by `conversationId` | | PUT | `/api/tasks/:id/move` | Move to column | | POST | `/api/tasks/:id/dispatch` | Write `.agent-tasks/*.md` for agent | | GET | `/api/agents/suggest?skill=…` | Best agents for a skill domain | | GET | `/api/judge/suggestions?projectId=…` | Auto-transition recommendations |

Full surface: see [src/dashboard.ts](file:///Volumes/Data/Coder/codymaster/Cody_Master/src/dashboard.ts).

Recommended per-agent usage

| Domain | Best fit | |-------------------------------------|-----------------------| | Engineering / refactor / debugging | Claude Code, Codex | | Long-context architecture & docs | Antigravity, Gemini | | Inline edits / IDE-driven | Cursor | | Quick CLI prompts / shell tasks | Gemini CLI, Codex |

Troubleshooting

  • **`{"error":"not found"}`** — endpoint typo; check the table above. The fallback returns 404 for any unknown `/api/*`.
  • **Port 6969 already in use** — another dashboard is running. `lsof -i :6969` to find it.
  • **`NO_AGENT` on dispatch** — task has no `agent` set; `PUT /api/tasks/:id` with `{"agent":"codex"}` first.
  • **`NO_PROJECT_PATH`** — set the project's `path` so dispatch can write into `.agent-tasks/`.

Files of authority

  • [src/dashboard.ts](file:///Volumes/Data/Coder/codymaster/Cody_Master/src/dashboard.ts) — HTTP API
  • [src/agent-dispatch.ts](file:///Volumes/Data/Coder/codymaster/Cody_Master/src/agent-dispatch.ts) — per-agent file + CLI generation
  • [src/judge.ts](file:///Volum
Read more
Ships withcm

"I can't write code. But in 6 months, I shipped 12 real products using AI. CodyMaster is everything I learned — so you don't have to repeat my mistakes." — Tody Le, Head of Product, Creator of CodyMaster 50+ skills. One install.

Get the whole plugin

Other skills on cm.