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.

Metadata

Release files for ros2-diag-monitor 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ros2-diag-monitor 0.2.0
File Size Uploaded Provenance
ros2_diag_monitor-0.2.0.tar.gz 165.8 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for ros2-diag-monitor 0.2.0
File Interpreter ABI Platform
ros2_diag_monitor-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 178.4 kB

Release files / ros2_diag_monitor-0.2.0.tar.gz

Download URL ros2_diag_monitor-0.2.0.tar.gz
Size 165.8 kB
Tags Source
SHA-256 checksum
How to use checksums
3482d7cf0c5fbde32fdfa360a62b8339b1302a7d9ece6a121ea5fbf3292c0900
BLAKE2b-256 checksum
How to use checksums
f6db4cc68d7f4816c0da2abb97569f630d32c1e63b9a7abc77902aa9511e54c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 2, 2026.

Transparency log

Release files / ros2_diag_monitor-0.2.0-py3-none-any.whl

Download URL ros2_diag_monitor-0.2.0-py3-none-any.whl
Size 12.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
50db2a39a55f937a80971e4458e8a69823146358c135dfb0a353f877feadd6b0
BLAKE2b-256 checksum
How to use checksums
bff46e6eaddd101d0da234a5f7100ec61710cc5c14a116762de8a1b9e5c7d287
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 2, 2026.

Transparency log

Security for ros2-diag-monitor 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for ros2_diag_monitor-0.2.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 2, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page