tmuxセッションに事前分割した永続ペインでAI CLIチームを編成し、ボスが動的にタスクを割り振るオーケストレーション。/tmux-team コマンド実行時、「チームで作業」「tmuxチーム」「チーム編成」「N人のチームで」「セッション確認」「セッション破棄」などのリクエスト時に使用。
How this skill is triggered — by the user, by Claude, or both
Slash command
/tmux-orchestrator-plugin:tmux-teamThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
事前分割したペインでチームを編成し、オーケストレーター(ボス)が自由にタスクを割り振るモデル。
事前分割したペインでチームを編成し、オーケストレーター(ボス)が自由にタスクを割り振るモデル。 各メンバーは CLI をインタラクティブモードで常駐し、ボスの指示を待つ。
/tmux-team コマンドが実行されたとき重要: このスキルには固定のフェーズ構造がない。タスクの分解方法、割り当て順序、レビューの要否はすべてオーケストレーター(ボス)の判断に委ねられる。
セッション構築はすべて Launcher エージェント に委譲する。オーケストレーターが直接セットアップを行わないことで、コンテキストの消費を防ぐ。
--members N が指定されている場合: その数を使用セッション ID を生成:
bash "$SCRIPTS_DIR/generate-session-id.sh" "{feature-name}"
出力:
SESSION_ID=0001-feature-name
セッションディレクトリを初期化:
bash "$SCRIPTS_DIR/init-session.sh" ".orchestrator/${SESSION_ID}"
team-launcher-prompt.md を Read し、パラメータ(SESSION_ID, PANE_COUNT, CLI_TOOL, WORKING_DIR, PARENT_PANE)を埋め込んで .orchestrator/${SESSION_ID}/.prompts/launcher-prompt.md に Write する
自身のペイン ID を取得:
bash "$SCRIPTS_DIR/get-parent-pane.sh" ".orchestrator/${SESSION_ID}"
出力:
PARENT_PANE={pane-id}(.config/parent-pane.txtにも自動保存)
tmux セッション名を取得:
bash "$SCRIPTS_DIR/create-and-save-session.sh" "${SESSION_ID}" ".orchestrator/${SESSION_ID}"
出力:
TMUX_SESSION={session-name}
Launcher を起動:
bash "$SCRIPTS_DIR/tmux-agent-launch.sh" \
"{TMUX_SESSION}" "launcher" "claude" \
".orchestrator/${SESSION_ID}/.prompts/launcher-prompt.md" \
".orchestrator/${SESSION_ID}" "{PARENT_PANE}"
「Launcher を起動しました。完了通知を待機中...」と出力して ターンを終了する
[AGENT_COMPLETE] launcher done を受信したら:
.orchestrator/${SESSION_ID}/.config/pane-registry.json を Read してペインID一覧を取得.orchestrator/${SESSION_ID}/.config/tmux-session.txt を Read して TMUX_SESSION を取得member-status.json を初期化(全メンバーを ready に設定)[AGENT_COMPLETE] launcher error の場合:
.orchestrator/${SESSION_ID}/launcher/error.md を Read してエラー内容を確認tmux-pane-presplit.sh は team-config.json からメンバーのキャラ情報(名前・性格)を読み取り、--system-prompt フラグで CLI に渡す。システムプロンプトはコンテキスト圧縮(compact)の影響を受けないため、セッション中ずっとキャラ設定が維持される。
team-member-prompt.md を参照してプロンプトファイルを生成する。
生成先: .orchestrator/{SESSION_ID}/.prompts/member-{N}-task-{M}.md
プロンプトには以下を含める:
rm -f .orchestrator/${SESSION_ID}/.status/member-{N}.done
rm -f .orchestrator/${SESSION_ID}/.status/member-{N}.exit
mkdir -p .orchestrator/${SESSION_ID}/member-{N}/task-{M}
tmux send-keys -t "$PANE_ID" \
".orchestrator/${SESSION_ID}/.prompts/member-1-task-1.md を読んで、指示に従って作業してください。" Enter
注意: send-keys で送信するのは短い参照文のみ。詳細な指示はプロンプトファイルに記載する。
複数メンバーへの並列割り当ても同様に、各メンバーに対して send-keys を実行する。
メンバーはプロンプト内の「完了手順(必須)」セクションに従い、.status/member-{N}.done に状態値を書き出し notify-parent.sh を実行する。オーケストレーターの入力に以下のメッセージが届く:
[AGENT_COMPLETE] member-1 done
[AGENT_COMPLETE] が一定時間届かない場合は .status/member-{N}.done を直接確認し、なければリマインダーを送信する。それでも応答なければユーザーに報告する。
オーケストレーターが .config/member-status.json でメンバー状態を追跡する(状態: ready / busy / idle / error)。タスク割り当て時:
idle のメンバーを優先idle がなければ ready のメンバー(まだタスクを受けていない)busy なら、完了を待機.status/{member-id}.done の状態値のみで行う[AGENT_COMPLETE] メッセージを入力として待つスクリプトはスキルの references/scripts/ に配置されている(.orchestrator/scripts/ へのコピーは不要)。
SCRIPTS_DIRTEAM_SCRIPTS_DIRオーケストレーターは起動時にスクリプトパスを解決し、Launcher やメンバーのプロンプト生成時に {SCRIPTS_DIR} / {TEAM_SCRIPTS_DIR} プレースホルダを実パスに置換する。
npx claudepluginhub dio0550/d-market-orchestrator --plugin tmux-orchestrator-pluginManages tmux sessions, windows, and panes for persistent remote workflows and shell scripting automation. Useful for long-running processes, SSH disconnects, and multi-pane terminal layouts.
Creates named agent teams in tmux split panes with specialized persistent teammates for visible collaboration on complex tasks, bypassing background subagents.