---
name: "btm"
section: "1"
platform: "linux"
package: "bottom"
version: "0.15.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/btm"
---

# btm(1)

A customizable cross-platform graphical process/system monitor for the terminal. Supports Linux, macOS, and Windows.

## NAME

btm - A customizable cross-platform graphical process/system monitor for the terminal. Supports Linux, macOS, and Windows.

## SYNOPSIS

**btm** \[OPTIONS\]

## DESCRIPTION

A customizable cross-platform graphical process/system monitor for the terminal. Supports Linux, macOS, and Windows.

## GENERAL OPTIONS

- **--autohide\_time**

  Automatically hides the time scale in graphs after being shown for a brief moment when zoomed in/out. If time is disabled using --hide\_time then this will have no effect.

- **-b**, **--basic**

  Hides graphs and uses a more basic look, largely inspired by htop's design.

- **-C**, **--config\_location** *\<PATH\>*

  Sets the location of the config file. Expects a config file in the TOML format. If it doesn't exist, a default config file is created at the path. If no path is provided, the default config location will be used.

- **-t**, **--default\_time\_value** *\<TIME\>*

  Default time value for graphs. Either a number in milliseconds or a 'human duration' (e.g. 60s, 10m). Defaults to 60s, must be at least 30s.

- **--default\_widget\_count** *\<N\>*

  Sets the N'th selected widget type to use as the default widget. Requires 'default\_widget\_type' to also be set, and defaults to 1.

  This reads from left to right, top to bottom. For example, suppose we have a layout that looks like: +-------------------+-----------------------+ \|      CPU (1)      \|        CPU (2)        \| +---------+---------+-------------+---------+ \| Process \| CPU (3) \| Temperature \| CPU (4) \| +---------+---------+-------------+---------+

  And we set our default widget type to 'CPU'. If we set '--default\_widget\_count 1', then it would use the CPU (1) as the default widget. If we set '--default\_widget\_count 3', it would use CPU (3) as the default instead.

- **--default\_widget\_type** *\<WIDGET\>*

  Sets which widget type to use as the default widget. For the default layout, this defaults to the 'process' widget. For a custom layout, it defaults to the first widget it sees.

  For example, suppose we have a layout that looks like: +-------------------+-----------------------+ \|      CPU (1)      \|        CPU (2)        \| +---------+---------+-------------+---------+ \| Process \| CPU (3) \| Temperature \| CPU (4) \| +---------+---------+-------------+---------+

  Then, setting '--default\_widget\_type temperature' will make the temperature widget selected by default.\

  *Possible values:*

  - •

    cpu

  - •

    mem

  - •

    net

  - •

    network

  - •

    proc

  - •

    process

  - •

    processes

  - •

    temp

  - •

    temperature

  - •

    disk

  - •

    batt

  - •

    battery

- **--disable\_click**

  Disables mouse clicks from interacting with bottom.

- **--disable\_keys**

  Disables keyboard shortcuts from interacting with bottom. Note this includes keyboard shortcuts to quit bottom.

- **-m**, **--dot\_marker**

  Uses a dot marker for graphs as opposed to the default braille marker.

- **-e**, **--expanded**

  Expand the default widget upon starting the app. This flag has no effect in basic mode (--basic).

- **--hide\_time**

  Hides the time scale from being shown.

- **-r**, **--rate** *\<TIME\>*

  Sets how often data is refreshed. Either a number in milliseconds or a 'human duration' (e.g. 1s, 1m). Defaults to 1s, must be at least 250ms. Smaller values may result in higher system resource usage.

- **--retention** *\<TIME\>*

  How far back data will be stored up to. Either a number in milliseconds or a 'human duration' (e.g. 10m, 1h). Defaults to 10 minutes, and must be at least  1 minute. Larger values may result in higher memory usage.

- **--show\_table\_scroll\_position**

  Shows the list scroll position tracker in the widget title for table widgets.

- **-d**, **--time\_delta** *\<TIME\>*

  The amount of time changed when zooming in/out. Takes a number in milliseconds or a human duration (e.g. 30s). The minimum is 1s, and defaults to 15s.

## PROCESS OPTIONS

- **-S**, **--case\_sensitive**

  Enables case sensitivity by default when searching for a process.

- **-u**, **--current\_usage**

  Calculates process CPU usage as a percentage of current usage rather than total usage.

- **--disable\_advanced\_kill**

  Hides additional stopping options on Unix-like systems. Signal 15 (TERM) will be sent when stopping a process.

- **--read\_only**

  Prevents performing any actions that affect the system. Disables operations such as stopping or sending signals to processes.

- **--hide\_k\_threads**

  Hide kernel threads.

