A lightweight, hybrid local/remote Slurm job tracking system with a Terminal User Interface (TUI). Monitor jobs submitted on remote HPC clusters from your local machine — no constant SSH, no squeue polling by hand.
Slurm-Dash uses a three-layer architecture:
-
Remote wrapper:
slurm-dash adddeploys a standalonesbatchwrapper script to~/.slurm_tracker/bin/sbatchon the remote and prepends that directory toPATHin~/.bashrcand~/.zshrc. Because it is a real script onPATH(not a shell function), it interceptssbatchcalls from interactive shells, bash scripts, Python subprocesses, and workflow managers like Nextflow and Snakemake alike. -
Snapshot & capture: Every
sbatchcall triggers an instant snapshot of the working directory (reflink or hardlink — no byte copies) into a staging area, then asynchronously runs~/.slurm_tracker/capture.pyto record the job ID, submit arguments, git state, environment, and snapshot into a remote SQLite database at~/.slurm_tracker/.slurm_tracker.db. -
Local sync & live polling: Your local machine syncs the remote SQLite database into a local one on demand. When the TUI is open, it polls
squeueandsacctover SSH to overlay live status (pending, running, completed, CPU/memory/GPU) onto the tracked jobs.
Download the prebuilt binary for your OS and architecture:
curl -LsSf https://raw.githubusercontent.com/haaaaron/slurm-dash/main/install.sh | bash -sThis detects your OS and architecture, downloads the appropriate binary from the latest GitHub release, and installs it to ~/.local/bin/slurm-dash.
To install the latest nightly build instead:
curl -LsSf https://raw.githubusercontent.com/haaaaron/slurm-dash/main/install.sh | bash -s nightlyAfter install, make sure ~/.local/bin is on your PATH:
export PATH="$HOME/.local/bin:$PATH" # add to ~/.bashrc or ~/.zshrcSupported platforms:
- Linux (x86_64, aarch64) — fully static musl binaries
- macOS (x86_64, ARM64)
- Windows (x86_64)
To uninstall:
curl -LsSf https://raw.githubusercontent.com/haaaaron/slurm-dash/main/uninstall.sh | bash -sThis stops the daemon, removes the binary, and optionally removes local configuration and database.
Initialize a config template:
slurm-dash init-configEdit ~/.config/slurm-dash/config.toml and add your cluster(s):
[servers.mycluster]
ssh_string = "user@hpc.cluster.edu"Or use the one-shot add command:
slurm-dash add user@hpc.cluster.edu --alias myclusterEither way, slurm-dash will auto-install the sbatch interceptor on first startup.
Start the daemon and open the web UI:
slurm-dash(This spawns a background daemon on first run, then opens your browser to http://localhost:8765.)
Other commands:
slurm-dash serve --port 9000 # foreground mode (e.g., for systemd)
slurm-dash list # list configured clusters
slurm-dash status # check if daemon is running
slurm-dash stop # stop the background daemon
slurm-dash add <ssh> --alias <name> # add a new cluster
slurm-dash remove <alias> --yes # remove a cluster
slurm-dash remove <alias> --purge-local --yes # also delete local job recordsslurm-dash stop # stop the daemon
slurm-dash remove <alias> --yes # remove a cluster
rm ~/.local/bin/slurm-dash # delete the binary