Skip to main content

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

Project description

slurmhub logo


PyPI Tests Docs Python License 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.
  • Persistent job history & analytics (H) — a local SQLite database records every run, its resource usage over time, and your favourites; browse, filter, and see GPU / CPU / memory-hour aggregates. On by default; --demo ships a seeded history.
  • Favourites & notes — star important runs (f) and annotate them (n); starred runs are exempt from history retention.
  • 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 published on PyPI and requires Python ≥ 3.12 and an OpenSSH client.

The recommended installers are uv or pipx — both install slurmhub into its own isolated environment so its dependencies don't pollute your system Python:

# uv (https://docs.astral.sh/uv/)
uvx slurmhub                         # one-shot run
uv tool install slurmhub             # persistent install on $PATH

# pipx (https://pipx.pypa.io/)
pipx install slurmhub

# plain pip — works, but consider a venv first
pip install --user slurmhub

Then:

slurmhub --demo    # try it without an SSH connection
slurmhub           # run against your configured cluster(s)

Or clone and run from source (for development):

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

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.1.0.tar.gz (72.1 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.1.0-py3-none-any.whl (94.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for slurmhub-1.1.0.tar.gz
Algorithm Hash digest
SHA256 db2d14f557159f299c6bab588abb7e61faa7c8377321b4c12d0f9325a3c9b6ad
MD5 6ed63a25a16ad6bef481ee5a6fc6afd7
BLAKE2b-256 ad966688a7a9139da3f46fdffbd363878bf150f35ded67663f973fd5f378dbfc

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for slurmhub-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8029ed74d834a9c1ddd9e76e5f4fe36fd9b6bb11266ab23c6219dc42e8da60d4
MD5 f1b270da32fda05af7d3fcb0cde932d5
BLAKE2b-256 1c3d78b7d6815af04b181b697ec86c272b676daabd2d26a35e2c446b55a2c68f

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