srest logo

srest

A terminal user interface for the Slurm REST API. Monitor jobs, nodes and partitions, inspect job details and compose API requests from your shell - no SSH into the master node.

Go 1.24+ Bubble Tea TUI slurmrestd v0.0.40โ€“45 JWT AES-256 Vault
$ go build -o srest .
Download GitHub Docs

Why srest

Monitor your jobs

See your jobs with account, partition, time limits, run time, assigned nodes and log paths - without SSH.

Nodes & partitions

Live views of cluster nodes (state, CPUs, memory) and partitions, with per-item detail panels.

Query builder

33 endpoints across slurm/slurmdb/actions with sidebar navigation, path parameters, and cluster-gathered options.

Version auto-detection

Detects the slurmrestd data_parser version (v0.0.40โ€“45) and version-gates fields to avoid invalid requests.

Real dashboard

Cluster overview: nodes up/down, jobs by state, GPU usage, partitions and accounts at a glance.

Table search

Filter jobs, nodes and partitions instantly with a live search box.

Encrypted vault

Store JWT and connection settings in an AES-256-GCM encrypted file - credentials never sit plain on disk.

Export

Export data tables to CSV and query responses to pretty-printed JSON files.

Philosophy

Pure REST API

srest talks to slurmrestd and nothing else - no SSH, no local SLURM commands, no filesystem access.

Portable

A single binary. No SLURM installation required on the machine where you run it.

Secure

No shell access needed - only the REST API endpoint must be reachable from your terminal.

Cluster-agnostic

Works against any slurmrestd version (v0.0.40โ€“45) without modification.

If a feature isn't exposed by the Slurm REST API, srest doesn't attempt to work around it. What you see is exactly what slurmrestd provides.

Quick Start

Build

go build -o srest .

Configure

Store credentials in an encrypted vault or export env vars

# Option A: encrypted vault (recommended)
srest vault init

# Option B: environment variables
export SLURM_URL=http://localhost:6820
export SLURM_JWT=$(scontrol token | cut -d= -f2)

Run

./srest

FAQ

Does srest need SSH access to the cluster?

No. srest talks to slurmrestd over HTTP using JWT authentication, so it only needs network access to the REST API endpoint - exactly what it is designed for.

Can I see the contents of job logs?

The Slurm REST API exposes the location of logs (standard_output/standard_error) but not their contents, since those are files on the cluster filesystem. srest shows the log paths; reading the actual files requires filesystem access, which is out of scope for the REST API.

Which Slurm API versions are supported?

srest auto-detects the data_parser version served by the cluster (v0.0.40 through v0.0.45) and version-gates request fields so it does not send parameters the version does not support.

How does the encrypted vault work?

srest can store your JWT and connection settings in an AES-256-GCM encrypted file at ~/.srest/config.vault. Run srest vault init to create it. The vault is protected by a password you choose; set SREST_VAULT_PASS to skip the interactive prompt.