gpu-histop
gpu-histop is a high-resolution terminal GPU history monitor. It samples GPU
metrics into timestamped ring histories and renders min/max bucketed Braille
graphs, giving each terminal cell a 2x4 subpixel plot.
Each GPU panel also includes a compact process overview with process type
(C, G, or MPS), PID, resolved user, GPU memory, command, and MIG instance
IDs when NVML reports them.
Install
From Homebrew:
From the GitHub repository:
After publishing the package to crates.io:
Prebuilt binaries are attached to tagged GitHub releases for Linux and macOS.
Backends
auto: use the first available real metrics backend.nvml: require NVIDIA NVML.nvidia-smi: use the NVIDIA command line tool when direct NVML loading is not available.amdgpu: use Linux AMDGPU sysfs metrics.apple: use Apple Silicon GPU metrics from macOS system tools.
auto tries NVML first, then nvidia-smi, Linux AMDGPU sysfs, and Apple
Silicon. On Apple Silicon, auto starts with the Apple backend so macOS does
not report irrelevant NVIDIA/Linux backend errors. If none of the real backends
is available, startup fails instead of showing generated demo data. The Apple
backend first tries non-root ioreg performance counters and falls back to
powermetrics, which usually requires administrator privileges on macOS. On
Apple Silicon, GPU memory is unified memory rather than discrete VRAM; when
available, gpu-histop reports the GPU-resident unified-memory counters in the
VRAM field.
Apple Silicon power and clock metrics come from powermetrics, so they are only
shown when the process has privileges to run that sampler. Recent Apple Silicon
macOS releases generally expose thermal pressure rather than a stable GPU die
temperature in degrees Celsius through built-in command-line tools, so
temperature remains n/a unless Apple exposes a Celsius sensor through the
sampled sources. Fan speed is naturally n/a on fanless devices.
Run
Terminal UI:
From a source checkout:
Native GUI:
The GUI requires an available X11 or Wayland display. On a headless machine, use the TUI, run with X forwarding, or launch under a virtual display such as Xvfb.
Probe NVML process reporting without opening the TUI:
The GUI shows raw sampled points over the selected history window, one high-density plot per metric, with a GPU selector and process table for the selected GPU.
Keys:
qorEsc: quitUp/Downorj/k: select a GPUporEnter: open the process popup for the selected GPU+/-: zoom the visible history window
Process popup keys:
Up/Down,PageUp/PageDown,Home,End: scroll processesTab/Shift+Tab: switch GPUEsc,p, orEnter: close the popup
Notes
NVML utilization counters are reported over the hardware sampling period exposed
by the NVIDIA driver, which can be coarser than the poll interval on some GPUs.
gpu-histop still keeps monotonic timestamps for every poll and preserves
within-column min/max ranges so spikes remain visible after downsampling to the
terminal.
Some enclosure-cooled NVIDIA data center GPUs do not expose a useful onboard fan
reading through Linux/NVML. When such a device returns a known bogus 0%/0 RPM
fan channel, gpu-histop reports fan speed as n/a instead of plotting a flat
zero line.