SpyBara
Go Premium

cross-session-messaging.md 2026-09-28 22:59 UTC to 2026-09-29 11:57 UTC

This page contains 38 additions and 75 deletions.

2026
Sat 12 03:02 Fri 18 23:58 Mon 28 22:59 Tue 29 11:57

Messaggi tra le tue altre sessioni di Claude Code

Consenti a Claude di elencare e inviare messaggi alle tue altre sessioni di Claude Code su questa macchina, e raggiungi le tue sessioni su altre macchine o nel cloud.

La messaggistica tra sessioni consente a Claude di consegnare un messaggio da una delle tue sessioni di Claude Code a un'altra. Quando una modifica in una sessione interrompe ciò su cui un'altra sta lavorando, Claude può avvertire quella sessione prima che tu te ne accorga. Quando una sessione risolve una domanda su cui un'altra è bloccata, Claude può inviare la risposta attraverso.

Un messaggio è un pezzo di testo che un Claude scrive a un altro, mai la cronologia della conversazione del mittente o i file. Per spostare un'intera conversazione o il suo contesto, riprendi la sessione invece.

Quando utilizzare la messaggistica tra sessioni

Utilizza la messaggistica quando una delle tue sessioni ha qualcosa che un'altra sessione ha bisogno a metà compito. Claude può inviare un messaggio da solo quando vede la necessità, ad esempio dopo aver apportato una modifica che influisce sul lavoro che un'altra sessione sta svolgendo, oppure puoi chiedergli di inviarne uno. I casi comuni sono:

  • Consegna un risultato: quando una sessione scopre un cambiamento che interrompe il funzionamento o prende una decisione, Claude lo riassume per la sessione che lavora sull'area interessata, invece di doverlo rispiegare lì.
  • Coordina worktree paralleli: quando le sessioni lavorano lo stesso repository in worktree separati, Claude può dire alle altre sessioni cosa è stato implementato.
  • Ottieni lo stato dal lavoro a lunga esecuzione: fai in modo che una migrazione o un'esecuzione di test riferisca alla sessione che stai osservando, oppure chiedilo tu stesso da lì. Se quella sessione è su questa macchina, Claude può anche chiederle un avviso quando successivamente diventa inattiva o esce.
  • Messaggi tra macchine: raggiungi una delle tue sessioni su un'altra macchina o sul web.

Inviare un messaggio a un'altra sessione

Quando una delle tue sessioni scopre qualcosa che un'altra sessione ha bisogno di sapere, come un risultato, uno stato o una decisione, Claude la passa invece di farti copiare e incollare tra i terminali. Claude scopre il destinatario con ListAgents e invia con SendMessage, quindi non chiami mai nessuno dei due strumenti tu stesso. Claude può decidere di inviare un messaggio senza essere chiesto, e puoi anche richiederne uno.

Per richiederne uno tu stesso, dì a Claude cosa vuoi che l'altra sessione sappia o faccia. Questo esempio è un prompt che digiti, non un messaggio che Claude invia:

Chiedi alla sessione in esecuzione nel mio altro terminale se la migrazione è terminata

Claude scrive il messaggio vero e proprio, quindi il tuo prompt può lasciare il contenuto a Claude. Questo prompt chiede un riepilogo senza dettarne la formulazione, e quello che Claude invia varia:

Spiega quello che abbiamo appena fatto alla sessione che sta lavorando all'API dei pagamenti

Per nominare il destinatario tu stesso, menziona la sessione nel tuo prompt: digita @ seguito dalle prime lettere del nome della sessione e scegli la sessione dal typeahead, nello stesso modo in cui @-menzioni un subagent. Richiede Claude Code v2.1.232 o successivo. Claude Code inserisce la menzione, come @api-worker, e dice a Claude quale sessione nomina, così Claude può inviare un messaggio a quella sessione senza elencare prima le tue sessioni. Questo prompt nomina il destinatario con una menzione:

Fai sapere a @api-worker che la migrazione dello schema è terminata

