Original Reddit post

I run 3-5 Claude Code (and Droid/Codex) sessions in tmux, each in its own window. No tmux wrapper or session manager. Plain tmux already has what I need, so here is the config and the habits that make it work. tmux.conf bash set -g allow-passthrough on set -s extended-keys on set -as terminal-features ‘xterm*:extkeys’ set -g mouse on bind o send-keys C-o The first three lines come from the Claude Code terminal config docs. Shift+Enter inserts a newline instead of submitting, and notifications pass through tmux to the outer terminal. mouse on gives wheel scrolling in fullscreen mode. The last line is for anyone who already bound ctrl-o in tmux. Prefix then o sends ctrl-o to Claude Code. Searching old output Fullscreen mode keeps the conversation in the alternate screen, so tmux copy mode does not see it. Press ctrl-o for transcript mode, then / to search. Press [ in transcript mode to write the transcript to scrollback, and tmux copy mode (prefix [ , then / or ? ) can search it like any other log. To dump a pane into an editor: bash tmux capture-pane -t 0 -p -S -10000 | nvim - Pane targets the agent can use I use one session, main , and refer to panes as main:3.1 (window 3, pane 1). My AGENTS.md says so. Then I can tell Claude Code to check the backend logs in 3.1 and it uses capture-pane and send-keys itself. Dev servers keep running in their panes and I can still see the same output the agent reads. Don’t use iTerm2’s tmux -CC integration with fullscreen rendering. Regular tmux inside iTerm2 is fine. The rest of the setup is in my longer write-up, https://hboon.com/using-tmux-with-claude-code/ submitted by /u/h____

Originally posted by u/h____ on r/ClaudeCode