-
Notifications
You must be signed in to change notification settings - Fork 0
Adding a Cursor seat
Describes robot-council/cli v0.4.28, and one Cursor seat added on macOS on 2026-09-25 (#308).
A Cursor seat takes six steps. Each block lives in the README, so this page gives the order and links to the block rather than copying it.
A Cursor seat cannot be woken. Only Claude Code reads the channel a bridge wakes an idle agent through (#197), so a Cursor agent takes fleet work only on a turn its operator starts. The stop hook then hands over what is waiting when that turn ends (What a seat receives).
-
Enroll the machine as
cursor, in your own terminal, with the--machine-labelthe machine's other harnesses already use:robot-council enroll --service=<fleet> --harness=cursor --machine-label=<the same label>. A credential belongs to one harness, so a machine with Claude Code already enrolled enrolls again for Cursor. Two harnesses given different labels appear as two machines (Getting a machine onto a fleet). -
Add the bridge to the global
~/.cursor/mcp.json, withROBOT_COUNCIL_HARNESSset tocursorin itsenv(Wiring the bridge into a harness: Cursor). Naming the harness matters more for Cursor than for Claude Code, because whether the editor exports the variable detection reads has not been measured. -
Make a Cursor copy of the stop-hook script, with
ROBOT_COUNCIL_HARNESS=cursorin it (The script every harness runs). A copy set toclaudereads the Claude Code sink and reports a quiet fleet. -
Point
~/.cursor/hooks.jsonat that copy, withloop_limitset (Handing fleet events to an agent: Cursor). Cursor's payload has nostop_hook_active, so the script delivers on every continuation, andloop_limitis what bounds it. On Windows the entry names a.cmdshim that runs Git Bash on the script. -
Treat one Cursor application as one seat. Cursor runs one bridge for the whole application, whatever windows and chats are open, in the home folder, and runs its stop hook in
~/.cursor(measured on Cursor 3.17.19, #327). So a Cursor seat is the application, not a chat: it joins as one fleet session, and its sink is keyed without a checkout (v0.4.28). Use v0.4.28 or later: from v0.4.23 until then, the hook and the bridge computed different sinks, and a Cursor seat received nothing. -
Ask the agent to join the fleet, then run the checks on Checking a seat is healthy. The
channelandstop hook foundrows there are Claude Code only.
If php comes from a user-level install on macOS, such as Laravel Herd, a Cursor launched from the Dock may not inherit it on its PATH. The README's Cursor wiring section has the precaution. Whether it is needed is unmeasured.
On 2026-09-25, a Cursor seat on macOS arm64, with cli v0.4.23, joined the fleet as expected. The fleet listed it as a new session under a separate cursor installation for the machine, working in a linked worktree (#308).
Not tested in that run:
- whether the stop hook delivered to that seat, or ran in the checkout's folder;
- whether the
PATHprecaution was needed; - the Cursor version.
The Cursor seat measured on Windows 11 is recorded in the README's Cursor wiring section: Cursor 3.7.21, 2026-09-21.