La mensajería entre sesiones requiere Claude Code v2.1.224 o posterior en macOS y Linux, incluido Linux dentro de WSL 2. En Windows nativo, requiere Claude Code v2.1.234 o posterior. Cuando una sesión cumple los requisitos, la mensajería está activada sin necesidad de habilitar nada. Consulta Disponibilidad para conocer los requisitos del proveedor y cómo confirmar que una sesión la tiene.
ListAgents para descubrir qué agentes puede alcanzar, y SendMessage para entregar un mensaje a uno de ellos por nombre. Con la misma herramienta SendMessage, Claude también puede enviar mensajes a subagentes y compañeros de equipo de agentes dentro de una única sesión o equipo. Esta página cubre mensajes entre tus sesiones independientes.
Cuándo usar mensajería entre sesiones
Usa mensajería cuando una de tus sesiones tiene algo que otra sesión necesita a mitad de la tarea. Claude puede enviar un mensaje por su cuenta cuando ve la necesidad, por ejemplo después de hacer un cambio que afecta el trabajo que otra sesión está haciendo, o puedes pedirle que envíe uno. Los casos comunes son:- Entregar un hallazgo: cuando una sesión descubre un cambio que rompe algo o toma una decisión, Claude lo resume para la sesión que trabaja en el área afectada, en lugar de que lo re-expliques allí.
- Coordinar worktrees paralelos: cuando las sesiones trabajan el mismo repositorio en worktrees separados, Claude puede decirle a las otras sesiones qué se implementó.
- Obtener estado del trabajo de larga duración: haz que una migración o ejecución de prueba informe a la sesión que estás observando, o pregúntale desde allí. Si esa sesión está en esta máquina, Claude también puede pedirle un aviso cuando la sesión se quede inactiva o salga.
- Enviar mensajes entre máquinas: alcanza una de tus sesiones en otra máquina o en la web.
- Para continuar una conversación en otra terminal, o compartir su contexto con una nueva sesión, reanuda la sesión
- Para un equipo coordinado de sesiones que Claude genera y supervisa, usa equipos de agentes
- Para observar y dirigir muchas sesiones desde un lugar, usa vista de agentes
- Para dirigir una sesión tú mismo desde tu teléfono u otro dispositivo, en lugar de que las sesiones se envíen mensajes entre sí, usa Control Remoto
- Para insertar eventos externos, como resultados de CI o mensajes de chat, en una sesión, usa canales
Enviar un mensaje a otra sesión
Cuando una de tus sesiones aprende algo que otra sesión necesita, como un hallazgo, un estado o una decisión, Claude lo pasa en lugar de que copies y pegues entre terminales. Claude descubre el destino conListAgents y envía con SendMessage, así que nunca llamas a ninguna herramienta tú mismo. Claude puede decidir enviar un mensaje sin ser preguntado, y también puedes solicitar uno.
Para solicitar uno tú mismo, dile a Claude qué quieres que la otra sesión sepa o haga. Este ejemplo es un mensaje que escribes, no un mensaje que Claude envía:
@ seguido de las primeras letras del nombre de la sesión y elige la sesión del typeahead, de la misma manera que @-mencionas un subagente. Requiere Claude Code v2.1.232 o posterior. Claude Code inserta la mención, como @api-worker, y le dice a Claude qué sesión nombra, para que Claude pueda enviar un mensaje a esa sesión sin listar primero tus sesiones. Este mensaje nombra el destino con una mención:
- Una sesión más allá de esta máquina: una sesión en la nube o Control Remoto aparece en el typeahead solo después de que Claude haya listado o enviado mensajes a tus sesiones más allá de esta máquina, así que pídele a Claude que las liste primero.
- Un nombre con un espacio u otros caracteres fuera de letras, dígitos, guiones e guiones bajos: escríbelo entre comillas dobles, como
@"release notes". Cuando eliges la sesión del typeahead, Claude Code inserta las comillas por ti.
Entrega de mensajes
El Claude receptor lee el mensaje entre llamadas de herramientas durante un turno activo, así que una herramienta en ejecución nunca se interrumpe. Cuando la sesión receptora está inactiva, Claude Code inicia un nuevo turno con el mensaje. Un mensaje de otra sesión llega como texto plano. Si menciona un archivo o un recurso MCP con@, Claude ve la mención tal como está escrita y Claude Code no adjunta nada, ya sea que el mensaje inicie un nuevo turno o llegue durante uno. Claude aún puede abrir una ruta mencionada en la máquina receptora con sus propias herramientas, sujeto a los permisos de esa sesión. Antes de v2.1.251, una mención @ en un mensaje que inició un nuevo turno adjuntaba el archivo o recurso MCP en el lado receptor.
Claude Code rechaza un mensaje en los siguientes casos:
- El mensaje está por encima del límite de tamaño. Claude Code lo rechaza en la sesión de envío, antes de que se vaya.
- Una ráfaga rápida a una sesión en esta máquina ha alcanzado lo que esa bandeja de entrada de sesión acepta. Claude Code rechaza más mensajes a esa sesión.
- El destino de respuesta en esta máquina falla una verificación de seguridad, como un destino con enlace simbólico o un punto final que no es el proceso esperado. Rechazar enviar un mensaje entre sesiones lista estas verificaciones.
- Claude dirige el mensaje al nombre de esta propia sesión, como se describe en Ver qué sesiones Claude puede alcanzar.
- Entregado: Claude Code pasa el mensaje al Claude receptor.
- Retenido: Claude Code deja el mensaje de lado sin entregar. Un mensaje retenido llega a Claude solo cuando lo apruebas o un modo o cambio de configuración posterior lo permite.
- Rechazado: Claude Code descarta el mensaje sin entregarlo.
Obtener un aviso cuando otra sesión se queda inactiva
Claude puede pedirle a una de tus sesiones en esta máquina que envíe un aviso cuando esa sesión se quede inactiva o salga. Inactivo aquí significa que la sesión terminó un turno sin nada en cola. Úsalo cuando estés esperando una tarea larga en otra sesión y quieras saber cuándo termina en lugar de verificar. Requiere Claude Code v2.1.236 o posterior en ambas sesiones.Solicitar un aviso
Dile a Claude qué estás esperando. Este mensaje solicita un aviso de la sesión de migración:notify_when_idle de la herramienta SendMessage, ya sea adjunta a un mensaje que está enviando de todas formas o por su cuenta. Por su cuenta, Claude Code se suscribe sin iniciar un turno o gastar tokens en la sesión observada, y envía el aviso de inmediato si esa sesión ya está inactiva. Adjunto a un mensaje, Claude Code entrega el mensaje primero y envía el aviso después.
Lo que cada sesión muestra
La sesión observada muestra una línea diciendo que otro proceso pidió ser notificado cuando la sesión esté inactiva. La sesión que pregunta muestra el aviso como una línea que nombra la sesión observada. La línea puede incluir la hora en que terminó el turno de esa sesión y un estado de una línea de ese turno. Si la sesión que pregunta está inactiva, Claude Code inicia un nuevo turno con el aviso.Límites
El aviso es de una sola vez: Claude Code lo envía una vez desde la sesión observada, y ninguna sesión sondea la otra. Si no llega ningún aviso dentro de 12 horas, Claude Code descarta la suscripción y le dice a Claude, para que no siga esperando. Los controles de entrada de cada lado se aplican a un aviso como un mensaje:refuseen cualquier lado: nada llega. La sesión observada descarta la solicitud sin registrar o responder, así que la suscripción expira sin respuesta después de 12 horas, y una sesión que pregunta conrefusenunca se suscribe.holden cualquier lado: el aviso llega con menos. La sesión observada deja fuera el estado de una línea, y la sesión que pregunta muestra el aviso en tu transcripción sin entregarlo a Claude.
notify_when_idle, Claude Code no hace suscripción y le dice así. Cuando Claude pide un aviso de cualquier otro agente, como un compañero, un subagente o una sesión más allá de esta máquina, Claude Code rechaza toda la llamada, incluido cualquier mensaje adjunto, e informa el rechazo a Claude para que pueda reenviar el mensaje sin la solicitud.
Ver qué sesiones Claude puede alcanzar
Claude encuentra el destino de un mensaje por su cuenta, así que no necesitas ejecutar nada antes de pedirle que envíe. Para ver por ti mismo qué sesiones Claude puede alcanzar, ejecuta el comando/list-agents. La primera línea, cuando está presente, es el nombre de esta propia sesión, el que tus otras sesiones usan para enviarle mensajes. Las filas debajo son las sesiones que Claude puede alcanzar:
- Subagentes: agentes que se ejecutan dentro de la sesión actual.
- Compañeros: los propios compañeros de equipo de agentes de esta sesión. Antes de v2.1.239, los compañeros no aparecían en el listado, aunque Claude ya podía enviarles mensajes por nombre.
- Tus otras sesiones locales: sesiones de Claude Code que se ejecutan en la misma máquina, incluidas sesiones en segundo plano. Una sesión aparece solo cuando vincula un socket de bandeja de entrada.
- Tus sesiones en la nube: tus sesiones de Claude Code en la web, mostradas mientras esta sesión está conectada a Control Remoto. Claude Code las etiqueta como
clouden el listado. - Tus sesiones de Control Remoto en otras máquinas: mostradas mientras esta sesión está conectada a Control Remoto, y etiquetadas como
Remote Control. Claude Code muestraofflinecomo el estado de una sesión cuya conexión de Control Remoto se ha caído.
/list-agents, sin cambiar lo que Claude mismo ve cuando busca una sesión para enviar un mensaje:
- Directorios de trabajo: deja fuera el directorio de trabajo de cada sesión local.
- Nombres de sesión: deja fuera cualquier nombre de sesión que no pueda atribuir a una persona, así que una fila dejada sin nombre lee
(unnamed session). - La primera línea: deja fuera la línea con el nombre de esta propia sesión a menos que escribas ese nombre en esta terminal, con
--nameo con/renamey el nombre, desde que lanzaste o reanudaste la sesión por última vez.
/rename seguido de un nombre no utilizado en el teclado de una sesión propia le da a esa sesión un nombre que aparece en la salida.
Claude Code lee tus listas de sesiones en la nube y Control Remoto más nuevas primero y se detiene después de un número acotado de páginas para cada una. Si tu cuenta tiene más de esas sesiones de las que caben, Claude Code no lista las más antiguas, y Claude no puede enviarles mensajes por nombre. Cuando esto sucede, Claude Code lo dice en el listado, y Claude ve la misma nota cuando envía un mensaje.
Claude dirige una sesión más allá de esta máquina por nombre, igual que una sesión local. Consulta Enviar mensajes a sesiones en otras máquinas para ver cómo viajan esos mensajes.
Una sesión responde al nombre que estableces con el comando /rename o la bandera --name. Cuando no estableces uno, Claude Code nombra la sesión en sí. Para una sesión interactiva, ese es el nombre mostrado en listados de sesiones en ejecución.
Cuando renombras una sesión, Claude Code también actualiza el registro compartido que tus otras sesiones usan para buscar el nombre de la sesión. Si no puede actualizar ese registro, te advierte en la salida /rename que otras sesiones aún pueden mostrar el nombre antiguo. Ejecuta la sesión con --debug, y Claude Code registra la causa de la actualización fallida.
Cuando renombras una sesión, o inicias o reanudas una interactiva, con un nombre que otra sesión activa en esta máquina ya usa, Claude Code deja el nombre con la sesión que ya lo tiene y renombra el tuyo a una variante. Las sesiones aún pueden compartir un nombre, por ejemplo cuando una de ellas ejecuta una versión anterior de Claude Code o el nombre compartido es uno que Claude Code generó. A menos que esta sesión esté conectada a Control Remoto, Claude Code muestra el directorio de trabajo de cada sesión local en la salida /list-agents, así que puedes distinguir sesiones con el mismo nombre cuando se ejecutan en directorios diferentes. Claude dirige el mensaje de una de dos maneras, dependiendo de cuántas sesiones activas respondan al nombre:
- Una sesión responde al nombre: Claude Code entrega el mensaje solo en el nombre.
- Varias sesiones comparten el nombre, o Claude Code no pudo verificar en todas partes donde se ejecutan tus sesiones: Claude agrega un identificador corto a cada fila de su listado y usa el identificador en la dirección.
Enviar mensajes a sesiones en otras máquinas
Cómo viaja un mensaje, y si pasa por servidores de Anthropic, depende de dónde se ejecuta la sesión de destino:
Iniciar una conversación con una sesión en otra de tus máquinas requiere Claude Code v2.1.225 o posterior y un destino que aparezca en el listado. Antes de v2.1.225, Claude solo podía responder a un mensaje que llegaba de uno.
La entrega en la misma máquina funciona dondequiera que la característica esté habilitada. Cada sesión se registra en archivos en el disco. Cuando Claude lista o envía mensajes a tus sesiones locales, Claude Code lee esos archivos para encontrar las sesiones, así que dos sesiones pueden alcanzarse mutuamente solo cuando pueden ver los mismos archivos.
Un contenedor tiene su propio sistema de archivos, así que una sesión dentro de él y una sesión en el host no pueden alcanzarse mutuamente. Dos sesiones dentro del mismo contenedor aún pueden enviar mensajes entre sí, incluido en un ejecutor auto-hospedado. Una sesión dentro de WSL 2 y una sesión nativa de Windows en la misma computadora tampoco pueden alcanzarse mutuamente, porque se registran bajo directorios de inicio diferentes y escuchan en tipos de socket diferentes.
Mientras esta sesión está conectada a Control Remoto, cuando envías un mensaje a una sesión en otra de tus máquinas, Claude Code muestra el mensaje en la conversación de esa sesión bajo el nombre de Control Remoto de esta sesión. El Claude en esa máquina puede responder a ese nombre. Por ejemplo, cuando esta sesión está conectada a Control Remoto como
laptop-graceful-unicorn y envías un mensaje a tu escritorio, ves el mensaje en la sesión de escritorio bajo laptop-graceful-unicorn.
Si esta sesión no está conectada a Control Remoto cuando Claude envía a una sesión más allá de esta máquina, el mensaje aún se va, pero sin una dirección de respuesta, así que el Claude receptor no puede responder. Claude es informado de esto cuando envía.
Para requerir tu aprobación antes de que cualquier mensaje vaya más allá de esta máquina, establece isolatePeerMachines.
Cómo una sesión trata un mensaje entrante
Cuando la sesión A envía un mensaje a la sesión B, Claude Code le dice al Claude de B que el mensaje vino de otra sesión, no de ti, y limita lo que el mensaje puede hacer:- No puede aprobar nada: un mensaje de otra sesión nunca cuenta como tu consentimiento, así que no puede responder a un mensaje de permiso pendiente en tu nombre.
- No puede cambiar configuración: Claude Code instruye al Claude receptor a nunca cambiar configuraciones de permisos,
CLAUDE.mdu otra configuración porque otra sesión lo pidió. - Los comandos no se ejecutan: un comando en el texto del mensaje, como
/compact, llega como texto plano. Claude Code nunca lo ejecuta. - Los mensajes de permiso aún se disparan: si actuar sobre el mensaje requiere un permiso que la sesión receptora no tiene, ves el mismo mensaje que verías para cualquier otro trabajo.
Cómo se ve un mensaje
Cuando llega un mensaje, Claude Code lo muestra en la conversación como una vista previa de una línea atenuada, y la línea de vista previa permanece en la conversación después. La vista previa lleva el nombre del remitente y la primera línea del mensaje, cortada con… cuando es larga, como › Message from @api-worker: Schema migration finished (ctrl+o to expand). Antes de v2.1.247, Claude Code mostraba el mensaje que llegaba en su totalidad en lugar de una vista previa.
Cualquiera de estos muestra el texto completo:
- Presiona
Ctrl+Opara abrir el visor de transcripción y lee el texto completo bajo el nombre de sesión del remitente. - En una sesión iniciada con
--verbose, Claude Code muestra el texto completo en lugar de la vista previa.
@ en el texto.
Un mensaje que un subagente escribió llega bajo el nombre de la sesión de envío, con el subagente identificado en el texto del mensaje. Una respuesta a él llega a la conversación principal de esa sesión, no al subagente.
Este ejemplo es un mensaje que un Claude escribió a otro, tal como su texto completo se lee cuando lo expandes:
Controlar mensajes entrantes
EstablececrossSessionInbound para elegir qué hace una sesión con los mensajes que llegan de tus otras sesiones:
Más allá de editar un archivo de configuración, puedes seleccionar el valor en la fila
/config Mensajes de tus otras sesiones. Claude Code escribe el valor que seleccionas en tu configuración de usuario. La fila requiere Claude Code v2.1.232 o posterior y no aparece mientras la configuración administrada o la bandera --settings establece la clave, ya que un valor de configuración de usuario no se aplicaría entonces. Claude Code rechaza el atajo /config crossSessionInbound=value para esta clave.
Para ver qué valor se aplica, sigue las reglas de precedencia crossSessionInbound en la referencia de configuración. Cuando no se aplica ningún valor, Claude Code decide por mensaje de las dos clases de modo de permiso de las sesiones. Agrupa sesiones que omiten mensajes de permiso en una clase, y todas las otras sesiones en la otra. El modo Plan cuenta como omisión en sesiones con permisos de omisión disponibles, y auto, acceptEdits y dontAsk cuentan como mensajes:
- La sesión receptora solicita permisos: Claude Code entrega cada mensaje. Retiene uno para tu aprobación solo cuando la sesión de envío se identifica como omitiendo mensajes de permiso.
- La sesión receptora omite mensajes de permiso: Claude Code retiene cada mensaje para tu aprobación. Entrega uno solo cuando la sesión de envío se identifica como también omitiendo.
- Aprobar entrega ese mensaje a Claude.
- Denegar, o descartar el diálogo, lo descarta.
- Cuando el diálogo permanece sin respuesta pasado el plazo
dialogExpiry, Claude Code lo cierra y descarta el mensaje. El plazo predeterminado es cinco minutos. Mientras ninguna terminal está adjunta a una sesión en segundo plano, Claude Code deja el diálogo abierto pasado el plazo. Después de que adjuntes, Claude Code cierra el diálogo y descarta el mensaje solo si permanece sin respuesta durante un período de plazo completo. - Si la clase de modo de permiso de esta sesión cambia mientras los mensajes están retenidos, Claude Code re-aplica las reglas de entrada, entrega los mensajes que ahora acepta, y muestra un aviso.
- Si un cambio de configuración hace que
refusese aplique mientras los mensajes están retenidos, Claude Code descarta cada mensaje retenido e informa un rechazo a cada remitente que puede alcanzar.
Sesiones no interactivas
Claude Code vincula un socket de bandeja de entrada para una sesiónclaude -p como una interactiva, así que un trabajador -p de larga duración puede recibir mensajes y aparece en el listado. Cuando inicias una sesión en modo desnudo, Claude Code no vincula el socket, así que esa sesión no puede recibir mensajes y no aparece en la lista de agentes.
Una sesión -p no puede mostrar el diálogo de aprobación. Cuando el valor predeterminado de entrada retiene un mensaje allí, Claude Code lo mantiene para el mismo plazo dialogExpiry que el diálogo usa, cinco minutos por defecto:
- Antes del plazo: si un cambio de modo o configuración permite el mensaje, Claude Code lo entrega.
- Pasado el plazo: Claude Code descarta el mensaje e informa que expiró a un remitente que puede alcanzar.
dialogExpiry a "never" para mantener los mensajes retenidos por defecto hasta que la sesión termine. Un mensaje retenido por una configuración explícita hold no expira; Claude Code lo entrega solo cuando un accept se aplica después.
Cuando la sesión termina con mensajes aún retenidos, Claude Code los informa como expirados a cada remitente que puede alcanzar. Antes de v2.1.225, no se aplicaba plazo en una sesión -p: un mensaje retenido permanecía retenido a menos que un cambio de modo de permiso durante la ejecución lo entregara, y una sesión que terminaba con mensajes retenidos no reportaba nada a sus remitentes.
Para permitir que un trabajador -p tome mensajes desatendido, inicia con crossSessionInbound establecido a accept en su valor --settings. Un accept en tu configuración de usuario también funciona pero se aplica a cada sesión que ejecutas.
El socket de bandeja de entrada de la sesión
Lee esta sección cuando una sesión que esperas no está en la lista de agentes, cuando quieres que un script o hook publique en una sesión, o cuando un comando sandboxed no puede alcanzar el socket. Claude Code vincula un socket de bandeja de entrada para cada sesión con mensajería entre sesiones habilitada, donde otras sesiones en la máquina entregan mensajes. El socket es un socket de dominio Unix en macOS y Linux, incluido Linux dentro de WSL 2, y una tubería con nombre en Windows nativo. Para qué tipos de sesión vinculan uno, consulta Sesiones no interactivas. Puedes encontrar la ruta del socket en dos lugares:/statusla muestra en la filaPeer address. La ruta tiene el prefijouds:.- Claude Code la exporta a hooks y comandos Bash como la variable de entorno
CLAUDE_CODE_MESSAGING_SOCKET:- En una sesión que inicia con mensajería activada, Claude Code exporta la variable antes de que cualquier hook se ejecute, incluido
SessionStart. - Cada sesión exporta su propio socket, nunca uno heredado de una sesión padre.
- En una sesión que inicia con mensajería activada, Claude Code exporta la variable antes de que cualquier hook se ejecute, incluido
/tmp/cc-socks-<uid>, en su lugar. Cuando no puede aceptar ningún directorio, la sesión se ejecuta sin una bandeja de entrada: Claude Code muestra un aviso, /status muestra unavailable y la razón en su fila Peer address, y el registro --debug registra el rechazo completo.
Junto a la ruta del socket, Claude Code exporta un token por sesión como CLAUDE_CODE_MESSAGING_TOKEN. Un script que publica en el socket de su propia sesión puede enviar {"type":"auth","token":"<token>"} como la primera línea de su conexión, donde <token> es el valor de CLAUDE_CODE_MESSAGING_TOKEN. Si Claude Code requiere la línea depende de la plataforma:
- macOS y Linux, incluido WSL 2: la línea es opcional. Claude Code acepta una conexión con o sin ella.
- Windows nativo: la línea es requerida. Claude Code cierra cualquier conexión cuya primera línea no sea una línea de autenticación válida y no entrega nada de esa conexión.
- Mensajes de propio-hijo: cuando no se aplica ningún valor
crossSessionInbound, Claude Code entrega un mensaje que verifica vino de los procesos hijo de la sesión, como un hook o comando Bash que publica de vuelta al socket de su propia sesión.- En Linux, incluido dentro de WSL 2, Claude Code puede verificar por evidencia de proceso incluso para un hijo que ya ha salido. En macOS puede verificar de esa manera solo mientras el proceso de publicación aún se está ejecutando, y en un contenedor donde Claude Code se ejecuta como ID de proceso 1 no tiene evidencia de proceso en absoluto. En Windows nativo tampoco la tiene.
- En macOS después de que el proceso de publicación ha salido y en contenedores donde Claude Code se ejecuta como ID de proceso 1, esa evidencia de proceso falta, y Claude Code en su lugar verifica un hijo que envió el
CLAUDE_CODE_MESSAGING_TOKENexportado de la sesión en la línea de autenticación que abrió su conexión. En Windows nativo, ese token es la única forma en que Claude Code verifica un mensaje de propio-hijo. - Cuando Claude Code no puede verificar de ninguna manera, trata el mensaje como cualquier otro que no afirma ninguna clase de permiso, así que una sesión que omite mensajes de permiso lo retiene para tu aprobación.
- Sesiones sandboxed: controla si un comando Bash puede alcanzar el socket desde dentro del sandbox con la configuración de socket Unix del sandbox,
sandbox.network.allowAllUnixSocketsysandbox.network.allowUnixSockets.
Restringir mensajería entre sesiones
Más allá de los valores predeterminados por mensaje, puedes estrechar la mensajería de dos maneras. Requiere tu aprobación antes de que cualquier mensaje salga de la máquina, o desactiva la mensajería para una sesión u organización.Requerir aprobación para mensajes entre máquinas
EstableceisolatePeerMachines a true para requerir tu aprobación explícita antes de que cualquier SendMessage alcance una sesión más allá de esta máquina:
bypassPermissions, que omite mensajes de permiso ordinarios. Un true de cualquier ámbito de configuración se aplica, así que un archivo de proyecto registrado puede activar el requisito pero no desactivarlo. Claude Code no solicita mensajes entre sesiones en la misma máquina.
Desactivar mensajería entre sesiones
Recibir y enviar son controles separados, así que desactiva la dirección que necesites, o ambas. UsacrossSessionInbound para mensajes que llegan, y reglas de permisos para lo que Claude aquí puede enviar o listar:
- Dejar de recibir: establece
crossSessionInboundarefuse, y Claude Code descarta mensajes de par entrantes sin entregarlos. Desde configuración de proyecto o local,refusese aplica sobre todas las otras fuentes, y desde tu configuración de usuario se aplica a menos que la configuración administrada o la bandera--settingsestablezcan un valor. - Dejar de enviar y listar: agrega reglas de permiso de denegación específicas de herramienta que nombren
SendMessageyListAgents. Ambas toman el nombre de herramienta desnudo sin especificador.
refuse:
SendMessage también elimina la mensajería a subagentes y compañeros de equipo de agentes, ya que la misma herramienta sirve a ambos. Una sesión que rechaza no muestra cambio visible, en su propio /status o en los listados de otras sesiones en la misma máquina, así que para confirmarlo, verifica los archivos de configuración que se aplican a esa sesión en lugar de su estado.
Disponibilidad
La mensajería entre sesiones requiere Claude Code v2.1.224 o posterior en macOS, Linux y WSL 2, y v2.1.234 o posterior en Windows nativo. La disponibilidad, y qué sesiones Claude puede enviar mensajes, también dependen de tu sistema operativo, proveedor y configuración:- Sistema operativo: disponible en macOS, Windows y Linux, incluido Linux dentro de WSL 2.
-
Sesiones en esta máquina: disponible en cada proveedor, incluido Amazon Bedrock, Claude Platform en AWS, Google Cloud’s Agent Platform y Microsoft Foundry, y en sesiones que se ejecutan con obtención de bandera de característica desactivada. En esos proveedores, y con obtención de bandera desactivada, la mensajería en la misma máquina requiere Claude Code v2.1.248 o posterior. Claude Code entrega estos mensajes sobre un socket por sesión en tu máquina, nunca a través de servidores de Anthropic.
Para evitar que una sesión los reciba, establece
crossSessionInboundarefuse. - Sesiones más allá de esta máquina: Claude encuentra tus sesiones de Claude Code en la web y tus sesiones en otras máquinas desde una sesión que está conectada a Control Remoto, que necesita un inicio de sesión en claude.ai como autenticación activa de esta sesión y los otros requisitos de Control Remoto. Claude no puede encontrar esas sesiones con una clave API o en Amazon Bedrock, Claude Platform en AWS, Google Cloud’s Agent Platform y Microsoft Foundry.
/list-agents, también disponible como /peers. El resultado separa una sesión que no tiene la característica de una sesión donde algo más estrecho bloqueó un mensaje, como una herramienta SendMessage faltante o un envío rechazado:
/list-agentsno se reconoce: la sesión no tiene mensajería entre sesiones. Trabaja a través de los requisitos anteriores, comenzando conclaude --versionpara el requisito de versión./list-agentsfunciona pero un envío no llegó: la mensajería está activada, y algo más estrecho se aplica:- Reglas de denegación: una regla de permiso de denegación específica de herramienta elimina las herramientas
SendMessageyListAgents. - Controles de entrada: los controles de entrada de la sesión receptora pueden retener o descartar lo que envías.
- Sesión en la nube faltante: una sesión en la nube aparece solo mientras esta sesión está conectada a Control Remoto.
- Sesión en otra máquina faltante: una sesión en otra de tus máquinas aparece solo cuando se ejecuta con Control Remoto y esta sesión también está conectada.
- Sesión en la nube o en otra máquina más antigua faltante: Claude Code lee esas listas de sesiones más nuevas primero y se detiene después de un número acotado de páginas, así que Claude no puede enviar un mensaje a una sesión que cayó pasado ellas por nombre.
- Iniciando una conversación: Enviar mensajes a sesiones en otras máquinas cubre iniciar una conversación con una sesión más allá de esta máquina.
- Reglas de denegación: una regla de permiso de denegación específica de herramienta elimina las herramientas
/status también muestra una fila Peer address con la dirección de bandeja de entrada propia de la sesión, o unavailable y la razón cuando Claude Code no pudo configurar una bandeja de entrada.
Limitaciones
Los límites aquí son propiedades del canal de mensajería en sí y se aplican dondequiera que la característica se ejecute. Para brechas de plataforma y proveedor, consulta Disponibilidad en su lugar.- Solo texto plano: Claude envía solo texto plano entre sesiones. Los mensajes de protocolo de equipo de agentes estructurados permanecen dentro de un equipo.
- El tamaño del mensaje en la misma máquina está limitado: Claude Code rechaza un mensaje a una sesión en esta máquina una vez que su forma serializada pasa aproximadamente un millón de caracteres. El rechazo nombra los tamaños exactos. Nada llega a la sesión receptora.
- Las ráfagas rápidas a una sesión se rechazan en el remitente: una vez que una ráfaga rápida de mensajes a una sesión en esta máquina alcanza lo que esa bandeja de entrada acepta, Claude Code rechaza más envíos en la sesión de envío. El rechazo nombra la ráfaga y le dice a Claude que agrupe el resto en un mensaje o espere. Antes de v2.1.236, Claude Code reportaba esos envíos como enviados mientras la sesión receptora los descartaba.
- Los bucles de mensajes se limitan: en la sesión receptora, Claude Code limita la velocidad de mensajes repetidos por remitente, descarta repeticiones idénticas que llegan dentro de una ventana corta, y pone en cola como máximo 50 mensajes aceptados para que Claude lea. Un bucle de mensajes entre dos sesiones por lo tanto se detiene por sí solo. Cuando el límite de velocidad, verificación de repetición o límite de cola descarta un mensaje de una sesión interactiva en esta máquina, Claude Code le dice a esa sesión cuál lo descartó y le dice a su Claude que no reenvíe de inmediato.
Recursos relacionados
- Subagentes y equipos de agentes: mensajería dentro de una única sesión o equipo
- Agentes en segundo plano: despacha y monitorea las sesiones paralelas que podrías enviar mensajes
- Control Remoto: conecta esta sesión para alcanzar tus sesiones en otras máquinas
- Configuración:
crossSessionInbound,isolatePeerMachinesydialogExpiry - Modos de permiso: los modos detrás de las dos clases del valor predeterminado de entrada
- Referencia de herramientas: las filas
ListAgentsySendMessageen la tabla de herramientas - Ejecutar agentes en paralelo: compara las formas en que Claude Code ejecuta múltiples agentes