mcpField
T
tmux

tmux

github.com/connorads開発1877 回インストール1 日前に更新
リポジトリ

tmux について

tmuxを使って対話型ターミナルアプリケーションを操作するスキルです。コマンドやキー入力の送信、出力の確認、リモートセッション管理が必要な開発者向けで、セッション検索やテキスト待機用のスクリプトも含みます。

主な機能

  1. 01tmuxセッションの作成と制御
  2. 02コマンドとキー入力の送信
  3. 03ターミナル出力の取得
  4. 04SSH経由のリモート実行
  5. 05セッション検索とテキスト監視スクリプト

活用シーン

  1. 01Python、Node、psqlのREPL実行
  2. 02ターミナルでのgdbやlldbによるデバッグ
  3. 03TTYが必要なCLIの操作
  4. 04SSH経由でリモート出力を確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/connorads/dotfiles --skill tmux

インストール後、Claude Code で/tmuxを入力して読み込まれたか確認します。

同梱ファイルscripts/find-sessions.shscripts/wait-for-text.sh

詳細

tmux スキル

tmux を使ってキー入力を送信し、出力をキャプチャすることで、対話型ターミナルアプリケーションを操作します。

使用する場面

  • 対話型 REPL(python、node、psql)の実行
  • gdb/lldb によるデバッグ
  • TTY での操作が必要な CLI
  • 出力を確認する必要があるリモート実行

基本パターン

# Create session
tmux new-session -d -s "$SESSION" -x 120 -y 40

# Send commands
tmux send-keys -t "$SESSION" "python3" Enter

# Capture output
tmux capture-pane -t "$SESSION" -p

# Wait for prompt (poll)
for i in {1..30}; do
  output=$(tmux capture-pane -t "$SESSION" -p)
  if echo "$output" | grep -q ">>>"; then break; fi
  sleep 0.5
done

# Cleanup
tmux kill-session -t "$SESSION"

リモート実行(Codespaces/SSH)

mise でインストールしたツールの場合は、zsh でラップします。

# Non-interactive (won't hang)
ssh host 'zsh -c "source ~/.zshrc; tmux new-session -d -s mysession; tmux send-keys -t mysession python Enter"'

# Interactive (for tmux attach) - needs TTY
ssh host -t 'zsh -ilc "tmux attach -t mysession"'

重要:ハングを避けるため、zsh -lc ではなく zsh -c "source ~/.zshrc; ..." を使用してください。

ユーザーへの通知

セッションを開始した後、必ず次を出力してください。

To monitor: tmux attach -t $SESSION
To capture: tmux capture-pane -t $SESSION -p

ヒント

  • ペインサイズを一定にするには -x 120 -y 40 を使用します
  • wait-for ではなく capture-pane -p でポーリングします
  • シェルによる展開を避けるため、リテラルテキストの送信には -l フラグを使用します
  • 制御キー:C-c(中断)、C-d(EOF)、Escape
  • Python REPL の場合は、コンソールの装飾による干渉を避けるため PYTHON_BASIC_REPL=1 を設定します

ヘルパースクリプト

wait-for-text.sh

タイムアウトを指定して、tmux ペイン内のテキストパターンをポーリングします。

scripts/wait-for-text.sh -t session:0.0 -p '^>>>' -T 15
find-sessions.sh

必要に応じて絞り込みながら、tmux セッションを一覧表示します。

scripts/find-sessions.sh -q claude  # filter by name
scripts/find-sessions.sh --all      # all sessions

コメント