Il typeahead elenca le tue altre sessioni live su questa macchina. Due casi richiedono più delle prime lettere di un nome:

  • Una sessione oltre questa macchina: una sessione cloud o Remote Control appare nel typeahead solo dopo che Claude ha elencato o inviato messaggi alle tue sessioni oltre questa macchina, quindi chiedi a Claude di elencarle prima.
  • Un nome con uno spazio o altri caratteri al di fuori di lettere, cifre, trattini e sottolineature: digitalo tra virgolette doppie, come @"release notes". Quando scegli la sessione dal typeahead, Claude Code inserisce le virgolette per te.

Puoi anche digitare la menzione senza il picker. Quando più di una sessione live risponde al nome menzionato, Claude ti chiede quale intendi prima di inviare.

Per vedere come appare il messaggio che Claude scrive quando arriva, incluso un esempio, vedi come appare un messaggio.

Consegna del messaggio

Il Claude ricevente legge il messaggio tra le chiamate agli strumenti durante un turno attivo, quindi uno strumento in esecuzione non viene mai interrotto. Quando la sessione ricevente è inattiva, Claude Code avvia un nuovo turno con il messaggio.

Un messaggio da un'altra sessione arriva come testo semplice. Se menziona un file o una risorsa MCP con @, Claude vede la menzione come scritta e Claude Code non allega nulla, indipendentemente dal fatto che il messaggio avvii un nuovo turno o arrivi durante uno. Claude può comunque aprire un percorso menzionato sulla macchina ricevente con i suoi stessi strumenti, soggetto alle autorizzazioni di quella sessione.

Claude Code rifiuta un messaggio nei seguenti casi:

La sessione ricevente controlla ogni messaggio in arrivo rispetto ai suoi controlli in entrata, e il controllo termina in uno di tre risultati:

  • Consegnato: Claude Code passa il messaggio al Claude ricevente.
  • Trattenuto: Claude Code mette da parte il messaggio non consegnato. Un messaggio trattenuto raggiunge Claude solo quando lo approvi o un cambio di modalità o impostazioni successivo lo consente.
  • Rifiutato: Claude Code scarta il messaggio senza consegnarlo.

Una volta consegnato, il messaggio conta verso l'utilizzo come un prompt che digiti, e il Claude ricevente può rispondere al mittente nello stesso modo, tranne nel caso cross-machine unidirezionale.

I confini delle autorizzazioni rimangono per sessione. Claude è istruito a non chiedere mai a un'altra sessione un'azione che è stata negata o bloccata nella sua stessa sessione, o che le sue stesse impostazioni di autorizzazione bloccherebbero, e a instradare quel lavoro di nuovo a te. Dal lato ricevente, i prompt di autorizzazione e le regole della sessione ricevente si applicano ancora a qualsiasi cosa il messaggio chieda.

Ricevere un avviso quando un'altra sessione diventa inattiva

Claude può chiedere a una delle tue sessioni su questa macchina di inviare indietro un avviso quando quella sessione successivamente diventa inattiva o esce. Inattivo qui significa che la sessione ha terminato un turno senza nulla in coda. Usalo quando stai aspettando un'attività lunga in un'altra sessione e vuoi sapere quando è finita invece di controllare. Richiede Claude Code v2.1.236 o successivo in entrambe le sessioni.

Richiedere un avviso

Dì a Claude cosa stai aspettando. Questo prompt richiede un avviso dalla sessione di migrazione:

Dimmi quando la sessione di migrazione finisce quello su cui sta lavorando

Claude si iscrive con l'input notify_when_idle dello strumento SendMessage, allegato a un messaggio che sta inviando comunque o da solo. Da solo, Claude Code si iscrive senza avviare un turno o spendere token nella sessione osservata, e invia l'avviso subito se quella sessione è già inattiva. Allegato a un messaggio, Claude Code consegna il messaggio prima e invia l'avviso dopo.

Cosa mostra ogni sessione

La sessione osservata mostra una riga che dice che un altro processo ha chiesto di essere avvisato quando la sessione è successivamente inattiva. La sessione che chiede mostra l'avviso come una riga che nomina la sessione osservata. La riga può includere l'ora in cui il turno di quella sessione è terminato e uno stato di una riga da quel turno. Se la sessione che chiede è inattiva, Claude Code avvia un nuovo turno con l'avviso.

