tmux-orchestration について
tmux のペイン、ウィンドウ、セッションをまたいでエージェントやプロセスを調整するスキルです。出力の確認、入力の送信、作業の起動、長時間処理の監視を扱い、操作前の対象確認を重視します。
主な機能
- 01ペイン出力の読み取りと要約
- 02他のエージェントへの入力送信
- 03エージェント、REPL、シェルの起動
- 04長時間処理の監視
- 05対話型ターミナルの操作
- 06操作前の対象確認
活用シーン
- 01別のエージェントの進捗確認
- 02ペイン内のエージェントへの作業引き継ぎ
- 03ビルドやテストの実行監視
- 04複数の worktree でのコマンド実行
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ steveclarke/ dotfiles --skill tmux-orchestrationインストール後、Claude Code で/tmux-orchestrationを入力して読み込まれたか確認します。
詳細
tmux-orchestration
機能
- 別のペインを読む — エージェントの進捗を要約したり、エラーを取得したり、長時間実行中のプロセスが終了したか確認したりできます。
- 別のエージェントを操作する — 引き継ぎ用のプロンプトを送信したり、追加の質問をしたり、確認に回答したり、タスクの途中で指示を変更したりできます。
- 新しい作業を開始する — 新しいエージェント、REPL、監視プロセス、またはタスクをあらかじめ設定したシェルを、新しいウィンドウやセッションで開けます。
- 長時間実行する処理を調整する — 出力をログに保存したり、バックグラウンドで監視したり、worktree 全体にコマンドを展開したりできます。
- 対話型 TUI を操作する — キー入力を送信して画面を読み取り、lazygit、k9s、htop、エディターなどを操作できます。
使用する場面
ユーザーの依頼が別のペインにまたがる場合に使用します。よくある例:
- 「[pane|window|session] で何が起きているか読んで/確認して/ちらっと見て/要約して。」
- 「これを X のエージェントに送って。」/「もう一方の Claude に……と伝えて。」
- 「そのペインのプロンプトに答えて。」/「そこで『y』と入力して。」
- 「新しいウィンドウを開いて、……に取り組む Claude を起動して。」
- 「ビルド/デプロイ/テストの実行を監視して、終わったら知らせて。」
- 「すべての worktree シェルで同じコマンドを実行して。」
現在のペインで行う通常のシェル作業には使用しません。
ペイン ID は安定した識別子です
すべてのペインには %69(#{pane_id})のような ID があり、ペインが存続している間は固定されています。ウィンドウの番号が振り直されたり、ペインが追加されたりすると変わる session:window.pane インデックスとは異なります。ペインを特定したら、ID で指定してください。
ユーザーから直接 ID を渡されることもあります。prefix + i を押すと、現在のペインの ID がクリップボードにコピーされます。ユーザーが %69 を貼り付けて「これを読んで」や「エージェントはここにいる」と伝えた場合、対象は明確です。list-panes で推測せず、そのままキャプチャしてください。(ただし、書き込み前にその ID が自分のペインではないことを確認してください。詳しくは後述します。)
エージェント間で伝言を送る場合は、送信するメッセージに送信者のペイン ID を含めてください(「……が終わったら %24 のエージェントに伝えてください。あなたのペインは %69 です」)。そうすれば、受信側は正しい相手に返信できます。
安全性
危険なのは tmux コマンドではなく、判断です。
操作する前に対象を確認する
ユーザーの表現(「もう一方」「apps の worktree」「あの Codex」など)だけでは、対象を特定できないことがほとんどです。セッション、ウィンドウ、ペイン、現在のコマンド、作業ディレクトリなど、対象を識別できる十分なメタデータとともにすべてのペインを一覧表示してください。候補が複数ある場合は、それらを示してユーザーに選んでもらいます。推測してはいけません。何か実質的な操作(入力の送信、終了、新規起動)を行う前に、対象をユーザーに確認してください。
現在のペインには書き込まない
エージェント自身が実行されているペインを対象にするのは致命的です。キー入力がエージェント自身の UI に送られ、作業をキャンセルしたり、意味のない入力を送ったりする可能性があります。どのペインが「自分」なのかを常に把握し、対象から除外してください。
書き込む前に読む
入力を送信する前に、ペインをキャプチャして内容を確認してください。理由は 2 つあります。
- そのペインが何を待っているか分かります。 シェルのプロンプトはコマンドを受け付け、エージェントの入力欄は文章を受け付け、確認プロンプトは
y/nを求めます。適切でない形式の入力を送ると、実害が生じることがあります。たとえば、複数行のプロンプトを bash に貼り付けると、各行がコマンドとして実行されます。 - 対象の取り違えを防げます。 Codex のセッションを想定していたのに、誰かのホームディレクトリで bash のプロンプトが表示された場合は、そこで止めてください。
複雑な入力にはバッファ貼り付けを使う
単一のキー、短い回答、1 行のコマンドは直接送信できます。複数行の入力や、バッククォート、引用符、ドル記号などのシェル特殊文字を含む入力は、tmux バッファに用意してから貼り付けてください。複雑なテキストを send-keys で直接送ると、シェルのクォート処理によって内容が崩れることがあります。
貼り付けただけでは送信されません。Enter の送信は別の明示的な手順です。ここは取り消しがきかなくなる段階なので、実行前にいったん立ち止まる価値があります。
重要な送信内容は事前に確認する
簡単な回答を超える内容(引き継ぎ用のプロンプト、複数段落の指示、破壊的なコマンドなど)を送る場合は、正確なテキストをユーザーに提示し、Enter を押す前に許可を得てください。簡単な y/n/矢印キーのような操作では、その必要はありません。
送信後の確認
対象のペインをもう一度キャプチャします。受信側のエージェントが入力を受け取り、作業を開始したことを確認してください。画面に何も変化が見られない場合は、何か問題が起きています。対象の誤り、Enter キーの押し忘れ、エージェントがビジー状態で貼り付けを取りこぼした、といった可能性があります。
エージェントの起動
現在のペインの操作を維持できるよう、デタッチして作成する方法を優先してください。新しいエージェントの UI が使える状態になったら、最初のプロンプトを送信して起動します。バッファから貼り付けてから、Enter キーを押してください。
孤立したウィンドウを作らないようにしてください。問題が起きた場合(誤ったコマンドを起動した、誤った cwd を選んだなど)は、再試行する前にそのウィンドウを閉じてください。
バックグラウンドでの監視
別のペインで実行中のプロセスが長時間にわたる場合:
- 必要に応じてポーリングする。 ユーザーから「終わった?」と聞かれたら、ペインをキャプチャして状況を報告します。
- ファイルにミラーリングする。 ペインの出力をバックグラウンドでログファイルにパイプし、そのファイルを tail または grep します。スクロールバックが途切れる可能性がある場合や、ユーザーがその場を離れたい場合に役立ちます。
作業が終わったらミラーリングを停止してください。非アクティブなペインにパイプを接続したままにするのは雑です。
ブロードキャスト
複数のペインに同じ入力を一度に送信することは便利です(ワークツリーのシェルでコマンドを実行する、複数のサービスを再起動するなど)が、危険でもあります(入力ミスが N 回実行されます)。破壊的な操作として扱い、対象のペインを確認し、入力内容を確認して、直ちに同期をオフにしてください。ターンをまたいでブロードキャストモードをオンのままにしないでください。
適切な対応例
「apps のワークツリーにいるエージェントは何をしていますか?」
- ペインを一覧表示し、apps のワークツリーでエージェントを実行しているペインを特定します。
- そのペインに表示されている内容をキャプチャします(必要であれば、少し前のスクロールバックも含めます)。
- 画面をそのまま読み上げるのではなく、意味を読み取ります。進行中のタスク、直前に完了した作業、待機中の内容を確認します。
- 要約に加え、注目すべき点(エラー、未回答のプロンプト、長時間アイドル状態であることなど)も報告します。
「そのペインに引き継ぎ内容を送ってください。」
- 名前で対象を確認します。
- 引き継ぎ用のプロンプトを作成します。簡潔で、それだけで内容が伝わり、説明を繰り返すのではなく、信頼できる情報源(計画書、ブランチ、仕様書など)を示すものにします。
- 承認を得るため、プロンプトをユーザーに提示します。
- バッファから貼り付け、Enter キーを押してから、ペインをキャプチャして受信を確認します。
避けるべき失敗例
- ユーザーが「もう一方」と言っただけで推測し、誤ったペインに入力を送信する。
- エージェント UI ではなくシェルに複数行のプロンプトを貼り付け、各行を実行してしまう。
Enterキーを押し忘れて、プロンプトが入力欄に残ったままになり、ユーザーにエージェントがフリーズしたと思わせる。- 破壊的なコマンドをブロードキャストに紛れ込ませ、5 つのペインで実行されてから気づく。
synchronize-panesをオンのままにして、次の通常のキー入力が予期せず複数のペインに送られる。- 誤った cwd または誤ったセッションで新しいウィンドウを起動し、孤立させたままその場を離れる。
ペイン間の操作ミスは、通常、取り返しがつきません。受信側のエージェントは、受け取った内容に基づいてすでに動作しているためです。迷ったら、作業を止めて確認してください。