A GPU-over-IP bridge that lets CPU-only machines use CUDA GPUs installed on remote servers over the network.
XuehaiPan/nvitop
An interactive terminal monitor for NVIDIA GPUs that shows device and per-process status, with a CLI device selector and Python APIs.
Open-source alternative to:nvidia-smi
- Stars
- 7,217
- Forks
- 251
- Open issues
- 19
- Last commit
- 3 days ago
What is it?
nvitop is an interactive process viewer for NVIDIA GPUs. It shows per-device utilization, memory and temperature alongside the GPU processes running on each card, with the host-side details such as user, CPU and host memory. Its monitor mode refreshes continuously and supports sorting, filtering, a tree view of parent processes, environment variable inspection, and sending signals to processes from the keyboard or mouse.
Beyond the monitor, the package includes nvisel, a command-line tool that selects CUDA_VISIBLE_DEVICES based on free memory, utilization and device count, which is useful before launching deep learning jobs. It also provides a Python API for querying devices and processes, and a Prometheus exporter with a Grafana dashboard. It is written in pure Python on top of NVML bindings and runs on Linux and Windows.
Key features
- 01Interactive monitor with bar charts, history graphs, sorting and process filtering.
- 02Tree view showing GPU processes alongside their parent processes.
- 03Sends SIGINT, SIGTERM or SIGKILL to processes from the interface.
- 04Read-only mode disables process-changing shortcuts.
- 05nvisel selects CUDA devices by free memory, utilization and count.
- 06Python APIs for device and process status, plus a Prometheus exporter with a Grafana dashboard.
Use cases
- Checking which users and processes occupy shared GPUs on a lab or cluster server over SSH.
- Picking free GPUs for a training job via CUDA_VISIBLE_DEVICES before launching it.
- Building a custom GPU monitoring script or dashboard with the Python API.
- Feeding GPU metrics into Prometheus and Grafana for long-term tracking.
Quick start
- 1
Install with uvx (no permanent install needed)
uvx nvitop - 2
Or install from PyPI with pip
pip3 install --upgrade nvitop - 3
Or run with pipx
pipx run nvitop
Things to know
- Requires an NVIDIA GPU with the NVML library (driver) installed.
- Monitor mode needs a terminal that supports curses; Windows may lack mouse support in some terminals.
Topics
FAQ
- What is nvitop?
- An interactive terminal monitor for NVIDIA GPUs that shows device and per-process status, with a CLI device selector and Python APIs. nvitop is an interactive process viewer for NVIDIA GPUs. It shows per-device utilization, memory and temperature alongside the GPU processes running on each card, with the host-side details such as user, CPU and host memory. Its monitor mode refreshes continuously and supports sorting, filtering, a tree view of parent processes, environment variable inspection, and sending signals to processes from the keyboard or mouse.
- Is nvitop free to use? What license does it have?
- nvitop is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is nvitop still maintained?
- Actively maintained. The last commit to nvitop was on Oct 17, 2026.
- What can I use nvitop for?
- Checking which users and processes occupy shared GPUs on a lab or cluster server over SSH. Picking free GPUs for a training job via CUDA_VISIBLE_DEVICES before launching it. Building a custom GPU monitoring script or dashboard with the Python API. Feeding GPU metrics into Prometheus and Grafana for long-term tracking.
- How do I install nvitop?
- Install with uvx (no permanent install needed): uvx nvitop Or install from PyPI with pip: pip3 install --upgrade nvitop Or run with pipx: pipx run nvitop
- Where can I get nvitop?
- The source code and installation instructions are on GitHub: https://github.com/XuehaiPan/nvitop
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A cross-platform, GPU-accelerated OpenGL terminal emulator that relies on other tools like tmux for tabs and splits.
Windows tool for viewing and editing NVIDIA driver profile settings, including many hidden options not exposed in the NVIDIA Control Panel.
A keyboard-driven terminal UI for connecting to and querying many SQL databases, inspired by lazygit.
A command-line log viewer that turns JSON and logfmt logs into human-readable output, with filtering, sorting and live follow mode.
A shell-like, text-based terminal file manager where you manage files by typing commands instead of using a TUI or GUI.