▌rockbottom rb

A terminal system monitor that reads the numbers for you.

htop and btop show you the numbers. rb reads them and says what's wrong in one sentence, then names the process to blame. Linux and macOS, one binary, MIT.

rockbottom running in a terminal: the verdict says memory pressure, actively swapping; CPU, memory, network, disk and the process list below

the verdict at the top; CPU, memory, network, disk and processes below

curl -fsSL https://raw.githubusercontent.com/1ay1/rockbottom/master/install.sh | sh
rb

Linux x86_64 and arm64, macOS on Apple Silicon · checks the SHA-256 · installs to ~/.local/bin · build from source on an Intel Mac

One sentence instead of a wall of numbers

At the top of the screen sits the verdict, colour coded so you can tell at a glance whether you need to care.

▲ stressed · Memory pressure — actively swapping paging 620K/s; available RAM down to 21G

calm
nothing to do
busy
something is working, and that's allowed
stressed
look at the process it named
critical
time to close some things

Under it, Linux PSI pressure chips show how long tasks sat waiting on CPU, memory or I/O. That's the kernel telling you where the bottleneck is, and most monitors don't show it at all.

Press a number, get the whole story

Every panel opens into a full-screen pane with a plain-language reading at the bottom. Press the number or click the panel.

1 cpu
load over time, load averages read against your core count, temperature, every core with its clock, and thermal throttling called out
2 memory
usage trend, used / cache / buffers / available, swap with a thrash detector, memory pressure and the hungriest processes
3 network
every interface with live graphs, lifetime totals, a burst detector and link state; for wifi the network name, band, link speed and signal
4 gpu
load, VRAM, temperature, power, clocks, fan, encode/decode and the processes using VRAM; NVIDIA, AMD and Intel, Mali and Adreno
5 disk
read/write rates, I/O pressure, every filesystem with free space and type, and the processes using the disk right now
6 process
full command line, its rank against every other process, disk I/O, threads, run state in plain words, owner and listening ports
7 users
who is using the machine on a shared box: CPU, RAM, processes, I/O and disk per user, and one key to end a user's processes
T themes
616 themes, picked beside the live screen; type to search, Enter to keep

The main screen also has a process list you can filter, sort, pin and kill from, per-process disk I/O, which program owns which port, and battery.

Cheap to leave running

A monitor that takes a large share of a core becomes part of the problem. These numbers are measured, not guessed.

1 s refresh, idle desktopCPU (one core)memory
rb (reading the GPU)~3.9%9 MB
btop~1.6%38 MB
htop (no GPU)~0.7%6 MB

btop uses less CPU, and htop less still. rb uses about a quarter of btop's memory and reads your GPU the whole time. Measured on an i5-12400F with an RTX 4060 at 120×30. On an M1 the first frame shows up in about 7 ms.

Build from source

A C++26 compiler (GCC 16+ or Clang 22+) and CMake 3.28+. On macOS, Homebrew GCC: brew install gcc cmake.

git clone --recurse-submodules https://github.com/1ay1/rockbottom
cd rockbottom
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
./build/rb

Forgot --recurse-submodules? Run git submodule update --init --recursive. The Linux release binary is fully static (musl), so it has no glibc version floor; the release page has the plain binaries and checksums.

Keys

↑ ↓ j k
select a process
/
filter by name or pid, or user: state: port: cpu:>5
*
pin the selected process to the top
x K
end a process (SIGTERM) / kill it (SIGKILL), asks first
l r
send any signal / renice
t
process tree ↔ flat list
s
cycle sort, or c cpu · m mem · i i/o · n name · P pid · o port; R reverses
1–7
open a detail pane (Enter opens the process)
Space
pause and resume
T
theme picker
?
every key
q
quit

Questions

How is rockbottom different from htop or btop?
htop and btop show you the numbers. rockbottom reads them and tells you what's going on in one sentence: calm, busy, stressed or critical, and which process is to blame.
Which platforms does rockbottom run on?
Linux (x86_64 and arm64) and macOS. Prebuilt binaries are for Linux and Apple Silicon Macs; an Intel Mac builds from source. Windows is not supported.
Does it need any libraries installed?
No. The Linux release is one fully static binary built against musl, so it runs on any Linux kernel of its architecture with nothing else installed.
Can it replace nvtop?
For most people, yes. Press 4 for the GPU pane: load over time, VRAM, temperature, power, clocks, fan, encode and decode load, and the processes using VRAM. It works with NVIDIA, AMD and Intel, and with Mali and Adreno GPUs on phones and single-board computers.
A panel is empty. Why?
Each collector leaves its field blank when the data isn't there, for example a masked /sys or an ioctl that needs root. Run rb --doctor to see every collector's status and why, and paste it into the bug report.
Is rockbottom free?
Yes. It is free and open source software under the MIT license.