A Terminal User Interface for the Slurm workload manager
Project description
SlurmTerm
A keyboard-driven Terminal User Interface for the Slurm workload manager, built with Textual.
Monitor jobs, compose batch scripts or interactive sessions, explore cluster hardware, and inspect running jobs with real-time metrics, all without leaving your terminal.
Installation
pip install slurm-term
Requires Python 3.10+ and a working Slurm installation on the target machine.
Quick Start
slurm-term
Launch slurm-term on any Slurm login or compute node. The interface opens with five tabs accessible via number keys 1–5.
Features
Monitor
Auto-refreshing job queue with color-coded states. Cancel, hold, and release jobs directly from the table. Press Enter on any job to open the Inspector.
Composer
Unified job submission form supporting both sbatch (batch) and srun (interactive) modes:
- Live script preview that updates as you type
- Core resource fields: partition, time limit, nodes, tasks, CPUs, memory, GPUs
- Searchable catalog of 30+ additional Slurm parameters with built-in documentation
- Inline validation for time formats, memory specs, and GPU configurations
- Save and load job templates for repeated workflows
Hardware
Cluster overview with two sub-tabs:
- Partitions: availability, time limits, node counts, CPUs, memory, GRES
- Nodes: per-node state, CPU count, memory, free memory, GRES, load
History
Completed job accounting from sacct (last 7 days). Displays elapsed time, CPU usage, peak memory, and exit codes.
Inspector
Visual job inspector with:
- Status badge and metadata grid (partition, user, submit time, working directory, nodes)
- Resource summary (nodes, CPUs, memory, GRES)
- Live stdout/stderr log tailing
- Real-time CPU, memory, and GPU utilization charts
Key Bindings
| Key | Action |
|---|---|
q |
Quit |
1–5 |
Switch tab |
r |
Refresh current view |
k |
Cancel selected job |
h / u |
Hold / release selected job |
Enter |
Inspect selected job |
Escape |
Return to Monitor from Inspector |
Ctrl+S |
Submit job or launch interactive session |
Ctrl+T |
Save template |
Ctrl+L |
Load template |
Safety
All Slurm commands use subprocess.run with list arguments — no shell interpolation. Job IDs, parameter keys, parameter values, and job names are validated before use. User-controlled strings are escaped before rendering. Template names are sanitized to prevent path traversal.
Requirements
- Python >= 3.10
- Textual >= 0.90.0
- textual-plotext >= 1.0.0
- A Slurm cluster (commands:
squeue,scontrol,sbatch,srun,sacct,sinfo,sstat)
Links
License
MIT
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 slurm_term-0.1.0.tar.gz.
File metadata
- Download URL: slurm_term-0.1.0.tar.gz
- Upload date:
- Size: 48.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9e3ea91ff7826675a1cd8d4d516f31e89372e18226e0efd0e43ee331dd007cee
|
|
| MD5 |
76f784013a74b94b3da437ff2d530282
|
|
| BLAKE2b-256 |
6f5e1be7869d79fdad4a55774429fabfa80c98620fae75899e48f9d14c14bd64
|
File details
Details for the file slurm_term-0.1.0-py3-none-any.whl.
File metadata
- Download URL: slurm_term-0.1.0-py3-none-any.whl
- Upload date:
- Size: 47.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
206a737f3ed34f654543304020801df3c718be27f0847119f454e4bdf945dcba
|
|
| MD5 |
41c13b0ee5ce65c65f677e6ce0b96b40
|
|
| BLAKE2b-256 |
2b7d5cc9a29d651540b25b51eea73a191370a096ab2d92e81ef43b866c351158
|