Skill · MCP · Local UI · MIT

One skill to start,
two sessions in sync

Run coord-setup in Cursor — MCP starts the hub, you configure roles and tasks in a local UI, then copy generated /loop prompts into Session A and B.

End-to-end flow

The hub still handles cross-session wake via long-poll. Skill and UI handle everything before the loop starts.

  1. 1

    Trigger coord-setup skill

    In any Cursor chat, ask the agent to set up A/B coordination.

  2. 2

    MCP starts the hub

    Skill calls MCP coord_start — hub listens on 127.0.0.1:9900.

  3. 3

    Open the config UI

    Skill returns a link. Pick a template, edit A/B goals, set task and branch.

  4. 4

    Generate & copy prompts

    UI writes profile to hub, renders short /loop dynamic prompts for each role.

  5. 5

    Paste into Session B, then A

    Start B first, then A. Watchers wake each session when the other signals.

You
coord-setup skill
Config UI
Copy prompts
Runtime
MCP
:9900 Coord Hub
Sessions
Session A
Session B

Setup UI preview

Interactive mock of the hub config page. In production this lives at GET /ui on the running hub.

Preview mode — not connected to hub

A Role A

B Role B

Runtime task

Start Session B first, paste its prompt, then Session A.

B reviewer

            
A builder

            
Profile JSON (POST /profile)

          
🧩

Custom roles

Profile + workflow template + runtime task — dev/review is just one preset.

Skill entry

coord-setup starts MCP, opens UI, guides you through config.

📋

Short prompts

Agents read /profile and /state — rules live on the hub, not in chat.

🔁

/loop wake

Background curl /wait/<role> still bridges sessions after setup.

Architecture

Each layer has a single job. Skill guides, MCP operates, UI configures, hub coordinates, sessions execute.

Skill

coord-setup

  • Call MCP to start/stop hub
  • Return UI link to user
  • Explain paste order (B then A)
MCP

coord_* tools

  • coord_start · coord_stop
  • coord_state · coord_reset
  • coord_signal · coord_profile
UI

GET /ui

  • Template picker + role editor
  • Task, branch, constraints
  • Generate → GET /prompt/A|B
Hub

coord-hub.py

  • /wait/A · /wait/B
  • /signal · /state
  • /profile · /reset