#Claude Code Teams

cmux claude-teamsはエージェントチームを有効にしてClaude Codeを起動します。Claudeがチームメイトエージェントを生成すると、tmuxペインではなくネイティブのcmuxスプリットとして表示され、サイドバーのメタデータや通知が利用できます。

#使い方

cmux claude-teams
cmux claude-teams --continue
cmux claude-teams --model sonnet

claude-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のインターセプトが有効かどうかを判断できません。

#環境変数

変数目的
TMUXcmux claude-teamsを実行したセッション用の仮想tmuxソケットパス
TMUX_PANEcmux claude-teamsを実行したセッション用の仮想tmuxペイン識別子。生成されたエージェントパネル内では空です
CMUX_SURFACE_ID現在のサーフェスのUUID。生成されたエージェントパネル内では、サーフェス識別子としてこの値を使用します
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMSClaude Codeエージェントチーム機能を有効にする
CMUX_SOCKET_PATHshimが接続するcmuxコントロールソケットのパス

仮想のTMUXTMUX_PANE、および関連するtmux互換値は、生成されたパネルではなく、cmux claude-teamsを実行したセッションを表します。エージェントパネル内ではCMUX_SURFACE_IDを使用してcmux tree --jsonを実行してください。出力のcallerオブジェクトが、コマンドを実行したパネルを示します。

#ディレクトリ

パス目的
システムの一時ディレクトリ配下にあるサーフェスごとのディレクトリ(固定パスなし)有効なtmux shimを格納し、そのサーフェスのPATHの先頭に追加される
~/.cmuxterm/tmux-compat-store.jsontmux互換のバッファ、フック、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-keyscmuxサーフェスにテキストを送信
  • capture-panecmuxサーフェスからターミナルテキストを読み取り
  • select-pane, select-windowcmuxペインまたはワークスペースにフォーカス
  • kill-pane, kill-windowcmuxサーフェスまたはワークスペースを閉じる
  • list-panes, list-windowscmuxペインまたはワークスペースを一覧表示