Package Summary
| Version | 1.1.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | Color-coded terminal output for ROS 2 — group nodes by color, highlight crashes and tracebacks, zero changes to your launch files or workflow. |
| Checkout URI | https://github.com/mlisi1/DendROS.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-12 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Michele Lisi
Authors
- Michele Lisi
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.
Vanilla ros2 launch
|
With DendROS |
|---|---|
![]() |
![]() |
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.
And since 1.1, ros2 launch opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running.
New in 1.1: TUI mode
ros2 launch now opens in a full-screen log viewer:
- Scroll back and copy — the whole run stays in the scrollback; drag with the mouse to copy. Crash and parameter alerts stay pinned in the header.
-
Filter and search with
\—focuson some nodes, filter bylevelorgrep,findtext and step through the matches,mutethe noisy ones. Filters stack, andEscpeels them off one at a time. -
markandtee— drop a timestamped marker before you poke the robot, then save exactly what you see to a file for the bug report. -
Drive it from another terminal —
dendros focus planner_server,dendros grep timeout, … reach the running launch, so you don’t have to switch panes. -
dendros reopen— closed it too early? Bring back the last run, scrollback and all.
It falls back to the classic output on its own when the output is piped or redirected, so scripts and CI are not affected. Prefer the plain scrolling output? Set launch_mode: classic. → TUI Mode · → Console commands
Features
-
Color by group
One config file per package maps node groups to colors, badges, and display rules. Wildcards cover whole families of nodes (
nav2_*), and keywords can be highlighted per group or package-wide.
-
One command to get started
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.
-
The main
ros2CLI commands, colorizedros2 node list,node info,topic list,service list,action list,param listandparam describeuse the same group colors and badges, with no extra config. → Full list
-
Crashes, tracebacks and parameter changes
A banner flags crashed nodes the moment they die and lists the exit code. Python tracebacks are colored automatically. When a parameter changes at runtime, a notice shows the node, the parameter and old → new value.
<img align=”right” src=”docs/assets/images/dendrobate.png”
File truncated at 100 lines see the full file
Changelog
All notable changes to DendROS are listed here, newest first. The format follows Keep a Changelog and the project uses Semantic Versioning.
1.1.0 - 2026-10-12
The headline of this release is TUI mode: ros2 launch now opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running. It is the new default; set launch_mode: classic to keep the 1.0 output.
Added
TUI mode (launch_mode: tui, the default, for ros2 launch) — docs
- Full-screen log viewer with scrollback (
tui_scrollback_lines, default 5000), line wrapping, a scrollbar and resize support. - Mouse wheel scrolling, and click-and-drag selection that copies to the clipboard through OSC 52 and
xclip/xsel/wl-copy. - Crash and parameter-change alerts stay pinned in the header instead of scrolling away.
- Falls back to classic output automatically when the output is piped or redirected, or when the terminal can’t run it.
Console commands (press \ in TUI mode) — docs
-
focus <node>...shows only the listed nodes. It matches the process name or the ROS logger name, so components inside a container can be focused one by one. -
level <lvl>shows lines at a severity or worse. Tracebacks and other lines without a level always stay visible. -
grep <text>is a live text filter with the matches highlighted. -
find <text>searches the scrollback; Tab and Shift+Tab step through the matches. -
mute <node>andunmute <node|all>hide and restore noisy nodes. -
mark [label]inserts a timestamped separator line. -
tee <file> [-c] [-a]saves the lines currently shown to a file, optionally with colors or appending. -
clearremoves every filter and mute;helplists every command and key. - Filters combine, and Esc removes the most recent one at a time.
- Tab completion for commands, node names and levels, and Up/Down command history.
Remote control and reopen — docs
-
dendros focus,find,grep,level,mute,unmute,mark,teeandclearsend the same commands to a running TUI from another terminal. -
dendros reopenreopens the last TUI run of the current terminal after it has ended, with its full scrollback.
Runtime control — docs
-
dendros disableanddendros enableswitch DendROS off and on in every terminal, including launches that are already running, without restarting them.
Output options
-
show_timestampandshow_logger_namehide the[timestamp]and[logger]brackets of node log lines for a terser output. Both can be set globally or per package. -
ignore_boldstrips bold from every color, for terminals that brighten bold text but not backgrounds and so show a badge in a different shade than its node’s text.
Other
- A
package.xml, so the repository can be indexed as a ROS package. - Documentation: new pages for TUI mode, console commands, remote control, enable and disable, troubleshooting and a ROS 2 CLI overview. Every screenshot was redone, and each console command has a short recording.
Changed
-
ros2 launchopens in the TUI viewer by default (launch_mode: tui).ros2 run, piped or redirected output, and every other command are unchanged. -
dendros configgroups its settings into tabs (Output, CLI, Unmatched, System, Diagnostics, Param Alerts, Init) instead of one long list. -
dendros initmust be run from the package root, the folder that containspackage.xml. From a subfolder it tells you where to run it instead of guessing. -
dendros initwrites nothing when it finds no nodes. Previously it created an empty config and patched the build files anyway. -
dendros initcolors its warnings yellow and its errors red, like ROS 2 does. - The
[dendROS]tag uses the same brand blue and orange everywhere it is printed.
Fixed
-
dendros initonament_cmakepackages added an install rule that putdendROS.yamlinshare/<pkg>/instead ofshare/<pkg>/config/, so the config was never found. See the upgrade notes below. -
uninstall.shnow works as root (for example in Docker), removes only the two lines the installer added to.bashrcinstead of every line mentioningdendROS, and cleans up saved TUI runs and other runtime files. Your settings file is kept. - The docs gave
afteras the defaulttag_position; the default has always beenbefore.
Upgrading from 1.0
- Pull the repository and run
bash install.shagain, then open a new terminal orsource ~/.bashrc. -
ros2 launchnow opens in the viewer, also if you saved your settings with 1.0. To keep the old scrolling output, rundendros configand set Launch mode toclassicin the Output tab, or addlaunch_mode: classicto~/.config/dendROS/defaults.yaml. - If you ran
dendros initon anament_cmakepackage with 1.0, open itsCMakeLists.txtand changeinstall(DIRECTORY config/toinstall(DIRECTORY config(no trailing slash), then rebuild.ament_pythonpackages are not affected.
1.0.0 - 2026-07-01
First release.
Added
- Group-based coloring of
ros2 launchandros2 runoutput from adendROS.yamlin each package: colors, badges, per-group options, wildcard node matching and keyword highlighting. - Named, extended, hex and raw ANSI colors, and
tag_onlyorfull_linecoloring. -
dendros initto generate a config from a package’s launch files, with--recursiveand--labels. -
dendros config, an interactive editor for the global settings. - Config merging: configs of packages included by a launch file are merged in automatically.
- Crash alert banner, Python traceback highlighting and parameter change alerts.
- Colorized
ros2 node list,node info,topic list,service list,action list,param listandparam describe, sharing the colors of the running launch. -
DENDROS_DISABLE=1andDENDROS_DEBUG=1environment variables. - Host and Docker installation.
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged dendros at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | Color-coded terminal output for ROS 2 — group nodes by color, highlight crashes and tracebacks, zero changes to your launch files or workflow. |
| Checkout URI | https://github.com/mlisi1/DendROS.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-12 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Michele Lisi
Authors
- Michele Lisi
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.
Vanilla ros2 launch
|
With DendROS |
|---|---|
![]() |
![]() |
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.
And since 1.1, ros2 launch opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running.
New in 1.1: TUI mode
ros2 launch now opens in a full-screen log viewer:
- Scroll back and copy — the whole run stays in the scrollback; drag with the mouse to copy. Crash and parameter alerts stay pinned in the header.
-
Filter and search with
\—focuson some nodes, filter bylevelorgrep,findtext and step through the matches,mutethe noisy ones. Filters stack, andEscpeels them off one at a time. -
markandtee— drop a timestamped marker before you poke the robot, then save exactly what you see to a file for the bug report. -
Drive it from another terminal —
dendros focus planner_server,dendros grep timeout, … reach the running launch, so you don’t have to switch panes. -
dendros reopen— closed it too early? Bring back the last run, scrollback and all.
It falls back to the classic output on its own when the output is piped or redirected, so scripts and CI are not affected. Prefer the plain scrolling output? Set launch_mode: classic. → TUI Mode · → Console commands
Features
-
Color by group
One config file per package maps node groups to colors, badges, and display rules. Wildcards cover whole families of nodes (
nav2_*), and keywords can be highlighted per group or package-wide.
-
One command to get started
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.
-
The main
ros2CLI commands, colorizedros2 node list,node info,topic list,service list,action list,param listandparam describeuse the same group colors and badges, with no extra config. → Full list
-
Crashes, tracebacks and parameter changes
A banner flags crashed nodes the moment they die and lists the exit code. Python tracebacks are colored automatically. When a parameter changes at runtime, a notice shows the node, the parameter and old → new value.
<img align=”right” src=”docs/assets/images/dendrobate.png”
File truncated at 100 lines see the full file
Changelog
All notable changes to DendROS are listed here, newest first. The format follows Keep a Changelog and the project uses Semantic Versioning.
1.1.0 - 2026-10-12
The headline of this release is TUI mode: ros2 launch now opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running. It is the new default; set launch_mode: classic to keep the 1.0 output.
Added
TUI mode (launch_mode: tui, the default, for ros2 launch) — docs
- Full-screen log viewer with scrollback (
tui_scrollback_lines, default 5000), line wrapping, a scrollbar and resize support. - Mouse wheel scrolling, and click-and-drag selection that copies to the clipboard through OSC 52 and
xclip/xsel/wl-copy. - Crash and parameter-change alerts stay pinned in the header instead of scrolling away.
- Falls back to classic output automatically when the output is piped or redirected, or when the terminal can’t run it.
Console commands (press \ in TUI mode) — docs
-
focus <node>...shows only the listed nodes. It matches the process name or the ROS logger name, so components inside a container can be focused one by one. -
level <lvl>shows lines at a severity or worse. Tracebacks and other lines without a level always stay visible. -
grep <text>is a live text filter with the matches highlighted. -
find <text>searches the scrollback; Tab and Shift+Tab step through the matches. -
mute <node>andunmute <node|all>hide and restore noisy nodes. -
mark [label]inserts a timestamped separator line. -
tee <file> [-c] [-a]saves the lines currently shown to a file, optionally with colors or appending. -
clearremoves every filter and mute;helplists every command and key. - Filters combine, and Esc removes the most recent one at a time.
- Tab completion for commands, node names and levels, and Up/Down command history.
Remote control and reopen — docs
-
dendros focus,find,grep,level,mute,unmute,mark,teeandclearsend the same commands to a running TUI from another terminal. -
dendros reopenreopens the last TUI run of the current terminal after it has ended, with its full scrollback.
Runtime control — docs
-
dendros disableanddendros enableswitch DendROS off and on in every terminal, including launches that are already running, without restarting them.
Output options
-
show_timestampandshow_logger_namehide the[timestamp]and[logger]brackets of node log lines for a terser output. Both can be set globally or per package. -
ignore_boldstrips bold from every color, for terminals that brighten bold text but not backgrounds and so show a badge in a different shade than its node’s text.
Other
- A
package.xml, so the repository can be indexed as a ROS package. - Documentation: new pages for TUI mode, console commands, remote control, enable and disable, troubleshooting and a ROS 2 CLI overview. Every screenshot was redone, and each console command has a short recording.
Changed
-
ros2 launchopens in the TUI viewer by default (launch_mode: tui).ros2 run, piped or redirected output, and every other command are unchanged. -
dendros configgroups its settings into tabs (Output, CLI, Unmatched, System, Diagnostics, Param Alerts, Init) instead of one long list. -
dendros initmust be run from the package root, the folder that containspackage.xml. From a subfolder it tells you where to run it instead of guessing. -
dendros initwrites nothing when it finds no nodes. Previously it created an empty config and patched the build files anyway. -
dendros initcolors its warnings yellow and its errors red, like ROS 2 does. - The
[dendROS]tag uses the same brand blue and orange everywhere it is printed.
Fixed
-
dendros initonament_cmakepackages added an install rule that putdendROS.yamlinshare/<pkg>/instead ofshare/<pkg>/config/, so the config was never found. See the upgrade notes below. -
uninstall.shnow works as root (for example in Docker), removes only the two lines the installer added to.bashrcinstead of every line mentioningdendROS, and cleans up saved TUI runs and other runtime files. Your settings file is kept. - The docs gave
afteras the defaulttag_position; the default has always beenbefore.
Upgrading from 1.0
- Pull the repository and run
bash install.shagain, then open a new terminal orsource ~/.bashrc. -
ros2 launchnow opens in the viewer, also if you saved your settings with 1.0. To keep the old scrolling output, rundendros configand set Launch mode toclassicin the Output tab, or addlaunch_mode: classicto~/.config/dendROS/defaults.yaml. - If you ran
dendros initon anament_cmakepackage with 1.0, open itsCMakeLists.txtand changeinstall(DIRECTORY config/toinstall(DIRECTORY config(no trailing slash), then rebuild.ament_pythonpackages are not affected.
1.0.0 - 2026-07-01
First release.
Added
- Group-based coloring of
ros2 launchandros2 runoutput from adendROS.yamlin each package: colors, badges, per-group options, wildcard node matching and keyword highlighting. - Named, extended, hex and raw ANSI colors, and
tag_onlyorfull_linecoloring. -
dendros initto generate a config from a package’s launch files, with--recursiveand--labels. -
dendros config, an interactive editor for the global settings. - Config merging: configs of packages included by a launch file are merged in automatically.
- Crash alert banner, Python traceback highlighting and parameter change alerts.
- Colorized
ros2 node list,node info,topic list,service list,action list,param listandparam describe, sharing the colors of the running launch. -
DENDROS_DISABLE=1andDENDROS_DEBUG=1environment variables. - Host and Docker installation.
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged dendros at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | Color-coded terminal output for ROS 2 — group nodes by color, highlight crashes and tracebacks, zero changes to your launch files or workflow. |
| Checkout URI | https://github.com/mlisi1/DendROS.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-12 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Michele Lisi
Authors
- Michele Lisi
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.
Vanilla ros2 launch
|
With DendROS |
|---|---|
![]() |
![]() |
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.
And since 1.1, ros2 launch opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running.
New in 1.1: TUI mode
ros2 launch now opens in a full-screen log viewer:
- Scroll back and copy — the whole run stays in the scrollback; drag with the mouse to copy. Crash and parameter alerts stay pinned in the header.
-
Filter and search with
\—focuson some nodes, filter bylevelorgrep,findtext and step through the matches,mutethe noisy ones. Filters stack, andEscpeels them off one at a time. -
markandtee— drop a timestamped marker before you poke the robot, then save exactly what you see to a file for the bug report. -
Drive it from another terminal —
dendros focus planner_server,dendros grep timeout, … reach the running launch, so you don’t have to switch panes. -
dendros reopen— closed it too early? Bring back the last run, scrollback and all.
It falls back to the classic output on its own when the output is piped or redirected, so scripts and CI are not affected. Prefer the plain scrolling output? Set launch_mode: classic. → TUI Mode · → Console commands
Features
-
Color by group
One config file per package maps node groups to colors, badges, and display rules. Wildcards cover whole families of nodes (
nav2_*), and keywords can be highlighted per group or package-wide.
-
One command to get started
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.
-
The main
ros2CLI commands, colorizedros2 node list,node info,topic list,service list,action list,param listandparam describeuse the same group colors and badges, with no extra config. → Full list
-
Crashes, tracebacks and parameter changes
A banner flags crashed nodes the moment they die and lists the exit code. Python tracebacks are colored automatically. When a parameter changes at runtime, a notice shows the node, the parameter and old → new value.
<img align=”right” src=”docs/assets/images/dendrobate.png”
File truncated at 100 lines see the full file
Changelog
All notable changes to DendROS are listed here, newest first. The format follows Keep a Changelog and the project uses Semantic Versioning.
1.1.0 - 2026-10-12
The headline of this release is TUI mode: ros2 launch now opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running. It is the new default; set launch_mode: classic to keep the 1.0 output.
Added
TUI mode (launch_mode: tui, the default, for ros2 launch) — docs
- Full-screen log viewer with scrollback (
tui_scrollback_lines, default 5000), line wrapping, a scrollbar and resize support. - Mouse wheel scrolling, and click-and-drag selection that copies to the clipboard through OSC 52 and
xclip/xsel/wl-copy. - Crash and parameter-change alerts stay pinned in the header instead of scrolling away.
- Falls back to classic output automatically when the output is piped or redirected, or when the terminal can’t run it.
Console commands (press \ in TUI mode) — docs
-
focus <node>...shows only the listed nodes. It matches the process name or the ROS logger name, so components inside a container can be focused one by one. -
level <lvl>shows lines at a severity or worse. Tracebacks and other lines without a level always stay visible. -
grep <text>is a live text filter with the matches highlighted. -
find <text>searches the scrollback; Tab and Shift+Tab step through the matches. -
mute <node>andunmute <node|all>hide and restore noisy nodes. -
mark [label]inserts a timestamped separator line. -
tee <file> [-c] [-a]saves the lines currently shown to a file, optionally with colors or appending. -
clearremoves every filter and mute;helplists every command and key. - Filters combine, and Esc removes the most recent one at a time.
- Tab completion for commands, node names and levels, and Up/Down command history.
Remote control and reopen — docs
-
dendros focus,find,grep,level,mute,unmute,mark,teeandclearsend the same commands to a running TUI from another terminal. -
dendros reopenreopens the last TUI run of the current terminal after it has ended, with its full scrollback.
Runtime control — docs
-
dendros disableanddendros enableswitch DendROS off and on in every terminal, including launches that are already running, without restarting them.
Output options
-
show_timestampandshow_logger_namehide the[timestamp]and[logger]brackets of node log lines for a terser output. Both can be set globally or per package. -
ignore_boldstrips bold from every color, for terminals that brighten bold text but not backgrounds and so show a badge in a different shade than its node’s text.
Other
- A
package.xml, so the repository can be indexed as a ROS package. - Documentation: new pages for TUI mode, console commands, remote control, enable and disable, troubleshooting and a ROS 2 CLI overview. Every screenshot was redone, and each console command has a short recording.
Changed
-
ros2 launchopens in the TUI viewer by default (launch_mode: tui).ros2 run, piped or redirected output, and every other command are unchanged. -
dendros configgroups its settings into tabs (Output, CLI, Unmatched, System, Diagnostics, Param Alerts, Init) instead of one long list. -
dendros initmust be run from the package root, the folder that containspackage.xml. From a subfolder it tells you where to run it instead of guessing. -
dendros initwrites nothing when it finds no nodes. Previously it created an empty config and patched the build files anyway. -
dendros initcolors its warnings yellow and its errors red, like ROS 2 does. - The
[dendROS]tag uses the same brand blue and orange everywhere it is printed.
Fixed
-
dendros initonament_cmakepackages added an install rule that putdendROS.yamlinshare/<pkg>/instead ofshare/<pkg>/config/, so the config was never found. See the upgrade notes below. -
uninstall.shnow works as root (for example in Docker), removes only the two lines the installer added to.bashrcinstead of every line mentioningdendROS, and cleans up saved TUI runs and other runtime files. Your settings file is kept. - The docs gave
afteras the defaulttag_position; the default has always beenbefore.
Upgrading from 1.0
- Pull the repository and run
bash install.shagain, then open a new terminal orsource ~/.bashrc. -
ros2 launchnow opens in the viewer, also if you saved your settings with 1.0. To keep the old scrolling output, rundendros configand set Launch mode toclassicin the Output tab, or addlaunch_mode: classicto~/.config/dendROS/defaults.yaml. - If you ran
dendros initon anament_cmakepackage with 1.0, open itsCMakeLists.txtand changeinstall(DIRECTORY config/toinstall(DIRECTORY config(no trailing slash), then rebuild.ament_pythonpackages are not affected.
1.0.0 - 2026-07-01
First release.
Added
- Group-based coloring of
ros2 launchandros2 runoutput from adendROS.yamlin each package: colors, badges, per-group options, wildcard node matching and keyword highlighting. - Named, extended, hex and raw ANSI colors, and
tag_onlyorfull_linecoloring. -
dendros initto generate a config from a package’s launch files, with--recursiveand--labels. -
dendros config, an interactive editor for the global settings. - Config merging: configs of packages included by a launch file are merged in automatically.
- Crash alert banner, Python traceback highlighting and parameter change alerts.
- Colorized
ros2 node list,node info,topic list,service list,action list,param listandparam describe, sharing the colors of the running launch. -
DENDROS_DISABLE=1andDENDROS_DEBUG=1environment variables. - Host and Docker installation.
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged dendros at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | Color-coded terminal output for ROS 2 — group nodes by color, highlight crashes and tracebacks, zero changes to your launch files or workflow. |
| Checkout URI | https://github.com/mlisi1/DendROS.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-12 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Michele Lisi
Authors
- Michele Lisi
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.
Vanilla ros2 launch
|
With DendROS |
|---|---|
![]() |
![]() |
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.
And since 1.1, ros2 launch opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running.
New in 1.1: TUI mode
ros2 launch now opens in a full-screen log viewer:
- Scroll back and copy — the whole run stays in the scrollback; drag with the mouse to copy. Crash and parameter alerts stay pinned in the header.
-
Filter and search with
\—focuson some nodes, filter bylevelorgrep,findtext and step through the matches,mutethe noisy ones. Filters stack, andEscpeels them off one at a time. -
markandtee— drop a timestamped marker before you poke the robot, then save exactly what you see to a file for the bug report. -
Drive it from another terminal —
dendros focus planner_server,dendros grep timeout, … reach the running launch, so you don’t have to switch panes. -
dendros reopen— closed it too early? Bring back the last run, scrollback and all.
It falls back to the classic output on its own when the output is piped or redirected, so scripts and CI are not affected. Prefer the plain scrolling output? Set launch_mode: classic. → TUI Mode · → Console commands
Features
-
Color by group
One config file per package maps node groups to colors, badges, and display rules. Wildcards cover whole families of nodes (
nav2_*), and keywords can be highlighted per group or package-wide.
-
One command to get started
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.
-
The main
ros2CLI commands, colorizedros2 node list,node info,topic list,service list,action list,param listandparam describeuse the same group colors and badges, with no extra config. → Full list
-
Crashes, tracebacks and parameter changes
A banner flags crashed nodes the moment they die and lists the exit code. Python tracebacks are colored automatically. When a parameter changes at runtime, a notice shows the node, the parameter and old → new value.
<img align=”right” src=”docs/assets/images/dendrobate.png”
File truncated at 100 lines see the full file
Changelog
All notable changes to DendROS are listed here, newest first. The format follows Keep a Changelog and the project uses Semantic Versioning.
1.1.0 - 2026-10-12
The headline of this release is TUI mode: ros2 launch now opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running. It is the new default; set launch_mode: classic to keep the 1.0 output.
Added
TUI mode (launch_mode: tui, the default, for ros2 launch) — docs
- Full-screen log viewer with scrollback (
tui_scrollback_lines, default 5000), line wrapping, a scrollbar and resize support. - Mouse wheel scrolling, and click-and-drag selection that copies to the clipboard through OSC 52 and
xclip/xsel/wl-copy. - Crash and parameter-change alerts stay pinned in the header instead of scrolling away.
- Falls back to classic output automatically when the output is piped or redirected, or when the terminal can’t run it.
Console commands (press \ in TUI mode) — docs
-
focus <node>...shows only the listed nodes. It matches the process name or the ROS logger name, so components inside a container can be focused one by one. -
level <lvl>shows lines at a severity or worse. Tracebacks and other lines without a level always stay visible. -
grep <text>is a live text filter with the matches highlighted. -
find <text>searches the scrollback; Tab and Shift+Tab step through the matches. -
mute <node>andunmute <node|all>hide and restore noisy nodes. -
mark [label]inserts a timestamped separator line. -
tee <file> [-c] [-a]saves the lines currently shown to a file, optionally with colors or appending. -
clearremoves every filter and mute;helplists every command and key. - Filters combine, and Esc removes the most recent one at a time.
- Tab completion for commands, node names and levels, and Up/Down command history.
Remote control and reopen — docs
-
dendros focus,find,grep,level,mute,unmute,mark,teeandclearsend the same commands to a running TUI from another terminal. -
dendros reopenreopens the last TUI run of the current terminal after it has ended, with its full scrollback.
Runtime control — docs
-
dendros disableanddendros enableswitch DendROS off and on in every terminal, including launches that are already running, without restarting them.
Output options
-
show_timestampandshow_logger_namehide the[timestamp]and[logger]brackets of node log lines for a terser output. Both can be set globally or per package. -
ignore_boldstrips bold from every color, for terminals that brighten bold text but not backgrounds and so show a badge in a different shade than its node’s text.
Other
- A
package.xml, so the repository can be indexed as a ROS package. - Documentation: new pages for TUI mode, console commands, remote control, enable and disable, troubleshooting and a ROS 2 CLI overview. Every screenshot was redone, and each console command has a short recording.
Changed
-
ros2 launchopens in the TUI viewer by default (launch_mode: tui).ros2 run, piped or redirected output, and every other command are unchanged. -
dendros configgroups its settings into tabs (Output, CLI, Unmatched, System, Diagnostics, Param Alerts, Init) instead of one long list. -
dendros initmust be run from the package root, the folder that containspackage.xml. From a subfolder it tells you where to run it instead of guessing. -
dendros initwrites nothing when it finds no nodes. Previously it created an empty config and patched the build files anyway. -
dendros initcolors its warnings yellow and its errors red, like ROS 2 does. - The
[dendROS]tag uses the same brand blue and orange everywhere it is printed.
Fixed
-
dendros initonament_cmakepackages added an install rule that putdendROS.yamlinshare/<pkg>/instead ofshare/<pkg>/config/, so the config was never found. See the upgrade notes below. -
uninstall.shnow works as root (for example in Docker), removes only the two lines the installer added to.bashrcinstead of every line mentioningdendROS, and cleans up saved TUI runs and other runtime files. Your settings file is kept. - The docs gave
afteras the defaulttag_position; the default has always beenbefore.
Upgrading from 1.0
- Pull the repository and run
bash install.shagain, then open a new terminal orsource ~/.bashrc. -
ros2 launchnow opens in the viewer, also if you saved your settings with 1.0. To keep the old scrolling output, rundendros configand set Launch mode toclassicin the Output tab, or addlaunch_mode: classicto~/.config/dendROS/defaults.yaml. - If you ran
dendros initon anament_cmakepackage with 1.0, open itsCMakeLists.txtand changeinstall(DIRECTORY config/toinstall(DIRECTORY config(no trailing slash), then rebuild.ament_pythonpackages are not affected.
1.0.0 - 2026-07-01
First release.
Added
- Group-based coloring of
ros2 launchandros2 runoutput from adendROS.yamlin each package: colors, badges, per-group options, wildcard node matching and keyword highlighting. - Named, extended, hex and raw ANSI colors, and
tag_onlyorfull_linecoloring. -
dendros initto generate a config from a package’s launch files, with--recursiveand--labels. -
dendros config, an interactive editor for the global settings. - Config merging: configs of packages included by a launch file are merged in automatically.
- Crash alert banner, Python traceback highlighting and parameter change alerts.
- Colorized
ros2 node list,node info,topic list,service list,action list,param listandparam describe, sharing the colors of the running launch. -
DENDROS_DISABLE=1andDENDROS_DEBUG=1environment variables. - Host and Docker installation.
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged dendros at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | Color-coded terminal output for ROS 2 — group nodes by color, highlight crashes and tracebacks, zero changes to your launch files or workflow. |
| Checkout URI | https://github.com/mlisi1/DendROS.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-12 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Michele Lisi
Authors
- Michele Lisi
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.
Vanilla ros2 launch
|
With DendROS |
|---|---|
![]() |
![]() |
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.
And since 1.1, ros2 launch opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running.
New in 1.1: TUI mode
ros2 launch now opens in a full-screen log viewer:
- Scroll back and copy — the whole run stays in the scrollback; drag with the mouse to copy. Crash and parameter alerts stay pinned in the header.
-
Filter and search with
\—focuson some nodes, filter bylevelorgrep,findtext and step through the matches,mutethe noisy ones. Filters stack, andEscpeels them off one at a time. -
markandtee— drop a timestamped marker before you poke the robot, then save exactly what you see to a file for the bug report. -
Drive it from another terminal —
dendros focus planner_server,dendros grep timeout, … reach the running launch, so you don’t have to switch panes. -
dendros reopen— closed it too early? Bring back the last run, scrollback and all.
It falls back to the classic output on its own when the output is piped or redirected, so scripts and CI are not affected. Prefer the plain scrolling output? Set launch_mode: classic. → TUI Mode · → Console commands
Features
-
Color by group
One config file per package maps node groups to colors, badges, and display rules. Wildcards cover whole families of nodes (
nav2_*), and keywords can be highlighted per group or package-wide.
-
One command to get started
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.
-
The main
ros2CLI commands, colorizedros2 node list,node info,topic list,service list,action list,param listandparam describeuse the same group colors and badges, with no extra config. → Full list
-
Crashes, tracebacks and parameter changes
A banner flags crashed nodes the moment they die and lists the exit code. Python tracebacks are colored automatically. When a parameter changes at runtime, a notice shows the node, the parameter and old → new value.
<img align=”right” src=”docs/assets/images/dendrobate.png”
File truncated at 100 lines see the full file
Changelog
All notable changes to DendROS are listed here, newest first. The format follows Keep a Changelog and the project uses Semantic Versioning.
1.1.0 - 2026-10-12
The headline of this release is TUI mode: ros2 launch now opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running. It is the new default; set launch_mode: classic to keep the 1.0 output.
Added
TUI mode (launch_mode: tui, the default, for ros2 launch) — docs
- Full-screen log viewer with scrollback (
tui_scrollback_lines, default 5000), line wrapping, a scrollbar and resize support. - Mouse wheel scrolling, and click-and-drag selection that copies to the clipboard through OSC 52 and
xclip/xsel/wl-copy. - Crash and parameter-change alerts stay pinned in the header instead of scrolling away.
- Falls back to classic output automatically when the output is piped or redirected, or when the terminal can’t run it.
Console commands (press \ in TUI mode) — docs
-
focus <node>...shows only the listed nodes. It matches the process name or the ROS logger name, so components inside a container can be focused one by one. -
level <lvl>shows lines at a severity or worse. Tracebacks and other lines without a level always stay visible. -
grep <text>is a live text filter with the matches highlighted. -
find <text>searches the scrollback; Tab and Shift+Tab step through the matches. -
mute <node>andunmute <node|all>hide and restore noisy nodes. -
mark [label]inserts a timestamped separator line. -
tee <file> [-c] [-a]saves the lines currently shown to a file, optionally with colors or appending. -
clearremoves every filter and mute;helplists every command and key. - Filters combine, and Esc removes the most recent one at a time.
- Tab completion for commands, node names and levels, and Up/Down command history.
Remote control and reopen — docs
-
dendros focus,find,grep,level,mute,unmute,mark,teeandclearsend the same commands to a running TUI from another terminal. -
dendros reopenreopens the last TUI run of the current terminal after it has ended, with its full scrollback.
Runtime control — docs
-
dendros disableanddendros enableswitch DendROS off and on in every terminal, including launches that are already running, without restarting them.
Output options
-
show_timestampandshow_logger_namehide the[timestamp]and[logger]brackets of node log lines for a terser output. Both can be set globally or per package. -
ignore_boldstrips bold from every color, for terminals that brighten bold text but not backgrounds and so show a badge in a different shade than its node’s text.
Other
- A
package.xml, so the repository can be indexed as a ROS package. - Documentation: new pages for TUI mode, console commands, remote control, enable and disable, troubleshooting and a ROS 2 CLI overview. Every screenshot was redone, and each console command has a short recording.
Changed
-
ros2 launchopens in the TUI viewer by default (launch_mode: tui).ros2 run, piped or redirected output, and every other command are unchanged. -
dendros configgroups its settings into tabs (Output, CLI, Unmatched, System, Diagnostics, Param Alerts, Init) instead of one long list. -
dendros initmust be run from the package root, the folder that containspackage.xml. From a subfolder it tells you where to run it instead of guessing. -
dendros initwrites nothing when it finds no nodes. Previously it created an empty config and patched the build files anyway. -
dendros initcolors its warnings yellow and its errors red, like ROS 2 does. - The
[dendROS]tag uses the same brand blue and orange everywhere it is printed.
Fixed
-
dendros initonament_cmakepackages added an install rule that putdendROS.yamlinshare/<pkg>/instead ofshare/<pkg>/config/, so the config was never found. See the upgrade notes below. -
uninstall.shnow works as root (for example in Docker), removes only the two lines the installer added to.bashrcinstead of every line mentioningdendROS, and cleans up saved TUI runs and other runtime files. Your settings file is kept. - The docs gave
afteras the defaulttag_position; the default has always beenbefore.
Upgrading from 1.0
- Pull the repository and run
bash install.shagain, then open a new terminal orsource ~/.bashrc. -
ros2 launchnow opens in the viewer, also if you saved your settings with 1.0. To keep the old scrolling output, rundendros configand set Launch mode toclassicin the Output tab, or addlaunch_mode: classicto~/.config/dendROS/defaults.yaml. - If you ran
dendros initon anament_cmakepackage with 1.0, open itsCMakeLists.txtand changeinstall(DIRECTORY config/toinstall(DIRECTORY config(no trailing slash), then rebuild.ament_pythonpackages are not affected.
1.0.0 - 2026-07-01
First release.
Added
- Group-based coloring of
ros2 launchandros2 runoutput from adendROS.yamlin each package: colors, badges, per-group options, wildcard node matching and keyword highlighting. - Named, extended, hex and raw ANSI colors, and
tag_onlyorfull_linecoloring. -
dendros initto generate a config from a package’s launch files, with--recursiveand--labels. -
dendros config, an interactive editor for the global settings. - Config merging: configs of packages included by a launch file are merged in automatically.
- Crash alert banner, Python traceback highlighting and parameter change alerts.
- Colorized
ros2 node list,node info,topic list,service list,action list,param listandparam describe, sharing the colors of the running launch. -
DENDROS_DISABLE=1andDENDROS_DEBUG=1environment variables. - Host and Docker installation.
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged dendros at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | Color-coded terminal output for ROS 2 — group nodes by color, highlight crashes and tracebacks, zero changes to your launch files or workflow. |
| Checkout URI | https://github.com/mlisi1/DendROS.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-12 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Michele Lisi
Authors
- Michele Lisi
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.
Vanilla ros2 launch
|
With DendROS |
|---|---|
![]() |
![]() |
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.
And since 1.1, ros2 launch opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running.
New in 1.1: TUI mode
ros2 launch now opens in a full-screen log viewer:
- Scroll back and copy — the whole run stays in the scrollback; drag with the mouse to copy. Crash and parameter alerts stay pinned in the header.
-
Filter and search with
\—focuson some nodes, filter bylevelorgrep,findtext and step through the matches,mutethe noisy ones. Filters stack, andEscpeels them off one at a time. -
markandtee— drop a timestamped marker before you poke the robot, then save exactly what you see to a file for the bug report. -
Drive it from another terminal —
dendros focus planner_server,dendros grep timeout, … reach the running launch, so you don’t have to switch panes. -
dendros reopen— closed it too early? Bring back the last run, scrollback and all.
It falls back to the classic output on its own when the output is piped or redirected, so scripts and CI are not affected. Prefer the plain scrolling output? Set launch_mode: classic. → TUI Mode · → Console commands
Features
-
Color by group
One config file per package maps node groups to colors, badges, and display rules. Wildcards cover whole families of nodes (
nav2_*), and keywords can be highlighted per group or package-wide.
-
One command to get started
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.
-
The main
ros2CLI commands, colorizedros2 node list,node info,topic list,service list,action list,param listandparam describeuse the same group colors and badges, with no extra config. → Full list
-
Crashes, tracebacks and parameter changes
A banner flags crashed nodes the moment they die and lists the exit code. Python tracebacks are colored automatically. When a parameter changes at runtime, a notice shows the node, the parameter and old → new value.
<img align=”right” src=”docs/assets/images/dendrobate.png”
File truncated at 100 lines see the full file
Changelog
All notable changes to DendROS are listed here, newest first. The format follows Keep a Changelog and the project uses Semantic Versioning.
1.1.0 - 2026-10-12
The headline of this release is TUI mode: ros2 launch now opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running. It is the new default; set launch_mode: classic to keep the 1.0 output.
Added
TUI mode (launch_mode: tui, the default, for ros2 launch) — docs
- Full-screen log viewer with scrollback (
tui_scrollback_lines, default 5000), line wrapping, a scrollbar and resize support. - Mouse wheel scrolling, and click-and-drag selection that copies to the clipboard through OSC 52 and
xclip/xsel/wl-copy. - Crash and parameter-change alerts stay pinned in the header instead of scrolling away.
- Falls back to classic output automatically when the output is piped or redirected, or when the terminal can’t run it.
Console commands (press \ in TUI mode) — docs
-
focus <node>...shows only the listed nodes. It matches the process name or the ROS logger name, so components inside a container can be focused one by one. -
level <lvl>shows lines at a severity or worse. Tracebacks and other lines without a level always stay visible. -
grep <text>is a live text filter with the matches highlighted. -
find <text>searches the scrollback; Tab and Shift+Tab step through the matches. -
mute <node>andunmute <node|all>hide and restore noisy nodes. -
mark [label]inserts a timestamped separator line. -
tee <file> [-c] [-a]saves the lines currently shown to a file, optionally with colors or appending. -
clearremoves every filter and mute;helplists every command and key. - Filters combine, and Esc removes the most recent one at a time.
- Tab completion for commands, node names and levels, and Up/Down command history.
Remote control and reopen — docs
-
dendros focus,find,grep,level,mute,unmute,mark,teeandclearsend the same commands to a running TUI from another terminal. -
dendros reopenreopens the last TUI run of the current terminal after it has ended, with its full scrollback.
Runtime control — docs
-
dendros disableanddendros enableswitch DendROS off and on in every terminal, including launches that are already running, without restarting them.
Output options
-
show_timestampandshow_logger_namehide the[timestamp]and[logger]brackets of node log lines for a terser output. Both can be set globally or per package. -
ignore_boldstrips bold from every color, for terminals that brighten bold text but not backgrounds and so show a badge in a different shade than its node’s text.
Other
- A
package.xml, so the repository can be indexed as a ROS package. - Documentation: new pages for TUI mode, console commands, remote control, enable and disable, troubleshooting and a ROS 2 CLI overview. Every screenshot was redone, and each console command has a short recording.
Changed
-
ros2 launchopens in the TUI viewer by default (launch_mode: tui).ros2 run, piped or redirected output, and every other command are unchanged. -
dendros configgroups its settings into tabs (Output, CLI, Unmatched, System, Diagnostics, Param Alerts, Init) instead of one long list. -
dendros initmust be run from the package root, the folder that containspackage.xml. From a subfolder it tells you where to run it instead of guessing. -
dendros initwrites nothing when it finds no nodes. Previously it created an empty config and patched the build files anyway. -
dendros initcolors its warnings yellow and its errors red, like ROS 2 does. - The
[dendROS]tag uses the same brand blue and orange everywhere it is printed.
Fixed
-
dendros initonament_cmakepackages added an install rule that putdendROS.yamlinshare/<pkg>/instead ofshare/<pkg>/config/, so the config was never found. See the upgrade notes below. -
uninstall.shnow works as root (for example in Docker), removes only the two lines the installer added to.bashrcinstead of every line mentioningdendROS, and cleans up saved TUI runs and other runtime files. Your settings file is kept. - The docs gave
afteras the defaulttag_position; the default has always beenbefore.
Upgrading from 1.0
- Pull the repository and run
bash install.shagain, then open a new terminal orsource ~/.bashrc. -
ros2 launchnow opens in the viewer, also if you saved your settings with 1.0. To keep the old scrolling output, rundendros configand set Launch mode toclassicin the Output tab, or addlaunch_mode: classicto~/.config/dendROS/defaults.yaml. - If you ran
dendros initon anament_cmakepackage with 1.0, open itsCMakeLists.txtand changeinstall(DIRECTORY config/toinstall(DIRECTORY config(no trailing slash), then rebuild.ament_pythonpackages are not affected.
1.0.0 - 2026-07-01
First release.
Added
- Group-based coloring of
ros2 launchandros2 runoutput from adendROS.yamlin each package: colors, badges, per-group options, wildcard node matching and keyword highlighting. - Named, extended, hex and raw ANSI colors, and
tag_onlyorfull_linecoloring. -
dendros initto generate a config from a package’s launch files, with--recursiveand--labels. -
dendros config, an interactive editor for the global settings. - Config merging: configs of packages included by a launch file are merged in automatically.
- Crash alert banner, Python traceback highlighting and parameter change alerts.
- Colorized
ros2 node list,node info,topic list,service list,action list,param listandparam describe, sharing the colors of the running launch. -
DENDROS_DISABLE=1andDENDROS_DEBUG=1environment variables. - Host and Docker installation.
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged dendros at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | Color-coded terminal output for ROS 2 — group nodes by color, highlight crashes and tracebacks, zero changes to your launch files or workflow. |
| Checkout URI | https://github.com/mlisi1/DendROS.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-12 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Michele Lisi
Authors
- Michele Lisi
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.
Vanilla ros2 launch
|
With DendROS |
|---|---|
![]() |
![]() |
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.
And since 1.1, ros2 launch opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running.
New in 1.1: TUI mode
ros2 launch now opens in a full-screen log viewer:
- Scroll back and copy — the whole run stays in the scrollback; drag with the mouse to copy. Crash and parameter alerts stay pinned in the header.
-
Filter and search with
\—focuson some nodes, filter bylevelorgrep,findtext and step through the matches,mutethe noisy ones. Filters stack, andEscpeels them off one at a time. -
markandtee— drop a timestamped marker before you poke the robot, then save exactly what you see to a file for the bug report. -
Drive it from another terminal —
dendros focus planner_server,dendros grep timeout, … reach the running launch, so you don’t have to switch panes. -
dendros reopen— closed it too early? Bring back the last run, scrollback and all.
It falls back to the classic output on its own when the output is piped or redirected, so scripts and CI are not affected. Prefer the plain scrolling output? Set launch_mode: classic. → TUI Mode · → Console commands
Features
-
Color by group
One config file per package maps node groups to colors, badges, and display rules. Wildcards cover whole families of nodes (
nav2_*), and keywords can be highlighted per group or package-wide.
-
One command to get started
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.
-
The main
ros2CLI commands, colorizedros2 node list,node info,topic list,service list,action list,param listandparam describeuse the same group colors and badges, with no extra config. → Full list
-
Crashes, tracebacks and parameter changes
A banner flags crashed nodes the moment they die and lists the exit code. Python tracebacks are colored automatically. When a parameter changes at runtime, a notice shows the node, the parameter and old → new value.
<img align=”right” src=”docs/assets/images/dendrobate.png”
File truncated at 100 lines see the full file
Changelog
All notable changes to DendROS are listed here, newest first. The format follows Keep a Changelog and the project uses Semantic Versioning.
1.1.0 - 2026-10-12
The headline of this release is TUI mode: ros2 launch now opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running. It is the new default; set launch_mode: classic to keep the 1.0 output.
Added
TUI mode (launch_mode: tui, the default, for ros2 launch) — docs
- Full-screen log viewer with scrollback (
tui_scrollback_lines, default 5000), line wrapping, a scrollbar and resize support. - Mouse wheel scrolling, and click-and-drag selection that copies to the clipboard through OSC 52 and
xclip/xsel/wl-copy. - Crash and parameter-change alerts stay pinned in the header instead of scrolling away.
- Falls back to classic output automatically when the output is piped or redirected, or when the terminal can’t run it.
Console commands (press \ in TUI mode) — docs
-
focus <node>...shows only the listed nodes. It matches the process name or the ROS logger name, so components inside a container can be focused one by one. -
level <lvl>shows lines at a severity or worse. Tracebacks and other lines without a level always stay visible. -
grep <text>is a live text filter with the matches highlighted. -
find <text>searches the scrollback; Tab and Shift+Tab step through the matches. -
mute <node>andunmute <node|all>hide and restore noisy nodes. -
mark [label]inserts a timestamped separator line. -
tee <file> [-c] [-a]saves the lines currently shown to a file, optionally with colors or appending. -
clearremoves every filter and mute;helplists every command and key. - Filters combine, and Esc removes the most recent one at a time.
- Tab completion for commands, node names and levels, and Up/Down command history.
Remote control and reopen — docs
-
dendros focus,find,grep,level,mute,unmute,mark,teeandclearsend the same commands to a running TUI from another terminal. -
dendros reopenreopens the last TUI run of the current terminal after it has ended, with its full scrollback.
Runtime control — docs
-
dendros disableanddendros enableswitch DendROS off and on in every terminal, including launches that are already running, without restarting them.
Output options
-
show_timestampandshow_logger_namehide the[timestamp]and[logger]brackets of node log lines for a terser output. Both can be set globally or per package. -
ignore_boldstrips bold from every color, for terminals that brighten bold text but not backgrounds and so show a badge in a different shade than its node’s text.
Other
- A
package.xml, so the repository can be indexed as a ROS package. - Documentation: new pages for TUI mode, console commands, remote control, enable and disable, troubleshooting and a ROS 2 CLI overview. Every screenshot was redone, and each console command has a short recording.
Changed
-
ros2 launchopens in the TUI viewer by default (launch_mode: tui).ros2 run, piped or redirected output, and every other command are unchanged. -
dendros configgroups its settings into tabs (Output, CLI, Unmatched, System, Diagnostics, Param Alerts, Init) instead of one long list. -
dendros initmust be run from the package root, the folder that containspackage.xml. From a subfolder it tells you where to run it instead of guessing. -
dendros initwrites nothing when it finds no nodes. Previously it created an empty config and patched the build files anyway. -
dendros initcolors its warnings yellow and its errors red, like ROS 2 does. - The
[dendROS]tag uses the same brand blue and orange everywhere it is printed.
Fixed
-
dendros initonament_cmakepackages added an install rule that putdendROS.yamlinshare/<pkg>/instead ofshare/<pkg>/config/, so the config was never found. See the upgrade notes below. -
uninstall.shnow works as root (for example in Docker), removes only the two lines the installer added to.bashrcinstead of every line mentioningdendROS, and cleans up saved TUI runs and other runtime files. Your settings file is kept. - The docs gave
afteras the defaulttag_position; the default has always beenbefore.
Upgrading from 1.0
- Pull the repository and run
bash install.shagain, then open a new terminal orsource ~/.bashrc. -
ros2 launchnow opens in the viewer, also if you saved your settings with 1.0. To keep the old scrolling output, rundendros configand set Launch mode toclassicin the Output tab, or addlaunch_mode: classicto~/.config/dendROS/defaults.yaml. - If you ran
dendros initon anament_cmakepackage with 1.0, open itsCMakeLists.txtand changeinstall(DIRECTORY config/toinstall(DIRECTORY config(no trailing slash), then rebuild.ament_pythonpackages are not affected.
1.0.0 - 2026-07-01
First release.
Added
- Group-based coloring of
ros2 launchandros2 runoutput from adendROS.yamlin each package: colors, badges, per-group options, wildcard node matching and keyword highlighting. - Named, extended, hex and raw ANSI colors, and
tag_onlyorfull_linecoloring. -
dendros initto generate a config from a package’s launch files, with--recursiveand--labels. -
dendros config, an interactive editor for the global settings. - Config merging: configs of packages included by a launch file are merged in automatically.
- Crash alert banner, Python traceback highlighting and parameter change alerts.
- Colorized
ros2 node list,node info,topic list,service list,action list,param listandparam describe, sharing the colors of the running launch. -
DENDROS_DISABLE=1andDENDROS_DEBUG=1environment variables. - Host and Docker installation.
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged dendros at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | Color-coded terminal output for ROS 2 — group nodes by color, highlight crashes and tracebacks, zero changes to your launch files or workflow. |
| Checkout URI | https://github.com/mlisi1/DendROS.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-12 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Michele Lisi
Authors
- Michele Lisi
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.
Vanilla ros2 launch
|
With DendROS |
|---|---|
![]() |
![]() |
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.
And since 1.1, ros2 launch opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running.
New in 1.1: TUI mode
ros2 launch now opens in a full-screen log viewer:
- Scroll back and copy — the whole run stays in the scrollback; drag with the mouse to copy. Crash and parameter alerts stay pinned in the header.
-
Filter and search with
\—focuson some nodes, filter bylevelorgrep,findtext and step through the matches,mutethe noisy ones. Filters stack, andEscpeels them off one at a time. -
markandtee— drop a timestamped marker before you poke the robot, then save exactly what you see to a file for the bug report. -
Drive it from another terminal —
dendros focus planner_server,dendros grep timeout, … reach the running launch, so you don’t have to switch panes. -
dendros reopen— closed it too early? Bring back the last run, scrollback and all.
It falls back to the classic output on its own when the output is piped or redirected, so scripts and CI are not affected. Prefer the plain scrolling output? Set launch_mode: classic. → TUI Mode · → Console commands
Features
-
Color by group
One config file per package maps node groups to colors, badges, and display rules. Wildcards cover whole families of nodes (
nav2_*), and keywords can be highlighted per group or package-wide.
-
One command to get started
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.
-
The main
ros2CLI commands, colorizedros2 node list,node info,topic list,service list,action list,param listandparam describeuse the same group colors and badges, with no extra config. → Full list
-
Crashes, tracebacks and parameter changes
A banner flags crashed nodes the moment they die and lists the exit code. Python tracebacks are colored automatically. When a parameter changes at runtime, a notice shows the node, the parameter and old → new value.
<img align=”right” src=”docs/assets/images/dendrobate.png”
File truncated at 100 lines see the full file
Changelog
All notable changes to DendROS are listed here, newest first. The format follows Keep a Changelog and the project uses Semantic Versioning.
1.1.0 - 2026-10-12
The headline of this release is TUI mode: ros2 launch now opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running. It is the new default; set launch_mode: classic to keep the 1.0 output.
Added
TUI mode (launch_mode: tui, the default, for ros2 launch) — docs
- Full-screen log viewer with scrollback (
tui_scrollback_lines, default 5000), line wrapping, a scrollbar and resize support. - Mouse wheel scrolling, and click-and-drag selection that copies to the clipboard through OSC 52 and
xclip/xsel/wl-copy. - Crash and parameter-change alerts stay pinned in the header instead of scrolling away.
- Falls back to classic output automatically when the output is piped or redirected, or when the terminal can’t run it.
Console commands (press \ in TUI mode) — docs
-
focus <node>...shows only the listed nodes. It matches the process name or the ROS logger name, so components inside a container can be focused one by one. -
level <lvl>shows lines at a severity or worse. Tracebacks and other lines without a level always stay visible. -
grep <text>is a live text filter with the matches highlighted. -
find <text>searches the scrollback; Tab and Shift+Tab step through the matches. -
mute <node>andunmute <node|all>hide and restore noisy nodes. -
mark [label]inserts a timestamped separator line. -
tee <file> [-c] [-a]saves the lines currently shown to a file, optionally with colors or appending. -
clearremoves every filter and mute;helplists every command and key. - Filters combine, and Esc removes the most recent one at a time.
- Tab completion for commands, node names and levels, and Up/Down command history.
Remote control and reopen — docs
-
dendros focus,find,grep,level,mute,unmute,mark,teeandclearsend the same commands to a running TUI from another terminal. -
dendros reopenreopens the last TUI run of the current terminal after it has ended, with its full scrollback.
Runtime control — docs
-
dendros disableanddendros enableswitch DendROS off and on in every terminal, including launches that are already running, without restarting them.
Output options
-
show_timestampandshow_logger_namehide the[timestamp]and[logger]brackets of node log lines for a terser output. Both can be set globally or per package. -
ignore_boldstrips bold from every color, for terminals that brighten bold text but not backgrounds and so show a badge in a different shade than its node’s text.
Other
- A
package.xml, so the repository can be indexed as a ROS package. - Documentation: new pages for TUI mode, console commands, remote control, enable and disable, troubleshooting and a ROS 2 CLI overview. Every screenshot was redone, and each console command has a short recording.
Changed
-
ros2 launchopens in the TUI viewer by default (launch_mode: tui).ros2 run, piped or redirected output, and every other command are unchanged. -
dendros configgroups its settings into tabs (Output, CLI, Unmatched, System, Diagnostics, Param Alerts, Init) instead of one long list. -
dendros initmust be run from the package root, the folder that containspackage.xml. From a subfolder it tells you where to run it instead of guessing. -
dendros initwrites nothing when it finds no nodes. Previously it created an empty config and patched the build files anyway. -
dendros initcolors its warnings yellow and its errors red, like ROS 2 does. - The
[dendROS]tag uses the same brand blue and orange everywhere it is printed.
Fixed
-
dendros initonament_cmakepackages added an install rule that putdendROS.yamlinshare/<pkg>/instead ofshare/<pkg>/config/, so the config was never found. See the upgrade notes below. -
uninstall.shnow works as root (for example in Docker), removes only the two lines the installer added to.bashrcinstead of every line mentioningdendROS, and cleans up saved TUI runs and other runtime files. Your settings file is kept. - The docs gave
afteras the defaulttag_position; the default has always beenbefore.
Upgrading from 1.0
- Pull the repository and run
bash install.shagain, then open a new terminal orsource ~/.bashrc. -
ros2 launchnow opens in the viewer, also if you saved your settings with 1.0. To keep the old scrolling output, rundendros configand set Launch mode toclassicin the Output tab, or addlaunch_mode: classicto~/.config/dendROS/defaults.yaml. - If you ran
dendros initon anament_cmakepackage with 1.0, open itsCMakeLists.txtand changeinstall(DIRECTORY config/toinstall(DIRECTORY config(no trailing slash), then rebuild.ament_pythonpackages are not affected.
1.0.0 - 2026-07-01
First release.
Added
- Group-based coloring of
ros2 launchandros2 runoutput from adendROS.yamlin each package: colors, badges, per-group options, wildcard node matching and keyword highlighting. - Named, extended, hex and raw ANSI colors, and
tag_onlyorfull_linecoloring. -
dendros initto generate a config from a package’s launch files, with--recursiveand--labels. -
dendros config, an interactive editor for the global settings. - Config merging: configs of packages included by a launch file are merged in automatically.
- Crash alert banner, Python traceback highlighting and parameter change alerts.
- Colorized
ros2 node list,node info,topic list,service list,action list,param listandparam describe, sharing the colors of the running launch. -
DENDROS_DISABLE=1andDENDROS_DEBUG=1environment variables. - Host and Docker installation.
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged dendros at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | Color-coded terminal output for ROS 2 — group nodes by color, highlight crashes and tracebacks, zero changes to your launch files or workflow. |
| Checkout URI | https://github.com/mlisi1/DendROS.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-12 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Michele Lisi
Authors
- Michele Lisi
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.
Vanilla ros2 launch
|
With DendROS |
|---|---|
![]() |
![]() |
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.
And since 1.1, ros2 launch opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running.
New in 1.1: TUI mode
ros2 launch now opens in a full-screen log viewer:
- Scroll back and copy — the whole run stays in the scrollback; drag with the mouse to copy. Crash and parameter alerts stay pinned in the header.
-
Filter and search with
\—focuson some nodes, filter bylevelorgrep,findtext and step through the matches,mutethe noisy ones. Filters stack, andEscpeels them off one at a time. -
markandtee— drop a timestamped marker before you poke the robot, then save exactly what you see to a file for the bug report. -
Drive it from another terminal —
dendros focus planner_server,dendros grep timeout, … reach the running launch, so you don’t have to switch panes. -
dendros reopen— closed it too early? Bring back the last run, scrollback and all.
It falls back to the classic output on its own when the output is piped or redirected, so scripts and CI are not affected. Prefer the plain scrolling output? Set launch_mode: classic. → TUI Mode · → Console commands
Features
-
Color by group
One config file per package maps node groups to colors, badges, and display rules. Wildcards cover whole families of nodes (
nav2_*), and keywords can be highlighted per group or package-wide.
-
One command to get started
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.
-
The main
ros2CLI commands, colorizedros2 node list,node info,topic list,service list,action list,param listandparam describeuse the same group colors and badges, with no extra config. → Full list
-
Crashes, tracebacks and parameter changes
A banner flags crashed nodes the moment they die and lists the exit code. Python tracebacks are colored automatically. When a parameter changes at runtime, a notice shows the node, the parameter and old → new value.
<img align=”right” src=”docs/assets/images/dendrobate.png”
File truncated at 100 lines see the full file
Changelog
All notable changes to DendROS are listed here, newest first. The format follows Keep a Changelog and the project uses Semantic Versioning.
1.1.0 - 2026-10-12
The headline of this release is TUI mode: ros2 launch now opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running. It is the new default; set launch_mode: classic to keep the 1.0 output.
Added
TUI mode (launch_mode: tui, the default, for ros2 launch) — docs
- Full-screen log viewer with scrollback (
tui_scrollback_lines, default 5000), line wrapping, a scrollbar and resize support. - Mouse wheel scrolling, and click-and-drag selection that copies to the clipboard through OSC 52 and
xclip/xsel/wl-copy. - Crash and parameter-change alerts stay pinned in the header instead of scrolling away.
- Falls back to classic output automatically when the output is piped or redirected, or when the terminal can’t run it.
Console commands (press \ in TUI mode) — docs
-
focus <node>...shows only the listed nodes. It matches the process name or the ROS logger name, so components inside a container can be focused one by one. -
level <lvl>shows lines at a severity or worse. Tracebacks and other lines without a level always stay visible. -
grep <text>is a live text filter with the matches highlighted. -
find <text>searches the scrollback; Tab and Shift+Tab step through the matches. -
mute <node>andunmute <node|all>hide and restore noisy nodes. -
mark [label]inserts a timestamped separator line. -
tee <file> [-c] [-a]saves the lines currently shown to a file, optionally with colors or appending. -
clearremoves every filter and mute;helplists every command and key. - Filters combine, and Esc removes the most recent one at a time.
- Tab completion for commands, node names and levels, and Up/Down command history.
Remote control and reopen — docs
-
dendros focus,find,grep,level,mute,unmute,mark,teeandclearsend the same commands to a running TUI from another terminal. -
dendros reopenreopens the last TUI run of the current terminal after it has ended, with its full scrollback.
Runtime control — docs
-
dendros disableanddendros enableswitch DendROS off and on in every terminal, including launches that are already running, without restarting them.
Output options
-
show_timestampandshow_logger_namehide the[timestamp]and[logger]brackets of node log lines for a terser output. Both can be set globally or per package. -
ignore_boldstrips bold from every color, for terminals that brighten bold text but not backgrounds and so show a badge in a different shade than its node’s text.
Other
- A
package.xml, so the repository can be indexed as a ROS package. - Documentation: new pages for TUI mode, console commands, remote control, enable and disable, troubleshooting and a ROS 2 CLI overview. Every screenshot was redone, and each console command has a short recording.
Changed
-
ros2 launchopens in the TUI viewer by default (launch_mode: tui).ros2 run, piped or redirected output, and every other command are unchanged. -
dendros configgroups its settings into tabs (Output, CLI, Unmatched, System, Diagnostics, Param Alerts, Init) instead of one long list. -
dendros initmust be run from the package root, the folder that containspackage.xml. From a subfolder it tells you where to run it instead of guessing. -
dendros initwrites nothing when it finds no nodes. Previously it created an empty config and patched the build files anyway. -
dendros initcolors its warnings yellow and its errors red, like ROS 2 does. - The
[dendROS]tag uses the same brand blue and orange everywhere it is printed.
Fixed
-
dendros initonament_cmakepackages added an install rule that putdendROS.yamlinshare/<pkg>/instead ofshare/<pkg>/config/, so the config was never found. See the upgrade notes below. -
uninstall.shnow works as root (for example in Docker), removes only the two lines the installer added to.bashrcinstead of every line mentioningdendROS, and cleans up saved TUI runs and other runtime files. Your settings file is kept. - The docs gave
afteras the defaulttag_position; the default has always beenbefore.
Upgrading from 1.0
- Pull the repository and run
bash install.shagain, then open a new terminal orsource ~/.bashrc. -
ros2 launchnow opens in the viewer, also if you saved your settings with 1.0. To keep the old scrolling output, rundendros configand set Launch mode toclassicin the Output tab, or addlaunch_mode: classicto~/.config/dendROS/defaults.yaml. - If you ran
dendros initon anament_cmakepackage with 1.0, open itsCMakeLists.txtand changeinstall(DIRECTORY config/toinstall(DIRECTORY config(no trailing slash), then rebuild.ament_pythonpackages are not affected.
1.0.0 - 2026-07-01
First release.
Added
- Group-based coloring of
ros2 launchandros2 runoutput from adendROS.yamlin each package: colors, badges, per-group options, wildcard node matching and keyword highlighting. - Named, extended, hex and raw ANSI colors, and
tag_onlyorfull_linecoloring. -
dendros initto generate a config from a package’s launch files, with--recursiveand--labels. -
dendros config, an interactive editor for the global settings. - Config merging: configs of packages included by a launch file are merged in automatically.
- Crash alert banner, Python traceback highlighting and parameter change alerts.
- Colorized
ros2 node list,node info,topic list,service list,action list,param listandparam describe, sharing the colors of the running launch. -
DENDROS_DISABLE=1andDENDROS_DEBUG=1environment variables. - Host and Docker installation.
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged dendros at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | Color-coded terminal output for ROS 2 — group nodes by color, highlight crashes and tracebacks, zero changes to your launch files or workflow. |
| Checkout URI | https://github.com/mlisi1/DendROS.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-12 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Michele Lisi
Authors
- Michele Lisi
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.
Vanilla ros2 launch
|
With DendROS |
|---|---|
![]() |
![]() |
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.
And since 1.1, ros2 launch opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running.
New in 1.1: TUI mode
ros2 launch now opens in a full-screen log viewer:
- Scroll back and copy — the whole run stays in the scrollback; drag with the mouse to copy. Crash and parameter alerts stay pinned in the header.
-
Filter and search with
\—focuson some nodes, filter bylevelorgrep,findtext and step through the matches,mutethe noisy ones. Filters stack, andEscpeels them off one at a time. -
markandtee— drop a timestamped marker before you poke the robot, then save exactly what you see to a file for the bug report. -
Drive it from another terminal —
dendros focus planner_server,dendros grep timeout, … reach the running launch, so you don’t have to switch panes. -
dendros reopen— closed it too early? Bring back the last run, scrollback and all.
It falls back to the classic output on its own when the output is piped or redirected, so scripts and CI are not affected. Prefer the plain scrolling output? Set launch_mode: classic. → TUI Mode · → Console commands
Features
-
Color by group
One config file per package maps node groups to colors, badges, and display rules. Wildcards cover whole families of nodes (
nav2_*), and keywords can be highlighted per group or package-wide.
-
One command to get started
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.
-
The main
ros2CLI commands, colorizedros2 node list,node info,topic list,service list,action list,param listandparam describeuse the same group colors and badges, with no extra config. → Full list
-
Crashes, tracebacks and parameter changes
A banner flags crashed nodes the moment they die and lists the exit code. Python tracebacks are colored automatically. When a parameter changes at runtime, a notice shows the node, the parameter and old → new value.
<img align=”right” src=”docs/assets/images/dendrobate.png”
File truncated at 100 lines see the full file
Changelog
All notable changes to DendROS are listed here, newest first. The format follows Keep a Changelog and the project uses Semantic Versioning.
1.1.0 - 2026-10-12
The headline of this release is TUI mode: ros2 launch now opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running. It is the new default; set launch_mode: classic to keep the 1.0 output.
Added
TUI mode (launch_mode: tui, the default, for ros2 launch) — docs
- Full-screen log viewer with scrollback (
tui_scrollback_lines, default 5000), line wrapping, a scrollbar and resize support. - Mouse wheel scrolling, and click-and-drag selection that copies to the clipboard through OSC 52 and
xclip/xsel/wl-copy. - Crash and parameter-change alerts stay pinned in the header instead of scrolling away.
- Falls back to classic output automatically when the output is piped or redirected, or when the terminal can’t run it.
Console commands (press \ in TUI mode) — docs
-
focus <node>...shows only the listed nodes. It matches the process name or the ROS logger name, so components inside a container can be focused one by one. -
level <lvl>shows lines at a severity or worse. Tracebacks and other lines without a level always stay visible. -
grep <text>is a live text filter with the matches highlighted. -
find <text>searches the scrollback; Tab and Shift+Tab step through the matches. -
mute <node>andunmute <node|all>hide and restore noisy nodes. -
mark [label]inserts a timestamped separator line. -
tee <file> [-c] [-a]saves the lines currently shown to a file, optionally with colors or appending. -
clearremoves every filter and mute;helplists every command and key. - Filters combine, and Esc removes the most recent one at a time.
- Tab completion for commands, node names and levels, and Up/Down command history.
Remote control and reopen — docs
-
dendros focus,find,grep,level,mute,unmute,mark,teeandclearsend the same commands to a running TUI from another terminal. -
dendros reopenreopens the last TUI run of the current terminal after it has ended, with its full scrollback.
Runtime control — docs
-
dendros disableanddendros enableswitch DendROS off and on in every terminal, including launches that are already running, without restarting them.
Output options
-
show_timestampandshow_logger_namehide the[timestamp]and[logger]brackets of node log lines for a terser output. Both can be set globally or per package. -
ignore_boldstrips bold from every color, for terminals that brighten bold text but not backgrounds and so show a badge in a different shade than its node’s text.
Other
- A
package.xml, so the repository can be indexed as a ROS package. - Documentation: new pages for TUI mode, console commands, remote control, enable and disable, troubleshooting and a ROS 2 CLI overview. Every screenshot was redone, and each console command has a short recording.
Changed
-
ros2 launchopens in the TUI viewer by default (launch_mode: tui).ros2 run, piped or redirected output, and every other command are unchanged. -
dendros configgroups its settings into tabs (Output, CLI, Unmatched, System, Diagnostics, Param Alerts, Init) instead of one long list. -
dendros initmust be run from the package root, the folder that containspackage.xml. From a subfolder it tells you where to run it instead of guessing. -
dendros initwrites nothing when it finds no nodes. Previously it created an empty config and patched the build files anyway. -
dendros initcolors its warnings yellow and its errors red, like ROS 2 does. - The
[dendROS]tag uses the same brand blue and orange everywhere it is printed.
Fixed
-
dendros initonament_cmakepackages added an install rule that putdendROS.yamlinshare/<pkg>/instead ofshare/<pkg>/config/, so the config was never found. See the upgrade notes below. -
uninstall.shnow works as root (for example in Docker), removes only the two lines the installer added to.bashrcinstead of every line mentioningdendROS, and cleans up saved TUI runs and other runtime files. Your settings file is kept. - The docs gave
afteras the defaulttag_position; the default has always beenbefore.
Upgrading from 1.0
- Pull the repository and run
bash install.shagain, then open a new terminal orsource ~/.bashrc. -
ros2 launchnow opens in the viewer, also if you saved your settings with 1.0. To keep the old scrolling output, rundendros configand set Launch mode toclassicin the Output tab, or addlaunch_mode: classicto~/.config/dendROS/defaults.yaml. - If you ran
dendros initon anament_cmakepackage with 1.0, open itsCMakeLists.txtand changeinstall(DIRECTORY config/toinstall(DIRECTORY config(no trailing slash), then rebuild.ament_pythonpackages are not affected.
1.0.0 - 2026-07-01
First release.
Added
- Group-based coloring of
ros2 launchandros2 runoutput from adendROS.yamlin each package: colors, badges, per-group options, wildcard node matching and keyword highlighting. - Named, extended, hex and raw ANSI colors, and
tag_onlyorfull_linecoloring. -
dendros initto generate a config from a package’s launch files, with--recursiveand--labels. -
dendros config, an interactive editor for the global settings. - Config merging: configs of packages included by a launch file are merged in automatically.
- Crash alert banner, Python traceback highlighting and parameter change alerts.
- Colorized
ros2 node list,node info,topic list,service list,action list,param listandparam describe, sharing the colors of the running launch. -
DENDROS_DISABLE=1andDENDROS_DEBUG=1environment variables. - Host and Docker installation.
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged dendros at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | Color-coded terminal output for ROS 2 — group nodes by color, highlight crashes and tracebacks, zero changes to your launch files or workflow. |
| Checkout URI | https://github.com/mlisi1/DendROS.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-12 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Michele Lisi
Authors
- Michele Lisi
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.
Vanilla ros2 launch
|
With DendROS |
|---|---|
![]() |
![]() |
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.
And since 1.1, ros2 launch opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running.
New in 1.1: TUI mode
ros2 launch now opens in a full-screen log viewer:
- Scroll back and copy — the whole run stays in the scrollback; drag with the mouse to copy. Crash and parameter alerts stay pinned in the header.
-
Filter and search with
\—focuson some nodes, filter bylevelorgrep,findtext and step through the matches,mutethe noisy ones. Filters stack, andEscpeels them off one at a time. -
markandtee— drop a timestamped marker before you poke the robot, then save exactly what you see to a file for the bug report. -
Drive it from another terminal —
dendros focus planner_server,dendros grep timeout, … reach the running launch, so you don’t have to switch panes. -
dendros reopen— closed it too early? Bring back the last run, scrollback and all.
It falls back to the classic output on its own when the output is piped or redirected, so scripts and CI are not affected. Prefer the plain scrolling output? Set launch_mode: classic. → TUI Mode · → Console commands
Features
-
Color by group
One config file per package maps node groups to colors, badges, and display rules. Wildcards cover whole families of nodes (
nav2_*), and keywords can be highlighted per group or package-wide.
-
One command to get started
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.
-
The main
ros2CLI commands, colorizedros2 node list,node info,topic list,service list,action list,param listandparam describeuse the same group colors and badges, with no extra config. → Full list
-
Crashes, tracebacks and parameter changes
A banner flags crashed nodes the moment they die and lists the exit code. Python tracebacks are colored automatically. When a parameter changes at runtime, a notice shows the node, the parameter and old → new value.
<img align=”right” src=”docs/assets/images/dendrobate.png”
File truncated at 100 lines see the full file
Changelog
All notable changes to DendROS are listed here, newest first. The format follows Keep a Changelog and the project uses Semantic Versioning.
1.1.0 - 2026-10-12
The headline of this release is TUI mode: ros2 launch now opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running. It is the new default; set launch_mode: classic to keep the 1.0 output.
Added
TUI mode (launch_mode: tui, the default, for ros2 launch) — docs
- Full-screen log viewer with scrollback (
tui_scrollback_lines, default 5000), line wrapping, a scrollbar and resize support. - Mouse wheel scrolling, and click-and-drag selection that copies to the clipboard through OSC 52 and
xclip/xsel/wl-copy. - Crash and parameter-change alerts stay pinned in the header instead of scrolling away.
- Falls back to classic output automatically when the output is piped or redirected, or when the terminal can’t run it.
Console commands (press \ in TUI mode) — docs
-
focus <node>...shows only the listed nodes. It matches the process name or the ROS logger name, so components inside a container can be focused one by one. -
level <lvl>shows lines at a severity or worse. Tracebacks and other lines without a level always stay visible. -
grep <text>is a live text filter with the matches highlighted. -
find <text>searches the scrollback; Tab and Shift+Tab step through the matches. -
mute <node>andunmute <node|all>hide and restore noisy nodes. -
mark [label]inserts a timestamped separator line. -
tee <file> [-c] [-a]saves the lines currently shown to a file, optionally with colors or appending. -
clearremoves every filter and mute;helplists every command and key. - Filters combine, and Esc removes the most recent one at a time.
- Tab completion for commands, node names and levels, and Up/Down command history.
Remote control and reopen — docs
-
dendros focus,find,grep,level,mute,unmute,mark,teeandclearsend the same commands to a running TUI from another terminal. -
dendros reopenreopens the last TUI run of the current terminal after it has ended, with its full scrollback.
Runtime control — docs
-
dendros disableanddendros enableswitch DendROS off and on in every terminal, including launches that are already running, without restarting them.
Output options
-
show_timestampandshow_logger_namehide the[timestamp]and[logger]brackets of node log lines for a terser output. Both can be set globally or per package. -
ignore_boldstrips bold from every color, for terminals that brighten bold text but not backgrounds and so show a badge in a different shade than its node’s text.
Other
- A
package.xml, so the repository can be indexed as a ROS package. - Documentation: new pages for TUI mode, console commands, remote control, enable and disable, troubleshooting and a ROS 2 CLI overview. Every screenshot was redone, and each console command has a short recording.
Changed
-
ros2 launchopens in the TUI viewer by default (launch_mode: tui).ros2 run, piped or redirected output, and every other command are unchanged. -
dendros configgroups its settings into tabs (Output, CLI, Unmatched, System, Diagnostics, Param Alerts, Init) instead of one long list. -
dendros initmust be run from the package root, the folder that containspackage.xml. From a subfolder it tells you where to run it instead of guessing. -
dendros initwrites nothing when it finds no nodes. Previously it created an empty config and patched the build files anyway. -
dendros initcolors its warnings yellow and its errors red, like ROS 2 does. - The
[dendROS]tag uses the same brand blue and orange everywhere it is printed.
Fixed
-
dendros initonament_cmakepackages added an install rule that putdendROS.yamlinshare/<pkg>/instead ofshare/<pkg>/config/, so the config was never found. See the upgrade notes below. -
uninstall.shnow works as root (for example in Docker), removes only the two lines the installer added to.bashrcinstead of every line mentioningdendROS, and cleans up saved TUI runs and other runtime files. Your settings file is kept. - The docs gave
afteras the defaulttag_position; the default has always beenbefore.
Upgrading from 1.0
- Pull the repository and run
bash install.shagain, then open a new terminal orsource ~/.bashrc. -
ros2 launchnow opens in the viewer, also if you saved your settings with 1.0. To keep the old scrolling output, rundendros configand set Launch mode toclassicin the Output tab, or addlaunch_mode: classicto~/.config/dendROS/defaults.yaml. - If you ran
dendros initon anament_cmakepackage with 1.0, open itsCMakeLists.txtand changeinstall(DIRECTORY config/toinstall(DIRECTORY config(no trailing slash), then rebuild.ament_pythonpackages are not affected.
1.0.0 - 2026-07-01
First release.
Added
- Group-based coloring of
ros2 launchandros2 runoutput from adendROS.yamlin each package: colors, badges, per-group options, wildcard node matching and keyword highlighting. - Named, extended, hex and raw ANSI colors, and
tag_onlyorfull_linecoloring. -
dendros initto generate a config from a package’s launch files, with--recursiveand--labels. -
dendros config, an interactive editor for the global settings. - Config merging: configs of packages included by a launch file are merged in automatically.
- Crash alert banner, Python traceback highlighting and parameter change alerts.
- Colorized
ros2 node list,node info,topic list,service list,action list,param listandparam describe, sharing the colors of the running launch. -
DENDROS_DISABLE=1andDENDROS_DEBUG=1environment variables. - Host and Docker installation.
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged dendros at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | Color-coded terminal output for ROS 2 — group nodes by color, highlight crashes and tracebacks, zero changes to your launch files or workflow. |
| Checkout URI | https://github.com/mlisi1/DendROS.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-12 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Michele Lisi
Authors
- Michele Lisi
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.
Vanilla ros2 launch
|
With DendROS |
|---|---|
![]() |
![]() |
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.
And since 1.1, ros2 launch opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running.
New in 1.1: TUI mode
ros2 launch now opens in a full-screen log viewer:
- Scroll back and copy — the whole run stays in the scrollback; drag with the mouse to copy. Crash and parameter alerts stay pinned in the header.
-
Filter and search with
\—focuson some nodes, filter bylevelorgrep,findtext and step through the matches,mutethe noisy ones. Filters stack, andEscpeels them off one at a time. -
markandtee— drop a timestamped marker before you poke the robot, then save exactly what you see to a file for the bug report. -
Drive it from another terminal —
dendros focus planner_server,dendros grep timeout, … reach the running launch, so you don’t have to switch panes. -
dendros reopen— closed it too early? Bring back the last run, scrollback and all.
It falls back to the classic output on its own when the output is piped or redirected, so scripts and CI are not affected. Prefer the plain scrolling output? Set launch_mode: classic. → TUI Mode · → Console commands
Features
-
Color by group
One config file per package maps node groups to colors, badges, and display rules. Wildcards cover whole families of nodes (
nav2_*), and keywords can be highlighted per group or package-wide.
-
One command to get started
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.
-
The main
ros2CLI commands, colorizedros2 node list,node info,topic list,service list,action list,param listandparam describeuse the same group colors and badges, with no extra config. → Full list
-
Crashes, tracebacks and parameter changes
A banner flags crashed nodes the moment they die and lists the exit code. Python tracebacks are colored automatically. When a parameter changes at runtime, a notice shows the node, the parameter and old → new value.
<img align=”right” src=”docs/assets/images/dendrobate.png”
File truncated at 100 lines see the full file
Changelog
All notable changes to DendROS are listed here, newest first. The format follows Keep a Changelog and the project uses Semantic Versioning.
1.1.0 - 2026-10-12
The headline of this release is TUI mode: ros2 launch now opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running. It is the new default; set launch_mode: classic to keep the 1.0 output.
Added
TUI mode (launch_mode: tui, the default, for ros2 launch) — docs
- Full-screen log viewer with scrollback (
tui_scrollback_lines, default 5000), line wrapping, a scrollbar and resize support. - Mouse wheel scrolling, and click-and-drag selection that copies to the clipboard through OSC 52 and
xclip/xsel/wl-copy. - Crash and parameter-change alerts stay pinned in the header instead of scrolling away.
- Falls back to classic output automatically when the output is piped or redirected, or when the terminal can’t run it.
Console commands (press \ in TUI mode) — docs
-
focus <node>...shows only the listed nodes. It matches the process name or the ROS logger name, so components inside a container can be focused one by one. -
level <lvl>shows lines at a severity or worse. Tracebacks and other lines without a level always stay visible. -
grep <text>is a live text filter with the matches highlighted. -
find <text>searches the scrollback; Tab and Shift+Tab step through the matches. -
mute <node>andunmute <node|all>hide and restore noisy nodes. -
mark [label]inserts a timestamped separator line. -
tee <file> [-c] [-a]saves the lines currently shown to a file, optionally with colors or appending. -
clearremoves every filter and mute;helplists every command and key. - Filters combine, and Esc removes the most recent one at a time.
- Tab completion for commands, node names and levels, and Up/Down command history.
Remote control and reopen — docs
-
dendros focus,find,grep,level,mute,unmute,mark,teeandclearsend the same commands to a running TUI from another terminal. -
dendros reopenreopens the last TUI run of the current terminal after it has ended, with its full scrollback.
Runtime control — docs
-
dendros disableanddendros enableswitch DendROS off and on in every terminal, including launches that are already running, without restarting them.
Output options
-
show_timestampandshow_logger_namehide the[timestamp]and[logger]brackets of node log lines for a terser output. Both can be set globally or per package. -
ignore_boldstrips bold from every color, for terminals that brighten bold text but not backgrounds and so show a badge in a different shade than its node’s text.
Other
- A
package.xml, so the repository can be indexed as a ROS package. - Documentation: new pages for TUI mode, console commands, remote control, enable and disable, troubleshooting and a ROS 2 CLI overview. Every screenshot was redone, and each console command has a short recording.
Changed
-
ros2 launchopens in the TUI viewer by default (launch_mode: tui).ros2 run, piped or redirected output, and every other command are unchanged. -
dendros configgroups its settings into tabs (Output, CLI, Unmatched, System, Diagnostics, Param Alerts, Init) instead of one long list. -
dendros initmust be run from the package root, the folder that containspackage.xml. From a subfolder it tells you where to run it instead of guessing. -
dendros initwrites nothing when it finds no nodes. Previously it created an empty config and patched the build files anyway. -
dendros initcolors its warnings yellow and its errors red, like ROS 2 does. - The
[dendROS]tag uses the same brand blue and orange everywhere it is printed.
Fixed
-
dendros initonament_cmakepackages added an install rule that putdendROS.yamlinshare/<pkg>/instead ofshare/<pkg>/config/, so the config was never found. See the upgrade notes below. -
uninstall.shnow works as root (for example in Docker), removes only the two lines the installer added to.bashrcinstead of every line mentioningdendROS, and cleans up saved TUI runs and other runtime files. Your settings file is kept. - The docs gave
afteras the defaulttag_position; the default has always beenbefore.
Upgrading from 1.0
- Pull the repository and run
bash install.shagain, then open a new terminal orsource ~/.bashrc. -
ros2 launchnow opens in the viewer, also if you saved your settings with 1.0. To keep the old scrolling output, rundendros configand set Launch mode toclassicin the Output tab, or addlaunch_mode: classicto~/.config/dendROS/defaults.yaml. - If you ran
dendros initon anament_cmakepackage with 1.0, open itsCMakeLists.txtand changeinstall(DIRECTORY config/toinstall(DIRECTORY config(no trailing slash), then rebuild.ament_pythonpackages are not affected.
1.0.0 - 2026-07-01
First release.
Added
- Group-based coloring of
ros2 launchandros2 runoutput from adendROS.yamlin each package: colors, badges, per-group options, wildcard node matching and keyword highlighting. - Named, extended, hex and raw ANSI colors, and
tag_onlyorfull_linecoloring. -
dendros initto generate a config from a package’s launch files, with--recursiveand--labels. -
dendros config, an interactive editor for the global settings. - Config merging: configs of packages included by a launch file are merged in automatically.
- Crash alert banner, Python traceback highlighting and parameter change alerts.
- Colorized
ros2 node list,node info,topic list,service list,action list,param listandparam describe, sharing the colors of the running launch. -
DENDROS_DISABLE=1andDENDROS_DEBUG=1environment variables. - Host and Docker installation.
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged dendros at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | Color-coded terminal output for ROS 2 — group nodes by color, highlight crashes and tracebacks, zero changes to your launch files or workflow. |
| Checkout URI | https://github.com/mlisi1/DendROS.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-12 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Michele Lisi
Authors
- Michele Lisi
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.
Vanilla ros2 launch
|
With DendROS |
|---|---|
![]() |
![]() |
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.
And since 1.1, ros2 launch opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running.
New in 1.1: TUI mode
ros2 launch now opens in a full-screen log viewer:
- Scroll back and copy — the whole run stays in the scrollback; drag with the mouse to copy. Crash and parameter alerts stay pinned in the header.
-
Filter and search with
\—focuson some nodes, filter bylevelorgrep,findtext and step through the matches,mutethe noisy ones. Filters stack, andEscpeels them off one at a time. -
markandtee— drop a timestamped marker before you poke the robot, then save exactly what you see to a file for the bug report. -
Drive it from another terminal —
dendros focus planner_server,dendros grep timeout, … reach the running launch, so you don’t have to switch panes. -
dendros reopen— closed it too early? Bring back the last run, scrollback and all.
It falls back to the classic output on its own when the output is piped or redirected, so scripts and CI are not affected. Prefer the plain scrolling output? Set launch_mode: classic. → TUI Mode · → Console commands
Features
-
Color by group
One config file per package maps node groups to colors, badges, and display rules. Wildcards cover whole families of nodes (
nav2_*), and keywords can be highlighted per group or package-wide.
-
One command to get started
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.
-
The main
ros2CLI commands, colorizedros2 node list,node info,topic list,service list,action list,param listandparam describeuse the same group colors and badges, with no extra config. → Full list
-
Crashes, tracebacks and parameter changes
A banner flags crashed nodes the moment they die and lists the exit code. Python tracebacks are colored automatically. When a parameter changes at runtime, a notice shows the node, the parameter and old → new value.
<img align=”right” src=”docs/assets/images/dendrobate.png”
File truncated at 100 lines see the full file
Changelog
All notable changes to DendROS are listed here, newest first. The format follows Keep a Changelog and the project uses Semantic Versioning.
1.1.0 - 2026-10-12
The headline of this release is TUI mode: ros2 launch now opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running. It is the new default; set launch_mode: classic to keep the 1.0 output.
Added
TUI mode (launch_mode: tui, the default, for ros2 launch) — docs
- Full-screen log viewer with scrollback (
tui_scrollback_lines, default 5000), line wrapping, a scrollbar and resize support. - Mouse wheel scrolling, and click-and-drag selection that copies to the clipboard through OSC 52 and
xclip/xsel/wl-copy. - Crash and parameter-change alerts stay pinned in the header instead of scrolling away.
- Falls back to classic output automatically when the output is piped or redirected, or when the terminal can’t run it.
Console commands (press \ in TUI mode) — docs
-
focus <node>...shows only the listed nodes. It matches the process name or the ROS logger name, so components inside a container can be focused one by one. -
level <lvl>shows lines at a severity or worse. Tracebacks and other lines without a level always stay visible. -
grep <text>is a live text filter with the matches highlighted. -
find <text>searches the scrollback; Tab and Shift+Tab step through the matches. -
mute <node>andunmute <node|all>hide and restore noisy nodes. -
mark [label]inserts a timestamped separator line. -
tee <file> [-c] [-a]saves the lines currently shown to a file, optionally with colors or appending. -
clearremoves every filter and mute;helplists every command and key. - Filters combine, and Esc removes the most recent one at a time.
- Tab completion for commands, node names and levels, and Up/Down command history.
Remote control and reopen — docs
-
dendros focus,find,grep,level,mute,unmute,mark,teeandclearsend the same commands to a running TUI from another terminal. -
dendros reopenreopens the last TUI run of the current terminal after it has ended, with its full scrollback.
Runtime control — docs
-
dendros disableanddendros enableswitch DendROS off and on in every terminal, including launches that are already running, without restarting them.
Output options
-
show_timestampandshow_logger_namehide the[timestamp]and[logger]brackets of node log lines for a terser output. Both can be set globally or per package. -
ignore_boldstrips bold from every color, for terminals that brighten bold text but not backgrounds and so show a badge in a different shade than its node’s text.
Other
- A
package.xml, so the repository can be indexed as a ROS package. - Documentation: new pages for TUI mode, console commands, remote control, enable and disable, troubleshooting and a ROS 2 CLI overview. Every screenshot was redone, and each console command has a short recording.
Changed
-
ros2 launchopens in the TUI viewer by default (launch_mode: tui).ros2 run, piped or redirected output, and every other command are unchanged. -
dendros configgroups its settings into tabs (Output, CLI, Unmatched, System, Diagnostics, Param Alerts, Init) instead of one long list. -
dendros initmust be run from the package root, the folder that containspackage.xml. From a subfolder it tells you where to run it instead of guessing. -
dendros initwrites nothing when it finds no nodes. Previously it created an empty config and patched the build files anyway. -
dendros initcolors its warnings yellow and its errors red, like ROS 2 does. - The
[dendROS]tag uses the same brand blue and orange everywhere it is printed.
Fixed
-
dendros initonament_cmakepackages added an install rule that putdendROS.yamlinshare/<pkg>/instead ofshare/<pkg>/config/, so the config was never found. See the upgrade notes below. -
uninstall.shnow works as root (for example in Docker), removes only the two lines the installer added to.bashrcinstead of every line mentioningdendROS, and cleans up saved TUI runs and other runtime files. Your settings file is kept. - The docs gave
afteras the defaulttag_position; the default has always beenbefore.
Upgrading from 1.0
- Pull the repository and run
bash install.shagain, then open a new terminal orsource ~/.bashrc. -
ros2 launchnow opens in the viewer, also if you saved your settings with 1.0. To keep the old scrolling output, rundendros configand set Launch mode toclassicin the Output tab, or addlaunch_mode: classicto~/.config/dendROS/defaults.yaml. - If you ran
dendros initon anament_cmakepackage with 1.0, open itsCMakeLists.txtand changeinstall(DIRECTORY config/toinstall(DIRECTORY config(no trailing slash), then rebuild.ament_pythonpackages are not affected.
1.0.0 - 2026-07-01
First release.
Added
- Group-based coloring of
ros2 launchandros2 runoutput from adendROS.yamlin each package: colors, badges, per-group options, wildcard node matching and keyword highlighting. - Named, extended, hex and raw ANSI colors, and
tag_onlyorfull_linecoloring. -
dendros initto generate a config from a package’s launch files, with--recursiveand--labels. -
dendros config, an interactive editor for the global settings. - Config merging: configs of packages included by a launch file are merged in automatically.
- Crash alert banner, Python traceback highlighting and parameter change alerts.
- Colorized
ros2 node list,node info,topic list,service list,action list,param listandparam describe, sharing the colors of the running launch. -
DENDROS_DISABLE=1andDENDROS_DEBUG=1environment variables. - Host and Docker installation.
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged dendros at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | Color-coded terminal output for ROS 2 — group nodes by color, highlight crashes and tracebacks, zero changes to your launch files or workflow. |
| Checkout URI | https://github.com/mlisi1/DendROS.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-12 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Michele Lisi
Authors
- Michele Lisi
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.
Vanilla ros2 launch
|
With DendROS |
|---|---|
![]() |
![]() |
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.
And since 1.1, ros2 launch opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running.
New in 1.1: TUI mode
ros2 launch now opens in a full-screen log viewer:
- Scroll back and copy — the whole run stays in the scrollback; drag with the mouse to copy. Crash and parameter alerts stay pinned in the header.
-
Filter and search with
\—focuson some nodes, filter bylevelorgrep,findtext and step through the matches,mutethe noisy ones. Filters stack, andEscpeels them off one at a time. -
markandtee— drop a timestamped marker before you poke the robot, then save exactly what you see to a file for the bug report. -
Drive it from another terminal —
dendros focus planner_server,dendros grep timeout, … reach the running launch, so you don’t have to switch panes. -
dendros reopen— closed it too early? Bring back the last run, scrollback and all.
It falls back to the classic output on its own when the output is piped or redirected, so scripts and CI are not affected. Prefer the plain scrolling output? Set launch_mode: classic. → TUI Mode · → Console commands
Features
-
Color by group
One config file per package maps node groups to colors, badges, and display rules. Wildcards cover whole families of nodes (
nav2_*), and keywords can be highlighted per group or package-wide.
-
One command to get started
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.
-
The main
ros2CLI commands, colorizedros2 node list,node info,topic list,service list,action list,param listandparam describeuse the same group colors and badges, with no extra config. → Full list
-
Crashes, tracebacks and parameter changes
A banner flags crashed nodes the moment they die and lists the exit code. Python tracebacks are colored automatically. When a parameter changes at runtime, a notice shows the node, the parameter and old → new value.
<img align=”right” src=”docs/assets/images/dendrobate.png”
File truncated at 100 lines see the full file
Changelog
All notable changes to DendROS are listed here, newest first. The format follows Keep a Changelog and the project uses Semantic Versioning.
1.1.0 - 2026-10-12
The headline of this release is TUI mode: ros2 launch now opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running. It is the new default; set launch_mode: classic to keep the 1.0 output.
Added
TUI mode (launch_mode: tui, the default, for ros2 launch) — docs
- Full-screen log viewer with scrollback (
tui_scrollback_lines, default 5000), line wrapping, a scrollbar and resize support. - Mouse wheel scrolling, and click-and-drag selection that copies to the clipboard through OSC 52 and
xclip/xsel/wl-copy. - Crash and parameter-change alerts stay pinned in the header instead of scrolling away.
- Falls back to classic output automatically when the output is piped or redirected, or when the terminal can’t run it.
Console commands (press \ in TUI mode) — docs
-
focus <node>...shows only the listed nodes. It matches the process name or the ROS logger name, so components inside a container can be focused one by one. -
level <lvl>shows lines at a severity or worse. Tracebacks and other lines without a level always stay visible. -
grep <text>is a live text filter with the matches highlighted. -
find <text>searches the scrollback; Tab and Shift+Tab step through the matches. -
mute <node>andunmute <node|all>hide and restore noisy nodes. -
mark [label]inserts a timestamped separator line. -
tee <file> [-c] [-a]saves the lines currently shown to a file, optionally with colors or appending. -
clearremoves every filter and mute;helplists every command and key. - Filters combine, and Esc removes the most recent one at a time.
- Tab completion for commands, node names and levels, and Up/Down command history.
Remote control and reopen — docs
-
dendros focus,find,grep,level,mute,unmute,mark,teeandclearsend the same commands to a running TUI from another terminal. -
dendros reopenreopens the last TUI run of the current terminal after it has ended, with its full scrollback.
Runtime control — docs
-
dendros disableanddendros enableswitch DendROS off and on in every terminal, including launches that are already running, without restarting them.
Output options
-
show_timestampandshow_logger_namehide the[timestamp]and[logger]brackets of node log lines for a terser output. Both can be set globally or per package. -
ignore_boldstrips bold from every color, for terminals that brighten bold text but not backgrounds and so show a badge in a different shade than its node’s text.
Other
- A
package.xml, so the repository can be indexed as a ROS package. - Documentation: new pages for TUI mode, console commands, remote control, enable and disable, troubleshooting and a ROS 2 CLI overview. Every screenshot was redone, and each console command has a short recording.
Changed
-
ros2 launchopens in the TUI viewer by default (launch_mode: tui).ros2 run, piped or redirected output, and every other command are unchanged. -
dendros configgroups its settings into tabs (Output, CLI, Unmatched, System, Diagnostics, Param Alerts, Init) instead of one long list. -
dendros initmust be run from the package root, the folder that containspackage.xml. From a subfolder it tells you where to run it instead of guessing. -
dendros initwrites nothing when it finds no nodes. Previously it created an empty config and patched the build files anyway. -
dendros initcolors its warnings yellow and its errors red, like ROS 2 does. - The
[dendROS]tag uses the same brand blue and orange everywhere it is printed.
Fixed
-
dendros initonament_cmakepackages added an install rule that putdendROS.yamlinshare/<pkg>/instead ofshare/<pkg>/config/, so the config was never found. See the upgrade notes below. -
uninstall.shnow works as root (for example in Docker), removes only the two lines the installer added to.bashrcinstead of every line mentioningdendROS, and cleans up saved TUI runs and other runtime files. Your settings file is kept. - The docs gave
afteras the defaulttag_position; the default has always beenbefore.
Upgrading from 1.0
- Pull the repository and run
bash install.shagain, then open a new terminal orsource ~/.bashrc. -
ros2 launchnow opens in the viewer, also if you saved your settings with 1.0. To keep the old scrolling output, rundendros configand set Launch mode toclassicin the Output tab, or addlaunch_mode: classicto~/.config/dendROS/defaults.yaml. - If you ran
dendros initon anament_cmakepackage with 1.0, open itsCMakeLists.txtand changeinstall(DIRECTORY config/toinstall(DIRECTORY config(no trailing slash), then rebuild.ament_pythonpackages are not affected.
1.0.0 - 2026-07-01
First release.
Added
- Group-based coloring of
ros2 launchandros2 runoutput from adendROS.yamlin each package: colors, badges, per-group options, wildcard node matching and keyword highlighting. - Named, extended, hex and raw ANSI colors, and
tag_onlyorfull_linecoloring. -
dendros initto generate a config from a package’s launch files, with--recursiveand--labels. -
dendros config, an interactive editor for the global settings. - Config merging: configs of packages included by a launch file are merged in automatically.
- Crash alert banner, Python traceback highlighting and parameter change alerts.
- Colorized
ros2 node list,node info,topic list,service list,action list,param listandparam describe, sharing the colors of the running launch. -
DENDROS_DISABLE=1andDENDROS_DEBUG=1environment variables. - Host and Docker installation.
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged dendros at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | Color-coded terminal output for ROS 2 — group nodes by color, highlight crashes and tracebacks, zero changes to your launch files or workflow. |
| Checkout URI | https://github.com/mlisi1/DendROS.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-12 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Michele Lisi
Authors
- Michele Lisi
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.
Vanilla ros2 launch
|
With DendROS |
|---|---|
![]() |
![]() |
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.
And since 1.1, ros2 launch opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running.
New in 1.1: TUI mode
ros2 launch now opens in a full-screen log viewer:
- Scroll back and copy — the whole run stays in the scrollback; drag with the mouse to copy. Crash and parameter alerts stay pinned in the header.
-
Filter and search with
\—focuson some nodes, filter bylevelorgrep,findtext and step through the matches,mutethe noisy ones. Filters stack, andEscpeels them off one at a time. -
markandtee— drop a timestamped marker before you poke the robot, then save exactly what you see to a file for the bug report. -
Drive it from another terminal —
dendros focus planner_server,dendros grep timeout, … reach the running launch, so you don’t have to switch panes. -
dendros reopen— closed it too early? Bring back the last run, scrollback and all.
It falls back to the classic output on its own when the output is piped or redirected, so scripts and CI are not affected. Prefer the plain scrolling output? Set launch_mode: classic. → TUI Mode · → Console commands
Features
-
Color by group
One config file per package maps node groups to colors, badges, and display rules. Wildcards cover whole families of nodes (
nav2_*), and keywords can be highlighted per group or package-wide.
-
One command to get started
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.
-
The main
ros2CLI commands, colorizedros2 node list,node info,topic list,service list,action list,param listandparam describeuse the same group colors and badges, with no extra config. → Full list
-
Crashes, tracebacks and parameter changes
A banner flags crashed nodes the moment they die and lists the exit code. Python tracebacks are colored automatically. When a parameter changes at runtime, a notice shows the node, the parameter and old → new value.
<img align=”right” src=”docs/assets/images/dendrobate.png”
File truncated at 100 lines see the full file
Changelog
All notable changes to DendROS are listed here, newest first. The format follows Keep a Changelog and the project uses Semantic Versioning.
1.1.0 - 2026-10-12
The headline of this release is TUI mode: ros2 launch now opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running. It is the new default; set launch_mode: classic to keep the 1.0 output.
Added
TUI mode (launch_mode: tui, the default, for ros2 launch) — docs
- Full-screen log viewer with scrollback (
tui_scrollback_lines, default 5000), line wrapping, a scrollbar and resize support. - Mouse wheel scrolling, and click-and-drag selection that copies to the clipboard through OSC 52 and
xclip/xsel/wl-copy. - Crash and parameter-change alerts stay pinned in the header instead of scrolling away.
- Falls back to classic output automatically when the output is piped or redirected, or when the terminal can’t run it.
Console commands (press \ in TUI mode) — docs
-
focus <node>...shows only the listed nodes. It matches the process name or the ROS logger name, so components inside a container can be focused one by one. -
level <lvl>shows lines at a severity or worse. Tracebacks and other lines without a level always stay visible. -
grep <text>is a live text filter with the matches highlighted. -
find <text>searches the scrollback; Tab and Shift+Tab step through the matches. -
mute <node>andunmute <node|all>hide and restore noisy nodes. -
mark [label]inserts a timestamped separator line. -
tee <file> [-c] [-a]saves the lines currently shown to a file, optionally with colors or appending. -
clearremoves every filter and mute;helplists every command and key. - Filters combine, and Esc removes the most recent one at a time.
- Tab completion for commands, node names and levels, and Up/Down command history.
Remote control and reopen — docs
-
dendros focus,find,grep,level,mute,unmute,mark,teeandclearsend the same commands to a running TUI from another terminal. -
dendros reopenreopens the last TUI run of the current terminal after it has ended, with its full scrollback.
Runtime control — docs
-
dendros disableanddendros enableswitch DendROS off and on in every terminal, including launches that are already running, without restarting them.
Output options
-
show_timestampandshow_logger_namehide the[timestamp]and[logger]brackets of node log lines for a terser output. Both can be set globally or per package. -
ignore_boldstrips bold from every color, for terminals that brighten bold text but not backgrounds and so show a badge in a different shade than its node’s text.
Other
- A
package.xml, so the repository can be indexed as a ROS package. - Documentation: new pages for TUI mode, console commands, remote control, enable and disable, troubleshooting and a ROS 2 CLI overview. Every screenshot was redone, and each console command has a short recording.
Changed
-
ros2 launchopens in the TUI viewer by default (launch_mode: tui).ros2 run, piped or redirected output, and every other command are unchanged. -
dendros configgroups its settings into tabs (Output, CLI, Unmatched, System, Diagnostics, Param Alerts, Init) instead of one long list. -
dendros initmust be run from the package root, the folder that containspackage.xml. From a subfolder it tells you where to run it instead of guessing. -
dendros initwrites nothing when it finds no nodes. Previously it created an empty config and patched the build files anyway. -
dendros initcolors its warnings yellow and its errors red, like ROS 2 does. - The
[dendROS]tag uses the same brand blue and orange everywhere it is printed.
Fixed
-
dendros initonament_cmakepackages added an install rule that putdendROS.yamlinshare/<pkg>/instead ofshare/<pkg>/config/, so the config was never found. See the upgrade notes below. -
uninstall.shnow works as root (for example in Docker), removes only the two lines the installer added to.bashrcinstead of every line mentioningdendROS, and cleans up saved TUI runs and other runtime files. Your settings file is kept. - The docs gave
afteras the defaulttag_position; the default has always beenbefore.
Upgrading from 1.0
- Pull the repository and run
bash install.shagain, then open a new terminal orsource ~/.bashrc. -
ros2 launchnow opens in the viewer, also if you saved your settings with 1.0. To keep the old scrolling output, rundendros configand set Launch mode toclassicin the Output tab, or addlaunch_mode: classicto~/.config/dendROS/defaults.yaml. - If you ran
dendros initon anament_cmakepackage with 1.0, open itsCMakeLists.txtand changeinstall(DIRECTORY config/toinstall(DIRECTORY config(no trailing slash), then rebuild.ament_pythonpackages are not affected.
1.0.0 - 2026-07-01
First release.
Added
- Group-based coloring of
ros2 launchandros2 runoutput from adendROS.yamlin each package: colors, badges, per-group options, wildcard node matching and keyword highlighting. - Named, extended, hex and raw ANSI colors, and
tag_onlyorfull_linecoloring. -
dendros initto generate a config from a package’s launch files, with--recursiveand--labels. -
dendros config, an interactive editor for the global settings. - Config merging: configs of packages included by a launch file are merged in automatically.
- Crash alert banner, Python traceback highlighting and parameter change alerts.
- Colorized
ros2 node list,node info,topic list,service list,action list,param listandparam describe, sharing the colors of the running launch. -
DENDROS_DISABLE=1andDENDROS_DEBUG=1environment variables. - Host and Docker installation.
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged dendros at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | Color-coded terminal output for ROS 2 — group nodes by color, highlight crashes and tracebacks, zero changes to your launch files or workflow. |
| Checkout URI | https://github.com/mlisi1/DendROS.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-12 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Michele Lisi
Authors
- Michele Lisi
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.
Vanilla ros2 launch
|
With DendROS |
|---|---|
![]() |
![]() |
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.
And since 1.1, ros2 launch opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running.
New in 1.1: TUI mode
ros2 launch now opens in a full-screen log viewer:
- Scroll back and copy — the whole run stays in the scrollback; drag with the mouse to copy. Crash and parameter alerts stay pinned in the header.
-
Filter and search with
\—focuson some nodes, filter bylevelorgrep,findtext and step through the matches,mutethe noisy ones. Filters stack, andEscpeels them off one at a time. -
markandtee— drop a timestamped marker before you poke the robot, then save exactly what you see to a file for the bug report. -
Drive it from another terminal —
dendros focus planner_server,dendros grep timeout, … reach the running launch, so you don’t have to switch panes. -
dendros reopen— closed it too early? Bring back the last run, scrollback and all.
It falls back to the classic output on its own when the output is piped or redirected, so scripts and CI are not affected. Prefer the plain scrolling output? Set launch_mode: classic. → TUI Mode · → Console commands
Features
-
Color by group
One config file per package maps node groups to colors, badges, and display rules. Wildcards cover whole families of nodes (
nav2_*), and keywords can be highlighted per group or package-wide.
-
One command to get started
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.
-
The main
ros2CLI commands, colorizedros2 node list,node info,topic list,service list,action list,param listandparam describeuse the same group colors and badges, with no extra config. → Full list
-
Crashes, tracebacks and parameter changes
A banner flags crashed nodes the moment they die and lists the exit code. Python tracebacks are colored automatically. When a parameter changes at runtime, a notice shows the node, the parameter and old → new value.
<img align=”right” src=”docs/assets/images/dendrobate.png”
File truncated at 100 lines see the full file
Changelog
All notable changes to DendROS are listed here, newest first. The format follows Keep a Changelog and the project uses Semantic Versioning.
1.1.0 - 2026-10-12
The headline of this release is TUI mode: ros2 launch now opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running. It is the new default; set launch_mode: classic to keep the 1.0 output.
Added
TUI mode (launch_mode: tui, the default, for ros2 launch) — docs
- Full-screen log viewer with scrollback (
tui_scrollback_lines, default 5000), line wrapping, a scrollbar and resize support. - Mouse wheel scrolling, and click-and-drag selection that copies to the clipboard through OSC 52 and
xclip/xsel/wl-copy. - Crash and parameter-change alerts stay pinned in the header instead of scrolling away.
- Falls back to classic output automatically when the output is piped or redirected, or when the terminal can’t run it.
Console commands (press \ in TUI mode) — docs
-
focus <node>...shows only the listed nodes. It matches the process name or the ROS logger name, so components inside a container can be focused one by one. -
level <lvl>shows lines at a severity or worse. Tracebacks and other lines without a level always stay visible. -
grep <text>is a live text filter with the matches highlighted. -
find <text>searches the scrollback; Tab and Shift+Tab step through the matches. -
mute <node>andunmute <node|all>hide and restore noisy nodes. -
mark [label]inserts a timestamped separator line. -
tee <file> [-c] [-a]saves the lines currently shown to a file, optionally with colors or appending. -
clearremoves every filter and mute;helplists every command and key. - Filters combine, and Esc removes the most recent one at a time.
- Tab completion for commands, node names and levels, and Up/Down command history.
Remote control and reopen — docs
-
dendros focus,find,grep,level,mute,unmute,mark,teeandclearsend the same commands to a running TUI from another terminal. -
dendros reopenreopens the last TUI run of the current terminal after it has ended, with its full scrollback.
Runtime control — docs
-
dendros disableanddendros enableswitch DendROS off and on in every terminal, including launches that are already running, without restarting them.
Output options
-
show_timestampandshow_logger_namehide the[timestamp]and[logger]brackets of node log lines for a terser output. Both can be set globally or per package. -
ignore_boldstrips bold from every color, for terminals that brighten bold text but not backgrounds and so show a badge in a different shade than its node’s text.
Other
- A
package.xml, so the repository can be indexed as a ROS package. - Documentation: new pages for TUI mode, console commands, remote control, enable and disable, troubleshooting and a ROS 2 CLI overview. Every screenshot was redone, and each console command has a short recording.
Changed
-
ros2 launchopens in the TUI viewer by default (launch_mode: tui).ros2 run, piped or redirected output, and every other command are unchanged. -
dendros configgroups its settings into tabs (Output, CLI, Unmatched, System, Diagnostics, Param Alerts, Init) instead of one long list. -
dendros initmust be run from the package root, the folder that containspackage.xml. From a subfolder it tells you where to run it instead of guessing. -
dendros initwrites nothing when it finds no nodes. Previously it created an empty config and patched the build files anyway. -
dendros initcolors its warnings yellow and its errors red, like ROS 2 does. - The
[dendROS]tag uses the same brand blue and orange everywhere it is printed.
Fixed
-
dendros initonament_cmakepackages added an install rule that putdendROS.yamlinshare/<pkg>/instead ofshare/<pkg>/config/, so the config was never found. See the upgrade notes below. -
uninstall.shnow works as root (for example in Docker), removes only the two lines the installer added to.bashrcinstead of every line mentioningdendROS, and cleans up saved TUI runs and other runtime files. Your settings file is kept. - The docs gave
afteras the defaulttag_position; the default has always beenbefore.
Upgrading from 1.0
- Pull the repository and run
bash install.shagain, then open a new terminal orsource ~/.bashrc. -
ros2 launchnow opens in the viewer, also if you saved your settings with 1.0. To keep the old scrolling output, rundendros configand set Launch mode toclassicin the Output tab, or addlaunch_mode: classicto~/.config/dendROS/defaults.yaml. - If you ran
dendros initon anament_cmakepackage with 1.0, open itsCMakeLists.txtand changeinstall(DIRECTORY config/toinstall(DIRECTORY config(no trailing slash), then rebuild.ament_pythonpackages are not affected.
1.0.0 - 2026-07-01
First release.
Added
- Group-based coloring of
ros2 launchandros2 runoutput from adendROS.yamlin each package: colors, badges, per-group options, wildcard node matching and keyword highlighting. - Named, extended, hex and raw ANSI colors, and
tag_onlyorfull_linecoloring. -
dendros initto generate a config from a package’s launch files, with--recursiveand--labels. -
dendros config, an interactive editor for the global settings. - Config merging: configs of packages included by a launch file are merged in automatically.
- Crash alert banner, Python traceback highlighting and parameter change alerts.
- Colorized
ros2 node list,node info,topic list,service list,action list,param listandparam describe, sharing the colors of the running launch. -
DENDROS_DISABLE=1andDENDROS_DEBUG=1environment variables. - Host and Docker installation.
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged dendros at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | Color-coded terminal output for ROS 2 — group nodes by color, highlight crashes and tracebacks, zero changes to your launch files or workflow. |
| Checkout URI | https://github.com/mlisi1/DendROS.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-12 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Michele Lisi
Authors
- Michele Lisi
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.
Vanilla ros2 launch
|
With DendROS |
|---|---|
![]() |
![]() |
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.
And since 1.1, ros2 launch opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running.
New in 1.1: TUI mode
ros2 launch now opens in a full-screen log viewer:
- Scroll back and copy — the whole run stays in the scrollback; drag with the mouse to copy. Crash and parameter alerts stay pinned in the header.
-
Filter and search with
\—focuson some nodes, filter bylevelorgrep,findtext and step through the matches,mutethe noisy ones. Filters stack, andEscpeels them off one at a time. -
markandtee— drop a timestamped marker before you poke the robot, then save exactly what you see to a file for the bug report. -
Drive it from another terminal —
dendros focus planner_server,dendros grep timeout, … reach the running launch, so you don’t have to switch panes. -
dendros reopen— closed it too early? Bring back the last run, scrollback and all.
It falls back to the classic output on its own when the output is piped or redirected, so scripts and CI are not affected. Prefer the plain scrolling output? Set launch_mode: classic. → TUI Mode · → Console commands
Features
-
Color by group
One config file per package maps node groups to colors, badges, and display rules. Wildcards cover whole families of nodes (
nav2_*), and keywords can be highlighted per group or package-wide.
-
One command to get started
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.
-
The main
ros2CLI commands, colorizedros2 node list,node info,topic list,service list,action list,param listandparam describeuse the same group colors and badges, with no extra config. → Full list
-
Crashes, tracebacks and parameter changes
A banner flags crashed nodes the moment they die and lists the exit code. Python tracebacks are colored automatically. When a parameter changes at runtime, a notice shows the node, the parameter and old → new value.
<img align=”right” src=”docs/assets/images/dendrobate.png”
File truncated at 100 lines see the full file
Changelog
All notable changes to DendROS are listed here, newest first. The format follows Keep a Changelog and the project uses Semantic Versioning.
1.1.0 - 2026-10-12
The headline of this release is TUI mode: ros2 launch now opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running. It is the new default; set launch_mode: classic to keep the 1.0 output.
Added
TUI mode (launch_mode: tui, the default, for ros2 launch) — docs
- Full-screen log viewer with scrollback (
tui_scrollback_lines, default 5000), line wrapping, a scrollbar and resize support. - Mouse wheel scrolling, and click-and-drag selection that copies to the clipboard through OSC 52 and
xclip/xsel/wl-copy. - Crash and parameter-change alerts stay pinned in the header instead of scrolling away.
- Falls back to classic output automatically when the output is piped or redirected, or when the terminal can’t run it.
Console commands (press \ in TUI mode) — docs
-
focus <node>...shows only the listed nodes. It matches the process name or the ROS logger name, so components inside a container can be focused one by one. -
level <lvl>shows lines at a severity or worse. Tracebacks and other lines without a level always stay visible. -
grep <text>is a live text filter with the matches highlighted. -
find <text>searches the scrollback; Tab and Shift+Tab step through the matches. -
mute <node>andunmute <node|all>hide and restore noisy nodes. -
mark [label]inserts a timestamped separator line. -
tee <file> [-c] [-a]saves the lines currently shown to a file, optionally with colors or appending. -
clearremoves every filter and mute;helplists every command and key. - Filters combine, and Esc removes the most recent one at a time.
- Tab completion for commands, node names and levels, and Up/Down command history.
Remote control and reopen — docs
-
dendros focus,find,grep,level,mute,unmute,mark,teeandclearsend the same commands to a running TUI from another terminal. -
dendros reopenreopens the last TUI run of the current terminal after it has ended, with its full scrollback.
Runtime control — docs
-
dendros disableanddendros enableswitch DendROS off and on in every terminal, including launches that are already running, without restarting them.
Output options
-
show_timestampandshow_logger_namehide the[timestamp]and[logger]brackets of node log lines for a terser output. Both can be set globally or per package. -
ignore_boldstrips bold from every color, for terminals that brighten bold text but not backgrounds and so show a badge in a different shade than its node’s text.
Other
- A
package.xml, so the repository can be indexed as a ROS package. - Documentation: new pages for TUI mode, console commands, remote control, enable and disable, troubleshooting and a ROS 2 CLI overview. Every screenshot was redone, and each console command has a short recording.
Changed
-
ros2 launchopens in the TUI viewer by default (launch_mode: tui).ros2 run, piped or redirected output, and every other command are unchanged. -
dendros configgroups its settings into tabs (Output, CLI, Unmatched, System, Diagnostics, Param Alerts, Init) instead of one long list. -
dendros initmust be run from the package root, the folder that containspackage.xml. From a subfolder it tells you where to run it instead of guessing. -
dendros initwrites nothing when it finds no nodes. Previously it created an empty config and patched the build files anyway. -
dendros initcolors its warnings yellow and its errors red, like ROS 2 does. - The
[dendROS]tag uses the same brand blue and orange everywhere it is printed.
Fixed
-
dendros initonament_cmakepackages added an install rule that putdendROS.yamlinshare/<pkg>/instead ofshare/<pkg>/config/, so the config was never found. See the upgrade notes below. -
uninstall.shnow works as root (for example in Docker), removes only the two lines the installer added to.bashrcinstead of every line mentioningdendROS, and cleans up saved TUI runs and other runtime files. Your settings file is kept. - The docs gave
afteras the defaulttag_position; the default has always beenbefore.
Upgrading from 1.0
- Pull the repository and run
bash install.shagain, then open a new terminal orsource ~/.bashrc. -
ros2 launchnow opens in the viewer, also if you saved your settings with 1.0. To keep the old scrolling output, rundendros configand set Launch mode toclassicin the Output tab, or addlaunch_mode: classicto~/.config/dendROS/defaults.yaml. - If you ran
dendros initon anament_cmakepackage with 1.0, open itsCMakeLists.txtand changeinstall(DIRECTORY config/toinstall(DIRECTORY config(no trailing slash), then rebuild.ament_pythonpackages are not affected.
1.0.0 - 2026-07-01
First release.
Added
- Group-based coloring of
ros2 launchandros2 runoutput from adendROS.yamlin each package: colors, badges, per-group options, wildcard node matching and keyword highlighting. - Named, extended, hex and raw ANSI colors, and
tag_onlyorfull_linecoloring. -
dendros initto generate a config from a package’s launch files, with--recursiveand--labels. -
dendros config, an interactive editor for the global settings. - Config merging: configs of packages included by a launch file are merged in automatically.
- Crash alert banner, Python traceback highlighting and parameter change alerts.
- Colorized
ros2 node list,node info,topic list,service list,action list,param listandparam describe, sharing the colors of the running launch. -
DENDROS_DISABLE=1andDENDROS_DEBUG=1environment variables. - Host and Docker installation.
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged dendros at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | Color-coded terminal output for ROS 2 — group nodes by color, highlight crashes and tracebacks, zero changes to your launch files or workflow. |
| Checkout URI | https://github.com/mlisi1/DendROS.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-12 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Michele Lisi
Authors
- Michele Lisi
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.
Vanilla ros2 launch
|
With DendROS |
|---|---|
![]() |
![]() |
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.
And since 1.1, ros2 launch opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running.
New in 1.1: TUI mode
ros2 launch now opens in a full-screen log viewer:
- Scroll back and copy — the whole run stays in the scrollback; drag with the mouse to copy. Crash and parameter alerts stay pinned in the header.
-
Filter and search with
\—focuson some nodes, filter bylevelorgrep,findtext and step through the matches,mutethe noisy ones. Filters stack, andEscpeels them off one at a time. -
markandtee— drop a timestamped marker before you poke the robot, then save exactly what you see to a file for the bug report. -
Drive it from another terminal —
dendros focus planner_server,dendros grep timeout, … reach the running launch, so you don’t have to switch panes. -
dendros reopen— closed it too early? Bring back the last run, scrollback and all.
It falls back to the classic output on its own when the output is piped or redirected, so scripts and CI are not affected. Prefer the plain scrolling output? Set launch_mode: classic. → TUI Mode · → Console commands
Features
-
Color by group
One config file per package maps node groups to colors, badges, and display rules. Wildcards cover whole families of nodes (
nav2_*), and keywords can be highlighted per group or package-wide.
-
One command to get started
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.
-
The main
ros2CLI commands, colorizedros2 node list,node info,topic list,service list,action list,param listandparam describeuse the same group colors and badges, with no extra config. → Full list
-
Crashes, tracebacks and parameter changes
A banner flags crashed nodes the moment they die and lists the exit code. Python tracebacks are colored automatically. When a parameter changes at runtime, a notice shows the node, the parameter and old → new value.
<img align=”right” src=”docs/assets/images/dendrobate.png”
File truncated at 100 lines see the full file
Changelog
All notable changes to DendROS are listed here, newest first. The format follows Keep a Changelog and the project uses Semantic Versioning.
1.1.0 - 2026-10-12
The headline of this release is TUI mode: ros2 launch now opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running. It is the new default; set launch_mode: classic to keep the 1.0 output.
Added
TUI mode (launch_mode: tui, the default, for ros2 launch) — docs
- Full-screen log viewer with scrollback (
tui_scrollback_lines, default 5000), line wrapping, a scrollbar and resize support. - Mouse wheel scrolling, and click-and-drag selection that copies to the clipboard through OSC 52 and
xclip/xsel/wl-copy. - Crash and parameter-change alerts stay pinned in the header instead of scrolling away.
- Falls back to classic output automatically when the output is piped or redirected, or when the terminal can’t run it.
Console commands (press \ in TUI mode) — docs
-
focus <node>...shows only the listed nodes. It matches the process name or the ROS logger name, so components inside a container can be focused one by one. -
level <lvl>shows lines at a severity or worse. Tracebacks and other lines without a level always stay visible. -
grep <text>is a live text filter with the matches highlighted. -
find <text>searches the scrollback; Tab and Shift+Tab step through the matches. -
mute <node>andunmute <node|all>hide and restore noisy nodes. -
mark [label]inserts a timestamped separator line. -
tee <file> [-c] [-a]saves the lines currently shown to a file, optionally with colors or appending. -
clearremoves every filter and mute;helplists every command and key. - Filters combine, and Esc removes the most recent one at a time.
- Tab completion for commands, node names and levels, and Up/Down command history.
Remote control and reopen — docs
-
dendros focus,find,grep,level,mute,unmute,mark,teeandclearsend the same commands to a running TUI from another terminal. -
dendros reopenreopens the last TUI run of the current terminal after it has ended, with its full scrollback.
Runtime control — docs
-
dendros disableanddendros enableswitch DendROS off and on in every terminal, including launches that are already running, without restarting them.
Output options
-
show_timestampandshow_logger_namehide the[timestamp]and[logger]brackets of node log lines for a terser output. Both can be set globally or per package. -
ignore_boldstrips bold from every color, for terminals that brighten bold text but not backgrounds and so show a badge in a different shade than its node’s text.
Other
- A
package.xml, so the repository can be indexed as a ROS package. - Documentation: new pages for TUI mode, console commands, remote control, enable and disable, troubleshooting and a ROS 2 CLI overview. Every screenshot was redone, and each console command has a short recording.
Changed
-
ros2 launchopens in the TUI viewer by default (launch_mode: tui).ros2 run, piped or redirected output, and every other command are unchanged. -
dendros configgroups its settings into tabs (Output, CLI, Unmatched, System, Diagnostics, Param Alerts, Init) instead of one long list. -
dendros initmust be run from the package root, the folder that containspackage.xml. From a subfolder it tells you where to run it instead of guessing. -
dendros initwrites nothing when it finds no nodes. Previously it created an empty config and patched the build files anyway. -
dendros initcolors its warnings yellow and its errors red, like ROS 2 does. - The
[dendROS]tag uses the same brand blue and orange everywhere it is printed.
Fixed
-
dendros initonament_cmakepackages added an install rule that putdendROS.yamlinshare/<pkg>/instead ofshare/<pkg>/config/, so the config was never found. See the upgrade notes below. -
uninstall.shnow works as root (for example in Docker), removes only the two lines the installer added to.bashrcinstead of every line mentioningdendROS, and cleans up saved TUI runs and other runtime files. Your settings file is kept. - The docs gave
afteras the defaulttag_position; the default has always beenbefore.
Upgrading from 1.0
- Pull the repository and run
bash install.shagain, then open a new terminal orsource ~/.bashrc. -
ros2 launchnow opens in the viewer, also if you saved your settings with 1.0. To keep the old scrolling output, rundendros configand set Launch mode toclassicin the Output tab, or addlaunch_mode: classicto~/.config/dendROS/defaults.yaml. - If you ran
dendros initon anament_cmakepackage with 1.0, open itsCMakeLists.txtand changeinstall(DIRECTORY config/toinstall(DIRECTORY config(no trailing slash), then rebuild.ament_pythonpackages are not affected.
1.0.0 - 2026-07-01
First release.
Added
- Group-based coloring of
ros2 launchandros2 runoutput from adendROS.yamlin each package: colors, badges, per-group options, wildcard node matching and keyword highlighting. - Named, extended, hex and raw ANSI colors, and
tag_onlyorfull_linecoloring. -
dendros initto generate a config from a package’s launch files, with--recursiveand--labels. -
dendros config, an interactive editor for the global settings. - Config merging: configs of packages included by a launch file are merged in automatically.
- Crash alert banner, Python traceback highlighting and parameter change alerts.
- Colorized
ros2 node list,node info,topic list,service list,action list,param listandparam describe, sharing the colors of the running launch. -
DENDROS_DISABLE=1andDENDROS_DEBUG=1environment variables. - Host and Docker installation.
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged dendros at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | Color-coded terminal output for ROS 2 — group nodes by color, highlight crashes and tracebacks, zero changes to your launch files or workflow. |
| Checkout URI | https://github.com/mlisi1/DendROS.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-12 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Michele Lisi
Authors
- Michele Lisi
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.
Vanilla ros2 launch
|
With DendROS |
|---|---|
![]() |
![]() |
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.
And since 1.1, ros2 launch opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running.
New in 1.1: TUI mode
ros2 launch now opens in a full-screen log viewer:
- Scroll back and copy — the whole run stays in the scrollback; drag with the mouse to copy. Crash and parameter alerts stay pinned in the header.
-
Filter and search with
\—focuson some nodes, filter bylevelorgrep,findtext and step through the matches,mutethe noisy ones. Filters stack, andEscpeels them off one at a time. -
markandtee— drop a timestamped marker before you poke the robot, then save exactly what you see to a file for the bug report. -
Drive it from another terminal —
dendros focus planner_server,dendros grep timeout, … reach the running launch, so you don’t have to switch panes. -
dendros reopen— closed it too early? Bring back the last run, scrollback and all.
It falls back to the classic output on its own when the output is piped or redirected, so scripts and CI are not affected. Prefer the plain scrolling output? Set launch_mode: classic. → TUI Mode · → Console commands
Features
-
Color by group
One config file per package maps node groups to colors, badges, and display rules. Wildcards cover whole families of nodes (
nav2_*), and keywords can be highlighted per group or package-wide.
-
One command to get started
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.
-
The main
ros2CLI commands, colorizedros2 node list,node info,topic list,service list,action list,param listandparam describeuse the same group colors and badges, with no extra config. → Full list
-
Crashes, tracebacks and parameter changes
A banner flags crashed nodes the moment they die and lists the exit code. Python tracebacks are colored automatically. When a parameter changes at runtime, a notice shows the node, the parameter and old → new value.
<img align=”right” src=”docs/assets/images/dendrobate.png”
File truncated at 100 lines see the full file
Changelog
All notable changes to DendROS are listed here, newest first. The format follows Keep a Changelog and the project uses Semantic Versioning.
1.1.0 - 2026-10-12
The headline of this release is TUI mode: ros2 launch now opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running. It is the new default; set launch_mode: classic to keep the 1.0 output.
Added
TUI mode (launch_mode: tui, the default, for ros2 launch) — docs
- Full-screen log viewer with scrollback (
tui_scrollback_lines, default 5000), line wrapping, a scrollbar and resize support. - Mouse wheel scrolling, and click-and-drag selection that copies to the clipboard through OSC 52 and
xclip/xsel/wl-copy. - Crash and parameter-change alerts stay pinned in the header instead of scrolling away.
- Falls back to classic output automatically when the output is piped or redirected, or when the terminal can’t run it.
Console commands (press \ in TUI mode) — docs
-
focus <node>...shows only the listed nodes. It matches the process name or the ROS logger name, so components inside a container can be focused one by one. -
level <lvl>shows lines at a severity or worse. Tracebacks and other lines without a level always stay visible. -
grep <text>is a live text filter with the matches highlighted. -
find <text>searches the scrollback; Tab and Shift+Tab step through the matches. -
mute <node>andunmute <node|all>hide and restore noisy nodes. -
mark [label]inserts a timestamped separator line. -
tee <file> [-c] [-a]saves the lines currently shown to a file, optionally with colors or appending. -
clearremoves every filter and mute;helplists every command and key. - Filters combine, and Esc removes the most recent one at a time.
- Tab completion for commands, node names and levels, and Up/Down command history.
Remote control and reopen — docs
-
dendros focus,find,grep,level,mute,unmute,mark,teeandclearsend the same commands to a running TUI from another terminal. -
dendros reopenreopens the last TUI run of the current terminal after it has ended, with its full scrollback.
Runtime control — docs
-
dendros disableanddendros enableswitch DendROS off and on in every terminal, including launches that are already running, without restarting them.
Output options
-
show_timestampandshow_logger_namehide the[timestamp]and[logger]brackets of node log lines for a terser output. Both can be set globally or per package. -
ignore_boldstrips bold from every color, for terminals that brighten bold text but not backgrounds and so show a badge in a different shade than its node’s text.
Other
- A
package.xml, so the repository can be indexed as a ROS package. - Documentation: new pages for TUI mode, console commands, remote control, enable and disable, troubleshooting and a ROS 2 CLI overview. Every screenshot was redone, and each console command has a short recording.
Changed
-
ros2 launchopens in the TUI viewer by default (launch_mode: tui).ros2 run, piped or redirected output, and every other command are unchanged. -
dendros configgroups its settings into tabs (Output, CLI, Unmatched, System, Diagnostics, Param Alerts, Init) instead of one long list. -
dendros initmust be run from the package root, the folder that containspackage.xml. From a subfolder it tells you where to run it instead of guessing. -
dendros initwrites nothing when it finds no nodes. Previously it created an empty config and patched the build files anyway. -
dendros initcolors its warnings yellow and its errors red, like ROS 2 does. - The
[dendROS]tag uses the same brand blue and orange everywhere it is printed.
Fixed
-
dendros initonament_cmakepackages added an install rule that putdendROS.yamlinshare/<pkg>/instead ofshare/<pkg>/config/, so the config was never found. See the upgrade notes below. -
uninstall.shnow works as root (for example in Docker), removes only the two lines the installer added to.bashrcinstead of every line mentioningdendROS, and cleans up saved TUI runs and other runtime files. Your settings file is kept. - The docs gave
afteras the defaulttag_position; the default has always beenbefore.
Upgrading from 1.0
- Pull the repository and run
bash install.shagain, then open a new terminal orsource ~/.bashrc. -
ros2 launchnow opens in the viewer, also if you saved your settings with 1.0. To keep the old scrolling output, rundendros configand set Launch mode toclassicin the Output tab, or addlaunch_mode: classicto~/.config/dendROS/defaults.yaml. - If you ran
dendros initon anament_cmakepackage with 1.0, open itsCMakeLists.txtand changeinstall(DIRECTORY config/toinstall(DIRECTORY config(no trailing slash), then rebuild.ament_pythonpackages are not affected.
1.0.0 - 2026-07-01
First release.
Added
- Group-based coloring of
ros2 launchandros2 runoutput from adendROS.yamlin each package: colors, badges, per-group options, wildcard node matching and keyword highlighting. - Named, extended, hex and raw ANSI colors, and
tag_onlyorfull_linecoloring. -
dendros initto generate a config from a package’s launch files, with--recursiveand--labels. -
dendros config, an interactive editor for the global settings. - Config merging: configs of packages included by a launch file are merged in automatically.
- Crash alert banner, Python traceback highlighting and parameter change alerts.
- Colorized
ros2 node list,node info,topic list,service list,action list,param listandparam describe, sharing the colors of the running launch. -
DENDROS_DISABLE=1andDENDROS_DEBUG=1environment variables. - Host and Docker installation.
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged dendros at Robotics Stack Exchange
Package Summary
| Version | 1.1.0 |
| License | MIT |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Description | Color-coded terminal output for ROS 2 — group nodes by color, highlight crashes and tracebacks, zero changes to your launch files or workflow. |
| Checkout URI | https://github.com/mlisi1/DendROS.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-12 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Michele Lisi
Authors
- Michele Lisi
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.
Vanilla ros2 launch
|
With DendROS |
|---|---|
![]() |
![]() |
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.
And since 1.1, ros2 launch opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running.
New in 1.1: TUI mode
ros2 launch now opens in a full-screen log viewer:
- Scroll back and copy — the whole run stays in the scrollback; drag with the mouse to copy. Crash and parameter alerts stay pinned in the header.
-
Filter and search with
\—focuson some nodes, filter bylevelorgrep,findtext and step through the matches,mutethe noisy ones. Filters stack, andEscpeels them off one at a time. -
markandtee— drop a timestamped marker before you poke the robot, then save exactly what you see to a file for the bug report. -
Drive it from another terminal —
dendros focus planner_server,dendros grep timeout, … reach the running launch, so you don’t have to switch panes. -
dendros reopen— closed it too early? Bring back the last run, scrollback and all.
It falls back to the classic output on its own when the output is piped or redirected, so scripts and CI are not affected. Prefer the plain scrolling output? Set launch_mode: classic. → TUI Mode · → Console commands
Features
-
Color by group
One config file per package maps node groups to colors, badges, and display rules. Wildcards cover whole families of nodes (
nav2_*), and keywords can be highlighted per group or package-wide.
-
One command to get started
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.
-
The main
ros2CLI commands, colorizedros2 node list,node info,topic list,service list,action list,param listandparam describeuse the same group colors and badges, with no extra config. → Full list
-
Crashes, tracebacks and parameter changes
A banner flags crashed nodes the moment they die and lists the exit code. Python tracebacks are colored automatically. When a parameter changes at runtime, a notice shows the node, the parameter and old → new value.
<img align=”right” src=”docs/assets/images/dendrobate.png”
File truncated at 100 lines see the full file
Changelog
All notable changes to DendROS are listed here, newest first. The format follows Keep a Changelog and the project uses Semantic Versioning.
1.1.0 - 2026-10-12
The headline of this release is TUI mode: ros2 launch now opens in a full-screen viewer where you scroll, search and filter the log while the launch keeps running. It is the new default; set launch_mode: classic to keep the 1.0 output.
Added
TUI mode (launch_mode: tui, the default, for ros2 launch) — docs
- Full-screen log viewer with scrollback (
tui_scrollback_lines, default 5000), line wrapping, a scrollbar and resize support. - Mouse wheel scrolling, and click-and-drag selection that copies to the clipboard through OSC 52 and
xclip/xsel/wl-copy. - Crash and parameter-change alerts stay pinned in the header instead of scrolling away.
- Falls back to classic output automatically when the output is piped or redirected, or when the terminal can’t run it.
Console commands (press \ in TUI mode) — docs
-
focus <node>...shows only the listed nodes. It matches the process name or the ROS logger name, so components inside a container can be focused one by one. -
level <lvl>shows lines at a severity or worse. Tracebacks and other lines without a level always stay visible. -
grep <text>is a live text filter with the matches highlighted. -
find <text>searches the scrollback; Tab and Shift+Tab step through the matches. -
mute <node>andunmute <node|all>hide and restore noisy nodes. -
mark [label]inserts a timestamped separator line. -
tee <file> [-c] [-a]saves the lines currently shown to a file, optionally with colors or appending. -
clearremoves every filter and mute;helplists every command and key. - Filters combine, and Esc removes the most recent one at a time.
- Tab completion for commands, node names and levels, and Up/Down command history.
Remote control and reopen — docs
-
dendros focus,find,grep,level,mute,unmute,mark,teeandclearsend the same commands to a running TUI from another terminal. -
dendros reopenreopens the last TUI run of the current terminal after it has ended, with its full scrollback.
Runtime control — docs
-
dendros disableanddendros enableswitch DendROS off and on in every terminal, including launches that are already running, without restarting them.
Output options
-
show_timestampandshow_logger_namehide the[timestamp]and[logger]brackets of node log lines for a terser output. Both can be set globally or per package. -
ignore_boldstrips bold from every color, for terminals that brighten bold text but not backgrounds and so show a badge in a different shade than its node’s text.
Other
- A
package.xml, so the repository can be indexed as a ROS package. - Documentation: new pages for TUI mode, console commands, remote control, enable and disable, troubleshooting and a ROS 2 CLI overview. Every screenshot was redone, and each console command has a short recording.
Changed
-
ros2 launchopens in the TUI viewer by default (launch_mode: tui).ros2 run, piped or redirected output, and every other command are unchanged. -
dendros configgroups its settings into tabs (Output, CLI, Unmatched, System, Diagnostics, Param Alerts, Init) instead of one long list. -
dendros initmust be run from the package root, the folder that containspackage.xml. From a subfolder it tells you where to run it instead of guessing. -
dendros initwrites nothing when it finds no nodes. Previously it created an empty config and patched the build files anyway. -
dendros initcolors its warnings yellow and its errors red, like ROS 2 does. - The
[dendROS]tag uses the same brand blue and orange everywhere it is printed.
Fixed
-
dendros initonament_cmakepackages added an install rule that putdendROS.yamlinshare/<pkg>/instead ofshare/<pkg>/config/, so the config was never found. See the upgrade notes below. -
uninstall.shnow works as root (for example in Docker), removes only the two lines the installer added to.bashrcinstead of every line mentioningdendROS, and cleans up saved TUI runs and other runtime files. Your settings file is kept. - The docs gave
afteras the defaulttag_position; the default has always beenbefore.
Upgrading from 1.0
- Pull the repository and run
bash install.shagain, then open a new terminal orsource ~/.bashrc. -
ros2 launchnow opens in the viewer, also if you saved your settings with 1.0. To keep the old scrolling output, rundendros configand set Launch mode toclassicin the Output tab, or addlaunch_mode: classicto~/.config/dendROS/defaults.yaml. - If you ran
dendros initon anament_cmakepackage with 1.0, open itsCMakeLists.txtand changeinstall(DIRECTORY config/toinstall(DIRECTORY config(no trailing slash), then rebuild.ament_pythonpackages are not affected.
1.0.0 - 2026-07-01
First release.
Added
- Group-based coloring of
ros2 launchandros2 runoutput from adendROS.yamlin each package: colors, badges, per-group options, wildcard node matching and keyword highlighting. - Named, extended, hex and raw ANSI colors, and
tag_onlyorfull_linecoloring. -
dendros initto generate a config from a package’s launch files, with--recursiveand--labels. -
dendros config, an interactive editor for the global settings. - Config merging: configs of packages included by a launch file are merged in automatically.
- Crash alert banner, Python traceback highlighting and parameter change alerts.
- Colorized
ros2 node list,node info,topic list,service list,action list,param listandparam describe, sharing the colors of the running launch. -
DENDROS_DISABLE=1andDENDROS_DEBUG=1environment variables. - Host and Docker installation.

