xtop is a terminal-based utility designed to provide live monitoring of GPU and NPU telemetry data, including utilization, memory usage, and per-process resource attribution. It offers a text-based user interface (TUI) for real-time visualization across different hardware vendors and operating systems.
Key Features:
Real-time monitoring of GPU and NPU metrics
Cross-platform support (Linux, Windows ARM, with limited support for other platforms)
Per-process resource attribution for detailed usage tracking
One-shot snapshots in text, JSON, or CSV formats
Responsive TUI interface with keyboard shortcuts
Audience & Benefit:
Ideal for system administrators, developers, and power users who need detailed insights into GPU/NPU performance without requiring NVIDIA driver installations. xtop provides actionable data to optimize resource utilization and troubleshoot hardware-related issues.
xtop can be installed via winget, making it accessible for Windows users.
README
xtop
A simple top.
One terminal UI that shows live GPU + NPU telemetry — utilization, memory,
per-process attribution — across vendors and OSes.
Platform status
Platform
Status
Linux (NVIDIA, incl. WSL2)
supported
Windows on ARM — Snapdragon X Elite
supported
Linux (AMD / Intel / embedded SoC)
not yet
Android (adb shell)
not yet
Windows x86-64 (NVIDIA / AMD / Intel)
untested — PDH path may work as-is
Install
Requires Rust 1.88+ (edition 2024).
cargo install --path .
# or
cargo build --release
./target/release/xtop
No system-level NVIDIA driver dependency at build time: the Linux backend
dlopens libnvidia-ml.so.1 at runtime and degrades cleanly if it's
missing.
23 tests run: 5 ratatui snapshot tests (via insta) rendering the TUI
against a synthetic backend in four scenarios (empty | typical | stress | edge), plus unit tests for /proc parsing, CPU% math, and the
process-table sort.
To iterate on the TUI from a headless environment:
cargo run --features fixture -- --render-snapshot typical --size 120x40
INSTA_UPDATE=always cargo test --features fixture # accept intended changes