Skip to main content

smon

image

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.

# 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 job details, 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
  • Enter on 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

  1. Make sure gpustat-web is running on your cluster (e.g., http://10.50.0.111:48109/)

  2. Run smon with the --gpustat-web option:

    smon --gpustat-web http://10.50.0.111:48109/
    
  3. 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, and scontrol commands
  • Terminal with color support

Dependencies

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)

Source distribution for smon-tui 0.1.0
File Size Uploaded
smon_tui-0.1.0.tar.gz 31.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for smon-tui 0.1.0
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

0.1.2

2 release files

0.1.1

2 release files

This release

0.1.0 This release

2 release files

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