SpyBara
Go Premium

agent-view.md 2026-09-13 21:00 UTC to 2026-09-14 22:58 UTC

This page contains 450 additions and 170 deletions.

2026
Mon 14 22:58 Fri 18 23:58 Fri 25 23:58

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: the header shows Claude Code v2.1.140, the model, the working directory, and a summary count. Sessions are grouped under Needs input, Working, and Completed, with a dispatch input at the bottom and a footer of keyboard hints. Agent view in a terminal: the header shows Claude Code v2.1.140, the model, the working directory, and a summary count. Sessions are grouped under Needs input, Working, and Completed, with a dispatch input at the bottom and a footer 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.

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.

Puoi usare claude agents come tuo punto di ingresso principale invece di claude: invia ogni attività da agent view, collegati quando vuoi la conversazione completa, e premi ← per tornare alla tabella.

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.

Monitorare le sessioni con agent view

Esegui claude agents per aprire agent view. Prende il controllo del terminale completo ed elenca ogni sessione raggruppata per stato, con 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 congela a quanto tempo ha impiegato l'esecuzione.

Il nome è tinto con il colore impostato da /color in quella sessione, incluso 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 da quale directory 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. Una sessione che si è spostata in un worktree sotto ~/projects/my-app/.claude/worktrees/ conta ancora come appartenente a ~/projects/my-app.

Le sessioni interattive che hai aperto in altri terminali non appaiono finché non le metti in background. I subagents e i teammates 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          run 12 · all checkpoints cleared           in 4m

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

Leggere lo stato della sessione

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

Stato L'icona mostra Cosa significa
Working Animato Claude sta attivamente eseguendo strumenti o generando una risposta
Needs input Giallo Claude sta aspettando qualcosa che solo tu puoi fornire: una risposta a una domanda, una decisione di permesso, o un altro prompt solo tu puoi rispondere, come un prompt sandbox per consentire un host di rete o una richiesta di input di un server MCP. Un comando che ha bisogno di un terminale collegato, come /install-github-app o l'elenco delle impostazioni /mcp, tiene una sessione incustodita qui anche
Idle Attenuato La sessione non ha nulla da fare ed è pronta per il tuo prossimo prompt
Completed Verde Il compito è terminato con successo
Failed Rosso Il compito è terminato con un errore
Stopped Grigio La sessione è stata fermata con Ctrl+X o claude stop, il suo processo è stato terminato da fuori Claude Code, o è terminato mentre il servizio in background era spento

Separatamente, la forma dell'icona mostra se il processo sottostante è in esecuzione:

Forma Cosa significa
✻ o animato ✽ Il processo della sessione è vivo e risponde immediatamente
∙ Il processo è uscito. Puoi ancora fare peek, e quando rispondi o ti colleghi, Claude riavvia da dove l'ha lasciato
✢ Una sessione /loop che dorme tra le iterazioni. La riga mostra il conteggio delle esecuzioni e un conto alla rovescia

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

Il titolo della scheda del terminale mostra il conteggio awaiting-input mentre agent view è aperto: 2 awaiting input · claude agents quando le sessioni hanno bisogno di input, o claude agents quando nessuna lo fa.

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

Mentre agent view è aperto, Claude Code invia anche una notifica attraverso il tuo canale di notifica del terminale configurato quando una sessione in background locale inizia ad aver bisogno del tuo input, finisce, o fallisce. Le sessioni che vengono eseguite secondo una pianificazione, come le sessioni /loop, notificano solo quando hanno bisogno del tuo input. Le notifiche utilizzano 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. Un processo supervisor separato le esegue, quindi puoi chiudere agent view, chiudere la tua shell, o avviare una nuova sessione interattiva e il tuo lavoro inviato continua.

Lo stato della sessione persiste su disco attraverso gli auto-update e i riavvii del supervisor. Le sessioni sono anche preservate quando la tua macchina dorme. I loro processi riprendono al risveglio e il supervisor si ricollega a loro invece di trattare il gap di tempo come inattività. Lo spegnimento ferma comunque le sessioni in esecuzione; vedi Le sessioni mostrano come non riuscite o fermate dopo lo spegnimento per come recuperarle.

Una sessione che era a metà risposta quando la macchina ha dormito può tornare non responsiva. Quando apri una sessione che ha smesso di rispondere, il supervisor riavvia il suo processo e la sessione continua la risposta interrotta da dove l'ha lasciata.

Riassunti delle righe

Il riassunto su una riga è generato da un modello di classe Haiku in modo che la riga possa dirti cosa sta facendo la sessione, cosa ha bisogno, o cosa ha prodotto senza aprire il transcript. Mentre una sessione sta attivamente lavorando, il testo della riga si aggiorna al massimo una volta ogni 15 secondi dall'output recente della sessione stessa senza inviare una richiesta di modello, e il modello scrive un riassunto fresco quando ogni turno termina.

Una riga di lavoro mostra cosa la sessione dice che sta facendo, e una riga bloccata mostra la domanda che sta ponendo. Durante un turno lungo, il modello riscrive anche il riassunto ogni pochi minuti in modo che una riga occupata non continui a mostrare un riassunto obsoleto. Il testo di riepilogo riempie la larghezza rimanente della riga; apri il pannello peek per leggere una frase che il bordo del terminale taglia.

