#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.
- Crée un shim tmux dans le répertoire temporaire de shims de la surface actuelle. Son chemin contient l’UUID de la surface et change pour chaque panneau et à chaque démarrage ; aucun chemin fixe ne peut donc être indiqué
- Définit TMUX et TMUX_PANE pour simuler tmux dans la session de lancement de 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
Le shim ne route vers cmux que lorsque CMUX_CLAUDE_TEAMS_CMUX_BIN est défini ; sinon, il transmet de manière transparente vers le prochain exécutable tmux réel. Ainsi, which tmux ne permet pas de savoir si l’interception de Claude Teams est active.
#Environment variables
| Variable | Purpose |
|---|---|
TMUX | Chemin synthétique du socket tmux pour la session qui a exécuté cmux claude-teams |
TMUX_PANE | Identifiant synthétique de panneau tmux pour la session qui a exécuté cmux claude-teams ; vide dans les panneaux d’agent créés |
CMUX_SURFACE_ID | L’UUID de la surface actuelle ; utilisez-le comme identifiant de surface dans un panneau d’agent créé |
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 |
Les valeurs synthétiques TMUX, TMUX_PANE et les valeurs de compatibilité tmux associées décrivent la session qui a exécuté cmux claude-teams, et non les panneaux créés. Depuis un panneau d’agent, utilisez CMUX_SURFACE_ID et exécutez cmux tree --json ; l’objet caller de la sortie identifie le panneau appelant.
#Directories
| Path | Purpose |
|---|---|
| Répertoire propre à chaque surface dans le répertoire temporaire du système (aucun chemin fixe) | Contient le shim tmux actif et est ajouté au début de PATH pour cette surface |
~/.cmuxterm/tmux-compat-store.json | Stockage persistant des buffers et hooks tmux-compat, ainsi que de l’état de placement/disposition des splits |
Les clés de routage des divisions sont :
lastSplitSurface— Associe chaque UUID d’espace de travail à l’UUID de la surface créée par la dernière division. Il initialise l’ancre de la colonne des agents qui détermine où se place la prochaine division main-vertical.mainVerticalLayouts— Associe chaque UUID d’espace de travail àmainSurfaceId(la surface principale ou leader) et àlastColumnSurfaceId(la surface la plus basse de la colonne des agents). Les divisions suivantes des coéquipiers ciblent cette colonne et s’empilent vers le bas.
Examinez ces clés de routage lorsqu’un panneau de coéquipier apparaît comme un onglet derrière une surface existante au lieu d’une division à côté de celle-ci.
#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