Limiti

Se nessun avviso arriva entro 12 ore, Claude Code abbandona l'iscrizione e lo dice a Claude, così non continua ad aspettare.

I controlli in entrata di ogni lato si applicano a un avviso come a un messaggio:

  • refuse su entrambi i lati: nulla arriva. La sessione osservata abbandona la richiesta senza registrarla o rispondere, quindi l'iscrizione scade senza risposta dopo 12 ore, e una sessione che chiede con refuse non si iscrive mai.
  • hold su entrambi i lati: l'avviso arriva con meno. La sessione osservata lascia fuori lo stato di una riga, e la sessione che chiede mostra l'avviso nella tua trascrizione senza consegnarlo a Claude.

Solo il Claude nella tua conversazione principale può iscriversi, e solo alle tue sessioni su questa macchina. Quando Claude chiede un avviso da qualsiasi altro destinatario, come un compagno di squadra, un subagent o una sessione oltre questa macchina, Claude Code rifiuta l'intera chiamata, incluso qualsiasi messaggio allegato ad essa.

Vedere quali sessioni Claude può raggiungere

Claude trova il destinatario di un messaggio da solo, quindi non hai bisogno di eseguire nulla prima di chiedergli di inviare. Per vedere tu stesso quali sessioni Claude può raggiungere, esegui il comando /list-agents. La prima riga, quando presente, è il nome di questa sessione, quello che le tue altre sessioni usano per inviarle messaggi. Le righe sottostanti sono le sessioni che Claude può raggiungere:

  • Subagent: agenti in esecuzione all'interno della sessione corrente.
  • Compagni di squadra: i compagni di squadra del team di agenti di questa sessione.
  • Le tue altre sessioni locali: sessioni Claude Code in esecuzione sulla stessa macchina, incluse sessioni in background. Una sessione appare solo quando associa un socket della posta in arrivo.
  • Le tue sessioni cloud: mostrate mentre questa sessione è connessa a Remote Control.
  • Le tue sessioni Remote Control su altre macchine: mostrate mentre questa sessione è connessa a Remote Control, ed etichettate Remote Control. Claude Code mostra offline come lo stato di una sessione la cui connessione Remote Control è caduta.

Mentre questa sessione è connessa a Remote Control, Claude Code trattiene alcuni dettagli delle tue sessioni locali dall'output /list-agents, senza cambiare quello che Claude stesso vede quando cerca una sessione a cui inviare un messaggio:

  • Directory di lavoro: lascia fuori la directory di lavoro di ogni sessione locale.
  • Nomi delle sessioni: lascia fuori qualsiasi nome di sessione che non può attribuire a una persona, quindi una riga rimasta senza nome legge (unnamed session).
  • La prima riga: lascia fuori la riga con il nome di questa sessione a meno che tu non abbia digitato quel nome a questo terminale, con --name o con /rename e il nome, da quando hai avviato o ripreso l'ultima volta la sessione.

Quando l'output elenca qualcosa, termina con una nota che dice che i dettagli sono stati trattenuti. Eseguire /rename seguito da un nome inutilizzato a una tastiera di sessione propria dà a quella sessione un nome che appare nell'output.

Una sessione risponde al nome che hai impostato con il comando /rename o il flag --name. Quando non ne imposti uno, Claude Code nomina la sessione stesso. Per una sessione interattiva, questo è il nome mostrato negli elenchi di sessioni in esecuzione.

Quando rinomini una sessione, o avvii o riprendi una interattiva, con un nome che un'altra sessione live su questa macchina già usa, Claude Code lascia il nome con la sessione che lo ha già e rinomina il tuo a una variante. Le sessioni possono comunque condividere un nome, ad esempio quando una di loro esegue una versione precedente di Claude Code o il nome condiviso è uno che Claude Code ha generato. A meno che questa sessione non sia connessa a Remote Control, Claude Code mostra la directory di lavoro di ogni sessione locale nell'output /list-agents, così puoi distinguere sessioni con lo stesso nome quando vengono eseguite in directory diverse. Claude indirizza il messaggio in uno di due modi, a seconda di quante sessioni live rispondono al nome:

  • Una sessione risponde al nome: Claude Code consegna il messaggio solo sul nome.
  • Diverse sessioni condividono il nome, o Claude Code non ha potuto controllare ovunque vengono eseguite le tue sessioni: Claude aggiunge un breve identificatore a ogni riga del suo elenco e usa l'identificatore nell'indirizzo.