Quando l'elenco è raggruppato per directory, il riassunto si apre con lo stato della sessione come una parola colorata, come Needs input · double jump or wall climb?. Nel raggruppamento di stato predefinito, l'intestazione del gruppo nomina 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 normale, fatturata e gestita secondo gli stessi termini di utilizzo dei dati della sessione stessa. Gli aggiornamenti di 15 secondi tra le riscritture del modello riutilizzano l'output della sessione stessa e non inviano una richiesta. Su un provider di terze parti o gateway senza un modello Haiku configurato, la richiesta utilizza 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 al 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 dei hyperlink, ad esempio su SSH o tmux. Imposta FORCE_HYPERLINK=0 per rendere l'etichetta come testo semplice.
  • Dopo aver inviato un follow-up alla sessione, Claude Code mantiene l'etichetta mentre la riga ritorna al progresso live.

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

  • Quando Claude modifica, commenta, chiude, o contrassegna una pull request come pronta con gh, Claude Code collega la pull request che l'output del comando stesso nomina. Un comando gh il cui output catturato non nomina 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 controlla una pull request con gh pr checkout o esegue il push su un ramo, Claude Code cerca il ramo con gh pr view e collega la sua pull request aperta.
  • La pull request non ha bisogno di esistere ancora quando Claude esegue il push: Claude Code ritenta la ricerca del ramo dopo fino a 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 attraverso l'API REST di GitHub, si collega quando un tentativo la trova.

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

Il numero della pull request è colorato dal suo stato:

Colore Stato della pull request
Giallo In attesa di controlli o revisione, o controlli falliti
Verde Controlli superati e nessuna revisione sta bloccando
Viola Unito
Grigio Bozza o chiuso

Per un compito che termina in una pull request, controlla questa etichetta per il risultato: rivedi e unisci la pull request 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 al bordo del terminale, e quale frase sia dipende dallo stato della sessione:

  • Una sessione che sta aspettando te: la domanda esatta che sta ponendo, sopra l'input di risposta
  • Una sessione terminata: il suo risultato
  • Una sessione che lavora: la sua frase di stato completa

Qualsiasi pull request collegata alla sessione è elencata dopo. Per una sessione che sta aspettando te, una riga come waiting 3m sotto di loro mostra quanto tempo è stata in attesa, ed è l'unico momento mostrato nel pannello. L'età al bordo destro della riga è un numero diverso: conta da quando la sessione è iniziata.

La maggior parte delle volte il pannello peek è sufficiente e non hai bisogno di aprire il transcript completo.

Digita una risposta nel pannello peek e premi Enter per inviarla a quella sessione. Quando la sessione pone una domanda con scelte predefinite, il pannello peek le mostra come un elenco numerato e puoi premere un tasto numero per sceglierne uno. Un prompt di permesso mostra come testo che descrive cosa la sessione vuole eseguire, senza opzioni numerate. Digita una risposta per rispondere, o collegati per rispondere con il prompt standard. Per altre sessioni bloccate, premi Tab per riempire l'input con una risposta suggerita che puoi modificare prima di inviare. Prefissa una risposta con ! per inviare un comando Bash invece.

Quando un hook PermissionRequest o PreToolUse restituisce un output che Claude Code non può convalidare per la chiamata che la sessione sta chiedendo, la riga mostra l'evento 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 dice che l'hook ha fallito. La sessione continua ad aspettare la stessa richiesta.

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

Con la dettatura vocale abilitata, tieni premuto o tocca il tuo tasto push-to-talk mentre l'input di risposta è focalizzato per dettare una risposta invece di digitarla. Lo stesso funziona nell'input di dispatch in fondo a agent view.

Usa ↑ e ↓ per fare peek alle sessioni adiacenti senza chiudere il pannello, o → per collegarti.

Collegarsi a una sessione

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

Mentre collegato, la sessione si comporta come qualsiasi altra sessione di Claude Code: comandi, scorciatoie da tastiera e funzioni funzionano tutti, con le eccezioni sottostanti.

Mentre sei collegato, /install-github-app e l'elenco delle impostazioni /mcp funzionano normalmente, poiché un umano al terminale può completare i loro dialoghi. Quando nessuno è collegato, questi comandi non possono aprire i loro dialoghi, quindi la sessione appare sotto Needs input in agent view con una riga come open this session to manage MCP servers, e la risposta del transcript dice lo stesso. Collegati ed esegui il comando di nuovo per continuare; la riga needs-input si cancella quando ti colleghi. /mcp reconnect <server>, /mcp enable, e /mcp disable funzionano senza collegarsi in entrambi i casi.

Le sessioni collegate si rendono sempre in modalità fullscreen, indipendentemente dalla tua impostazione tui, perché una sessione in background non ha scrollback del terminale a cui aggiungere. Scorri con PgUp, PgDn, o la rotella del mouse, e premi Ctrl+O per la modalità transcript. Lo scroll nativo del tuo terminale e la modalità copia di tmux mostrano solo il viewport corrente, lo stesso di quando esegui qualsiasi applicazione fullscreen.

Premi ← su un prompt vuoto, o esegui /exit, per scollegar e tornare a agent view, indipendentemente dal fatto che tu abbia aperto la sessione da agent view o con claude attach <id> dalla tua shell.

← scollega anche mentre l'overlay /btw è aperto. Richiede Claude Code v2.1.257 o successivo. Una domanda laterale che sta ancora rispondendo continua a funzionare 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 quella finestra il terminale può rideliver una pressione da prima che ti collegassi. Premi ← di nuovo per scollegar.

Ctrl+Z scollega anche ma torna a dove hai iniziato invece: agent view se ti sei collegato da lì, o 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 di interruzione standard mentre collegato: annulla una risposta in esecuzione o un comando shell ! piuttosto che scollegar. Premere Ctrl+C due volte su un prompt vuoto scollega, come in qualsiasi sessione.

