SpyBara
Go Premium

agent-view.md 2026-10-05 23:58 UTC to 2026-10-06 18:02 UTC

This page contains 282 additions and 279 deletions.

2026
Thu 1 23:59 Fri 2 22:59 Sun 4 23:58 Tue 6 19:01

Gestire più agenti con agent view

Invia e gestisci molte sessioni di Claude Code da una sola schermata. Agent view mostra cosa sta facendo ogni sessione e quali hanno bisogno del tuo input.

Agent view, aperto con claude agents, è una sola schermata per tutte le tue sessioni in background: cosa sta girando, cosa ha bisogno del tuo input e cosa è fatto. Invia nuove sessioni, osserva il loro stato a colpo d'occhio invece di scorrere i transcript, e intervieni solo quando uno ne ha bisogno. Ogni sessione in background è una conversazione completa di Claude Code che continua a girare senza un terminale collegato, quindi puoi aprirla, rispondere e andare via quando vuoi.

Agent view in a terminal. A line at the top counts the sessions awaiting input, working, and completed. Four sessions are grouped under Needs input, Working, and Completed. Each row shows the session's name, its latest status or question, and a time. At the bottom are an input for describing a new task and a row of keyboard hints. Agent view in a terminal. A line at the top counts the sessions awaiting input, working, and completed. Four sessions are grouped under Needs input, Working, and Completed. Each row shows the session's name, its latest status or question, and a time. At the bottom are an input for describing a new task and a row of keyboard hints.

Usa agent view quando hai diversi compiti indipendenti su cui Claude può lavorare senza che tu guardi ogni passo. Invia una correzione di bug, una revisione di pull request e un'investigazione di test instabile come tre righe, continua a lavorare in un'altra finestra e controlla quando una riga mostra che ha bisogno di te o ha un risultato.

Quando vuoi lavorare più direttamente nella sessione di qualsiasi agente, collegati alla riga per entrare nella conversazione completa.

Per confrontare agent view con subagenti, team di agenti e worktrees, vedi Esegui agenti in parallelo. Agent view esegue sessioni sulla tua macchina e tu invii ognuna; per fare in modo che Claude avvii e traccia sessioni parallele nel cloud da una sola conversazione, vedi Projects.

Avvio rapido

Questa procedura illustra il ciclo principale della vista agente: invia un'attività, osserva l'aggiornamento della sua riga mentre Claude lavora, controlla per verificare lo stato e rispondi, e collegati per la conversazione completa. La sessione che invii continua a funzionare dopo che chiudi la vista agente, quindi puoi andare via e tornare ad essa.

1

Apri agent view

Dalla tua shell, esegui:

claude agents

Se non hai ancora accettato la finestra di dialogo di fiducia dell'area di lavoro per la directory, Claude Code la mostra prima che agent view si apra, la stessa finestra di dialogo che mostra claude. Accetta per salvare la fiducia per l'area di lavoro e continua. Se rifiuti, Claude Code esce senza aprire agent view.

Agent view si apre con un input in basso e una tabella che si riempie quando le sessioni iniziano. Premi Esc per tornare alla tua shell; se hai aperto agent view mettendo in background una sessione con ←, Esc ritorna a quella conversazione invece. Le tue sessioni continuano a funzionare mentre sei via e riappaiono la prossima volta che apri agent view.

2

Invia una sessione

Digita un prompt che descrive un'attività e premi Enter. Una nuova sessione in background inizia su quell'attività e appare come una riga che mostra se sta lavorando, aspettando te, o è completata. La nuova sessione utilizza il modello mostrato nell'intestazione di agent view. La modalità di autorizzazione in cui inizia dipende da come hai aperto agent view.

Ogni prompt che inserisci qui avvia la sua propria nuova sessione. Digitando un altro prompt e premendo Enter avvia una seconda sessione accanto alla prima piuttosto che inviare un follow-up ad essa. Puoi eseguire diversi in parallelo in questo modo.

Ogni sessione utilizza la tua quota di abbonamento indipendentemente, quindi consulta Limitazioni prima di inviare molte sessioni contemporaneamente.

3

Peek e rispondi

Seleziona una riga con i tasti freccia e premi Space per aprire il pannello peek. Mostra l'output più recente della sessione, o la domanda su cui sta aspettando, piuttosto che la trascrizione completa. Digita una risposta e premi Enter per inviarla senza lasciare agent view.

4

Collegati e scollega

Premi Enter o → su una riga per collegarti quando vuoi la conversazione completa. La sessione prende il controllo del terminale come una sessione Claude Code interattiva completa. Premi ← su un prompt vuoto per scollegar e tornare alla tabella.

5

Porta una sessione esistente dentro

Questo passaggio richiede una sessione in esecuzione. Se hai seguito i passaggi precedenti non ne hai una aperta in questo terminale, quindi apri una sessione claude regolare in un altro terminale e invia prima un messaggio.

Per spostare una sessione che hai già aperta in agent view, esegui /bg dentro di essa, o premi ← su un prompt vuoto per metterla in background e aprire agent view in un unico passaggio. In una sessione nuova senza messaggi ancora, /bg ti chiede di inviare prima un messaggio, mentre ← funziona subito. La sessione continua a funzionare e appare come una riga accanto a quelle che hai inviato.

All'interno di una sessione claude regolare, l'hint ← del footer del prompt conta gli agenti in background che stanno aspettando te, come ← 2 agents, e ritorna a ← for agents quando nessuno ha bisogno di input. I conteggi superiori a 99 vengono visualizzati come 99+. Il conteggio si aggiorna circa ogni dieci secondi mentre il terminale è focalizzato e immediatamente quando il focus ritorna. Cambia brevemente colore quando si sposta e quando un agente si completa, e quando una sessione in background si completa mentre nessuno ha bisogno del tuo input mostra brevemente il numero completato, come ← 2 done. Entrambi i flash sono disattivati quando l'impostazione prefersReducedMotion è attiva, e l'hint è nascosto in modalità screen reader.

Apri agent view per impostazione predefinita

Per fare in modo che claude senza argomenti apra agent view invece di una nuova conversazione, attiva un'impostazione /config.

1

Attiva l'impostazione

In una sessione claude regolare, esegui /config e attiva Open agents view by default. Per saltare il menu, imposta direttamente la chiave defaultToAgentsView:

/config defaultToAgentsView=true
2

Avvia Claude Code

Esci dalla sessione, quindi esegui claude senza argomenti:

claude

Agent view si apre al posto di una nuova conversazione.

Per avviare una sessione regolare mentre l'impostazione è attiva, passa un prompt: claude "fix the login test". Per disattivare l'impostazione, esegui /config defaultToAgentsView=false in una sessione regolare o in una a cui ti colleghi da agent view.

Monitorare le sessioni con agent view

Esegui claude agents per aprire agent view. Occupa l'intero terminale ed elenca ogni sessione raggruppata per stato, con le sessioni fissate e quelle che hanno bisogno di te in cima. Ogni riga mostra il nome della sessione, l'attività corrente e la sua età, contata da quando la sessione è stata creata; l'età di una sessione terminata si ferma alla durata dell'esecuzione.

Il nome è colorato con il colore impostato da /color in quella sessione, anche quando metti in background una sessione con ← o /background.

Per impostazione predefinita, l'elenco mostra ogni sessione in background che hai avviato, in tutti i tuoi progetti. Una sessione che lavora in un repository e un'altra in un worktree diverso appaiono entrambe qui, indipendentemente dalla directory da cui hai aperto agent view. Per limitare l'elenco a un progetto, passa --cwd:

claude agents --cwd ~/projects/my-app

Questo mostra solo le sessioni avviate in quella directory. Elenca comunque una sessione che si è spostata in un worktree sotto ~/projects/my-app/.claude/worktrees/.

Le sessioni interattive che hai aperto in altri terminali non appaiono finché non le metti in background. I subagent e i teammate che una sessione genera non sono elencati come righe separate.

Pinned
  ✽ clawd walk cycle          Drawing the walk-cycle sprite frames          3m

Ready for review
  ∙ jump physics              Opened PR with collision fix                 #2048  2h

Needs input
  ✻ power-up design           double jump or wall climb?                    1m

Working
  ✽ collision detection       Adding swept-AABB checks to CollisionSystem   2m
  ✢ playtest level 3          all checkpoints cleared ×12                in 4m

Completed
  ✻ title screen              menu, options, and credits done               9m
  ∙ sound effects             14 SFX exported to assets/audio               4h
  … 6 more

Leggere lo stato della sessione

Ogni riga inizia con un'icona il cui colore e la cui animazione mostrano lo stato della sessione:

Stato L'icona appare Cosa significa
Working Animata Claude sta attivamente eseguendo strumenti o generando una risposta
Needs input Gialla Claude sta aspettando qualcosa che solo tu puoi fornire: una risposta a una domanda, una decisione sui permessi o un altro prompt a cui solo tu puoi rispondere, come una richiesta della sandbox per consentire un host di rete o una richiesta di input di un server MCP. Anche un comando che ha bisogno di un terminale collegato, come /install-github-app o l'elenco delle impostazioni di /mcp, mantiene qui una sessione incustodita
Idle Attenuata La sessione non ha nulla da fare ed è pronta per il tuo prossimo prompt
Completed Verde L'attività è terminata con successo
Failed Rossa L'attività è terminata con un errore
Stopped Grigia Hai fermato la sessione con Ctrl+X o claude stop, il suo processo è stato terminato dall'esterno di Claude Code, oppure è terminata mentre il servizio in background era spento

Separatamente, la forma dell'icona ha un proprio significato:

Forma Cosa significa
✻ o ✽ animato Il processo della sessione è in esecuzione, oppure la sessione ha bisogno del tuo input
∙ Il processo è terminato. Puoi comunque dare un'occhiata alla riga e, quando rispondi o ti colleghi, Claude riparte da dove si era interrotto
✢ Una sessione /loop in pausa tra un'iterazione e l'altra. La riga mostra il numero di esecuzioni e un conto alla rovescia

L'etichetta #N o !N che può apparire sul bordo destro di una riga è un collegamento alla pull request o merge request della sessione, non fa parte dell'icona di stato.

Il titolo della scheda del terminale mostra il numero di sessioni in attesa di input mentre agent view è aperto: 2 awaiting input · claude agents quando ci sono sessioni che hanno bisogno di input, oppure claude agents quando non ce ne sono.

Per leggere lo stato della sessione da uno script o da un altro programma, usa claude agents --json anziché i file sotto ~/.claude/jobs/.

Mentre agent view è aperto, Claude Code invia anche una notifica attraverso il canale di notifica del terminale che hai configurato quando una sessione in background locale inizia ad aver bisogno del tuo input, termina o fallisce. Le sessioni eseguite secondo una pianificazione, come le sessioni /loop, inviano notifiche solo quando hanno bisogno del tuo input. Le notifiche usano la stessa impostazione preferredNotifChannel del resto di Claude Code e attivano l'hook Notification con il tipo agent_needs_input o agent_completed.

Le sessioni in background non hanno bisogno di alcun terminale aperto per continuare a lavorare. Le esegue un processo supervisor separato, quindi puoi chiudere agent view, chiudere la tua shell o avviare una nuova sessione interattiva e il lavoro che hai inviato continua.

Lo stato della sessione persiste su disco attraverso gli aggiornamenti automatici e i riavvii del supervisor. Le sessioni vengono preservate anche quando la tua macchina va in stop. I loro processi riprendono al risveglio e il supervisor si ricollega a essi invece di trattare l'intervallo di tempo come inattività. Lo spegnimento ferma comunque le sessioni in esecuzione; consulta Le sessioni appaiono come non riuscite o fermate dopo lo spegnimento per sapere come recuperarle.

Una sessione che era a metà di una risposta quando la macchina è andata in stop può tornare senza rispondere. Quando apri una sessione che ha smesso di rispondere, il supervisor riavvia il suo processo e la sessione continua la risposta interrotta da dove si era fermata.

Riassunti delle righe

Il riassunto di una riga in ciascuna riga è generato da un modello di classe Haiku, così la riga può dirti cosa sta facendo la sessione, di cosa ha bisogno o cosa ha prodotto senza aprire la trascrizione. Mentre una sessione sta lavorando attivamente, il testo della riga si aggiorna al massimo una volta ogni 15 secondi a partire dall'output recente della sessione stessa, senza inviare una richiesta al modello, e il modello scrive un nuovo riassunto al termine di ogni turno.

Una riga in lavorazione mostra cosa la sessione dice di stare facendo, e una riga bloccata mostra la domanda che sta ponendo. Durante un turno lungo, il modello riscrive anche il riassunto ogni pochi minuti, così una riga occupata non continua a mostrarne uno obsoleto. Il testo del riassunto riempie la larghezza rimanente della riga; apri il pannello peek per leggere una frase tagliata dal bordo del terminale.

Quando l'elenco è raggruppato per directory, il riassunto inizia con lo stato della sessione come parola colorata, ad esempio Needs input · double jump or wall climb?. Nel raggruppamento predefinito per stato, l'intestazione del gruppo indica già lo stato, quindi la riga mostra solo il riassunto.

Il riassunto di fine turno e ogni riscrittura a metà turno sono una breve richiesta di classe Haiku attraverso il tuo provider abituale, fatturata e gestita secondo gli stessi termini di utilizzo dei dati della sessione stessa. Gli aggiornamenti ogni 15 secondi tra una riscrittura del modello e l'altra riutilizzano l'output della sessione stessa e non inviano richieste. Su un provider di terze parti o un gateway senza un modello di classe Haiku configurato, la richiesta usa invece il modello principale della sessione; imposta ANTHROPIC_DEFAULT_HAIKU_MODEL per sceglierne uno.

Stato della pull request

Quando una sessione apre una pull request, Claude Code aggiunge un'etichetta sul bordo destro della riga, collegata alla pull request:

  • Claude Code scrive l'etichetta come #1234 per una pull request e come !1234 per una merge request di GitLab.
  • Claude Code emette il collegamento anche quando non riesce a rilevare il supporto per i collegamenti ipertestuali, ad esempio tramite SSH o tmux. Imposta FORCE_HYPERLINK=0 per mostrare l'etichetta come testo semplice.
  • Dopo che invii un messaggio di follow-up alla sessione, Claude Code mantiene l'etichetta mentre la riga torna a mostrare l'avanzamento in tempo reale.

Una sessione che lavora su una pull request esistente viene collegata a essa allo stesso modo. Claude Code trova la pull request in modo diverso a seconda del comando che Claude esegue:

  • Quando Claude modifica, commenta, chiude o contrassegna come pronta una pull request con gh, Claude Code collega la pull request indicata dall'output del comando stesso. Un comando gh il cui output catturato non indica alcuna pull request non crea un collegamento; gh pr merge è il caso comune, perché stampa il suo risultato solo su un terminale interattivo.
  • Quando Claude esegue il checkout di una pull request con gh pr checkout o esegue il push su un branch, Claude Code cerca il branch con gh pr view e collega la sua pull request aperta.
  • Non è necessario che la pull request esista già quando Claude esegue il push: Claude Code riprova la ricerca del branch dopo un massimo di cinque comandi git, gh, glab o curl successivi eseguiti nella stessa directory, quindi una pull request creata dopo il push, inclusa una che Claude crea tramite la REST API di GitHub, viene collegata quando un nuovo tentativo la trova.

Quando una sessione è collegata a più di una pull request, l'etichetta mostra invece un conteggio, come 3 PRs, colorato in base alla pull request aperta che richiede più attenzione. Apri il pannello peek per vederle tutte.

Il numero della pull request è colorato in base al suo stato:

Colore Stato della pull request
Giallo In attesa di controlli o revisione, oppure controlli non superati
Verde Controlli superati e nessuna revisione bloccante
Viola Merge eseguito
Grigio Bozza o chiusa

Per un'attività che si conclude con una pull request, controlla questa etichetta per conoscere il risultato: rivedi la pull request ed esegui il merge quando il suo numero diventa verde.

Peek e rispondi

