Life on the terminal is expressively sweet. Typing those commands away without abandon is a elicits a satisfactory feeling that grips you as you configure your stuff. Getting out of the terminal just to check how the system is doing is out of question and hence the emergence of wonderful tools that will sweeten your terminal life the more. We know you have used top or htop before to check how your system is doing at a glance but times come when you desire more. The good news today is that “more” is available at your disposal and we give it to you today.

Introducing bpytop, a flashy, cute, theme-enabled terminal resource monitor. bpytop is a Python-based resource monitor for your terminal. It is a pimped version of the normal top and a Python port of bashtop. You can fully customize your themes to get the colors and look that you prefer. This tool monitors usage and stats for processor, memory, disks, network and processes and we are going to check it all out here.

Features of bpytop resource monitoring tool

The following are the features of bpytop that makes it stand out in the multitude.

  • Easy to use, with a game inspired menu system.
  • Full mouse support, all buttons with a highlighted key is clickable and mouse scroll works in process list and menu boxes.
  • Fast and responsive UI with UP, DOWN keys process selection.
  • Function for showing detailed stats for selected process.
  • Ability to filter processes, multiple filters can be entered.
  • Easy switching between sorting options.
  • Send SIGTERM, SIGKILL, SIGINT to selected process.
  • UI menu for changing all config file options.
  • Auto scaling graph for network usage.
  • Shows message in menu if new version is available
  • Shows current read and write speeds for disks

Installation of bpytop

Enough of talk, we shall go ahead and deploy bpytop. It is developed using Python and hence heavily depends on it. Therefore, we need to install Python3 and psutil module (v5.7.0 or later) in all Linux distributions and FreeBSD in case you are using one not covered here.

Dependency installation Linux and FreeBSD

Install python3, psutil and git with a package manager of you choice

#####Ubuntu#####
sudo apt -y update && sudo apt -y upgrade
sudo apt install -y python3-pip git gcc python3-dev
sudo pip3 install psutil

#####CentOS #####
sudo yum install update
sudo yum install python3 install gcc python3-devel git
sudo pip3 install psutil

#####FreeBSD#####
sudo pkg install git python3 py37-psutil

#####Arch Linux | Manjaro#####
sudo pacman -S python python-psutil

There are various ways through which you can get bpytop in your favorite Linux distribution, Mac or FreeBSD. Ranging from snap, repositories to manual way, whichever means you prefer, you will be sorted. We will begin with the manual way:

Manual installation

All bpytop code is published on GitHub and hence we shall just clone the project and proceed with the installation. Since we have all the dependencies installed, we are free to clone and install bpytop.

#####FreeBSD#####

sudo pkg install bpytop

#####Ubuntu#####
cd ~
git clone https://github.com/aristocratos/bpytop.git
cd bpytop
sudo make install

#####CentOS #####
cd ~
git clone https://github.com/aristocratos/bpytop.git
cd bpytop
sudo make install

#####FreeBSD#####
cd ~
git clone https://github.com/aristocratos/bpytop.git
cd bpytop
sudo make install

Installation via Snap

bpytop comes in handy from Snappy. We all know the repute of Snap for making installation of applications easy and quick. If you like Snap, you can fetch bpytop as follows:

####Install bpytop on Debian####

sudo apt update
sudo apt install snapd
sudo snap install core
sudo snap install bpytop

####Install bpytop on Ubuntu####

sudo apt update
sudo apt install snapd
sudo snap install bpytop

####Install bpytop on CentOS####

sudo yum install epel-release
sudo yum install snapd
sudo systemctl enable --now snapd.socket
sudo ln -s /var/lib/snapd/snap /snap
sudo snap install bpytop

####Install bpytop on RHEL 8####

sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf upgrade
sudo rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo subscription-manager repos --enable "rhel-*-optional-rpms" --enable "rhel-*-extras-rpms"
sudo yum update
sudo yum install snapd

####Install bpytop on Arch Linux | Manjaro####

sudo pacman -S snapd
sudo systemctl enable --now snapd.socket
sudo ln -s /var/lib/snapd/snap /snap
sudo snap install bpytop

####Install bpytop on Fedora####

sudo dnf install snapd
sudo ln -s /var/lib/snapd/snap /snap
sudo snap install bpytop

After installing bpytop using Snap, make sure you give requisite permissions as follows

sudo snap connect bpytop:mount-observe
sudo snap connect bpytop:network-control
sudo snap connect bpytop:hardware-observe
sudo snap connect bpytop:system-observe
sudo snap connect bpytop:process-control
sudo snap connect bpytop:physical-memory-observe

How to use bpytop

To use bpytop, you simply type in the name as it is and it comes with many switches or options you can use to tune it for a given feature. Running it without any argument works pretty well as well.

$ bpytop [argument]

Arguments:
    -f, --full            Start in full mode showing all boxes [default]
    -p, --proc            Start in minimal mode without memory and net boxes
    -s, --stat            Start in minimal mode without process box
    -v, --version         Show version info and exit
    -h, --help            Show this help message and exit
    --debug               Start with loglevel set to DEBUG overriding value set in config

It starts as shown below after running bpytop command

