Terminal GuideTerminal Guide
bottom icon

bottom

System Monitoring
macOSLinuxWindows
Rust

Cross-platform graphical system/process monitor.

Official Website

Features

Cross-PlatformCustomizableBattery InfoTemperature

Installation

Homebrew
brew install bottom
Pacman (Arch)
pacman -S bottom
Cargo (Rust)
cargo install bottom

Why Use bottom?

True Cross-Platform

Works fully on Linux, macOS, and Windows. Monitor your system on any OS with the same interface.

Fast and Lightweight (Rust)

Written in Rust with low memory usage and high speed. Runs comfortably even on low-spec machines.

Temperature and Battery Monitoring

Monitor CPU and GPU temperatures and laptop battery status. Get a complete picture of your hardware.

Flexible Layout

Freely customize widget placement in the config file. Display only the information you need.

Additional Installation Methods

additional-installation
# Ubuntu/Debian (GitHub Releases)
curl -LO https://github.com/ClementTsang/bottom/releases/latest/download/bottom_x86_64-unknown-linux-gnu.deb
sudo dpkg -i bottom_x86_64-unknown-linux-gnu.deb

# Fedora (COPR)
sudo dnf copr enable atim/bottom
sudo dnf install bottom

# Windows (Scoop)
scoop install bottom

# Windows (Chocolatey)
choco install bottom

Basic Usage

basic-usage
# Launch bottom (btm command)
btm

# Basic mode (simple display)
btm --basic

# Show battery information
btm --battery

# Launch with specific update interval (milliseconds)
btm --rate 500

# Show temperature in Celsius (default)
btm --celsius

# Show temperature in Fahrenheit
btm --fahrenheit

# Specify configuration file
btm --config /path/to/config.toml

# View available options
btm --help

Screen Display

┌─ CPU ─────────────────────────────────────────────────────────────────────┐ │▁▂▃▄▅▆▇█▇▆▅▄▃▂▁▂▃▄▅▆▇█▇▆▅▄▃▂▁▂▃▄▅▆▇█▇▆▅▄ 58.7% │ │ CPU0:[████████████████░░░░░░░░░░░░░░] 53% CPU1:[██████████████████████░░░░░░░░] 73% │ │ CPU2:[████████░░░░░░░░░░░░░░░░░░░░░░] 27% CPU3:[██████████████░░░░░░░░░░░░░░░░] 47% │ └───────────────────────────────────────────────────────────────────────────┘ ┌─ Memory ──────────────────┐ ┌─ Temperature ─────────────┐ │ RAM [████████████░░░░░░] │ │ CPU: 52.0°C │ │ 8.2 GiB / 16.0 GiB (51%) │ │ GPU: 65.0°C │ │ │ │ NVMe: 38.0°C │ │ Swap [░░░░░░░░░░░░░░░░░] │ │ │ │ 0 B / 2.0 GiB (0%) │ │ │ └───────────────────────────┘ └───────────────────────────┘ ┌─ Network ─────────────────────────────────────────────────────────────────┐ │ ▲ TX: 1.2 MB/s ▼ RX: 5.8 MB/s Total TX: 2.3 GB Total RX: 45.6 GB │ │ ▁▂▃▄▅▆▇█▇▆▅▄▃▂▁▂▃▄▅▆▇▆▅▄▃▂▁ │ └───────────────────────────────────────────────────────────────────────────┘ ┌─ Processes ───────────────────────────────────────────────────────────────┐ │ PID CPU% Mem% R/s W/s Name │ │ 1234 25.0 3.2 1.5M 512K node │ │ 5678 15.2 1.6 256K 128K nginx │ │ 9012 12.1 12.5 2.1M 1.8M mysqld │ │ 3456 5.5 0.4 0B 0B vim │ └───────────────────────────────────────────────────────────────────────────┘

Widget List

