byobu byobu
GPLv3 Open source · Linux · BSD · macOS

Your workstation terminal,
far more productive.

Byobu is a text-based window manager and terminal multiplexer. It wraps tmux (or GNU Screen) with elegant keybindings, toggleable system status notifications, profile management, and split-pane layouts — on any Linux, BSD, or Mac system.

Install byobu View on GitHub
$ sudo apt install byobu
Reading package lists... Done
Setting up byobu (6.11-0ubuntu2) ...
$ byobu
Welcome to byobu — press F9 to configure

See it in action

A live demonstration of byobu's keybindings, status bar, and window management.

Install

Available on all major package managers.

# Ubuntu, Debian, and derivatives
$ sudo apt install byobu
 
# Launch byobu
$ byobu
 
# Enable byobu at login (optional)
$ byobu-enable
byobu will be launched when you login.
 
# Select tmux or screen backend
$ byobu-select-backend
# macOS with Homebrew (requires tmux)
$ brew install tmux byobu
 
# Launch byobu
$ byobu
 
# macOS users may need to set TERM for F-key support
# Add to your ~/.zshrc or ~/.bash_profile:
$ echo "alias ssh='TERM=vt100 ssh'" >> ~/.zshrc
# Clone from GitHub
$ git clone https://github.com/dustinkirkland/byobu.git
$ cd byobu
 
# Generate configure script
$ ./autogen.sh
 
# Configure (install to $HOME)
$ ./configure --prefix="$HOME/byobu"
$ make && make install
 
# Update your PATH
$ echo 'export PATH=$HOME/byobu/bin:$PATH' >> ~/.bashrc
$ source ~/.bashrc
 
# Run
$ byobu

Dependencies: tmux ≥ 1.5 and/or GNU Screen. Optionally python-newt for the configuration utility. Byobu works on most Linux, BSD, and macOS distributions.

Downloads

Byobu is available in most major Linux and BSD package repositories. Use your system's package manager for the easiest install.

Distribution Install command Package page
Ubuntu / Debian sudo apt install byobu launchpad.net
Fedora / RHEL sudo dnf install byobu packages.fedoraproject.org
Arch Linux pacman -S byobu aur.archlinux.org
Alpine Linux apk add byobu pkgs.alpinelinux.org
Gentoo emerge byobu packages.gentoo.org
openSUSE sudo zypper install byobu software.opensuse.org
Linux Mint sudo apt install byobu community.linuxmint.com
macOS (Homebrew) brew install byobu formulae.brew.sh
Wolfi / Chainguard OS apk add byobu github.com/wolfi-dev

How it works

Byobu sits on top of tmux or GNU Screen, adding a polished layer of status, keybindings, and configuration.

  Your shell                              tmux / GNU Screen
  ┌──────────────────────────┐            ┌────────────────────────┐
  │   bash / zsh / fish      │            │  window & pane mgmt    │
  │         + your app       │            │  scrollback (10k lines) │
  └────────────┬─────────────┘            │  copy / paste modes    │
               │  launches                └───────────┬────────────┘
               ▼                                      │  backend
  ┌──────────────────────────┐                        │
  │         byobu            │◄───────────────────────┘
  │                          │
  │  • F-key keybindings     │
  │  • status bar            │
  │  • profile management    │
  │  • configuration TUI     │
  └──────────────────────────┘
Step 01

Install

Install via apt, brew, or from source. Byobu runs as a wrapper around your existing tmux or GNU Screen setup — no configuration required to get started.

Step 02

Launch

Run byobu from any terminal. Press F9 to open the configuration menu, toggle status items on or off, switch backends, and customize your profile.

Step 03

Enable at login

Run byobu-enable to launch byobu automatically on every login. Run byobu-disable to turn this off. Select tmux or screen with byobu-select-backend.

Everything your terminal deserves.

A full-featured enhancement layer for tmux and GNU Screen — keybindings, status, splits, and more.

⌨️

F-key keybindings

Intuitive function-key shortcuts for creating windows, splitting panes, scrolling, detaching, and more — no prefix key required. Press F1 in-session for the full reference.

📊

System status bar

