Package Summary
| Version | 0.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/GibsonHu/rosmon2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-24 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Gibson
Authors
rosmon2
rosmon2 is a rosmon-style launcher and terminal process monitor for ROS 2.
It runs launch files through the native ROS 2 launch engine, so existing
Python, XML, and YAML launch files keep their normal arguments, substitutions,
and includes.
rosmon2 is inspired by xqms/rosmon, but is
an independent ROS 2 implementation and does not require ROS 1.
Screenshot

Installation and quick start
Add this repository to a ROS 2 workspace, install its dependencies, and build
it with colcon:
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone https://github.com/GibsonHu/rosmon2.git
cd ~/ros2_ws
source /opt/ros/${ROS_DISTRO}/setup.bash
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rosmon2
source install/setup.bash
Then launch the included talker/listener demo:
mon2 launch rosmon2 demo.launch.py
Launch arguments use the standard ROS 2 name:=value syntax:
mon2 launch rosmon2 demo.launch.py namespace:=demo
You can launch a file by package and filename, as above, or by path:
mon2 launch path/to/system.launch.py use_sim_time:=true
The rosmon2 executable is an alias for mon2, so this is equivalent:
rosmon2 launch rosmon2 demo.launch.py
Terminal controls
While a launch is running, the status bar shows each process and its state.
Select a process with its displayed key (a-z, A-Z, or 0-9), then press:
| Key | Action |
|---|---|
s |
Start the selected process |
k |
Stop the selected process |
m |
Mute the selected process |
u |
Unmute the selected process |
d |
Start the selected process under gdb
|
Global controls are available without selecting a process:
| Key | Action |
|---|---|
F5 |
Toggle namespace mode |
F6 |
Start all processes |
F7 |
Stop all processes |
F8 |
Toggle WARN-and-higher output |
F9 |
Mute all process output |
F10 |
Unmute all process output |
/ |
Search nodes by full name |
Ctrl-C |
Gracefully stop the complete launch |
Node search matches substrings against full names, including namespaces. Type
/ to start searching, use Tab or the arrow keys to select a match, and
press Enter to open its node actions. Press Escape to cancel the search.
Namespace mode groups processes by their top-level ROS namespace, including
nodes in child namespaces. Each namespace displays [alive:dead] process
counts. Its background is green when all processes are alive, yellow when only
some are alive, and red when all are dead.
Select a namespace with its displayed key, then press:
| Key | Namespace action |
|---|---|
s |
Start every process in the namespace |
k |
Stop every process in the namespace |
m |
Mute output from the namespace |
u |
Unmute output from the namespace |
File truncated at 100 lines see the full file
Changelog for package rosmon2
Forthcoming
- Added a dependency-free MCP server for inspecting and controlling sessions.
- Added named control sessions, structured JSON output, log queries, event streaming, and deterministic state waits.
- Added node search, namespace grouping, and per-node process controls.
- Added a terminal process monitor backed by the native ROS 2 launch engine.
- Contributors: Gibson
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rosmon2 at Robotics Stack Exchange
Package Summary
| Version | 0.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/GibsonHu/rosmon2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-24 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Gibson
Authors
rosmon2
rosmon2 is a rosmon-style launcher and terminal process monitor for ROS 2.
It runs launch files through the native ROS 2 launch engine, so existing
Python, XML, and YAML launch files keep their normal arguments, substitutions,
and includes.
rosmon2 is inspired by xqms/rosmon, but is
an independent ROS 2 implementation and does not require ROS 1.
Screenshot

Installation and quick start
Add this repository to a ROS 2 workspace, install its dependencies, and build
it with colcon:
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone https://github.com/GibsonHu/rosmon2.git
cd ~/ros2_ws
source /opt/ros/${ROS_DISTRO}/setup.bash
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rosmon2
source install/setup.bash
Then launch the included talker/listener demo:
mon2 launch rosmon2 demo.launch.py
Launch arguments use the standard ROS 2 name:=value syntax:
mon2 launch rosmon2 demo.launch.py namespace:=demo
You can launch a file by package and filename, as above, or by path:
mon2 launch path/to/system.launch.py use_sim_time:=true
The rosmon2 executable is an alias for mon2, so this is equivalent:
rosmon2 launch rosmon2 demo.launch.py
Terminal controls
While a launch is running, the status bar shows each process and its state.
Select a process with its displayed key (a-z, A-Z, or 0-9), then press:
| Key | Action |
|---|---|
s |
Start the selected process |
k |
Stop the selected process |
m |
Mute the selected process |
u |
Unmute the selected process |
d |
Start the selected process under gdb
|
Global controls are available without selecting a process:
| Key | Action |
|---|---|
F5 |
Toggle namespace mode |
F6 |
Start all processes |
F7 |
Stop all processes |
F8 |
Toggle WARN-and-higher output |
F9 |
Mute all process output |
F10 |
Unmute all process output |
/ |
Search nodes by full name |
Ctrl-C |
Gracefully stop the complete launch |
Node search matches substrings against full names, including namespaces. Type
/ to start searching, use Tab or the arrow keys to select a match, and
press Enter to open its node actions. Press Escape to cancel the search.
Namespace mode groups processes by their top-level ROS namespace, including
nodes in child namespaces. Each namespace displays [alive:dead] process
counts. Its background is green when all processes are alive, yellow when only
some are alive, and red when all are dead.
Select a namespace with its displayed key, then press:
| Key | Namespace action |
|---|---|
s |
Start every process in the namespace |
k |
Stop every process in the namespace |
m |
Mute output from the namespace |
u |
Unmute output from the namespace |
File truncated at 100 lines see the full file
Changelog for package rosmon2
Forthcoming
- Added a dependency-free MCP server for inspecting and controlling sessions.
- Added named control sessions, structured JSON output, log queries, event streaming, and deterministic state waits.
- Added node search, namespace grouping, and per-node process controls.
- Added a terminal process monitor backed by the native ROS 2 launch engine.
- Contributors: Gibson
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rosmon2 at Robotics Stack Exchange
Package Summary
| Version | 0.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/GibsonHu/rosmon2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-24 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Gibson
Authors
rosmon2
rosmon2 is a rosmon-style launcher and terminal process monitor for ROS 2.
It runs launch files through the native ROS 2 launch engine, so existing
Python, XML, and YAML launch files keep their normal arguments, substitutions,
and includes.
rosmon2 is inspired by xqms/rosmon, but is
an independent ROS 2 implementation and does not require ROS 1.
Screenshot

