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 F2 to customize the interface, F12 to 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.

← Blog index