Cerulion gives AI agents a harness to control real robots.
Our open-source runtime and harness give any AI agent a physical body, inside safety limits the robot enforces, and tools to autonomously debug recorded robot failures. It's ROS 2 compatible.
Built on a zero-copy Rust runtime: 4.08 µs round trip at 1 MiB, vs 10,952 µs on ROS 2 Jazzy defaults.One Linux x86-64 desktop, round-trip median at 100 Hz, recording on, Sep 2026. Benchmarks
Your agent asks.The robot checks.
cerulion-rcpd is an MCP server on the robot. Your agent calls only the tools you declare in rcp.yaml. The robot checks argument limits, safety classes and an e-stop latch, and keeps a receipt for every call.
Next release, not v1.0.0. Shown today on a simulated arm. How it works
Debug recorded failures · Flashback
Keep the moments around a failure.
Flashback saves recent robot history as MCAP, on a runtime fault or on demand.
Capture on demand
cerulion flashbackRead the run.See the evidence.
Hindsight (early access) finds the moment.
Studio shows the frame.
MCAP
Hindsight + Studio
Example agent exchange
What happened here?
New code.Same inputs.
Re-run a supported native recording. Exit 1 names the topic that changed.
$ cerulion bag play run.mcap \ --resim all --verifyCompare native outputs
Keep the runin CI.
Supported native recordings, in CI, to the tolerance you set.
$ cerulion bag play run.mcap \ --resim all --verify \ --tolerance tolerance.yamlWhy the harness can stay on
Fast enough to stay safe.
Recording stays on while the robot runs. The zero-copy Rust runtime keeps the median round trip between 4.07 and 4.43 µs from 64 B to 16 MiB.
| Message size | Cerulion multi-process, p50 | ROS 2 Jazzy defaults, p50 |
|---|---|---|
| 64 BControl message | 4.07 µs | 311 µs |
| 1 MiBCamera frame | 4.08 µs | 10,952 µs |
| 16 MiBDense sensor frame | 4.43 µs | 103,854 µs |
About 2,700× faster than ROS 2 Jazzy defaults at 1 MiB (4.08 µs vs 10,952 µs, multi-process p50).
One Linux x86-64 desktop, round-trip median at 100 Hz, recording on, Sep 2026. One machine, not a guarantee. The benchmark times the transport.
Back to the robot.
Bring your agent. ROS 2 Jazzy nodes run on rmw_cerulion today.





