The tmux shortcuts you'll actually use

ยทcheatly.dev
tmux pane splitting and navigation demo
Splitting panes, navigating between them, and zooming โ€” the core tmux workflow

Every tmux cheatsheet on the internet has the same problem: it lists everything. All 200+ key bindings, organized alphabetically or by some taxonomy that made sense to the author but not to you. You read the whole thing, retain nothing, and go back to opening twelve terminal tabs like a barbarian.

Here's the thing โ€” you don't need 200 shortcuts. You need about 15. Those 15 commands handle roughly 95% of what you'll do with tmux on any given day. The rest you can look up when the situation arises, which for most of them is approximately never.

Let's start with the one concept you need to internalize before anything else makes sense.

The prefix key

Almost every tmux command starts with a prefix key โ€” by default, that's Ctrl-b. You press it, release it, then press the next key. It's not a chord you hold down simultaneously; it's a two-step sequence. Press Ctrl-b, let go, then press d to detach.

This feels unnatural for about three days. Then it becomes invisible. If Ctrl-b is too awkward for your hands, many people remap the prefix to Ctrl-a (a carryover from GNU Screen) or Ctrl-Space. That's a one-line config change you can make later โ€” don't let it block you from starting.

Add set -g mouse on to your ~/.tmux.conf to enable mouse support. You'll be able to click panes to focus them, drag borders to resize, and scroll with your trackpad. It's a great training wheel while you're learning the keyboard shortcuts.

Starting and managing sessions

Sessions are your top-level containers. Think of them as separate desktops โ€” one per project. The single best habit you can build is always naming your sessions. tmux new -s api is infinitely more useful than tmux new, because when you come back later, you'll actually know which session is which.

Sessions
tmux new -s name
Start a new session with a name
tmux ls
List all running sessions
tmux attach -t name
Reattach to a named session
tmux a
Reattach to the last session
Ctrl-bd
Detach from the current session
Ctrl-bs
Interactive session picker
Ctrl-b$
Rename the current session

The detach/reattach cycle is tmux's killer feature. You can start a long-running process, detach, close your laptop, go home, SSH back in, reattach, and everything is exactly where you left it. This alone is worth the learning curve.

Splitting panes

Panes let you divide a single window into multiple terminals. This is where tmux starts to feel like a superpower โ€” your editor on the left, a dev server on the right, logs at the bottom.

Panes
Ctrl-b%
Split vertically (left/right)
Ctrl-b"
Split horizontally (top/bottom)
Ctrl-bx
Close the current pane
Ctrl-bz
Zoom pane to full screen (toggle)

The zoom shortcut is sneakily one of the most useful. Need to focus on one pane for a minute? Ctrl-b z makes it full screen. Press it again to go back to your split layout. No rearranging needed.

The split mnemonics are confusing at first. % looks vaguely like two halves separated by a line (vertical split), and " has two dots stacked (horizontal split). If that doesn't stick, just remap them to | and - in your config โ€” most people do.

Navigating and resizing

Once you have multiple panes, you need to move between them and occasionally adjust their sizes.

Navigation & Resizing
Ctrl-bArrow Keys
Move focus between panes
Ctrl-bq
Flash pane numbers, press a number to jump
Ctrl-bCtrl-Arrow Keys
Resize pane in that direction
Ctrl-bSpace
Cycle through built-in pane layouts

If you turned on mouse mode earlier, you can also click to focus and drag borders to resize. No shame in that โ€” use whatever gets the job done while you build muscle memory.

Windows (tabs, basically)

Windows are like browser tabs inside a session. Each one fills the full terminal. Use them when you need a completely separate view but don't want a whole new session.

Windows
Ctrl-bc
Create a new window
Ctrl-b,
Rename the current window
Ctrl-bn
Next window
Ctrl-bp
Previous window
Ctrl-b0-9
Jump to window by number

Name your windows. Ctrl-b , lets you give them a label like "server" or "tests" so the status bar at the bottom actually tells you something useful.

The workflow that makes it click

Here's a concrete example of how this all fits together. Say you're working on a web app:

  1. tmux new -s webapp โ€” start a named session
  2. Ctrl-b % โ€” split vertically, editor on the left, terminal on the right
  3. Ctrl-b " โ€” split the right side horizontally for logs
  4. Ctrl-b c โ€” create a second window for git operations
  5. Ctrl-b , โ€” name it "git"

Now you've got a multi-pane editing environment on window 1 and a clean git workspace on window 2. At the end of the day, Ctrl-b d to detach. Tomorrow, tmux a -t webapp and you're right back where you left off.

Where to go from here

That's the whole list. Fifteen-ish shortcuts and you're productive. Everything beyond this โ€” copy mode, session groups, custom layouts, scripting with send-keys โ€” is genuinely useful, but none of it is required to get real value out of tmux today.

When you're ready to go deeper, our tmux cheatsheet covers more ground, and the official tmux wiki is surprisingly readable for a terminal tool's documentation. The man page is comprehensive if you want the full reference.

The hardest part of tmux is the first week. After that, you'll wonder how you ever worked without it.