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.1.tar.gz (58.5 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.1-py3-none-any.whl (57.2 kB view details)

Uploaded Python 3

File details

Details for the file slurm_term-0.1.1.tar.gz.

File metadata

  • Download URL: slurm_term-0.1.1.tar.gz
  • Upload date:
  • Size: 58.5 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.1.tar.gz
Algorithm Hash digest
SHA256 36bc653aaf97c72773ac49984dda6f950731f54b4a815485bc0609c4877489ec
MD5 afaef220544a10e0bfd91851d781ee0f
BLAKE2b-256 a7e62b4c3b427364988d4ca809ca74149c97f5e02b25e96733719054366366b6

See more details on using hashes here.

File details

Details for the file slurm_term-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: slurm_term-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 57.2 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 362283b13abb9f8dc726141092a5346ac0537e6bd0a65aa0db467e03a1cfb8df
MD5 ad339ed89379b65f8f8630b839c080dc
BLAKE2b-256 a4f676842812b3e9f6bad054239bd567f29440d173428364029cc314bab83321

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