network: block, or turn it off for a run.
Local transport is unaffected by any of this: nodes on the same machine always talk through zero-copy shared memory.
What a run resolves to
Evaluated in this order:
Recording keeps the network on, so a robot stays viewable while it records.
Restrict what leaves the machine
Thenetwork: block is a tightening, not an on-switch. Declaring one puts the run in strict mode.
Validation refuses each mistake by name — a topic in both lists, an
egress topic nobody produces, an ingress topic this graph already produces, a relative topic name, or a non-empty list under mode: disabled. Empty lists under peer are valid: that is an export-restricted robot.
--record together with a block that declares ingress: is refused, because recorded ingress re-injection is not yet replay-faithful. Record without the ingress bridge, or run without --record.Find robots on the network
cerulion topic list prints local topics instantly, then discovers robots and their topics over the LAN.
TOPIC section prints first and instantly, so a slow network never delays it. A ROBOTS section then lists each robot found, its visible-topic count, and its locator, followed by REMOTE TOPICS — every topic a networked robot is advertising or asking for:
The remote half is best-effort and bounded to a few seconds. A discovery failure is a loud note and still exits 0, since the local list already printed.
Pull a robot’s topics to your desk
cerulion connect demands topics from a robot and re-injects them into your machine’s shared memory, so every local tool sees them as ordinary topics.
connect and pair are the two commands that need the cerulion-connectd
sibling binary. The install script places it beside cerulion for you; a
cargo install does not, because it is not published to crates.io. See
Installation if these commands cannot find it.Pair with the robot once
name → endpoint locally so cerulion connect lab-go2 works with no flags afterwards. Your desk key is created once and never overwritten.Exit codes are stable for scripting: 0 paired, 2 the robot refused, 3 unreachable, 4 wrong code.See the catalog
--topic and no --all, connect prints the robot’s catalog and demands nothing.Demand the topics you want
--all demands the whole catalog. Demand only what you need: every demanded topic is real traffic over the link.Manage the machines on your account
login prints a short code and a verification URL and waits while you authorize it in a browser — the page at app.cerulion.com where you enter the code. Any command that needs an identity triggers login for you. Robot access management itself lives in Cerulion Studio and the web account page, not the CLI — account devices is for your own desks.
Next steps
Visualize a running graph
Watch local or remote topics on the Studio stage.
Bridge a ROS 2 system
Attach to an existing DDS graph.