Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.

GitHub
安装命令
npx skhub add bighardperson/tmux
Markdown
SKILL.md

tmux Skill

Use tmux only when you need an interactive TTY. Prefer bash background mode for long-running, non-interactive tasks.

Quickstart (isolated socket)

SOCKET_DIR="${TMPDIR:-/tmp}/codebuddy-tmux-sockets"
mkdir -p "$SOCKET_DIR"
SOCKET="$SOCKET_DIR/codebuddy.sock"
SESSION=codebuddy-python

tmux -S "$SOCKET" new -d -s "$SESSION" -n shell
tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -- 'PYTHON_BASIC_REPL=1 python3 -q' Enter
tmux -S "$SOCKET" capture-pane -p -J -t "$SESSION":0.0 -S -200

Socket convention

  • Default socket dir: ${TMPDIR:-/tmp}/codebuddy-tmux-sockets
  • Default socket path: "$SOCKET_DIR/codebuddy.sock"

Targeting panes

  • Target format: session:window.pane (defaults to :0.0)
  • Keep names short; avoid spaces.

Finding sessions

  • List sessions: {baseDir}/scripts/find-sessions.sh -S "$SOCKET"
  • Scan all sockets: {baseDir}/scripts/find-sessions.sh --all

Sending input safely

  • Literal sends: tmux -S "$SOCKET" send-keys -t target -l -- "$cmd"
  • Control keys: tmux -S "$SOCKET" send-keys -t target C-c

Watching output

  • Capture recent: tmux -S "$SOCKET" capture-pane -p -J -t target -S -200
  • Wait for prompts: {baseDir}/scripts/wait-for-text.sh -t session:0.0 -p 'pattern'

Cleanup

  • Kill session: tmux -S "$SOCKET" kill-session -t "$SESSION"
  • Kill all: tmux -S "$SOCKET" kill-server

Helper: wait-for-text.sh

{baseDir}/scripts/wait-for-text.sh -t session:0.0 -p 'pattern' [-F] [-T 20] [-i 0.5] [-l 2000]
发现
标签

此技能尚未发布标签。

版本
最新版本元数据

版本

v2026.09.24

发布时间

2026年9月24日

分类

未分类

许可证

NOASSERTION

源路径

skills/tmux

默认分支

main

最新提交

e9f99fd

Tree SHA

de4405f