Skip to main content

turm

image image Conda Version

A TUI for Slurm, which provides a convenient way to manage your cluster jobs.

turm demo

turm accepts the same options as squeue (see man squeue). Use turm --help to get a list of all available options. For example, to show only your own jobs, sorted by descending job ID, including all job states (i.e., including completed and failed jobs):

turm --me --sort=-i --states=ALL

Installation

turm is available on PyPI, crates.io, and conda-forge:

# With uv.
uv tool install turm

# With pip.
pip install turm

# With cargo.
cargo install turm

# With pixi.
pixi global install turm

# With conda.
conda install --channel conda-forge turm

# With wget. Make sure ~/.local/bin is in your $PATH.
wget https://github.com/karimknaebel/turm/releases/latest/download/turm-x86_64-unknown-linux-musl.tar.gz -O - | tar -xz -C ~/.local/bin/

The release page also contains precompiled binaries for Linux.

Shell Completion (optional)

Bash

In your .bashrc, add the following line:

eval "$(turm completion bash)"

Zsh

In your .zshrc, add the following line:

eval "$(turm completion zsh)"

Fish

In your config.fish or in a separate completions/turm.fish file, add the following line:

turm completion fish | source

Panel sizes

Set --jobs-width to columns or a percentage (default: 33%) and --details-height to 0–6 content lines (default: 6). Drag borders to resize; double-click to reset.

Open in external pager

When pressing p to open the log in an external pager, the command is chosen in this order: --pager, $TURM_PAGER, $PAGER, then less.

How it works

turm obtains information about jobs by parsing the output of squeue. The reason for this is that squeue is available on all Slurm clusters, and running it periodically is not too expensive for the Slurm controller ( particularly when filtering by user). In contrast, Slurm's C API is unstable, and Slurm's REST API is not always available and can be costly for the Slurm controller. Another advantage is that we get free support for the exact same CLI flags as squeue, which users are already familiar with, for filtering and sorting the jobs.

Resource usage

TL;DR: turm ≈ watch -n2 squeue + tail -f slurm-log.out

Special care has been taken to ensure that turm is as lightweight as possible in terms of its impact on the Slurm controller and its file I/O operations. The job queue is updated every two seconds by running squeue. When there are many jobs in the queue, it is advisable to specify a single user to reduce the load on the Slurm controller (see squeue --user). turm updates the currently displayed log file on every inotify modify notification, and it only reads the newly appended lines after the initial read. However, since inotify notifications are not supported for remote file systems, such as NFS, turm also polls the file for newly appended bytes every two seconds.

Development without Slurm

For local UI testing, this repository includes mocks for squeue, scancel, and scontrol:

PATH=scripts/mock-slurm/bin:$PATH cargo run -- --me

The mock commands read/write files in scripts/mock-slurm/logs, so you can test log rendering and control actions without a Slurm install.

Star History

Star History Chart

Metadata

Release files for turm 0.17.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for turm 0.17.0
File Actions
turm-0.17.0-py3-none-musllinux_1_2_x86_64.whl Python 3 none Linux musl 1.2+ x86-64 Details for turm-0.17.0-py3-none-musllinux_1_2_x86_64.whl
turm-0.17.0-py3-none-musllinux_1_2_i686.whl Python 3 none Linux musl 1.2+ x86-32 Details for turm-0.17.0-py3-none-musllinux_1_2_i686.whl
turm-0.17.0-py3-none-musllinux_1_2_armv7l.whl Python 3 none Linux musl 1.2+ ARMv7l Details for turm-0.17.0-py3-none-musllinux_1_2_armv7l.whl
turm-0.17.0-py3-none-musllinux_1_2_aarch64.whl Python 3 none Linux musl 1.2+ ARM64 Details for turm-0.17.0-py3-none-musllinux_1_2_aarch64.whl
turm-0.17.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details for turm-0.17.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
turm-0.17.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl Python 3 none Linux glibc 2.17+ IBM System/390x Details for turm-0.17.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl
turm-0.17.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl Python 3 none Linux glibc 2.17+ PowerPC 64-le Details for turm-0.17.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
turm-0.17.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl Python 3 none Linux glibc 2.17+ x86-32 Details for turm-0.17.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
turm-0.17.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl Python 3 none Linux glibc 2.17+ ARMv7l Details for turm-0.17.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
turm-0.17.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details for turm-0.17.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Total release size: 17.4 MB

Release files / turm-0.17.0-py3-none-musllinux_1_2_x86_64.whl

Download URL turm-0.17.0-py3-none-musllinux_1_2_x86_64.whl
Size 1.8 MB
Tags Linux musl 1.2+ x86-64 Python 3
SHA-256 checksum
How to use checksums
0ecc7dd31d6eda1033cb4f7f129ddea20c3a782f4fa98eb74a6dd2a99b255160
BLAKE2b-256 checksum
How to use checksums
6ca65ce0d96bdadecf88838ed099e73211641a9c41fbf27073cd9894df4863e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