A rich two-line status bar at the bottom of your terminal shows CPU, memory, disk, network, battery, load, time, and more — all independently toggleable via F9.

🪟

Window & pane management

Create, rename, reorder, and split windows into panes horizontally or vertically. Zoom a pane to full-screen with Shift-F11. Synchronize input across all panes with Alt-F9.

📜

10,000-line scrollback

Every window maintains up to 10,000 lines of scrollback history. Enter copy mode with F7 or Alt-PgUp, select with spacebar, paste with Alt-Insert.

🔌

tmux & GNU Screen backends

Byobu supports both tmux and GNU Screen as backends. Switch anytime with byobu-select-backend. Defaults to tmux if present.

🎨

Profiles & color themes

Switch between built-in color profiles with Ctrl-Shift-F5 for a random theme or Ctrl-Shift-F5/Shift-F5 to cycle. Edit ~/.byobu/color.tmux to customize.

🔁

Session persistence

Detach from a session with F6 and re-attach later — your windows, processes, and history survive. Use byobu-select-session to list and reconnect to named sessions.

🛠️

Configuration TUI

Press F9 for an interactive menu to toggle status notifications, change keybinding sets, select profiles, and switch backends — no file editing required.

📐

Layout save & restore

Save complex split-pane layouts with Ctrl-Shift-F8 and restore them with Alt-Shift-F8. Define window sets in ~/.byobu/windows.tmux for repeatable environments.

Keybindings

All keybindings work without a prefix key. Press F1 inside byobu for the built-in cheat sheet. Shift-F12 disables F-keys temporarily.

Windows
F2Create a new window
F3Move to previous window
F4Move to next window
F8Re-title / rename window
Ctrl-a kKill the current window
Ctrl-S-F2Create a new session
Alt-Left / Alt-RightPrevious / next window
Alt-Up / Alt-DownSwitch to previous / next session
Ctrl-S-F3Move window left
Ctrl-S-F4Move window right
Pane splits
Shift-F2Split pane horizontally
Ctrl-F2Split pane vertically
Shift-F3Focus previous split pane
Shift-F4Focus next split pane
Shift-Up/Down/Left/RightFocus pane in direction
Shift-F5Join all splits into one window
Ctrl-F6Kill / remove current split
Shift-F11Zoom current pane (toggle)
Alt-F11Break pane into its own window
Ctrl-F11Join pane from adjacent window
Alt-F9Synchronize input across all panes
Ctrl-F3 / Ctrl-F4Swap pane left / right
Alt-Shift-ArrowResize current pane
Shift-F8Cycle to next pane layout
Session & profile
F5Reload profile / refresh status
F6Detach from session
Shift-F6Detach, but do not logout
Alt-F6Detach all other clients
F9Open configuration menu
F12Lock this terminal
Ctrl-F5Reconnect GPG and SSH sockets
Alt-F5Toggle UTF-8 support, reload
Shift-F5Cycle through status lines
Ctrl-Shift-F5Set a random background color
Ctrl-Shift-F8Save current pane layout
Alt-Shift-F8Restore a saved pane layout
Shift-F12Disable all F-keybindings
Ctrl-a !Toggle keybindings on/off
Ctrl-a RReload profile
Scrollback & copy
F7Enter copy / scrollback mode
Alt-PgUpEnter scrollback mode (scroll up)
Alt-PgDnEnter scrollback mode (scroll down)
SpacebarStart selecting text (in copy mode)
EnterCopy selected text (in copy mode)
Alt-InsertPaste copied text
Ctrl-a ]Paste copied text (screen mode)
Shift-F7Save scrollback buffer to editor
Ctrl-a ~Save scrollback buffer to file
Ctrl-a $Show detailed status
Send to panes
Shift-F9Send a command to all panes
Ctrl-F9Send a command to all windows
Alt-F9Toggle pane synchronization
F1Show keybinding help (in new window)
Ctrl-Shift-F12Mondrian square mosaic art
Alt-F12Enable mouse mode
Alt-InsertPaste buffer

Keybindings are defined in /usr/share/byobu/keybindings/ and can be overridden per-user. PuTTY users: set Terminal → Keyboard → Function keys: Xterm R6 for F-key compatibility. Apple Terminal users: set Declare Terminal As: xterm-color to fix flashing text.

