# Terminal Multiplexers
Programs that let you run multiple terminal sessions inside a single terminal window or remote connection. Key capabilities: split panes, multiple windows/tabs, session persistence (detach/reattach), and remote session survival (SSH disconnects don't kill your processes).
## Why use one
- **Session persistence**: detach from a session and reattach later; processes keep running. Essential for long-running tasks and remote work over [[Secure Shell (SSH)]]
- **Pane/window management**: split the terminal into multiple panes side by side without relying on the terminal emulator's built-in tabs
- **Reproducible layouts**: script your window/pane layouts for specific projects
- **Pair programming**: share a terminal session with another user
## Notable multiplexers
| Tool | Language | Notes |
|------|----------|-------|
| **tmux** | C | De facto standard. Server-client architecture, extensive scripting, huge plugin ecosystem (TPM). Prefix-key driven (`Ctrl-b`) |
| **Zellij** | Rust | Modern alternative. Built-in layout system (KDL files), floating panes, plugin system (WASM), discoverable UI with on-screen keybinding hints |
| **GNU Screen** | C | The original (1987). Still available everywhere, but largely superseded by tmux |
| **Byobu** | Shell wrapper | Frontend for tmux or screen. Adds status bar, keybindings, and profiles. Good for quick setup |
## Multiplexer vs terminal emulator tabs
Some terminal emulators ([[Ghostty]], [[Alacritty]], WezTerm, Kitty) have built-in splits and tabs. The difference: a multiplexer's sessions survive terminal crashes and SSH disconnects. Terminal emulator splits don't.
## References
- tmux: https://github.com/tmux/tmux
- Zellij: https://zellij.dev
- GNU Screen: https://www.gnu.org/software/screen/
- Byobu: https://www.byobu.org
## Related
- [[Shell]]
- [[Command Line Interface (CLI)]]
- [[Terminal User Interface (TUI)]]
- [[Secure Shell (SSH)]]
- [[Ghostty]]
- [[Alacritty]]
- [[TMux]]
- [[Zellij]]