turm
A TUI for Slurm, which provides a convenient way to manage your cluster jobs.
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
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)
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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logRelease 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 logSecurity 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.
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 logA 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.