Skip to main content

A terminal UI for monitoring Slurm jobs in real-time over SSH

Project description

slurmhub

Tests Docs Python License: GPL v3 Version Built with Textual

A keyboard-driven terminal UI for monitoring Slurm jobs in real time over SSH. It runs the standard Slurm command-line tools (squeue, sacct, scontrol, sinfo, sstat, nvidia-smi, scancel) against one or more clusters, parses the output, and presents the result as a rich dashboard built with Textual.

main job table

Features

  • Real-time job table — active jobs from squeue merged with recent history from sacct, color-coded by state.
  • Per-job detail screenscontrol stats with time / memory / per-GPU utilisation bars; one keystroke to the stdout, stderr, or submitted batch script.
  • Cluster dashboard — cluster-wide CPU / GPU / memory bars, partition summary, per-node table fed by sinfo.
  • Multi-cluster tabs — configure several clusters and switch with h / l; filter, search, and sort state is remembered per tab.
  • Vim-style navigation throughout.
  • OSC 52 yank — copy job IDs, paths, and log lines to the system clipboard through SSH, no xclip / pbcopy required.
  • First-run wizard that writes a working TOML config and tests the SSH connection.
  • Demo mode (--demo) — exercise the entire TUI against built-in fixture data, no cluster needed.

Installation

slurmhub is built with uv. It requires Python ≥ 3.12 and an OpenSSH client.

# Install uv (one-time)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Install slurmhub as a CLI tool
uv tool install git+https://github.com/matteospanio/slurmhub.git

# Run
slurmhub

Or clone and run from source:

git clone https://github.com/matteospanio/slurmhub.git
cd slurmhub
uv sync
uv run slurmhub

Try it without a Slurm cluster:

slurmhub --demo

Quick start

  1. Run slurmhub. If no config exists at ~/.config/slurmhub/config.toml, the first-run wizard walks you through creating one.

  2. Set up passwordless SSH to your cluster — ssh-copy-id your key and add a Host alias in ~/.ssh/config.

  3. Reference the alias in your config:

    [profiles.mycluster]
    host = "mycluster"
    

Full SSH and configuration walkthrough: docs site → Getting started.

Documentation

The full documentation lives at matteospanio.github.io/slurmhub.

  • Getting started — installation, quickstart, SSH setup
  • Configuration — TOML schema, profiles, log paths, worked examples
  • Usage guides — job table, detail screen, log viewer, cluster dashboard, batch script, scancel
  • Reference — keybindings, info sources, troubleshooting
  • Changelog — release notes

Sphinx sources are under docs/. Build locally with:

uv sync --group docs
uv run sphinx-build -b html docs docs/_build/html

Development

uv sync --group dev
uv run pytest                       # run the test suite (417 tests)
pre-commit install                  # enable code-quality hooks
uv run python docs/scripts/generate_screenshots.py  # regenerate docs SVGs

See CLAUDE.md for project context and development notes.

License

GPL-3.0 © Matteo Spanio

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

slurmhub-1.0.0.tar.gz (52.2 kB view details)

Uploaded Source

Built Distribution

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

slurmhub-1.0.0-py3-none-any.whl (68.2 kB view details)

Uploaded Python 3

File details

Details for the file slurmhub-1.0.0.tar.gz.

File metadata

  • Download URL: slurmhub-1.0.0.tar.gz
  • Upload date:
  • Size: 52.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.5

File hashes

Hashes for slurmhub-1.0.0.tar.gz
Algorithm Hash digest
SHA256 a0faec3cd5900d0fcdf05052c087adf3c349e1ccb0cb190e9f5ddc70bcea1d7c
MD5 1f0d3fedcc6c8e2358478fa6dcf2abe8
BLAKE2b-256 f355a44bb7a66f2948f4cf24c0adce92c1b80d0637036cb357a512bc54ab2896

See more details on using hashes here.

File details

Details for the file slurmhub-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: slurmhub-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 68.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.5

File hashes

Hashes for slurmhub-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e96ca518c266c8722f724a90a02efbe21dc4fba510e2599c9ff7dc180c1b7f77
MD5 fb7853075cc8cdc3aec31a99cea387c4
BLAKE2b-256 1291af83415b387fe548085df6e6b1a122b71710f7d80e3a1a6f27b50742f96f

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