- Primary LanguageRust (2021) / ratatui
- Memory (RSS)~15 – 35 MB
- CPU Usage (1s poll)~0.5% – 1.5%
- GPU SupportNVIDIA (NVML) & AMD
- Best ForCross-platform power users
brew install bottom # macOS
cargo install bottom # Rust
sudo pacman -S bottom # Arch
- Primary LanguageC++20 / Custom ANSI
- Memory (RSS)~25 – 50 MB
- CPU Usage (1s poll)~1.0% – 2.5%
- GPU SupportNVIDIA, AMD, Intel, Apple
- Best ForWorkstations & Desktops
brew install btop # macOS
sudo apt install btop # Ubuntu/Debian
sudo dnf install btop # Fedora
- Primary LanguageC (C99) / ncurses
- Memory (RSS)~3 – 8 MB
- CPU Usage (1s poll)<0.1% – 0.5%
- GPU SupportExternal (via nvtop)
- Best ForProduction Servers & SSH
sudo apt install htop # Universal Linux
brew install htop # macOS
pkg install htop # FreeBSD
| Feature / Metric | bottom (btm) | btop (btop++) | htop |
|---|---|---|---|
| Primary Language | Rust (2021) | C++20 | C (C99/C11) |
| TUI / Rendering Engine | ratatui + crossterm |
Custom ANSI / UTF-8 memory buffer | ncurses / libncursesw |
| Startup Latency | ~15 – 30 ms | ~30 – 60 ms | <5 – 10 ms (Near-instant) |
| Graph Sparkline Types | Braille canvas time-series | 2x4 Braille subpixels + Blocks | ASCII gauge meters |
| Mouse Interactivity | Clicks, scrolling, widget focus | Full GUI menus, buttons, sliders | Click selection, scroll |
| Color / Theme Engine | Custom TOML palettes | 24-bit TrueColor RGB, 20+ themes | 16-color ANSI presets |
| Layout Customization | Declarative TOML grid ([[row]]) |
Preset layouts (keys 1–9) | Setup screen meter columns (F2) |
| Process Tree View | Yes (t key) |
Yes (t key) |
Yes (F5 / t key) |
| Process Search & Filter | Regex (F9), Case (F8), Word (F7) |
Interactive search (f / /) |
Incremental search (/), Filter (\) |
| Process Debugging Tools | Signal sending (dd) |
Signal sending (k), detail dialog |
strace (s), lsof (l), ionice (i), Affinity (a) |
| Peripheral Telemetry | Battery (health, draw), Disks, Temps | Disks, Temps, Fan RPM | Battery meter, Temperature sensors |
| Low-Bandwidth SSH | Good (use --basic for text mode) |
Fair (heavy escape bursts) | Flawless (minimal cell diffs) |
| GPU Vendor / Architecture | btop (btop++) | bottom (btm) | htop |
|---|---|---|---|
| NVIDIA (NVML) |
Full Core %, VRAM, Clocks, Temp, Power (W), Fan RPM, PCIe RX/TX |
Native Core %, VRAM %, Temp, Per-process GPU% table |
None External: pair with nvtop
|
| AMD (ROCm / sysfs) |
Full ROCm SMI ( librocm_smi64.so), sysfs/hwmon telemetry
|
Native Linux sysfs / hwmon driver counters |
None External: pair with amdgpu_top
|
| Intel GPUs (i915 / Xe) |
Supported DRM/KMS sysfs, Level Zero, engine utilization |
Basic Generic sysinfo counters |
None External: pair with intel_gpu_top
|
| Apple Silicon (M1–M4) |
Integrated Private IOReport APIs, GPU power, active load
|
Thermal Only SoC package & core temperature sensors |
None External: pair with asitop or mactop
|
| Multi-GPU Switching | Dedicated toggle keys (5, 6, 7...) |
Aggregated and selectable list | N/A |
| Platform / Ecosystem | bottom (btm) | btop (btop++) | htop |
|---|---|---|---|
| macOS (Homebrew) | brew install bottom |
brew install btop |
brew install htop |
| macOS (MacPorts) | sudo port install bottom |
sudo port install btop |
sudo port install htop |
| Debian / Ubuntu | sudo apt install bottom (24.04+) |
sudo apt install btop (22.04+) |
sudo apt install htop (Universal) |
| Fedora / RHEL / CentOS | sudo dnf install bottom |
sudo dnf install btop |
sudo dnf install htop |
| Arch Linux / Manjaro | sudo pacman -S bottom |
sudo pacman -S btop |
sudo pacman -S htop |
| Alpine Linux | apk add bottom |
apk add btop |
apk add htop |
| Nix / NixOS | nix-env -iA nixpkgs.bottom |
nix-env -iA nixpkgs.btop |
nix-env -iA nixpkgs.htop |
| FreeBSD / OpenBSD | pkg install bottom |
pkg install btop |
pkg install htop |
| Windows (winget) | winget install Clement.bottom |
WSL / MSYS2 | WSL / MSYS2 |
| Windows (Scoop / Choco) | scoop install bottom / choco install bottom |
WSL | WSL |
| Language / Source Build | cargo install bottom --locked |
make && sudo make install |
./autogen.sh && make |
| Flatpak / Snap | snap install bottom |
flatpak install flathub org.aristocratos.btop |
snap install htop |
1. bottom (btm) — Configuration & Keybindings Rust / ratatui
Config Location: ~/.config/bottom/bottom.toml
# Example Custom Layout Grid
[[row]]
ratio = 35
[[row.child]]
type = "cpu"
[[row]]
ratio = 65
[[row.child]]
ratio = 50
type = "mem"
[[row.child]]
ratio = 50
type = "proc"
Essential Keybindings:
e/Esc: Expand focused widget to full screen / restore grid.+/-/=: Zoom time scale in / out / reset zoom.Tab: Group identical process binaries together.t: Toggle hierarchical process tree view.dd: Send termination signal to process.f: Freeze / unfreeze real-time polling snapshot.
2. btop (btop++) — Configuration & Keybindings C++20
Config Location: ~/.config/btop/btop.conf
# Key btop.conf Parameters
color_theme = "dracula"
theme_background = False
truecolor = True
force_tty = False
presets = "cpu:1:default,mem:2:default,net:3:default,proc:4:default"
graph_symbol = "braille"
update_ms = 1500
show_gpu = True
Essential Keybindings:
1,2,3,4,5: Toggle CPU, Memory, Network, Process, and GPU boxes.p: Cycle through custom layout presets (0–9).m: Open options and theme selection menu.t: Toggle process tree view.k: Open signal sending dialog.Mouse Click: Click any box header, tab, or sort column directly.
3. htop — Interactive Controls & Advanced Triage C99 / ncurses
Config Location: ~/.config/htop/htoprc
Essential Function Keys & Advanced Triage:
F1/h: Online help & key overview.F2/S: Setup screen (add meters, custom columns, color schemes).F3//: Incremental type-ahead search.F4/\: Dynamic in-place filter.F5/t: Hierarchical process tree view.F6/>: Sort column selector.F7/F8: Increase / decrease process niceness priority.F9/k: Send POSIX kill signal.s: Attachstraceto trace real-time system calls.l: Attachlsofto inspect open files, sockets, and pipes.a: Set CPU affinity mask.i: Set I/O scheduling class and priority (ionice).
Architectural Recommendations
• Production Servers & SSH Triage: Choose htop. Its ~5MB RSS footprint, zero startup latency, and deep syscall triage tools (strace, lsof, ionice) make it indispensable on headless machines.
• Workstations & GPU Workloads: Choose btop. Its native multi-vendor GPU graphs (NVIDIA, AMD, Intel, Apple Silicon), TrueColor gradients, and intuitive mouse controls provide the highest single-screen situational awareness.
• Cross-Platform & Custom Dashboards: Choose bottom. Its declarative TOML layout engine, native Windows/macOS/Linux support, and balanced ~20MB RSS footprint make it the ideal modern daily driver.