Installation and quick start
Add this repository to a ROS 2 workspace, install its dependencies, and build
it with colcon:
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone https://github.com/GibsonHu/rosmon2.git
cd ~/ros2_ws
source /opt/ros/${ROS_DISTRO}/setup.bash
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rosmon2
source install/setup.bash
Then launch the included talker/listener demo:
mon2 launch rosmon2 demo.launch.py
Launch arguments use the standard ROS 2 name:=value syntax:
mon2 launch rosmon2 demo.launch.py namespace:=demo
You can launch a file by package and filename, as above, or by path:
mon2 launch path/to/system.launch.py use_sim_time:=true
The rosmon2 executable is an alias for mon2, so this is equivalent:
rosmon2 launch rosmon2 demo.launch.py
Terminal controls
While a launch is running, the status bar shows each process and its state.
Select a process with its displayed key (a-z, A-Z, or 0-9), then press:
| Key | Action |
|---|---|
s |
Start the selected process |
k |
Stop the selected process |
m |
Mute the selected process |
u |
Unmute the selected process |
d |
Start the selected process under gdb
|
Global controls are available without selecting a process:
| Key | Action |
|---|---|
F5 |
Toggle namespace mode |
F6 |
Start all processes |
F7 |
Stop all processes |
F8 |
Toggle WARN-and-higher output |
F9 |
Mute all process output |
F10 |
Unmute all process output |
/ |
Search nodes by full name |
Ctrl-C |
Gracefully stop the complete launch |
Node search matches substrings against full names, including namespaces. Type
/ to start searching, use Tab or the arrow keys to select a match, and
press Enter to open its node actions. Press Escape to cancel the search.
Namespace mode groups processes by their top-level ROS namespace, including
nodes in child namespaces. Each namespace displays [alive:dead] process
counts. Its background is green when all processes are alive, yellow when only
some are alive, and red when all are dead.
Select a namespace with its displayed key, then press:
| Key | Namespace action |
|---|---|
s |
Start every process in the namespace |
k |
Stop every process in the namespace |
m |
Mute output from the namespace |
u |
Unmute output from the namespace |
File truncated at 100 lines see the full file
Changelog for package rosmon2
Forthcoming
- Added a dependency-free MCP server for inspecting and controlling sessions.
- Added named control sessions, structured JSON output, log queries, event streaming, and deterministic state waits.
- Added node search, namespace grouping, and per-node process controls.
- Added a terminal process monitor backed by the native ROS 2 launch engine.
- Contributors: Gibson
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rosmon2 at Robotics Stack Exchange
Package Summary
| Version | 0.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/GibsonHu/rosmon2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-24 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Gibson
Authors
rosmon2
rosmon2 is a rosmon-style launcher and terminal process monitor for ROS 2.
It runs launch files through the native ROS 2 launch engine, so existing
Python, XML, and YAML launch files keep their normal arguments, substitutions,
and includes.
rosmon2 is inspired by xqms/rosmon, but is
an independent ROS 2 implementation and does not require ROS 1.
Screenshot

Installation and quick start
Add this repository to a ROS 2 workspace, install its dependencies, and build
it with colcon:
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone https://github.com/GibsonHu/rosmon2.git
cd ~/ros2_ws
source /opt/ros/${ROS_DISTRO}/setup.bash
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rosmon2
source install/setup.bash
Then launch the included talker/listener demo:
mon2 launch rosmon2 demo.launch.py
Launch arguments use the standard ROS 2 name:=value syntax:
mon2 launch rosmon2 demo.launch.py namespace:=demo
You can launch a file by package and filename, as above, or by path:
mon2 launch path/to/system.launch.py use_sim_time:=true
The rosmon2 executable is an alias for mon2, so this is equivalent:
rosmon2 launch rosmon2 demo.launch.py
Terminal controls
While a launch is running, the status bar shows each process and its state.
Select a process with its displayed key (a-z, A-Z, or 0-9), then press:
| Key | Action |
|---|---|
s |
Start the selected process |
k |
Stop the selected process |
m |
Mute the selected process |
u |
Unmute the selected process |
d |
Start the selected process under gdb
|
Global controls are available without selecting a process:
| Key | Action |
|---|---|
F5 |
Toggle namespace mode |
F6 |
Start all processes |
F7 |
Stop all processes |
F8 |
Toggle WARN-and-higher output |
F9 |
Mute all process output |
F10 |
Unmute all process output |
/ |
Search nodes by full name |
Ctrl-C |
Gracefully stop the complete launch |
Node search matches substrings against full names, including namespaces. Type
/ to start searching, use Tab or the arrow keys to select a match, and
press Enter to open its node actions. Press Escape to cancel the search.
Namespace mode groups processes by their top-level ROS namespace, including
nodes in child namespaces. Each namespace displays [alive:dead] process
counts. Its background is green when all processes are alive, yellow when only
some are alive, and red when all are dead.
Select a namespace with its displayed key, then press:
| Key | Namespace action |
|---|---|
s |
Start every process in the namespace |
k |
Stop every process in the namespace |
m |
Mute output from the namespace |
u |
Unmute output from the namespace |
File truncated at 100 lines see the full file
Changelog for package rosmon2
Forthcoming
- Added a dependency-free MCP server for inspecting and controlling sessions.
- Added named control sessions, structured JSON output, log queries, event streaming, and deterministic state waits.
- Added node search, namespace grouping, and per-node process controls.
- Added a terminal process monitor backed by the native ROS 2 launch engine.
- Contributors: Gibson
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rosmon2 at Robotics Stack Exchange
Package Summary
| Version | 0.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/GibsonHu/rosmon2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-24 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Gibson
Authors
rosmon2
rosmon2 is a rosmon-style launcher and terminal process monitor for ROS 2.
It runs launch files through the native ROS 2 launch engine, so existing
Python, XML, and YAML launch files keep their normal arguments, substitutions,
and includes.
rosmon2 is inspired by xqms/rosmon, but is
an independent ROS 2 implementation and does not require ROS 1.
Screenshot

Installation and quick start
Add this repository to a ROS 2 workspace, install its dependencies, and build
it with colcon:
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone https://github.com/GibsonHu/rosmon2.git
cd ~/ros2_ws
source /opt/ros/${ROS_DISTRO}/setup.bash
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rosmon2
source install/setup.bash
Then launch the included talker/listener demo:
mon2 launch rosmon2 demo.launch.py
Launch arguments use the standard ROS 2 name:=value syntax:
mon2 launch rosmon2 demo.launch.py namespace:=demo
You can launch a file by package and filename, as above, or by path:
mon2 launch path/to/system.launch.py use_sim_time:=true
The rosmon2 executable is an alias for mon2, so this is equivalent:
rosmon2 launch rosmon2 demo.launch.py
Terminal controls
While a launch is running, the status bar shows each process and its state.
Select a process with its displayed key (a-z, A-Z, or 0-9), then press:
| Key | Action |
|---|---|
s |
Start the selected process |
k |
Stop the selected process |
m |
Mute the selected process |
u |
Unmute the selected process |
d |
Start the selected process under gdb
|
Global controls are available without selecting a process:
| Key | Action |
|---|---|
F5 |
Toggle namespace mode |
F6 |
Start all processes |
F7 |
Stop all processes |
F8 |
Toggle WARN-and-higher output |
F9 |
Mute all process output |
F10 |
Unmute all process output |
/ |
Search nodes by full name |
Ctrl-C |
Gracefully stop the complete launch |
Node search matches substrings against full names, including namespaces. Type
/ to start searching, use Tab or the arrow keys to select a match, and
press Enter to open its node actions. Press Escape to cancel the search.
Namespace mode groups processes by their top-level ROS namespace, including
nodes in child namespaces. Each namespace displays [alive:dead] process
counts. Its background is green when all processes are alive, yellow when only
some are alive, and red when all are dead.
Select a namespace with its displayed key, then press:
| Key | Namespace action |
|---|---|
s |
Start every process in the namespace |
k |
Stop every process in the namespace |
m |
Mute output from the namespace |
u |
Unmute output from the namespace |
File truncated at 100 lines see the full file
Changelog for package rosmon2
Forthcoming
- Added a dependency-free MCP server for inspecting and controlling sessions.
- Added named control sessions, structured JSON output, log queries, event streaming, and deterministic state waits.
- Added node search, namespace grouping, and per-node process controls.
- Added a terminal process monitor backed by the native ROS 2 launch engine.
- Contributors: Gibson
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rosmon2 at Robotics Stack Exchange
Package Summary
| Version | 0.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/GibsonHu/rosmon2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-24 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Gibson
Authors
rosmon2
rosmon2 is a rosmon-style launcher and terminal process monitor for ROS 2.
It runs launch files through the native ROS 2 launch engine, so existing
Python, XML, and YAML launch files keep their normal arguments, substitutions,
and includes.
rosmon2 is inspired by xqms/rosmon, but is
an independent ROS 2 implementation and does not require ROS 1.
Screenshot

