tmux Session Control

SkillWeb & browsing

The tmux skill lets an agent remote-control tmux sessions by sending keystrokes and scraping pane output. It is aimed at interactive terminal programs, such as monitoring Claude Code worker sessions and answering their prompts. The agent runs tmux commands to list sessions, capture pane output, send keys, navigate windows and panes, and create or kill sessions.

Then ask your AI: use the tmux Session Control skill

Details

Instructions available. Your AI can read the instructions. Execution depends on the setup they require.

Make sure tmux is installed and available on the machine, for example by installing the tmux formula with brew.

What your AI can do with it

  • List tmux sessions with tmux list-sessions or tmux ls
  • Capture pane output, including the last lines or the entire scrollback
  • Send text and special keys such as Enter, Escape, C-c, C-d and C-z
  • Select windows and panes and list windows in a session
  • Create, kill and rename tmux sessions
  • Send text and Enter as separate sends for interactive TUIs

Getting started

  1. Make sure tmux is installed and available on the machine, for example by installing the tmux formula with brew.
  2. Add the skill to your agent so it can run tmux commands.
  3. Have an existing tmux session running the interactive program you want the agent to work with.
  4. Ask the agent to list sessions and capture pane output to see the current state.
  5. Have the agent send keystrokes to answer prompts or navigate panes and windows.

What this skill tells your AI

The instructions your AI receives, as published by spinabot/brigade in skills/tmux/SKILL.md and read by Ahel’s review.

Control tmux sessions by sending keystrokes and reading output. Essential for managing Claude Code sessions.

When to Use

✅ USE this skill when:

  • Monitoring Claude/Codex sessions in tmux
  • Sending input to interactive terminal applications
  • Scraping output from long-running processes in tmux
  • Navigating tmux panes/windows programmatically
  • Checking on background work in existing sessions

When NOT to Use

❌ DON'T use this skill when:

  • Running one-off shell commands → use exec tool directly
  • Starting new background processes → use exec with background:true
  • Non-interactive scripts → use exec tool
  • The process isn't in tmux
  • You need to create a new tmux session → use exec with tmux new-session

Example Sessions

SessionPurpose
sharedPrimary interactive session
worker-2 - worker-8Parallel worker sessions

Common Commands

List Sessions

tmux list-sessions
tmux ls

Capture Output

# Last 20 lines of pane
tmux capture-pane -t shared -p | tail -20

# Entire scrollback
tmux capture-pane -t shared -p -S -

# Specific pane in window
tmux capture-pane -t shared:0.0 -p

Send Keys

# Send text (doesn't press Enter)
tmux send-keys -t shared "hello"

# Send text + Enter
tmux send-keys -t shared "y" Enter

# Send special keys
tmux send-keys -t shared Enter
tmux send-keys -t shared Escape
tmux send-keys -t shared C-c          # Ctrl+C
tmux send-keys -t shared C-d          # Ctrl+D (EOF)
tmux send-keys -t shared C-z          # Ctrl+Z (suspend)

Window/Pane Navigation

# Select window
tmux select-window -t shared:0

# Select pane
tmux select-pane -t shared:0.1

# List windows
tmux list-windows -t shared

Session Management

# Create new session
tmux new-session -d -s newsession

# Kill session
tmux kill-session -t sessionname

# Rename session
tmux rename-session -t old new

Sending Input Safely

For interactive TUIs (Claude Code, Codex, etc.), split text and Enter into separate sends to avoid paste/multiline edge cases:

tmux send-keys -t shared -l -- "Please apply the patch in src/foo.ts"
sleep 0.1
tmux send-keys -t shared Enter

Claude Code Session Patterns

Check if Session Needs Input

# Look for prompts
tmux capture-pane -t worker-3 -p | tail -10 | grep -E "❯|Yes.*No|proceed|permission"

Approve Claude Code Prompt

# Send 'y' and Enter
tmux send-keys -t worker-3 'y' Enter

# Or select numbered option
tmux send-keys -t worker-3 '2' Enter

Check All Sessions Status

for s in shared worker-2 worker-3 worker-4 worker-5 worker-6 worker-7 worker-8; do
  echo "=== $s ==="
  tmux capture-pane -t $s -p 2>/dev/null | tail -5
done

Send Task to Session

tmux send-keys -t worker-4 "Fix the bug in auth.js" Enter

Notes

  • Use capture-pane -p to print to stdout (essential for scripting)
  • -S - captures entire scrollback history
  • Target format: session:window.pane (e.g., shared:0.0)
  • Sessions persist across SSH disconnects

Signals

GitHub stars
11k
Forks
70
Last commit
Oct 2026

Others that do the same job

Questions

When should this skill be used?
Use it to monitor Claude or Codex sessions in tmux, send input to interactive terminal applications, scrape output from long-running processes in tmux, navigate panes and windows programmatically, or check on background work in existing sessions.
When should this skill not be used?
Do not use it for one-off shell commands, starting new background processes, or non-interactive scripts, which belong in a direct exec tool. Do not use it when the process is not in tmux, or to create a new tmux session, which uses exec with tmux new-session.
Advanced
Item type
skill
Key
tmux-spinabot
Source
github.com/spinabot/brigade