Introduction
bpytop is a terminal-based resource monitor written in Python that displays CPU, memory, disk, network, and process information in a visually appealing, game-inspired interface. It is the Python rewrite of bashtop, offering improved performance and cross-platform support.
What bpytop Does
- Displays real-time CPU usage per core with responsive graphs
- Shows memory and swap utilization with visual bars
- Monitors disk I/O and network bandwidth with historical charts
- Provides an interactive process list with sorting, filtering, and signal sending
- Supports multiple color themes and layout customization
Architecture Overview
bpytop is a single-file Python application that uses psutil for cross-platform system metrics collection. The TUI rendering is handled by a custom drawing engine that outputs ANSI escape sequences directly to the terminal. It runs a main loop that polls system stats at configurable intervals and redraws only changed regions for efficiency.
Self-Hosting & Configuration
- Install via pip, Homebrew, apt, snap, or your distribution's package manager
- Configuration file lives at
~/.config/bpytop/bpytop.conf - Customize update interval, color theme, and displayed sections in the config
- Themes are stored in
~/.config/bpytop/themes/as plain text files - Requires Python 3.6+ and psutil 5.7+
Key Features
- Game-inspired visual design with smooth graph animations
- Mouse support for clicking processes and navigating menus
- Multiple sorting options for the process list (CPU, memory, PID, name)
- Vi-style and Emacs-style keybindings
- Minimal resource footprint compared to GUI monitors
Comparison with Similar Tools
- btop++ — The C++ successor to bpytop with better performance; use btop if available
- htop — Simpler and more traditional; bpytop adds visual graphs and disk/network panels
- glances — Web UI and API export capabilities, but heavier and less visually focused
- gotop — Similar aesthetic in Go; bpytop has broader OS support via psutil
- bottom — Rust-based with similar features; faster but less colorful default theme
FAQ
Q: What is the difference between bpytop and btop++? A: btop++ is a C++ rewrite by the same author with better performance. bpytop is the Python version, easier to install but slightly slower.
Q: Does bpytop work on macOS? A: Yes, it supports macOS, Linux, and FreeBSD via psutil.
Q: Can I monitor remote machines? A: bpytop only monitors the local machine. For remote monitoring, consider combining it with SSH or using glances.
Q: How do I change the color theme? A: Press M in bpytop to open the menu, then select a theme, or edit the theme setting in bpytop.conf.