Scollegar non ferma mai una sessione in background: ←, Ctrl+Z, /exit, e doppio Ctrl+C o doppio Ctrl+D la lasciano tutte in esecuzione. Per terminare una sessione da dentro di essa, esegui /stop.

Cambiare sessioni senza lasciare il terminale

In una sessione in esecuzione in primo piano, una che hai avviato nel terminale piuttosto che collegato da agent view, premere ← su un prompt vuoto la mette in background e apre agent view con quella riga selezionata, quindi puoi cambiare sessioni senza lasciare il terminale. Lo stesso singolo press scollega una sessione collegata.

Se premi ← subito dopo aver eliminato l'ultimo testo del prompt o aver spostato la cronologia del prompt, Claude Code ti chiede di confermare: il primo press mostra Press ← again to open agents, o Press ← again to go back to agents in una sessione collegata, e il secondo press cambia.

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 Esc di nuovo 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 alla sessione in background con la conversazione, quindi la checklist è intatta quando torni a quella riga.

La riga su cui hai premuto ← mantiene anche un nome in grassetto e non attenuato dopo aver spostato la selezione con i tasti freccia o il mouse, quindi puoi dire da quale sessione sei venuto.

Se uno strumento è in esecuzione quando premi ←, Claude Code aspetta fino a circa dieci secondi che finisca prima di metterla in background, e Claude continua la risposta nella sessione in background. Premi ← di nuovo per metterla in background immediatamente invece di aspettare. Quando il lavoro in corso non può trasferirsi 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 subagents in primo piano che Claude ha avviato nella conversazione sono ancora in esecuzione. Claude Code continua ad aspettare in modo che il loro lavoro si trasferisca, e mostra un avviso Still backgrounding after the current tool mentre aspetta. Premi ← di nuovo per metterla in background senza aspettare, il che riavvia quei subagents dall'inizio. Claude Code non aspetta i subagents che un workflow dinamico sta eseguendo. Quando un workflow ha subagents in esecuzione, Claude Code mostra la finestra di dialogo Background this session? invece.

Claude Code non mette in background la sessione mentre hai testo non inviato nell'input del prompt, perché il testo rimane nella casella di input del tuo terminale e non si sposterebbe alla sessione in background. Se digiti nell'input mentre Claude Code aspetta di mettere in background la sessione, 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 → ritorna comunque a essa.

Puoi disattivare questa scorciatoia 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 sopra: una sessione si sposta a Ready for review quando ha una pull request aperta, e Completed raccoglie insieme sessioni finite, fallite e fermate.

Premi Ctrl+S per raggruppare per directory invece. La tua scelta persiste tra le esecuzioni.

All'interno di un gruppo:

  • Premi Ctrl+T per fissare una sessione in cima e mantenere il suo processo in esecuzione mentre inattivo
  • Premi Shift+↑ o Shift+↓ per riordinare le sessioni
  • Premi Ctrl+R per rinominare una sessione
  • Premi Enter su un'intestazione di gruppo per comprimerla

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

Il secondo press elimina la sessione anche quando il tentativo di arresto fallisce, ad esempio perché il servizio in background non sta rispondendo: la conferma rimane attiva per altri due secondi, e l'eliminazione termina il processo della sessione stesso. Premi Esc per chiudere la conferma senza eliminare.

Tranne nei casi mantenuti coperti in Cosa elimina una sessione, l'eliminazione rimuove la sessione dall'elenco, e un worktree che Claude ha creato per essa viene rimosso, mantenuto, o lasciato in posto a seconda di come elimini e cosa contiene il worktree. Il transcript della conversazione rimane sempre sulla tua macchina locale, disponibile attraverso claude --resume.

Per riportare una sessione su Claude Code v2.1.212 o successivo, digita /resume nell'input di dispatch. Si apre un picker con le sessioni passate del repository da cui hai aperto agent view, più recenti per prime, 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 in modo che si riunisca all'elenco come riga, e Esc chiude il picker.

Il picker si apre solo per un /resume semplice. Un resume mirato, scoped, o ristretto non può essere servito dal picker, quindi agent view mostra l'hint attach to a session to run it invece quando:

  • /resume nomina un id o un termine di ricerca
  • la vista è scoped 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 si adattano allo schermo si ripiegano in una riga … N more. I fallimenti e le sessioni con una pull request aperta rimangono sempre visibili. Il gruppo Completed riempie lo spazio verticale rimasto dopo i gruppi live, e su un terminale corto l'intestazione si compatta in una singola riga di riepilogo in modo che le sessioni che stanno lavorando o hanno bisogno di input rimangono visibili.

Filtrare le sessioni

Digita nell'input di dispatch per filtrare invece di inviare:

Filtro Mostra
a:<name> Sessioni che eseguono l'agente denominato
s:<state> Sessioni nello stato dato, come s:working. Accetta anche s:blocked per tutto ciò che sta aspettando te
#<number> o un URL PR o merge request La sessione che lavora su quella pull request o merge request
Qualsiasi altro URL La sessione il cui primo prompt conteneva quell'URL

Scorciatoie da tastiera

Premi ? in agent view per vedere ogni scorciatoia nel contesto. La tabella sottostante le riassume.