Inviare messaggi a sessioni su altre macchine

Come un messaggio viaggia, e se passa attraverso i server Anthropic, dipende da dove viene eseguita la sessione di destinazione:

Dove viene eseguita l'altra sessione Come viaggia il messaggio
Su questa macchina Su un socket per sessione su macOS e Linux, o una named pipe per sessione su Windows nativo, mai attraverso i server Anthropic
Su un'altra delle tue macchine Attraverso i server Anthropic, arrivando sulla connessione Remote Control di quella macchina
Nel cloud Attraverso i server Anthropic, direttamente alla sessione cloud

Avviare una conversazione con una sessione su un'altra delle tue macchine richiede Claude Code v2.1.225 o successivo e un destinatario che appare nell'elenco.

Puoi inviare un messaggio a una sessione mostrata come offline nell'elenco, una la cui connessione Remote Control è caduta. L'invio va a buon fine, ma il messaggio arriva solo dopo che la macchina di quella sessione si riconnette.

Una sessione all'interno di un contenitore e una sessione sull'host non possono raggiungersi a vicenda. Due sessioni all'interno dello stesso contenitore possono comunque inviarsi messaggi a vicenda, incluso su un runner self-hosted. Una sessione all'interno di WSL 2 e una sessione Windows nativa sullo stesso computer non possono raggiungersi a vicenda neanche.

Se questa sessione non è connessa a Remote Control quando Claude invia a una sessione oltre questa macchina, il messaggio comunque va a buon fine, ma senza un indirizzo di risposta, quindi il Claude ricevente non può rispondere.

Per richiedere la tua approvazione prima che qualsiasi messaggio vada oltre questa macchina, imposta isolatePeerMachines.

Come una sessione tratta un messaggio in arrivo

Quando la sessione A invia un messaggio alla sessione B, Claude Code dice al Claude di B che il messaggio è venuto da un'altra sessione, non da te, e limita quello che il messaggio può fare:

  • Non può approvare nulla: un messaggio da un'altra sessione non conta mai come il tuo consenso, quindi non può rispondere a un prompt di autorizzazione in sospeso per tuo conto.
  • Non può cambiare la configurazione: Claude Code istruisce il Claude ricevente a non cambiare mai le impostazioni di autorizzazione, CLAUDE.md o altre configurazioni perché un'altra sessione lo ha chiesto.
  • I comandi non vengono eseguiti: un comando nel testo del messaggio, come /compact, arriva come testo semplice. Claude Code non lo esegue mai.
  • I prompt di autorizzazione si attivano comunque: se agire sul messaggio richiede un'autorizzazione che la sessione ricevente non ha, vedi lo stesso prompt che vedresti per qualsiasi altro lavoro.

Come appare un messaggio

Quando un messaggio arriva, Claude Code lo mostra nella conversazione come un'anteprima di una riga attenuata, e la riga di anteprima rimane nella conversazione dopo. L'anteprima porta il nome del mittente e la prima riga del messaggio, tagliata con … quando è lunga, come › Message from @api-worker: Schema migration finished (ctrl+o to expand).

Uno di questi mostra il testo completo:

  • Premi Ctrl+O per aprire il visualizzatore di trascrizioni e leggi il testo completo sotto il nome della sessione del mittente.
  • In una sessione avviata con --verbose, Claude Code mostra il testo completo invece dell'anteprima.

L'anteprima accorcia solo quello che vedi. Che tu lo espanda o no, Claude legge il messaggio completo.

Claude riceve il messaggio con il nome del mittente e un indirizzo di risposta, tranne per un messaggio cross-machine unidirezionale, che non porta alcun indirizzo di risposta.

