Skip to main content

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 15.

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
15 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

slurm_term-0.1.0.tar.gz (48.8 kB view details)

Uploaded Source

Built Distribution

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

slurm_term-0.1.0-py3-none-any.whl (47.7 kB view details)

Uploaded Python 3

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

Hashes for slurm_term-0.1.0.tar.gz
Algorithm Hash digest
SHA256 9e3ea91ff7826675a1cd8d4d516f31e89372e18226e0efd0e43ee331dd007cee
MD5 76f784013a74b94b3da437ff2d530282
BLAKE2b-256 6f5e1be7869d79fdad4a55774429fabfa80c98620fae75899e48f9d14c14bd64

See more details on using hashes here.

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

Hashes for slurm_term-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 206a737f3ed34f654543304020801df3c718be27f0847119f454e4bdf945dcba
MD5 41c13b0ee5ce65c65f677e6ce0b96b40
BLAKE2b-256 2b7d5cc9a29d651540b25b51eea73a191370a096ab2d92e81ef43b866c351158

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