Color-coded ROS 2 output — because a wall of white text from 32 nodes is nobody's debugging tool.
You launched your stack. Nav2, SLAM, hardware drivers, your own nodes — all printing to the same terminal, all the same color. By the time you find the line you were looking for, it has scrolled past.
DendROS assigns each group of nodes its own color. You could have localization in blue, navigation in green, hardware in orange — defined once in a small YAML file that lives inside your package. No launch file edits. No new ROS 2 dependencies. Packages without a config pass through completely unchanged. It also features some quality of life improvements for ROS outputs.
- One config file per package maps node groups to colors, badges, and display rules
-
ros2 node list,ros2 node info,ros2 service list,ros2 action list,ros2 topic list,ros2 param list, andros2 param describe— all colorized with the same group colors and badges, no extra config required. → Full feature list -
Too lazy to look up how DendROS config works? We got you covered:
dendros initscans your launch files and generates an initial config for you
- An inline banner flags crashed nodes the moment they die, lists the exit code, and repeats periodically so you don't miss it in fast-scrolling output
- Python tracebacks are colored automatically: bold red for the header and exception line, dim red for the frames; configurable per session
- Mark specific words or patterns in bold or in a custom color — per group, or package-wide.
-
When a node's parameter changes at runtime — via
ros2 param setor any parameter service client — an inline notification appears in the launch terminal showing the node, parameter name, and old→new value. Two styles: compact inline and a full-width inverted block that's hard to miss in busy logs.
- Shell-level pipe; you won't loose autocompletion or aliases for launch files
- Host install, Docker, any ROS 2 distribution
git clone https://github.com/mlisi1/DendROS
cd DendROS && bash install.sh && source ~/.bashrcGo to your bringup launch file package (or any package containing launch files) and run dendros init to generate an initial config file listing the nodes called in the launch file. You can use --recursive (or -r) to include nodes called by nested launch files.
cd ~/ros2_ws/src/my_bringup
dendros init # scan your launch files → write config/dendROS.yamlEdit the colors in the generated config, then build and launch as usual:
colcon build --packages-select my_bringup
source install/setup.bash
ros2 launch my_bringup main.launch.pyIf you want to customize the global configs, dendros config opens an interactive TUI to tune defaults across all your packages. Use the arrow keys to navigate or to change the selected option.
MIT — see LICENSE.