Scorciatoia Azione
↑ / ↓ Muoviti tra le righe
Enter Collegati alla sessione selezionata, o invia se c'è testo nell'input
Space Apri o chiudi il pannello peek per la sessione selezionata
Shift+Enter Inserisci una nuova riga nell'input di dispatch, come nel prompt principale
Ctrl+Enter Invia e collegati immediatamente, nei terminali dove 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 focalizzata
Tab Su un input vuoto, sfoglia tutti i subagents. Altrimenti applica il suggerimento evidenziato
Ctrl+S Cambia raggruppamento tra stato e directory
Ctrl+T Fissa o scollega la sessione selezionata
Ctrl+R Rinomina la sessione selezionata
Ctrl+G Apri il prompt di dispatch nel tuo $VISUAL o $EDITOR
Ctrl+J Inserisci una nuova riga nell'input 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, cancella l'input, o esci. Quando hai aperto agent view mettendo in background la tua sessione con ←, l'Esc finale ritorna a quella conversazione invece di uscire. Con la modalità editor vim attiva, premere Esc nell'input passa da modalità INSERT a modalità NORMAL e mantiene il tuo testo, come nel prompt principale
Ctrl+C Cancella l'input; premi due volte per uscire
? Mostra tutte le scorciatoie

Ctrl+S, Ctrl+T, e Ctrl+G seguono il tuo keybindings.json. Riassegna o scollega Ctrl+S e Ctrl+T con le azioni agents:switchView e agents:togglePin nel contesto Agents, e Ctrl+G attraverso il binding chat:externalEditor del contesto Chat. Le altre scorciatoie nella tabella non possono essere riassegnate.

Invia nuovi agenti

Puoi inviare nuove sessioni in background da agent view, inviare una sessione interattiva esistente in background, o avviarne una direttamente dalla shell.

Da agent view

Digita un prompt nell'input in basso di agent view e premi Enter per avviare una nuova sessione in background. La sessione è 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 ottiene quando accetti un piano in quella sessione.

Incolla un'immagine nel prompt per includere uno screenshot o un diagramma con il compito.

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 la sessione inizia:

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 Invia a una directory specifica per quali repository sono elencati
/<command> Suggerisci skills e commands da inviare come prompt
! <command> Esegui un comando shell come un job in background invece di avviare una sessione Claude. Il job 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 quel pull request o merge request, Claude Code seleziona la sua riga invece di inviare una nuova sessione

Un piccolo insieme di comandi viene eseguito in agent view stesso invece di essere inviato:

  • /exit e /quit chiudono agent view
  • /logout ti disconnette
  • /model imposta il modello di dispatch
  • A partire da v2.1.198, /login apre la finestra di dialogo di accesso in modo che tu possa accedere di nuovo senza collegarti a una sessione
  • Un /resume semplice, o il suo alias /continue, apre un picker delle sessioni passate del repository per riportarne una indietro come sessione in background. Richiede Claude Code v2.1.212 o successivo

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

Confezionare un compito ricorrente come una skill ti permette di avviare lo stesso workflow da agent view ripetutamente senza riscrivere il prompt.

Quando lo stesso @name corrisponde sia a un subagent che a un repository fratello, il subagent ha la precedenza. La corrispondenza della prima parola senza @ si applica anche, quindi un prompt che inizia con uno dei tuoi nomi di 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.

Invia a una directory specifica

Una nuova sessione viene eseguita nella directory da cui hai aperto agent view. Per indirizzare una directory diversa, utilizza uno qualsiasi 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 lancio
    • I git worktrees registrati del repository da cui hai lanciato che si trovano all'interno del suo albero di directory, come quelli che Claude crea sotto .claude/worktrees/, etichettati con il loro ramo estratto. I worktrees 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 e esegui claude --bg "<prompt>".

Quando agent view è raggruppato per directory, l'invio invia il prompt alla directory della riga selezionata, quindi puoi selezionare un gruppo e inviare in esso senza riscrivere il percorso.

Da dentro una sessione

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

Invia 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 inviare un'istruzione in più prima. 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 mettere in background la sessione nello stesso modo in cui /background fa e tornare alla tua shell. L'opzione non viene mostrata quando agent view è disattivato.

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 in agent view e premi Ctrl+R.

Copia 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 nella conversazione fino a quel punto; vedi i punti elenco di seguito per dove viene eseguita la copia. Trasporta anche il modello, la modalità di autorizzazione, il livello di sforzo, e qualsiasi directory o concessioni di autorizzazione "non chiedere di nuovo" che hai aggiunto durante la sessione. La copia appare come sua propria riga in agent view.

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

La copia della sessione richiede Claude Code v2.1.212 o successivo; su v2.1.161 attraverso v2.1.211, /fork avvia un subagent con fork invece, che è ora /subtask. Quando agent view è disattivato, /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 aspetta la sua prima istruzione: seleziona la sua riga in claude agents e premi Space per inviarne una, o esegui claude attach <id>. La riga selezionata mostra space to send it a prompt mentre aspetta.

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

Tranne quando la copia modifica in posizione, Claude Code le istruisce 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 hook riceve l'istruzione; senza un WorktreeCreate hook, la copia modifica in posizione. Una copia spostata fuori dal tuo worktree riceve anche l'istruzione di non modificare mai, eseguire comandi in, o entrare in quel worktree, qualunque sia l'impostazione di isolamento.

Dove la copia inizia 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 ramo, quell'istruzione dice anche a una copia il cui compito si basa sul tuo lavoro di basare il suo nuovo ramo sul tuo, poiché il tuo ramo rimane estratto nel tuo worktree. La conferma termina con runs in the origin tree.
  • Quando hai lanciato 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 di ramo. La conferma termina con runs in the origin tree anche qui.
  • Una sessione lanciata 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 si trova, e la conferma termina con edits this checkout. La stessa nota appare quando l'isolamento del worktree è disattivato in una sessione che non è all'interno di un worktree collegato, perché la copia modifica i file che hai aperto.

