Skip to content

How Claude Opus 4.5 Gave Me a Perfect Tmux Setup

I started with Zellij. The learning curve was low, commands were intuitive, and I adopted it quickly. Since I've abandoned IDEs for the terminal, having a solid multiplexer was essential.

My Tmux Setup

Why I Left Zellij

No complaints about Zellij - the team is excellent and they've built something great. But it felt overdone for my taste. Too much padding, heavy borders, chunky tabs. I could have restyled it through their KDL config files, but I never explored that path.

Tmux out of the box is minimal. Almost nothing going on. That's exactly what I wanted.

The Claude Opus 4.5 Experience

I fed Claude my Zellij config and asked it to replicate the same keybinding experience in Tmux. I was already comfortable with Zellij's modal approach:

  • Ctrl+P → Pane mode (split, navigate, close)
  • Ctrl+T → Tab mode (new, rename, switch)
  • Ctrl+Y → Resize mode
  • Ctrl+M → Move mode

5-10 messages. That's it. Claude understood what I wanted and gave me a config that matched my muscle memory while keeping Tmux's minimal aesthetic.

The Config

Here's what Claude designed (full config):

Theme (Catppuccin Mocha, Transparent)

# Minimal transparent status bar
set -g status-bg default
set -g status-style "bg=default"
set -g status-left ""
set -g status-right "#[fg=#45475a,bg=default]#[fg=#cdd6f4,bg=#45475a]  #S #[fg=#45475a,bg=default]"

# Window styling
set -g window-status-format "#[fg=#45475a,bg=default]#[fg=#a6adc8,bg=#45475a] #I #W #[fg=#45475a,bg=default]"
set -g window-status-current-format "#[fg=#89b4fa,bg=default]#[fg=#1e1e2e,bg=#89b4fa,bold] #I #W #[fg=#89b4fa,bg=default]"
# Root triggers
bind -n C-p switch-client -T pane
bind -n C-t switch-client -T tab
bind -n C-y switch-client -T resize
bind -n C-m switch-client -T move

# Pane mode (Ctrl+P, then...)
bind -T pane h select-pane -L
bind -T pane j select-pane -D
bind -T pane k select-pane -U
bind -T pane l select-pane -R
bind -T pane n split-window -h
bind -T pane d split-window -v
bind -T pane x kill-pane
bind -T pane f resize-pane -Z

# Tab mode (Ctrl+T, then...)
bind -T tab h previous-window
bind -T tab l next-window
bind -T tab n new-window
bind -T tab x kill-window
bind -T tab r command-prompt -I "#W" "rename-window '%%'"

Session Restore

set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @continuum-restore 'on'
set -g @resurrect-processes 'lazygit nvim "~claude" "~codex" cursor-agent'

Shell Aliases

I added these to my ~/.zshrc for quick session management:

alias tm='tmux'
alias tms='tmux new-session -s'
alias tma='tmux attach -t'
alias tmd='tmux kill-session -t'
# tm ls to list sessions

The Result

Couldn't be happier. The setup is clean, the keybindings match what my fingers already knew, and session restore means I never lose my workspace.

This is exactly what AI should be good at: taking your preferences and translating them into configuration you'd never have the patience to write yourself.