MISSION
✕
POLICY— code it, or just describe it and RUN compiles✕
loading editor…
STATUS✕
⏱ 0.0s
behaviors: searching…
cmd —
room —
odometer 0.0 m
x 0.0 · z 0.0
ROBOT MAP— lidar + found objects✕
VIEW
✕
VIEW
✕
RUNS— recorded attempts, stored in this browser✕

# ROBORUN ARENA

Code a robot in Python, right here. Beat the chamber. The same file drives a real robot.

01 · WRITEa ~10-line policy against pose / lidar / see / move — or just press RUN, a starter is loaded
02 · WATCHit drives the robot at 10 Hz through real physics — camera, lidar cloud, live map
03 · SHIP roborun connect <robot-ip> runs the same file on a Go2, a drone, anything ROS

Pick a robot, pick a task. Grab the wheel anytime with WASD (counts as practice, not autonomous).

your policy is real python on a real robot handle — the same code drives ROS 1/2 robots · every run is a merkle-sealed recording

## CONNECT YOUR AGENT

This is the hosted arena — policies run as real roborun python in your browser, and runs are merkle-sealed locally. MCP agents and the ✨ mission compiler need the local install:

    pip install ros-agent
    roborun        # then open http://localhost:8765/arena — same page, full stack

The game's MCP endpoint is this server: http://localhost:8765/mcp. Click any block to copy. Then just ask your agent to beat the chamber.

### CLAUDE CODE

    claude mcp add --transport http roborun http://localhost:8765/mcp

### CODEX CLI

    codex mcp add roborun -- npx -y mcp-remote http://localhost:8765/mcp

### CLAUDE DESKTOP / OTHER MCP CLIENTS (config json)

    { "mcpServers": { "roborun": {
        "command": "npx", "args": ["-y", "mcp-remote", "http://localhost:8765/mcp"] } } }

### THEN SAY

    Beat the current RoboRun arena chamber: call arena_status for the goal,
    use see to learn the labels, then write_behavior a policy named
    player_policy and poll arena_status until won. No teleop.

Heads-up: use this HTTP endpoint while the server is running — the standalone roborun-mcp stdio command is for driving robots without the deck and can't see this arena.

## DRIVE A REAL ROBOT

The policy that beats a chamber is a file, and the file is the product: the same pose() / lidar() / see() / move() handle drives hardware. Point roborun at the robot once; every later plain roborun reconnects automatically.

    pip install ros-agent
    roborun connect 192.168.1.42   # rosbridge on the robot — prints the exact
                                   # two setup lines to run there if it's missing
    roborun                        # deck + arena + your behaviors, now on hardware

Works with Unitree Go2/G1, TurtleBot, drones (MAVLink), anything with rosbridge or DDS — no ROS install on your machine. roborun connect --scan does DDS discovery when rosbridge isn't allowed.

# CHAMBER COMPLETE

sealing run…
open the sealed run in the deck →
view all recorded attempts → RUNS
drag headers · resize corners · ⌘⏎ run · L lidar cloud · C main camera · N level · WASD takes over anytime (practice run) · deck