← multiplexers directory○ community

Multiplexer · Nicholas Marriott

tmux.

The terminal multiplexer that has been holding the line for two decades. Persistent sessions you can detach and reattach, splits and panes for parallel agentic work, scripting via .tmux.conf.

$ brew install tmux

Every vibe coder running multiple agents simultaneously eventually rediscovers tmux. The pitch is simple. Terminals you can detach from, reattach to from anywhere, organize into windows and panes, and script. When Claude Code is in one pane, Aider in another, a dev server in a third, and `tail -f` on a fourth, tmux is what makes that arrangement survivable.

It is not glamorous. The keybindings are ancient. The config syntax is its own language. But it is the reference implementation for "persistent terminal sessions you can drive parallel agents in," and twenty years of polish means it just works.

§01Why a vibe coder cares

The reasons are the same ones that made tmux essential before agents existed, just amplified by the agentic workload:

  • Persistent sessions. SSH dies, the laptop closes, the terminal app crashes; the agentic session keeps running. Reattach and pick up where you left off.
  • Parallel work. Run three agents in three panes and watch them all at once.
  • Scriptable. A .tmux.conf plus a startup script can spin up the entire working environment with one command.
  • A status line for at-a-glance state, with current cwd, time, model, or whatever else the script renders.

§02The minimum config

# ~/.tmux.conf — minimal but useful
unbind C-b
set -g prefix C-a
bind r source-file ~/.tmux.conf

set -g mouse on
set -g base-index 1

# more sane splits
bind | split-window -h
bind - split-window -v

# vim-style pane navigation
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

§03A working pattern

The pattern that earns its keep is a project session script. One alias, one command, and the entire agentic workspace comes up:

#!/usr/bin/env bash
# ~/bin/work-on
PROJECT=${1:-vibgineer}
cd ~/Code/$PROJECT

tmux new-session -d -s $PROJECT -n editor
tmux send-keys -t $PROJECT 'cursor .' Enter

tmux new-window -t $PROJECT -n agent
tmux send-keys -t $PROJECT:agent 'claude' Enter

tmux new-window -t $PROJECT -n dev
tmux send-keys -t $PROJECT:dev 'npm run dev' Enter

tmux attach -t $PROJECT

§04Caveats

  • Learning curve. The first day with tmux is rough; the second day you would miss it. By week two, the question of how you ever managed without it stops being rhetorical.
  • Mouse support is functional but not pretty. The keyboard-first workflow is where tmux shines.
  • Plugin ecosystem is fine, not great. tpm works. Resist the urge to over-plugin; the value is in the core abstractions, not the extras.