- **--get\_threads**

  Also gather process thread information.

- **--process\_default\_sort** *\<COLUMN\>*

  Sets the default sort column for the process widget. Accepts any of the valid process column names (e.g. "cpu%", "mem", "pid", "name"). Overrides the \[processes\] default\_sort setting in the config file.

- **-g**, **--group\_processes**

  Groups processes with the same name by default when searching. Doesn't do anything if --tree is also set, or tree=true in the config.

- **--process\_memory\_as\_value**

  Defaults to showing process memory usage by value. Otherwise, it defaults to showing it by percentage.

- **--process\_command**

  Shows the full command name instead of the process name by default.

- **-R**, **--regex**

  Enables regex by default while searching.

- **-T**, **--tree**

  Makes the process widget use tree mode by default.

- **--tree\_collapse**

  Collapse process tree by default.

- **-n**, **--unnormalized\_cpu**

  Show process CPU% usage without averaging over the number of CPU cores.

- **-W**, **--whole\_word**

  Enables whole-word matching by default while searching.

## TEMPERATURE OPTIONS

- **-c**, **--celsius**

  Use Celsius as the temperature unit. This is the default option.

- **-f**, **--fahrenheit**

  Use Fahrenheit as the temperature unit.

- **-k**, **--kelvin**

  Use Kelvin as the temperature unit.

## CPU OPTIONS

- **-l**, **--cpu\_left\_legend**

  Puts the CPU chart legend on the left side.

- **--default\_cpu\_entry** *\<ENTRY\>*

  Sets which CPU entry type is selected by default.\

  *Possible values:*

  - •

    all

  - •

    avg

- **-a**, **--hide\_avg\_cpu**

  Hides the average CPU usage entry.

## MEMORY OPTIONS

- **--memory\_legend** *\<POSITION\>*

  Where to place the legend for the memory chart widget.\

  *Possible values:*

  - •

    none

  - •

    top-left

  - •

    top

  - •

    top-right

  - •

    left

  - •

    right

  - •

    bottom-left

  - •

    bottom

  - •

    bottom-right

- **--enable\_cache\_memory**

  Enables collecting and displaying cache and buffer memory.

- **--free\_arc**

  Subtract reclaimable ARC from memory.

- **--short\_gpu\_names**

  Use short GPU names (e.g. 'GPU' or 'GPU0', 'GPU1') in the memory widget instead of full GPU names.

## NETWORK OPTIONS

- **--network\_legend** *\<POSITION\>*

  Where to place the legend for the network chart widget.\

  *Possible values:*

  - •

    none

  - •

    top-left

  - •

    top

  - •

    top-right

  - •

    left

  - •

    right

  - •

    bottom-left

  - •

    bottom

  - •

    bottom-right

- **--network\_use\_bytes**

  Displays the network widget using bytes. Defaults to bits.

- **--network\_use\_binary\_prefix**

  Displays the network widget binary prefixes (e.g. GiB, MiB) instead of decimal prefixes (e.g. GB, MB).

- **--network\_use\_log**

  Displays the network widget with a log scale. Defaults to a non-log scale.

- **--use\_old\_network\_legend**

  (DEPRECATED) Uses separate network widget legend. This display is not tested and may be broken.

- **--show\_packets**

  Displays packets information including packet rate (packets per second) and average packet size in the network widget.

- **--network\_start\_zeroed**

  Zeroes out the total network usage ("All") counters so it shows the total usage since the app is started, rather than the total usage since boot.

## DISK OPTIONS

- **--disk\_use\_binary\_prefix**

  Displays the disk widget with binary prefixes (e.g. GiB, MiB) instead of decimal prefixes (e.g. GB, MB).

## BATTERY OPTIONS

- **--battery**

  Shows the battery widget in default or basic mode, if there is as battery available. This has no effect on custom layouts; if the battery widget is desired for a custom layout, explicitly specify it.

## GPU OPTIONS

- **--disable\_gpu**

  Disable collecting and displaying NVIDIA and AMD GPU information.

## STYLE OPTIONS

- **--theme** *\<SCHEME\>*

  Use a pre-defined colour theme. Currently supported themes are: - default - default-light (default but adjusted for lighter backgrounds) - gruvbox       (a bright theme with 'retro groove' colours) - gruvbox-light (gruvbox but adjusted for lighter backgrounds) - nord          (an arctic, north-bluish colour palette) - nord-light    (nord but adjusted for lighter backgrounds)

## OTHER OPTIONS

- **-h**, **--help**

  Prints help info (for more details use '--help').

- **-V**, **--version**

  Prints version information.

## VERSION

v0.15.0

## AUTHORS

Clement Tsang \<cjhtsang@uwaterloo.ca\>
