explaingit

aristocratos/bpytop

10,889PythonAudience · ops devopsComplexity · 2/5LicenseSetup · easy

TLDR

A colorful, keyboard-driven terminal app for Linux, macOS, and FreeBSD that shows live graphs of CPU, memory, disk, and network usage and lets you filter and stop running processes, all inside a text terminal window.

Mindmap

mindmap
  root((bpytop))
    What it monitors
      CPU usage
      Memory usage
      Disk read and write
      Network traffic
    Features
      Live graphs
      Process list
      Kill processes
      Mouse support
    Platforms
      Linux
      macOS
      FreeBSD
    Audience
      Sysadmins
      Developers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Monitor CPU, memory, disk, and network usage on a remote Linux server over SSH in real time.

USE CASE 2

Filter the running process list by name and send a kill signal to an unresponsive program without leaving the terminal.

USE CASE 3

Watch live network traffic graphs to diagnose bandwidth spikes on a server.

Tech stack

Pythonpsutil

Getting it running

Difficulty · easy Time to first run · 5min

Requires a terminal with 24-bit color and a Unicode-compatible font, graphs will look broken without both.

Use freely for any purpose including commercial use, as long as you include the Apache 2.0 license notice.

In plain English

bpytop is a terminal-based resource monitor for Linux, macOS, and FreeBSD. A resource monitor shows you in real time how your computer is using its processor, memory, storage, and network connection, and which running programs are consuming those resources. bpytop runs entirely inside a text terminal window and uses colored graphs and charts to display this information visually. The tool is written in Python and is a rewrite of an earlier shell-script version called bashtop. It shows live graphs for CPU usage, memory usage, disk read and write speeds, and network traffic. It also shows a sortable list of running processes, lets you filter that list by name, and lets you send termination signals to processes directly from the interface, which is useful for stopping a program that has become unresponsive. All of the controls can be operated with a keyboard, and the interface also supports mouse clicks and scrolling. The display is built using Unicode characters (including braille symbols) to draw smooth-looking graphs inside a plain terminal. This means it requires a terminal that supports 24-bit color and a font that includes those Unicode characters. If your terminal or font does not support them, the graphs will look broken. The README includes notes on this and links to compatible fonts and terminal applications. As of September 2021, the author released a new C++ version called btop (at a separate repository), which is faster and uses no external libraries. The bpytop repository remains available and functional, but active development moved to btop. Installation options include pip (the standard Python package installer), Homebrew on macOS, Snap packages on Linux, and manual installation from source. The only required dependency beyond Python 3.7 is a library called psutil, which handles reading system statistics across different operating systems. The project is licensed under the Apache 2.0 license.

Copy-paste prompts

Prompt 1
Install bpytop on Ubuntu 22.04 via pip and launch it, walk me through the keyboard shortcuts for navigating between panels.
Prompt 2
How do I filter the process list in bpytop to show only processes matching a specific name, and then kill one?
Prompt 3
What terminal emulator and font settings do I need so bpytop's Unicode braille graphs render correctly on macOS?
Prompt 4
Compare bpytop to its successor btop, what features does btop add and what do I need to change to switch?
Prompt 5
How do I install bpytop on macOS using Homebrew and configure it to show only CPU and memory graphs?
Open on GitHub → Explain another repo

← aristocratos on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.