Le sessioni avviate con flag di lancio 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 da agent view viene forkata normalmente: la copia viene lanciata con la stessa definizione di agente e istruzioni aggiunte della sessione da cui proviene.

Cosa si trasporta quando metti in background

Mettere in background avvia un nuovo processo che riprende dalla conversazione salvata, e il lavoro in corso si trasferisce ad esso: comandi shell in background in esecuzione, subagent in background, workflow dinamici, compiti programmati che hai creato con /loop, e risposte automatiche di Claude ai commenti degli artefatti si trasferiscono tutti e continuano a essere eseguiti lì. Un subagent si sposta insieme a tutto ciò che ha avviato, quindi si trasferisce solo quando tutto quel lavoro può trasferirsi anche. Per fermare il lavoro in corso invece di trasferirlo, imposta la variabile di ambiente CLAUDE_DISABLE_ADOPT=1; Claude Code ti chiede di confermare prima di mettere in background.

Quando un workflow dinamico ha ancora subagent in esecuzione, Claude Code chiede prima di mettere 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 ricominciamo dall'inizio, quindi i token che hanno usato finora vengono spesi di nuovo. Vedi Riprendi dopo una pausa per quali subagent completati restituiscono i loro risultati salvati e quali vengono eseguiti di nuovo.

Claude Code interrompe il lavoro che non può trasferirsi, come un monitor in esecuzione, e interrompe un subagent messo in background che possiede un monitor insieme ad esso. Quando uno qualsiasi di essi è in esecuzione, Claude Code mostra la finestra di dialogo Background this session? in modo che tu possa confermare prima che il lavoro sia interrotto.

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

I flag di configurazione dal lancio originale si trasferiscono alla sessione messa in background, quindi i suoi server MCP, le impostazioni e il modello di fallback rimangono in vigore:

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

Le directory che hai aggiunto durante la sessione con /add-dir si trasferiscono anche. Il trasferimento di --allow-dangerously-skip-permissions mantiene bypassPermissions raggiungibile nella sessione messa in background, ma non concede nulla di nuovo: la modalità richiede comunque la stessa accettazione interattiva una tantum descritta in Permission mode, model, and effort.

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 qualsiasi sessione sia creata, perché --print non avvia mai la sessione interattiva a cui claude agents si collega.

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, il lancio fallisce: Claude Code stampa un avviso no agent named e comunque segnala la sessione come messa in background, ma la sessione esce immediatamente con un errore --agent '<name>' not found.

Quando la sessione messa in background in seguito riprende o si riavvia, Claude Code ripristina l'agente e le sue restrizioni di strumenti; per il suo prompt di sistema, vedi Flag di prompt di sistema nelle conversazioni riprese. Cerca prima il suo agente nella directory della sessione, a condizione che tu abbia fiducia in 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, o avvia una copia con un nuovo ID e stampa una riga note: che spiega perché non potrebbe continuare in posizione. Quando la sessione continua in posizione, claude agents mostra una riga per essa.

Quando combini --bg con --continue, un --resume semplice, 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 in agent view invece di quello generato automaticamente:

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

Dopo aver messo 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

Esegui un comando shell

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

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

Da agent view, invia lo stesso tipo di job digitando ! come primo carattere dell'input di dispatch: il ! viene visualizzato come prefisso, tutto ciò che digiti dopo di esso è il comando, e Enter avvia il job.

Il comando viene eseguito come un job supportato da PTY e appare come una riga in agent view, con la riga di output più recente come suo stato. Un job 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 visualizzare l'anteprima senza collegarti, o 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 si puliscono automaticamente circa cinque minuti dopo l'uscita del comando, quindi leggi prima se hai bisogno del risultato.

Come sono isolate le modifiche ai file

Ogni sessione in background, che sia avviata da agent view, /bg, o claude --bg, inizia nella tua directory di lavoro. Prima di modificare i file, Claude sposta la sessione in un git worktree isolato sotto .claude/worktrees/, quindi le sessioni parallele possono leggere lo stesso checkout ma ognuna scrive nel suo. Una volta che la sessione è nel suo worktree, Claude Code applica l'isolamento del worktree per la sessione e per qualsiasi subagent che genera.

Claude salta il worktree quando:

  • 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 nessun WorktreeCreate hook è configurato
  • La scrittura è al di fuori della directory di lavoro

Per disattivare l'isolamento del worktree per un repository dove i git worktree sono impraticabili, imposta worktree.bgIsolation su "none". Le sessioni in background modificheranno quindi la tua copia di lavoro direttamente senza spostarsi prima in un worktree. Aggiungi l'impostazione al file .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 utilizzi un sistema di controllo versione diverso, configura un WorktreeCreate hook 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, Claude Code blocca le scritture al checkout condiviso finché Claude non sposta la sessione in un worktree.

Per trovare il percorso del worktree di una sessione, visualizza l'anteprima della sessione o collegati e controlla la sua directory di lavoro.

Un subagent che la sessione in background genera eredita la directory di lavoro della sessione, quindi le sue modifiche ai file finiscono nel worktree della sessione piuttosto che nella tua copia di lavoro. Per dare a un subagent il suo 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 istruisce Claude di preservare il lavoro prima di finire, quindi sopravvive se elimini la sessione e il suo worktree:

  • Commit e push: Claude esegue il commit senza chiedere, e spinge il ramo quando il repository ha un remote.
  • Bozza di pull request: Claude ne apre una quando il compito lo richiede, e l'etichetta #N appare sulla riga.
  • Mai: spingere a main o master, force-push, e merge.
  • Le tue istruzioni git hanno la precedenza: se il compito, CLAUDE.md, o memoria dice che gestisci tu stesso il commit o il push, Claude lascia git a te.

