Skip to content

DendROS

DendROS logo

Colorized ROS 2 terminal output.


Colored Terminal Output

Colored terminal output

DendROS shadows the ros2 command with a shell function. When you run ros2 launch or ros2 run, the output is piped through a lightweight Python colorizer that reads a small YAML config from your package, matches the [node-N] prefix on each line, and applies group colors. Every other ros2 subcommand passes through unchanged. Packages without a config are completely unaffected β€” no changes to launch files, no exit-code clobbering, no buffering.


Features

🎨

Group-based coloring

Assign colors to logical groups β€” localization, navigation, hardware. Every node in a group shares its color and badge label.

πŸ”

Smart node matching

Exact names, namespaced paths, and fnmatch wildcards. nav2_* covers every Nav2 node in one pattern.

πŸ› οΈ

Scaffold in one command

dendros init scans your launch files and writes a ready-to-edit dendROS.yaml automatically.

βš™οΈ

Interactive config TUI

dendros config opens a curses TUI for managing global defaults β€” no YAML editing required.

🚨

Crash alert

Inline banner flags crashed nodes the moment they die, lists exit codes, and reprints periodically so you never miss it.

πŸ”΄

Traceback highlighting

Python tracebacks colored automatically β€” bold red header, dim red frames, even when prefixed with a node name.

πŸ–₯️

All ros2 CLI commands wrapped

Node list, node info, service list, action list, topic list, param list, param describe β€” all colorized with the same group colors and badges, zero config overhead. [See all β†’](reference.md#ros2--intercepted-subcommands)

πŸ””

Parameter change alert

Inline notification whenever a node's parameter changes at runtime — shows node, param name, and old→new value directly in the launch log.

🚫

Truly non-invasive

No launch file changes. Exit codes preserved. DENDROS_DISABLE=1 bypasses everything instantly.


Quick start

git clone https://github.com/mlisi1/DendROS
cd DendROS && bash install.sh && source ~/.bashrc
cd ~/ros2_ws/src/my_bringup
dendros init --recursive --labels
colcon build --packages-select my_bringup
source install/setup.bash
ros2 launch my_bringup main.launch.py

See Installation for the full setup or Quick Start for a step-by-step walkthrough.