Skip to main content

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 /diagnostics and /diagnostics_agg
  • Reload subscription with R key (useful after network recovery)

Requirements

  • Python >= 3.10 (must match your ROS2 distribution's Python)
  • ROS2 environment with rclpy available

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 install does not support --system-site-packages and 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ros2_diag_monitor-0.1.1.tar.gz (19.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ros2_diag_monitor-0.1.1-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

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

Hashes for ros2_diag_monitor-0.1.1.tar.gz
Algorithm Hash digest
SHA256 0a97d5956f682012b70faa3beb0f8ac0010fa6f608d892f0436e0be20e72365d
MD5 712816a0300a8ce7994fed7b84d0bb7a
BLAKE2b-256 052305843c95eecc204767f76c24747ab33396a48bd3ee82565dd4867e790320

See more details on using hashes here.

File details

Details for the file ros2_diag_monitor-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for ros2_diag_monitor-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1974aeb5782992530c9cc5bdc98a651aed2efecc7873c161b5cacd825992d16c
MD5 a6d26d6c5173e42d83e5f6a74536c155
BLAKE2b-256 98b0a29bd4a5f6575fa6a83ed02d6b70f6a54c8c615039b636dd06411386591c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page