Release files / turm-0.17.0-py3-none-musllinux_1_2_i686.whl

Download URL turm-0.17.0-py3-none-musllinux_1_2_i686.whl
Size 1.8 MB
Tags Linux musl 1.2+ x86-32 Python 3
SHA-256 checksum
How to use checksums
15b2178362667c8dc9db4af0907127d1a64d7c725f9fe8c3a339e9145ab1c2b0
BLAKE2b-256 checksum
How to use checksums
7d160934901870987fb4c74e01333511486680769d3a5be1f540c7a8fa4b4513
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

Release files / turm-0.17.0-py3-none-musllinux_1_2_armv7l.whl

Download URL turm-0.17.0-py3-none-musllinux_1_2_armv7l.whl
Size 1.7 MB
Tags Linux musl 1.2+ ARMv7l Python 3
SHA-256 checksum
How to use checksums
fc7fc867a0c08f2232cbf170df2991ec28069e94810a4c0733622e10f559cdeb
BLAKE2b-256 checksum
How to use checksums
7bc3ee082e05b7a23acca7e459246e515068263af28587515226443c8ef36e07
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

Release files / turm-0.17.0-py3-none-musllinux_1_2_aarch64.whl

Download URL turm-0.17.0-py3-none-musllinux_1_2_aarch64.whl
Size 1.7 MB
Tags Linux musl 1.2+ ARM64 Python 3
SHA-256 checksum
How to use checksums
08f6c86de105760704d92bf2b09d42bec64aa575d3851e56377d9c7dd9630616
BLAKE2b-256 checksum
How to use checksums
111f26432d2f49cb310f863ceab62ca7dad73a7e75f342ee7ffc6676d52462d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

Release files / turm-0.17.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL turm-0.17.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.7 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
741ee2c0d03f1cc03d8b7f5610573bcd58ce68954e7513d7b91539f4a961f0cd
BLAKE2b-256 checksum
How to use checksums
765a1f6e6c3515b658ab6faef6b500e0f3a0defd6593e0d0c802d584c6b85694
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

Release files / turm-0.17.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl

Download URL turm-0.17.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl
Size 1.8 MB
Tags Linux glibc 2.17+ IBM System/390x Python 3
SHA-256 checksum
How to use checksums
1e8fafd33814b6aa2ddba170c0b8e3f4b5f8af9af4b7f518ee87ae02cfa949fc
BLAKE2b-256 checksum
How to use checksums
7ef3d94e48210cb3d32d830c72490fecc1f8c55b7bc99d7d04fff685092c504e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

Release files / turm-0.17.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl

Download URL turm-0.17.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Size 1.9 MB
Tags Linux glibc 2.17+ PowerPC 64-le Python 3
SHA-256 checksum
How to use checksums
f2e610662c14afe943cdf310c6a783177d65b657d95d4d7b77fc20be63b12fd4
BLAKE2b-256 checksum
How to use checksums
4bfc4c7c88ac641e2f1b86c297d5d2db46fca99ea76cb478c5e188ddcf663550
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

Release files / turm-0.17.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl

Download URL turm-0.17.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
Size 1.8 MB
Tags Linux glibc 2.17+ x86-32 Python 3
SHA-256 checksum
How to use checksums
01fac2d078fef66d099b328a0e38de0e502122a4ba145cf9fa5579acfab80dee
BLAKE2b-256 checksum
How to use checksums
91f10f45e1a227337cbbb04abd74b32e9e4ebe465e3bac76bafa196fda29eada
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

Release files / turm-0.17.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl

Download URL turm-0.17.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Size 1.6 MB
Tags Linux glibc 2.17+ ARMv7l Python 3
SHA-256 checksum
How to use checksums
8e6c44c552452a95d8b3cee5484c840578c9c503b72152b47943f4cfd67a9bc9
BLAKE2b-256 checksum
How to use checksums
d0382936ea36c53565a4560b1287f45ded8c7042d0258a8d24ded4eab31a5914
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

Release files / turm-0.17.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL turm-0.17.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.7 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
14748fb1a93f2038852383f2aa896f07e47c74dceff58b20ac15375a8737ff3d
BLAKE2b-256 checksum
How to use checksums
ee29138f4c02890b5a3ac4ccb9e50d2aaa9bc5ca621b2013edd558073bef1be0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

Security for turm 0.17.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 10 files in this release have been uploaded with provenance metadata.

Select from 10 files

Attestation for turm-0.17.0-py3-none-musllinux_1_2_x86_64.whl

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page