The Best htop Alternatives for Linux & macOS (with GPU Support)
A curated guide to modern terminal monitoring tools that go beyond htop — covering CPU, GPU, disk, network, and containers.
Why Look Beyond htop?
htop is a classic, but it’s Linux-only, has no GPU support, and hasn’t kept pace with modern workflows. Whether you’re running ML training jobs, managing Docker containers, or debugging I/O bottlenecks, there’s a purpose-built tool for each scenario. Here’s what’s worth knowing.
Process & System Monitoring
btop++ ⭐ Best All-Around
The definitive htop replacement. Written in C++, btop++ offers a gorgeous TUI with CPU, RAM, disk, and network — all in one view. GPU support works via NVIDIA and AMD plugins, and it’s fully themeable with mouse support.
-
Platforms: Linux, macOS, Windows (WSL)
-
Install:
brew install btop/apt install btop -
Created: 2021 (evolved from bashtop → bpytop → btop++)
atop
Records historical snapshots to disk so you can replay what happened during a crash or performance spike. Unique among TUI monitors for this forensic capability.
-
Platforms: Linux
-
Install:
apt install atop
bpftop
A dynamic real-time view of running eBPF programs. Essential if you’re doing kernel-level tracing or working with eBPF/XDP.
-
Platforms: Linux
-
Install:
cargo install bpftop
procs
A modern ps replacement written in Rust. Not a live monitor, but delivers color-coded output, tree view, and port-to-process mapping out of the box.
-
Platforms: Linux, macOS
-
Install:
brew install procs/cargo install procs
GPU Monitoring
nvtop
An htop-style task monitor purpose-built for GPUs and accelerators. Handles multiple GPUs simultaneously and supports AMD (amdgpu), Apple (M1/M2, limited), Intel (i915/Xe), NVIDIA, Qualcomm Adreno, and several accelerator vendors.
-
Platforms: Linux, partial macOS
-
Install:
apt install nvtop/brew install nvtop -
Tip: Press
F2to customize the interface,F12to save preferences.
Network-Focused
nethogs
Shows bandwidth per process, not per interface. The go-to tool for finding which application is eating your connection.
-
Platforms: Linux
-
Install:
apt install nethogs
bandwhich
Similar to nethogs but prettier — Rust-based, shows live connections by process and remote host.
-
Platforms: Linux, macOS
-
Install:
brew install bandwhich/cargo install bandwhich
iftop
The network equivalent of htop. Live per-connection bandwidth monitor in a clean TUI.
-
Platforms: Linux, macOS
-
Install:
brew install iftop/apt install iftop
ss / netstat
Not glamorous, but ss -tulnp is something you’ll run constantly for socket and port inspection.
-
Platforms: Linux
-
Built-in: Available by default on most distros
Disk & I/O
iotop
htop for disk I/O. Shows real-time read/write activity per process.
-
Platforms: Linux
-
Install:
apt install iotop
duf
A modern df replacement. Clean, color-coded overview of mounts, usage, and filesystem types.
-
Platforms: Linux, macOS
-
Install:
brew install duf/apt install duf
dust
A modern du written in Rust. Visualizes directory sizes as a tree — much faster than du -sh *.
-
Platforms: Linux, macOS
-
Install:
brew install dust/cargo install du-dust
ncdu
TUI disk usage analyzer. Best for interactively drilling into what’s using space on a volume.
-
Platforms: Linux, macOS
-
Install:
brew install ncdu/apt install ncdu
Logs & Containers
lnav
Log file navigator that parses and colorizes logs and lets you SQL-query them. A massive upgrade over tail -f.
-
Platforms: Linux, macOS
-
Install:
brew install lnav/apt install lnav
ctop
htop for Docker containers. Shows per-container CPU, memory, and network in real time.
-
Platforms: Linux, macOS
-
Install:
brew install ctop
lazydocker
Fuller TUI for Docker — logs, stats, and Compose management all in one interface.
-
Platforms: Linux, macOS
-
Install:
brew install lazydocker
Quick Reference
| Tool | Category | Linux | macOS | GPU | Why Bother |
|---|---|---|---|---|---|
| btop++ | System | ✅ | ✅ | ✅ | Best all-in-one htop replacement |
| nvtop | GPU | ✅ | ⚠️ | ✅ | Dedicated GPU/accelerator monitor |
| atop | Process | ✅ | ❌ | ❌ | Historical replay for forensics |
| bpftop | Kernel | ✅ | ❌ | ❌ | eBPF program monitoring |
| procs | Process | ✅ | ✅ | ❌ | Modern ps with port mapping |
| nethogs | Network | ✅ | ❌ | ❌ | Per-process bandwidth |
| bandwhich | Network | ✅ | ✅ | ❌ | Per-process connections (Rust) |
| iftop | Network | ✅ | ✅ | ❌ | Live per-connection bandwidth |
| iotop | Disk | ✅ | ❌ | ❌ | Per-process disk I/O |
| duf | Disk | ✅ | ✅ | ❌ | Modern df with clean UI |
| dust | Disk | ✅ | ✅ | ❌ | Fast tree-view disk usage |
| ncdu | Disk | ✅ | ✅ | ❌ | Interactive disk explorer |
| lnav | Logs | ✅ | ✅ | ❌ | SQL-queryable log viewer |
| ctop | Containers | ✅ | ✅ | ❌ | Docker container stats |
| lazydocker | Containers | ✅ | ✅ | ❌ | Full Docker TUI |
⚠️ = partial support
Recommended Setup
For most developers and engineers, a solid baseline looks like this:
Published on pigeonstorm.com
# Daily driver — replaces htop entirely btop++ # GPU work (ML training, rendering, CUDA) nvtop # open in a split pane alongside btop # Network debugging bandwhich # per-process connections iftop # per-connection bandwidth # Disk ncdu # interactive explorer dust # quick tree overview # Docker lazydocker # full TUI management
Most of these are available via brew on macOS and standard package managers on Linux. The Rust-based tools (procs, bandwhich, dust, duf) are especially worth having — they tend to be significantly faster than their POSIX counterparts.