Inspect GPU activity, runtimes and estimated model memory from your terminal.
gputaskman is a free, open-source terminal monitor by Scott Hanselman that connects GPU-memory counters with runtime and model information. Task Manager and nvidia-smi already expose per-process readings on supported configurations; this tool adds context, explanations and estimated model breakdowns. A device header shows VRAM, GPU load, temperature, power, clocks and PCIe traffic with history charts. Below it, a per-process table reports each process's GPU memory, GPU-accessible system RAM, estimated non-resident commit, and per-engine activity, plus detected runtimes such as CUDA, HIP, Vulkan, Direct3D, ggml and ONNX Runtime.
For local AI workloads, a model inspector tries to identify which model each process holds, with architecture, quantization and layer count, and for the llama.cpp/Ollama/LM Studio family it breaks memory into weights, KV cache and compute buffers. One-shot text and JSON output, a diff mode and session recording make it scriptable.
The project's defining trait is how it handles uncertainty. Available OS and driver counters are measurements; model classifications, some device totals and GGUF-derived breakdowns are estimates, and the documentation says so up front. Unavailable readings render as N/A or null, never as a misleading zero. Under WSL, per-process VRAM is matched from Windows host counters and marked as matched or guessed.
gputaskman runs on Windows 10/11 (x64 and ARM64, NVIDIA or AMD with a current WDDM driver), native Linux (NVIDIA via NVML, AMD on amdgpu, Intel on i915; glibc 2.35+), and WSL2. The PyPI install needs Python 3.11+; the portable builds need no Python. It is early, experimental software, first published in November 2026, with some configurations not yet validated on hardware.
Download note. Version 0.3.5, released November 10, 2026. Windows x64 ZIP: 15.13 MB (15,129,090 bytes). Portable builds are unsigned; verify the published SHA-256 file. Linux portable builds require glibc 2.35 or newer.
Counter limits. Process visibility depends on permissions and driver interfaces. Paged means estimated non-residency, not proof of disk paging. A runtime library or mapped model file does not alone prove that a model is resident or actively running.
Screenshots: Copyright (c) 2026 Scott Hanselman / gputaskman, unmodified project captures under the MIT license. Source and documentation.
Featured in discoveries: gputaskman: See What Is Eating Your VRAM.
Inspect available GPU memory and engine activity for readable processes. Missing counters remain N/A rather than zero.
Use libraries, mapped files and local-server evidence to identify supported runtimes and models. Identification is not proof of GPU residency.
For supported llama.cpp-family workloads, inspect weights, KV cache and compute-buffer estimates alongside available runtime evidence.
Use the live terminal display, one-shot text or JSON, snapshot diffs and session recording.
Not for the portable Windows ZIP or Linux tarball. Extract the full archive. The PyPI route requires Python 3.11 or newer.
No. Available OS/driver counters are measured, but model classifications, GGUF breakdowns and some device totals are estimates. WSL owners can be matched or guessed. N/A or null means unavailable, not zero.
It complements them. Those tools already offer per-process readings on supported configurations. gputaskman adds runtime/model context, explanations, history and scriptable snapshots.