mcpField
T
tmux

tmux

github.com/openclaw開発393.3k8.4k 回インストール今日更新
リポジトリ

tmux について

tmuxは、既存の対話型tmuxセッションを操作するスキルです。ペインの確認、入力送信、セッション管理、プロンプトの確認に加え、曖昧さを避けたコマンド完了判定の方法も扱います。

主な機能

  1. 01セッション、ウィンドウ、ペインの一覧表示
  2. 02ペイン出力とスクロールバックの取得
  3. 03テキストと特殊キーの送信
  4. 04セッションの作成、名前変更、終了
  5. 05ヘルパースクリプトでのテキスト待機

活用シーン

  1. 01対話型プロセスの確認
  2. 02実行中のセッションへの入力
  3. 03応答前のエージェントプロンプト確認
  4. 04コマンド完了マーカーの待機

インストール

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

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

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

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

詳細

tmux

既存の対話的な tmux セッションに使用します。単発のコマンドには通常のシェルを使用してください。新規の非対話的なバックグラウンドジョブにはバックグラウンド実行を使用します。

基本

tmux ls
tmux list-windows -t shared
tmux list-panes -t shared:0
tmux capture-pane -t shared:0.0 -p
tmux capture-pane -t shared:0.0 -p -S -

ターゲットの形式: session:window.pane、例: shared:0.0。

入力の送信

リテラルテキストを送信し、その後 Enter:

tmux send-keys -t shared:0.0 -l -- "Please continue"
tmux send-keys -t shared:0.0 Enter

特殊キー:

tmux send-keys -t shared:0.0 C-c
tmux send-keys -t shared:0.0 C-d
tmux send-keys -t shared:0.0 Escape

任意のテキストには -l -- を使用します。ペーストや改行による予期しない動作を避けるため、テキストと Enter を分割してください。

セッション

tmux new-session -d -s worker
tmux rename-session -t old new
tmux kill-session -t worker

プロンプトの確認

tmux capture-pane -t worker-3 -p | tail -20
tmux capture-pane -t worker-3 -p | rg "proceed|permission|Yes|No|❯"

プロンプトを理解した場合にのみ承認または選択を行います:

tmux send-keys -t worker-3 -l -- "y"
tmux send-keys -t worker-3 Enter

ヘルパー

  • scripts/find-sessions.sh: セッションを検出します。
  • scripts/wait-for-text.sh: キャプチャしたペインの内容にテキストが含まれるまで待機します。

wait-for-text.sh は、プロセスの出力だけでなく、エコーされた入力やスクロールバックも検索します。コマンドの完了を検出するには、tmux に送信するコマンド内で完全なテキストが引数をまたいで分割される一意のマーカーを使用します:

nonce="$(od -An -N8 -tx1 /dev/urandom | tr -d ' \n')"
marker="OPENCLAW_DONE_${nonce}"
tmux send-keys -t shared:0.0 -l -- "sleep 4; printf '%s%s\n' 'OPENCLAW_DONE_' '$nonce'"
tmux send-keys -t shared:0.0 Enter
scripts/wait-for-text.sh -t shared:0.0 -p "$marker" -F -T 30

エコーされたコマンドに完全なマーカーが含まれることはなく、nonce によって古い完了行がマッチすることを防ぎます。

注意

  • capture-pane -p はスクリプト用に標準出力へ出力します。
  • -S - はスクロールバック全体をキャプチャします。
  • tmux セッションは SSH の切断後も維持されます。

コメント