Una sessione che modifica un checkout che non ha isolato da sola chiede comunque prima di fare il commit o di cambiare rami. Questo si applica quando l'isolamento è impostato su "none", quando lo spostamento del worktree è fallito, o quando la sessione è stata avviata all'interno di un worktree che già esisteva.

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

Cosa elimina l'eliminazione di una sessione

Elimina una sessione con Ctrl+X due volte in agent view o con claude rm. Tranne nei casi mantenuti di seguito, la sessione lascia l'elenco. La sua trascrizione rimane sulla tua macchina attraverso claude --resume, e la rimozione sopravvive ai riavvii del supervisore.

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

  • Agent view lo rimuove, inclusi eventuali cambiamenti non committati, quindi esegui il commit di ciò che vuoi mantenere prima.

  • claude rm lo mantiene, insieme alla riga della sessione, quando ha cambiamenti non committati.

  • Né agent view né claude rm rimuovono un worktree che un'altra sessione in esecuzione sta usando o ha bloccato, e eliminare di nuovo non cambia questo. Claude Code mantiene il worktree e la sessione, e nomina la directory mantenuta e il motivo; in agent view, 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 sono salvati altrove, Claude Code mantiene il worktree e la sessione, e il messaggio nomina il ramo del worktree e quanti commit non sono stati spinti. Il messaggio offre anche i due modi per procedere: spingere i commit, o eliminare di nuovo per scartarli.

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

    Dopo quel rifiuto, scegli:

    • Per mantenere i commit, spingili, o uniscili in quel ramo predefinito, quindi elimina la sessione di nuovo.
    • Per scartarli, elimina la sessione di nuovo senza spingere: premi Ctrl+X due volte sulla sua riga in agent view, o esegui il comando claude rm <id> --discard-unpushed che il rifiuto ha stampato. Questo rimuove la sessione e il worktree insieme al suo ramo, scartando i commit non spinti e qualsiasi cambiamento non committato.

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

    Quando i record di un'altra sessione finita nominano anche il worktree, rimane quando elimini di nuovo; spingere i commit, quindi eliminare 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 WorktreeRemove hook non riesce a rimuovere il worktree, Claude Code mantiene il worktree e la sessione, e il messaggio nomina la causa. Per un hook, il messaggio dice come è terminato, come exited 1, e cita l'inizio del suo stderr. Il messaggio ti dice anche quale di questi fare dopo:

    • Elimina la sessione di nuovo per rimuovere la directory comunque, premendo Ctrl+X due volte sulla sua riga in agent view o eseguendo il comando claude rm <id> --force-remove-worktree <worktree-id> che il rifiuto di claude rm ha stampato. Claude Code offre questo solo quando può confermare che la directory è uno dei worktree collegati del repository sotto .claude/worktrees/ senza cambiamenti non committati ai file tracciati, nessun repository annidato dentro, e nessun record di un'altra sessione che lo nomina. Il ramo del worktree rimane nel repository.
    • Correggi ciò che sta nel modo, come committare o stash dei cambiamenti non committati, chiudere tutto ciò che sta usando la directory, o correggere l'hook, quindi elimina la sessione di nuovo.
    • Rimuovi la directory tu stesso, quindi elimina la sessione di nuovo.

Un worktree che hai creato tu stesso e in cui hai avviato la sessione viene lasciato in posizione in entrambi i casi.

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

  • Agent view chiede lo stesso doppio Ctrl+X prima di scartarli. Per una directory creata da hook esegue il tuo WorktreeRemove hook invece, e senza uno rifiuta l'eliminazione e mantiene la sessione.
  • claude rm mantiene la sessione e il worktree, e nomina il motivo.

Entrambi i percorsi mantengono una directory che i record di un'altra sessione finita nominano.

Imposta il modello

Il nome del modello mostrato nell'intestazione di agent view è il default di dispatch. Le nuove sessioni che avvii dall'input utilizzano questo modello, che proviene dall'impostazione model nei tuoi settings utente. Impostalo selezionando un modello nel picker /model, o modifica l'impostazione direttamente.

Per sovrascrivere il default di dispatch per l'intera sessione di agent view, passa --model quando apri agent view. Vedi Permission mode, model, and effort.

Per cambiare il default di dispatch da dentro agent view, digita /model seguito da un nome di modello nell'input di dispatch e premi Enter. L'intestazione si aggiorna per mostrare quel modello con un marcatore (session), e le sessioni che invii successivamente lo utilizzano. Digita /model default per cancellare l'override e tornare al default di dispatch. Questo override dura per il resto della corrente esecuzione di claude agents e non scrive nel tuo file di settings. 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 e esegui /model per passare: una scelta dal picker, o un /model <name> digitato, viene salvato come tuo default per le nuove sessioni a meno che tu non premi s nel picker per un passaggio solo per la sessione. Un passaggio solo per la sessione persiste se la sessione viene riavviata.
  • Invia un subagent il cui frontmatter imposta un campo model.

Permission mode, model, and effort