Questo esempio è un messaggio che un Claude ha scritto a un altro, come il suo testo completo legge quando lo espandi:

Schema migration finished
The new column is tenant_id, and rebasing on main is safe now.

Controlla i messaggi in entrata

Imposta crossSessionInbound per scegliere cosa una sessione fa con i messaggi in arrivo dalle tue altre sessioni:

Valore Comportamento
accept Claude Code consegna ogni messaggio a Claude
hold Claude Code mostra un avviso per ogni messaggio e non lo consegna. Se un accept successivamente si applica, secondo le regole di precedenza, Claude Code rilascia i messaggi trattenuti
refuse Claude Code elimina ogni messaggio senza consegnarlo

Oltre a modificare un file di impostazioni, puoi selezionare il valore nella riga /config Messages from your other sessions. Claude Code scrive il valore che selezioni nelle tue impostazioni utente. La riga richiede Claude Code v2.1.232 o successiva e non appare mentre le impostazioni gestite o il flag --settings imposta la chiave, poiché un valore di impostazioni utente non si applicherebbe allora. Claude Code rifiuta la scorciatoia /config crossSessionInbound=value per questa chiave.

Per vedere quale valore si applica, segui le regole di precedenza crossSessionInbound nel riferimento delle impostazioni.

Quando nessun valore si applica, Claude Code decide per messaggio dalle modalità di autorizzazione delle due sessioni. Raggruppa le sessioni che bypassano i prompt di autorizzazione in una classe, e ogni altra sessione nell'altra. La modalità Plan conta come bypassare nelle sessioni con autorizzazioni di bypass disponibili, e auto, acceptEdits e dontAsk contano come prompt:

  • La sessione ricevente richiede autorizzazioni: Claude Code consegna ogni messaggio. Trattiene uno per la tua approvazione solo quando la sessione di invio si identifica come bypassando i prompt di autorizzazione.
  • La sessione ricevente bypassa i prompt di autorizzazione: Claude Code trattiene ogni messaggio per la tua approvazione. Consegna uno solo quando la sessione di invio si identifica come bypassando anche.

Quando il default trattiene un messaggio, Claude Code apre una finestra di dialogo di approvazione nella sessione ricevente. La finestra di dialogo mostra il mittente e un'anteprima:

  • Approve consegna quel messaggio a Claude.
  • Deny, o chiudere la finestra di dialogo, lo elimina.
  • Quando la finestra di dialogo rimane senza risposta oltre la scadenza dialogExpiry, Claude Code la chiude e elimina il messaggio. La scadenza predefinita è cinque minuti.
  • Mentre nessun terminale è collegato a una sessione in background, Claude Code lascia la finestra di dialogo aperta oltre la scadenza. Dopo che colleghi, se la finestra di dialogo rimane senza risposta per un intero periodo di scadenza, Claude Code la chiude e elimina il messaggio.
  • Se la classe di modalità di autorizzazione di questa sessione cambia mentre i messaggi sono trattenuti, Claude Code riapplica le regole in entrata, consegna i messaggi che ora accetta, e mostra un avviso.

Claude Code trattiene al massimo 100 messaggi, e oltre quello elimina i più vecchi.

Sessioni non interattive

Claude Code associa un socket della posta in arrivo per una sessione claude -p come una interattiva, quindi un worker -p a lunga esecuzione può ricevere messaggi e appare nell'elenco. Quando avvii una sessione in modalità bare, Claude Code non associa il socket, quindi quella sessione non può ricevere messaggi e non appare nell'elenco degli agenti.

Una sessione -p non può mostrare la finestra di dialogo di approvazione. Quando il default in entrata trattiene un messaggio lì, Claude Code lo mantiene per la stessa scadenza dialogExpiry che la finestra di dialogo usa, cinque minuti per impostazione predefinita:

  • Prima della scadenza: se una modalità o un cambio di impostazioni consente il messaggio, Claude Code lo consegna.
  • Oltre la scadenza: Claude Code elimina il messaggio e lo segnala come scaduto a un mittente che può raggiungere.

