# 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.

-   Oppretter en tmux-shim i den gjeldende overflatens midlertidige shim-katalog. Banen inneholder overflate-UUID-en og endres for hvert panel og hver oppstart, så ingen fast bane kan oppgis
-   Setter TMUX og TMUX\_PANE for å simulere tmux i oppstartsøkten for 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-en ruterer til cmux bare når `CMUX_CLAUDE_TEAMS_CMUX_BIN` er satt; ellers faller den transparent gjennom til neste ekte tmux-kjørbare fil. Derfor viser ikke `which tmux` om Claude Teams-avskjæringen er aktiv.

## Environment variables

| Variable | Purpose |
| --- | --- |
| `TMUX` | Syntetisk tmux-socketbane for økten som kjørte cmux claude-teams |
| `TMUX_PANE` | Syntetisk tmux-panelidentifikator for økten som kjørte cmux claude-teams; tom i opprettede agentpaneler |
| `CMUX_SURFACE_ID` | UUID-en til den gjeldende overflaten; bruk den som overflateidentifikator i et opprettet agentpanel |
| `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 |

De syntetiske verdiene `TMUX`, `TMUX_PANE` og relaterte tmux-kompatibilitetsverdier beskriver økten som kjørte `cmux claude-teams`, ikke de opprettede panelene. Fra et agentpanel bruker du `CMUX_SURFACE_ID` og kjører `cmux tree --json`; `caller`\-objektet i utdataene identifiserer det kallende panelet.

## Directories

| Path | Purpose |
| --- | --- |
| Katalog per overflate under systemets midlertidige katalog (ingen fast sti) | Inneholder den aktive tmux-shimen og legges først i PATH for den overflaten |
| `~/.cmuxterm/tmux-compat-store.json` | Varig lagring for tmux-compat-buffere, hooks og tilstand for plassering/oppsett av splitter |

Nøklene for splittruting er:

-   `lastSplitSurface` — Knytter hver workspace-UUID til surface-UUID-en som ble opprettet av det siste splittet. Den initialiserer agentkolonneankeret som bestemmer hvor neste main-vertical-splitt havner.
-   `mainVerticalLayouts` — Knytter hver workspace-UUID til `mainSurfaceId` (hoved- eller lederoverflaten) og `lastColumnSurfaceId` (den nederste overflaten i agentkolonnen). Påfølgende teammate-splitt målrettes mot kolonnen og stables nedover.

Undersøk disse rutingsnøklene hvis et teammate-panel vises som en fane bak en eksisterende overflate i stedet for som et splitt ved siden av den.

## 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/no/docs/agent-integrations/claude-code-teams

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