A lightweight Rich terminal monitor for AMD ROCm GPUs.
Project description
roctop
roctop is a small AMD ROCm GPU monitor. It shows GPU VRAM usage,
utilization, type, temperature, fan, power, clocks, live system/GPU graphs,
and GPU processes in a refreshing terminal UI.
Demo
The demo is rendered from synthetic data; process names, PIDs, users, and metrics are placeholders.
Features
- GPU overview: compact table for every ROCm GPU with GUID, standardized model, architecture, temperature, fan status, power draw, SCLK/MCLK clocks, VRAM usage, and utilization.
- Readable utilization bars: memory and GPU utilization are shown as inline bars with percentage labels and threshold colors, making idle, busy, and saturated devices easy to scan.
- Live history graphs: split graph panel tracks average host CPU, host memory, GPU utilization, and GPU memory usage over the recent refresh window.
- Process visibility: process table shows GPU index, PID, user, GPU memory, GPU memory percent, host CPU/memory percent, elapsed runtime, and full wrapped command lines.
- Interactive process navigation: move through processes with
j/kor arrow keys, page through long lists, toggle process tree view, keep the selected process visible across refreshes, and sort by GPU, memory, CPU, PID, user, time, or command. - Inspect and help popups:
iinspects the selected process using the current snapshot and/proc, while?opens an in-app keybinding reference. Both popups support arrow keys andh/j/k/lnavigation. - Safe process actions:
xopens a high-contrast confirmation menu with Cancel, SIGTERM, and SIGKILL choices, plus status messages for missing processes, permission errors, and other failures. - Robust data collection: combines
rocm-smiGPU snapshots,amd-smi processprocess memory data, andpsprocess metadata, with fallbacks when process-specific data is missing or malformed. - Script-friendly modes:
--oncerenders a single terminal snapshot,--jsonprints normalized snapshot data, and--intervalcontrols live refresh cadence.
Install
roctop expects ROCm command-line tools on PATH: rocm-smi is required,
and amd-smi is used when available for richer per-process memory data.
From PyPI:
pip install roctop
Build from source:
git clone https://github.com/nrhevu/roctop.git
cd roctop
python3 -m venv .venv
.venv/bin/python -m pip install -e .
export PATH="$PWD/.venv/bin:$PATH"
Usage
roctop
roctop --interval 0.5
roctop --once
roctop --json
roctop --version
python -m roctop --once
Live Controls
j/k or Up/Down move process cursor
PgUp/PgDn scroll processes
s open sort menu
t toggle process tree
p jump to parent process in tree view
h/Left, l/Right jump to previous/next sibling in tree view
/ search processes
n/N next/previous search match
f filter visible processes
i inspect selected process
x kill selected process with confirmation
? open/close help
q or Ctrl-C quit
Popup Controls
j/k or Up/Down scroll help or inspect view
h/l or Left/Right page help or inspect view
? or Esc close help
i or Esc close inspect view
h/l or arrows move sort or kill menu selection
Enter apply selected sort or kill option
y send SIGTERM in kill confirmation
Esc or q cancel menus
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file roctop-0.4.0.tar.gz.
File metadata
- Download URL: roctop-0.4.0.tar.gz
- Upload date:
- Size: 74.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
94d1fa304cd5c4f4d90a65dd0b0215cf2bbef3b05790b37ebf08808b5dde6591
|
|
| MD5 |
e31dec97f3530ebbb6821811bbd702c8
|
|
| BLAKE2b-256 |
bfd747cc57a32bae3652cace92c583e43aeadad2a4dc035c07917896ccc3f56a
|
Provenance
The following attestation bundles were made for roctop-0.4.0.tar.gz:
Publisher:
build_whl_and_publish.yaml on nrhevu/roctop
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
roctop-0.4.0.tar.gz -
Subject digest:
94d1fa304cd5c4f4d90a65dd0b0215cf2bbef3b05790b37ebf08808b5dde6591 - Sigstore transparency entry: 1977093715
- Sigstore integration time:
-
Permalink:
nrhevu/roctop@2e194b83ef643722021bb4fd5cba73843a1dc43d -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/nrhevu
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_whl_and_publish.yaml@2e194b83ef643722021bb4fd5cba73843a1dc43d -
Trigger Event:
release
-
Statement type:
File details
Details for the file roctop-0.4.0-py3-none-any.whl.
File metadata
- Download URL: roctop-0.4.0-py3-none-any.whl
- Upload date:
- Size: 45.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
75a436b2bfa441bce7ceff3f157a04417e424d682c62cda8c05d11d72d5c0395
|
|
| MD5 |
04ebde9a63ed671398250d7ea39862c1
|
|
| BLAKE2b-256 |
b7984aa88b33f9f3a6a012da65f9e13e0ad88b0c3f5ac9cffb5eb33863911be7
|
Provenance
The following attestation bundles were made for roctop-0.4.0-py3-none-any.whl:
Publisher:
build_whl_and_publish.yaml on nrhevu/roctop
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
roctop-0.4.0-py3-none-any.whl -
Subject digest:
75a436b2bfa441bce7ceff3f157a04417e424d682c62cda8c05d11d72d5c0395 - Sigstore transparency entry: 1977093904
- Sigstore integration time:
-
Permalink:
nrhevu/roctop@2e194b83ef643722021bb4fd5cba73843a1dc43d -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/nrhevu
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_whl_and_publish.yaml@2e194b83ef643722021bb4fd5cba73843a1dc43d -
Trigger Event:
release
-
Statement type: