Skip to main content

A pragmatic TUI for monitoring multi-server NVIDIA GPU utilization

Project description

svtop

svtop is a pragmatic TUI command for monitoring NVIDIA GPU usage across multiple servers.

Design goals inspired by Linus-style pragmatism:

  • one job: show GPU health clearly
  • simple state storage: ~/.svtop/servers.json + ~/.svtop/settings.json
  • no mystery services, no daemon, no lock-in

Features

  • Multi-server polling over SSH
  • Real-time TUI table with per-server aggregate rows, including CPU and system memory usage
  • Press Enter to expand/collapse GPU detail rows for a server
  • Expanded GPU detail row shows per-card user usage (sorted by usage)
  • Press s on a selected server row to open an SSH shell (auto-installs your local public key when using password auth)
  • Dual-pane transfer TUI (svtop transfer) for local/server browsing, queued rsync transfers, OSS-backed transfers via ossutil cp, and remembered transfer workspace
  • Color-coded GPU and temperature severity for quick scanning
  • First-run setup flow
  • Editable server profiles via svtop config
  • Per-server proxy jump chain (different server can use different bastion chain)
  • Two auth paths:
    • plaintext password
    • one-key-copy bootstrap (copy-key) to install your local SSH public key remotely

Install

pip install svtop

For local development:

pip install -e .

Usage

Run monitor:

svtop

or:

svtop run --interval 2.5

If your network is slower (or via bastion/proxy jump), increase probe timeout:

svtop run --timeout 15

Open configuration menu:

svtop config

Open transfer UI:

svtop transfer

Tune transfer task concurrency:

svtop transfer --parallel 4

Use OSS cache for server-to-server transfers (default):

svtop transfer --relay oss

Use the older local rsync staging relay instead:

svtop transfer --relay rsync

List configured servers:

svtop list

When using password auth, pressing s first tries to install your local public key on the remote host, then switches that profile to key auth automatically. If no password is saved, it will ask once in terminal (leave empty to skip), and then continue with normal password login for that session.

When adding/editing a server profile, you can set:

  • Proxy jump chain (comma-separated user@host[:port])

Examples:

  • one bastion: ops@jump-a
  • multi-hop chain: ops@jump-a,core@jump-b:2222

Transfer mode quick keys

  • top bar Left / Right: choose Local or any configured server from a dropdown
    • oss: use ossutil cp through oss://nralgo/pth/mj/tmp/svtop for any Local↔Server or Server↔Server transfer
    • rsync: use rsync directly for Local↔Server and local staging for Server↔Server
  • each pane path bar: paste a local or remote path and press Enter to jump there
  • last left/right endpoints, directories, direction, active pane, and relay engine are restored from ~/.svtop/settings.json
  • Tab: switch active pane
  • 1 / 2: cycle left/right endpoint
  • d: toggle transfer direction (L -> R / L <- R)
  • Enter or double-click: open highlighted directory
  • Space: mark/unmark file or directory
  • F5 or click Transfer: transfer current item or all selected items to the other pane
  • Backspace: go to parent directory
  • r: refresh pane listing

Remote requirements

  • SSH access to each server
  • nvidia-smi available in PATH
  • rsync available locally (and on remote servers when using rsync transfer mode)
  • ossutil configured on the local machine and/or remote servers used with OSS transfer mode
  • if proxy jump chain is used, local ssh command must be available

Security note

If you choose password auth, the password is stored in plaintext in ~/.svtop/servers.json (mode 600). Prefer copy-key and SSH key auth for long-term use.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

svtop-0.1.3.tar.gz (31.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

svtop-0.1.3-py3-none-any.whl (36.2 kB view details)

Uploaded Python 3

File details

Details for the file svtop-0.1.3.tar.gz.

File metadata

  • Download URL: svtop-0.1.3.tar.gz
  • Upload date:
  • Size: 31.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for svtop-0.1.3.tar.gz
Algorithm Hash digest
SHA256 a5d473cac68f283225b657e3c55aea312830a974cbd70631765a34e4153af482
MD5 4cd51264743bbf1fd9763ba360ec8052
BLAKE2b-256 b53347106874a4e477d9a81810eaa4f0ad26c5ea86be7254c540b79acc331e32

See more details on using hashes here.

File details

Details for the file svtop-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: svtop-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 36.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for svtop-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d828d77b13f8b65538ed1883a03a68203440085a98a69a11d25f264c780c2254
MD5 98b47323ef80341cae2f9ad1408f3d2e
BLAKE2b-256 af1245bc1832763d497445373ed556c856cb80915d58eeebd28c69ce694ba330

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page