Master btop
the modern
resource monitor
btop++ is a beautiful, feature-rich terminal resource monitor written in C++. This interactive guide will take you from installation to advanced usage, with live simulations and hands-on practice.
Installation
Get btop running on your system in under a minute
PACKAGE MANAGERS
$ sudo apt install btop$ sudo dnf install btop$ sudo pacman -S btop$ sudo zypper install btop$ sudo apk add btop$ brew install btop$ sudo pkg install btop$ sudo snap install btopBUILD FROM SOURCE
# Clone the repository$ git clone https://github.com/aristocratos/btop.git$ cd btop# Compile (requires GCC 10+ or Clang 12+)$ make# Install to /usr/local/bin$ sudo make install# Optional: enable GPU monitoring (Linux)$ make GPU_SUPPORT=true
GNU Make
UTF-8 locale configured
Terminal with 24-bit truecolor support
Font with Braille Unicode support (for graphs)
LAUNCH BTOP
# Basic launch$ btop# Start with a specific preset (0-9)$ btop -p 1# Set update interval (milliseconds)$ btop -u 1000# Start with process filter$ btop -f firefox# Force low-color mode (256 colors)$ btop -l
Interface Tour
Explore each panel of the btop interface
The CPU panel occupies the top portion of the btop interface and provides a comprehensive view of processor activity.
Click any panel in the interface diagram above to learn about it
Key Bindings
Complete reference for all btop keyboard shortcuts
APPLICATION
PROCESS MANAGEMENT
DISPLAY & FILTER
Customization
Themes, presets, and configuration options
THE OPTIONS MENU
Press o or F2 to open the Options menu. Every setting is configurable from within the UI — no need to manually edit config files.
CONFIGURATION FILE
The config file is auto-generated at ~/.config/btop/btop.conf. All changes made in the Options menu are saved here automatically.
# Color theme (Default, TTY, or custom theme name)color_theme = "Default"# Graph symbol style: braille, block, or ttygraph_symbol = "braille"# Update interval in millisecondsupdate_ms = 2000# Default process sort columnproc_sorting = "cpu lazy"# Show processes as tree by defaultproc_tree = false# Enable vim-style navigation keysvim_keys = false# Which panels to showshown_boxes = "cpu mem net proc"# Show CPU temperaturecheck_temp = true# Temperature scale: celsius, fahrenheit, kelvintemp_scale = "celsius"# Auto-scale network graphsnet_auto = true
PRESETS
Presets let you save different panel layouts and switch between them with number keys 1-9. Preset 0 always shows all panels with default settings.
# Preset format: "box:position:graph_symbol"# Multiple presets separated by spacespresets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty"# Switch presets with keys 1, 2, 3...# Preset 0 = all boxes, default settings
GPU Monitoring
Track graphics card usage, VRAM, temperature, and clock speeds
ENABLING GPU MONITORING
btop supports GPU monitoring for NVIDIA (via nvidia-smi) and AMD (via amdgpu) cards. You must compile btop with GPU_SUPPORT=true or install a package that includes it.
# Compile with GPU supportgit clone https://github.com/aristocratos/btop.gitcd btopmake GPU_SUPPORT=truesudo make install# Or install the Flatpak (includes GPU support)flatpak install flathub app.btop.btop
GPU PANEL METRICS
Theme Gallery
Explore built-in and community themes with live preview
The classic btop theme — dark background with vibrant multi-color accents
Troubleshooting
Solutions to the most common btop issues
Process Signals
Understand UNIX signals — what they do, when to use them, and how btop sends them
In btop, the k, K, t, and i keys send UNIX signals to the selected process. Understanding what each signal does helps you make the right choice when managing processes. Click any signal card below to explore its behavior, use cases, and relationship to btop controls.
Command Builder
Compose your perfect btop launch command interactively — then copy and run it
Key Drill
Practice mode — read the action, press the right key. Build muscle memory fast.
You'll be shown an action description. Press the correct key as fast as you can. Immediate feedback — no multiple choice, just muscle memory.
History & Comparison
From bashtop to bpytop to btop++ — the evolution, and how it stacks up against htop
aristocratos wrote the first version entirely in Bash. It worked but was slow — pure shell script parsing /proc files. It proved the concept of a beautiful, colorful resource monitor but had serious performance limits.
The project was rewritten in Python 3 as bpytop, dramatically improving performance and adding features. This version gained widespread adoption and was packaged in most Linux distributions.
A full C++ rewrite for maximum performance. Zero Python/Bash overhead. Native threading, direct /proc parsing on Linux, and a custom TUI framework. The '++' in the name signals the language shift.
Added the full theme system with community theme support, the preset layout system (keys 1-9), improved graph rendering, and significantly expanded configuration options.
The most-requested feature arrived: GPU monitoring for NVIDIA and AMD cards. Requires compiling with GPU_SUPPORT=true or using the Flatpak. Tracks usage, VRAM, temperature, clocks, fan, and power.
Continued refinement: improved battery monitoring, better macOS support, Intel GPU support added, performance optimizations for systems with thousands of processes, and many bug fixes.
Test Your Knowledge
Interactive quiz to reinforce what you've learned