<img alt="" data-ezsrc="https://kirelos.com/wp-content/uploads/2020/09/echo/bpytop-freebsd-logo-1024×482.png" data-ez ezimgfmt="rs rscb8 src ng ngcb8 srcset" height="482" loading="lazy" src="data:image/svg xml,” width=”1024″>

Filter processes

To filter processes by a specific string, press keyboard keys (F, f) keys and then type the string name. An example is searching “cron“. Simply press keyboard keys (F, f) and type cron. Once done, you can clear any entered filter by pressing Escape (ESC) key.

<img alt="" data-ezsrc="https://kirelos.com/wp-content/uploads/2020/09/echo/bpytop-freebsd-cron-1024×484.png" data-ez ezimgfmt="rs rscb8 src ng ngcb8 srcset" height="484" loading="lazy" src="data:image/svg xml,” width=”1024″>

Changing view mode

If you would wish to change to view mode, the letter m intuitively comes in play. Press “m” whenever you want to change to minimal mode or lesser metrics.

Before pressing “m

<img alt="" data-ezsrc="https://kirelos.com/wp-content/uploads/2020/09/echo/bpytop-freebsd-before-m-1024×497.png" data-ez ezimgfmt="rs rscb8 src ng ngcb8 srcset" height="497" loading="lazy" src="data:image/svg xml,” width=”1024″>

After Pressing “m” (Minimal view)

<img alt="" data-ezsrc="https://kirelos.com/wp-content/uploads/2020/09/echo/bpytop-freebsd-after-m-1024×500.png" data-ez ezimgfmt="rs rscb8 src ng ngcb8 srcset" height="500" loading="lazy" src="data:image/svg xml,” width=”1024″>

Configuring themes

There are two ways of configuring the themes that you would wish to keep. The first one is the configuration file way. Config files are stored in “$HOME/.config/bpytop” folder.

vim ~/.config/bpytop/bpytop.conf
<img alt="" data-ezsrc="https://kirelos.com/wp-content/uploads/2020/09/echo/bpytop-freebsd-config-file.png" data-ez ezimgfmt="rs rscb8 src ng ngcb8 srcset" height="625" loading="lazy" src="data:image/svg xml,” width=”941″>

The second way is via bpytop interface itself. Simply launch it via the command and then press “Esc” key to get the Menu items as shown below.

<img alt="" data-ezsrc="https://kirelos.com/wp-content/uploads/2020/09/echo/bpytop-freebsd-options-esc-1024×487.png" data-ez ezimgfmt="rs rscb8 src ng ngcb8 srcset" height="487" loading="lazy" src="data:image/svg xml,” width=”1024″>

Choose “Options” using the up/down arrow keys. Under “Options” you will find many other options for you to set such as “Color themes”, “Theme background“, “Proc tree“, “Proc colors” and much more as you will observe.

<img alt="" data-ezsrc="https://kirelos.com/wp-content/uploads/2020/09/echo/bpytop-freebsd-options-change-themes-arrow-keys-1-1024×493.png" data-ez ezimgfmt="rs rscb8 src ng ngcb8 srcset" height="493" loading="lazy" src="data:image/svg xml,” width=”1024″>

You can choose a given option of your choice using the Up/Down keyboard keys. Once you have landed on the given option, use the Left/Right keys to choose the setting you want on that “Option”.

<img alt="" data-ezsrc="https://kirelos.com/wp-content/uploads/2020/09/echo/bpytop-freebsd-options-change-themes-arrow-keys-2-1024×491.png" data-ez ezimgfmt="rs rscb8 src ng ngcb8 srcset" height="491" loading="lazy" src="data:image/svg xml,” width=”1024″>

For instance, to choose a given “Color Theme” of the 12 present, we settle on “Color Theme” option by using the Up/Down keyboard keys then we scroll through the themes using the Left/Right keyboard keys. It changes to the respective theme as you scroll through as shown above which gives you a visual view in the process. This is the better way of configuring such settings in my view.

There are many other keyboard keys you can use for a particular setting. A screenshot has been shared below.

<img alt="" data-ezsrc="https://kirelos.com/wp-content/uploads/2020/09/echo/bpytop-freebsd-help-screenshot.png" data-ez ezimgfmt="rs rscb8 src ng ngcb8 srcset" height="643" loading="lazy" src="data:image/svg xml,” width=”886″>

To get the same, press “Esc” key and then choose “Help” option on that list.

<img alt="" data-ezsrc="https://kirelos.com/wp-content/uploads/2020/09/echo/bpytop-freebsd-options-esc-1-1024×487.png" data-ez ezimgfmt="rs rscb8 src ng ngcb8 srcset" height="487" loading="lazy" src="data:image/svg xml,” width=”1024″>

To close bpytop interface, hit “q” for quit.

Concluding Remarks

bpytop terminal monitoring tool helps you get a lot of information about your system in a nutshell. Its simplicity and rich metrics makes it a brilliant tool and a worthy companion in your times of conquest. Create friendship with it and your rewards will be plenty. That being said, we thank you for staying till the end and we hope the guide was as helpful as we wished it to be. Other guides similar to this one are listed below just for you:

10 Best Open Source Linux Monitoring Tools

Top Terminal Based Monitoring Tools for Linux

Install Bashtop – Terminal Resource Monitor for Linux | macOS | FreeBSD

broot – Easy way to see and navigate directory trees in Linux

Best Terminal Emulators for Linux