Tmux
tmux is an open-source Terminal Multiplexer for Unix-like operating systems. It allows multiple terminal sessions to be accessed simultaneously in a single window. It is useful for running more than one command-line program at the same time.
Great way of naming your sessions, and tabs:

I also use session to jump to any folder and open a new folder in a new tmux session.
Shortcuts
taTmux attachtntmux new session from the current session I’m in
Find more information below, or in my dotfiles.ssp.sh:
|
|
# My Tmux Workflow
Tmux is basically my terminal workflow king; it lets me run multiple terminals in a single window. I never, or very rarely, have more than one terminal app open.
If I have a session with multiple tabs, then you can have splits within it. I do as long with new splits until I run out of space. Then I either close splits or open a new tab.
Basically looks like this atm:

With these sessions:

It can get messy, yes, but it works like a charm if you have ingrained it into your mental model.
# Does it Matter Which Terminal I Use with Tmux?
Using Tmux will add some overhead, but you won’t completely lose Ghostty’s performance benefits because:
- Ghosty’s core optimizations will still apply:
- The SIMD escape sequence detection
- Fast Unicode decoding
- Pre-computed code point width tables
- Efficient memory layout
- Fast rendering pipeline using Metal
- However, Tmux does introduce an additional layer that:
- Needs to process escape sequences again
- Manages its own screen buffer that allows you to serach and navigate your terminal with Vim Motions
- My favorite use is searching and navigating my terminal’s text with vim motions, something most terminals just starting to implement with search, but navigate you usually can’t.
- Has its own rendering cycle
# Integrations
# See Sesh: Fuzzy Finding Sessions
by Josh Medeski, a Tmux session manager.
Blog article or GitHub.
# Claude and AI Agents
For seeing running claude or codex sessions, I use the tmux plugin from Takuya Matsuyama (devaslife) I made a Claude Code session manager for tmux that shows a floating picker overall.
My shortcut is tmux leader + C and looks like this with a nice preview of each agent:

# Plugins
Use Tmux Plugin Manager for installing plugins
Add plugins to tmux.conf like this:
|
|
And press Tmux keybind + I or tmux source ~/.tmux.conf (or `tmux source ~/.config/tmux/tmux.conf)
# Terminal Workflow with macOS/Linux
See My Terminal Workflow with MacOS and Linux.
# Alternatives Multiplexer Tools
Terminal Multiplexer# Classics (server-side, SSH-safe)
- GNU Screen: the actual OG, 1987. Preinstalled on nearly every Unix box, so it’s the fallback on locked-down legacy servers.
- tmux: OG multiplexer (as far as modern usage goes). Huge plugin ecosystem via TPM, scriptable, works everywhere.
- byobu: not a multiplexer itself — a config/status-bar wrapper over screen or tmux. Started life as
screen-profilesin Ubuntu.- dtach: only the detach/reattach part, nothing else. ~1000 LOC.
- dvtm + abduco: the suckless split — dvtm does dwm-style tiling in the console, abduco does session management. Together a simpler, cleaner alternative to tmux/screen.
- tmate: tmux fork for instant terminal sharing over a relay. Pair-programming / remote support.
# Modern rewrites
- Zellij: A terminal workspace with batteries included. Rust, discoverable keybindings shown in a status bar, WASM plugin system, works out of the box without a config file. The main tmux challenger.
- (not out yet) Superlogical: Building the multiplexer for all work, company behind Mitchell Hashimoto
# Terminal emulators with built-in multiplexing
- kitty Sessions, not as powerful, but might be enough. Shipped in kitty v0.1.0 (Feb 2017), a startup-layout file, not a persistence layer. Also has remote control for scripting panes.
- WezTerm: GPU-accelerated emulator with a real multiplexer built in, including SSH domains. Needs a GUI though, so it doesn’t replace tmux on a headless box.
- Ghostty and Mitchell Hashimoto want to build their own too.
- Terminator: GTK emulator with tiling. Local-only, no session persistence — technically a tiling emulator, not a multiplexer.
# Agent-era
With Agents a new category emerged with more focus on shifts from just “split screens” seeing “What are my agents doing”?.
- Herdr: The newest, more focused on Agents. The runtime coding agents run on. Rust, single binary, tmux-grade persistence + per-agent state detection (working / blocked / done / idle) + a scriptable socket API. AGPL-3.0 with a commercial option.
- cmux: native macOS app built on libghostty — vertical tabs, notifications, restores agent sessions on relaunch, full CLI + Unix socket API including a programmable browser pane. macOS-only, no server-side SSH persistence.