CPUCPU usage graph and per-core usage
MemoryRAM and Swap usage
TemperatureTemperature of CPU/GPU/disk and more
NetworkNetwork send/receive speed and graphs
DiskDisk usage and I/O
ProcessesProcess list (sortable, filterable, tree view)
BatteryBattery status (laptops only, --battery option)

Keyboard Shortcuts

KeyFunction
?Show help menu
q / Ctrl+cExit bottom
EscClose dialog / Cancel search
Tab / Shift+TabMove to next/previous widget
h j k lVim-style navigation
eExpand/collapse selected widget
/Start process search
tToggle process tree view
sOpen sort menu
IReverse sort order
PSort by CPU%
MSort by Memory%
ddKill selected process (SIGTERM)
Ctrl+dScroll down half page
Ctrl+uScroll up half page
g / GJump to beginning/end of list

Process Management

Process Search and Filter

Press / to enter search mode. Use the following search syntax:

search
# Search by process name
node

# Search by regex
/node.*server/

# Search by PID
pid:1234

# Search by user
user:root

# Combined search
user:www-data AND cpu>10

# Clear search
Esc

Process Termination

Select a process and press dd to send SIGTERM. A confirmation dialog appears.

Settings and Customization

Configuration files are in TOML format and placed at the following locations:

config-location
# Configuration file location
# Linux
~/.config/bottom/bottom.toml

# macOS
~/Library/Application Support/bottom/bottom.toml
# or
~/.config/bottom/bottom.toml

# Windows
%APPDATA%\bottom\bottom.toml

Configuration File Example

bottom.toml
# bottom.toml

[flags]
# Update interval (milliseconds)
rate = 1000

# Temperature unit (Celsius, Fahrenheit, Kelvin)
temperature_type = "Celsius"

# Show average CPU usage
avg_cpu = true

# Enable GPU monitoring
enable_gpu = true

# Show battery information
battery = true

[colors]
# Custom color settings
table_header_color = "LightBlue"
cpu_color = "LightMagenta"
ram_color = "LightGreen"
swap_color = "LightYellow"
rx_color = "LightCyan"
tx_color = "LightMagenta"

# Theme (gruvbox, gruvbox-light, nord, nord-light)
# theme = "gruvbox"

[row]
# Custom layout
[[row.child]]
type = "cpu"

[[row.child]]
type = "mem"

[[row]]
[[row.child]]
type = "net"

[[row.child]]
type = "proc"
default = true  # Focus on startup

Creating Custom Layouts

One of bottom's powerful features is the ability to completely customize widget layout in the config file.

layout-example
# Layout example: CPU-focused monitoring
[[row]]
  ratio = 2
  [[row.child]]
    type = "cpu"
    ratio = 4
  [[row.child]]
    type = "temp"
    ratio = 1

[[row]]
  ratio = 3
  [[row.child]]
    type = "proc"
    ratio = 3
  [[row.child]]
    [[row.child.child]]
      type = "mem"
    [[row.child.child]]
      type = "net"

# ratio: widget size ratio
# type: cpu, mem, net, proc, temp, disk, battery

Tips

1. Operations for Vim Users

bottom supports Vim-like keybindings. Navigation with hjkl, kill processes with dd, search with /. Familiar for Vim users.

2. GPU Monitoring

If using NVIDIA GPU, use the --enable_gpu option to monitor GPU usage and temperature.

3. Basic Mode for Simplicity

Using btm --basic displays a simple layout similar to htop. Useful for narrow terminals or when you want to avoid information overload.

4. Process Grouping

After navigating to the process widget with Tab, switch to "Grouped" mode with Tab to group processes with the same name.

5. Sharing Configuration

Manage config files (bottom.toml) in a dotfiles repository to share settings across machines. Since it's cross-platform, the same config works on Linux/macOS/Windows.

6. Disk Filter

Use disk_filter in the config file to filter which disks to display. Hide unnecessary mount points like /snap.

Written by Dai AokiPublished: 2026-01-20

Related Articles

Explore More