# Claude Code Teams

cmux claude-teams launches Claude Code with agent teams enabled. When Claude spawns teammate agents, they appear as native cmux splits instead of tmux panes, with full sidebar metadata and notifications.

## Usage

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

All arguments after claude-teams are forwarded to Claude Code. The command defaults teammate mode to auto and sets the environment so Claude uses cmux splits.

## How it works

cmux claude-teams creates a tmux shim script and configures the environment so Claude Code thinks it's running inside tmux. When Claude issues tmux commands to manage teammate panes, the shim translates them into cmux socket API calls.

-   Tworzy shim tmux w tymczasowym katalogu shimów bieżącej powierzchni. Ścieżka zawiera UUID powierzchni i zmienia się dla każdego panelu oraz przy każdym uruchomieniu systemu, dlatego nie można podać stałej ścieżki
-   Ustawia TMUX i TMUX\_PANE, aby symulować tmux w sesji uruchamiającej Claude Teams
-   Prepends the shim directory to PATH so Claude finds the shim before real tmux
-   Enables CLAUDE\_CODE\_EXPERIMENTAL\_AGENT\_TEAMS=1 and sets teammate mode to auto

Shim kieruje do cmux tylko wtedy, gdy ustawiono `CMUX_CLAUDE_TEAMS_CMUX_BIN`; w przeciwnym razie przezroczyście przechodzi do następnego prawdziwego pliku wykonywalnego tmux. Dlatego `which tmux` nie informuje, czy przechwytywanie Claude Teams jest aktywne.

## Environment variables

| Variable | Purpose |
| --- | --- |
| `TMUX` | Syntetyczna ścieżka gniazda tmux dla sesji, która uruchomiła cmux claude-teams |
| `TMUX_PANE` | Syntetyczny identyfikator panelu tmux dla sesji, która uruchomiła cmux claude-teams; pusty w utworzonych panelach agentów |
| `CMUX_SURFACE_ID` | UUID bieżącej powierzchni; użyj go jako identyfikatora powierzchni w utworzonym panelu agenta |
| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Enables Claude Code agent teams feature |
| `CMUX_SOCKET_PATH` | Path to the cmux control socket for the shim to connect to |

Syntetyczne wartości `TMUX`, `TMUX_PANE` i powiązane wartości zgodności z tmux opisują sesję, w której uruchomiono `cmux claude-teams`, a nie utworzone panele. W panelu agenta użyj `CMUX_SURFACE_ID` i uruchom `cmux tree --json`; obiekt `caller` w wynikach identyfikuje panel wywołujący.

## Directories

| Path | Purpose |
| --- | --- |
| Katalog dla każdej powierzchni w systemowym katalogu tymczasowym (brak stałej ścieżki) | Zawiera aktywny shim tmux i jest dodawany na początku PATH dla tej powierzchni |
| `~/.cmuxterm/tmux-compat-store.json` | Trwałe miejsce przechowywania buforów i hooków tmux-compat oraz stanu rozmieszczenia/układu podziałów |

Klucze routingu podziałów to:

-   `lastSplitSurface` — Mapuje UUID każdego obszaru roboczego na UUID powierzchni utworzonej przez ostatni podział. Inicjalizuje kotwicę kolumny agentów, która określa miejsce kolejnego podziału main-vertical.
-   `mainVerticalLayouts` — Mapuje UUID każdego obszaru roboczego na `mainSurfaceId` (główną lub wiodącą powierzchnię) oraz `lastColumnSurfaceId` (najniższą powierzchnię w kolumnie agentów). Kolejne podziały członków zespołu są kierowane do tej kolumny i układane w dół.

Sprawdź te klucze routingu, gdy panel członka zespołu pojawia się jako karta za istniejącą powierzchnią zamiast jako podział obok niej.

## Supported tmux commands

The shim translates these tmux commands into cmux operations:

-   `new-session`, `new-window` → creates a new cmux workspace
-   `split-window` → splits the current cmux pane
-   `send-keys` → sends text to a cmux surface
-   `capture-pane` → reads terminal text from a cmux surface
-   `select-pane`, `select-window` → focuses a cmux pane or workspace
-   `kill-pane`, `kill-window` → closes a cmux surface or workspace
-   `list-panes`, `list-windows` → lists cmux panes or workspaces

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

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