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

## 環境変数

| 変数 | 目的 |
| --- | --- |
| `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ペインまたはワークスペースを一覧表示

Canonical: https://cmux.com/ja/docs/agent-integrations/claude-code-teams

Documentation index: https://cmux.com/llms.txt