Premi Space su una riga selezionata per aprire il pannello peek. Si apre con la frase che la riga tronca sul bordo del terminale, e quale sia questa frase dipende dallo stato della sessione:

  • Una sessione che ti sta aspettando: la domanda esatta che sta ponendo, sopra il campo di risposta
  • Una sessione terminata: il suo risultato
  • Una sessione in lavorazione: la sua frase di stato completa

Subito dopo sono elencate le eventuali pull request collegate alla sessione. Per una sessione che ti sta aspettando, una riga come waiting 3m sotto di esse mostra da quanto tempo è in attesa, ed è l'unico tempo mostrato nel pannello. L'età sul bordo destro della riga è un numero diverso: conta da quando la sessione è stata avviata.

Nella maggior parte dei casi il pannello peek è sufficiente e non hai bisogno di aprire la trascrizione completa.

Digita una risposta nel pannello peek e premi Enter per inviarla a quella sessione. Anteponi ! a una risposta per inviare invece un comando Bash. Cosa succede alla risposta dipende dalla sessione e da cosa invii:

  • Una sessione che sta lavorando: la risposta entra nella coda dei messaggi della sessione invece di interrompere la risposta in corso, e ha effetto quando lo ha l'input in coda. Un comando attende la fine del turno, anche uno che viene eseguito non appena lo digiti nel prompt della sessione stessa
  • Una risposta che è esattamente /stop: ferma subito la sessione invece di esserle consegnata, sia che la sessione stia lavorando sia che ti stia aspettando
  • Un job di shell: la risposta, /stop incluso, va al terminale del comando come input digitato

Quando la sessione ti sta aspettando, il modo in cui rispondi dal pannello peek dipende da cosa sta aspettando:

  • Una domanda con scelte predefinite: il pannello elenca le scelte per numero. Con il campo di risposta vuoto, premi il numero di una scelta per inserirla, poi Enter per inviarla, oppure digita invece la tua risposta
  • Una domanda senza scelte predefinite: digita la tua risposta. Quando il campo vuoto mostra una risposta suggerita, premi Tab per inserirla e modificala prima di inviarla
  • Una richiesta di permesso o un'altra finestra di dialogo, come una richiesta della sandbox o una richiesta di input di un server MCP: rispondere non la gestisce. La tua risposta attende in coda. Per rispondere alla finestra di dialogo, collegati con →

Quando un hook PermissionRequest o PreToolUse restituisce un output che Claude Code non riesce a convalidare per la chiamata di cui la sessione chiede conferma, la riga mostra l'evento dell'hook e hook output invalid: con l'errore di convalida prima del testo della richiesta in sospeso. Per un hook che fallisce in un altro modo, la riga indica che l'hook non è riuscito. La sessione continua ad attendere la stessa richiesta.

Una risposta che non può essere consegnata, perché il servizio in background non è raggiungibile o l'invio non riesce, viene salvata e inviata alla sessione come suo prossimo prompt quando il suo processo si riavvia, e il messaggio di errore indica che la risposta è stata salvata. Una risposta con il prefisso ! non viene salvata, perché il testo salvato raggiungerebbe la sessione come un semplice prompt anziché essere eseguito come comando Bash.

Con la dettatura vocale attivata in modalità hold, tieni premuto il tasto push-to-talk mentre il campo di risposta ha il focus per dettare una risposta invece di digitarla. Lo stesso funziona nel campo di dispatch in fondo ad agent view.

Usa ↑ e ↓ per dare un'occhiata alle sessioni adiacenti senza chiudere il pannello, oppure → per collegarti.

Collegarsi a una sessione

Premi Enter o → su una riga selezionata per collegarti. Agent view viene sostituito dalla sessione interattiva completa. Quando ti colleghi, Claude pubblica un breve riepilogo di cosa è successo mentre eri via.

Mentre sei collegato, la sessione si comporta come qualsiasi altra sessione di Claude Code: comandi, scorciatoie da tastiera e funzionalità funzionano tutti, con le eccezioni indicate di seguito.

Mentre sei collegato, /install-github-app e l'elenco delle impostazioni di /mcp funzionano normalmente, poiché una persona al terminale può completare le loro finestre di dialogo. Quando nessuno è collegato, questi comandi non possono aprire le loro finestre di dialogo, quindi la sessione appare sotto Needs input in agent view con una riga come open this session to manage MCP servers, e la risposta nella trascrizione dice lo stesso. Collegati ed esegui di nuovo il comando per continuare; la riga di richiesta input scompare quando ti colleghi. /mcp reconnect <server>, /mcp enable e /mcp disable funzionano in ogni caso senza collegarsi.

Le sessioni collegate vengono sempre visualizzate in modalità fullscreen, indipendentemente dalla tua impostazione tui, perché una sessione in background non ha uno scrollback del terminale a cui aggiungere contenuto. Scorri con PgUp, PgDn o la rotella del mouse, e premi Ctrl+O per la modalità trascrizione. Lo scorrimento nativo del terminale e la modalità copia di tmux mostrano solo l'area visibile corrente, come quando esegui qualsiasi applicazione a schermo intero.

Premi ← su un prompt vuoto, oppure esegui /exit, per scollegarti e tornare ad agent view, sia che tu abbia aperto la sessione da agent view sia con claude attach <id> dalla tua shell.

← ti scollega anche mentre l'overlay /btw è aperto. Richiede Claude Code v2.1.257 o successivo. Una domanda laterale ancora in fase di risposta continua a essere eseguita mentre sei via. La prossima volta che ti colleghi, l'overlay si riapre con essa, o con la sua risposta.

Su Windows, se premi ← entro circa mezzo secondo dal collegamento, Claude Code mostra Ambiguous ←, press again to detach, perché in quell'intervallo il terminale può ritrasmettere una pressione avvenuta prima del collegamento. Premi di nuovo ← per scollegarti.

Anche Ctrl+Z ti scollega, ma torna invece al punto da cui sei partito: agent view se ti sei collegato da lì, oppure la tua shell se hai eseguito claude attach. Usa Ctrl+Z quando una finestra di dialogo ha il focus e non risponde a ←.

Ctrl+C mantiene il suo comportamento standard di interruzione mentre sei collegato: annulla una risposta in corso o un comando shell ! anziché scollegarti. Premere Ctrl+C due volte su un prompt vuoto ti scollega, come in qualsiasi sessione.

Scollegarti non ferma mai una sessione in background: ←, Ctrl+Z, /exit e il doppio Ctrl+C o doppio Ctrl+D la lasciano tutti in esecuzione. Per terminare una sessione dall'interno, esegui /stop.

Cambiare sessione senza lasciare il terminale

In una sessione in esecuzione in primo piano, cioè una che hai avviato nel terminale anziché collegarti a essa da agent view, premere ← su un prompt vuoto la mette in background e apre agent view con quella riga selezionata, così puoi cambiare sessione senza lasciare il terminale. La stessa singola pressione scollega una sessione collegata.

Se premi ← subito dopo aver eliminato l'ultimo testo del prompt o esserti spostato nella cronologia dei prompt, Claude Code ti chiede di confermare: la prima pressione mostra Press ← again to open agents, oppure Press ← again to go back to agents in una sessione collegata, e la seconda pressione effettua il cambio.

Quando ← mette in background una sessione in primo piano, agent view mostra Your conversation moved to the background sopra l'elenco, con la riga di quella sessione già selezionata. Da lì:

  • Premi Enter per riaprire la conversazione.
  • Premi Esc per annullare il cambio e tornare alla conversazione. Se Esc mostra Still starting — try again in a moment, la sessione in background non è ancora pronta, quindi premi di nuovo Esc tra un momento.
  • Premi Ctrl+C due volte per uscire alla tua shell.

Quando Claude Code non riesce a riaprire la conversazione, esce e stampa un comando claude --resume che la riprende.

L'elenco delle attività di Claude si sposta nella sessione in background insieme alla conversazione, quindi la checklist è intatta quando torni a quella riga.

Anche la riga da cui hai premuto ← mantiene un nome in grassetto e non attenuato dopo che sposti la selezione con i tasti freccia o il mouse, così puoi capire da quale sessione provieni.

Se uno strumento è in esecuzione quando premi ←, Claude Code attende fino a circa dieci secondi che termini prima di mettere la sessione in background, e Claude continua la risposta nella sessione in background. Premi di nuovo ← per metterla subito in background invece di attendere. Quando il lavoro in corso non può essere trasferito alla sessione in background, Claude Code mostra prima la finestra di dialogo Background this session?, come con /background.

Il limite di dieci secondi non si applica mentre i subagent in primo piano che Claude ha avviato nella conversazione sono ancora in esecuzione. Claude Code continua ad attendere affinché il loro lavoro venga trasferito, e mostra l'avviso Still backgrounding after the current tool durante l'attesa. Premi di nuovo ← per mettere la sessione in background senza attendere, il che riavvia quei subagent dall'inizio. Claude Code non attende i subagent eseguiti da un workflow dinamico. Quando un workflow ha subagent in esecuzione, Claude Code mostra invece la finestra di dialogo Background this session?.

Claude Code non mette la sessione in background mentre hai testo non inviato nel campo del prompt, perché il testo rimane nella casella di input del terminale e non verrebbe spostato nella sessione in background. Se digiti nel campo mentre Claude Code attende di mettere la sessione in background, annulla il cambio con Backgrounding cancelled — you have unsent text in the input. Send it or clear it, then press ← again.

Premere ← crea la riga della sessione anche quando la conversazione non ha ancora messaggi, quindi → vi ritorna comunque.

Puoi disattivare questa scorciatoia per le sessioni in primo piano con l'impostazione leftArrowOpensAgents in /config.

Organizzare l'elenco

Agent view raggruppa le sessioni in modo che quelle che hanno bisogno di input siano in cima, con Ready for review e Needs input sopra Working e Completed. Questi nomi di gruppo non corrispondono uno a uno agli stati descritti sopra: una sessione passa a Ready for review quando ha una pull request aperta che richiede una revisione o ha controlli non superati, e Completed raccoglie insieme le sessioni terminate, non riuscite e fermate.

Premi Ctrl+S per raggruppare invece per directory. La tua scelta persiste tra un'esecuzione e l'altra.

All'interno di un gruppo:

  • Premi Ctrl+T per fissare una sessione in cima e mantenere il suo processo in esecuzione quando è inattiva
  • Premi Shift+↑ o Shift+↓ per riordinare le sessioni
  • Premi Ctrl+R per rinominare una sessione
  • Premi Enter su un'intestazione di gruppo per comprimerla, tranne quando è attivo un filtro, nel qual caso ogni gruppo rimane espanso

Per rimuovere una sessione dall'elenco, premi Ctrl+X per fermarla e di nuovo Ctrl+X entro due secondi per eliminarla. Premere Ctrl+X su un'intestazione di gruppo elimina, dopo conferma, ogni sessione di quel gruppo.

La seconda pressione elimina la sessione anche quando il tentativo di arresto non riesce, ad esempio perché il servizio in background non risponde: la conferma rimane attiva per altri due secondi e l'eliminazione termina direttamente il processo della sessione. Premi Esc per chiudere la conferma senza eliminare.

Tranne nei casi di conservazione descritti in Cosa rimuove l'eliminazione di una sessione, l'eliminazione rimuove la sessione dall'elenco, e un worktree che Claude ha creato per essa viene rimosso, conservato o lasciato al suo posto a seconda di come elimini e di cosa contiene il worktree. La trascrizione della conversazione rimane sempre sulla tua macchina locale, disponibile tramite claude --resume.

Per ripristinare una sessione su Claude Code v2.1.212 o successivo, digita /resume nel campo di dispatch. Si apre un selettore con le sessioni passate del repository da cui hai aperto agent view, dalla più recente, incluse le sessioni che hai eliminato dall'elenco; le sessioni che hanno già una riga non sono elencate. ↑/↓ spostano la selezione, Enter riprende la sessione selezionata come sessione in background, così rientra nell'elenco come riga, e Esc chiude il selettore.

Il selettore si apre solo per un semplice /resume. Un ripristino mirato, con ambito limitato o ristretto non può essere gestito dal selettore, quindi agent view mostra invece il suggerimento attach to a session to run it quando:

  • /resume indica un id o un termine di ricerca
  • la vista è limitata con --cwd
  • la vista è stata avviata con --safe-mode
  • la vista è stata aperta con un flag come --permission-mode o --settings

Le sessioni completate che non entrano nello schermo vengono raggruppate in una riga … N more. Il gruppo Completed occupa lo spazio verticale rimasto dopo i gruppi attivi e, su un terminale basso, l'intestazione si compatta in una singola riga di riepilogo così che le sessioni in lavorazione o che hanno bisogno di input rimangano visibili.

Filtrare le sessioni

Inizia il campo di dispatch con uno di questi filtri per restringere l'elenco mentre digiti:

Filtro Mostra
a:<name> Le sessioni che eseguono l'agente indicato
s:<state> Le sessioni nello stato indicato, come s:working, o sotto l'intestazione di gruppo indicata, come s:ready per Ready for review. s:blocked elenca tutto ciò che ti sta aspettando
n:<text> Le sessioni il cui nome o primo prompt contiene il testo, come n:login. Richiede Claude Code v2.1.287 o successivo
o:<text> Le sessioni il cui risultato contiene il testo, come o:merged. Un o: da solo elenca ogni sessione che ha riportato un risultato
Un numero di pull request o merge request, come #1234, o il suo URL La sessione che lavora su quella pull request o merge request
Qualsiasi altro URL La sessione il cui primo prompt conteneva quell'URL

Per combinare i filtri, inizia con a:, s:, n: o o: e aggiungine altri, separati da spazi. L'elenco mostra le sessioni che corrispondono a tutti. Ad esempio, s:blocked a:reviewer elenca le sessioni reviewer che ti stanno aspettando.

Mentre un filtro è attivo, i gruppi che hai compresso si espandono per mostrare le loro corrispondenze e una corrispondenza viene selezionata, quindi premendo Enter la apri. Svuota il campo per rimuovere il filtro, e quei gruppi si comprimono di nuovo.

Scorciatoie da tastiera

Premi ? in agent view per vedere le scorciatoie nel contesto. La tabella seguente le riassume.

Scorciatoia Azione
↑ / ↓ Spostati tra le righe
PgUp / PgDn Spostati in alto o in basso di una schermata di righe
Home / End Vai alla prima o all'ultima riga
Enter Collegati alla sessione selezionata, oppure invia il testo del campo se non è un filtro
Space Apri o chiudi il pannello peek per la sessione selezionata
Shift+Enter Inserisci una nuova riga nel campo di dispatch, come nel prompt principale
Ctrl+Enter Invia e collegati immediatamente, nei terminali in cui l'overlay ? elenca ctrl+enter to start and open
→ Collegati alla sessione selezionata
Alt+1..Alt+9 Collegati alla sessione 1–9 nella directory della sessione con il focus
Tab Con il campo vuoto, sfoglia tutti i subagent. Altrimenti applica il suggerimento evidenziato
Ctrl+S Cambia il raggruppamento tra stato e directory
Ctrl+T Fissa o sblocca la sessione selezionata
Ctrl+F Trova le sessioni per nome, con il filtro n:
Alt+↑ / Alt+↓ Vai all'intestazione di gruppo precedente o successiva
Ctrl+R Rinomina la sessione selezionata
Ctrl+G Apri il prompt di dispatch nel tuo $VISUAL o $EDITOR
Ctrl+J Inserisci una nuova riga nel campo di dispatch
Ctrl+X Ferma la sessione; premi di nuovo entro due secondi per eliminarla
Shift+↑ / Shift+↓ Riordina la sessione selezionata
Esc Chiudi il pannello peek, svuota il campo o esci. Quando hai aperto agent view mettendo in background la tua sessione con ←, l'ultimo Esc torna a quella conversazione invece di uscire. Con la modalità editor vim attiva, premere Esc nel campo passa dalla modalità INSERT alla modalità NORMAL e mantiene il tuo testo, come nel prompt principale
Ctrl+C Svuota il campo; premi due volte per uscire
? Mostra le scorciatoie

Le scorciatoie che hanno un'azione nel contesto Agents seguono il tuo keybindings.json. Lo stesso vale per Ctrl+G, tramite l'associazione chat:externalEditor del contesto Chat.

Inviare nuovi agenti

