Mensagens entre sessões requerem Claude Code v2.1.224 ou posterior em macOS e Linux, incluindo Linux dentro do WSL 2. No Windows nativo, requer Claude Code v2.1.234 ou posterior. Quando uma sessão atende aos requisitos, as mensagens estão ativadas sem nada para habilitar. Consulte Disponibilidade para requisitos de provedor e como confirmar que uma sessão possui isso.
ListAgents para descobrir quais agentes ele pode alcançar, e SendMessage para entregar uma mensagem a um deles pelo nome. Com a mesma ferramenta SendMessage, Claude também pode enviar mensagens para subagentes e colegas de equipe de agentes dentro de uma única sessão ou equipe. Esta página cobre mensagens entre suas sessões independentes.
Quando usar cross-session messaging
Use messaging quando uma de suas sessões tem algo que outra sessão precisa no meio da tarefa. Claude pode enviar uma mensagem por conta própria quando vê a necessidade, por exemplo após fazer uma mudança que afeta o trabalho que outra sessão está fazendo, ou você pode pedir que envie uma. Os casos comuns:- Entregar uma descoberta: quando uma sessão descobre uma mudança quebrada ou toma uma decisão, Claude a resume para a sessão trabalhando na área afetada, em vez de você re-explicá-la lá.
- Coordenar worktrees paralelos: quando sessões trabalham o mesmo repositório em worktrees separadas, Claude pode dizer às outras sessões o que foi entregue.
- Obter status de trabalho de longa duração: ter uma migração ou execução de teste relatar de volta para a sessão que você está observando, ou pedir você mesmo de lá. Se essa sessão estiver nesta máquina, Claude também pode pedir a ela um aviso quando ela próxima ficar ociosa ou sair.
- Mensagem entre máquinas: alcance uma de suas sessões em outra máquina ou na web.
- Para continuar uma conversa em outro terminal, ou compartilhar seu contexto com uma nova sessão, retome a sessão
- Para uma equipe coordenada de sessões que Claude gera e supervisiona, use equipes de agentes
- Para observar e direcionar muitas sessões de um lugar, use visualização de agentes
- Para direcionar uma sessão você mesmo do seu telefone ou outro dispositivo, em vez de ter sessões se enviando mensagens, use Controle Remoto
- Para enviar eventos externos, como resultados de CI ou mensagens de chat, para uma sessão, use canais
Mensagem para outra sessão
Quando uma de suas sessões aprende algo que outra sessão precisa, como uma descoberta, um status ou uma decisão, Claude a passa em vez de você copiar e colar entre terminais. Claude descobre o alvo comListAgents e envia com SendMessage, então você nunca chama nenhuma ferramenta você mesmo. Claude pode decidir enviar uma mensagem sem ser solicitado, e você também pode solicitar uma.
Para solicitar uma você mesmo, diga a Claude o que você quer que a outra sessão saiba ou faça. Este exemplo é um prompt que você digita, não uma mensagem que Claude envia:
@ seguido pelas primeiras letras do nome da sessão e escolha a sessão do typeahead, da mesma forma que você @-menciona um subagente. Requer Claude Code v2.1.232 ou posterior. Claude Code insere a menção, como @api-worker, e diz a Claude qual sessão ela nomeia, então Claude pode enviar mensagem para essa sessão sem listar suas sessões primeiro. Este prompt nomeia o alvo com uma menção:
- Uma sessão além desta máquina: uma sessão na nuvem ou Controle Remoto aparece no typeahead apenas depois que Claude listou ou enviou mensagem para suas sessões além desta máquina, então peça a Claude para listá-las primeiro.
- Um nome com espaço ou outros caracteres fora de letras, dígitos, hífens e sublinhados: digite-o entre aspas duplas, como
@"release notes". Quando você escolhe a sessão do typeahead, Claude Code insere as aspas para você.
Entrega de mensagem
O Claude receptor lê a mensagem entre chamadas de ferramenta durante um turno ativo, então uma ferramenta em execução nunca é interrompida. Quando a sessão receptora está ociosa, Claude Code inicia um novo turno com a mensagem. Uma mensagem de outra sessão chega como texto simples. Se mencionar um arquivo ou um recurso MCP com@, Claude vê a menção como escrita e Claude Code não anexa nada, se a mensagem inicia um novo turno ou chega durante um. Claude ainda pode abrir um caminho mencionado na máquina receptora com suas próprias ferramentas, sujeito às permissões dessa sessão. Antes de v2.1.251, uma menção @ em uma mensagem que iniciou um novo turno anexava o arquivo ou recurso MCP no lado receptor.
Claude Code recusa uma mensagem nos seguintes casos:
- A mensagem está acima do limite de tamanho. Claude Code a recusa na sessão de envio, antes de sair.
- Uma rajada rápida para uma sessão nesta máquina atingiu o que a caixa de entrada dessa sessão aceita. Claude Code recusa mais mensagens para essa sessão.
- O alvo de resposta nesta máquina falha em uma verificação de segurança, como um alvo com link simbólico ou um endpoint que não é o processo esperado. Recusando enviar uma mensagem cross-session lista essas verificações.
- Claude endereça a mensagem ao nome da própria sessão, conforme descrito em Veja quais sessões Claude pode alcançar.
- Entregue: Claude Code passa a mensagem para o Claude receptor.
- Retida: Claude Code coloca a mensagem de lado não entregue. Uma mensagem retida alcança Claude apenas quando você a aprova ou uma mudança de modo ou configurações posterior a permite.
- Recusada: Claude Code descarta a mensagem sem entregá-la.
Obter um aviso quando outra sessão fica ociosa
Claude pode pedir a uma de suas sessões nesta máquina para enviar de volta um aviso quando essa sessão próxima ficar ociosa ou sair. Ocioso aqui significa que a sessão terminou um turno sem nada na fila. Use quando você está esperando uma tarefa longa em outra sessão e quer ouvir quando terminar em vez de verificar. Requer Claude Code v2.1.236 ou posterior em ambas as sessões.Pedir um aviso
Diga a Claude o que você está esperando. Este prompt pede um aviso da sessão de migração:notify_when_idle da ferramenta SendMessage, anexada a uma mensagem que está enviando de qualquer forma ou por conta própria. Por conta própria, Claude Code se inscreve sem iniciar um turno ou gastar tokens na sessão observada, e envia o aviso imediatamente se essa sessão já estiver ociosa. Anexado a uma mensagem, Claude Code entrega a mensagem primeiro e envia o aviso depois.
O que cada sessão mostra
A sessão observada mostra uma linha dizendo que outro processo pediu para ser informado quando a sessão próxima ficar ociosa. A sessão solicitante mostra o aviso como uma linha nomeando a sessão observada. A linha pode incluir a hora em que o turno dessa sessão terminou e um status de uma linha desse turno. Se a sessão solicitante estiver ociosa, Claude Code inicia um novo turno com o aviso.Limites
O aviso é único: Claude Code o envia uma vez da sessão observada, e nenhuma sessão sonda a outra. Se nenhum aviso chegar dentro de 12 horas, Claude Code descarta a inscrição e diz a Claude, então não fica esperando. Os controles de entrada de cada lado se aplicam a um aviso como uma mensagem:refuseem qualquer lado: nada chega. A sessão observada descarta a solicitação sem registrar ou responder a ela, então a inscrição expira sem resposta após 12 horas, e uma sessão solicitante comrefusenunca se inscreve.holdem qualquer lado: o aviso chega com menos. A sessão observada deixa o status de uma linha de fora, e a sessão solicitante mostra o aviso em sua transcrição sem entregá-lo a Claude.
notify_when_idle, Claude Code não faz inscrição e diz a ele assim. Quando Claude pede um aviso de qualquer outro agente, como um colega, um subagente ou uma sessão além desta máquina, Claude Code recusa a chamada inteira, incluindo qualquer mensagem anexada a ela, e relata a recusa a Claude para que possa reenviar a mensagem sem a solicitação.
Veja quais sessões Claude pode alcançar
Claude encontra o alvo de uma mensagem por conta própria, então você não precisa executar nada antes de pedir que envie. Para ver você mesmo quais sessões Claude pode alcançar, execute o comando/list-agents. A primeira linha, quando presente, é o nome da própria sessão, o que suas outras sessões usam para enviá-la mensagem. As linhas abaixo são as sessões que Claude pode alcançar:
- Subagentes: agentes executando dentro da sessão atual.
- Colegas: os próprios colegas de equipe de agentes dessa sessão. Antes de v2.1.239, colegas não apareciam na listagem, embora Claude já pudesse enviá-los mensagem pelo nome.
- Suas outras sessões locais: sessões Claude Code executando na mesma máquina, incluindo sessões em background. Uma sessão aparece apenas quando vincula um socket de caixa de entrada.
- Suas sessões na nuvem: suas sessões Claude Code na web, mostradas enquanto essa sessão está conectada a Controle Remoto. Claude Code as rotula
cloudna listagem. - Suas sessões Controle Remoto em outras máquinas: mostradas enquanto essa sessão está conectada a Controle Remoto, e rotuladas
Remote Control. Claude Code mostraofflinecomo o status de uma sessão cuja conexão Controle Remoto caiu.
/list-agents, sem mudar o que Claude em si vê quando procura uma sessão para enviar mensagem:
- Diretórios de trabalho: deixa de fora o diretório de trabalho de cada sessão local.
- Nomes de sessão: deixa de fora qualquer nome de sessão que não possa atribuir a uma pessoa, então uma linha deixada sem nome lê
(unnamed session). - A primeira linha: deixa de fora a linha com o nome dessa própria sessão a menos que você tenha digitado esse nome neste terminal, com
--nameou com/renamee o nome, desde que iniciou ou retomou a sessão pela última vez.
/rename seguido de um nome não utilizado em um teclado da própria sessão dá a essa sessão um nome que aparece na saída.
Claude Code lê suas listas de sessão na nuvem e Controle Remoto mais recentes primeiro e para após um número limitado de páginas para cada. Se sua conta tiver mais dessas sessões do que cabem, Claude Code não lista as mais antigas, e Claude não pode enviá-las mensagem pelo nome. Quando isso acontece, Claude Code diz assim na listagem, e Claude vê a mesma nota quando envia uma mensagem.
Claude endereça uma sessão além desta máquina pelo nome, da mesma forma que uma sessão local. Veja Mensagem para sessões em outras máquinas para como essas mensagens viajam.
Uma sessão responde ao nome que você define com o comando /rename ou a flag --name. Quando você não define um, Claude Code nomeia a sessão em si. Para uma sessão interativa, esse é o nome mostrado em listagens de sessões em execução.
Quando você renomeia uma sessão, Claude Code também atualiza o registro compartilhado que suas outras sessões usam para procurar o nome da sessão. Se não conseguir atualizar esse registro, avisa você na saída /rename que outras sessões ainda podem mostrar o nome antigo. Execute a sessão com --debug, e Claude Code registra a causa da atualização falhada.
Quando você renomeia uma sessão, ou inicia ou retoma uma interativa, com um nome que outra sessão ao vivo nesta máquina já usa, Claude Code deixa o nome com a sessão que já o tem e renomeia o seu para uma variante. Sessões ainda podem compartilhar um nome, por exemplo quando uma delas executa uma versão anterior de Claude Code ou o nome compartilhado é um que Claude Code gerou. A menos que essa sessão esteja conectada a Controle Remoto, Claude Code mostra o diretório de trabalho de cada sessão local na saída /list-agents, então você pode distinguir sessões com mesmo nome quando executam em diretórios diferentes. Claude endereça a mensagem de uma das duas formas, dependendo de quantas sessões ao vivo respondem ao nome:
- Uma sessão responde ao nome: Claude Code entrega a mensagem apenas no nome.
- Várias sessões compartilham o nome, ou Claude Code não conseguiu verificar em todos os lugares onde suas sessões executam: Claude adiciona um identificador curto a cada linha de sua listagem e usa o identificador no endereço.
Mensagem para sessões em outras máquinas
Como uma mensagem viaja, e se passa por servidores Anthropic, depende de onde a sessão alvo executa:
Iniciar uma conversa com uma sessão em outra de suas máquinas requer Claude Code v2.1.225 ou posterior e um alvo que aparece na listagem. Antes de v2.1.225, Claude só podia responder a uma mensagem que chegou de uma.
Você pode enviar mensagem para uma sessão mostrada como
offline na listagem, uma cuja conexão Controle Remoto caiu. O envio passa, mas a mensagem chega apenas depois que a máquina dessa sessão se reconecta. Claude é informado disso quando envia.
A entrega na mesma máquina funciona onde quer que o recurso esteja habilitado. Cada sessão se registra em arquivos no disco. Quando Claude lista ou envia mensagem para suas sessões locais, Claude Code lê esses arquivos para encontrar as sessões, então duas sessões podem alcançar uma à outra apenas quando conseguem ver os mesmos arquivos.
Um contêiner tem seu próprio sistema de arquivos, então uma sessão dentro dele e uma sessão no host não podem alcançar uma à outra. Duas sessões dentro do mesmo contêiner ainda podem enviar mensagens uma à outra, incluindo em um executor auto-hospedado. Uma sessão dentro de WSL 2 e uma sessão Windows nativa no mesmo computador também não podem alcançar uma à outra, porque se registram em diretórios home diferentes e escutam em tipos de socket diferentes.
Enquanto essa sessão está conectada a Controle Remoto, quando você envia mensagem para uma sessão em outra de suas máquinas, Claude Code mostra a mensagem na conversa dessa sessão sob o nome Controle Remoto dessa sessão. O Claude naquela máquina pode responder a esse nome. Por exemplo, quando essa sessão está conectada a Controle Remoto como laptop-graceful-unicorn e você envia mensagem para seu desktop, você vê a mensagem na sessão desktop sob laptop-graceful-unicorn.
Se essa sessão não estiver conectada a Controle Remoto quando Claude envia para uma sessão além desta máquina, a mensagem ainda passa, mas sem um endereço de resposta, então o Claude receptor não pode respondê-la. Claude é informado disso quando envia.
Para exigir sua aprovação antes de qualquer mensagem ir além desta máquina, defina isolatePeerMachines.
Como uma sessão trata uma mensagem chegando
Quando a sessão A envia mensagem para a sessão B, Claude Code diz ao Claude de B que a mensagem veio de outra sessão, não de você, e limita o que a mensagem pode fazer:- Não pode aprovar nada: uma mensagem de outra sessão nunca conta como seu consentimento, então não pode responder a um prompt de permissão pendente em seu nome.
- Não pode mudar configuração: Claude Code instrui o Claude receptor nunca mudar configurações de permissão,
CLAUDE.mdou outra configuração porque outra sessão pediu. - Comandos não executam: um comando no texto da mensagem, como
/compact, chega como texto simples. Claude Code nunca o executa. - Prompts de permissão ainda disparam: se agir na mensagem requer uma permissão que a sessão receptora não tem, você vê o mesmo prompt que veria para qualquer outro trabalho.
Como uma mensagem parece
Quando uma mensagem chega, Claude Code a mostra na conversa como uma prévia de uma linha fraca, e a linha de prévia fica na conversa depois. A prévia carrega o nome do remetente e a primeira linha da mensagem, cortada com… quando é longa, como › Message from @api-worker: Schema migration finished (ctrl+o to expand). Antes de v2.1.247, Claude Code mostrava a mensagem chegando em cheio em vez de uma prévia.
Qualquer um desses mostra o texto completo:
- Pressione
Ctrl+Opara abrir o visualizador de transcrição e ler o texto completo sob o nome da sessão do remetente. - Em uma sessão iniciada com
--verbose, Claude Code mostra o texto completo em vez da prévia.
@ no texto.
Uma mensagem que um subagente escreveu chega sob o nome da sessão de envio, com o subagente identificado no texto da mensagem. Uma resposta a ela alcança a conversa principal dessa sessão, não o subagente.
Este exemplo é uma mensagem que um Claude escreveu para outro, como seu texto completo lê quando você o expande:
Controlar mensagens chegando
DefinacrossSessionInbound para escolher o que uma sessão faz com mensagens chegando de suas outras sessões:
Além de editar um arquivo de configurações, você pode selecionar o valor na linha
/config Messages from your other sessions. Claude Code escreve o valor que você seleciona para suas configurações de usuário. A linha requer Claude Code v2.1.232 ou posterior e não aparece enquanto configurações gerenciadas ou a flag --settings define a chave, já que um valor de configurações de usuário não se aplicaria então. Claude Code rejeita o atalho /config crossSessionInbound=value para essa chave.
Para ver qual valor se aplica, siga as regras de precedência crossSessionInbound na referência de configurações. Quando nenhum valor se aplica, Claude Code decide por mensagem das duas classes de modo de permissão das sessões. Agrupa sessões que contornam prompts de permissão em uma classe, e toda outra sessão na outra. Plan mode conta como contornando em sessões com permissões de bypass disponíveis, e auto, acceptEdits e dontAsk contam como solicitando:
- A sessão receptora solicita permissões: Claude Code entrega cada mensagem. Retém uma apenas para sua aprovação quando a sessão de envio se identifica como contornando prompts de permissão.
- A sessão receptora contorna prompts de permissão: Claude Code retém cada mensagem para sua aprovação. Entrega uma apenas quando a sessão de envio se identifica como também contornando.
- Approve entrega essa mensagem a Claude.
- Deny, ou descartar o diálogo, a descarta.
- Quando o diálogo fica sem resposta após o prazo
dialogExpiry, Claude Code o fecha e descarta a mensagem. O prazo padrão é cinco minutos. - Enquanto nenhum terminal está anexado a uma sessão em background, Claude Code deixa o diálogo aberto após o prazo. Depois que você anexa, se o diálogo fica sem resposta por um período de prazo completo, Claude Code o fecha e descarta a mensagem.
- Se a classe de modo de permissão dessa sessão muda enquanto mensagens estão retidas, Claude Code re-aplica as regras de entrada, entrega as mensagens que agora aceita, e mostra um aviso.
- Se uma mudança de configurações faz
refusese aplicar enquanto mensagens estão retidas, Claude Code descarta cada mensagem retida e relata uma recusa a cada remetente que pode alcançar.
Sessões não-interativas
Claude Code vincula um socket de caixa de entrada para uma sessãoclaude -p como uma interativa, então um worker -p de longa duração pode receber mensagens e aparece na listagem. Quando você inicia uma sessão em modo bare, Claude Code não vincula o socket, então essa sessão não pode receber mensagens e não aparece na lista de agentes.
Uma sessão -p não pode mostrar o diálogo de aprovação. Quando o padrão de entrada retém uma mensagem lá, Claude Code a mantém pelo mesmo prazo dialogExpiry que o diálogo usa, cinco minutos por padrão:
- Antes do prazo: se um modo ou mudança de configurações permite a mensagem, Claude Code a entrega.
- Após o prazo: Claude Code descarta a mensagem e a relata como expirada a um remetente que pode alcançar.
dialogExpiry para "never" para manter mensagens padrão-retidas até a sessão terminar. Uma mensagem retida por uma configuração hold explícita não expira; Claude Code a entrega apenas quando um accept depois se aplica.
Quando a sessão termina com mensagens ainda retidas, Claude Code as relata como expiradas a cada remetente que pode alcançar. Antes de v2.1.225, nenhum prazo se aplicava em uma sessão -p: uma mensagem retida ficava retida a menos que uma mudança de modo de permissão durante a execução a entregasse, e uma sessão que terminava com mensagens retidas não relatava nada a seus remetentes.
Para deixar um worker -p receber mensagens desatendido, inicie-o com crossSessionInbound definido para accept em seu valor --settings. Um accept em suas configurações de usuário também funciona mas se aplica a cada sessão que você executa.
O socket de caixa de entrada da sessão
Leia esta seção quando uma sessão que você espera não está na lista de agentes, quando você quer um script ou hook para postar em uma sessão, ou quando um comando sandboxed não consegue alcançar o socket. Claude Code vincula um socket de caixa de entrada para cada sessão com cross-session messaging habilitado, onde outras sessões na máquina entregam mensagens. O socket é um socket de domínio Unix em macOS e Linux, incluindo Linux dentro de WSL 2, e um pipe nomeado no Windows nativo. Para quais tipos de sessão vinculam um, veja Sessões não-interativas. Você pode encontrar o caminho do socket em dois lugares:/statuso mostra na linhaPeer address. O caminho é prefixado comuds:.- Claude Code o exporta para hooks e comandos Bash como a variável de ambiente
CLAUDE_CODE_MESSAGING_SOCKET:- Em uma sessão que inicia com messaging ativado, Claude Code exporta a variável antes de qualquer hook executar, incluindo
SessionStart. - Cada sessão exporta seu próprio socket, nunca um herdado de uma sessão pai.
- Em uma sessão que inicia com messaging ativado, Claude Code exporta a variável antes de qualquer hook executar, incluindo
/tmp/cc-socks-<uid>, em vez disso. Quando não consegue aceitar nenhum diretório, a sessão executa sem uma caixa de entrada: Claude Code mostra um aviso, /status mostra unavailable e a razão em sua linha Peer address, e o log --debug registra a recusa completa.
Ao lado do caminho do socket, Claude Code exporta um token por sessão como CLAUDE_CODE_MESSAGING_TOKEN. Um script postando para o socket da sua própria sessão pode enviar {"type":"auth","token":"<token>"} como a primeira linha de sua conexão, onde <token> é o valor de CLAUDE_CODE_MESSAGING_TOKEN. Se Claude Code requer a linha depende da plataforma:
- macOS e Linux, incluindo WSL 2: a linha é opcional. Claude Code aceita uma conexão com ou sem ela.
- Windows nativo: a linha é obrigatória. Claude Code fecha qualquer conexão cuja primeira linha não é uma linha de autenticação válida e não entrega nada dessa conexão.
- Mensagens own-child: quando nenhum valor
crossSessionInboundse aplica, Claude Code entrega uma mensagem que verifica veio dos processos filhos da própria sessão, como um hook ou comando Bash postando de volta para o socket da própria sessão.- Em Linux, incluindo dentro de WSL 2, Claude Code pode verificar por evidência de processo mesmo para um filho que já saiu. Em macOS pode verificar assim apenas enquanto o processo de postagem ainda está executando, e em um contêiner onde Claude Code executa como ID de processo 1 não tem evidência de processo. No Windows nativo também não tem.
- Em macOS depois que o processo de postagem saiu e em contêineres onde Claude Code executa como ID de processo 1, essa evidência de processo está faltando, e Claude Code em vez disso verifica um filho que enviou o
CLAUDE_CODE_MESSAGING_TOKENexportado da sessão na linha de autenticação que abriu sua conexão. No Windows nativo, esse token é a única forma que Claude Code verifica uma mensagem own-child. - Quando Claude Code não consegue verificar de nenhuma forma, trata a mensagem como qualquer outra que não afirma nenhuma classe de permissão, então uma sessão que contorna prompts de permissão a retém para sua aprovação.
- Sessões sandboxed: controle se um comando Bash pode alcançar o socket de dentro do sandbox com as configurações de socket Unix do sandbox,
sandbox.network.allowAllUnixSocketsesandbox.network.allowUnixSockets.
Restringir cross-session messaging
Além dos padrões por mensagem, você pode estreitar o messaging de duas formas. Exigir sua aprovação antes de qualquer mensagem sair da máquina, ou desativar o messaging para uma sessão ou uma organização.Exigir aprovação para mensagens cross-machine
DefinaisolatePeerMachines para true para exigir sua aprovação explícita antes de qualquer SendMessage alcançar uma sessão além desta máquina:
bypassPermissions, que pula prompts de permissão ordinários. Um true de qualquer escopo de configurações se aplica, então um arquivo de projeto verificado pode ativar o requisito mas não desativá-lo. Claude Code não solicita para mensagens entre sessões na mesma máquina.
Desativar cross-session messaging
Receber e enviar são controles separados, então desative qualquer direção que você precise, ou ambas. UsecrossSessionInbound para mensagens que chegam, e regras de permissão para o que Claude aqui pode enviar ou listar:
- Parar de receber: defina
crossSessionInboundpararefuse, e Claude Code descarta mensagens peer de entrada sem entregá-las. De configurações de projeto ou local,refusese aplica sobre toda outra fonte, e de suas configurações de usuário se aplica a menos que configurações gerenciadas ou a flag--settingsdefinam um valor. - Parar de enviar e listar: adicione regras de negação de permissão nomeando
SendMessageeListAgents. Ambas pegam o nome da ferramenta simples sem especificador.
refuse:
SendMessage também remove messaging para subagentes e colegas de equipe de agentes, já que a mesma ferramenta serve ambos. Uma sessão recusante mostra nenhuma mudança visível, em seu próprio /status ou nas listagens de outras sessões na mesma máquina, então para confirmar, verifique os arquivos de configurações que se aplicam a essa sessão em vez de seu status.
Disponibilidade
Cross-session messaging requer Claude Code v2.1.224 ou posterior em macOS, Linux e WSL 2, e v2.1.234 ou posterior no Windows nativo. Disponibilidade, e quais sessões Claude pode enviar mensagem, também dependem de seu sistema operacional, provedor e configuração:- Sistema operacional: disponível em macOS, Windows e Linux, incluindo Linux dentro de WSL 2.
-
Sessões nesta máquina: disponível em cada provedor, incluindo Amazon Bedrock, Claude Platform em AWS, Google Cloud’s Agent Platform e Microsoft Foundry, e em sessões que executam com busca de flag de recurso desativada. Naqueles provedores, e com busca de flag desativada, messaging na mesma máquina requer Claude Code v2.1.248 ou posterior. Claude Code entrega essas mensagens sobre um socket por sessão em sua máquina, nunca através de servidores Anthropic.
Para parar uma sessão de recebê-las, defina
crossSessionInboundpararefuse. - Sessões além desta máquina: Claude encontra suas sessões Claude Code na web e suas sessões em outras máquinas de uma sessão que está conectada a Controle Remoto, que precisa de um sign-in claude.ai como autenticação ativa dessa sessão e os outros requisitos Controle Remoto. Claude não consegue encontrar essas sessões com uma chave de API ou em Amazon Bedrock, Claude Platform em AWS, Google Cloud’s Agent Platform e Microsoft Foundry.
/list-agents, também disponível como /peers. O resultado separa uma sessão que não tem o recurso de uma sessão onde algo mais estreito bloqueou uma mensagem, como uma ferramenta SendMessage faltante ou um envio recusado:
/list-agentsnão é reconhecido: a sessão não tem cross-session messaging. Trabalhe através dos requisitos acima, começando comclaude --versionpara o requisito de versão./list-agentsfunciona mas um envio não chegou: messaging está ativado, e algo mais estreito se aplica:- Regras de negação: uma regra de negação de permissão remove as ferramentas
SendMessageeListAgents. - Controles de entrada: os controles de entrada da sessão receptora podem reter ou descartar o que você envia a ela.
- Sessão na nuvem faltando: uma sessão na nuvem aparece apenas enquanto essa sessão está conectada a Controle Remoto.
- Sessão em outra máquina faltando: uma sessão em outra de suas máquinas aparece apenas quando executa com Controle Remoto e essa sessão também está conectada.
- Sessão em outra máquina
offline: uma mensagem para uma sessão listada comoofflinepassa, mas chega apenas depois que a máquina dessa sessão se reconecta. - Sessão na nuvem ou em outra máquina mais antiga faltando: Claude Code lê essas listas de sessão mais recentes primeiro e para após um número limitado de páginas, então Claude não consegue enviar mensagem para uma sessão que caiu além delas pelo nome.
- Iniciando uma conversa: Mensagem para sessões em outras máquinas cobre iniciar uma conversa com uma sessão além desta máquina.
- Regras de negação: uma regra de negação de permissão remove as ferramentas
/status também mostra uma linha Peer address com o endereço de caixa de entrada da própria sessão, ou unavailable e a razão quando Claude Code não conseguiu configurar uma caixa de entrada.
Limitações
Os limites aqui são propriedades do próprio canal de messaging e se aplicam onde quer que o recurso execute. Para lacunas de plataforma e provedor, veja Disponibilidade em vez disso.- Apenas texto simples: Claude envia apenas texto simples entre sessões. Mensagens de protocolo equipe de agentes estruturadas ficam dentro de uma equipe.
- O tamanho da mensagem na mesma máquina é limitado: Claude Code recusa uma mensagem para uma sessão nesta máquina uma vez que sua forma serializada passa cerca de um milhão de caracteres. A recusa nomeia os tamanhos exatos. Nada alcança a sessão receptora.
- Rajadas rápidas para uma sessão são recusadas no remetente: uma vez que uma rajada rápida de mensagens para uma sessão nesta máquina atinge o que a caixa de entrada dessa sessão aceita, Claude Code recusa envios adicionais na sessão de envio. A recusa nomeia a rajada e diz a Claude para agrupar o resto em uma mensagem ou esperar. Antes de v2.1.236, Claude Code relatava esses envios como enviados enquanto a sessão receptora os descartava.
- Loops de mensagem são limitados: na sessão receptora, Claude Code limita a taxa de mensagens repetidas por remetente, descarta repetições idênticas chegando dentro de uma janela curta, e enfileira no máximo 50 mensagens aceitas para Claude ler. Um loop de mensagem entre duas sessões portanto para por conta própria. Quando o limite de taxa, verificação de repetição ou limite de fila descarta uma mensagem de uma sessão interativa nesta máquina, Claude Code diz a essa sessão qual descartou e diz seu Claude não reenviar imediatamente.
Recursos relacionados
- Subagentes e equipes de agentes: messaging dentro de uma única sessão ou equipe
- Agentes em background: despache e monitore as sessões paralelas que você pode enviar mensagem
- Controle Remoto: conecte essa sessão para alcançar suas sessões em outras máquinas
- Configurações:
crossSessionInbound,isolatePeerMachinesedialogExpiry - Modos de permissão: os modos por trás das duas classes do padrão de entrada
- Referência de ferramentas: as linhas
ListAgentseSendMessagena tabela de ferramentas - Executar agentes em paralelo: compare as formas que Claude Code executa múltiplos agentes