Metadata-Version: 2.4
Name: svtop
Version: 0.1.1
Summary: A pragmatic TUI for monitoring multi-server NVIDIA GPU utilization
Author: Astrorix
License: MIT
Requires-Python: >=3.10
Requires-Dist: paramiko>=3.4.0
Requires-Dist: textual>=0.58.0
Description-Content-Type: text/markdown

# 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
- Press `Enter` to expand/collapse GPU detail rows for a server
- Press `s` on a selected server row to open an SSH shell (auto-installs your local public key when using password auth)
- 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

```bash
pip install svtop
```

For local development:

```bash
pip install -e .
```

## Usage

Run monitor:

```bash
svtop
```

or:

```bash
svtop run --interval 2.5
```

Open configuration menu:

```bash
svtop config
```

List configured servers:

```bash
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`

## Remote requirements

- SSH access to each server
- `nvidia-smi` available in `PATH`
- 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.
