A terminal UI for monitoring Slurm jobs in real-time over SSH
Project description
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.
Features
- Real-time job table — active jobs from
squeuemerged with recent history fromsacct, color-coded by state. - Per-job detail screen —
scontrolstats 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;--demoships 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/pbcopyrequired. - 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
-
Run
slurmhub. If no config exists at~/.config/slurmhub/config.toml, the first-run wizard walks you through creating one. -
Set up passwordless SSH to your cluster —
ssh-copy-idyour key and add aHostalias in~/.ssh/config. -
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
db2d14f557159f299c6bab588abb7e61faa7c8377321b4c12d0f9325a3c9b6ad
|
|
| MD5 |
6ed63a25a16ad6bef481ee5a6fc6afd7
|
|
| BLAKE2b-256 |
ad966688a7a9139da3f46fdffbd363878bf150f35ded67663f973fd5f378dbfc
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8029ed74d834a9c1ddd9e76e5f4fe36fd9b6bb11266ab23c6219dc42e8da60d4
|
|
| MD5 |
f1b270da32fda05af7d3fcb0cde932d5
|
|
| BLAKE2b-256 |
1c3d78b7d6815af04b181b697ec86c272b676daabd2d26a35e2c446b55a2c68f
|