#Claude Code Teams
cmux claude-teamsはエージェントチームを有効にしてClaude Codeを起動します。Claudeがチームメイトエージェントを生成すると、tmuxペインではなくネイティブのcmuxスプリットとして表示され、サイドバーのメタデータや通知が利用できます。
#使い方
cmux claude-teams
cmux claude-teams --continue
cmux claude-teams --model sonnetclaude-teamsの後のすべての引数はClaude Codeに転送されます。コマンドはteammate modeをautoに設定し、Claudeがcmuxスプリットを使用する環境を構成します。
#仕組み
cmux claude-teamsはtmux shimスクリプトを作成し、Claude Codeがtmux内で動作していると認識するよう環境を構成します。Claudeがチームメイトペインを管理するためにtmuxコマンドを発行すると、shimがそれをcmuxソケットAPIコールに変換します。
- 現在のサーフェス用の一時shimディレクトリにtmux shimを作成します。パスにはサーフェスUUIDが含まれ、パネルごと、起動ごとに変わるため、固定パスを示すことはできません
- Claude Teamsを起動したセッションでtmuxをシミュレートするためにTMUXとTMUX_PANEを設定
- shimディレクトリをPATHの先頭に追加し、Claudeが本物のtmuxより先にshimを見つけるようにする
- CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1を有効にし、teammate modeをautoに設定
shimはCMUX_CLAUDE_TEAMS_CMUX_BINが設定されている場合にのみcmuxにルーティングし、未設定の場合は次の実際のtmux実行ファイルへ透過的にフォールスルーします。そのため、which tmuxではClaude Teamsのインターセプトが有効かどうかを判断できません。
#環境変数
| 変数 | 目的 |
|---|---|
TMUX | cmux claude-teamsを実行したセッション用の仮想tmuxソケットパス |
TMUX_PANE | cmux claude-teamsを実行したセッション用の仮想tmuxペイン識別子。生成されたエージェントパネル内では空です |
CMUX_SURFACE_ID | 現在のサーフェスのUUID。生成されたエージェントパネル内では、サーフェス識別子としてこの値を使用します |
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS | Claude Codeエージェントチーム機能を有効にする |
CMUX_SOCKET_PATH | shimが接続するcmuxコントロールソケットのパス |
仮想のTMUX、TMUX_PANE、および関連するtmux互換値は、生成されたパネルではなく、cmux claude-teamsを実行したセッションを表します。エージェントパネル内ではCMUX_SURFACE_IDを使用してcmux tree --jsonを実行してください。出力のcallerオブジェクトが、コマンドを実行したパネルを示します。
#ディレクトリ
| パス | 目的 |
|---|---|
| システムの一時ディレクトリ配下にあるサーフェスごとのディレクトリ(固定パスなし) | 有効なtmux shimを格納し、そのサーフェスのPATHの先頭に追加される |
~/.cmuxterm/tmux-compat-store.json | tmux互換のバッファ、フック、splitの配置とレイアウト状態を永続化するストレージ |
splitのルーティングに使われるキーは次のとおりです:
lastSplitSurface— 各ワークスペースUUIDを、直前のsplitで作成されたサーフェスUUIDに対応付けます。次のmain-vertical splitの配置先を決めるエージェント列のアンカーを初期化します。mainVerticalLayouts— 各ワークスペースUUIDを、mainSurfaceId(メインまたはリーダーサーフェス)とlastColumnSurfaceId(エージェント列の最下段サーフェス)に対応付けます。以降のチームメイトsplitはその列を対象にして下方向へ積み重なります。
チームメイトパネルが既存のサーフェスの横にsplitとして表示されず、その背後にタブとして表示される場合は、これらのルーティングキーを確認してください。
#対応するtmuxコマンド
shimは以下のtmuxコマンドをcmux操作に変換します:
new-session,new-window→ 新しいcmuxワークスペースを作成split-window→ 現在のcmuxペインを分割send-keys→ cmuxサーフェスにテキストを送信capture-pane→ cmuxサーフェスからターミナルテキストを読み取りselect-pane,select-window→ cmuxペインまたはワークスペースにフォーカスkill-pane,kill-window→ cmuxサーフェスまたはワークスペースを閉じるlist-panes,list-windows→ cmuxペインまたはワークスペースを一覧表示