Status notifications

Byobu's status bar shows live system information across two lines at the bottom of your screen. Toggle each item on or off via F9 → Toggle status notifications.

cpu_freq

Current CPU frequency in GHz. White text on light blue background.

cpu_temp

CPU temperature in °C or °F. Configure TEMP=F in statusrc to switch units. Yellow on black.

cpu_count

Number of CPUs or cores on the system, followed by a trailing 'x'.

load_average

System load average over 1 minute (or 1/5/15 min with LOAD_AVERAGES=3). Black on yellow.

memory

Total memory available and used percentage. White on green background.

swap

Total swap space and percentage used. Black text on light green, trailing '%'.

disk

Total disk space and used on /. White on light purple. Override mount with MONITORED_DISK.

disk_io

Read/write throughput in kB/s or MB/s over 3 seconds. '◂' = read, '▸' = write (UTF-8), or '<' / '>' in ASCII mode.

network

Instantaneous upload/download bandwidth in Gbps/Mbps/kbps. '▴' = up, '▾' = down. White on purple.

wifi_quality

Wi-Fi connection rate and signal quality percentage. Black on cyan. Override interface with MONITORED_NETWORK=wlan0.

ip_address

IPv4 address (or IPv6 with IPV6=1, external with IP_EXTERNAL=1). Bold black on grey.

battery

Battery charge percentage with +/=/- charging indicators. Green/yellow/red by charge state.

updates_available

Number of pending updates. '!' = regular, '!!' = security, '⚠' = dist-upgrade. White on red.

reboot_required

'⟳' if reboot needed after update, '⚠' if unattended upgrade in progress, '🗹' if kernel is live-patched.

uptime

Total system uptime since last boot. Blue text on grey background.

time

System time in HH:MM:SS (customizable via strftime in ~/.byobu/datetime).

date

System date in YYYY-MM-DD format, or any strftime format you configure.

time_utc

UTC time in HH:MM format. Dark text on light background.

hostname

Hostname of the system. Bold black on grey, with leading '@' if whoami is also enabled.

whoami

Username of the owner of the screen session. Bold black on grey in upper bar.

users

Number of remote SSH users logged in. Red on grey, trailing '#'. Set USERS_DISTINCT=1 to count unique users.

session

Byobu session name (tmux only). Underlined black on white. Indicator '〣' in UTF-8 mode.

distro / release

OS distribution name from lsb_release or /etc/issue. Bold black on grey. Configurable with DISTRO=.

packages

Total number of installed packages in brackets '[xxx]'. Yellow on white.

processes

Total number of running processes. White on dark yellow, trailing '&'.

entropy

System entropy pool size in bytes. Yellow on dark grey, leading 'e'.

fan_speed

CPU or system fan speed in RPM (via lm-sensors). Black on grey, trailing 'rpm'.

services

Monitor custom service list. Set SERVICES="ssh|ssh apache2|http" in statusrc. Cyan on white.

mail

System mail indicator '⍌' (UTF-8) or '[M]' (ASCII) when new mail is waiting.

apport

'{!}' symbol if there are pending crash reports. Black on orange background.

raid

Prominently alerts on RAID failure in red blinking text. Shows rebuild percentage if resync in progress.

logo

OS logo approximation at far left of lower bar. Customize with LOGO=:-D in statusrc.

arch

System architecture (e.g. x86_64, aarch64) on the lower bar, default colors.

custom

User-defined scripts in ~/.byobu/bin/, named N_NAME where N is refresh interval in seconds. Output is shown in the status bar.

time_binary

For the hardcore geek: local system time displayed in binary using UTF-8 block characters.

Status scripts live in /usr/lib/byobu/. Copy any script to ~/.byobu/ to customize it locally. Use Ctrl-a $ inside byobu to see a detailed explanation of each active status indicator.

Documentation

Manual pages for all byobu commands, hosted on manpages.ubuntu.com.

byobu

Launch or attach to a byobu session.

byobu-config

Interactive configuration menu (also opened by F9).

byobu-ctrl-a

