Claude Agent Skill · by Steipete

Tmux

Install Tmux skill for Claude Code from steipete/clawdis.

Install
Terminal · npx
$npx skills add https://github.com/steipete/clawdis --skill tmux
Works with Paperclip

How Tmux fits into a Paperclip company.

Tmux drops into any Paperclip agent that handles this kind of work. Assign it to a specialist inside a pre-configured PaperclipOrg company and the skill becomes available on every heartbeat — no prompt engineering, no tool wiring.

S
SaaS FactoryPaired

Pre-configured AI company — 18 agents, 18 skills, one-time purchase.

$27$59
Explore pack
Source file
SKILL.md170 lines
Expand
---name: tmuxdescription: Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.metadata:  {    "openclaw":      {        "emoji": "🧵",        "os": ["darwin", "linux"],        "requires": { "bins": ["tmux"] },        "install":          [            {              "id": "brew",              "kind": "brew",              "formula": "tmux",              "bins": ["tmux"],              "label": "Install tmux (brew)",            },          ],      },  }--- # tmux Session Control 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 | Session                 | Purpose                     || ----------------------- | --------------------------- || `shared`                | Primary interactive session || `worker-2` - `worker-8` | Parallel worker sessions    | ## Common Commands ### List Sessions ```bashtmux list-sessionstmux ls``` ### Capture Output ```bash# Last 20 lines of panetmux capture-pane -t shared -p | tail -20 # Entire scrollbacktmux capture-pane -t shared -p -S - # Specific pane in windowtmux capture-pane -t shared:0.0 -p``` ### Send Keys ```bash# Send text (doesn't press Enter)tmux send-keys -t shared "hello" # Send text + Entertmux send-keys -t shared "y" Enter # Send special keystmux send-keys -t shared Entertmux send-keys -t shared Escapetmux send-keys -t shared C-c          # Ctrl+Ctmux send-keys -t shared C-d          # Ctrl+D (EOF)tmux send-keys -t shared C-z          # Ctrl+Z (suspend)``` ### Window/Pane Navigation ```bash# Select windowtmux select-window -t shared:0 # Select panetmux select-pane -t shared:0.1 # List windowstmux list-windows -t shared``` ### Session Management ```bash# Create new sessiontmux new-session -d -s newsession # Kill sessiontmux kill-session -t sessionname # Rename sessiontmux 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: ```bashtmux send-keys -t shared -l -- "Please apply the patch in src/foo.ts"sleep 0.1tmux send-keys -t shared Enter``` ## Claude Code Session Patterns ### Check if Session Needs Input ```bash# Look for promptstmux capture-pane -t worker-3 -p | tail -10 | grep -E "❯|Yes.*No|proceed|permission"``` ### Approve Claude Code Prompt ```bash# Send 'y' and Entertmux send-keys -t worker-3 'y' Enter # Or select numbered optiontmux send-keys -t worker-3 '2' Enter``` ### Check All Sessions Status ```bashfor 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 -5done``` ### Send Task to Session ```bashtmux 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