Installation and quick start
Add this repository to a ROS 2 workspace, install its dependencies, and build
it with colcon:
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone https://github.com/GibsonHu/rosmon2.git
cd ~/ros2_ws
source /opt/ros/${ROS_DISTRO}/setup.bash
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rosmon2
source install/setup.bash
Then launch the included talker/listener demo:
mon2 launch rosmon2 demo.launch.py
Launch arguments use the standard ROS 2 name:=value syntax:
mon2 launch rosmon2 demo.launch.py namespace:=demo
You can launch a file by package and filename, as above, or by path:
mon2 launch path/to/system.launch.py use_sim_time:=true
The rosmon2 executable is an alias for mon2, so this is equivalent:
rosmon2 launch rosmon2 demo.launch.py
Terminal controls
While a launch is running, the status bar shows each process and its state.
Select a process with its displayed key (a-z, A-Z, or 0-9), then press:
| Key | Action |
|---|---|
s |
Start the selected process |
k |
Stop the selected process |
m |
Mute the selected process |
u |
Unmute the selected process |
d |
Start the selected process under gdb
|
Global controls are available without selecting a process:
| Key | Action |
|---|---|
F5 |
Toggle namespace mode |
F6 |
Start all processes |
F7 |
Stop all processes |
F8 |
Toggle WARN-and-higher output |
F9 |
Mute all process output |
F10 |
Unmute all process output |
/ |
Search nodes by full name |
Ctrl-C |
Gracefully stop the complete launch |
Node search matches substrings against full names, including namespaces. Type
/ to start searching, use Tab or the arrow keys to select a match, and
press Enter to open its node actions. Press Escape to cancel the search.
Namespace mode groups processes by their top-level ROS namespace, including
nodes in child namespaces. Each namespace displays [alive:dead] process
counts. Its background is green when all processes are alive, yellow when only
some are alive, and red when all are dead.
Select a namespace with its displayed key, then press:
| Key | Namespace action |
|---|---|
s |
Start every process in the namespace |
k |
Stop every process in the namespace |
m |
Mute output from the namespace |
u |
Unmute output from the namespace |
File truncated at 100 lines see the full file
Changelog for package rosmon2
Forthcoming
- Added a dependency-free MCP server for inspecting and controlling sessions.
- Added named control sessions, structured JSON output, log queries, event streaming, and deterministic state waits.
- Added node search, namespace grouping, and per-node process controls.
- Added a terminal process monitor backed by the native ROS 2 launch engine.
- Contributors: Gibson
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rosmon2 at Robotics Stack Exchange
Package Summary
| Version | 0.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/GibsonHu/rosmon2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-24 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Gibson
Authors
rosmon2
rosmon2 is a rosmon-style launcher and terminal process monitor for ROS 2.
It runs launch files through the native ROS 2 launch engine, so existing
Python, XML, and YAML launch files keep their normal arguments, substitutions,
and includes.
rosmon2 is inspired by xqms/rosmon, but is
an independent ROS 2 implementation and does not require ROS 1.
Screenshot

Installation and quick start
Add this repository to a ROS 2 workspace, install its dependencies, and build
it with colcon:
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone https://github.com/GibsonHu/rosmon2.git
cd ~/ros2_ws
source /opt/ros/${ROS_DISTRO}/setup.bash
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rosmon2
source install/setup.bash
Then launch the included talker/listener demo:
mon2 launch rosmon2 demo.launch.py
Launch arguments use the standard ROS 2 name:=value syntax:
mon2 launch rosmon2 demo.launch.py namespace:=demo
You can launch a file by package and filename, as above, or by path:
mon2 launch path/to/system.launch.py use_sim_time:=true
The rosmon2 executable is an alias for mon2, so this is equivalent:
rosmon2 launch rosmon2 demo.launch.py
Terminal controls
While a launch is running, the status bar shows each process and its state.
Select a process with its displayed key (a-z, A-Z, or 0-9), then press:
| Key | Action |
|---|---|
s |
Start the selected process |
k |
Stop the selected process |
m |
Mute the selected process |
u |
Unmute the selected process |
d |
Start the selected process under gdb
|
Global controls are available without selecting a process:
| Key | Action |
|---|---|
F5 |
Toggle namespace mode |
F6 |
Start all processes |
F7 |
Stop all processes |
F8 |
Toggle WARN-and-higher output |
F9 |
Mute all process output |
F10 |
Unmute all process output |
/ |
Search nodes by full name |
Ctrl-C |
Gracefully stop the complete launch |
Node search matches substrings against full names, including namespaces. Type
/ to start searching, use Tab or the arrow keys to select a match, and
press Enter to open its node actions. Press Escape to cancel the search.
Namespace mode groups processes by their top-level ROS namespace, including
nodes in child namespaces. Each namespace displays [alive:dead] process
counts. Its background is green when all processes are alive, yellow when only
some are alive, and red when all are dead.
Select a namespace with its displayed key, then press:
| Key | Namespace action |
|---|---|
s |
Start every process in the namespace |
k |
Stop every process in the namespace |
m |
Mute output from the namespace |
u |
Unmute output from the namespace |
File truncated at 100 lines see the full file
Changelog for package rosmon2
Forthcoming
- Added a dependency-free MCP server for inspecting and controlling sessions.
- Added named control sessions, structured JSON output, log queries, event streaming, and deterministic state waits.
- Added node search, namespace grouping, and per-node process controls.
- Added a terminal process monitor backed by the native ROS 2 launch engine.
- Contributors: Gibson
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rosmon2 at Robotics Stack Exchange
Package Summary
| Version | 0.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/GibsonHu/rosmon2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-24 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Gibson
Authors
rosmon2
rosmon2 is a rosmon-style launcher and terminal process monitor for ROS 2.
It runs launch files through the native ROS 2 launch engine, so existing
Python, XML, and YAML launch files keep their normal arguments, substitutions,
and includes.
rosmon2 is inspired by xqms/rosmon, but is
an independent ROS 2 implementation and does not require ROS 1.
Screenshot

Installation and quick start
Add this repository to a ROS 2 workspace, install its dependencies, and build
it with colcon:
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone https://github.com/GibsonHu/rosmon2.git
cd ~/ros2_ws
source /opt/ros/${ROS_DISTRO}/setup.bash
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rosmon2
source install/setup.bash
Then launch the included talker/listener demo:
mon2 launch rosmon2 demo.launch.py
Launch arguments use the standard ROS 2 name:=value syntax:
mon2 launch rosmon2 demo.launch.py namespace:=demo
You can launch a file by package and filename, as above, or by path:
mon2 launch path/to/system.launch.py use_sim_time:=true
The rosmon2 executable is an alias for mon2, so this is equivalent:
rosmon2 launch rosmon2 demo.launch.py
Terminal controls
While a launch is running, the status bar shows each process and its state.
Select a process with its displayed key (a-z, A-Z, or 0-9), then press:
| Key | Action |
|---|---|
s |
Start the selected process |
k |
Stop the selected process |
m |
Mute the selected process |
u |
Unmute the selected process |
d |
Start the selected process under gdb
|
Global controls are available without selecting a process:
| Key | Action |
|---|---|
F5 |
Toggle namespace mode |
F6 |
Start all processes |
F7 |
Stop all processes |
F8 |
Toggle WARN-and-higher output |
F9 |
Mute all process output |
F10 |
Unmute all process output |
/ |
Search nodes by full name |
Ctrl-C |
Gracefully stop the complete launch |
Node search matches substrings against full names, including namespaces. Type
/ to start searching, use Tab or the arrow keys to select a match, and
press Enter to open its node actions. Press Escape to cancel the search.
Namespace mode groups processes by their top-level ROS namespace, including
nodes in child namespaces. Each namespace displays [alive:dead] process
counts. Its background is green when all processes are alive, yellow when only
some are alive, and red when all are dead.
Select a namespace with its displayed key, then press:
| Key | Namespace action |
|---|---|
s |
Start every process in the namespace |
k |
Stop every process in the namespace |
m |
Mute output from the namespace |
u |
Unmute output from the namespace |
File truncated at 100 lines see the full file
Changelog for package rosmon2
Forthcoming
- Added a dependency-free MCP server for inspecting and controlling sessions.
- Added named control sessions, structured JSON output, log queries, event streaming, and deterministic state waits.
- Added node search, namespace grouping, and per-node process controls.
- Added a terminal process monitor backed by the native ROS 2 launch engine.
- Contributors: Gibson
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rosmon2 at Robotics Stack Exchange
Package Summary
| Version | 0.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/GibsonHu/rosmon2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-24 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Gibson
Authors
rosmon2
rosmon2 is a rosmon-style launcher and terminal process monitor for ROS 2.
It runs launch files through the native ROS 2 launch engine, so existing
Python, XML, and YAML launch files keep their normal arguments, substitutions,
and includes.
rosmon2 is inspired by xqms/rosmon, but is
an independent ROS 2 implementation and does not require ROS 1.
Screenshot

Installation and quick start
Add this repository to a ROS 2 workspace, install its dependencies, and build
it with colcon:
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone https://github.com/GibsonHu/rosmon2.git
cd ~/ros2_ws
source /opt/ros/${ROS_DISTRO}/setup.bash
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rosmon2
source install/setup.bash
Then launch the included talker/listener demo:
mon2 launch rosmon2 demo.launch.py
Launch arguments use the standard ROS 2 name:=value syntax:
mon2 launch rosmon2 demo.launch.py namespace:=demo
You can launch a file by package and filename, as above, or by path:
mon2 launch path/to/system.launch.py use_sim_time:=true
The rosmon2 executable is an alias for mon2, so this is equivalent:
rosmon2 launch rosmon2 demo.launch.py
Terminal controls
While a launch is running, the status bar shows each process and its state.
Select a process with its displayed key (a-z, A-Z, or 0-9), then press:
| Key | Action |
|---|---|
s |
Start the selected process |
k |
Stop the selected process |
m |
Mute the selected process |
u |
Unmute the selected process |
d |
Start the selected process under gdb
|
Global controls are available without selecting a process:
| Key | Action |
|---|---|
F5 |
Toggle namespace mode |
F6 |
Start all processes |
F7 |
Stop all processes |
F8 |
Toggle WARN-and-higher output |
F9 |
Mute all process output |
F10 |
Unmute all process output |
/ |
Search nodes by full name |
Ctrl-C |
Gracefully stop the complete launch |
Node search matches substrings against full names, including namespaces. Type
/ to start searching, use Tab or the arrow keys to select a match, and
press Enter to open its node actions. Press Escape to cancel the search.
Namespace mode groups processes by their top-level ROS namespace, including
nodes in child namespaces. Each namespace displays [alive:dead] process
counts. Its background is green when all processes are alive, yellow when only
some are alive, and red when all are dead.
Select a namespace with its displayed key, then press:
| Key | Namespace action |
|---|---|
s |
Start every process in the namespace |
k |
Stop every process in the namespace |
m |
Mute output from the namespace |
u |
Unmute output from the namespace |
File truncated at 100 lines see the full file
Changelog for package rosmon2
Forthcoming
- Added a dependency-free MCP server for inspecting and controlling sessions.
- Added named control sessions, structured JSON output, log queries, event streaming, and deterministic state waits.
- Added node search, namespace grouping, and per-node process controls.
- Added a terminal process monitor backed by the native ROS 2 launch engine.
- Contributors: Gibson
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rosmon2 at Robotics Stack Exchange
Package Summary
| Version | 0.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/GibsonHu/rosmon2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-24 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Gibson
Authors
rosmon2
rosmon2 is a rosmon-style launcher and terminal process monitor for ROS 2.
It runs launch files through the native ROS 2 launch engine, so existing
Python, XML, and YAML launch files keep their normal arguments, substitutions,
and includes.
rosmon2 is inspired by xqms/rosmon, but is
an independent ROS 2 implementation and does not require ROS 1.
Screenshot

Installation and quick start
Add this repository to a ROS 2 workspace, install its dependencies, and build
it with colcon:
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone https://github.com/GibsonHu/rosmon2.git
cd ~/ros2_ws
source /opt/ros/${ROS_DISTRO}/setup.bash
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rosmon2
source install/setup.bash
Then launch the included talker/listener demo:
mon2 launch rosmon2 demo.launch.py
Launch arguments use the standard ROS 2 name:=value syntax:
mon2 launch rosmon2 demo.launch.py namespace:=demo
You can launch a file by package and filename, as above, or by path:
mon2 launch path/to/system.launch.py use_sim_time:=true
The rosmon2 executable is an alias for mon2, so this is equivalent:
rosmon2 launch rosmon2 demo.launch.py
Terminal controls
While a launch is running, the status bar shows each process and its state.
Select a process with its displayed key (a-z, A-Z, or 0-9), then press:
| Key | Action |
|---|---|
s |
Start the selected process |
k |
Stop the selected process |
m |
Mute the selected process |
u |
Unmute the selected process |
d |
Start the selected process under gdb
|
Global controls are available without selecting a process:
| Key | Action |
|---|---|
F5 |
Toggle namespace mode |
F6 |
Start all processes |
F7 |
Stop all processes |
F8 |
Toggle WARN-and-higher output |
F9 |
Mute all process output |
F10 |
Unmute all process output |
/ |
Search nodes by full name |
Ctrl-C |
Gracefully stop the complete launch |
Node search matches substrings against full names, including namespaces. Type
/ to start searching, use Tab or the arrow keys to select a match, and
press Enter to open its node actions. Press Escape to cancel the search.
Namespace mode groups processes by their top-level ROS namespace, including
nodes in child namespaces. Each namespace displays [alive:dead] process
counts. Its background is green when all processes are alive, yellow when only
some are alive, and red when all are dead.
Select a namespace with its displayed key, then press:
| Key | Namespace action |
|---|---|
s |
Start every process in the namespace |
k |
Stop every process in the namespace |
m |
Mute output from the namespace |
u |
Unmute output from the namespace |
File truncated at 100 lines see the full file
Changelog for package rosmon2
Forthcoming
- Added a dependency-free MCP server for inspecting and controlling sessions.
- Added named control sessions, structured JSON output, log queries, event streaming, and deterministic state waits.
- Added node search, namespace grouping, and per-node process controls.
- Added a terminal process monitor backed by the native ROS 2 launch engine.
- Contributors: Gibson
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rosmon2 at Robotics Stack Exchange
Package Summary
| Version | 0.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/GibsonHu/rosmon2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-24 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Gibson
Authors
rosmon2
rosmon2 is a rosmon-style launcher and terminal process monitor for ROS 2.
It runs launch files through the native ROS 2 launch engine, so existing
Python, XML, and YAML launch files keep their normal arguments, substitutions,
and includes.
rosmon2 is inspired by xqms/rosmon, but is
an independent ROS 2 implementation and does not require ROS 1.
Screenshot

