Splinter is a Terminal User Interface (TUI) for ROS2. It provides a keyboard-driven way to interact with ROS2 topics and nodes from your terminal.
Browse topics using fuzzy search, select a topic to inspect its message fields, and add fields to a live plot.
Browse topics using fuzzy search, select a topic to inspect its message fields, and add fields to a state graph.
Fill in a message field by field using arrow keys or j/k, edit values in place, and publish with p.
Navigate to a node, pick one of its services, edit the request fields, and call the service.
| Category | Features |
|---|---|
| Topics | List, publish, echo, and monitor message frequency |
| Nodes | List active nodes |
| Plots | Multi-line plots, frequency plots |
-
Download the latest release
See https://github.com/TonyWelte/splinter/releases -
Install the .deb archive
sudo apt-get install ./splinter_VERSION.deb
-
Run splinter
splinter
-
Set up ros2_rust
Follow the installation instructions forros2_rust. -
Clone the Splinter repository
git clone https://github.com/TonyWelte/splinter.git
-
Build the project
colcon build --packages-up-to splinter
-
Run splinter
ros2 run splinter splinter
| Feature | Notes |
|---|---|
| New Plots: Delay plot | Visualize message delays |
| New Plots: Bitrate plot | Monitor topic bandwidth |
| Message Widget: Folding | Collapse/expand message sections |
| Parameters (Set List) |
| Feature | Notes |
|---|---|
| MCAP Reader | Navigate and visualize MCAP files |
| New Connections: Foxglove bridge | - |
| New Connections: Rosbridge | - |
| New Connections: Multi-connection support | Multiple ROS_DOMAIN_ID simultaneously |
| Grid layout | Customizable widget layouts |
I picked Rust to learn the language, period. Is it a good choice for this project? Absolutely not.
If you’re writing a TUI for ROS2, use Python. Save yourself the trouble.
Don’t get me wrong, Rust is a fantastic language. But wrestling with static types for a tool that has to handle messages whose types are only known at runtime? That’s just masochism.
Splinter is named after the wise rat sensei from Teenage Mutant Ninja Turtles. It's a nod to both the TUI library Ratatui (symbolized by a rat) and ROS2 (symbolized by turtles).



