Releases: nrhevu/roctop
Release list
roctop v0.4.0
roctop v0.4.0
This release expands the focused GPU view and refines the GPU focus graph experience.
Highlights
- Expanded focused GPU metrics with richer hardware and process details.
- Added and refined GPU focus graph views.
- Kept parent process context visible in tree mode while focused on a GPU.
Fixes
- Removed throttle status from the focused GPU metric panel.
Full Changelog
roctop v0.3.4
roctop v0.3.4
This release improves the stability and readability of the live terminal UI, with a focus on graph history behavior and process table layout.
Highlights
- Added a fixed 18-minute graph history window with one-second graph updates.
- Kept graph history uncompressed so time markers remain consistent across terminal widths.
- Improved graph panning and clamped history rendering to the 1080-second window.
- Fixed long-window time labels, including
1080s, disappearing at the left edge of a graph. - Made process elapsed time tick forward once per second between collector refreshes.
- Stabilized process table column widths to reduce layout jitter.
- Improved truncated process row rendering so the table fills available terminal space more cleanly.
- Stabilized inspect popup columns for long process metadata.
Fixes
- Fixed graph time-axis labels being dropped when one graph column was one character narrower than the other.
- Prevented graph data from drawing before the visible history limit marker.
- Improved elapsed-time parsing and rendering for process rows.
- Reduced UI shifting in process and inspect views.
Full Changelog
roctop v0.3.3
roctop v0.3.3
Packaging and PyPI
- Added PyPI project URLs for the GitHub homepage, repository, and issue tracker.
- Updated the README install section to prefer
pip install roctop. - Rewrote the source install instructions to use a normal
git clonecheckout instead of directpip install git+.... - Updated the README demo image URL for the
v0.3.3tag.
Verification
- Test suite passes:
167tests. - CLI version reports
roctop 0.3.3.
roctop v0.3.2
roctop v0.3.2
Fixes
- Fixed the broken demo image on the PyPI project page by using an absolute GitHub raw URL instead of the repository-relative
docs/demo.svgpath. - Improved
Escbehavior in process zoom mode: active text/GPU filters are cleared first, and a secondEscexits zoom.
Packaging
- Bumped package version to
0.3.2. - Rebuilt PyPI distributions for
0.3.2.
Verification
- Test suite passes:
167tests. twine checkpasses for both:roctop-0.3.2.tar.gzroctop-0.3.2-py3-none-any.whl
roctop v0.3.1
roctop v0.3.1
Highlights
- Added GPU number filtering, so you can quickly focus the UI on selected GPUs.
- Added process table zoom for easier inspection of long process lists.
- Added graph history panning for navigating recent metric history.
- Improved live graph rendering stability, including subsecond refresh behavior and keypress-driven redraws.
- Fixed process info popup overflow handling.
- Improved process safety and telemetry parsing around malformed or incomplete ROCm/AMD SMI process data.
Packaging and Release
- Added GitHub Actions workflow to build Python distributions and publish to PyPI.
- Refreshed the demo SVG with the current UI controls.
- Bumped package version to
0.3.1.
Verification
- Test coverage was updated across CLI, collectors, interaction, and rendering behavior.
- Local test suite passes with
166tests.
roctop v0.3.0
roctop v0.3.0
This release focuses on making the live process table feel much more like a real interactive terminal tool: process trees, popups, faster collection/rendering, and smoother cursor behavior.
Highlights
-
Added Process Tree mode with
t- Shows GPU processes with their ancestor chain.
- Keeps parent-child structure while sorting siblings recursively.
- Supports parent jump with
p. - Supports sibling navigation with
h/Left andl/Right.
-
Added popup UI
?opens a centered help popup with the full keybinding table.iopens a selected-process info popup with GPU usage, host usage, tree context, command line, and/proc/<pid>details.- Help and info popups now support
h/j/k/las well as arrow keys.
-
Improved live interaction behavior
- Cursor movement now stays within the visible process window before scrolling.
- Selection is more stable across refreshes, duplicate PIDs, tree/flat toggles, sorting, filtering, and wrapped commands.
- Header hints and README controls were updated for the new workflows.
-
Improved collection/render performance
rocm-smiandamd-smi processcollection now run in parallel.- The collector runs independently from rendering, reducing UI stalls.
- Key handling and rendering latency were improved for large process lists.
-
Improved metrics and graphs
- Fixed the initial
Avg %CPU: N/Astartup sample by priming CPU history before live render. - Improved graph cadence and timeline rendering.
- Expanded GPU utilization bars and displayed utilization decimals.
- Fixed the initial
-
Improved process data
- Added PPID support and process ancestor collection from
ps. - Added process filtering and search controls.
- Added standardized AMD GPU model display.
- Added PPID support and process ancestor collection from
-
Updated demo and docs
- Refreshed
docs/demo.svgwith synthetic tree-mode data. - Updated README for v0.3.0, popup controls,
--version, and current live controls.
- Refreshed
Verification
- Full test suite passes:
131 tests roctop --versionnow reportsroctop 0.3.0
Compatibility
No intentional breaking changes. Existing flat process view, --once, and --json workflows remain supported.
roctop v0.2.0
roctop v0.2.0
v0.2.0 adds live history graphs, interactive process controls, safer process actions, and a refreshed synthetic demo.
Highlights
- Added live history graphs for average CPU, memory, GPU utilization, and GPU memory usage.
- Added interactive process navigation with
j/k, arrow keys,PgUp/PgDn, and persistent selection across refreshes. - Added process sorting by GPU, GPU memory, GPU memory percent, CPU, memory, PID, user, time, and command.
- Added a high-contrast sort menu with selected-column direction indicators.
- Added process kill confirmation with selectable
Cancel,SIGTERM, andSIGKILLoptions.
UI Improvements
- Process commands now wrap instead of truncating, making long training/server commands readable.
- Header layout now separates system info from keyboard shortcuts.
- Graph layout was refined so upper/lower graphs align cleanly with the time axis.
- GPU graph order now shows average GPU above average GPU memory.
- GPU utilization headers were renamed from
MEM/UTLto%Memory-Usageand%Utilization. - Selection and menu highlights were adjusted for better contrast.
Robustness
- Improved handling for malformed
amd-smi processJSON entries. - Live mode handles graceful
Ctrl-Cshutdown. - Process cursor stays visible after resize, sorting, long command wrapping, and table cropping.
Docs & Demo
- Refreshed
docs/demo.svgusing synthetic data only. - Demo now shows 8 GPUs with realistic GUIDs, dummy process names, varied GPU states, and random-walk graphs.
- Added repository contributor guidance in
AGENTS.md. - Added a bundled Codex skill for regenerating the roctop demo SVG safely.
Upgrade
git fetch --tags
git checkout v0.2.0
.venv/bin/python -m pip install -e .roctop v0.1.0
roctop v0.1.0
Initial release of roctop, a lightweight Rich terminal monitor for AMD ROCm GPUs.
Highlights
- Live terminal UI for monitoring AMD ROCm GPU state.
- One-shot terminal rendering with
--once. - Normalized JSON output with
--jsonfor scripting and automation. - Configurable refresh interval with
--interval.
Features
- GPU overview table showing GPU index, DID, GUID, temperature, fan, power, SCLK/MCLK clocks, VRAM usage, and utilization.
- GPU type and GFX version summary in the header when available.
- Inline utilization bars for GPU memory and GPU activity, with color thresholds for low, medium, and high usage.
- Process table showing GPU index, PID, user, GPU memory, GPU memory percentage, host CPU/memory usage, elapsed time, and command.
- Data collection from
rocm-smi,amd-smi process, andps, with fallback behavior when process-specific data is unavailable. - Warning panel for visible ROCm/tooling issues while hiding common noisy permission warnings.
- Truecolor Dracula-styled terminal rendering and demo SVG.
Reliability
- Retries transient command timeouts during live rendering.
- Handles missing commands and collection failures with clear error messages.
- Filters zero-memory GPU processes from process output.
- Keeps unsupported fan data visible as
N/Ainstead of hiding the column.
Requirements
- Python 3.10+
rich>=13- ROCm tools available on the host, especially
rocm-smi;amd-smiis used when available for process memory details.