Installation and quick start
Add this repository to a ROS 2 workspace, install its dependencies, and build
it with colcon:
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone https://github.com/GibsonHu/rosmon2.git
cd ~/ros2_ws
source /opt/ros/${ROS_DISTRO}/setup.bash
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rosmon2
source install/setup.bash
Then launch the included talker/listener demo:
mon2 launch rosmon2 demo.launch.py
Launch arguments use the standard ROS 2 name:=value syntax:
mon2 launch rosmon2 demo.launch.py namespace:=demo
You can launch a file by package and filename, as above, or by path:
mon2 launch path/to/system.launch.py use_sim_time:=true
The rosmon2 executable is an alias for mon2, so this is equivalent:
rosmon2 launch rosmon2 demo.launch.py
Terminal controls
While a launch is running, the status bar shows each process and its state.
Select a process with its displayed key (a-z, A-Z, or 0-9), then press:
| Key | Action |
|---|---|
s |
Start the selected process |
k |
Stop the selected process |
m |
Mute the selected process |
u |
Unmute the selected process |
d |
Start the selected process under gdb
|
Global controls are available without selecting a process:
| Key | Action |
|---|---|
F5 |
Toggle namespace mode |
F6 |
Start all processes |
F7 |
Stop all processes |
F8 |
Toggle WARN-and-higher output |
F9 |
Mute all process output |
F10 |
Unmute all process output |
/ |
Search nodes by full name |
Ctrl-C |
Gracefully stop the complete launch |
Node search matches substrings against full names, including namespaces. Type
/ to start searching, use Tab or the arrow keys to select a match, and
press Enter to open its node actions. Press Escape to cancel the search.
Namespace mode groups processes by their top-level ROS namespace, including
nodes in child namespaces. Each namespace displays [alive:dead] process
counts. Its background is green when all processes are alive, yellow when only
some are alive, and red when all are dead.
Select a namespace with its displayed key, then press:
| Key | Namespace action |
|---|---|
s |
Start every process in the namespace |
k |
Stop every process in the namespace |
m |
Mute output from the namespace |
u |
Unmute output from the namespace |
File truncated at 100 lines see the full file
Changelog for package rosmon2
Forthcoming
- Added a dependency-free MCP server for inspecting and controlling sessions.
- Added named control sessions, structured JSON output, log queries, event streaming, and deterministic state waits.
- Added node search, namespace grouping, and per-node process controls.
- Added a terminal process monitor backed by the native ROS 2 launch engine.
- Contributors: Gibson
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rosmon2 at Robotics Stack Exchange
Package Summary
| Version | 0.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/GibsonHu/rosmon2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-24 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Gibson
Authors
rosmon2
rosmon2 is a rosmon-style launcher and terminal process monitor for ROS 2.
It runs launch files through the native ROS 2 launch engine, so existing
Python, XML, and YAML launch files keep their normal arguments, substitutions,
and includes.
rosmon2 is inspired by xqms/rosmon, but is
an independent ROS 2 implementation and does not require ROS 1.
Screenshot

Installation and quick start
Add this repository to a ROS 2 workspace, install its dependencies, and build
it with colcon:
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone https://github.com/GibsonHu/rosmon2.git
cd ~/ros2_ws
source /opt/ros/${ROS_DISTRO}/setup.bash
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rosmon2
source install/setup.bash
Then launch the included talker/listener demo:
mon2 launch rosmon2 demo.launch.py
Launch arguments use the standard ROS 2 name:=value syntax:
mon2 launch rosmon2 demo.launch.py namespace:=demo
You can launch a file by package and filename, as above, or by path:
mon2 launch path/to/system.launch.py use_sim_time:=true
The rosmon2 executable is an alias for mon2, so this is equivalent:
rosmon2 launch rosmon2 demo.launch.py
Terminal controls
While a launch is running, the status bar shows each process and its state.
Select a process with its displayed key (a-z, A-Z, or 0-9), then press:
| Key | Action |
|---|---|
s |
Start the selected process |
k |
Stop the selected process |
m |
Mute the selected process |
u |
Unmute the selected process |
d |
Start the selected process under gdb
|
Global controls are available without selecting a process:
| Key | Action |
|---|---|
F5 |
Toggle namespace mode |
F6 |
Start all processes |
F7 |
Stop all processes |
F8 |
Toggle WARN-and-higher output |
F9 |
Mute all process output |
F10 |
Unmute all process output |
/ |
Search nodes by full name |
Ctrl-C |
Gracefully stop the complete launch |
Node search matches substrings against full names, including namespaces. Type
/ to start searching, use Tab or the arrow keys to select a match, and
press Enter to open its node actions. Press Escape to cancel the search.
Namespace mode groups processes by their top-level ROS namespace, including
nodes in child namespaces. Each namespace displays [alive:dead] process
counts. Its background is green when all processes are alive, yellow when only
some are alive, and red when all are dead.
Select a namespace with its displayed key, then press:
| Key | Namespace action |
|---|---|
s |
Start every process in the namespace |
k |
Stop every process in the namespace |
m |
Mute output from the namespace |
u |
Unmute output from the namespace |
File truncated at 100 lines see the full file
Changelog for package rosmon2
Forthcoming
- Added a dependency-free MCP server for inspecting and controlling sessions.
- Added named control sessions, structured JSON output, log queries, event streaming, and deterministic state waits.
- Added node search, namespace grouping, and per-node process controls.
- Added a terminal process monitor backed by the native ROS 2 launch engine.
- Contributors: Gibson
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rosmon2 at Robotics Stack Exchange
Package Summary
| Version | 0.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/GibsonHu/rosmon2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-24 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Gibson
Authors
rosmon2
rosmon2 is a rosmon-style launcher and terminal process monitor for ROS 2.
It runs launch files through the native ROS 2 launch engine, so existing
Python, XML, and YAML launch files keep their normal arguments, substitutions,
and includes.
rosmon2 is inspired by xqms/rosmon, but is
an independent ROS 2 implementation and does not require ROS 1.
Screenshot

