Skip to main content

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)
  • Incremental name filter with / key (case-insensitive substring match)
  • Keybinding help modal with ? key

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.

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.2.0.tar.gz (165.8 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.2.0-py3-none-any.whl (12.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ros2_diag_monitor-0.2.0.tar.gz
  • Upload date:
  • Size: 165.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for ros2_diag_monitor-0.2.0.tar.gz
Algorithm Hash digest
SHA256 3482d7cf0c5fbde32fdfa360a62b8339b1302a7d9ece6a121ea5fbf3292c0900
MD5 66c6d99cf2e90e6497b14979624c36ff
BLAKE2b-256 f6db4cc68d7f4816c0da2abb97569f630d32c1e63b9a7abc77902aa9511e54c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for ros2_diag_monitor-0.2.0.tar.gz:

Publisher: publish-pypi.yaml on whill-labs/ros2-diag-monitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for ros2_diag_monitor-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 50db2a39a55f937a80971e4458e8a69823146358c135dfb0a353f877feadd6b0
MD5 86d6b8755c685f188e3da6a7eff6302d
BLAKE2b-256 bff46e6eaddd101d0da234a5f7100ec61710cc5c14a116762de8a1b9e5c7d287

See more details on using hashes here.

Provenance

The following attestation bundles were made for ros2_diag_monitor-0.2.0-py3-none-any.whl:

Publisher: publish-pypi.yaml on whill-labs/ros2-diag-monitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

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