smux
tmuxのペイン操作とAIエージェント間の通信を制御します。ユーザーがtmuxペイン、ペイン間通信、他エージェントへのメッセージ送信、他ペインの読み取り、tmuxセッションの管理、またはtmux上で動作するプロセスとの連携について言及した際に使用します。エージェント間メッセージング用のtmux-bridge CLIと、セッションを直接制御するための生のtmuxコマンドを含みます。
description の原文を見る
Control tmux panes and communicate between AI agents. Use this skill whenever the user mentions tmux panes, cross-pane communication, sending messages to other agents, reading other panes, managing tmux sessions, or interacting with processes running in tmux. Includes tmux-bridge CLI for agent-to-agent messaging and raw tmux commands for direct session control.
SKILL.md 本文
smux
Tmux ペーンのコントロールとペーン間のエージェント通信。クロスペーン間のすべてのインタラクションには tmux-bridge(高レベルの CLI)を使用してください。低レベルの制御が必要な場合にのみ、生の tmux コマンドにフォールバックしてください。
tmux-bridge — クロスペーン通信
任意の AI エージェントが他の tmux ペーンと対話できるようにする CLI。プレーンな bash で動作します。すべてのコマンドはアトミックです:type はテキストを入力し(Enter は押さない)、keys は特殊キーを送信し、read はペーンの内容をキャプチャします。
待機またはポーリングをしないこと
他のペーンにはエージェントがいて、tmux-bridge を使ってあなたに返信します。その返信は、[tmux-bridge from:...] メッセージとしてあなたのペーンに直接表示されます。スリープしたり、ポーリングしたり、ターゲットペーンを読んで返信を待ったり、ループしたりしないでください。メッセージを入力し、Enter を押して、先に進んでください。
ターゲットペーンを読む唯一の場合は:
- インタラクションを開始する前(読み取りガードで強制)
- 入力後、テキストが到達したことを確認してから Enter を押す前
- 非エージェントペーン(プレーンシェル、実行中のプロセス)と対話するとき
読み取りガード
CLI は読み取り前行動を強制します。ペーンを読む前に type または keys を実行することはできません。
tmux-bridge read <target>はペーンを「読取済み」とマークしますtmux-bridge type/keys <target>はそのマークをチェックします — 読んでいなければエラーになりますtype/keysが成功した後、マークはクリアされます — 次のインタラクションの前に再度読む必要があります
$ tmux-bridge type codex "hello"
error: must read the pane before interacting. Run: tmux-bridge read codex
コマンドリファレンス
| コマンド | 説明 | 例 |
|---|---|---|
tmux-bridge list | ターゲット、pid、コマンド、サイズ、ラベル付きのすべてのペーンを表示 | tmux-bridge list |
tmux-bridge type <target> <text> | Enter を押さずにテキストを入力 | tmux-bridge type codex "hello" |
tmux-bridge message <target> <text> | 送信者情報と返信ターゲットを自動追加してテキストを入力 | tmux-bridge message codex "review src/auth.ts" |
tmux-bridge read <target> [lines] | 最後の N 行を読む(デフォルト 50) | tmux-bridge read codex 100 |
tmux-bridge keys <target> <key>... | 特殊キーを送信 | tmux-bridge keys codex Enter |
tmux-bridge name <target> <label> | ペーンにラベルを付ける(tmux ボーダーに表示) | tmux-bridge name %3 codex |
tmux-bridge resolve <label> | ラベルのペーンターゲットを出力 | tmux-bridge resolve codex |
tmux-bridge id | このペーンの ID を出力 | tmux-bridge id |
ターゲット解決
ターゲットは以下のいずれかです:
- tmux ネイティブ:
session:window.pane(例:shared:0.1)、ペーン ID(%3)、またはウィンドウインデックス(0) - ラベル:
tmux-bridge nameで設定した任意の文字列 — 自動的に解決されます
読取-実行-読取サイクル
すべてのインタラクションは読取 → 実行 → 読取に従います。CLI がこれを強制します。
エージェントにメッセージを送信する:
tmux-bridge read codex 20 # 1. 読取 — 読取ガードを満たす
tmux-bridge message codex 'Please review src/auth.ts'
# 2. メッセージ — 自動で送信者情報を追加、Enter なし
tmux-bridge read codex 20 # 3. 読取 — テキストが到達したか確認
tmux-bridge keys codex Enter # 4. キー — 送信
# ここで止めてください。codex の返信を読まないでください。エージェントはあなたのペーンに返信します。
プロンプトを承認する(非エージェントペーン):
tmux-bridge read worker 10 # 1. 読取 — プロンプトを見る
tmux-bridge type worker "y" # 2. 入力
tmux-bridge read worker 10 # 3. 読取 — テキストが到達したか確認
tmux-bridge keys worker Enter # 4. キー — 送信
tmux-bridge read worker 20 # 5. 読取 — 結果を見る
メッセージング規約
message コマンドは送信者情報とロケーションを自動的に追加します:
[tmux-bridge from:claude pane:%4 at:3:0.0] Please review src/auth.ts
受信側は以下を取得します:誰が送ったか(from)、返信する正確なペーン(pane)、セッション/ウィンドウロケーション(at)。このヘッダーを見たら、ヘッダーから pane ID を使って tmux-bridge で返信してください。
エージェント間ワークフロー
# 1. 自分自身にラベルを付ける
tmux-bridge name "$(tmux-bridge id)" claude
# 2. 他のペーンを発見する
tmux-bridge list
# 3. メッセージを送信する(読取-実行-読取)
tmux-bridge read codex 20
tmux-bridge message codex 'Please review the changes in src/auth.ts'
tmux-bridge read codex 20
tmux-bridge keys codex Enter
会話例
エージェント A(claude)が送信:
tmux-bridge read codex 20
tmux-bridge message codex 'What is the test coverage for src/auth.ts?'
tmux-bridge read codex 20
tmux-bridge keys codex Enter
エージェント B(codex)のプロンプトに表示:
[tmux-bridge from:claude pane:%4 at:3:0.0] What is the test coverage for src/auth.ts?
エージェント B がヘッダーからペーン ID を使って返信:
tmux-bridge read %4 20
tmux-bridge message %4 '87% line coverage. Missing the OAuth refresh token path (lines 142-168).'
tmux-bridge read %4 20
tmux-bridge keys %4 Enter
生の tmux コマンド
tmux-bridge が提供するもの以上の直接的な tmux 制御が必要なとき — セッション管理、ウィンドウナビゲーション、ペーンの作成、または低レベルのスクリプティング — は以下を使用してください。
出力をキャプチャ
tmux capture-pane -t shared -p | tail -20 # 最後の 20 行
tmux capture-pane -t shared -p -S - # スクロールバック全体
tmux capture-pane -t shared:0.0 -p # 特定のペーン
キーを送信
tmux send-keys -t shared -l -- "text here" # テキストを入力(リテラルモード)
tmux send-keys -t shared Enter # Enter を押す
tmux send-keys -t shared Escape # Escape を押す
tmux send-keys -t shared C-c # Ctrl+C
tmux send-keys -t shared C-d # Ctrl+D(EOF)
インタラクティブな TUI の場合、テキストと Enter を分けて送信してください:
tmux send-keys -t shared -l -- "Please apply the patch"
sleep 0.1
tmux send-keys -t shared Enter
ペーンとウィンドウ
# ペーンを作成する(新しいウィンドウより推奨)
tmux split-window -h -t SESSION # 水平分割
tmux split-window -v -t SESSION # 垂直分割
tmux select-layout -t SESSION tiled # 再バランス
# ナビゲート
tmux select-window -t shared:0
tmux select-pane -t shared:0.1
tmux list-windows -t shared
セッション管理
tmux list-sessions
tmux new-session -d -s newsession
tmux kill-session -t sessionname
tmux rename-session -t old new
Claude コードパターン
# セッションが入力を必要とするか確認
tmux capture-pane -t worker-3 -p | tail -10 | grep -E "❯|Yes.*No|proceed|permission"
# プロンプトを承認
tmux send-keys -t worker-3 'y' Enter
# すべてのセッションを確認
for s in shared worker-2 worker-3 worker-4; do
echo "=== $s ==="
tmux capture-pane -t $s -p 2>/dev/null | tail -5
done
ヒント
- 読取ガードが強制されます — すべての
type/keysの前に読む必要があります - すべてのアクションが読取マークをクリアします —
typeの後、keysの前に再度読んでください - 待機またはポーリングをしないでください — エージェントペーンはあなたのペーンへ tmux-bridge で返信します
- ペーンを早期にラベル付けしてください —
%NID を使うより簡単です typeはリテラルモードを使用します — 特殊文字はそのまま入力されますreadはデフォルト 50 行です — より多くのコンテキストが必要な場合はより高い数値を渡してください- 非エージェントペーンは例外です — 出力を見るためにそれらを読む必要があります
capture-pane -pを使って stdout に出力します(スクリプティングに不可欠です)- ターゲット形式:
session:window.pane(例:shared:0.0)
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- shawnpana
- リポジトリ
- shawnpana/smux
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/shawnpana/smux / ライセンス: MIT
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。