tmux
Remotely controls tmux sessions, communicating with interactive command-line interfaces by sending commands, enhancing remote development and AI engineering efficiency.
npx skills add steipete/clawdis --skill tmuxBefore / After Comparison
1 组During remote development, session management is complex, work status is lost after disconnection, and parallel processing of multiple tasks is difficult. In AI engineering, long-running training tasks may terminate if the network is interrupted, leading to wasted valuable computing resources and time.
With tmux, we can remotely control sessions, keeping processes running even if the network is interrupted. By sending commands and communicating with an interactive interface, we achieve multi-window, multi-task parallel processing, significantly improving the efficiency and stability of remote development and AI engineering, ensuring uninterrupted tasks.
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
exectool directly - Starting new background processes → use
execwithbackground:true - Non-interactive scripts → use
exectool - The process isn't in tmux
- You need to create a new tmux session → use
execwithtmux new-session
Example Sessions
| Session | Purpose |
|---|---|
shared | Primary interactive session |
worker-2 - worker-8 | Parallel 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 -pto 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
User Reviews (0)
Write a Review
No reviews yet
Statistics
User Rating
Rate this Skill