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.

screenshot

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.2.tar.gz (161.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.2-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

Details for the file ros2_diag_monitor-0.1.2.tar.gz.

File metadata

  • Download URL: ros2_diag_monitor-0.1.2.tar.gz
  • Upload date:
  • Size: 161.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.4

File hashes

Hashes for ros2_diag_monitor-0.1.2.tar.gz
Algorithm Hash digest
SHA256 033b2b336d285942a3bcb42bdf983266aee623d2806219f4f3b6c91b3ac288e8
MD5 0c3567f282f094b91483e47ac8070a71
BLAKE2b-256 1a812f7822c34251410b9fd1d18d1d3fde12c0d9d7345aeaf5f52cda9c8b04c1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ros2_diag_monitor-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c3bec4d4b66b276a373cad02b847715e7956cbc954793521334a1d7ad0446e9f
MD5 97221207faa7e3705cef995e1cc15fe9
BLAKE2b-256 2455a7e3a35e4e0df4a3c126d2276e29b1bc7fb9e75e712c5c5efb78550435e2

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