Configure Ctrl-a behavior: byobu, screen, or shell.

byobu-enable

Enable byobu to launch automatically at login.

byobu-disable

Disable byobu auto-launch at login.

byobu-export

Export byobu profile settings.

byobu-janitor

Clean up stale byobu state and socket files.

byobu-launch

Launch a new byobu session or attach to an existing one.

byobu-launcher

Shell script called at login to conditionally launch byobu.

byobu-launcher-install

Install the byobu launcher into the user's shell profile.

byobu-launcher-uninstall

Remove the byobu launcher from the user's shell profile.

byobu-layout

Save and restore byobu window and pane layouts.

byobu-quiet

Silence byobu's startup messages.

byobu-reconnect-sockets

Reconnect GPG and SSH agent sockets inside a running session.

byobu-screen

Run byobu with GNU Screen as the backend.

byobu-select-backend

Choose between tmux and GNU Screen as the byobu backend.

byobu-select-profile

Switch between byobu color profiles.

byobu-select-session

List and attach to named byobu sessions.

byobu-shell

Launch a shell inside a byobu session.

byobu-silent

Alias for byobu-quiet; suppress startup messages.

byobu-status

Run all enabled status scripts and print their output.

byobu-status-detail

Show a detailed explanation of each active status indicator.

byobu-tmux

Run byobu with tmux as the backend.

Support

Support for Byobu is largely a volunteer effort by the maintainer, advanced practitioners, and fellow users.

Bug Reports & Issues

Search and report bugs at github.com/dustinkirkland/byobu/issues. Please search existing issues before opening a new one.

Community Q&A

Ask questions and find answers on StackExchange. Tag your question with byobu for visibility.

Source Code

GPLv3 licensed, hosted on GitHub. Contributions via pull requests are welcome — please use tabs, not spaces.

git clone https://github.com/dustinkirkland/byobu.git

About

The story behind the world's most elegant terminal multiplexer wrapper.

Byobu (屏風) is a Japanese word for a decorative, multi-paneled folding screen — a fitting name for a tool that adds beautiful structure to your terminal. The project was originally created by Dustin Kirkland to provide elegant enhancements to the otherwise functional, plain, practical GNU Screen for the Ubuntu server distribution. Over time it has grown into a comprehensive terminal enhancement layer supporting both GNU Screen and the more modern tmux backend, running on virtually every Linux, BSD, and macOS system.

The project was first registered on Launchpad on December 14, 2008 under the name screen-profiles before being renamed to byobu. It has since shipped in every Ubuntu release and dozens of other Linux distributions. The codebase is primarily Shell and Python, GPLv3 licensed, and lives at github.com/dustinkirkland/byobu.

2008
Founded
1.6k
GitHub Stars
134
Forks
18
Releases
GPLv3
License

Author & Maintainer

Dustin Kirkland
Emeritus contributors: Nick Barcet, Raphaël Pinson, Derek Carter.
The project welcomes contributions via GitHub pull requests or Launchpad merge proposals. Please use tabs, not spaces.

Backends

Byobu defaults to tmux when available. Switch backends at any time with byobu-select-backend. The tmux backend supports full UTF-8 Unicode status icons; the screen backend uses ASCII fallbacks. Both support the full F-key keybinding set.

Configuration

User configuration lives in $HOME/.byobu/ (or $XDG_CONFIG_HOME/byobu if set). Key files: statusrc (toggle status items), color.tmux (colors), windows.tmux (startup windows), datetime (date/time format).

Window startup scripts

Define named window sets in ~/.byobu/windows.tmux.NAME and launch them with BYOBU_WINDOWS=NAME byobu. Supports full tmux syntax for splits, named panes, and startup commands — a powerful way to recreate your workspace instantly.

Sessions

Byobu names sessions "byobu" by default. To hide a session from byobu-select-session, prepend a dot: byobu -S .hidden. Sessions survive disconnects; re-attach with byobu or byobu-select-session.

Units of measure

Byobu uses binary (multiples of 1024) for memory and disk capacity per JEDEC Standard 100B.01, and decimal (multiples of 1000) for network data transfer rates per standard data rate conventions.