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
  • 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 /diagnostics (default)
diag-monitor

# Monitor aggregated diagnostics
diag-monitor --topic /diagnostics_agg

# 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.0.tar.gz (17.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.0-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for ros2_diag_monitor-0.1.0.tar.gz
Algorithm Hash digest
SHA256 98e9cbbb328ed552d60ebdd226e3a527b158d01c8c1dad4cd6c5edfe69ce47e5
MD5 3ef0c6a5600721e223f6f73222558d55
BLAKE2b-256 3b5feaea5f3bb75fcff1fea7fbeeba5c3af9cb11a9de7ed3613ecb2ffc307f5d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ros2_diag_monitor-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 822fe15732472554e374a46296e0be05e23981642a26d782c44b1b5fdad13b2b
MD5 7b829148f753b542b98399d33a896683
BLAKE2b-256 66ad346c490f54679c87ae4e9e40072c3ee57544b0ce6696fc288cdddee8ace4

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