smon
A terminal user interface (TUI) for monitoring Slurm clusters. Built with Textual for DGX H100 clusters.
Features
- Job monitoring with live updates
- Node status display with GPU availability
- GPU count display with partition info
- Script viewer with syntax highlighting
- Output tracking (stdout/stderr)
- Search and filtering
- Tabbed TUI interface
- Keyboard shortcuts
- gpustat-web integration for real-time GPU monitoring
Installation
The package is published on PyPI as smon-tui; the command it installs is smon.
Using uvx/uv tool (recommended)
# 1. Run without installing
$ uvx --from smon-tui smon
# 2. Install as a tool
$ uv tool install smon-tui
$ smon
Using pip
$ pip install smon-tui
$ smon
From git (latest main)
$ uv tool install git+https://github.com/MilkClouds/smon.git
Usage
Basic Usage
smon
Command Line Options
smon --help # Show help
smon --refresh 10 # Set refresh interval to 10 seconds
smon --user alice # Filter jobs by user
smon --me # Filter jobs by the current user
smon --partition gpu # Filter jobs and nodes by partition
smon --state RUNNING # Default job state filter
smon --theme light # Colour theme (dark/light)
smon --gpustat-web URL # Enable gpustat-web integration
smon --mock # Demo mode without a Slurm cluster
Every option can also be set in ~/.config/smon/config.json
(refresh_sec, user_filter, partition_filter, state_filter, theme, gpustat_web_url);
command line flags take precedence.
Keyboard Shortcuts
| Key | Action |
|---|---|
q |
Quit application |
r |
Refresh data now |
1 / 2 |
Switch to Jobs / Nodes tab |
/ |
Focus the search box (filters as you type; Esc returns to the table) |
Enter |
Load details, script and output of the selected job / show jobs on the selected node |
| Click header | Sort the jobs table by that column (click again to reverse) |
o |
Open the selected job's stdout/stderr in bat/less |
t |
Toggle real-time output refresh |
c |
Cancel the selected job (asks for confirmation) |
y |
Copy the selected job ID to the clipboard |
+ / - |
Increase / decrease the refresh interval |
T |
Toggle dark/light theme |
TUI Interface
Jobs Tab
- Left: job table (JobID, user, state, partition, CPUs, memory, GPUs, time used vs. limit, nodes)
- Right:
scontrol show jobdetails, the batch script with syntax highlighting, and the tail of stdout/stderr - The table updates in place on each refresh, so scrolling, sorting and the selected row are preserved
Nodes Tab
- Node status, GPU allocation bar, CPU and memory usage per node
Enteron a node lists the jobs running on it- gpustat-web integration (side-by-side view)
gpustat-web Integration
smon can display real-time GPU status from gpustat-web alongside the Slurm node information.
Setup
-
Make sure gpustat-web is running on your cluster (e.g.,
http://10.50.0.111:48109/) -
Run smon with the
--gpustat-weboption:smon --gpustat-web http://10.50.0.111:48109/
-
Or add to config file (
~/.config/smon/config.json):{ "gpustat_web_url": "http://10.50.0.111:48109/" }
The Nodes tab will show the Slurm node table on the left and live GPU status from gpustat-web on the right.
Requirements
- Python ≥ 3.11
- Slurm cluster with
squeue,sinfo, andscontrolcommands - Terminal with color support
Dependencies
Related projects
Contributing
Issues and pull requests are welcome.
Metadata
Release files for smon-tui 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| smon_tui-0.1.0.tar.gz | 31.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| smon_tui-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 58.1 kB
Release files / smon_tui-0.1.0.tar.gz
| Download URL | smon_tui-0.1.0.tar.gz |
|---|---|
| Size | 31.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d81597c4a4cb344b49f1ea3f4a735cd703999d33b6112379d52c2f94e99db9fd
|
|
BLAKE2b-256 checksum How to use checksums |
67a4ab2065170a3ec80e7a54a13e278a09b7a2d6cedc82a8ea27fefc4afe16f6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / smon_tui-0.1.0-py3-none-any.whl
| Download URL | smon_tui-0.1.0-py3-none-any.whl |
|---|---|
| Size | 26.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7e95f368696913d65de5ad86954cef0090099c2317914061ae90ee906634d5e5
|
|
BLAKE2b-256 checksum How to use checksums |
91920d69d25267ea3f40d12160b696d7c11d1eaa9b54d9897b1f5f32314d7144
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|