Una sessione in background prende le sue impostazioni, provider, modalità di autorizzazione, modello e 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ì. Questo include i valori env nelle impostazioni del progetto, quindi un ANTHROPIC_MODEL o una variabile del 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 cloud provider di quella shell, come CLAUDE_CODE_USE_BEDROCK o CLAUDE_CODE_USE_VERTEX, insieme ai suoi alias ANTHROPIC_DEFAULT_*_MODEL e qualsiasi override CLAUDE_CODE_EXTRA_BODY che hai esportato lì.

Gateway LLM

Se instrada Claude Code attraverso un gateway LLM, metti le variabili del gateway in un blocco env di un file di impostazioni piuttosto che esportarle nella tua shell, e le sessioni in background le leggono insieme al resto delle loro impostazioni. Imposta in un file di impostazioni mostra il blocco e quale file di impostazioni usare per la credenziale.

Se esporti un gateway ANTHROPIC_BASE_URL solo nella tua shell, raggiunge una sessione in background, insieme a ANTHROPIC_CUSTOM_HEADERS e la credenziale 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:

  • Metti in background la tua sessione con ← o /background
  • Invii una sessione nella directory in cui sei
  • Svegli una sessione fermata nella directory in cui sei collegandoti o rispondendo ad essa

Claude Code inoltra un gateway davanti a un cloud provider. Se la shell da cui invii seleziona il provider ed esporta il suo endpoint del gateway con il suo flag di bypass dell'autenticazione, Claude Code inoltra la coppia endpoint-e-flag alla sessione nelle 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 flag.

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

Modalità di autorizzazione

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

  • Messa in background con /bg o ←: Claude Code mantiene la modalità di autorizzazione in cui era la sessione, quindi una che hai cambiato in acceptEdits o auto rimane lì dopo il distacco
  • Inviata da un agent view che hai aperto con ←: la configurazione del target viene prima, e la modalità di autorizzazione della sessione da cui sei venuto si applica quando nulla altro ne imposta una
  • Inviata da claude agents avviato in una shell, o con claude --bg: la nuova sessione inizia come una nuova sessione claude in quella directory, a meno che non l'abbia inviata da un agent view che hai aperto con dispatch defaults. Quale modalità di autorizzazione una sessione inizia elenca l'ordine

Per una sessione che invii da un agent view aperto con ←, Claude Code prende la modalità di autorizzazione dal primo di questi che si applica:

  1. La permissions.defaultMode della directory target. Due regole di origine si applicano:
  2. La modalità di autorizzazione della sessione da cui sei venuto

Quando Claude Code rifiuta la modalità di una fonte come troppo permissiva, la fonte successiva nell'elenco decide. Ad esempio, se invii da una sessione in modalità piano in una directory le cui impostazioni controllate chiedono acceptEdits, la nuova sessione inizia in modalità piano. Se sposti quel defaultMode a ~/.claude/settings.json, si applica indipendentemente dalla modalità di autorizzazione della sessione da cui sei venuto.

La permissività corre piano, poi Manual e dontAsk, poi acceptEdits e auto, che ognuno conta come più permissivo dell'altro, poi bypassPermissions.

Dispatch defaults

Per impostare i default per ogni sessione che invii da agent view, passa uno qualsiasi di --permission-mode, --model, --effort, o --agent quando lo 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 dispatch non ne nomina uno, sia con @name che come prima parola. Per impostazione predefinita, utilizza l'impostazione agent se ne è impostata una, altrimenti l'agente catch-all integrato claude. Nominare un subagent nell'input di dispatch sovrascrive entrambi.

claude agents accetta anche --dangerously-skip-permissions come abbreviazione per --permission-mode bypassPermissions, e --allow-dangerously-skip-permissions per rendere bypassPermissions disponibile nel ciclo Shift+Tab di ogni sessione inviata senza avviare 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 lanciata con il flag di livello superiore --restricted. Richiede Claude Code v2.1.248 o successivo.

I default attivi appaiono nel footer sotto l'input di dispatch.

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à permette a una sessione che non stai guardando di agire senza approvazione. Passare --dangerously-skip-permissions o --permission-mode bypassPermissions a claude agents mostra lo stesso disclaimer quando non l'hai accettato prima, e accettare applica bypassPermissions alle sessioni che avvii dalla vista. Passare --allow-dangerously-skip-permissions mostra lo stesso disclaimer anche, e accettare rende bypassPermissions disponibile nel ciclo Shift+Tab di quelle sessioni senza avviarle in esso.

Cosa persiste attraverso i riavvii

La modalità di autorizzazione, 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 successivamente arresta e riavvia il processo della sessione. Una sessione che hai lanciato con claude --bg --dangerously-skip-permissions o claude --bg --permission-mode bypassPermissions rimane in bypassPermissions dopo quel riavvio. Un modello o sforzo che hai cambiato a metà sessione con /model o /effort viene mantenuto anche.

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

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

Un prompt che hai stashed con Ctrl+S mentre collegato viene mantenuto con la sessione anche. Riapri la sessione dopo che il suo processo è stato fermato o riavviato, e Ctrl+S ripristina il testo stashed. Il contenuto incollato nello stash non sopravvive al riavvio.

Impostazioni, plugin, e server MCP

Agent view accetta gli stessi flag di configurazione di claude per caricare impostazioni, plugin, server MCP, e directory aggiuntive. Agent view applica --settings e --plugin-dir a se stesso e passa ogni flag di configurazione alle sessioni che invii da esso, quindi un plugin o server MCP che carichi in questo modo è disponibile in quelle sessioni.

Flag Effetto
--settings <file-or-json> Sovrascrivi impostazioni per agent view e sessioni inviate
--add-dir <path> Concedi 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 stringa JSON
--strict-mcp-config Usa solo i server MCP da --mcp-config, ignorando altre configurazioni MCP. Vedi Controllo esclusivo con managed-mcp.json per cosa fa il flag sotto un file MCP gestito

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