Imposta dialogExpiry su "never" per mantenere i messaggi trattenuti dal default fino alla fine della sessione. Un messaggio trattenuto da un'impostazione hold esplicita non scade; Claude Code lo consegna solo quando un accept successivamente si applica.

Per far sì che un worker -p accetti messaggi incustodito, avvialo con crossSessionInbound impostato su accept nel suo valore --settings. Un accept nelle tue impostazioni utente funziona anche ma si applica a ogni sessione che esegui.

Il socket della posta in arrivo della sessione

Leggi questa sezione quando una sessione che ti aspetti non è nell'elenco degli agenti, quando vuoi che uno script o un hook pubblichi in una sessione, o quando un comando in sandbox non può raggiungere il socket.

Claude Code associa un socket della posta in arrivo per ogni sessione con la messaggistica tra sessioni abilitata, dove altre sessioni sulla macchina consegnano messaggi. Il socket è un socket di dominio Unix su macOS e Linux, incluso Linux all'interno di WSL 2, e una named pipe su Windows nativo. Per quali tipi di sessione associano uno, vedi Sessioni non interattive.

Puoi trovare il percorso del socket in due posti:

  • /status lo mostra nella riga Peer address. Il percorso è prefissato con uds:.
  • Claude Code lo esporta a hooks e comandi Bash come la variabile di ambiente CLAUDE_CODE_MESSAGING_SOCKET:
    • In una sessione che inizia con la messaggistica attiva, Claude Code esporta la variabile prima che qualsiasi hook venga eseguito, incluso SessionStart.

Su macOS e Linux, Claude Code limita il socket al tuo utente del sistema operativo. Su Windows nativo, richiede invece a ogni connessione di autenticarsi prima con una chiave che solo il tuo utente del sistema operativo può leggere. In entrambi i casi, su una macchina condivisa le sessioni di un altro utente non possono consegnare ad esso.

Su macOS e Linux, Claude Code rifiuta anche di creare il socket in una directory che non può accettare, ad esempio una di proprietà di un altro utente, e utilizza invece una directory privata per utente, /tmp/cc-socks-<uid>. Quando non può accettare alcuna directory, la sessione viene eseguita senza una posta in arrivo: Claude Code mostra un avviso, /status mostra unavailable e il motivo nella sua riga Peer address, e il log --debug registra il rifiuto completo.

Insieme al percorso del socket, Claude Code esporta un token per sessione come CLAUDE_CODE_MESSAGING_TOKEN. Uno script che pubblica nel socket della sua stessa sessione può inviare {"type":"auth","token":"<token>"} come la prima riga della sua connessione, dove <token> è il valore di CLAUDE_CODE_MESSAGING_TOKEN. Se Claude Code richiede la riga dipende dalla piattaforma:

  • macOS e Linux, incluso WSL 2: la riga è facoltativa. Claude Code accetta una connessione con o senza di essa.
  • Windows nativo: la riga è obbligatoria. Claude Code chiude qualsiasi connessione la cui prima riga non è una riga di autenticazione valida e non consegna nulla da quella connessione.

Apri la connessione solo quando il messaggio che stai pubblicando è pronto. Claude Code chiude una connessione che non ha inviato una riga completa entro 30 secondi, quindi cattura prima l'output di un comando lento e poi apri la connessione per inviarlo.

