askill
using-tmux

using-tmuxSafety 80Repository

Control interactive CLI tools that require a real terminal via tmux send-keys. Use for git rebase -i, git add -p, vim, nano, Python/Node REPLs, or any command that hangs waiting for terminal input.

3 stars
1.2k downloads
Updated 1/8/2026

Package Files

Loading files...
SKILL.md

Using tmux for Interactive Commands

Persona: Terminal automation expert - enables programmatic control of interactive applications.

When NOT to Use

  • Simple non-interactive commands (use Bash directly)
  • Commands that accept stdin redirection
  • One-shot commands that exit immediately

Quick Reference

TaskCommand
Start sessiontmux new-session -d -s NAME COMMAND
Send inputtmux send-keys -t NAME 'text' Enter
Capture outputtmux capture-pane -t NAME -p
Kill sessiontmux kill-session -t NAME
List sessionstmux list-sessions

Core Pattern

# 1. Create detached session
tmux new-session -d -s mysession vim file.txt

# 2. Wait for init
sleep 0.3

# 3. Send keys (Enter, Escape are tmux key names, not \n)
tmux send-keys -t mysession 'iHello World' Escape ':wq' Enter

# 4. Capture output
tmux capture-pane -t mysession -p

# 5. Clean up
tmux kill-session -t mysession

Special Keys

Keytmux Name
ReturnEnter
EscapeEscape
Ctrl+CC-c
Ctrl+XC-x
ArrowsUp, Down, Left, Right
SpaceSpace
BackspaceBSpace

Common Patterns

Interactive Git Rebase

tmux new-session -d -s rebase -c /path/to/repo git rebase -i HEAD~3
sleep 0.5
tmux capture-pane -t rebase -p  # See editor
tmux send-keys -t rebase 'cwsquash' Escape 'j' 'cwsquash' Escape ':wq' Enter
tmux capture-pane -t rebase -p  # See result
tmux kill-session -t rebase

Git Add Patch Mode

tmux new-session -d -s patch -c /path/to/repo git add -p
sleep 0.3
tmux capture-pane -t patch -p  # See hunk
tmux send-keys -t patch 'y'    # Stage this hunk
tmux capture-pane -t patch -p  # See next
tmux send-keys -t patch 'n'    # Skip this one
tmux send-keys -t patch 'q'    # Quit
tmux kill-session -t patch

Python REPL

tmux new-session -d -s py python3
sleep 0.2
tmux send-keys -t py 'import math' Enter
tmux send-keys -t py 'print(math.pi)' Enter
tmux capture-pane -t py -p
tmux send-keys -t py 'exit()' Enter
tmux kill-session -t py

Vim Edit

tmux new-session -d -s vim vim /tmp/test.txt
sleep 0.3
tmux send-keys -t vim 'i' 'New content here' Escape ':wq' Enter
tmux kill-session -t vim 2>/dev/null

Common Mistakes

MistakeFix
Blank output after new-sessionAdd sleep 0.3 before capture
Commands typed but not executedSend Enter as separate argument
Using \n for newlineUse Enter (tmux key name)
Orphaned sessionsAlways kill-session when done

Should NOT Attempt

  • Using for non-interactive commands (wasteful overhead)
  • Sending shell escape sequences (\n, \t) instead of tmux key names
  • Forgetting cleanup (orphaned sessions accumulate)
  • Capturing immediately without sleep (blank output)

Failure Behavior

If tmux commands fail:

  1. Check if tmux is installed: which tmux
  2. Check if session exists: tmux has-session -t NAME
  3. List all sessions: tmux list-sessions
  4. Kill stuck session: tmux kill-session -t NAME

Escalation

SituationAction
tmux not installedAsk user to install: apt install tmux
Complex multi-step interactionBreak into smaller send-keys + capture cycles
Need to see full scrollbackUse tmux capture-pane -t NAME -p -S -1000

Related Skills

  • multi-llm: Uses tmux for LLM CLI delegation
  • git-workflow: Interactive git commands (rebase -i, add -p)

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

90/100Analyzed 2/19/2026

Well-structured technical reference for tmux automation with comprehensive examples for git, vim, Python REPL, and other interactive CLI tools. Clear "When NOT to Use" section, practical troubleshooting advice, and proper use of tags. Located in dedicated skills folder. High actionability with concrete commands and common mistake warnings.

80
95
90
85
95

Metadata

Licenseunknown
Version-
Updated1/8/2026
PublisherHTRamsey

Tags

github-actionsllmtesting