Installation and quick start
Add this repository to a ROS 2 workspace, install its dependencies, and build
it with colcon:
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone https://github.com/GibsonHu/rosmon2.git
cd ~/ros2_ws
source /opt/ros/${ROS_DISTRO}/setup.bash
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rosmon2
source install/setup.bash
Then launch the included talker/listener demo:
mon2 launch rosmon2 demo.launch.py
Launch arguments use the standard ROS 2 name:=value syntax:
mon2 launch rosmon2 demo.launch.py namespace:=demo
You can launch a file by package and filename, as above, or by path:
mon2 launch path/to/system.launch.py use_sim_time:=true
The rosmon2 executable is an alias for mon2, so this is equivalent:
rosmon2 launch rosmon2 demo.launch.py
Terminal controls
While a launch is running, the status bar shows each process and its state.
Select a process with its displayed key (a-z, A-Z, or 0-9), then press:
| Key | Action |
|---|---|
s |
Start the selected process |
k |
Stop the selected process |
m |
Mute the selected process |
u |
Unmute the selected process |
d |
Start the selected process under gdb
|
Global controls are available without selecting a process:
| Key | Action |
|---|---|
F5 |
Toggle namespace mode |
F6 |
Start all processes |
F7 |
Stop all processes |
F8 |
Toggle WARN-and-higher output |
F9 |
Mute all process output |
F10 |
Unmute all process output |
/ |
Search nodes by full name |
Ctrl-C |
Gracefully stop the complete launch |
Node search matches substrings against full names, including namespaces. Type
/ to start searching, use Tab or the arrow keys to select a match, and
press Enter to open its node actions. Press Escape to cancel the search.
Namespace mode groups processes by their top-level ROS namespace, including
nodes in child namespaces. Each namespace displays [alive:dead] process
counts. Its background is green when all processes are alive, yellow when only
some are alive, and red when all are dead.
Select a namespace with its displayed key, then press:
| Key | Namespace action |
|---|---|
s |
Start every process in the namespace |
k |
Stop every process in the namespace |
m |
Mute output from the namespace |
u |
Unmute output from the namespace |
File truncated at 100 lines see the full file
Changelog for package rosmon2
Forthcoming
- Added a dependency-free MCP server for inspecting and controlling sessions.
- Added named control sessions, structured JSON output, log queries, event streaming, and deterministic state waits.
- Added node search, namespace grouping, and per-node process controls.
- Added a terminal process monitor backed by the native ROS 2 launch engine.
- Contributors: Gibson
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rosmon2 at Robotics Stack Exchange
Package Summary
| Version | 0.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/GibsonHu/rosmon2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-24 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Gibson
Authors
rosmon2
rosmon2 is a rosmon-style launcher and terminal process monitor for ROS 2.
It runs launch files through the native ROS 2 launch engine, so existing
Python, XML, and YAML launch files keep their normal arguments, substitutions,
and includes.
rosmon2 is inspired by xqms/rosmon, but is
an independent ROS 2 implementation and does not require ROS 1.
Screenshot

Installation and quick start
Add this repository to a ROS 2 workspace, install its dependencies, and build
it with colcon:
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone https://github.com/GibsonHu/rosmon2.git
cd ~/ros2_ws
source /opt/ros/${ROS_DISTRO}/setup.bash
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rosmon2
source install/setup.bash
Then launch the included talker/listener demo:
mon2 launch rosmon2 demo.launch.py
Launch arguments use the standard ROS 2 name:=value syntax:
mon2 launch rosmon2 demo.launch.py namespace:=demo
You can launch a file by package and filename, as above, or by path:
mon2 launch path/to/system.launch.py use_sim_time:=true
The rosmon2 executable is an alias for mon2, so this is equivalent:
rosmon2 launch rosmon2 demo.launch.py
Terminal controls
While a launch is running, the status bar shows each process and its state.
Select a process with its displayed key (a-z, A-Z, or 0-9), then press:
| Key | Action |
|---|---|
s |
Start the selected process |
k |
Stop the selected process |
m |
Mute the selected process |
u |
Unmute the selected process |
d |
Start the selected process under gdb
|
Global controls are available without selecting a process:
| Key | Action |
|---|---|
F5 |
Toggle namespace mode |
F6 |
Start all processes |
F7 |
Stop all processes |
F8 |
Toggle WARN-and-higher output |
F9 |
Mute all process output |
F10 |
Unmute all process output |
/ |
Search nodes by full name |
Ctrl-C |
Gracefully stop the complete launch |
Node search matches substrings against full names, including namespaces. Type
/ to start searching, use Tab or the arrow keys to select a match, and
press Enter to open its node actions. Press Escape to cancel the search.
Namespace mode groups processes by their top-level ROS namespace, including
nodes in child namespaces. Each namespace displays [alive:dead] process
counts. Its background is green when all processes are alive, yellow when only
some are alive, and red when all are dead.
Select a namespace with its displayed key, then press:
| Key | Namespace action |
|---|---|
s |
Start every process in the namespace |
k |
Stop every process in the namespace |
m |
Mute output from the namespace |
u |
Unmute output from the namespace |
File truncated at 100 lines see the full file
Changelog for package rosmon2
Forthcoming
- Added a dependency-free MCP server for inspecting and controlling sessions.
- Added named control sessions, structured JSON output, log queries, event streaming, and deterministic state waits.
- Added node search, namespace grouping, and per-node process controls.
- Added a terminal process monitor backed by the native ROS 2 launch engine.
- Contributors: Gibson
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rosmon2 at Robotics Stack Exchange
Package Summary
| Version | 0.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/GibsonHu/rosmon2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-24 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Gibson
Authors
rosmon2
rosmon2 is a rosmon-style launcher and terminal process monitor for ROS 2.
It runs launch files through the native ROS 2 launch engine, so existing
Python, XML, and YAML launch files keep their normal arguments, substitutions,
and includes.
rosmon2 is inspired by xqms/rosmon, but is
an independent ROS 2 implementation and does not require ROS 1.
Screenshot

Installation and quick start
Add this repository to a ROS 2 workspace, install its dependencies, and build
it with colcon:
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone https://github.com/GibsonHu/rosmon2.git
cd ~/ros2_ws
source /opt/ros/${ROS_DISTRO}/setup.bash
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rosmon2
source install/setup.bash
Then launch the included talker/listener demo:
mon2 launch rosmon2 demo.launch.py
Launch arguments use the standard ROS 2 name:=value syntax:
mon2 launch rosmon2 demo.launch.py namespace:=demo
You can launch a file by package and filename, as above, or by path:
mon2 launch path/to/system.launch.py use_sim_time:=true
The rosmon2 executable is an alias for mon2, so this is equivalent:
rosmon2 launch rosmon2 demo.launch.py
Terminal controls
While a launch is running, the status bar shows each process and its state.
Select a process with its displayed key (a-z, A-Z, or 0-9), then press:
| Key | Action |
|---|---|
s |
Start the selected process |
k |
Stop the selected process |
m |
Mute the selected process |
u |
Unmute the selected process |
d |
Start the selected process under gdb
|
Global controls are available without selecting a process:
| Key | Action |
|---|---|
F5 |
Toggle namespace mode |
F6 |
Start all processes |
F7 |
Stop all processes |
F8 |
Toggle WARN-and-higher output |
F9 |
Mute all process output |
F10 |
Unmute all process output |
/ |
Search nodes by full name |
Ctrl-C |
Gracefully stop the complete launch |
Node search matches substrings against full names, including namespaces. Type
/ to start searching, use Tab or the arrow keys to select a match, and
press Enter to open its node actions. Press Escape to cancel the search.
Namespace mode groups processes by their top-level ROS namespace, including
nodes in child namespaces. Each namespace displays [alive:dead] process
counts. Its background is green when all processes are alive, yellow when only
some are alive, and red when all are dead.
Select a namespace with its displayed key, then press:
| Key | Namespace action |
|---|---|
s |
Start every process in the namespace |
k |
Stop every process in the namespace |
m |
Mute output from the namespace |
u |
Unmute output from the namespace |
File truncated at 100 lines see the full file
Changelog for package rosmon2
Forthcoming
- Added a dependency-free MCP server for inspecting and controlling sessions.
- Added named control sessions, structured JSON output, log queries, event streaming, and deterministic state waits.
- Added node search, namespace grouping, and per-node process controls.
- Added a terminal process monitor backed by the native ROS 2 launch engine.
- Contributors: Gibson
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rosmon2 at Robotics Stack Exchange
Package Summary
| Version | 0.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/GibsonHu/rosmon2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-24 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Gibson
Authors
rosmon2
rosmon2 is a rosmon-style launcher and terminal process monitor for ROS 2.
It runs launch files through the native ROS 2 launch engine, so existing
Python, XML, and YAML launch files keep their normal arguments, substitutions,
and includes.
rosmon2 is inspired by xqms/rosmon, but is
an independent ROS 2 implementation and does not require ROS 1.
Screenshot

