DEV.co
Open-Source Observability · XuehaiPan

nvitop

nvitop is a Python-based GPU monitoring tool that provides an interactive, real-time dashboard for NVIDIA GPUs, replacing nvidia-smi with a more feature-rich curses-based interface. It supports process monitoring, filtering, resource tracking, and includes APIs for custom monitoring tools and a Prometheus exporter for integration with Grafana.

Source: GitHub — github.com/XuehaiPan/nvitop
7k
GitHub stars
237
Forks
Python
Primary language
Apache-2.0
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
RepositoryXuehaiPan/nvitop
OwnerXuehaiPan
Primary languagePython
LicenseApache-2.0 — OSI-approved
Stars7k
Forks237
Open issues20
Latest releasev1.7.0 (2026-05-16)
Last updated2026-06-22
Sourcehttps://github.com/XuehaiPan/nvitop

What nvitop is

nvitop queries GPU state via NVIDIA Management Library (NVML) bindings rather than parsing nvidia-smi output, implements multi-threaded asynchronous data collection with TTL caching, and uses curses for efficient terminal rendering. It provides low-level APIs for device/process introspection and includes nvitop-exporter for Prometheus metrics export.

Quickstart

Get the nvitop source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/XuehaiPan/nvitop.gitcd nvitop# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

Interactive GPU Resource Monitoring

Real-time monitoring of GPU utilization, memory, temperature, and per-process metrics with interactive filtering, sorting, and tree-view of process hierarchies in a single curses-based UI.

Prometheus/Grafana Integration

Deploy nvitop-exporter as a metrics scraper to feed GPU metrics into Prometheus and build custom Grafana dashboards for centralized GPU fleet monitoring.

Programmatic GPU Metrics Collection

Use nvitop's Python APIs to build custom monitoring tools, status snapshots, resource collectors, and automated alerting without parsing nvidia-smi text output.

Implementation considerations

  • Verify NVIDIA drivers and NVML runtime are installed and accessible; NVML is bundled with drivers or available via CUDA Toolkit download.
  • For non-English locales, ensure terminal supports UTF-8 and wide character rendering (e.g., `en_US.UTF-8`) to avoid display artifacts in curses UI.
  • For Docker deployments, confirm `nvidia-docker` or equivalent runtime is configured with `--gpus all` flag to expose NVIDIA devices into containers.
  • SSH users may need to configure TERM environment variable (e.g., `TERM=xterm-256color`) for proper color and box-drawing rendering.
  • Multi-threaded architecture relies on thread-safe NVML queries; validate compatibility with any custom NVIDIA driver configurations or older hardware.

When to avoid it — and what to weigh

  • No NVIDIA GPUs or NVML — nvitop requires NVIDIA hardware and NVIDIA Management Library (NVML) runtime; not applicable to AMD, Intel Arc, or non-GPU workloads.
  • Non-interactive Batch Monitoring — If you only need one-off snapshot reporting and not interactive monitoring, nvidia-smi or simpler parsing scripts may be sufficient.
  • Windows curses Limitations — While Windows is listed as supported, curses behavior on Windows may be limited or require additional terminal setup; Linux/SSH deployment typically more stable.
  • Air-gapped Environments without Python — Requires Python 3.8+, curses/libncursesw, and NVIDIA drivers; may be cumbersome in minimal or air-gapped deployments without package manager access.

License & commercial use

Released under Apache License 2.0 (Apache-2.0), a permissive OSI-approved license allowing commercial use, modification, and distribution with liability/warranty disclaimers and copyright notice preservation.

Apache-2.0 is a permissive open-source license compatible with commercial use. You may use, modify, and distribute nvitop in proprietary or SaaS products provided you retain copyright notices and disclaimers. No patent grant is provided; consult legal counsel for mission-critical deployments.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationStrong
License clarityClear
Deployment complexityLow
DEV.co fitStrong
Assessment confidenceHigh
Security considerations

No security vulnerabilities or exploits described in provided data. General considerations: nvitop runs with privileges of invoking user and can access GPU device files and process information; use standard OS-level privilege controls. Uses curses for terminal I/O; no network exposure in default mode. nvitop-exporter exposes metrics endpoints; apply standard HTTP authentication/firewall rules in production. Dependencies (nvidia-ml-py, psutil, cachetools) should be kept updated.

Alternatives to consider

nvidia-smi

Official NVIDIA tool; lightweight and pre-installed with drivers. Lacks interactive monitoring, colored output, and APIs; suitable only for one-off queries.

gpustat

Lightweight Python alternative with colored output and some interactivity. Fewer features (no tree-view, filtering, or exporter); simpler but less capable than nvitop.

nvtop (C implementation)

High-performance C-based GPU monitor; more efficient than Python. Requires compilation; no Python APIs or Prometheus exporter; primarily Linux-focused.

Software development agency

Build on nvitop with DEV.co software developers

Deploy nvitop for interactive GPU monitoring, or integrate nvitop-exporter with Prometheus/Grafana for fleet-wide metrics. Install via pip and start monitoring in seconds.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

Related on DEV.co

Explore the category and the services that help you build with it.

nvitop FAQ

Does nvitop work on non-NVIDIA GPUs?
No. nvitop requires NVIDIA hardware and NVML library. AMD and Intel GPUs are not supported.
Can I use nvitop in a container without nvidia-docker?
Not reliably. nvitop requires access to NVIDIA device files and NVML library. Use nvidia-docker or equivalent container runtime with `--gpus all` flag to expose GPUs.
How does nvitop-exporter differ from the interactive monitor?
nvitop-exporter runs as a background service exposing GPU metrics in Prometheus format for scraping by Prometheus/Grafana. Interactive monitor is a CLI tool for direct user viewing.
What Python versions are supported?
Python 3.8 and later. Older Python versions are not supported.

Software development & web development with DEV.co

DEV.co helps companies turn open-source tools like nvitop into production software. Our software development services cover the full lifecycle — architecture, web development, integration, and maintenance — delivered by software developers and web developers who ship. Engage our software development agency to implement or customize it for your open-source observability stack.

Monitor Your NVIDIA GPUs Effectively

Deploy nvitop for interactive GPU monitoring, or integrate nvitop-exporter with Prometheus/Grafana for fleet-wide metrics. Install via pip and start monitoring in seconds.