Claude Code esegue i messaggi in arrivo sul socket attraverso gli stessi controlli in entrata di qualsiasi altro messaggio peer, con un'eccezione e un prerequisito:

  • Messaggi propri-figli: quando nessun valore crossSessionInbound si applica, Claude Code consegna un messaggio che verifica è venuto dai processi figli della sessione stessa, come un hook o un comando Bash che pubblica di nuovo nel socket della posta in arrivo della sua stessa sessione.
    • Su Linux, incluso all'interno di WSL 2, Claude Code può verificare per evidenza di processo anche per un figlio che è già uscito. Su macOS può verificare in quel modo solo mentre il processo di pubblicazione è ancora in esecuzione, e in un contenitore dove Claude Code viene eseguito come ID processo 1 non ha alcuna evidenza di processo. Su Windows nativo non ne ha nemmeno.
    • Su macOS dopo che il processo di pubblicazione è uscito e in contenitori dove Claude Code viene eseguito come ID processo 1, quella evidenza di processo manca, e Claude Code verifica invece un figlio che ha inviato il CLAUDE_CODE_MESSAGING_TOKEN esportato della sessione nella riga di autenticazione che ha aperto la sua connessione. Su Windows nativo, quel token è l'unico modo in cui Claude Code verifica un messaggio proprio-figlio.
    • Quando Claude Code non può verificare in nessun modo, tratta il messaggio come qualsiasi altro che non asserisce alcuna classe di autorizzazione, quindi una sessione che bypassa i prompt di autorizzazione lo trattiene per la tua approvazione.
  • Sessioni in sandbox: controlla se un comando Bash può raggiungere il socket dall'interno della sandbox con le impostazioni del socket Unix della sandbox, sandbox.network.allowAllUnixSockets e sandbox.network.allowUnixSockets.

Limitare la messaggistica tra sessioni

Oltre alle impostazioni predefinite per messaggio, è possibile limitare la messaggistica in due modi. Richiedere l'approvazione prima che qualsiasi messaggio lasci la macchina, oppure disattivare la messaggistica per una sessione o un'organizzazione.

Richiedere approvazione per i messaggi tra macchine

Impostare isolatePeerMachines su true per richiedere l'approvazione esplicita prima che qualsiasi SendMessage raggiunga una sessione al di là di questa macchina:

{
  "isolatePeerMachines": true
}

Con questa impostazione, Claude Code richiede l'approvazione prima che il messaggio di Claude a una sessione al di là di questa macchina venga inviato, anche in modalità bypassPermissions, che ignora i normali prompt di autorizzazione. Un valore true da qualsiasi ambito di impostazioni si applica, quindi un file di progetto archiviato può attivare il requisito ma non disattivarlo. Claude Code non richiede l'approvazione per i messaggi tra sessioni sulla stessa macchina.

Disattivare la messaggistica tra sessioni

La ricezione e l'invio sono controlli separati, quindi disattivare la direzione di cui hai bisogno, o entrambe. Utilizzare crossSessionInbound per i messaggi in arrivo e le regole di autorizzazione per ciò che Claude qui può inviare o elencare:

  • Interrompere la ricezione: impostare crossSessionInbound su refuse, e Claude Code elimina i messaggi peer in arrivo senza consegnarli. Dalle impostazioni di progetto o locali, refuse si applica su ogni altra fonte, e dalle impostazioni utente si applica a meno che le impostazioni gestite o il flag --settings impostino un valore.
  • Interrompere l'invio e l'elenco: aggiungere regole di negazione delle autorizzazioni che denominano SendMessage e ListAgents. Entrambi accettano il nome dello strumento senza specificatore.

Gli amministratori possono disattivare entrambi i lati per un'organizzazione nelle impostazioni gestite, combinando le regole di negazione con refuse:

{
  "permissions": {
    "deny": ["SendMessage", "ListAgents"]
  },
  "crossSessionInbound": "refuse"
}

Con questa impostazione in vigore, Claude Code associa comunque il socket della posta in arrivo di ogni sessione, ma elimina ogni messaggio che arriva su di esso senza consegnare nulla a Claude. Negare SendMessage rimuove anche la messaggistica ai subagent e ai compagni di squadra dell'agente, poiché lo stesso strumento serve entrambi. Una sessione che rifiuta non mostra alcun cambiamento visibile, nel suo /status o negli elenchi di altre sessioni sulla stessa macchina, quindi per confermarlo, controllare i file di impostazioni che si applicano a quella sessione piuttosto che il suo stato.

Disponibilità

