From tmux
Provides tmux session, window, and pane awareness for capturing output, sending keys to panes, opening processes, organizing layouts, navigating windows/sessions, and checking notifications.
How this skill is triggered — by the user, by Claude, or both
Slash command
/tmux:tmuxThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
!`bash ${CLAUDE_SKILL_DIR}/scripts/pane.sh`
!bash ${CLAUDE_SKILL_DIR}/scripts/pane.sh
Use $TMUX_PANE to identify the current pane and target adjacent ones.
!bash ${CLAUDE_SKILL_DIR}/scripts/layout.sh
Use left/top coordinates to resolve spatial references (LHS = lowest left, RHS = highest left, top = lowest top, bottom = highest top). When describing layouts, draw ASCII box diagrams showing pane positions and sizes.
Target panes across windows and sessions with <session>:<window>.<pane> (e.g., dotfiles:1.%42). Use tmux list-panes -t <session>:<window> to discover pane IDs in other windows.
Windows marked [bell] or [activity] need attention (a process finished, errored, or produced output). Use capture-pane on the flagged window's panes to investigate.
To check for new notifications after skill load:
tmux list-windows -F '#{window_index} #{window_name} #{window_bell_flag} #{window_activity_flag}'
Use split-window with -t $TMUX_PANE so new panes open relative to Claude's pane. Always pass -d to avoid switching Claude's own pane to the new one.
| User intent | Flags | Notes |
|---|---|---|
| right / beside | -h -d | Horizontal split |
| below / underneath | -v -d | Vertical split |
| right sidebar | -h -d -l 40% | Narrow right pane |
| left sidebar | -h -d -b -l 40% | Narrow left pane (-b = before) |
| bottom panel | -v -d -l 25% | Short pane below |
| top panel | -v -d -b -l 25% | Short pane above |
tmux split-window -h -d -t $TMUX_PANE 'tail -f logs/dev.log'
The command string runs in the new pane's shell. When it exits, the pane closes. Use $SHELL or omit the command to open an interactive shell.
Pass the initial prompt as a CLI argument rather than using send-keys:
tmux split-window -h -d -t $TMUX_PANE 'claude "analyze the test failures"'
Use send-keys only for follow-up messages to an already-running session.
When collaborating on a file, open it in a sidebar pane so the user can see changes in real-time as you edit.
tmux split-window -h -d -l 40% -t $TMUX_PANE '<command> <file>'
!bash ${CLAUDE_SKILL_DIR}/scripts/tools.sh
Prefer a terminal markdown renderer with file watching. Tools in preference order:
| Tool | Command | Notes |
|---|---|---|
| markless | markless --watch file.md | Rendered markdown with live reload |
| glow | glow -w 0 file.md | Rendered, no watch (reopen on change) |
| batwatch | batwatch --watcher poll file.md | Syntax-highlighted with file watching |
| bat | bat --paging always file.md | Syntax-highlighted source, no watch |
| less | less file.md | Plain text fallback |
Open with $EDITOR when set, otherwise fall back to read-only viewers:
| Tool | Command | Notes |
|---|---|---|
$EDITOR | $EDITOR file.ts | User's preferred editor, most auto-reload on external changes |
| batwatch | batwatch --watcher poll file.ts | Syntax-highlighted with file watching |
| bat | bat --paging always file.ts | Syntax-highlighted, read-only |
| less | less file.ts | Plain text fallback |
Use the first available option. If the pane exits immediately, the tool is missing, try the next.
Use capture-pane -p to print to stdout instead of a paste buffer:
tmux capture-pane -t $TARGET -p
tmux capture-pane -t $TARGET -p -S -100
-S -100 includes 100 lines of scrollback above the visible area.
-P -F '#{pane_id}' to capture pane IDs at creation time-d on split-window to avoid switching Claude's pane$TMUX_PANE (set by tmux natively and injected by context hook) to target the current panenpx claudepluginhub bendrucker/claude --plugin tmuxManages tmux sessions, windows, and panes for terminal multiplexing, persistent remote workflows surviving SSH disconnects, multi-pane layouts, and shell scripting automation.
Renders a prepared tmux layout for operator-side observability of session side-channels (STATE.md tail, CI watch, events.jsonl tail). Default 4-pane layout or debug layout. Read-only — coordinator chat stays in original terminal.