What is btop?

btop is a next-generation system resource monitor written in C++ by Aristocratos. It’s the successor to the popular bashtop (Bash) and bpytop (Python), but significantly faster and more feature-rich.

In a single terminal window it displays:

  • CPU usage (all cores individually)
  • RAM and SWAP memory
  • Disk activity
  • Network traffic
  • Process list with filtering and kill capabilities

All presented in an aesthetic, colorful interface with real-time graphs.


Installation

Debian/Ubuntu

sudo apt install btop

Fedora

sudo dnf install btop

Arch Linux

sudo pacman -S btop

From source (latest version)

git clone https://github.com/aristocratos/btop.git
cd btop
make
sudo make install

Basic Usage

Starting it is simple:

btop

Keyboard Navigation

Key Action
h Help
Esc Menu / Close
q Quit
m Toggle memory mode
e Toggle process tree view
p Sort processes
f Filter processes
k Kill process (SIGTERM)
K Kill process (SIGKILL)
+ / - Change refresh interval

Filtering Processes

Press f and type the process name. btop will show only matching processes. This is much faster than ps aux | grep.

Filter: nginx

Configuration

The configuration file is located at:

~/.config/btop/btop.conf

Useful Options

# Color theme (available: Default, TTY, Low Color)
color_theme = "Default"

# Refresh interval in milliseconds
update_ms = 1000

# Show CPU temperatures (requires lm-sensors)
check_temp = true

# Show CPU frequency
show_cpu_freq = true

# Rounded corners (if terminal supports)
rounded_corners = true

# Show laptop battery
show_battery = true

Themes

btop includes several built-in themes. You can switch them in the menu (Esc → Options → Theme) or download additional ones from the repository:

ls /usr/share/btop/themes/

btop vs htop - Comparison

Feature btop htop
Language C++ C
CPU graphs Yes (graphical) Text bars
Network graphs Yes No
Disk graphs Yes No
Graph history Yes No
RAM usage ~20-30 MB ~5-10 MB
Themes Many Basic
Availability Newer Everywhere

When to choose btop:

  • You want to see everything in one place
  • You appreciate aesthetic interfaces
  • You have a terminal with good color support

When to choose htop:

  • You’re working on a server over slow SSH
  • You need minimal resource usage
  • The system doesn’t have btop in repositories

Integration with tmux

btop works great in tmux. You can run it in a separate pane:

tmux split-window -h 'btop'

Or create a dedicated monitoring session:

tmux new-session -d -s monitor 'btop'
tmux attach -t monitor

Troubleshooting

Missing CPU Temperatures

Install lm-sensors and run configuration:

sudo apt install lm-sensors
sudo sensors-detect

Garbled Interface

btop requires a terminal with Unicode and True Color support. Check:

echo $TERM
# Should be: xterm-256color, tmux-256color, etc.

If using SSH, make sure TERM is passed through:

ssh -t user@server 'TERM=xterm-256color btop'

High CPU Usage by btop

Increase the refresh interval in configuration:

update_ms = 2000

Summary

btop is an excellent choice for anyone who wants a complete picture of system state in a single, aesthetic view. It combines the functionality of htop, iotop, iftop, and nmon in one tool.

If you’ve been using htop until now, try btop - you probably won’t go back.