Puoi mettere --settings e --plugin-dir prima o dopo agents. Mantieni --add-dir e --mcp-config dopo agents: se metti uno di questi prima di agents, claude agents --json fallisce con un errore unknown option.

L'esempio seguente apre agent view con un override di impostazioni e una directory extra:

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; Claude Code esce con un errore Settings file not found se non lo fa.

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> Collegati a una sessione in questo terminale
claude logs <id> 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 il cui eliminazione è stata rifiutata a causa di commit non sottoposti a push, scartando il worktree insieme al suo ramo 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 il 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 ramo 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

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 un prompt di permesso o un'altra finestra di dialogo, o collegato: il processo continua a funzionare. Un subagente, 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 subagenti in background che Claude ha avviato in essa si trasferiscono al suo prossimo processo; i monitor in esecuzione e i comandi shell che un subagente 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 di 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 a quel mismatch di versione intatto: 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 di ambiente CLAUDE_CODE_DISABLE_AGENT_VIEW. Gli amministratori possono applicare questo attraverso impostazioni gestite.

Troubleshooting

`claude agents` elenca subagenti invece di aprire agent view

Se claude agents stampa un conteggio seguito dai tuoi subagenti 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 di 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 premere ← 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 subagenti in esecuzione: un dynamic workflow ha ancora subagenti in esecuzione. Il workflow stesso si trasferisce, ma i suoi subagenti 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 mostrano come 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 mostra come 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 mostra come 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 quel prompt del footer.

Quando la pulizia della trascrizione 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.

Il sonno da solo non ferma le sessioni. Le sessioni vengono preservate durante il sonno 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 live, 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; riprendi 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 entrambi dicono che il comando non viene eseguito di nuovo.

L'host del terminale è morto

Su Linux e WSL, il supervisor controlla ogni processo host ogni pochi secondi, indipendentemente dal fatto che apri la sessione o meno, e contrassegna la sessione come non riuscita quando il processo è uscito ma la sua connessione al supervisor non si è mai chiusa.

  • In agent view, la riga mostra terminal host process died — press Enter to restart. Premi Enter su di essa e Claude Code riavvia la sessione su un processo host fresco.
  • Dalla shell, claude attach <id> riavvia una sessione già contrassegnata come non riuscita. Altrimenti segnala la causa e esce, dicendoti di eseguire claude attach <id> di nuovo.

La sessione non sta rispondendo

Quando il supervisor accetta un'apertura ma nessun output arriva per circa dieci secondi, Claude Code termina il tentativo e offre un riavvio. Una sessione che semplicemente si è bloccata, ad esempio durante il sonno della macchina, non raggiunge questa offerta: il supervisor la riavvia all'apertura stesso.

  • In agent view, il footer mostra Press enter again to restart this session — it isn't responding (its conversation is saved and resumes). Premi Enter sulla stessa riga di nuovo e Claude Code ferma il processo che non risponde e riavvia la sessione; non ferma nulla senza quel secondo press.
  • Dalla shell, claude attach <id> segnala la causa e esce, dicendoti di eseguire claude stop <id>, poi claude attach <id>.

Una sessione non riesce prima di iniziare 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 processo fresco 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 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 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 il processo registrato non potrebbe essere verificato 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 fresco.

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 supervisor fresco che legge le tue credenziali memorizzate. Se ti autentichi con una variabile di 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 blocca un processo dal raggiungimento di 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 il prompt 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 scollega per circa un'ora, il supervisor ferma il suo processo per liberare risorse. Il collegamento avvia un processo fresco da dove l'ha lasciato e passa alla sessione immediatamente mentre il processo si riavvia. Le sessioni che stanno lavorando, in pausa su un prompt di permesso o un'altra finestra di dialogo, o fissate non sono fermate in questo modo, quindi fissa una sessione con Ctrl+T per mantenerla reattiva.

Mentre il processo si avvia, Claude Code mostra la coda della trascrizione della sessione formattata nel modo in cui la sessione live la rende, con markdown, blocchi di codice evidenziati e chiamate di strumenti come righe attenuate, sopra un'area di prompt attenuata con una nota Session is starting. La sessione live 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 alcuni elimina 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 worktrees.

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 di opzione sconosciuta. La tabella sottostante elenca quando ogni flag e comportamento è stato aggiunto.

Versione Cambiamento
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.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 ramo 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 ramo predefinito del tuo remote origin e il tuo checkout principale ha quel ramo 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 che non hai fiducia mostra lo stesso dialogo di fiducia dell'area di lavoro che claude mostra all'avvio, prima che agent view si apra. Accettare salva la fiducia per quell'area di lavoro; 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 ramo 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 estrarre 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 l'area di lavoro è fidata; 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 il 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 un'altra sessione non la rivendichi anche. 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 area di lavoro 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 git worktree 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 ramo 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 una raw tool invocation 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 controllano una pull request, un push collega una pull request anche quando il nome del ramo 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 quel gateway environment, 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 git worktrees registrati del repository di avvio che si trovano all'interno del suo albero di directory. Uno sforzo ereditato dall'impostazione effortLevel segue i successivi edit 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 blocca più la sessione dall'editing dei 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 suo proprio subagent e skill autocomplete 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, spinge il suo ramo isolato proprio, 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 dal loro transcript 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. Un transcript frainteso come vuoto al riavvio viene rinominato con un suffisso .orphaned- invece di essere eliminato.
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 o 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.