#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 sonnetAll 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.
- Opretter en tmux-shim i den midlertidige shim-mappe for den aktuelle surface. Stien indeholder surface-UUID'et og ændres for hvert panel og ved hver opstart, så der kan ikke angives en fast sti
- Indstiller TMUX og TMUX_PANE til at simulere tmux i Claude Teams-startsessionen
- 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
Shimmet sender kun til cmux, når CMUX_CLAUDE_TEAMS_CMUX_BIN er sat; ellers falder det transparent igennem til den næste rigtige tmux-eksekverbare. Derfor viser which tmux ikke, om Claude Teams-aflytning er aktiv.
#Environment variables
| Variable | Purpose |
|---|---|
TMUX | Syntetisk tmux-socketsti for den session, der kørte cmux claude-teams |
TMUX_PANE | Syntetisk tmux-pane-id for den session, der kørte cmux claude-teams; tomt i oprettede agentpaneler |
CMUX_SURFACE_ID | UUID'en for den aktuelle surface; brug den som surface-identifikator i et oprettet 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 værdier TMUX, TMUX_PANE og relaterede tmux-kompatibilitetsværdier beskriver den session, der kørte cmux claude-teams, ikke de oprettede ruder. Fra en agentrude skal du bruge CMUX_SURFACE_ID og køre cmux tree --json; outputtets caller-objekt identificerer den kaldende rude.
#Directories
| Path | Purpose |
|---|---|
| Mappe pr. surface under systemets midlertidige mappe (ingen fast sti) | Indeholder den aktive tmux-shim og føjes først til PATH for den pågældende surface |
~/.cmuxterm/tmux-compat-store.json | Permanent lager til tmux-compat-buffere, hooks og tilstand for placering/layout af splits |
Split-routing-nøglerne er:
lastSplitSurface— Knytter hvert workspace-UUID til surface-UUID'et, der blev oprettet af det seneste split. Det initialiserer agentkolonneankeret, som bestemmer, hvor det næste main-vertical-split placeres.mainVerticalLayouts— Knytter hvert workspace-UUID tilmainSurfaceId(hoved- eller leader-surface) oglastColumnSurfaceId(den nederste surface i agentkolonnen). Efterfølgende teammate-splits målrettes denne kolonne og stables nedad.
Undersøg disse routing-nøgler, hvis en teammate-rude vises som en fane bag en eksisterende surface i stedet for som et split ved siden af den.
#Supported tmux commands
The shim translates these tmux commands into cmux operations:
new-session,new-window→ creates a new cmux workspacesplit-window→ splits the current cmux panesend-keys→ sends text to a cmux surfacecapture-pane→ reads terminal text from a cmux surfaceselect-pane,select-window→ focuses a cmux pane or workspacekill-pane,kill-window→ closes a cmux surface or workspacelist-panes,list-windows→ lists cmux panes or workspaces