SlurmDeck
A local command-line tool and terminal UI for running code on a remote Slurm cluster.
Overview
Running code on an HPC cluster usually means assembling the same loop by hand: rsync the project over, sbatch a script, poll squeue and sacct, tail logs over SSH, then copy results back. SlurmDeck folds that loop into one tool that works with the cluster’s existing accounts, partitions, and policies — nothing is installed on the cluster, and the login node only needs Python 3.8+ with the Slurm client commands.
Every run is immutable: planned and validated in memory, then committed atomically to the local run directory and SQLite database. Snapshots are content-hashed and upload once. Environments are managed conda builds with immutable generations or a user-owned prefix, and every command can emit a machine-readable JSON envelope for automation.
Workflow
register
Add a cluster once by SSH destination or alias; SlurmDeck verifies Python and the Slurm client commands on the login node.
snapshot
Sync rules capture the exact files a run needs as a content-hashed, immutable snapshot — previewed before anything uploads.
submit
Plan a command or parameter sweep, review the materialized run, then submit it atomically; a retry is a new run, never a mutation.
monitor
One status view merges live scheduler observations, per-task artifacts, and local lifecycle state; logs follow as they stream.
fetch
Pull results back into the local project with one command; the snapshot and receipts keep the run reproducible after the fact.
Console
Under the hood
Atomic submissions
Runs are validated in memory and committed atomically — an interrupted submit leaves nothing half-landed on the cluster.
Immutable environments
Managed conda environments build in numbered, immutable generations with explicit garbage collection and recovery.
Sweeps & automation
Parameter matrices with exclude rules and {config}, {output}, {task_id} placeholders; every command speaks JSON for scripting.
Spec
- version
- 0.1.0
- language
- Python
- interface
- CLI + TUI
- substrate
- Slurm over SSH
- requires
- Local: POSIX, Python 3.11+, git, OpenSSH, rsync · Cluster: Python 3.8+ and Slurm client commands
- license
- MIT
pipx install slurmdecksource on github ↗