A terminal UI for monitoring ROS2 diagnostics over SSH
Project description
ros2-diag-monitor
A terminal UI for monitoring ROS2 diagnostics over SSH.
Features
- Real-time diagnostics monitoring with lazygit-style 3-pane layout
- Header color changes based on worst diagnostic level (green=OK, yellow=WARN, red=ERROR)
- Items grouped by level (ERROR / WARN / STALE / OK)
- Detailed view with key-value pairs
- Status change history tracking
- Optional JSONL log file output
- Topic switching between
/diagnosticsand/diagnostics_agg - Reload subscription with
Rkey (useful after network recovery)
Requirements
- Python >= 3.10 (must match your ROS2 distribution's Python)
- ROS2 environment with
rclpyavailable
Install
This tool requires access to system-installed rclpy, so it needs --system-site-packages.
source /opt/ros/jazzy/setup.bash
# Recommended: pipx with system site-packages
pipx install --system-site-packages ros2-diag-monitor
Note:
uv tool installdoes not support--system-site-packagesand cannot be used.
Usage
source /opt/ros/jazzy/setup.bash
# Monitor aggregated diagnostics (default)
diag-monitor
# Monitor /diagnostics
diag-monitor --topic /diagnostics
# Save status changes to file
diag-monitor --log-file diag.log
Key Bindings
| Key | Action |
|---|---|
j/k or Up/Down |
Navigate items |
Tab |
Switch pane focus |
t |
Toggle topic (/diagnostics <-> /diagnostics_agg) |
R |
Reload (re-subscribe and clear) |
/ |
Filter by name |
q |
Quit |
? |
Help |
Development
git clone https://github.com/whill-labs/ros2-diag-monitor.git
cd ros2-diag-monitor
# Create venv with the same Python version as ROS2 and system-site-packages enabled
source /opt/ros/jazzy/setup.bash
uv venv --python 3.12 --system-site-packages
uv sync
# Run tests
uv run pytest
# Run in development
uv run diag-monitor
License
MIT License
(C) 2026 WHILL Inc.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ros2_diag_monitor-0.1.1.tar.gz.
File metadata
- Download URL: ros2_diag_monitor-0.1.1.tar.gz
- Upload date:
- Size: 19.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0a97d5956f682012b70faa3beb0f8ac0010fa6f608d892f0436e0be20e72365d
|
|
| MD5 |
712816a0300a8ce7994fed7b84d0bb7a
|
|
| BLAKE2b-256 |
052305843c95eecc204767f76c24747ab33396a48bd3ee82565dd4867e790320
|
File details
Details for the file ros2_diag_monitor-0.1.1-py3-none-any.whl.
File metadata
- Download URL: ros2_diag_monitor-0.1.1-py3-none-any.whl
- Upload date:
- Size: 11.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1974aeb5782992530c9cc5bdc98a651aed2efecc7873c161b5cacd825992d16c
|
|
| MD5 |
a6d26d6c5173e42d83e5f6a74536c155
|
|
| BLAKE2b-256 |
98b0a29bd4a5f6575fa6a83ed02d6b70f6a54c8c615039b636dd06411386591c
|