tmux
🚀 tmux Skill
Control tmux sessions programmatically to run interactive terminal applications (REPLs, debuggers, databases) without blocking.
📋 Quickstart (Easy Way)
Use LogPilot for automatic output capture + AI analysis:
# Install LogPilot
cargo install logpilot
# Watch your tmux session
logpilot watch mysession --pane mysession:0.0
# Ask AI about what's happening
logpilot ask "What errors appeared?"
logpilot summarize --last 5m
Add to Claude Code: claude mcp add --scope user logpilot -- logpilot mcp-server
📋 Manual Control (Raw tmux)
Use isolated sockets to avoid conflicts with personal tmux:
# Setup socket
export SOCKET="${TMPDIR:-/tmp}/ai-tmux-sockets/agent.sock"
mkdir -p "$(dirname "$SOCKET")"
# Create session and run
SESSION=agent-py
tmux -S "$SOCKET" new -d -s "$SESSION"
tmux -S "$SOCKET" send-keys -t "$SESSION" 'python3 -q' Enter
# Capture output manually
tmux -S "$SOCKET" capture-pane -p -J -t "$SESSION" -S -100
# Cleanup
tmux -S "$SOCKET" kill-session -t "$SESSION"
📋 Core Commands
| Action | Command |
|---|---|
| New session | tmux -S "$SOCKET" new -d -s NAME |
| Send keys | tmux -S "$SOCKET" send-keys -t NAME 'cmd' Enter |
| Send literal | tmux -S "$SOCKET" send-keys -t NAME -l 'text' |
| Capture output | tmux -S "$SOCKET" capture-pane -p -J -t NAME -S -N |
| List sessions | tmux -S "$SOCKET" list-sessions |
| Kill session | tmux -S "$SOCKET" kill-session -t NAME |
Control keys: C-c (SIGINT), C-d (EOF), C-z (suspend), Escape
📋 Interactive Recipes
🔁 Python REPL
SESSION=agent-py
SOCKET="${TMPDIR:-/tmp}/ai-tmux-sockets/agent.sock"
tmux -S "$SOCKET" new -d -s "$SESSION"
tmux -S "$SOCKET" send-keys -t "$SESSION" 'PYTHON_BASIC_REPL=1 python3 -q' Enter
sleep 1
tmux -S "$SOCKET" send-keys -t "$SESSION" -l 'print(2+2)'
tmux -S "$SOCKET" send-keys -t "$SESSION" Enter
tmux -S "$SOCKET" capture-pane -p -J -t "$SESSION" -S -10
tmux -S "$SOCKET" kill-session -t "$SESSION"
🔁 GDB Debugger
SESSION=agent-gdb
SOCKET="${TMPDIR:-/tmp}/ai-tmux-sockets/agent.sock"
tmux -S "$SOCKET" new -d -s "$SESSION"
tmux -S "$SOCKET" send-keys -t "$SESSION" 'gdb --quiet ./program' Enter
tmux -S "$SOCKET" send-keys -t "$SESSION" 'set pagination off' Enter
tmux -S "$SOCKET" send-keys -t "$SESSION" 'run' Enter
# ... later ...
tmux -S "$SOCKET" send-keys -t "$SESSION" C-c
tmux -S "$SOCKET" send-keys -t "$SESSION" 'bt' Enter
tmux -S "$SOCKET" send-keys -t "$SESSION" 'quit' Enter 'y' Enter
Node.js / psql / etc.
Same pattern: new → send-keys → capture-pane → kill-session
📋 LogPilot Reference
| Task | Command |
|---|---|
| Watch session | logpilot watch SESSION |
| Watch pane | logpilot watch SESSION --pane TARGET |
| AI summary | logpilot summarize --last 10m |
| Ask question | logpilot ask "Why is it failing?" |
| With logs | logpilot ask "Explain" --include-logs |
| Status | logpilot status |
MCP Setup
{
"mcpServers": {
"logpilot": {
"command": "logpilot",
"args": ["mcp-server"]
}
}
}
Or: claude mcp add --scope user --transport stdio logpilot -- logpilot mcp-server
🎨 Best Practices
- Use LogPilot — easiest way to capture and analyze output
- Always use
-S "$SOCKET"— prevents conflicts with user tmux - Use
-lflag — literal text, no shell expansion issues PYTHON_BASIC_REPL=1— required for interactive Python- Kill sessions when done — prevents resource leaks
More from jellydn/my-ai-tools
qmd-knowledge
Project-specific knowledge management system using qmd MCP server. Captures learnings, issue notes, and conventions in a searchable knowledge base.
35pickup
Resumes work from a previous handoff session which are stored in `.claude/handoffs/`
30codemap
Orchestrate parallel codebase analysis to produce 7 structured documents about the codebase in .planning/codebase/
30prd
Generate a Product Requirements Document (PRD) for a new feature. Use when planning a feature, starting a new project, or when asked to create a PRD. Triggers on: create a prd, write prd for, plan this feature, requirements for, spec out.
29adr
Manages Architecture Decision Records (ADR) for tracking important architectural decisions
28pr-review
Fix PR review comments by implementing requested changes
28