Skip to main content
cadenza.connect(...) wires two or more robots into a single coordination terminal so they can talk to each other and share one human goal. It reuses each robot’s user-facing narration channel for robot↔robot messages, routed through a FastMCP server under the hood.
FastMCP is an optional extra. Install it with pip install "cadenza-lab[mcp]".

connect()

Pass the robot controllers you want to link. The returned CoordinationTerminal is a context manager (it owns the MCP server for the session); each robot passed in gains a .comm link.

Robot-to-robot messaging

Each connected robot exposes a .comm link:

Splitting one goal across robots

term.coordinate(goal) takes a single human goal and splits it into per-robot subgoals, then delegates each over the MCP. Routing is by explicit target (name a robot in the goal), then capability (match the subtask to what each robot can do), then round-robin.
Set route_by_capability=False to fall back to simple round-robin assignment.

Demo: two robots, one goal

Drive each robot

The go1 / g1 / arm controllers each robot in the terminal drives.