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.
A live demonstration of byobu's keybindings, status bar, and window management.
Available on all major package managers.
Dependencies: tmux ≥ 1.5 and/or GNU Screen.
Optionally python-newt for the configuration utility.
Byobu works on most Linux, BSD, and macOS distributions.
Byobu is available in most major Linux and BSD package repositories. Use your system's package manager for the easiest install.
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 │
└──────────────────────────┘
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.
Run byobu from any terminal. Press F9 to open the configuration menu, toggle status items on or off, switch backends, and customize your profile.
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.
A full-featured enhancement layer for tmux and GNU Screen — keybindings, status, splits, and more.
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.
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.
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.
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.
Byobu supports both tmux and GNU Screen as backends. Switch anytime with byobu-select-backend. Defaults to tmux if present.
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.
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.
Press F9 for an interactive menu to toggle status notifications, change keybinding sets, select profiles, and switch backends — no file editing required.
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.
All keybindings work without a prefix key. Press F1 inside byobu for the built-in cheat sheet. Shift-F12 disables F-keys temporarily.
| F2 | Create a new window |
| F3 | Move to previous window |
| F4 | Move to next window |
| F8 | Re-title / rename window |
| Ctrl-a k | Kill the current window |
| Ctrl-S-F2 | Create a new session |
| Alt-Left / Alt-Right | Previous / next window |
| Alt-Up / Alt-Down | Switch to previous / next session |
| Ctrl-S-F3 | Move window left |
| Ctrl-S-F4 | Move window right |
| Shift-F2 | Split pane horizontally |
| Ctrl-F2 | Split pane vertically |
| Shift-F3 | Focus previous split pane |
| Shift-F4 | Focus next split pane |
| Shift-Up/Down/Left/Right | Focus pane in direction |
| Shift-F5 | Join all splits into one window |
| Ctrl-F6 | Kill / remove current split |
| Shift-F11 | Zoom current pane (toggle) |
| Alt-F11 | Break pane into its own window |
| Ctrl-F11 | Join pane from adjacent window |
| Alt-F9 | Synchronize input across all panes |
| Ctrl-F3 / Ctrl-F4 | Swap pane left / right |
| Alt-Shift-Arrow | Resize current pane |
| Shift-F8 | Cycle to next pane layout |
| F5 | Reload profile / refresh status |
| F6 | Detach from session |
| Shift-F6 | Detach, but do not logout |
| Alt-F6 | Detach all other clients |
| F9 | Open configuration menu |
| F12 | Lock this terminal |
| Ctrl-F5 | Reconnect GPG and SSH sockets |
| Alt-F5 | Toggle UTF-8 support, reload |
| Shift-F5 | Cycle through status lines |
| Ctrl-Shift-F5 | Set a random background color |
| Ctrl-Shift-F8 | Save current pane layout |
| Alt-Shift-F8 | Restore a saved pane layout |
| Shift-F12 | Disable all F-keybindings |
| Ctrl-a ! | Toggle keybindings on/off |
| Ctrl-a R | Reload profile |
| F7 | Enter copy / scrollback mode |
| Alt-PgUp | Enter scrollback mode (scroll up) |
| Alt-PgDn | Enter scrollback mode (scroll down) |
| Spacebar | Start selecting text (in copy mode) |
| Enter | Copy selected text (in copy mode) |
| Alt-Insert | Paste copied text |
| Ctrl-a ] | Paste copied text (screen mode) |
| Shift-F7 | Save scrollback buffer to editor |
| Ctrl-a ~ | Save scrollback buffer to file |
| Ctrl-a $ | Show detailed status |
| Shift-F9 | Send a command to all panes |
| Ctrl-F9 | Send a command to all windows |
| Alt-F9 | Toggle pane synchronization |
| F1 | Show keybinding help (in new window) |
| Ctrl-Shift-F12 | Mondrian square mosaic art |
| Alt-F12 | Enable mouse mode |
| Alt-Insert | Paste 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.
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.
Current CPU frequency in GHz. White text on light blue background.
CPU temperature in °C or °F. Configure TEMP=F in statusrc to switch units. Yellow on black.
Number of CPUs or cores on the system, followed by a trailing 'x'.
System load average over 1 minute (or 1/5/15 min with LOAD_AVERAGES=3). Black on yellow.
Total memory available and used percentage. White on green background.
Total swap space and percentage used. Black text on light green, trailing '%'.
Total disk space and used on /. White on light purple. Override mount with MONITORED_DISK.
Read/write throughput in kB/s or MB/s over 3 seconds. '◂' = read, '▸' = write (UTF-8), or '<' / '>' in ASCII mode.
Instantaneous upload/download bandwidth in Gbps/Mbps/kbps. '▴' = up, '▾' = down. White on purple.
Wi-Fi connection rate and signal quality percentage. Black on cyan. Override interface with MONITORED_NETWORK=wlan0.
IPv4 address (or IPv6 with IPV6=1, external with IP_EXTERNAL=1). Bold black on grey.
Battery charge percentage with +/=/- charging indicators. Green/yellow/red by charge state.
Number of pending updates. '!' = regular, '!!' = security, '⚠' = dist-upgrade. White on red.
'⟳' if reboot needed after update, '⚠' if unattended upgrade in progress, '🗹' if kernel is live-patched.
Total system uptime since last boot. Blue text on grey background.
System time in HH:MM:SS (customizable via strftime in ~/.byobu/datetime).
System date in YYYY-MM-DD format, or any strftime format you configure.
UTC time in HH:MM format. Dark text on light background.
Hostname of the system. Bold black on grey, with leading '@' if whoami is also enabled.
Username of the owner of the screen session. Bold black on grey in upper bar.
Number of remote SSH users logged in. Red on grey, trailing '#'. Set USERS_DISTINCT=1 to count unique users.
Byobu session name (tmux only). Underlined black on white. Indicator '〣' in UTF-8 mode.
OS distribution name from lsb_release or /etc/issue. Bold black on grey. Configurable with DISTRO=.
Total number of installed packages in brackets '[xxx]'. Yellow on white.
Total number of running processes. White on dark yellow, trailing '&'.
System entropy pool size in bytes. Yellow on dark grey, leading 'e'.
CPU or system fan speed in RPM (via lm-sensors). Black on grey, trailing 'rpm'.
Monitor custom service list. Set SERVICES="ssh|ssh apache2|http" in statusrc. Cyan on white.
System mail indicator '⍌' (UTF-8) or '[M]' (ASCII) when new mail is waiting.
'{!}' symbol if there are pending crash reports. Black on orange background.
Prominently alerts on RAID failure in red blinking text. Shows rebuild percentage if resync in progress.
OS logo approximation at far left of lower bar. Customize with LOGO=:-D in statusrc.
System architecture (e.g. x86_64, aarch64) on the lower bar, default colors.
User-defined scripts in ~/.byobu/bin/, named N_NAME where N is refresh interval in seconds. Output is shown in the status bar.
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.
Manual pages for all byobu commands, hosted on manpages.ubuntu.com.
Launch or attach to a byobu session.
Interactive configuration menu (also opened by F9).
Configure Ctrl-a behavior: byobu, screen, or shell.
Enable byobu to launch automatically at login.
Disable byobu auto-launch at login.
Export byobu profile settings.
Clean up stale byobu state and socket files.
Launch a new byobu session or attach to an existing one.
Shell script called at login to conditionally launch byobu.
Install the byobu launcher into the user's shell profile.
Remove the byobu launcher from the user's shell profile.
Save and restore byobu window and pane layouts.
Silence byobu's startup messages.
Reconnect GPG and SSH agent sockets inside a running session.
Run byobu with GNU Screen as the backend.
Choose between tmux and GNU Screen as the byobu backend.
Switch between byobu color profiles.
List and attach to named byobu sessions.
Launch a shell inside a byobu session.
Alias for byobu-quiet; suppress startup messages.
Run all enabled status scripts and print their output.
Show a detailed explanation of each active status indicator.
Run byobu with tmux as the backend.
Support for Byobu is largely a volunteer effort by the maintainer, advanced practitioners, and fellow users.
Search and report bugs at github.com/dustinkirkland/byobu/issues. Please search existing issues before opening a new one.
Ask questions and find answers on StackExchange. Tag your question with byobu for visibility.
GPLv3 licensed, hosted on GitHub. Contributions via pull requests are welcome — please use tabs, not spaces.
git clone https://github.com/dustinkirkland/byobu.git
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.
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.
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.
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).
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.
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.
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.