btop
Resource monitor with a beautiful TUI interface
Quick Take: btop
btop is the best system monitor for terminal users, period. Its TUI is so well-designed that it genuinely replaces the need for GUI tools like Activity Monitor. Per-core CPU graphs, network throughput visualization, process tree view, mouse support, and beautiful theming make it a tool you'll want to leave running at all times. The only limitations are macOS-specific sensor support (temperatures are tricky on Apple Silicon) and the lack of menu bar integration. Pair it with Stats for menu bar monitoring and you have the complete picture.
Best For
- •Terminal-Native Developers
- •System Administrators and SREs
- •Terminal Enthusiasts Who Care About Aesthetics
Install with Homebrew
brew install --cask btopWhat is btop?
btop is a terminal-based system resource monitor that makes htop look like it belongs in the 1990s. Written in C++ by aristocratos, btop displays CPU usage, memory consumption, disk I/O, network traffic, and running processes in a gorgeous TUI (terminal user interface) that you'd be forgiven for mistaking for a GUI application. The original btop++ replaced the author's earlier Python-based bpytop, which itself replaced bashtop. Each iteration brought better performance and a nicer interface. The current C++ version is the final form: fast enough to update at 60fps without measurable CPU overhead, attractive enough to leave running on a second monitor, and functional enough to replace Activity Monitor entirely. On macOS, btop reads system metrics through sysctl, IOKit, and the Mach kernel API. It shows per-core CPU utilization with colored bar graphs, memory pressure with used/available/cached breakdowns, network throughput per interface, disk usage per mount point, and a full process list with CPU/memory sorting, filtering, and tree view. Mouse support is built in—you can click on processes, resize panels, and scroll through the interface. Themes are customizable, with popular presets like Catppuccin, Dracula, Nord, and Gruvbox available out of the box. What sets btop apart from GUI monitors like Stats or iStat Menus is that it lives in the terminal. It runs over SSH, inside tmux sessions, on remote servers, in Docker containers—anywhere you have a terminal. For developers and sysadmins who already live in the command line, btop provides system monitoring without context-switching to a separate app.
Deep Dive: btop's Evolution from Bash Script to C++ Powerhouse
The journey from bashtop to bpytop to btop++, and how a terminal system monitor became a benchmark for TUI design.
History & Background
btop's lineage starts with bashtop, a system monitor written entirely in Bash by the developer known as aristocratos. Bash was too slow for smooth rendering, so aristocratos rewrote it in Python as bpytop, which gained significant popularity on Reddit and GitHub. But Python still had overhead—startup was slow and CPU usage was higher than ideal for a monitoring tool. The final rewrite in C++ as btop++ (later shortened to btop) solved both problems: near-instant startup, minimal CPU usage, and silky-smooth rendering at terminal refresh rates.
How It Works
btop uses a custom TUI rendering engine that writes directly to stdout using ANSI escape codes. It doesn't use ncurses—instead, it implements its own double-buffered rendering loop that only redraws changed regions of the screen, minimizing terminal I/O. On macOS, system data is collected through sysctl calls, IOKit queries, and Mach host info APIs. The process list is read from /proc (on Linux) or through sysctl/libproc (on macOS). All data collection runs on background threads to keep the UI responsive.
Ecosystem & Integrations
btop is part of a broader ecosystem of modern CLI tools replacing older Unix utilities: fd replacing find, ripgrep replacing grep, bat replacing cat, and btop replacing htop/top. This generation of tools prioritizes both functionality and aesthetics, recognizing that developers spend hours looking at terminal output and it should look good. btop's theme system has been particularly influential—many other TUI tools have adopted similar theme configuration formats.
Future Development
Future btop development focuses on improved macOS sensor support (fan speed, temperature via SMC), GPU utilization monitoring (currently available on Linux with NVIDIA, pending for Apple Silicon), and a plugin system for custom data sources. The project also plans to improve accessibility with screen reader support for the TUI layout.
Key Features
Comprehensive Resource Dashboard
btop's main screen packs CPU (per-core graphs with historical sparklines), memory (used, available, cached, swap), disk (per-mount usage and I/O rates), network (upload/download per interface with historical graph), and processes (sortable, filterable, tree view) into a single terminal window. Every panel updates in real-time. The layout adjusts dynamically to your terminal size—widen the window and panels expand; shrink it and they collapse gracefully.
Mouse-Driven TUI
Unlike most terminal tools, btop has full mouse support. Click on a process to select it, scroll to navigate the process list, click panel headers to change sort order, and drag panel borders to resize. This makes btop accessible to users who aren't comfortable with keyboard-only navigation while still supporting all keyboard shortcuts for power users.
Process Management
btop isn't just a viewer—you can interact with processes directly. Select a process and send signals (SIGTERM, SIGKILL, SIGSTOP) with a keypress. Filter the process list by name to find that runaway Node process eating 4GB of RAM. Switch to tree view to see parent-child process relationships, which is essential for understanding what spawned that mystery process. On macOS, it correctly shows launchd-managed processes and their hierarchies.
Customizable Themes
btop ships with dozens of themes and supports custom themes via simple INI-style config files. Popular terminal color schemes—Catppuccin Mocha, Dracula, Nord, Gruvbox, Solarized—are included. You can match btop to your terminal emulator's theme for a cohesive look. Theme files are plain text, so sharing them across machines (via dotfiles) is trivial.
Per-Core CPU Graphs with History
The CPU panel shows individual utilization for every core with colored bar graphs and a rolling history sparkline. On an M3 Max with 16 cores (12 performance + 4 efficiency), you see each core individually. This granularity matters for diagnosing whether a workload is single-threaded (one core pegged, rest idle) or properly parallelized. The history sparkline shows the last few minutes of activity at a glance.
Low Overhead, High Performance
btop itself uses under 1% CPU and around 20-30MB of RAM while monitoring your entire system. It's written in optimized C++ with careful attention to avoiding unnecessary allocations and system calls. Even on an older M1 MacBook Air, btop adds no perceptible system load. You can leave it running permanently in a dedicated tmux pane without guilt.
Who Should Use btop?
1The Terminal-Native Developer
This developer runs everything from their terminal—Neovim, tmux, git, build tools. They dedicate one tmux pane to btop, which sits alongside their code editor and test runner. When a build takes longer than expected, they glance at btop to check if their Mac is memory-pressured (swap usage spike) or CPU-saturated (all cores at 100%). When their Docker container starts consuming 8GB of RAM, they spot it immediately in btop's process tree without opening Activity Monitor.
2The Remote Server Admin
An SRE SSHs into a production Linux server to investigate a performance alert. They run btop and immediately see that one process is consuming 95% of CPU and the network interface is saturated. The visual interface lets them diagnose the issue in seconds—something that would take multiple commands (top, iotop, iftop, nethogs) to piece together otherwise. They also use btop on their Mac locally to monitor their own workstation during load testing.
3The Rice Enthusiast
A developer who cares deeply about their terminal aesthetic (the 'ricing' community) uses btop as the centerpiece of their terminal setup screenshots. They've configured it with a Catppuccin Mocha theme to match their Ghostty terminal, Neovim, and tmux themes. The resulting dashboard looks so good they share it on r/unixporn, where btop screenshots regularly hit the front page.
How to Install btop on Mac
btop installs via Homebrew in one command. It runs on macOS 12 (Monterey) and later, with full support for Apple Silicon.
Install via Homebrew
Run `brew install btop` in your terminal. This installs the latest stable version with macOS-specific system monitoring support.
Launch btop
Type `btop` in your terminal and press Enter. The full dashboard appears immediately, showing CPU, memory, disk, network, and processes.
Customize Theme (Optional)
Press `Esc` to open the options menu, navigate to 'Theme,' and browse available themes. Select one that matches your terminal color scheme. Press Enter to apply.
Make It Persistent
Add `btop` to your tmux startup or create a shell alias. For a dedicated monitoring setup, consider running btop in its own tmux session: `tmux new-session -d -s monitor 'btop'`.
Pro Tips
- • Use `btop --utf-force` if your terminal doesn't render box-drawing characters correctly.
- • Press `f` to filter processes by name—useful for finding specific apps or services.
- • Press `t` to toggle tree view, which shows parent-child process relationships.
Configuration Tips
Match Your Terminal Theme
If you use Catppuccin Mocha in your terminal (Ghostty, Alacritty, iTerm2), select the matching btop theme in Options > Theme. Consistent theming across your entire terminal stack—editor, multiplexer, monitor—creates a cohesive, professional-looking environment.
Run in a Dedicated Tmux Pane
Create a tmux layout with btop in a small bottom pane: `tmux split-window -v -p 25 'btop'`. This gives you persistent system monitoring alongside your main work without dedicating a full terminal window. Resize the pane smaller for a compact view or larger when you need details.
Alternatives to btop
btop excels in the terminal, but different workflows call for different monitoring tools.
Stats
Stats is a menu bar monitor—it puts CPU, memory, network, and disk indicators in your macOS menu bar. It's always visible without opening a terminal window. Use Stats for at-a-glance monitoring throughout the day. Use btop when you need deep visibility into processes, per-core CPU, and network per-interface, or when monitoring remote servers over SSH.
Activity Monitor
Apple's built-in Activity Monitor is the GUI equivalent of btop. It shows processes, CPU, memory, energy, disk, and network. It's fine for occasional use, but btop updates faster, shows more data in less space, and works in the terminal. Developers who already have a terminal open should just run btop instead of switching to Activity Monitor.
htop
htop is the classic terminal process viewer that btop replaced. htop is more minimal—it focuses on the process list with basic CPU/memory bars. btop adds full-dashboard visualization with network, disk, and historical graphs. If you want the simplest possible process list, htop is fine. If you want a complete system dashboard in your terminal, btop is the clear upgrade.
Pricing
btop is free and open-source under the Apache 2.0 License. No paid tiers, no premium features, no telemetry. It's a community-maintained project funded by optional GitHub Sponsors and donations.
Pros
- ✓Stunning TUI interface that rivals GUI tools in visual quality
- ✓Full mouse support in the terminal
- ✓Per-core CPU monitoring with historical graphs
- ✓Process management with signal sending and tree view
- ✓Dozens of built-in themes including Catppuccin, Dracula, Nord
- ✓Extremely low resource overhead (~1% CPU, ~25MB RAM)
- ✓Works over SSH, in tmux, in Docker—anywhere you have a terminal
- ✓Free and open-source (Apache 2.0)
Cons
- ✗Terminal-only—no menu bar widget or dock icon
- ✗macOS sensor support is limited (no fan speed or temperature on Apple Silicon)
- ✗Requires a terminal with good Unicode/emoji support for best rendering
- ✗No alerting or notification system (it's a viewer, not a monitoring service)
- ✗Configuration is file-based, no GUI settings
Community & Support
btop has a thriving community on GitHub with over 20,000 stars. The project's issue tracker is actively maintained by aristocratos and community contributors. Themes are frequently contributed by users and shared on GitHub and Reddit. The r/unixporn subreddit regularly features btop in terminal setup screenshots. Documentation is maintained in the repository's README and wiki, covering installation, configuration, theme creation, and platform-specific notes.
Frequently Asked Questions about btop
Our Verdict
btop is the best system monitor for terminal users, period. Its TUI is so well-designed that it genuinely replaces the need for GUI tools like Activity Monitor. Per-core CPU graphs, network throughput visualization, process tree view, mouse support, and beautiful theming make it a tool you'll want to leave running at all times. The only limitations are macOS-specific sensor support (temperatures are tricky on Apple Silicon) and the lack of menu bar integration. Pair it with Stats for menu bar monitoring and you have the complete picture.
About the Author
Productivity & Workflow Analyst
Related Technologies & Concepts
Related Topics
Sources & References
Fact-CheckedLast verified: Feb 23, 2026
- 1btop GitHub Repository
Accessed Feb 23, 2026
Research queries: btop macOS system monitor 2026