Bottom
Yet another cross-platform graphical process/system monitor.
Install / Use
/learn @ClementTsang/BottomREADME
<img src="https://img.shields.io/github/checks-status/ClementTsang/bottom/main?style=flat-square&logo=github" alt="CI status"> <img src="https://img.shields.io/crates/v/bottom.svg?style=flat-square" alt="crates.io link"> <img src="https://img.shields.io/badge/docs-stable-66c2a5?style=flat-square&labelColor=555555&logoColor=white" alt="Stable documentation"> <img src="https://img.shields.io/badge/docs-nightly-88c0d0?style=flat-square&labelColor=555555&logoColor=white" alt="Nightly documentation"> <img src="https://img.shields.io/badge/docs-mirror-8A2BE2?style=flat-square&labelColor=555555&logoColor=white" alt="Doc mirror on GitHub Pages">
</div> <div align="center"> <img src="assets/demo.gif" alt="Quick demo recording showing off bottom's searching, expanding, and process killing."/> <p> <sub> Demo using the <a href="https://github.com/morhetz/gruvbox">Gruvbox</a> theme (<code>--theme gruvbox</code>), along with <a href="https://www.ibm.com/plex/">IBM Plex Mono</a> and <a href="https://sw.kovidgoyal.net/kitty/">Kitty</a> </sub> </p> </div>Table of contents <!-- omit in toc -->
Features
As (yet another) process/system visualization and management application, bottom supports the typical features:
-
Graphical visualization widgets for:
- CPU usage over time, at an average and per-core level
- RAM and swap usage over time
- Network I/O usage over time
with support for zooming in/out the current time interval displayed.
-
Widgets for displaying info about:
-
A process widget for displaying, sorting, and searching info about processes, as well as support for:
-
Cross-platform support for Linux, macOS, and Windows, with more planned in the future.
-
Customizable behaviour that can be controlled with command-line options or a config file, such as:
- Custom and built-in colour themes
- Customizing widget behaviour
- Changing the layout of widgets
- Filtering out entries in some widgets
-
And more:
-
And more!
You can find more details in the documentation.
Support
Official
bottom officially supports the following operating systems and corresponding architectures:
- macOS (
x86_64,aarch64) - Linux (
x86_64,i686,aarch64) - Windows (
x86_64,i686)
These platforms are tested to work for the most part and issues on these platforms will be fixed if possible. Furthermore, binaries are built and tested using the most recent version of stable Rust at the time.
For more details on supported platforms and known problems, check out the documentation.
Unofficial
bottom may work on a number of platforms that aren't officially supported. Note that unsupported platforms:
- Might not be tested in CI to build or pass tests (see here for checked platforms).
- Might not be properly tested by maintainers prior to a stable release.
- May only receive limited support, such as missing features or bugs that may not be fixed.
Note that some unsupported platforms may eventually be officially supported (e.g., FreeBSD).
A non-comprehensive list of some currently unofficially-supported platforms that may compile/work include:
- FreeBSD (
x86_64) - Linux (
armv6,armv7,powerpc64le,riscv64gc,loongarch64) - Android (
arm64) - Windows (
arm64)
For more details on unsupported platforms and known problems, check out the documentation.
Installation
Cargo
Installation via cargo can be done by installing the bottom crate:
# You might need to update the stable version of Rust first.
# Other versions might work, but this is not guaranteed.
rustup update stable
# Install the binary from crates.io.
cargo install bottom --locked
# If you use another channel by default, you can specify
# the what channel to use like so:
cargo +stable install bottom --locked
# --locked may be omitted if you wish to not use the
# locked crate versions in Cargo.lock. However, be
# aware that this may cause problems with dependencies.
cargo install bottom
Alternatively, you can use cargo install using the repo as the source.
# You might need to update the stable version of Rust first.
# Other versions might work, but this is not guaranteed.
rustup update stable
# Option 1 - Download an archive from releases and install
curl -LO https://github.com/ClementTsang/bottom/archive/0.12.3.tar.gz
tar -xzvf 0.12.3.tar.gz
cargo install --path . --locked
# Option 2 - Manually clone the repo and install
git clone https://github.com/ClementTsang/bottom
cd bottom
cargo install --path . --locked
# Option 3 - Install using cargo with the repo as the source
cargo install --git https://github.com/ClementTsang/bottom --locked
# You can also pass in the target-cpu=native flag to try to
# use better CPU-specific optimizations. For example:
RUSTFLAGS="-C target-cpu=native" cargo install --path . --locked
Alpine
bottom is available as a package for Alpine Linux via apk:
apk add bottom
Packages for documentation (bottom-doc) and completions for Bash (bottom-bash-completion), Fish (bottom-fish-completion), and Zsh (bottom-zsh-completion) are also available.
Arch Linux
bottom is available as an official package that can be installed with pacman:
sudo pacman -S bottom
If you want the latest changes that are not yet stable, you can also install bottom-git from the AUR:
# Using paru
paru -S bottom-git
# Using yay
yay -S bottom-git
Debian / Ubuntu
A .deb file is provided on each stable release and
nightly builds for x86, aarch64, and armv7.
Some examples of installing it this way:
# x86-64
curl -LO https://github.com/ClementTsang/bottom/releases/download/0.12.3/bottom_0.12.3-1_amd64.deb
sudo dpkg -i bottom_0.12.3-1_amd64.deb
# ARM64
curl -LO https://github.com/ClementTsang/bottom/releases/download/0.12.3/bottom_0.12.3-1_arm64.deb
sudo dpkg -i bottom_0.12.3-1_arm64.deb
# ARM
curl -LO https://github.com/ClementTsang/bottom/releases/download/0.12.3/bottom_0.12.3-1_armhf.deb
sudo dpkg -i bottom_0.12.3-1_armhf.deb
# musl-based
curl -LO https://github.com/ClementTsang/bottom/releases/download/0.12.3/bottom-musl_0.12.3-1_amd64.deb
sudo dpkg -i bottom-musl_0.12.3-1_amd64.deb
Exherbo Linux
bottom is available as a [rust package](https://gitlab.exherbo.org/exherbo/rust/-/tree/