Installation and quick start
Add this repository to a ROS 2 workspace, install its dependencies, and build
it with colcon:
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone https://github.com/GibsonHu/rosmon2.git
cd ~/ros2_ws
source /opt/ros/${ROS_DISTRO}/setup.bash
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rosmon2
source install/setup.bash
Then launch the included talker/listener demo:
mon2 launch rosmon2 demo.launch.py
Launch arguments use the standard ROS 2 name:=value syntax:
mon2 launch rosmon2 demo.launch.py namespace:=demo
You can launch a file by package and filename, as above, or by path:
mon2 launch path/to/system.launch.py use_sim_time:=true
The rosmon2 executable is an alias for mon2, so this is equivalent:
rosmon2 launch rosmon2 demo.launch.py
Terminal controls
While a launch is running, the status bar shows each process and its state.
Select a process with its displayed key (a-z, A-Z, or 0-9), then press:
| Key | Action |
|---|---|
s |
Start the selected process |
k |
Stop the selected process |
m |
Mute the selected process |
u |
Unmute the selected process |
d |
Start the selected process under gdb
|
Global controls are available without selecting a process:
| Key | Action |
|---|---|
F5 |
Toggle namespace mode |
F6 |
Start all processes |
F7 |
Stop all processes |
F8 |
Toggle WARN-and-higher output |
F9 |
Mute all process output |
F10 |
Unmute all process output |
/ |
Search nodes by full name |
Ctrl-C |
Gracefully stop the complete launch |
Node search matches substrings against full names, including namespaces. Type
/ to start searching, use Tab or the arrow keys to select a match, and
press Enter to open its node actions. Press Escape to cancel the search.
Namespace mode groups processes by their top-level ROS namespace, including
nodes in child namespaces. Each namespace displays [alive:dead] process
counts. Its background is green when all processes are alive, yellow when only
some are alive, and red when all are dead.
Select a namespace with its displayed key, then press:
| Key | Namespace action |
|---|---|
s |
Start every process in the namespace |
k |
Stop every process in the namespace |
m |
Mute output from the namespace |
u |
Unmute output from the namespace |
File truncated at 100 lines see the full file
Changelog for package rosmon2
Forthcoming
- Added a dependency-free MCP server for inspecting and controlling sessions.
- Added named control sessions, structured JSON output, log queries, event streaming, and deterministic state waits.
- Added node search, namespace grouping, and per-node process controls.
- Added a terminal process monitor backed by the native ROS 2 launch engine.
- Contributors: Gibson
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rosmon2 at Robotics Stack Exchange
Package Summary
| Version | 0.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/GibsonHu/rosmon2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-24 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Gibson
Authors
rosmon2
rosmon2 is a rosmon-style launcher and terminal process monitor for ROS 2.
It runs launch files through the native ROS 2 launch engine, so existing
Python, XML, and YAML launch files keep their normal arguments, substitutions,
and includes.
rosmon2 is inspired by xqms/rosmon, but is
an independent ROS 2 implementation and does not require ROS 1.
Screenshot

Installation and quick start
Add this repository to a ROS 2 workspace, install its dependencies, and build
it with colcon:
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone https://github.com/GibsonHu/rosmon2.git
cd ~/ros2_ws
source /opt/ros/${ROS_DISTRO}/setup.bash
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rosmon2
source install/setup.bash
Then launch the included talker/listener demo:
mon2 launch rosmon2 demo.launch.py
Launch arguments use the standard ROS 2 name:=value syntax:
mon2 launch rosmon2 demo.launch.py namespace:=demo
You can launch a file by package and filename, as above, or by path:
mon2 launch path/to/system.launch.py use_sim_time:=true
The rosmon2 executable is an alias for mon2, so this is equivalent:
rosmon2 launch rosmon2 demo.launch.py
Terminal controls
While a launch is running, the status bar shows each process and its state.
Select a process with its displayed key (a-z, A-Z, or 0-9), then press:
| Key | Action |
|---|---|
s |
Start the selected process |
k |
Stop the selected process |
m |
Mute the selected process |
u |
Unmute the selected process |
d |
Start the selected process under gdb
|
Global controls are available without selecting a process:
| Key | Action |
|---|---|
F5 |
Toggle namespace mode |
F6 |
Start all processes |
F7 |
Stop all processes |
F8 |
Toggle WARN-and-higher output |
F9 |
Mute all process output |
F10 |
Unmute all process output |
/ |
Search nodes by full name |
Ctrl-C |
Gracefully stop the complete launch |
Node search matches substrings against full names, including namespaces. Type
/ to start searching, use Tab or the arrow keys to select a match, and
press Enter to open its node actions. Press Escape to cancel the search.
Namespace mode groups processes by their top-level ROS namespace, including
nodes in child namespaces. Each namespace displays [alive:dead] process
counts. Its background is green when all processes are alive, yellow when only
some are alive, and red when all are dead.
Select a namespace with its displayed key, then press:
| Key | Namespace action |
|---|---|
s |
Start every process in the namespace |
k |
Stop every process in the namespace |
m |
Mute output from the namespace |
u |
Unmute output from the namespace |
File truncated at 100 lines see the full file
Changelog for package rosmon2
Forthcoming
- Added a dependency-free MCP server for inspecting and controlling sessions.
- Added named control sessions, structured JSON output, log queries, event streaming, and deterministic state waits.
- Added node search, namespace grouping, and per-node process controls.
- Added a terminal process monitor backed by the native ROS 2 launch engine.
- Contributors: Gibson
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rosmon2 at Robotics Stack Exchange
Package Summary
| Version | 0.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/GibsonHu/rosmon2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-24 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Gibson
Authors
rosmon2
rosmon2 is a rosmon-style launcher and terminal process monitor for ROS 2.
It runs launch files through the native ROS 2 launch engine, so existing
Python, XML, and YAML launch files keep their normal arguments, substitutions,
and includes.
rosmon2 is inspired by xqms/rosmon, but is
an independent ROS 2 implementation and does not require ROS 1.
Screenshot

