Back to list
HTRamsey

using-tmux

by HTRamsey

Claude Code configuration: agents, commands, hooks, skills, scripts

3🍴 0📅 Jan 8, 2026

SKILL.md


name: using-tmux description: 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.

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
  • multi-llm: Uses tmux for LLM CLI delegation
  • git-workflow: Interactive git commands (rebase -i, add -p)

Score

Total Score

40/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon