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

  • Crea un shim de tmux en el directorio temporal de shims de la superficie actual. La ruta incluye el UUID de la superficie y cambia por panel y por arranque, por lo que no se puede indicar una ruta fija
  • Establece TMUX y TMUX_PANE para simular tmux en la sesión de inicio 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

El shim enruta a cmux solo cuando está definido CMUX_CLAUDE_TEAMS_CMUX_BIN; si no, continúa de forma transparente con el siguiente ejecutable real de tmux. Por eso, which tmux no indica si la interceptación de Claude Teams está activa.

#Environment variables

VariablePurpose
TMUXRuta sintética del socket de tmux para la sesión que ejecutó cmux claude-teams
TMUX_PANEIdentificador sintético de panel de tmux para la sesión que ejecutó cmux claude-teams; está vacío en los paneles de agente generados
CMUX_SURFACE_IDEl UUID de la superficie actual; úsalo como identificador de la superficie dentro de un panel de agente generado
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMSEnables Claude Code agent teams feature
CMUX_SOCKET_PATHPath to the cmux control socket for the shim to connect to

Los valores sintéticos TMUX, TMUX_PANE y los valores relacionados de compatibilidad con tmux describen la sesión que ejecutó cmux claude-teams, no los paneles generados. Desde un panel de agente, usa CMUX_SURFACE_ID y ejecuta cmux tree --json; el objeto caller de la salida identifica el panel que hizo la llamada.

#Directories

PathPurpose
Directorio por superficie dentro del directorio temporal del sistema (sin ruta fija)Contiene el shim de tmux activo y se antepone a PATH para esa superficie
~/.cmuxterm/tmux-compat-store.jsonAlmacenamiento persistente para búferes y hooks de tmux-compat, y para el estado de ubicación/disposición de las divisiones

Las claves de enrutamiento de divisiones son:

  • lastSplitSurfaceAsigna cada UUID de espacio de trabajo al UUID de superficie creado por la última división. Proporciona el valor inicial del ancla de la columna de agentes que decide dónde cae la siguiente división main-vertical.
  • mainVerticalLayoutsAsigna cada UUID de espacio de trabajo a mainSurfaceId (la superficie principal o líder) y lastColumnSurfaceId (la superficie inferior de la columna de agentes). Las siguientes divisiones de compañeros apuntan a esa columna y se apilan hacia abajo.

Inspecciona estas claves de enrutamiento si un panel de compañero aparece como una pestaña detrás de una superficie existente en lugar de como una división a su lado.

#Supported tmux commands

The shim translates these tmux commands into cmux operations:

  • new-session, new-windowcreates a new cmux workspace
  • split-windowsplits the current cmux pane
  • send-keyssends text to a cmux surface
  • capture-panereads terminal text from a cmux surface
  • select-pane, select-windowfocuses a cmux pane or workspace
  • kill-pane, kill-windowcloses a cmux surface or workspace
  • list-panes, list-windowslists cmux panes or workspaces