Skip to main content
The Cerulion lion at a DJ-style control panel with LIVE camera icons β€” broadcasting topics
While a graph runs, every wired port becomes a topic you can observe. This guide covers listing and watching live topics, the interactive dashboard, and reading trace bag files after a run.
The topic commands use iceoryx2 service discovery, so they work from any directory, no workspace required. Run them in a second terminal while a graph is running.

List and inspect live topics

cerulion topic list enumerates active topics, sorted by name.
cerulion topic list
TOPIC
perception/camera/image
perception/detector/detections
If nothing is publishing, it prints No active topics. cerulion topic info <topic> prints details for a single topic:
cerulion topic info perception/camera/image

Watch messages with echo

cerulion topic echo <topic> subscribes and prints each message until you press Ctrl+C.
cerulion topic echo perception/camera/image
Echo pretty-prints std_msgs/String and sensor_msgs/Image messages (identified by their schema hash). For any other schema, it prints a hex preview of the payload.

Measure publish rate

cerulion topic hz <topic> measures how often a topic publishes, until Ctrl+C.
cerulion topic hz perception/camera/image
For the periodic camera created with --policy period_ms=33, topic hz should report roughly 30 Hz.

Open the interactive dashboard

cerulion tui launches an interactive terminal dashboard. Logging is suppressed while the TUI is open.
cerulion tui

Inspect recorded traces

cerulion trace inspect <dir> reads trace_*.jsonl bag files from a directory (in lexicographic order) and prints one line per record:
<topic> seq=<N> t=<ts>ns schema=0x<HASH>
FlagValueEffect
-t / --filterTOPICShow only records for this exact topic.
-n / --limitNPrint at most N records.
-r / --reverseNoneReverse order (most recent first).
cerulion trace inspect ./traces -t perception/camera/image -n 20 -r
Tracing is built into the runtime: every graph run automatically produces trace_*.jsonl bag files via the publish trace, so there’s nothing extra to start or configure. cerulion trace inspect reads those bags afterward.

Clean up stale services

iceoryx2 keeps on-disk bookkeeping for each node. When a graph’s topology changes between runs, stale entries from dead nodes can cause discovery errors. cerulion clean removes bookkeeping for dead nodes only; live sibling processes are left untouched. It prints cleanup counts and per-cause remediation.
cerulion clean
Run cerulion clean if you rewire a graph and then see stale-service errors on the next graph run. It will not disturb a graph that is currently running.

Next steps

Wire and run a graph

Produce the topics you inspect here.

Messages and schemas

Understand the message shapes that echo prints.