La messaggistica tra sessioni richiede Claude Code v2.1.224 o successiva su macOS, Linux e WSL 2, e v2.1.234 o successiva su Windows nativo. La disponibilità, e quali sessioni Claude può inviare messaggi, dipendono anche dal tuo sistema operativo, provider e configurazione:

  • Sistema operativo: disponibile su macOS, Windows e Linux, incluso Linux all'interno di WSL 2.

  • Sessioni su questa macchina: disponibile su ogni provider, inclusi Amazon Bedrock, Claude Platform su AWS, Agent Platform di Google Cloud e Microsoft Foundry, e in sessioni che vengono eseguite con fetching dei flag di funzionalità disattivato. Su quei provider, e con il fetching dei flag disattivato, la messaggistica sulla stessa macchina richiede Claude Code v2.1.248 o successiva. Claude Code consegna questi messaggi su un socket per sessione sulla tua macchina, mai attraverso i server Anthropic.

    Per impedire a una sessione di riceverli, imposta crossSessionInbound su refuse.

  • Sessioni oltre questa macchina: Claude trova le tue sessioni Claude Code sul web e le tue sessioni su altre macchine da una sessione che è connessa a Remote Control, che ha bisogno di un accesso claude.ai come autenticazione attiva di questa sessione e degli altri requisiti di Remote Control. Claude non può trovare quelle sessioni con una chiave API o su Amazon Bedrock, Claude Platform su AWS, Agent Platform di Google Cloud e Microsoft Foundry.

Per controllare una sessione, digita /list-agents, disponibile anche come /peers. Il risultato separa una sessione che non ha la funzione da una sessione dove qualcosa di più stretto ha bloccato un messaggio, come uno strumento SendMessage mancante o un invio rifiutato:

  • /list-agents non è riconosciuto: la sessione non ha messaggistica tra sessioni. Lavora attraverso i requisiti sopra, iniziando con claude --version per il requisito di versione.
  • /list-agents funziona ma un invio non è arrivato: la messaggistica è attiva, e qualcosa di più stretto si applica:
    • Regole di negazione: una regola di autorizzazione di negazione rimuove gli strumenti SendMessage e ListAgents.
    • Controlli in entrata: i controlli in entrata della sessione ricevente possono trattenere o eliminare quello che invii.
    • Sessione cloud mancante: una sessione cloud appare solo mentre questa sessione è connessa a Remote Control.
    • Sessione su un'altra macchina mancante: una sessione su un'altra delle tue macchine appare solo quando viene eseguita con Remote Control e questa sessione è connessa anche.
    • Sessione su un'altra macchina offline: un messaggio a una sessione elencata come offline va a buon fine, ma arriva solo dopo che la macchina di quella sessione si riconnette.
    • Sessione cloud o su un'altra macchina più vecchia mancante: Claude Code legge quegli elenchi di sessioni dal più recente al più vecchio e si ferma dopo un numero limitato di pagine, quindi Claude non può inviare un messaggio a una sessione che è caduta oltre di loro per nome.

In una sessione con messaggistica, /status mostra anche una riga Peer address con l'indirizzo della posta in arrivo della sessione stessa, o unavailable e il motivo quando Claude Code non poteva impostare una posta in arrivo.

Limitazioni

I limiti qui sono proprietà del canale di messaggistica stesso e si applicano ovunque la funzione viene eseguita. Per i gap di piattaforma e provider, vedi Disponibilità invece.

  • Solo testo semplice: Claude invia solo testo semplice tra sessioni. I messaggi del protocollo team di agenti strutturati rimangono all'interno di un team.
  • La dimensione del messaggio sulla stessa macchina è limitata: Claude Code rifiuta un messaggio a una sessione su questa macchina una volta che la sua forma serializzata supera circa un milione di caratteri. Il rifiuto nomina le dimensioni esatte. Nulla raggiunge la sessione ricevente.
  • I burst rapidi a una sessione vengono rifiutati al mittente: una volta che un burst rapido di messaggi a una sessione su questa macchina raggiunge quello che la posta in arrivo di quella sessione accetta, Claude Code rifiuta ulteriori invii nella sessione di invio. Il rifiuto nomina il burst e dice a Claude di raggruppare il resto in un messaggio o aspettare.
  • I loop di messaggi sono limitati: nella sessione ricevente, Claude Code limita la velocità dei messaggi ripetuti per mittente, elimina i ripetuti identici che arrivano entro una breve finestra, e mette in coda al massimo 50 messaggi accettati per Claude da leggere. Un loop di messaggi tra due sessioni quindi si ferma da solo.