Open-source robot runtime
Cerulion is the operating system for physical AI.
An open-source, zero-copy robot runtime that records runs, replays failures against new code, and reaches your robots from anywhere. It’s ROS 2 compatible.

What Cerulion is
Cerulion is an open-source Rust runtime for robots and real-time systems. You compose your application as a graph of nodes that pass messages over zero-copy shared memory, and you build, wire, and run the whole thing through one CLI:cerulion.
Nodes on one machine exchange messages through shared memory, with no
serialization on the local path. In internal benchmarks on one x86-64 Linux
desktop, a 1 MiB round trip with the default multi-process layout has a median
of 4.08 µs, close to the 2.48 µs of raw iceoryx2 shared memory; see the
benchmark results.
A run records to a standard MCAP bag, and
cerulion bag play <bag> --resim all --verify re-runs a supported recording
against your current node builds and compares the outputs. Flashback saves the
moments around a failure from a rolling in-memory window. A robot’s topics are
readable from any computer signed in to the same account, on one LAN or across
networks.
The CLI and runtime are open source
under AGPL-3.0-only, with a commercial license available.
Install the CLI and run the quickstart.
Why teams use it
Zero-copy pub/sub
Nodes exchange messages over iceoryx2 shared memory. Reads and writes go
straight to the payload, with no serialization on the local hot path.
Record and re-execute
Record a live run to a standard MCAP bag, then re-run your current node
builds against it and see which outputs changed.
Flashback
Save the moments around a failure from a rolling in-memory window, on
request or when the runtime detects a fault.
Trigger policies
Decide when each node fires (periodic, data-triggered, synchronized, or
external) with per-node tick deadlines that warn loudly when missed.
Ergonomic node API
Define a node as a Rust struct with
#[cerulion_node]. Field attributes
declare ports; the macro rewrites self.<port> access into zero-copy
shared-memory reads and writes for you.Fault isolation by default
On Linux and macOS a live graph runs as separate worker processes. A crash
is contained to its own process, and the surviving workers keep running,
degraded, by default.
Works with ROS 2
254 built-in ROS 2 message types.
rmw_cerulion runs ROS 2 nodes on
Cerulion’s transport, tested on Foxy, Galactic, Humble, Jazzy and Lyrical,
and cerulion ros2 attach bridges an existing DDS robot’s topics into a
Cerulion graph.Your robots from your desk
Sign the robot and your computer in to the same account, and read its
topics from your desk, on one LAN or across networks.
Start here
Installation
Set up the Rust toolchain, get the
cerulion CLI, and verify it works.Quickstart
Build and run a complete two-node graph, then watch its messages with
topic echo.Concepts
Learn the mental model: workspaces, nodes, graphs, topics, and schemas.
Hindsight and the hosted MCP server
The runtime is open source. Hindsight and the hosted MCP server are closed source and in early access: book 30 minutes with us to get access.Hindsight
Early access. Point it at a recording and find the moment the run went
sideways, with every claim cited to a topic and timestamp.
Connect an MCP client
Early access. Give your coding agent tools that analyze MCAP recordings
served over HTTPS. Build and run your workspace with the
cerulion CLI.Build with the community