Installation and quick start
Add this repository to a ROS 2 workspace, install its dependencies, and build
it with colcon:
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone https://github.com/GibsonHu/rosmon2.git
cd ~/ros2_ws
source /opt/ros/${ROS_DISTRO}/setup.bash
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rosmon2
source install/setup.bash
Then launch the included talker/listener demo:
mon2 launch rosmon2 demo.launch.py
Launch arguments use the standard ROS 2 name:=value syntax:
mon2 launch rosmon2 demo.launch.py namespace:=demo
You can launch a file by package and filename, as above, or by path:
mon2 launch path/to/system.launch.py use_sim_time:=true
The rosmon2 executable is an alias for mon2, so this is equivalent:
rosmon2 launch rosmon2 demo.launch.py
Terminal controls
While a launch is running, the status bar shows each process and its state.
Select a process with its displayed key (a-z, A-Z, or 0-9), then press:
| Key | Action |
|---|---|
s |
Start the selected process |
k |
Stop the selected process |
m |
Mute the selected process |
u |
Unmute the selected process |
d |
Start the selected process under gdb
|
Global controls are available without selecting a process:
| Key | Action |
|---|---|
F5 |
Toggle namespace mode |
F6 |
Start all processes |
F7 |
Stop all processes |
F8 |
Toggle WARN-and-higher output |
F9 |
Mute all process output |
F10 |
Unmute all process output |
/ |
Search nodes by full name |
Ctrl-C |
Gracefully stop the complete launch |
Node search matches substrings against full names, including namespaces. Type
/ to start searching, use Tab or the arrow keys to select a match, and
press Enter to open its node actions. Press Escape to cancel the search.
Namespace mode groups processes by their top-level ROS namespace, including
nodes in child namespaces. Each namespace displays [alive:dead] process
counts. Its background is green when all processes are alive, yellow when only
some are alive, and red when all are dead.
Select a namespace with its displayed key, then press:
| Key | Namespace action |
|---|---|
s |
Start every process in the namespace |
k |
Stop every process in the namespace |
m |
Mute output from the namespace |
u |
Unmute output from the namespace |
File truncated at 100 lines see the full file
Changelog for package rosmon2
Forthcoming
- Added a dependency-free MCP server for inspecting and controlling sessions.
- Added named control sessions, structured JSON output, log queries, event streaming, and deterministic state waits.
- Added node search, namespace grouping, and per-node process controls.
- Added a terminal process monitor backed by the native ROS 2 launch engine.
- Contributors: Gibson
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rosmon2 at Robotics Stack Exchange
Package Summary
| Version | 0.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/GibsonHu/rosmon2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-24 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Gibson
Authors
rosmon2
rosmon2 is a rosmon-style launcher and terminal process monitor for ROS 2.
It runs launch files through the native ROS 2 launch engine, so existing
Python, XML, and YAML launch files keep their normal arguments, substitutions,
and includes.
rosmon2 is inspired by xqms/rosmon, but is
an independent ROS 2 implementation and does not require ROS 1.
Screenshot

Installation and quick start
Add this repository to a ROS 2 workspace, install its dependencies, and build
it with colcon:
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone https://github.com/GibsonHu/rosmon2.git
cd ~/ros2_ws
source /opt/ros/${ROS_DISTRO}/setup.bash
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rosmon2
source install/setup.bash
Then launch the included talker/listener demo:
mon2 launch rosmon2 demo.launch.py
Launch arguments use the standard ROS 2 name:=value syntax:
mon2 launch rosmon2 demo.launch.py namespace:=demo
You can launch a file by package and filename, as above, or by path:
mon2 launch path/to/system.launch.py use_sim_time:=true
The rosmon2 executable is an alias for mon2, so this is equivalent:
rosmon2 launch rosmon2 demo.launch.py
Terminal controls
While a launch is running, the status bar shows each process and its state.
Select a process with its displayed key (a-z, A-Z, or 0-9), then press:
| Key | Action |
|---|---|
s |
Start the selected process |
k |
Stop the selected process |
m |
Mute the selected process |
u |
Unmute the selected process |
d |
Start the selected process under gdb
|
Global controls are available without selecting a process:
| Key | Action |
|---|---|
F5 |
Toggle namespace mode |
F6 |
Start all processes |
F7 |
Stop all processes |
F8 |
Toggle WARN-and-higher output |
F9 |
Mute all process output |
F10 |
Unmute all process output |
/ |
Search nodes by full name |
Ctrl-C |
Gracefully stop the complete launch |
Node search matches substrings against full names, including namespaces. Type
/ to start searching, use Tab or the arrow keys to select a match, and
press Enter to open its node actions. Press Escape to cancel the search.
Namespace mode groups processes by their top-level ROS namespace, including
nodes in child namespaces. Each namespace displays [alive:dead] process
counts. Its background is green when all processes are alive, yellow when only
some are alive, and red when all are dead.
Select a namespace with its displayed key, then press:
| Key | Namespace action |
|---|---|
s |
Start every process in the namespace |
k |
Stop every process in the namespace |
m |
Mute output from the namespace |
u |
Unmute output from the namespace |
File truncated at 100 lines see the full file
Changelog for package rosmon2
Forthcoming
- Added a dependency-free MCP server for inspecting and controlling sessions.
- Added named control sessions, structured JSON output, log queries, event streaming, and deterministic state waits.
- Added node search, namespace grouping, and per-node process controls.
- Added a terminal process monitor backed by the native ROS 2 launch engine.
- Contributors: Gibson
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rosmon2 at Robotics Stack Exchange
Package Summary
| Version | 0.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_PYTHON |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/GibsonHu/rosmon2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-07-24 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Gibson
Authors
rosmon2
rosmon2 is a rosmon-style launcher and terminal process monitor for ROS 2.
It runs launch files through the native ROS 2 launch engine, so existing
Python, XML, and YAML launch files keep their normal arguments, substitutions,
and includes.
rosmon2 is inspired by xqms/rosmon, but is
an independent ROS 2 implementation and does not require ROS 1.
Screenshot

Installation and quick start
Add this repository to a ROS 2 workspace, install its dependencies, and build
it with colcon:
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone https://github.com/GibsonHu/rosmon2.git
cd ~/ros2_ws
source /opt/ros/${ROS_DISTRO}/setup.bash
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rosmon2
source install/setup.bash
Then launch the included talker/listener demo:
mon2 launch rosmon2 demo.launch.py
Launch arguments use the standard ROS 2 name:=value syntax:
mon2 launch rosmon2 demo.launch.py namespace:=demo
You can launch a file by package and filename, as above, or by path:
mon2 launch path/to/system.launch.py use_sim_time:=true
The rosmon2 executable is an alias for mon2, so this is equivalent:
rosmon2 launch rosmon2 demo.launch.py
Terminal controls
While a launch is running, the status bar shows each process and its state.
Select a process with its displayed key (a-z, A-Z, or 0-9), then press:
| Key | Action |
|---|---|
s |
Start the selected process |
k |
Stop the selected process |
m |
Mute the selected process |
u |
Unmute the selected process |
d |
Start the selected process under gdb
|
Global controls are available without selecting a process:
| Key | Action |
|---|---|
F5 |
Toggle namespace mode |
F6 |
Start all processes |
F7 |
Stop all processes |
F8 |
Toggle WARN-and-higher output |
F9 |
Mute all process output |
F10 |
Unmute all process output |
/ |
Search nodes by full name |
Ctrl-C |
Gracefully stop the complete launch |
Node search matches substrings against full names, including namespaces. Type
/ to start searching, use Tab or the arrow keys to select a match, and
press Enter to open its node actions. Press Escape to cancel the search.
Namespace mode groups processes by their top-level ROS namespace, including
nodes in child namespaces. Each namespace displays [alive:dead] process
counts. Its background is green when all processes are alive, yellow when only
some are alive, and red when all are dead.
Select a namespace with its displayed key, then press:
| Key | Namespace action |
|---|---|
s |
Start every process in the namespace |
k |
Stop every process in the namespace |
m |
Mute output from the namespace |
u |
Unmute output from the namespace |
File truncated at 100 lines see the full file
Changelog for package rosmon2
Forthcoming
- Added a dependency-free MCP server for inspecting and controlling sessions.
- Added named control sessions, structured JSON output, log queries, event streaming, and deterministic state waits.
- Added node search, namespace grouping, and per-node process controls.
- Added a terminal process monitor backed by the native ROS 2 launch engine.
- Contributors: Gibson