Puoi inviare nuove sessioni in background dalla vista agente, inviare o copiare una sessione interattiva esistente in background, oppure avviarne una direttamente dalla shell.

Dalla vista agente

Digita un prompt nell'input in fondo alla vista agente e premi Enter per avviare una nuova sessione in background. La sessione viene denominata automaticamente dal prompt; rinominala in seguito con Ctrl+R.

Il nome automatico è un'etichetta breve scritta da un modello di classe Haiku. Un nome che la sessione riceve in seguito appare anche sulla sua riga, incluso il titolo generato che la sessione riceve quando accetti un piano in quella sessione.

Incolla un'immagine nel prompt per includere uno screenshot o un diagramma con l'attività.

Il testo incollato più lungo di 800 caratteri o più di tre righe si comprime in un placeholder [Pasted text #N] in modo che l'input rimanga su una riga; il testo completo viene inviato quando invii. Per rivedere o modificare il testo compresso prima di inviare, incolla lo stesso testo di nuovo e il placeholder si espande di nuovo nell'input.

Prefissa o menziona parti del prompt per controllare come inizia la sessione:

Input Effetto
<agent-name> <prompt> Se la prima parola corrisponde a un nome di subagent personalizzato, quel subagent viene eseguito come agente principale della sessione con la configurazione dal suo frontmatter
@<agent-name> Menziona un subagent personalizzato in qualsiasi punto del prompt per eseguirlo come agente principale
@<repo> Menziona un repository per eseguire la sessione lì. Vedi Inviare a una directory specifica per sapere quali repository sono elencati
/<command> Suggerisci skill e comandi da inviare come prompt
! <command> Esegui un comando shell come processo in background invece di avviare una sessione Claude. Il processo appare come una riga a cui puoi collegarti, osservare e staccarti
#<number> o un URL di pull request o merge request Se una sessione sta già lavorando su quella pull request o merge request, Claude Code seleziona la sua riga invece di inviare una nuova sessione

Un piccolo insieme di comandi viene eseguito nella vista agente stessa invece di essere inviato:

  • /exit e /quit chiudono la vista agente
  • /logout ti disconnette
  • /model imposta il modello di invio
  • /login apre la finestra di dialogo di accesso in modo da poter accedere di nuovo senza collegarti a una sessione
  • Un /resume nudo, o il suo alias /continue, apre un selettore delle sessioni passate del repository per riportarne una indietro come sessione in background. Richiede Claude Code v2.1.212 o successivo

Le skill, i tuoi comandi e i built-in che espandono il prompt come /init vengono inviati a una nuova sessione in background come primo prompt. Gli altri comandi built-in mostrano invece un suggerimento attach to a session to run it. Tutto ciò che hai digitato rimane nell'input accanto al suggerimento in modo da poterlo modificare.

Confezionare un'attività ricorrente come skill ti consente di avviare lo stesso workflow dalla vista agente ripetutamente senza riscrivere il prompt.

Quando lo stesso @name corrisponde sia a un subagent che a un repository fratello, il subagent ha la precedenza. Si applica anche la corrispondenza della prima parola nuda, quindi un prompt che inizia casualmente con uno dei nomi dei tuoi subagent invia quel subagent piuttosto che trattare la parola come testo semplice. Usa la forma @ quando vuoi essere esplicito, o inizia il prompt con una parola diversa per evitare la corrispondenza.

Inviare a una directory specifica

Una nuova sessione viene eseguita nella directory da cui hai aperto la vista agente. Per indirizzare una directory diversa, usa uno di questi:

  • Apri claude agents in quella directory.

  • Apri claude agents in una directory padre e menziona un repository figlio con @<repo> nel prompt. Digitando @ vengono elencati questi target:

    • Repository Git un livello sotto la directory di avvio
    • I git worktree registrati del repository da cui hai avviato che si trovano all'interno del suo albero di directory, come quelli che Claude crea sotto .claude/worktrees/, etichettati con il loro branch estratto. I worktree aggiunti al di fuori del repository, come con git worktree add ../feature, non sono elencati
    • Qualsiasi directory che ha già una sessione nell'elenco

    Una directory il cui nome contiene uno spazio non è elencata.

  • Dalla shell, cd nella directory ed esegui claude --bg "<prompt>".

Quando la vista agente è raggruppata per directory, l'invio invia il prompt alla directory della riga selezionata, in modo da poter selezionare un gruppo e inviare in esso senza riscrivere il percorso.

Da dentro una sessione

Due comandi spostano il lavoro dalla sessione in cui sei in background: /background invia la conversazione corrente lì e libera il tuo terminale, e /fork invia una copia mentre continui a lavorare dove sei.

Inviare la sessione in background

Esegui /background o il suo alias /bg per spostare la conversazione corrente in una sessione in background. Passa un prompt come /bg run the test suite and fix any failures per dare prima un'istruzione in più. Se Claude sta rispondendo quando esegui /bg, la risposta continua nella sessione in background.

L'uscita da una sessione che ha ancora lavoro in background in esecuzione, come subagent, comandi shell in background, workflow o monitor, mostra una finestra di dialogo Background work is running invece di uscire immediatamente. Scegli Move to background and exit per inviare la sessione in background nello stesso modo in cui lo fa /background e tornare alla tua shell. L'opzione non viene mostrata quando la vista agente è disattivata.

Se una sessione in background nell'elenco ha già il nome della conversazione, Claude Code numera il nome della nuova riga, come my-session (2), e lascia il nome della riga esistente invariato. Per rinominare la nuova riga, selezionala nella vista agente e premi Ctrl+R.

Copiare la sessione con /fork

Esegui /fork per copiare la conversazione corrente in una nuova sessione in background mentre l'originale continua a essere eseguita. La copia inizia con tutto ciò che c'è nella conversazione fino a quel punto; vedi i punti elenco di seguito per sapere dove viene eseguita la copia. Trasporta anche il modello, la modalità di permesso, il livello di sforzo e qualsiasi directory o concessione di permesso "non chiedere di nuovo" che hai aggiunto durante la sessione. La copia appare come una riga propria nella vista agente.

Dopo il fork, le due conversazioni sono indipendenti: nulla di ciò che fa la copia entra nella conversazione originale da solo, anche se nelle sessioni in cui la messaggistica tra sessioni è abilitata, il Claude di entrambe le sessioni può esplicitamente inviare un messaggio all'altra.

La copia della sessione richiede Claude Code v2.1.212 o successivo; dalla v2.1.161 alla v2.1.211, /fork avvia invece un subagent con fork, che ora è /subtask. Quando la vista agente è disattivata, /fork mantiene il comportamento del subagent con fork e /subtask non è disponibile.

Passa un prompt come /fork open a draft pull request with the work so far e la copia inizia a lavorarci immediatamente. Senza un prompt la copia attende la sua prima istruzione: seleziona la sua riga in claude agents e premi Space per inviarne una, oppure esegui claude attach <id>. La riga selezionata mostra space to send it a prompt mentre attende.

La conferma di /fork è una riga che mostra lo stato della copia, come session running, il nome della sua riga nella vista agente e il suo ID di sessione per claude attach. Fai clic sul nome per passare alla copia: questa sessione si sposta in background, come premendo ←, e la vista agente apre la sessione della copia.

Tranne quando la copia modifica in posizione, Claude Code le indica di creare un worktree proprio prima di apportare modifiche al codice. Al di fuori di un repository git, solo una copia spostata fuori da un worktree creato da un hook riceve l'istruzione; senza un hook WorktreeCreate, la copia modifica in posizione. A una copia spostata fuori dal tuo worktree viene anche detto di non modificare mai, non eseguire comandi in né entrare in quel worktree, qualunque sia l'impostazione di isolamento.

Il punto in cui inizia la copia dipende da dove è in esecuzione la sessione corrente:

  • Come qualsiasi sessione inviata, la copia si sposta nel suo worktree prima di modificare i file. In quel caso la conferma non menziona dove viene eseguita la copia.
  • Quando la tua sessione si è spostata nel suo worktree collegato dopo l'avvio, la copia inizia da dove era la sessione prima dello spostamento e, a meno che non modifichi in posizione, apporta le sue modifiche al codice in un worktree proprio lì. Quando il tuo worktree è estratto su un branch, quell'istruzione dice anche a una copia il cui compito si basa sul tuo lavoro di basare il suo nuovo branch sul tuo, poiché il tuo branch rimane estratto nel tuo worktree. La conferma termina con runs in the origin tree.
  • Quando hai avviato la sessione all'interno di un worktree collegato di un repository che ha un albero di lavoro principale, la copia inizia in quell'albero di lavoro principale, con la stessa regola del worktree proprio ma nessuna istruzione sul branch. Anche qui la conferma termina con runs in the origin tree.
  • Una sessione avviata all'interno di un worktree di un layout di repository bare non ha un albero di lavoro principale a cui tornare, quindi la copia rimane dove è, e la conferma termina con edits this checkout. La stessa nota appare quando l'isolamento con worktree è disattivato in una sessione che non è all'interno di un worktree collegato, perché la copia modifica allora i file che hai aperto.

Le sessioni avviate con flag di avvio che la copia non erediterebbe, come un prompt di sistema sostituito o un'allowlist --tools, non possono essere forkate; Claude Code lo dice invece di fare una copia parziale. Una sessione inviata dalla vista agente viene forkata normalmente: la copia viene avviata con la stessa definizione di agente e le stesse istruzioni aggiunte della sessione da cui proviene.

Cosa viene trasportato quando invii in background

L'invio in background avvia un nuovo processo che riprende dalla conversazione salvata, e il lavoro in corso si sposta in esso: comandi shell in background in esecuzione, subagent in background, workflow dinamici, attività pianificate che hai creato con /loop, e le risposte automatiche di Claude ai commenti degli artefatti vengono tutti trasportati e continuano a essere eseguiti lì. Un subagent si sposta insieme a tutto ciò che ha avviato, quindi viene trasportato solo quando anche tutto quel lavoro può spostarsi. Per interrompere il lavoro in corso invece di trasportarlo, imposta la variabile d'ambiente CLAUDE_DISABLE_ADOPT=1; Claude Code ti chiede allora di confermare prima di inviare in background.

Quando un workflow dinamico ha ancora subagent in esecuzione, Claude Code chiede prima di inviare in background con la finestra di dialogo Background this session?, che dice quanti subagent verrebbero riavviati. Scegli Stay per lasciarli finire prima. Se confermi, Claude Code riproduce l'esecuzione nella sessione in background: i subagent che erano ancora in esecuzione ricominciano dall'inizio, quindi i token che hanno usato finora vengono spesi di nuovo. Vedi Riprendere dopo una pausa per sapere quali subagent completati restituiscono i loro risultati salvati e quali vengono eseguiti di nuovo.

Claude Code interrompe il lavoro che non può essere trasportato, come un monitor in esecuzione, e insieme ad esso interrompe un subagent in background che possiede un monitor. Quando uno di questi lavori è in esecuzione, Claude Code mostra la finestra di dialogo Background this session? in modo che tu possa confermare prima che interrompa il lavoro.

Una volta in background, la sessione può avviare nuovi subagent, monitor e comandi in background, e questi continuano a essere eseguiti durante i successivi distacchi e ricollegamenti.

I flag di configurazione dell'avvio originale vengono trasportati nella sessione in background, quindi i suoi server MCP, le impostazioni e il modello di fallback rimangono in vigore:

  • --mcp-config e --strict-mcp-config
  • --settings
  • --setting-sources
  • --add-dir
  • --plugin-dir
  • --fallback-model
  • --allow-dangerously-skip-permissions

Vengono trasportate anche le directory che hai aggiunto durante la sessione con /add-dir. Trasportare --allow-dangerously-skip-permissions mantiene bypassPermissions raggiungibile nella sessione in background, ma non concede nulla di nuovo: la modalità richiede comunque l'accettazione interattiva una tantum descritta in Modalità di permesso, modello e sforzo.

Dalla tua shell

Passa --bg o la sua forma lunga --background per avviare una sessione che va direttamente in background:

claude --bg "investigate the flaky SettingsChangeDetector test"

Il prompt è l'argomento posizionale, non un valore -p. Claude Code rifiuta --bg combinato con -p o --print prima che venga creata una sessione, perché --print non avvia mai la sessione interattiva a cui claude agents si collega.

Se esegui claude --bg da un terminale in una directory che non hai considerato attendibile, appare prima la finestra di dialogo di attendibilità del workspace e la sessione inizia una volta che accetti. Se rifiuti, Claude Code esce senza avviare una sessione. Dove nessuna finestra di dialogo può apparire, come in uno script, il comando esce invece con un errore Workspace not trusted.

Per eseguire un subagent specifico che hai definito, come un code-reviewer, come agente principale della sessione, combina --bg con --agent:

claude --agent code-reviewer --bg "address review comments on PR 1234"

Se il nome non corrisponde a nessuno dei tuoi subagent, l'avvio fallisce: Claude Code stampa un avviso no agent named e segnala comunque la sessione come inviata in background, ma la sessione esce immediatamente con un errore --agent '<name>' not found.

Quando la sessione in background in seguito riprende o si riavvia, Claude Code ripristina l'agente e le sue restrizioni sugli strumenti; per il suo prompt di sistema, vedi Flag del prompt di sistema nelle conversazioni riprese. Cerca l'agente prima nella directory della sessione stessa, a condizione che tu abbia considerato attendibile quel workspace, quindi un agente con ambito di progetto si carica ancora quando la sessione viene ripresa da un'altra directory. Se l'agente non esiste più, la sessione continua con gli strumenti predefiniti e la sua trascrizione si apre con un avviso che nomina l'agente.

Per continuare una conversazione esistente in background, passa il suo ID di sessione completo con --resume:

claude --resume 1f0e2c9a-6d0b-4c11-9f39-2a77c1d4e8b5 --bg "pick up where you left off and finish the migration"

Su Claude Code v2.1.257 o successivo, Claude Code continua quella sessione con lo stesso ID, oppure avvia una copia con un nuovo ID e stampa una riga note: che spiega perché non poteva continuare in posizione. Quando la sessione continua in posizione, claude agents mostra una riga per essa.

Quando combini --bg con --continue, un --resume nudo, o --resume con un nome o percorso di file, Claude Code avvia sempre una copia di questo tipo. Aggiungi --fork-session per avviare una copia di proposito, senza la nota.

Passa --name per impostare il nome di visualizzazione della sessione nella vista agente invece di quello generato automaticamente:

claude --bg --name "flaky-test-fix" "investigate the flaky SettingsChangeDetector test"

Dopo l'invio in background, Claude stampa l'ID breve della sessione e i comandi per gestirla. Quando il servizio che ospita le sessioni in background non è già in esecuzione, --bg potrebbe prima stampare Starting background service… sopra questo output. Quando passi --name, il nome appare dopo l'ID breve:

backgrounded · 7c5dcf5d · flaky-test-fix
  claude agents             list sessions
  claude attach 7c5dcf5d    open in this terminal
  claude logs 7c5dcf5d      show recent output
  claude stop 7c5dcf5d      stop this session

Eseguire un comando shell

Per eseguire un comando shell come processo in background invece di una sessione Claude, passa --exec. L'esempio seguente esegue pytest -x come processo in background:

claude --bg --exec 'pytest -x'

Dalla vista agente, invia lo stesso tipo di processo digitando ! come primo carattere dell'input di invio: il ! viene mostrato come prefisso, tutto ciò che lo segue è il comando, e Enter avvia il processo.

Il comando viene eseguito come processo supportato da PTY e appare come una riga nella vista agente, con la riga di output più recente come suo stato. Un processo shell esegue il comando al posto di Claude, quindi nessun modello viene invocato e l'output non viene inviato a nessuna sessione.

Per vedere l'output, collegati alla riga, premi Space per visualizzarla in anteprima senza collegarti, oppure esegui claude logs <id> dalla tua shell. L'output acquisito rimane in memoria e non viene scritto su disco. La riga e il suo output vengono rimossi automaticamente circa cinque minuti dopo l'uscita del comando, quindi leggilo prima se ti serve il risultato.

Come vengono isolate le modifiche ai file

Quando invii una sessione in background dalla vista agente o ne avvii una con claude --bg, la sessione inizia nella tua directory di lavoro. Prima di modificare i file, Claude sposta la sessione in un git worktree isolato sotto .claude/worktrees/, in modo che le sessioni parallele possano leggere lo stesso checkout ma ognuna scriva nel proprio. Una volta che la sessione è nel suo worktree, Claude Code applica l'isolamento con worktree per la sessione e per qualsiasi subagent che genera.

Claude salta il worktree quando:

  • Hai spostato in background una sessione che avevi già aperta con ← o /background. Quella sessione continua a modificare i file dove stava già lavorando
  • La sessione è già all'interno di un git worktree collegato, che Claude l'abbia creato sotto .claude/worktrees/ o tu l'abbia creato con git worktree add da qualche altra parte
  • Il file che Claude sta modificando è all'interno di un git worktree collegato, come uno che la sessione o il suo subagent ha creato con git worktree add
  • La directory di lavoro non è un repository git e non è configurato alcun hook WorktreeCreate
  • La scrittura è al di fuori della directory di lavoro

Per disattivare l'isolamento con worktree per un repository in cui i git worktree non sono pratici, imposta worktree.bgIsolation su "none". Le sessioni in background modificano quindi direttamente la tua copia di lavoro senza spostarsi prima in un worktree. Aggiungi l'impostazione al .claude/settings.json del progetto:

{
  "worktree": {
    "bgIsolation": "none"
  }
}

Al di fuori di un repository git, le sessioni scrivono direttamente nella directory di lavoro e non sono isolate l'una dall'altra, quindi evita di inviare sessioni parallele che modificano gli stessi file. Se usi un sistema di controllo della versione diverso, configura un hook WorktreeCreate e Claude isola le modifiche nello stesso modo in cui lo fa per git.

Quando l'hook fallisce in una directory che non è un repository git, Claude salta l'isolamento per quella directory e modifica la directory di lavoro in posizione. All'interno di un repository git, una sessione che Claude sposta in un worktree prima di modificare non può modificare i file nel checkout condiviso finché quello spostamento non avviene.

Per trovare il percorso del worktree di una sessione, collegati e controlla la sua directory di lavoro.

Un subagent generato dalla sessione in background eredita la directory di lavoro della sessione. Una volta che la sessione è in un worktree, le modifiche ai file del subagent finiscono in quel worktree piuttosto che nella tua copia di lavoro. Per dare invece a un subagent un proprio worktree separato, imposta isolation: worktree nel suo frontmatter o passa isolation: "worktree" quando lo generi.

Quando una sessione in background ha apportato modifiche al codice in un worktree in cui Claude è entrato, Claude Code indica a Claude di preservare il lavoro prima di finire, in modo che sopravviva se elimini la sessione e il suo worktree:

  • Commit e push: Claude esegue il commit senza chiedere, e fa il push del branch quando il repository ha un remote.
  • Draft pull request: Claude ne apre una quando l'attività lo richiede, e l'etichetta #N appare sulla riga.
  • Mai: fare il push su main o master, fare force-push ed eseguire il merge.
  • Le tue istruzioni git hanno la precedenza: se l'attività, CLAUDE.md o la memoria dicono che il commit o il push li gestisci tu, Claude lascia git a te.

Una sessione che modifica un checkout che non ha isolato da sé chiede comunque prima di eseguire il commit o di cambiare branch. Questo si applica quando l'isolamento è impostato su "none", quando lo spostamento nel worktree è fallito, o quando la sessione è iniziata all'interno di un worktree che esisteva già.

Qualunque sia l'attività, Claude termina il lavoro con un rapporto che dice cosa ha fatto e dove si trova il lavoro: un percorso, un branch, una pull request, o la risposta stessa.

Cosa rimuove l'eliminazione di una sessione

Elimina una sessione premendo Ctrl+X due volte nella vista agente o con claude rm. Tranne nei casi di mantenimento descritti di seguito, la sessione esce dall'elenco. La sua trascrizione rimane sulla tua macchina tramite claude --resume, e la rimozione sopravvive ai riavvii del supervisore.

Cosa succede a un worktree che Claude ha creato per la sessione:

  • La vista agente lo rimuove, incluse le modifiche non sottoposte a commit, quindi esegui prima il commit di ciò che vuoi mantenere.

  • claude rm lo mantiene, insieme alla riga della sessione, quando ha modifiche non sottoposte a commit.

  • Né la vista agente né claude rm rimuovono un worktree che un'altra sessione in esecuzione sta usando o ha bloccato, ed eliminare di nuovo non cambia questo. Claude Code mantiene il worktree e la sessione, e indica la directory mantenuta e il motivo; nella vista agente, la riga della sessione mostra not deleted. Chiudi l'altra sessione, quindi elimina di nuovo.

  • Quando elimini una sessione il cui worktree ha commit che Claude Code non può confermare siano salvati altrove, Claude Code mantiene il worktree e la sessione, e il messaggio indica il branch del worktree e quanti commit non sono stati sottoposti a push. Il messaggio offre anche i due modi per procedere: fare il push dei commit, o eliminare di nuovo per scartarli.

    I commit su un remote non bloccano l'eliminazione. Nemmeno i commit sulla copia locale del branch predefinito del tuo remote origin, purché quel branch sia estratto nel tuo checkout principale, cioè la directory del repository stessa anziché un worktree.

    Dopo quel rifiuto, scegli:

    • Per mantenere i commit, fanne il push, o eseguine il merge in quel branch predefinito, quindi elimina di nuovo la sessione.
    • Per scartarli, elimina di nuovo la sessione senza fare il push: premi Ctrl+X due volte sulla sua riga nella vista agente, o esegui il comando claude rm <id> --discard-unpushed che il rifiuto ha stampato. Questo rimuove la sessione e il worktree insieme al suo branch, scartando i commit non sottoposti a push e le eventuali modifiche non sottoposte a commit.

    Quando elimini di nuovo, Claude Code scarta solo ciò che il rifiuto ha mostrato: se nel frattempo il worktree ha ricevuto un nuovo commit, Claude Code lo mantiene di nuovo e mostra lo stato aggiornato.

    Quando anche i record di un'altra sessione terminata nominano il worktree, questo rimane quando elimini di nuovo; fai il push dei commit, quindi elimina di nuovo.

  • Un worktree che git non riconosce più, ad esempio dopo git worktree prune, non blocca l'eliminazione. Claude Code elimina la sessione e lascia la directory su disco.

  • Quando git o il tuo hook WorktreeRemove non riesce a rimuovere il worktree, Claude Code mantiene il worktree e la sessione, e il messaggio indica la causa. Per un hook, il messaggio dice come è terminato, ad esempio exited 1, e cita l'inizio del suo stderr. Il messaggio ti dice anche quale di queste azioni eseguire dopo:

    • Elimina di nuovo la sessione per rimuovere comunque la directory, premendo Ctrl+X due volte sulla sua riga nella vista agente o eseguendo il comando claude rm <id> --force-remove-worktree <worktree-id> che il rifiuto di claude rm ha stampato. Il branch del worktree rimane nel repository.

      Claude Code offre questa opzione solo quando può confermare tutto quanto segue:

      • La directory è uno dei worktree collegati del repository sotto .claude/worktrees/
      • Né il worktree né un submodule estratto hanno modifiche non sottoposte a commit ai file tracciati
      • Nessun record di un'altra sessione lo nomina

      Quando Claude Code non può verificare lo stato del checkout di un submodule, ad esempio uno sostituito da un repository git separato, non offre nemmeno questa opzione.

    • Risolvi ciò che ostacola l'operazione, ad esempio eseguendo il commit o lo stash delle modifiche non sottoposte a commit, spostando un repository git separato fuori dal worktree, chiudendo ciò che sta usando la directory, o correggendo l'hook, quindi elimina di nuovo la sessione.

    • Rimuovi tu stesso la directory, quindi elimina di nuovo la sessione.

Un worktree che hai creato tu stesso e all'interno del quale hai avviato la sessione viene lasciato in posizione in entrambi i casi.

Una sessione la cui directory di worktree non appartiene a nessun repository git, perché il repository è stato eliminato o un hook WorktreeCreate ha creato la directory altrove, può comunque essere eliminata. Finché nella directory rimangono file:

  • La vista agente chiede la stessa doppia pressione di Ctrl+X prima di scartarli. Per una directory creata da un hook esegue invece il tuo hook WorktreeRemove, e senza di esso rifiuta l'eliminazione e mantiene la sessione.
  • claude rm mantiene la sessione e il worktree, e indica il motivo.

Entrambe le vie mantengono una directory nominata dai record di un'altra sessione terminata.

Impostare il modello

Il nome del modello mostrato nell'intestazione della vista agente è il valore predefinito di invio. Le nuove sessioni che avvii dall'input utilizzano questo modello, che proviene dall'impostazione model nelle tue impostazioni utente. Impostalo selezionando un modello nel selettore /model, o modifica direttamente l'impostazione.

Per sovrascrivere il valore predefinito di invio per l'intera sessione della vista agente, passa --model quando apri la vista agente. Vedi Modalità di permesso, modello e sforzo.

Per cambiare il valore predefinito di invio da dentro la vista agente, digita /model seguito da un nome di modello nell'input di invio e premi Enter. L'intestazione si aggiorna per mostrare quel modello con un marcatore (session), e le sessioni che invii in seguito lo utilizzano. Digita /model default per cancellare l'override e tornare al valore predefinito di invio. Questo override dura per il resto dell'esecuzione corrente di claude agents e non scrive nel tuo file di impostazioni. L'esempio seguente invia una sessione su Opus e la successiva su Sonnet:

/model opus
refactor auth
/model sonnet
run the test suite

Ogni sessione in background può essere eseguita su un modello diverso. Per sovrascriverlo per una sessione:

  • Dalla shell, passa --model con claude --bg.
  • Collegati a una sessione in esecuzione ed esegui /model per cambiare: una scelta dal selettore, o un /model <name> digitato, viene salvata come tuo valore predefinito per le nuove sessioni a meno che non premi s nel selettore per un cambio valido solo per la sessione. Un cambio valido solo per la sessione persiste se la sessione viene rigenerata.
  • Invia un subagent il cui frontmatter imposta un campo model.

Modalità di permesso, modello e sforzo

Una sessione in background prende le sue impostazioni, il provider, la modalità di permesso, il modello e lo sforzo da dove e come l'hai inviata. Le sottosezioni di seguito coprono ogni fonte, e cosa persiste quando il supervisore riavvia la sessione.

Impostazioni e provider

Una sessione in background legge le sue impostazioni dalla directory in cui viene eseguita, come se avessi avviato claude lì con i flag di configurazione che ha trasportato. Questo include i valori env nelle impostazioni del progetto, quindi una variabile ANTHROPIC_MODEL o di provider impostata lì si applica a ogni sessione in background in quella directory.

Una sessione in background viene anche eseguita con il PATH della shell da cui l'hai inviata, quindi i comandi che esegue trovano gli stessi strumenti del tuo terminale. Mantiene anche la selezione del provider cloud di quella shell, come CLAUDE_CODE_USE_BEDROCK o CLAUDE_CODE_USE_VERTEX, insieme ai suoi alias ANTHROPIC_DEFAULT_*_MODEL e a qualsiasi override CLAUDE_CODE_EXTRA_BODY che hai esportato lì.

Gateway LLM

Se instradi Claude Code attraverso un gateway LLM, metti le variabili del gateway nel blocco env di un file di impostazioni anziché esportarle nella tua shell, e le sessioni in background le leggono insieme al resto delle loro impostazioni. Impostare in un file di impostazioni mostra il blocco e quale file di impostazioni usare per le credenziali.

Se invece esporti un ANTHROPIC_BASE_URL del gateway solo nella tua shell, questo raggiunge una sessione in background, insieme a ANTHROPIC_CUSTOM_HEADERS e alle credenziali che hai esportato con esso, solo quando il supervisore stesso è stato avviato da una shell che ha esportato lo stesso gateway, e solo in questi casi:

  • Invii in background la tua sessione con ← o /background
  • Invii una sessione nella directory in cui ti trovi
  • Risvegli una sessione interrotta nella directory in cui ti trovi collegandoti o rispondendole

Claude Code inoltra un gateway posto davanti a un provider cloud. Se la shell da cui invii seleziona il provider ed esporta il suo endpoint del gateway con il relativo flag di bypass dell'autenticazione, Claude Code inoltra la coppia endpoint-flag alla sessione alle stesse condizioni che si applicano a ANTHROPIC_BASE_URL, insieme a ANTHROPIC_CUSTOM_HEADERS. Ad esempio, esporta CLAUDE_CODE_USE_VERTEX=1 con ANTHROPIC_VERTEX_BASE_URL e CLAUDE_CODE_SKIP_VERTEX_AUTH=1, e Claude Code inoltra quell'endpoint e quel flag.

Claude Code applica un gateway inoltrato solo al processo in esecuzione di quella sessione e non lo scrive mai su disco.

Modalità di permesso

La modalità di permesso dipende da come hai avviato la sessione:

  • Inviata in background con /bg o ←: Claude Code mantiene la modalità di permesso in cui si trovava la sessione, quindi una sessione che hai passato ad acceptEdits o auto rimane tale dopo il distacco
  • Inviata da una vista agente che hai aperto con ←: la configurazione del target viene per prima, e la modalità di permesso della sessione da cui provieni si applica quando nient'altro ne imposta una
  • Inviata da claude agents avviato in una shell, o con claude --bg: la nuova sessione inizia come farebbe una nuova sessione claude in quella directory, a meno che tu non l'abbia inviata da una vista agente aperta con valori predefiniti di invio. In quale modalità di permesso inizia una sessione elenca l'ordine

Per una sessione che invii da una vista agente aperta con ←, Claude Code prende la modalità di permesso dalla prima di queste che si applica:

  1. La permissions.defaultMode della directory target. Si applicano due regole sull'origine:
  2. La modalità di permesso della sessione da cui provieni

Quando Claude Code rifiuta la modalità di una fonte perché troppo permissiva, decide la fonte successiva nell'elenco. Ad esempio, se invii da una sessione in plan mode in una directory le cui impostazioni sotto controllo di versione chiedono acceptEdits, la nuova sessione inizia in plan mode. Se sposti quella defaultMode in ~/.claude/settings.json, si applica indipendentemente dalla modalità di permesso della sessione da cui provieni.

L'ordine di permissività è: plan, poi Manual e dontAsk, poi acceptEdits e auto, ciascuna delle quali conta come più permissiva dell'altra, poi bypassPermissions.

Valori predefiniti di invio

Per impostare i valori predefiniti per ogni sessione che invii dalla vista agente, passa uno qualsiasi tra --permission-mode, --model, --effort o --agent quando la apri:

claude agents --permission-mode plan --model opus --effort high

--effort qui accetta gli stessi valori del flag --effort di livello superiore, incluso ultracode.

--agent imposta il subagent utilizzato quando un prompt di invio non ne nomina uno, né con @name né come prima parola. Il valore predefinito è l'impostazione agent se è impostata, altrimenti l'agente claude generico integrato. Nominare un subagent nell'input di invio ha la precedenza su entrambi.

claude agents accetta anche --dangerously-skip-permissions come abbreviazione di --permission-mode bypassPermissions, e --allow-dangerously-skip-permissions per rendere bypassPermissions disponibile nel ciclo Shift+Tab di ogni sessione inviata senza iniziare in quella modalità. Entrambi corrispondono ai flag CLI di livello superiore.

Passa --restricted per avviare ogni sessione che invii dalla vista in modalità ristretta, come se ognuna fosse avviata con il flag di livello superiore --restricted. Richiede Claude Code v2.1.248 o successivo.

I valori predefiniti attivi appaiono nel piè di pagina sotto l'input di invio.

Claude Code rifiuta claude --bg --permission-mode bypassPermissions finché non hai accettato il disclaimer di bypass eseguendo claude --dangerously-skip-permissions una volta in modo interattivo, poiché quella modalità consente a una sessione che non stai osservando di agire senza approvazione. Passare --dangerously-skip-permissions o --permission-mode bypassPermissions a claude agents mostra lo stesso disclaimer se non l'hai accettato in precedenza, e accettarlo applica bypassPermissions alle sessioni che avvii dalla vista. Anche passare --allow-dangerously-skip-permissions mostra lo stesso disclaimer, e accettarlo rende bypassPermissions disponibile nel ciclo Shift+Tab di quelle sessioni senza avviarle in quella modalità.

Cosa persiste attraverso i riavvii

La modalità di permesso, il modello e lo sforzo che hai scelto per una sessione in background, insieme ai flag di configurazione che trasporta, persistono tutti quando il supervisore in seguito interrompe e riavvia il suo processo. Una sessione che hai avviato con claude --bg --dangerously-skip-permissions o claude --bg --permission-mode bypassPermissions rimane in bypassPermissions dopo quel riavvio. Viene mantenuto anche un modello o uno sforzo che hai cambiato a metà sessione con /model o /effort.

Se la sessione ha preso il suo sforzo dalle tue impostazioni anziché da --effort o /effort, Claude Code rilegge le tue impostazioni ogni volta che avvia un processo per la sessione. Dopo che hai modificato lo sforzo salvato in settings.json, la modifica raggiunge le sessioni che invii in background con ← o /bg, e i loro riavvii successivi. Lo sforzo salvato è la chiave effortLevel o una voce modelSettings.

Claude Code mantiene anche, attraverso quel riavvio, un nome che hai impostato con /rename o Ctrl+R, in modo che tu possa ancora eseguire claude --resume <name> per raggiungere la sessione.

Anche un prompt che hai messo da parte con Ctrl+S mentre eri collegato viene mantenuto con la sessione. Riapri la sessione dopo che il suo processo è stato interrotto o riavviato, e premi Ctrl+S per ripristinare il testo messo da parte. Il contenuto incollato nel testo messo da parte non sopravvive al riavvio.

Impostazioni, plugin e server MCP

La vista agente accetta gli stessi flag di configurazione di claude per caricare impostazioni, plugin, server MCP e directory aggiuntive. La vista agente applica --settings, --setting-sources e --plugin-dir a se stessa e passa ogni flag di configurazione alle sessioni che invii da essa, quindi un plugin o un server MCP che carichi in questo modo è disponibile in quelle sessioni.

Flag Effetto
--settings <file-or-json> Sovrascrive le impostazioni per la vista agente e le sessioni inviate
--setting-sources <sources> Carica solo le fonti di impostazioni nominate, nella vista agente e nelle sessioni inviate
--add-dir <path> Concede l'accesso ai file a una directory aggiuntiva
--plugin-dir <path> Carica un plugin da una directory locale
--mcp-config <file-or-json> Carica server MCP da un file di configurazione o da una stringa JSON
--strict-mcp-config Usa solo i server MCP da --mcp-config, ignorando le altre configurazioni MCP. Vedi Controllo esclusivo con managed-mcp.json per sapere cosa fa il flag con un file MCP gestito

Ripeti --add-dir, --plugin-dir o --mcp-config una volta per ogni valore. claude agents non supporta la forma separata da spazi, come --add-dir a b c.

Puoi posizionare --settings, --setting-sources e --plugin-dir prima o dopo agents. Mantieni --add-dir e --mcp-config dopo agents: se posizioni uno dei due prima di agents, claude agents --json fallisce con un errore unknown option.

L'esempio seguente apre la vista agente con un override delle impostazioni e una directory aggiuntiva:

claude agents --settings ./ci-settings.json --add-dir ../shared-lib

--settings accetta un percorso di file o una stringa JSON inline. Un percorso di file deve puntare a un file esistente; in caso contrario, Claude Code esce con un errore Settings file not found.

Gestire le sessioni dalla shell

Ogni sessione in background ha un ID breve che puoi usare dalla shell. L'ID viene stampato quando avvii una sessione con claude --bg, e l'ID di ogni sessione è il nome della sua directory sotto ~/.claude/jobs/. Questi comandi sono utili per lo scripting o quando non vuoi aprire agent view.

Comando Scopo
claude agents Apri agent view
claude agents --cwd <path> Apri agent view limitato alle sessioni avviate sotto <path>
claude agents --json Stampa le sessioni come un array JSON e esci. Vedi Elencare le sessioni come JSON
claude attach <id|name> Collegati a una sessione in questo terminale
claude logs <id|name> Stampa l'output recente della sessione
claude stop <id> Ferma una sessione. Accetta anche claude kill
claude respawn <id> Riavvia una sessione, in esecuzione o fermata, ad esempio per utilizzare un binario Claude Code aggiornato. La sessione riavviata riprende la sua conversazione salvata; quando nessuna è su disco, esegue di nuovo il suo prompt originale come una nuova conversazione
claude respawn --all Riavvia ogni sessione in esecuzione, ad esempio per spostare tutte le sessioni su un binario Claude Code aggiornato contemporaneamente
claude rm <id> Rimuovi una sessione dall'elenco, insieme a un worktree creato da Claude per essa quando è sicuro eliminarlo; vedi Cosa elimina l'eliminazione di una sessione. La trascrizione della conversazione rimane sulla tua macchina locale e rimane disponibile tramite claude --resume
claude rm <id> --discard-unpushed <commit>@<worktree-id> Elimina una sessione la cui eliminazione è stata rifiutata a causa di commit non sottoposti a push, scartando il worktree insieme al suo branch e ai commit. Passa il valore esatto che il rifiuto ha stampato; vedi Cosa elimina l'eliminazione di una sessione. Richiede v2.1.260 o successivo
claude rm <id> --force-remove-worktree <worktree-id> Elimina una sessione la cui eliminazione è stata rifiutata perché git o l'hook WorktreeRemove non potevano rimuovere il suo worktree, eliminando comunque la directory del worktree e lasciando il suo branch nel repository. Passa il valore esatto che il rifiuto ha stampato; vedi Cosa elimina l'eliminazione di una sessione. Richiede v2.1.268 o successivo
claude daemon status Stampa lo stato del supervisore, la versione, la directory socket e il numero di worker
claude daemon stop --any Ferma il processo supervisore e le sessioni in background che ospita. Passa --keep-workers per lasciare le sessioni in background in esecuzione in modo che il supervisore successivo si riconnetta ad esse. Il prossimo claude agents o claude --bg avvia un supervisore nuovo

claude attach e claude logs possono accettare parte del nome di una sessione in esecuzione al posto dell'ID, come in claude logs "auth refactor". Passare un nome richiede Claude Code v2.1.290 o successivo.

Elencare le sessioni come JSON

claude agents --json stampa le sessioni attive come un array JSON e esci: ogni sessione live, più sessioni in background che stanno ancora lavorando o sono bloccate anche quando il loro processo è uscito. Aggiungi --all per includere anche le sessioni in background completate, e --cwd <path> per limitare l'elenco alle sessioni avviate sotto quella directory.

Ogni voce descrive una sessione:

Campo Presente Descrizione
cwd, kind, startedAt Sempre La directory di lavoro, interactive o background, e l'ora di inizio in millisecondi Unix
id Sessioni in background ID breve, utilizzabile con claude attach, claude logs, e claude stop
state Sessioni in background Uno di working, blocked, done, failed, o stopped. Vedi Leggere lo stato della sessione da uno script per sapere cosa significa ogni valore
pid, status Mentre il processo è attivo ID del processo e uno di busy, waiting, o idle
waitingFor Quando status è waiting Su cosa è bloccata la sessione: permission prompt per un'approvazione, input needed per una domanda da Claude o una richiesta di input da un server MCP, sandbox request, worker request, o dialog open
sessionId, name Quando impostati sessionId è l'UUID completo della sessione, utilizzabile con claude --resume. Il name di una sessione interattiva è il suo nome di visualizzazione predefinito finché non nomini la sessione o accetti un piano in essa

Leggere lo stato della sessione da uno script

claude agents --json è il modo supportato per leggere lo stato della sessione dall'esterno di Claude Code, ad esempio da una barra di stato, un pianificatore, o un'altra sessione Claude che supervisiona il lavoro in background. Esegui il polling di claude agents --json --all, che continua a elencare le sessioni il cui processo è uscito, e leggi state, status, e waitingFor di ogni voce.

state Cosa significa
working Un turno è in esecuzione, o la sessione è tra i passaggi del lavoro che guida da sola, come un'iterazione /loop o un'attesa su CI. status ti dice se il suo processo è busy in questo momento
blocked La sessione è in attesa di te: una domanda che ha posto, una decisione di permesso o sandbox, un errore che solo tu puoi cancellare come un login scaduto, o il suo primo prompt se l'hai avviata senza uno. Quando l'attesa è un prompt aperto in un processo live, waitingFor lo nomina
done L'ultimo turno ha finito quello che hai chiesto e la sessione è pronta per il tuo prossimo prompt, indipendentemente dal fatto che il suo processo sia ancora attivo o meno
failed, stopped L'attività è terminata con un errore, o la sessione è stata fermata

Una sessione che ha finito il suo turno e sta aspettando la tua prossima istruzione legge done, non blocked. blocked significa sempre che la sessione ha bisogno di qualcosa da te prima di poter continuare.

I file sotto ~/.claude/jobs/<id>/ non sono un'interfaccia stabile. I valori che una sessione o un altro programma scrive in state, detail, tempo, o needs vengono sostituiti al prossimo aggiornamento.

Se vuoi che una sessione segnali il progresso con le sue stesse parole, falle scrivere un file proprio, ad esempio sotto $CLAUDE_JOB_DIR/tmp, invece di modificare state.json.

Come sono ospitate le sessioni in background

Claude Code tratta ogni sessione elencata nella vista agente come una sessione in background, indipendentemente dal fatto che tu sia attualmente collegato ad essa. Al contrario, una sessione avviata eseguendo claude direttamente è legata a quel terminale e termina quando si chiude, a meno che tu non la invii in background.

Per verificare quale tipo di sessione stai utilizzando, esegui /status. La riga Session kind legge background job · attached o background job · unattended in una sessione in background, a seconda che un terminale sia collegato, e interactive in qualsiasi altra sessione.

Il processo supervisor

Il supervisor è un servizio in background che esegue le tue sessioni in background in modo che continuino a funzionare dopo che chiudi la vista agente o il tuo terminale. Claude Code lo avvia la prima volta che metti una sessione in background o apri la vista agente, e non hai bisogno di gestirlo tu stesso.

Ogni sessione è il suo proprio processo Claude Code sotto il supervisor, e ciò che accade a quel processo dipende dallo stato della sessione:

  • In esecuzione, in pausa su una richiesta di permesso o un'altra finestra di dialogo, o collegato: il processo continua a funzionare. Un subagent, workflow o monitor in esecuzione conta come in esecuzione.
  • Terminato o in attesa del tuo prossimo messaggio, e scollegato per circa un'ora: il supervisor ferma il processo per liberare risorse. Una sessione che ha terminato il suo turno chiedendoti una domanda conta come in attesa del tuo prossimo messaggio. La conversazione rimane su disco, e la prossima volta che ti colleghi o rispondi, la sessione riprende da dove l'ha lasciata. Fissa una sessione con Ctrl+T per mantenere il suo processo in esecuzione.
  • Uscito inaspettatamente mentre il supervisor è in esecuzione: il supervisor riavvia il processo. Terminare una sessione che hai messo in background tu stesso con ← o /background, ad esempio con kill, la contrassegna come fermata invece di riavviarla. Per le sessioni che sono terminate con un arresto, vedi Le sessioni vengono visualizzate come non riuscite o fermate dopo l'arresto.
  • Dopo un aggiornamento automatico: il supervisor riavvia se stesso sulla nuova versione e sposta le sessioni inattive in background. Le sessioni che sono in esecuzione, in attesa di te, o collegate non vengono interrotte.

Quando il processo di una sessione si ferma o si riavvia, i comandi shell in background, i workflow dinamici e i subagent in background che Claude ha avviato in essa si trasferiscono al suo prossimo processo; i monitor in esecuzione e i comandi shell che un subagent ha avviato si fermano con il processo. L'eliminazione della sessione ferma tutto ciò che ha trasferito. Per fermare tutto con il processo invece, imposta CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF su 1.

Il supervisor e le sue sessioni si autenticano con le stesse credenziali archiviate delle tue sessioni interattive. Per quali impostazioni e variabili di shell raggiungono una sessione, incluso PATH, vedi Impostazioni e provider. Per gli endpoint del gateway, vedi Gateway LLM.

Dove lo stato è archiviato

Lo stato della sessione è archiviato sotto la tua directory di configurazione Claude Code. Se imposti CLAUDE_CONFIG_DIR, il supervisor usa quella directory invece di ~/.claude e viene eseguito come un'istanza separata con le sue proprie sessioni.

Percorso Contenuti
~/.claude/daemon.log Log del supervisor
~/.claude/daemon/roster.json Elenco delle sessioni in background in esecuzione, usato per ricollegarsi dopo un riavvio
~/.claude/jobs/<id>/state.json Stato per sessione mostrato in agent view. Leggilo attraverso claude agents --json invece di analizzare il file
~/.claude/jobs/<id>/tmp/ Directory di scratch per sessione. Le chiamate Write e Edit di Claude qui non richiedono il permesso. Rimossa quando la sessione viene eliminata

Ogni sessione in background ha la variabile d'ambiente CLAUDE_JOB_DIR impostata sulla sua directory ~/.claude/jobs/<id>, quindi i comandi shell che la sessione esegue possono scrivere file temporanei su $CLAUDE_JOB_DIR/tmp senza collidere con sessioni parallele.

Per ispezionare questo stato senza leggere direttamente i file, esegui claude daemon status. Riporta se il supervisor è raggiungibile, il suo ID processo e versione, la directory socket, e quante sessioni in background sono attive.

Il comando avverte anche quando il supervisor in esecuzione è su una versione diversa da quella di claude che hai invocato, il che accade dopo un aggiornamento in cui il supervisor non si è ancora riavviato. L'avviso mostra entrambe le versioni e ti dice di eseguire claude daemon stop --any per raccogliere la nuova versione. Quando Claude Code è installato come servizio del sistema operativo, il comando suggerito è claude daemon stop senza il flag.

Le sessioni sopravvivono intatte a quel mismatch di versione: una versione più vecchia di Claude Code che aggiorna il file state.json di una sessione preserva i campi che non riconosce e mantiene la sessione elencata. L'elenco delle sessioni in roster.json segue la stessa regola, quindi le sessioni avviate dalla versione più nuova rimangono raggiungibili e continuano ad accettare input dopo il riavvio del supervisor.

Disattiva agent view

Per disattivare completamente gli agenti in background e agent view, imposta l'impostazione disableAgentView su true o imposta la variabile d'ambiente CLAUDE_CODE_DISABLE_AGENT_VIEW. Gli amministratori possono applicare questo attraverso impostazioni gestite.

Risoluzione dei problemi

`claude agents` elenca subagent invece di aprire agent view

Se claude agents stampa un conteggio seguito dai tuoi subagent configurati e poi esce, agent view non è disponibile nel tuo ambiente. Esegui claude update per installare la versione più recente.

Se agent view ancora non si apre dopo l'aggiornamento, verifica se è stata disattivata da un'impostazione o da una variabile d'ambiente.

Agent view si apre senza sessioni

Prima di inviare la tua prima sessione, agent view mostra le intestazioni di sezione vuote con una descrizione sotto ognuna, più una spiegazione su una riga sopra l'input, al posto dell'elenco delle sessioni. Digita un prompt nell'input in basso e premi Enter per inviare la tua prima sessione.

Lo spostamento in background mostra una finestra di dialogo `Background this session?`

Se premi ← per mettere in background la sessione corrente e Claude Code mostra una finestra di dialogo Background this session?, la sessione ha lavoro in corso che lo spostamento in background interromperebbe, riavvierebbe o lascerebbe in esecuzione incustodito, e Claude Code chiede prima di fare uno di questi:

  • Lavoro che non può trasferirsi: la sessione ha lavoro che non può trasferirsi alla sessione in background, come un monitor in esecuzione. La finestra di dialogo nomina il lavoro che Claude Code fermerebbe e, separatamente, conta i compiti che si trasferiscono.
  • Un workflow con subagent in esecuzione: un dynamic workflow ha ancora subagent in esecuzione. Il workflow stesso si trasferisce, ma i suoi subagent in esecuzione si riavviano dall'inizio, e la finestra di dialogo dice quanti sono.
  • Risposte automatiche agli artefatti: Claude sta rispondendo ai commenti su un artefatto da solo. Quelle risposte continuano nella sessione in background, e la finestra di dialogo lo dice.

Esegui /tasks per vedere tutto ciò che è in esecuzione, quindi conferma per metterla in background comunque o scegli Stay per lasciare che il lavoro finisca prima. Vedi Cosa si trasferisce quando metti in background per sapere quali tipi di lavoro si trasferiscono e quali Claude Code ferma.

Prompt rifiutato come troppo breve

L'input di dispatch si aspetta una descrizione del compito, non un'apertura conversazionale. Un prompt più corto di quattro caratteri viene rifiutato con un suggerimento Too short in modo che una pressione accidentale non avvii una sessione. Descrivi cosa vuoi che la sessione faccia, come investigate the flaky checkout test.

Le sessioni risultano non riuscite o interrotte dopo lo spegnimento

Lo spegnimento o il riavvio della tua macchina interrompe le sessioni in background in esecuzione. Una sessione che era in attesa del tuo input rimane sotto Needs input quando torni. Per qualsiasi altra sessione in esecuzione, ciò che agent view mostra dipende da quanto tempo fa ha fatto progressi per l'ultima volta:

  • Entro 48 ore, la sessione risulta non riuscita. Collegati o rispondi ad essa e si riavvia da dove l'ha lasciata.
  • Passate 48 ore, come dopo che la macchina è stata spenta per giorni, la sessione risulta interrotta con ended while the background service was off. Premi Enter sulla riga e il footer mostra Press enter again to resume this session (it ended while the background service was off), or ctrl+x to delete it. Premi Enter sulla stessa riga di nuovo per riprendere la sua conversazione salvata. Una risposta, o claude attach <id>, la riprende senza quella richiesta del footer.

Quando la pulizia delle trascrizioni ha rimosso la conversazione salvata di una sessione interrotta, Claude Code rifiuta di aprire la riga: il messaggio dice che non c'è nulla da riprendere. claude rm <id> elimina la riga, tranne nei casi mantenuti descritti sopra, e claude respawn <id> esegue di nuovo il suo prompt originale. Vedi La conversazione salvata di questa sessione non è più su disco.

Lo stop da solo non ferma le sessioni. Le sessioni vengono preservate durante lo stop e il supervisor si ricollega ad esse al risveglio.

L'apertura di una sessione dice che la conversazione è già aperta

Due processi non possono scrivere sulla stessa trascrizione. Quando la conversazione salvata di una sessione interrotta è già aperta in un altro processo Claude Code attivo, Claude Code rifiuta di avviare il processo della sessione. Ciò che vedi dipende da ciò che tiene la conversazione:

  • Un terminale dove hai ripreso la conversazione, ad esempio con claude --resume o /resume: la riga mostra Open in a terminal con un suggerimento per continuarla lì, e aprire la riga mostra Can't open — this session is running in another terminal. Continua in quel terminale, o esci da esso e apri di nuovo la riga.
  • Un altro processo Claude Code non interattivo, ad esempio un processo di sessione in background per la stessa conversazione che non è ancora uscito: aprire la riga mostra This conversation is already open in another running Claude session. Usa quel processo, o aspetta che esca e apri di nuovo la riga.

Claude Code salva una risposta che hai digitato con il tentativo rifiutato e la invia la prossima volta che la sessione si avvia.

L'apertura di una sessione dice che non ha trascrizione salvata

Una sessione interrotta che è stata messa in background da un'altra conversazione e interrotta prima che la sua prima risposta finisse non ha nulla da riprendere: fino a quando quella prima risposta non finisce, la conversazione vive ancora solo nella sessione da cui è stata messa in background. claude attach rifiuta di aprirla con This session has no saved transcript.

In agent view, aprire quella riga mostra Press enter again to restart this session fresh sotto l'elenco. Premi Enter sulla stessa riga di nuovo per riavviare la sessione con una conversazione vuota, o esegui claude respawn <id> dalla shell.

La conversazione originale è intatta; riprendila con claude --resume o continua a lavorarci. Vedi il riferimento degli errori per i dettagli.

L'host del terminale è morto o la sessione ha smesso di rispondere

Il supervisor esegue il terminale di ogni sessione in background nel suo processo host separato. Quando quel processo muore o smette di rispondere, Claude Code mostra il motivo e offre un riavvio; in entrambi i casi la conversazione è salvata e il riavvio la riprende. Il riferimento degli errori cita i messaggi completi.

Claude Code non riavvia mai una riga che esegue un comando shell, da Enter o da claude attach, perché ciò eseguirebbe di nuovo il comando; il messaggio della riga e claude attach dicono entrambi che il comando non viene eseguito di nuovo.

Una sessione non riesce prima di avviarsi con una nota `possibly low memory`

Quando il processo di una sessione in background esce prima di finire l'avvio e l'host ha poca memoria, lo stato della riga nomina l'uscita e aggiunge possibly low memory — free some up and retry.

La nota è un'ipotesi, non una causa confermata. Claude Code la aggiunge solo quando il processo è uscito silenziosamente, senza scrivere un errore e senza essere fermato da un segnale, e l'host ha segnalato poca memoria in quel momento. Quando il processo ha scritto un errore prima di uscire, la riga mostra invece quell'errore.

Libera memoria sulla macchina, quindi collegati o rispondi alla riga e il supervisor avvia un nuovo processo per la sessione. Quando la memoria rimane bassa, il supervisor ferma anche le sessioni inattive per liberare risorse da solo, e ferma anche le sessioni fissate inattive se fermare le altre non ha liberato nulla.

Agent view dice che il servizio in background non ha risposto

Se il collegamento, il peek, o claude logs segnala che il servizio in background non ha risposto, il processo supervisor ha probabilmente subito un blocco. Fermalo e lascia che il prossimo claude agents ne avvii uno nuovo. Per mantenere le tue sessioni in background in esecuzione durante il riavvio, passa --keep-workers:

claude daemon stop --any --keep-workers

Il nuovo supervisor si ricollega alle sessioni in esecuzione. Senza --keep-workers, il comando termina anche le sessioni in background. Il flag --any conferma che desideri fermare un supervisor che è stato avviato su richiesta piuttosto che come servizio installato, che è l'impostazione predefinita.

Un supervisor che si avvia ma non riesce ad accettare connessioni esce e rilascia il suo blocco da solo, quindi il prossimo claude agents ne avvia uno nuovo senza questo arresto manuale. I passaggi precedenti si applicano quando un supervisor in esecuzione subisce un blocco.

Se il comando invece esce dicendo che non è stato possibile verificare il processo registrato come il supervisor, controlla l'ID del processo segnalato: se è un supervisor che possiedi, fermalo tu stesso, quindi elimina ~/.claude/daemon.lock in modo che il prossimo claude agents si avvii da zero.

Su Windows, se il supervisor non risponde alla richiesta di arresto, il comando stampa il suo ID di processo. Termina quel processo con taskkill /PID <pid> per completare il recupero. Le sessioni in background vengono comunque preservate quando hai passato --keep-workers.

Dispatch non riesce con `Could not resolve authentication method`

Se un dispatch in background non riesce con Could not resolve authentication method mentre le sessioni interattive si autenticano normalmente, il worker che ha ricevuto il dispatch non ha raccolto le credenziali. Le sessioni in background ottengono le loro credenziali dal supervisor, quindi questo errore significa che nessuna credenziale memorizzata era disponibile per il processo supervisor stesso. Conferma di aver eseguito /login o di aver configurato una chiave API, quindi ferma il supervisor:

claude daemon stop --any --keep-workers

Il prossimo claude agents o claude --bg avvia un nuovo supervisor che legge le tue credenziali memorizzate. Se ti autentichi con una variabile d'ambiente come ANTHROPIC_API_KEY piuttosto che con /login, esegui quel comando successivo da una shell dove la variabile è impostata.

Vedi il riferimento degli errori per l'elenco completo delle cause e delle correzioni.

Le sessioni in background non riescono a leggere Desktop, Documents o Downloads su macOS

Su macOS, l'host della sessione in background viene eseguito come processo separato e richiede l'accesso alle cartelle protette separatamente dal tuo terminale. Se una sessione in background segnala Operation not permitted durante la lettura di ~/Desktop, ~/Documents, ~/Downloads, o un'altra posizione protetta, concedi l'accesso in Impostazioni di Sistema sotto Privacy e Sicurezza > File e Cartelle, o abilita Accesso Completo al Disco per la voce.

Con il programma di installazione nativo, la voce appare come Claude Code e la concessione persiste tra gli aggiornamenti. Con altri metodi di installazione come Homebrew o npm, la voce mostra il percorso del binario e potrebbe dover essere concessa di nuovo dopo l'aggiornamento.

Le sessioni in background non riescono a raggiungere host della rete locale su macOS

Su macOS 15 e versioni successive, il sistema impedisce a un processo di raggiungere dispositivi sulla tua rete locale finché non concedi il permesso di Rete Locale, quindi un comando che mira a un indirizzo LAN può non riuscire con connect: no route to host in una sessione in background anche se funziona in un terminale in primo piano. Il primo comando in una sessione in background che si connette a un indirizzo della rete locale attiva la richiesta di permesso di Rete Locale di macOS per Claude Code. Concedilo una volta e quei comandi raggiungono gli host LAN nello stesso modo in cui lo fanno in un terminale in primo piano.

Una sessione è lenta a rispondere dopo il collegamento

Quando una sessione che ha finito o è in attesa del tuo prossimo messaggio rimane scollegata per circa un'ora, il supervisor ferma il suo processo per liberare risorse. Il collegamento avvia un nuovo processo da dove l'aveva lasciata e passa alla sessione immediatamente mentre il processo si riavvia. Le sessioni che stanno lavorando, in pausa su una richiesta di permesso o un'altra finestra di dialogo, o fissate non vengono fermate in questo modo, quindi fissa una sessione con Ctrl+T per mantenerla reattiva.

Mentre il processo si avvia, Claude Code mostra la parte finale della trascrizione della sessione formattata nel modo in cui la sessione attiva la visualizza, con markdown, blocchi di codice evidenziati e chiamate agli strumenti come righe attenuate, sopra un'area di prompt attenuata con una nota Session is starting. La sessione attiva la sostituisce non appena è pronta.

`.claude/worktrees/` si sta riempiendo

L'eliminazione di una sessione in agent view rimuove il worktree che Claude ha creato per essa, ma alcune eliminazioni mantengono il worktree o lasciano la sua directory su disco, quindi le directory rimaste possono accumularsi. Le directory che git non riconosce più non appaiono in git worktree list, quindi rimuovile a mano.

Elenca le voci rimaste con git worktree list nella directory del progetto e rimuovi ognuna con git worktree remove <path>. Vedi Pulisci i worktree.

Limitazioni

Agent view è un'anteprima di ricerca con le seguenti limitazioni:

  • I limiti di velocità si applicano: le sessioni in background consumano l'utilizzo dell'abbonamento allo stesso modo delle sessioni interattive, quindi eseguire dieci agenti in parallelo utilizza la quota approssimativamente dieci volte più velocemente rispetto all'esecuzione di uno.
  • Le sessioni sono locali: le sessioni in background vengono eseguite sulla vostra macchina. Vengono preservate durante la sospensione ma si fermano se la macchina si spegne.
  • I worktrees creati da Claude vengono eliminati con la sessione in agent view: unite i cambiamenti prima di eliminare una sessione che ha modificato file nel suo proprio worktree. Alcuni eliminazioni mantengono il worktree.

Per altri modi di eseguire Claude in parallelo, e per passare i risultati tra le sessioni che esegui, vedi:

Cronologia delle versioni

Agent view si è evoluto rapidamente durante l'anteprima di ricerca. Se sei su una versione più vecchia di Claude Code, alcuni comportamenti su questa pagina potrebbero differire; in particolare, claude agents rifiuta i flag che non supporta ancora con un errore unknown option. La tabella sottostante elenca quando ogni flag e comportamento è stato aggiunto.

Versione Cambiamento
v2.1.290 claude attach e claude logs possono accettare parte del nome di una sessione in esecuzione al posto dell'ID.
v2.1.288 Ctrl+F trova le sessioni per nome, e Alt+↑ / Alt+↓ saltano tra le intestazioni dei gruppi. Entrambe, e Ctrl+R, possono essere riassegnate.
v2.1.287 Il filtro n:<text> trova le sessioni per nome o per primo prompt. Mentre un qualsiasi filtro è attivo, i gruppi che hai compresso si espandono per mostrare le loro corrispondenze e la prima corrispondenza viene selezionata, quindi Enter la apre.
v2.1.287 Un comando inviato come risposta dal pannello peek viene eseguito al termine del turno corrente della sessione, inclusi i comandi che vengono eseguiti non appena li digiti nel prompt della sessione stessa. Una risposta che è esattamente /stop arresta immediatamente la sessione.
v2.1.281 Una restrizione --setting-sources si trasferisce a una sessione che metti in background con ← o /bg e alle sessioni che invii dalla vista agente. Prima di questa versione, la sessione generata caricava ogni fonte di impostazioni.
v2.1.281 claude --bg, e i comandi che riavviano una sessione, controllano la fiducia del workspace per la directory della sessione per prima. Da un terminale in quella directory, il dialogo di fiducia appare se non l'hai ancora accettato; dove nessun dialogo può apparire, come in uno script, il comando esce con un errore Workspace not trusted.
v2.1.274 Dopo un auto-aggiornamento, una vista agente da cui sei stato assente per circa un'ora può riavviarsi sulla nuova build. Quando lo fa, mantiene i valori predefiniti di dispatch con cui l'hai aperta: --model, --effort, --permission-mode, --allow-dangerously-skip-permissions, e --agent. Prima di questa versione, la vista riavviata manteneva solo --cwd e i flag di configurazione come --settings e --mcp-config, quindi le sessioni che inviavi successivamente iniziavano senza quei valori predefiniti.
v2.1.274 Quando un delete è rifiutato perché git o il tuo hook WorktreeRemove non poteva rimuovere il worktree, un submodulo estratto che Claude Code verifica non ha modifiche non sottoposte a commit ai file tracciati non blocca l'offerta di eliminare di nuovo e rimuovere comunque la directory. Le modifiche non sottoposte a commit all'interno di un submodulo estratto contano come modifiche non sottoposte a commit, e il messaggio nomina il submodulo. Prima di questa versione, qualsiasi checkout di submodulo nel worktree bloccava l'offerta, con un messaggio che diceva che il worktree contiene un repository annidato.
v2.1.268 Quando un delete è rifiutato perché git o il tuo hook WorktreeRemove non poteva rimuovere il worktree, il messaggio nomina la causa, incluso come un hook è terminato e l'inizio del suo stderr. Per un worktree collegato sotto la directory .claude/worktrees/ del repository senza modifiche non sottoposte a commit ai file tracciati, nessun repository annidato al suo interno, e nessun record di un'altra sessione che lo nomina, eliminare di nuovo la sessione rimuove comunque la directory, dalla vista agente o con claude rm <id> --force-remove-worktree <worktree-id>. Prima di questa versione, la riga mostrava solo worktree could not be removed (WorktreeRemove hook failed) o l'errore di git, lo stderr dell'hook andava solo al log di debug, e eliminare di nuovo era rifiutato allo stesso modo.
v2.1.268 Dopo che il primo ← mostra Press ← again to open agents, o Press ← again to go back to agents in una sessione collegata, la prima pressione che arriva almeno un secondo dopo passa, anche quando le pressioni più veloci nel mezzo erano ignorate. Prima di questa versione, ogni pressione ignorata riavviava l'attesa, quindi premere ← di nuovo a un ritmo costante non passava fino a quando non facevi una pausa per più di un secondo.
v2.1.260 Quando metti in background una sessione, l'elenco agente delle tue altre sessioni mostra la conversazione una volta, come sua sessione in background, e i loro messaggi ad essa non raggiungono più il terminale da cui l'hai spostata. Prima di questa versione, quel terminale poteva rimanere elencato come una seconda sessione interattiva sotto il nome della conversazione, e una sessione che aveva inviato un messaggio alla conversazione prima dello spostamento continuava a consegnare a quel terminale.
v2.1.260 Quando un delete è rifiutato su commit non spinti, il messaggio nomina il branch del worktree e quanti commit non sono spinti, e eliminare di nuovo la sessione scarta il worktree e i suoi commit. Prima di questa versione, il rifiuto diceva solo worktree has commits that are not pushed anywhere, eliminare di nuovo era rifiutato allo stesso modo, e eliminare la sessione richiedeva di spingere i commit o rimuovere il worktree manualmente.
v2.1.257 ← si stacca da una sessione collegata mentre l'overlay /btw è aperto, anche a metà risposta, e l'overlay si riapre quando ti colleghi di nuovo. Prima di questa versione, ← non si staccava mentre l'overlay era aperto.
v2.1.257 Quando esegui claude --resume <session-id> --bg, Claude Code continua quella sessione con il suo ID proprio, o avvia una copia con un nuovo ID e stampa una riga note: che spiega il motivo. --continue, un --resume nudo, e --resume con un nome o percorso avviano una copia con la stessa nota. Prima di questa versione, --resume con --bg avviava sempre una copia con un nuovo ID e non diceva nulla.
v2.1.257 Quando invii una sessione da una vista agente che hai aperto con ←, Claude Code l'avvia in la modalità di permesso che la directory di destinazione configura attraverso permissions.defaultMode. Quando la directory non ne imposta una, si applica la modalità di permesso della sessione da cui provieni. Prima di questa versione, la sessione inviata avviava sempre nella modalità di permesso della sessione da cui provieni, sovrascrivendola.
v2.1.257 Ctrl+S, Ctrl+T, e Ctrl+G in agent view seguono le tue keybindings.json: Ctrl+S e Ctrl+T attraverso le azioni agents:switchView e agents:togglePin del contesto Agents, e Ctrl+G attraverso il binding chat:externalEditor del contesto Chat. Prima di questa versione, agent view ignorava keybindings.json e questi tasti erano fissi.
v2.1.257 Avviare il servizio in background si recupera da due cause di fallimento. Su un'installazione npm macOS, un avvio durante un auto-aggiornamento attende l'installazione invece di eseguire il placeholder che npm mette giù mentre sostituisce il binario. Su Windows, un daemon.lock stantio scritto prima dell'ultimo avvio della macchina, o il cui ID processo registrato ora appartiene a un processo diverso, viene sostituito. Prima di questa versione, l'avvio macOS falliva con Error: claude native binary not installed. durante la finestra di installazione, e il lock Windows faceva fallire ogni avvio con exited before it became reachable finché non eliminavi ~/.claude/daemon.lock.
v2.1.257 Quando apri o invii una sessione in background mentre un altro processo Claude Code sta scaricando un aggiornamento npm, Claude Code continua ad attendere fino a due minuti mentre l'installazione viene eseguita, quindi fallisce dicendo Claude Code is being updated by npm on this machine. Prima di questa versione, l'attesa si fermava a dieci secondi, quindi l'apertura falliva con Couldn't start the background service mentre il download era ancora in corso.
v2.1.257 Una sessione in background che tiene un messaggio tra sessioni per la tua approvazione mostra approve message from sulla sua riga Needs input, con l'indirizzo del mittente e il nome che il mittente dichiara. Prima di questa versione, la riga si spostava a Needs input ma manteneva il suo testo precedente, quindi nulla in claude agents nominava il messaggio in attesa o il suo mittente.
v2.1.257 Un prompt nascosto con Ctrl+S dentro una sessione in background aperta viene mantenuto con la sessione, quindi Ctrl+S lo ripristina dopo che il processo della sessione viene fermato e riavviato. Prima di questa versione, il nascondiglio viveva solo nel processo in esecuzione e veniva perso quando la sessione rimaneva inattiva abbastanza a lungo da far fermare il suo processo, o quando veniva fermata e poi riaperta.
v2.1.251 In una sessione in background che non ha spostato in un worktree, Claude e i subagent che genera possono modificare file all'interno di un worktree git collegato.
v2.1.251 Claude Code inoltra un gateway del provider cloud esportato nella shell da cui invii, come ANTHROPIC_VERTEX_BASE_URL o ANTHROPIC_BEDROCK_BASE_URL con il suo flag di bypass dell'autenticazione, al worker della sessione nelle stesse condizioni di ANTHROPIC_BASE_URL. Prima di questa versione, se mettevi in background o inviavi da una shell autenticata solo attraverso tale gateway, ogni richiesta che la sessione faceva falliva, perché l'endpoint e il flag venivano eliminati dal suo ambiente.
v2.1.251 Quando una sessione in background si avvia mentre un altro processo Claude Code sta aggiornando un marketplace di plugin, come una sessione fratello che esegue l'auto-aggiornamento del marketplace, Claude Code mantiene disponibili i plugin di quel marketplace. Prima di questa versione, tale sessione poteva avviarsi senza nessuna delle skill, agenti, hook e server MCP di quel marketplace e rimanere così per tutta la sua esecuzione.
v2.1.248 Shift+Enter nell'input di dispatch inserisce una nuova riga, corrispondendo al prompt principale, e Ctrl+Enter invia e si collega immediatamente nei terminali dove l'overlay ? elenca ctrl+enter to start and open. Prima di questa versione, Shift+Enter inviava e si collegava.
v2.1.248 Eliminare una sessione ha successo quando i commit del worktree sono già sulla copia locale del branch predefinito del tuo remote origin e il tuo checkout principale ha quel branch estratto; prima di questa versione, il delete era rifiutato con has commits that are not pushed anywhere.
v2.1.248 Una sessione messa in background con ← o /background tiene il git worktree lock sul suo worktree mentre viene eseguita; prima di questa versione, mettere in background rilasciava il lock, e la pulizia o git worktree remove poteva rimuovere il worktree sotto la sessione in esecuzione.
v2.1.248 Una sessione in background che non era in attesa del tuo input e viene trovata morta più di 48 ore dopo la sua ultima attività, come dopo che la macchina era spenta per giorni, mostra come fermata con ended while the background service was off, e Enter su di essa chiede prima di riprendere la sua conversazione salvata. Prima di questa versione, tale sessione riappariva come un fallimento fresco ordinato in cima all'elenco, e un singolo Enter tirava la conversazione di settimane fa in primo piano.
v2.1.248 Aprire una riga fermata la cui conversazione hai ripreso in un altro terminale è rifiutato con Can't open — this session is running in another terminal, e la riga mostra Open in a terminal invece di mostrare sotto Working. Prima di questa versione, aprire la riga avviava un secondo processo che scriveva nella stessa conversazione.
v2.1.248 Una sessione in background in attesa di una decisione di permesso mentre un hook PermissionRequest o PreToolUse ha stampato una risposta non valida nomina l'evento dell'hook e l'errore dello schema sulla sua riga. Prima di questa versione, la riga mostrava solo la richiesta in sospeso.
v2.1.248 Su Windows, claude agents risponde alla tastiera quando lanciato in una scheda di terminale che un programma precedente ha lasciato in win32-input-mode. Prima di questa versione, Claude Code non decodificava i record di tasti che tale scheda invia.
v2.1.247 Su Linux e WSL, una sessione il cui processo host del terminale è morto fallisce entro pochi secondi con il motivo. Un'apertura che non produce output termina dopo circa dieci secondi con un'offerta di riavvio, e Enter sulla riga riavvia la sessione con la sua conversazione; claude attach <id> segnala la causa e esce. Prima di questa versione, aprire tale sessione mostrava opening… · esc to cancel indefinitamente e claude attach <id> attendeva senza segnalare un errore.
v2.1.246 Su un'installazione npm, quando il servizio in background non riesce ad avviarsi mentre npm install -g @anthropic-ai/claude-code sta sostituendo il binario, Claude Code attende fino a dieci secondi affinché l'installazione finisca e riprova prima di segnalare EACCES: permission denied.
v2.1.246 Quando il processo del servizio in background muore dopo aver stampato un errore, Claude Code segnala il fallimento e cita la prima riga di errore del servizio.
v2.1.246 Se la tua macchina si addormenta mentre il servizio in background si sta avviando, Claude Code riprova l'avvio una volta invece di fallire.
v2.1.246 Claude Code attende circa due minuti invece di 45 secondi per un servizio in background appena avviato che è vivo ma lento ad accettare connessioni.
v2.1.246 Il servizio in background si avvia dalla tua directory home, quindi su macOS e Linux una directory di avvio che è stata eliminata o spostata non blocca più l'avvio.
v2.1.246 /fork copia la conversazione completa da una sessione che stessa è stata avviata come copia e non ha registrato un nuovo prompt da allora: una copia /fork a cui ti sei collegato, una sessione ricollegata dopo che ← o /background l'ha spostata in background, o una sessione avviata con claude --resume <id> --fork-session. Prima di questa versione, se eseguivi /fork in tale sessione prima di inviarle un nuovo prompt, Claude Code stampava la conferma normale ma avviava la copia con una conversazione vuota. Spostare tale sessione in background con ← o /background perdeva la conversazione allo stesso modo.
v2.1.246 Quando apri una sessione che hai appena inviato mentre il suo processo worker si sta ancora avviando, come premendo Enter sulla sua riga, Claude Code attende il processo e poi si collega. Prima di questa versione, se premevi Enter mentre il processo si stava ancora avviando, Claude Code poteva fermare la sessione con Session <id> was stopped while the respawn was in flight.
v2.1.246 Quando metti in background una sessione denominata, Claude Code la elenca una volta, e quando metti in background la stessa conversazione di nuovo, numera il nome della nuova riga, come my-session (2), con la riga esistente che mantiene il suo nome. Prima di questa versione, il terminale in cui hai premuto ← poteva apparire in claude agents --json come una seconda sessione con lo stesso nome, e se mettevi in background la stessa conversazione di nuovo, Claude Code aggiungeva un'altra riga con il nome identico.
v2.1.239 Con modalità editor vim attiva, premere Esc nell'input di agent view passa da INSERT a NORMAL mode e mantiene il tuo testo, corrispondendo al prompt principale; in NORMAL mode con testo ancora nell'input, premere Esc lo cancella, e premere Esc su un input vuoto esce, come la scorciatoia Esc descrive. Prima di questa versione, Esc cancellava l'input.
v2.1.233 Per una sessione collegata a una merge request di GitLab, Claude Code scrive l'etichetta della riga nella sintassi di riferimento !1234 di GitLab. Puoi anche incollare l'URL della merge request nell'input di dispatch per selezionare quella sessione. Prima di questa versione, l'etichetta veniva resa come #1234, e un URL di merge request incollato corrispondeva a una sessione solo quando il suo primo prompt conteneva l'URL.
v2.1.227 Eliminare una sessione mantiene la sessione e il suo worktree mentre un'altra sessione Claude Code live è in esecuzione all'interno di quella directory worktree. Agent view mostra not deleted sulla riga e il motivo nel footer, e claude rm stampa kept <id> con il motivo, che nomina l'ID processo dell'altra sessione. Prima di questa versione, eliminare la sessione rimuoveva il worktree mentre l'altra sessione stava ancora lavorando in esso.
v2.1.225 claude agents in una directory di cui non ti sei fidato mostra lo stesso dialogo di fiducia del workspace che claude mostra all'avvio, prima che agent view si apra. Accettare salva la fiducia per quel workspace; rifiutare esce senza aprire agent view. Prima di questa versione, claude agents si apriva senza chiedere, quindi le sessioni che inviavi da essa venivano eseguite in una directory di cui non ti era mai stato chiesto di fidarti.

Con l'elenco raggruppato per directory, passare il mouse su una riga la evidenzia senza cambiare il target di dispatch; selezionare una riga con i tasti freccia o un clic cambia ancora il target. Prima di questa versione, spostare il mouse su una sessione in un altro progetto cambiava silenziosamente la directory in cui la prossima sessione inviata si avviava.
v2.1.221 /status mostra una riga Session kind: background job · attached o background job · unattended in una sessione in background, a seconda che un terminale sia collegato, e interactive in qualsiasi altra sessione. Prima di questa versione, /status non segnalava il tipo di sessione.

/fork: Claude Code istruisce la copia di isolare il suo lavoro da quello della sessione originale: la copia crea un worktree proprio prima di apportare modifiche al codice, rimane fuori dal worktree della sessione originale, e basa un nuovo branch su quello della sessione originale quando il suo compito si basa su quel lavoro. Vedi la sezione collegata per le condizioni esatte. Prima di questa versione, la copia non riceveva alcuna istruzione di isolamento e poteva finire per modificare il worktree o il checkout su cui la sessione originale stava ancora lavorando.

Con modalità editor vim attiva, premere ← subito dopo aver annullato il prompt tornando a vuoto con u chiede la stessa conferma di eliminare il testo o spostarsi nella cronologia dei prompt, e passa solo alla seconda pressione; prima di questa versione la pressione passava immediatamente.
v2.1.219 Con modalità editor vim attiva, premere ← su un prompt vuoto apre agent view da NORMAL mode così come INSERT, e il suggerimento ← del footer mostra in NORMAL mode; prima di questa versione il gesto e il suggerimento erano solo INSERT, e in NORMAL mode ← su un prompt vuoto non faceva nulla. Digitare nell'input mentre Claude Code attende di mettere in background la sessione annulla il passaggio con Backgrounding cancelled — you have unsent text in the input. Send it or clear it, then press ← again. quindi una bozza digitata non viene persa.
v2.1.218 Premere ← entro due secondi da un'eliminazione che ha svuotato il prompt, o da uno spostamento nella cronologia dei prompt, mostra Press ← again to open agents, o Press ← again to go back to agents in una sessione collegata, e passa solo alla seconda pressione almeno un secondo dopo; prima di questa versione la pressione passava immediatamente. Un ← che arriva all'interno di input incollato o scritto non attiva più il passaggio. Mettere in background una sessione in primo piano con ← mostra Your conversation moved to the background sopra l'elenco, e Esc alla radice di agent view ritorna a quella conversazione invece di uscire alla shell, con doppio Ctrl+C che rimane l'uscita; se la conversazione non può essere riaperta, Claude Code esce e stampa un comando claude --resume per essa. Su Windows, un ← premuto entro circa mezzo secondo dal collegamento mostra Ambiguous ←, press again to detach e si stacca alla seconda pressione.
v2.1.217 Il badge della pull request sulla riga di una sessione viene reso come un collegamento ipertestuale anche quando Claude Code non riesce a rilevare il supporto del collegamento ipertestuale del terminale, ad esempio su SSH o tmux; imposta FORCE_HYPERLINK=0 per renderlo come testo semplice. Prima di questa versione, il badge veniva reso come testo semplice quando il supporto non era rilevato.
v2.1.216 /fork: la conferma è una riga, mostrando lo stato della copia, il nome della sua riga di agent-view, e il suo ID sessione per claude attach, terminando con runs in the origin tree o edits this checkout solo quando la copia viene eseguita nell'albero di lavoro principale o modifica il checkout che hai aperto. Fare clic sul nome mette in background questa sessione e apre agent view nella sessione della copia. La conferma non ripete più la modalità di permesso ereditata della copia; le versioni precedenti stampavano una conferma multi-riga senza nome cliccabile.

Needs input: /install-github-app e l'elenco delle impostazioni /mcp, eseguiti mentre nessuno è collegato, mostrano la sessione sotto Needs input con una riga che nomina il comando, e collegarsi e rieseguire il comando continua; da v2.1.208 a v2.1.215 erano rifiutati completamente in quello stato.

--agent restore: riprendere o riavviare una sessione --agent messa in background ripristina il prompt di sistema dell'agente e le restrizioni degli strumenti, cercando prima la directory propria della sessione per l'agente, quando il workspace è fidato; una sessione il cui agente non esiste più continua con gli strumenti predefiniti e il prompt di sistema e si apre con un avviso visibile, invece di ripristinare silenziosamente l'agente predefinito.

Ctrl+X: premendolo due volte elimina una sessione anche quando il tentativo di arresto fallisce, invece di un arresto fallito che annulla il delete in sospeso, e una sessione eliminata il cui processo worker era morto non riappare più al prossimo aggiornamento.

Worktree deletion: una sessione la cui directory worktree non appartiene a nessun repository git può essere eliminata; prima di questa versione ogni tentativo di eliminare tale sessione era rifiutato. Una directory che è già scomparsa si cancella immediatamente. La doppia pressione di agent view rimuove una directory che ha ancora file, eseguendo il tuo hook WorktreeRemove per una directory creata da hook, a meno che anche i record di un'altra sessione non la nominino. claude rm mantiene tale directory ogni volta che rimangono file.
v2.1.214 Una sessione messa in background con ← o /background e lasciata inattiva senza nulla in esecuzione ha il suo processo fermato come qualsiasi altra sessione inattiva, invece di mantenere il suo processo e il servizio in background in esecuzione indefinitamente. Una sessione completata può essere rimossa con claude rm o da agent view dopo che il servizio in background è diventato inattivo, e una sessione che è entrata in un worktree dopo essere stata inviata da una directory che non è un repository git, come una cartella di workspace multi-repo, può essere eliminata da agent view quando il worktree stesso appartiene a un repository git, perché la pulizia viene risolta dal worktree invece che dalla directory da cui la sessione è stata inviata; entrambe le rimozioni erano rifiutate ad ogni tentativo prima. Riaprire una sessione fermata ripristina la sua conversazione salvata anche quando una cartella nell'archivio delle trascrizioni non può essere letta.
v2.1.213 /install-github-app, l'elenco delle impostazioni /mcp, e le azioni di autenticazione MCP funzionano in una sessione in background mentre un terminale è collegato, e sono rifiutate solo quando nessuno è collegato, con un messaggio che ti dice di collegarti e rieseguire il comando; da v2.1.208 a v2.1.212 erano rifiutate anche con un terminale collegato.
v2.1.212 /fork in una sessione interattiva copia la conversazione in una nuova sessione in background che appare come sua propria riga, denominata dopo la sessione da cui proviene o, per un fork richiesto di una sessione senza nome, dopo il prompt di fork, mentre l'originale continua a funzionare; il comportamento precedente di fork-subagent di /fork si è spostato a /subtask. Con agent view disattivato, /fork mantiene il comportamento di fork-subagent. Una riga focalizzata che è in attesa del suo primo prompt mostra space to send it a prompt. Ctrl+J inserisce una nuova riga nell'input di dispatch su terminali con segnalazione di tasti estesa, dove la pressione del tasto era precedentemente ignorata, e l'overlay ? elenca la scorciatoia. Il suggerimento del footer ← in una sessione interattiva mostra brevemente N done quando una sessione in background finisce mentre nessuna ha bisogno del tuo input. Digitare un /resume nudo in agent view apre un picker di sessioni passate del repository da cui hai aperto agent view, incluse le sessioni eliminate dall'elenco, e sceglierne una la riprende come sessione in background; prima di questa versione /resume non era disponibile in agent view e le sessioni eliminate erano raggiungibili solo con claude --resume o /resume da una sessione interattiva. I moduli mirati, scoped e ristretti mantengono il suggerimento attach to a session to run it che le versioni precedenti mostravano per ogni modulo. Le sessioni in attesa di un prompt di rete-host sandbox, una richiesta di input MCP, o un prompt di impostazioni gestite mostrano come Needs input invece di Working, in agent view e in claude agents --json, e una domanda da Claude segnala waitingFor: input needed invece di permission prompt. Collegarsi a una sessione il cui processo si è fermato mostra la sua trascrizione formattata nel modo in cui la sessione live la rende, invece che come testo grezzo. Una sessione fermata la cui trascrizione è in un posto inaspettato riprende da essa tramite una scansione di ultimo ricorso delle tue trascrizioni salvate, e aprire una riga che non ha trascrizione salvata mostra Press enter again to restart this session fresh, riavviandola da zero alla seconda pressione; v2.1.211 mostrava il rifiuto senza modo di riavviare da agent view.
v2.1.211 Svegliare una sessione fermata collegandosi o rispondendo dalla directory in cui viene eseguita inoltra di nuovo il gateway ANTHROPIC_BASE_URL della tua shell, nelle stesse condizioni di un dispatch fresco, quindi una sessione autenticata attraverso un gateway ANTHROPIC_AUTH_TOKEN riprende sul gateway invece di segnalare Not logged in. Collegarsi a una sessione fermata che è stata messa in background da un'altra conversazione prima che la sua prima risposta finisse è rifiutato con This session has no saved transcript invece di avviare silenziosamente una conversazione vuota con lo stesso session id; aprire la stessa riga da agent view mostrava il rifiuto nel footer. Terminare il processo di una sessione ← o /background da fuori Claude Code la contrassegna come fermata invece che il supervisor la riavvia, un arresto già registrato su disco è onorato a meno che una risposta che hai inviato sia ancora in attesa di essere consegnata, una sessione riavviata dopo un crash le viene detto che è stata riavviata, e una sessione ← o /background riavviata non riprende una risposta interrotta più vecchia di circa un'ora. Una risposta di denominazione della sessione che risponde o rifiuta il prompt invece di etichettarlo, come per un prompt che è principalmente un link, viene scartata e la riga mantiene un nome preso dal testo del prompt. Eliminare una sessione il cui worktree git non riconosce più ha successo, lasciando la directory worktree su disco e nominando il suo percorso, invece che ogni tentativo sia rifiutato. Un delete rifiutato mostra il motivo sulla riga della sessione, incluso l'errore git sottostante quando il worktree non poteva essere rimosso, invece che la riga riappaia silenziosamente.
v2.1.210 claude attach attende mentre il servizio in background si sta avviando o riconnettendo invece di fallire con un errore job not found o still starting, segnala una sessione che è terminata durante il collegamento come uscita, e applica un ridimensionamento del terminale fatto durante un collegamento lento quando il collegamento si completa. Il conteggio ← needs-input del footer del prompt appare su ogni provider, inclusi i provider di terze parti che precedentemente mostravano il modulo ← for agents semplice. Mettere in background una sessione con ← trasporta l'elenco dei compiti di Claude alla sessione in background invece di scartarlo. La riga su cui hai premuto ← mantiene un nome in grassetto, non attenuato dopo che la selezione si sposta. claude agents --effort accetta ultracode invece di scartarlo silenziosamente.
v2.1.208 Collegarsi a una sessione il cui processo si è fermato mostra l'ultimo schermo pieno della sua trascrizione mentre il processo si avvia, invece di solo una nota Session is starting. Una risposta che non può essere consegnata perché il servizio in background non è raggiungibile o l'invio fallisce viene salvata e inviata come prompt successivo della sessione quando il suo processo si avvia di nuovo; prima di questa versione, una risposta persa mentre il servizio in background non era raggiungibile veniva scartata. Un processo il cui binario è stato sostituito da un aggiornamento può comunque avviare il supervisor, dal launcher claude installato o dalla versione più recente su disco, invece di fallire fino al riavvio di Claude Code. Un supervisor che esegue una versione più vecchia non riavvia mai una sessione inattiva avviata da una versione più nuova sul suo binario più vecchio. L'eliminazione di una sessione rimuove il suo worktree anche dopo che la sessione ha spostato il worktree su un branch diverso, e mantiene il worktree insieme alla riga della sessione quando il worktree ha commit che non sono stati spinti da nessuna parte o un'altra sessione lo rivendica, invece di distruggere i commit o lasciare il worktree orfano. /install-github-app e l'elenco delle impostazioni /mcp e le sue azioni di autenticazione vengono rifiutate in una sessione in background con un messaggio che nomina l'alternativa; solo in v2.1.208, il picker /model è stato rifiutato allo stesso modo e un /model <name> digitato ha cambiato solo quella sessione invece di salvare anche il tuo modello predefinito.
v2.1.207 Il pannello peek si apre con la frase che la riga tronca, come la domanda esatta per una sessione che ti sta aspettando, e mostra quanto a lungo una sessione bloccata è stata in attesa come una singola riga waiting 3m invece di anteporre lo stesso timestamp alla frase di stato e alla domanda. Incollare di nuovo lo stesso testo nell'input di dispatch espande il placeholder [Pasted text #N] compresso invece di aggiungerne un secondo. Una sessione in background denominata accettando un piano mostra quel nome sulla sua riga. Una sessione in background che si è spostata in un worktree mantiene la sua conversazione quando il suo processo viene riavviato dalla vista agente.
v2.1.206 I riassunti delle righe riempiono la larghezza rimanente della riga e si troncano solo al bordo destro del terminale invece che a 64 colonne. Dopo che il supervisor si riavvia in una nuova versione di Claude Code, riavvia le restanti sessioni in background inattive su quella versione in background invece di poche al minuto. L'eliminazione di una sessione con Ctrl+X o claude rm la cancella anche dall'elenco delle sessioni del supervisor, quindi la riga non riappare più dopo un riavvio del supervisor. Un override del corpo della richiesta CLAUDE_CODE_EXTRA_BODY esportato nella shell di dispatching raggiunge le sessioni in background invece di essere ignorato.
v2.1.205 Il suggerimento ← del footer del prompt in una sessione claude regolare conta gli agenti in background in attesa di te, come ← 2 agents. I riassunti delle righe mostrano il rapporto di una riga della sessione, troncato a 64 colonne, invece di un'invocazione grezza di uno strumento o un conteggio done/total; le righe raggruppate per directory si aprono con una parola di stato colorata. Il pannello peek si apre con la frase di stato completa e, per una sessione in attesa di te, la sua domanda esatta sopra l'input di risposta. Le sessioni che modificano, commentano, chiudono, o contrassegnano una pull request come pronta con gh sono collegate ad essa, non solo quelle che creano o estraggono una pull request, un push collega una pull request anche quando il nome del branch locale non corrisponde, e una pull request il cui output del comando di creazione ha superato il limite inline è collegata anche. Un turno senza testo leggibile mantiene lo stato precedente della sessione invece di capovolgere di nuovo a Working. claude attach attende fino a circa 60 secondi una sessione che si sta riavviando, con una riga di stato che nomina il motivo, invece di fallire.
v2.1.203 Un gateway ANTHROPIC_BASE_URL esportato nella shell di dispatching raggiunge le sessioni inviate da essa nella stessa directory quando il supervisor condivide quell'ambiente del gateway, invece di essere scartato mentre la chiave API esportata insieme ad esso veniva mantenuta. Il PATH della shell di dispatching viene applicato a ogni worker della sessione. Premere ← mentre i subagent sono in esecuzione attende che finiscano invece di riavviarli dopo dieci secondi. L'elenco vuoto mostra sempre le intestazioni della sezione con una descrizione sotto ciascuna. Digitare @ nell'input di dispatch elenca anche i worktree git registrati del repository di avvio che si trovano all'interno del suo albero di directory. Uno sforzo ereditato dall'impostazione effortLevel segue le successive modifiche a quell'impostazione invece di essere fissato al dispatch. Aprire una sessione fermata la cui conversazione è già aperta in un'altra sessione in esecuzione viene rifiutato con un messaggio invece di far fallire la riga. Un comando che non è disponibile in agent view lascia il testo digitato nell'input. Un hook WorktreeCreate che fallisce al di fuori di un repository git non impedisce più alla sessione di modificare i file.
v2.1.202 Un nome impostato con /rename o Ctrl+R su una sessione in background persiste quando il supervisor arresta e riavvia il suo processo, invece di ripristinare il nome con cui la sessione è stata inviata.
v2.1.200 Una versione più vecchia di Claude Code che riscrive l'elenco delle sessioni in roster.json preserva i campi scritti da una versione più nuova, corrispondendo alla garanzia state.json esistente, quindi le sessioni avviate dalla versione più nuova continuano ad accettare input dopo il riavvio del supervisor. Quando apri una sessione che ha smesso di rispondere, il supervisor riavvia il suo processo e la sessione continua la risposta interrotta da dove si era fermata. Agent view applica un flag --plugin-dir posizionato dopo agents al proprio completamento automatico di subagent e skill nell'input di dispatch così come alle sessioni inviate.
v2.1.199 Una sessione in background il cui processo esce prima di finire l'avvio su un host con poca memoria mostra possibly low memory — free some up and retry nello stato della sua riga invece di solo il motivo dell'uscita nudo. Mettere in background una sessione con ← o /background trasporta il suo /color alla nuova riga.
v2.1.198 Agent view invia una notifica attraverso preferredNotifChannel quando una sessione in background ha bisogno di input, finisce, o fallisce, e attiva l'hook Notification con il tipo agent_needs_input o agent_completed. ← e /exit dentro claude attach <id> ritornano a agent view invece di uscire alla shell; Ctrl+Z ritorna alla shell. Una sessione in background che ha isolato il suo lavoro in un worktree esegue il commit, esegue il push del proprio branch isolato, mai main o master, e apre una pull request in bozza quando finisce invece di chiedere prima. /login viene eseguito in agent view e apre la finestra di dialogo di accesso. La finestra di dialogo di uscita Background work is running offre Move to background and exit. Il trasferimento di uscita copre anche i subagent in background, che riprendono dalla loro trascrizione al prossimo risveglio invece di essere segnalati come falliti. claude --bg combinato con -p o --print viene rifiutato con un errore. L'host della sessione in background richiede il permesso di rete locale macOS al primo accesso LAN invece di fallire con connect: no route to host.
v2.1.196 Una singola pressione di ← mette in background una sessione in primo piano; le versioni precedenti richiedevano due pressioni, con un suggerimento nel footer e una conferma. --dangerously-skip-permissions passato a claude agents mostra il disclaimer di bypass invece di essere silenziosamente scartato. Le sessioni interattive che non hai mai nominato portano un nome predefinito come my-app-3f negli elenchi di sessioni e claude agents --json. I comandi shell in background e i workflow dinamici sopravvivono al processo della sessione che viene fermato, riavviato, o aggiornato, incluso su Windows; imposta CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF=1 per disattivare il trasferimento. Una trascrizione interpretata erroneamente come vuota al riavvio viene rinominata con un suffisso .orphaned- invece di essere eliminata.
v2.1.195 Il lavoro in corso si trasferisce anche quando metti in background una sessione su Windows; imposta CLAUDE_DISABLE_ADOPT=1 per fermarlo invece. Il gruppo Completed riempie lo spazio verticale rimanente e l'intestazione si compatta su terminali corti. Una versione più vecchia di Claude Code non scarta più i campi state.json delle sessioni più nuove né nasconde quelle sessioni da claude agents. Il collegamento a una sessione fermata passa immediatamente invece di mostrare una schermata vuota per fino a cinque secondi. Un supervisor che non riesce ad accettare connessioni esce e rilascia il suo blocco da solo.
v2.1.191 claude --bg con un nome --agent che non corrisponde a nessuno dei tuoi subagent fallisce il lancio: la sessione esce immediatamente con un errore --agent '<name>' not found invece di eseguire con l'agente predefinito.
v2.1.174 Le sessioni in background non ereditano più variabili di endpoint gateway come ANTHROPIC_BASE_URL dalla shell di avvio del supervisor; il supervisor fornisce uno snapshot di credenziali fresco ai worker pre-riscaldati, correggendo gli errori spurii di Could not resolve authentication method.
v2.1.172 /model nell'input di dispatch imposta un override del modello di dispatch con ambito di sessione.
v2.1.161 I riassunti delle righe mostrano un conteggio done/total per elementi di lavoro paralleli; il pannello peek nomina l'elemento di lavoro parallelo che sta girando più a lungo.
v2.1.157 claude agents accetta --agent; le sessioni inviate rispettano l'impostazione agent.
v2.1.145 Dettatura vocale supportata nell'input di risposta del pannello peek e nell'input di dispatch.
v2.1.143 Impostazione worktree.bgIsolation aggiunta; claude agents accetta --allow-dangerously-skip-permissions.
v2.1.142 claude agents accetta --permission-mode, --model, --effort, --dangerously-skip-permissions, --settings, --add-dir, --plugin-dir, --mcp-config, e --strict-mcp-config.
v2.1.141 claude agents accetta --cwd per limitare l'elenco a un progetto.
v2.1.139 Agent view introdotto come anteprima di ricerca.