Skip to main content
Agent view, aperto con claude agents, è una sola schermata per tutte le tue sessioni in background: cosa sta girando, cosa ha bisogno del tuo input e cosa è fatto. Invia nuove sessioni, osserva il loro stato a colpo d’occhio invece di scorrere i transcript, e intervieni solo quando uno ne ha bisogno. Ogni sessione in background è una conversazione completa di Claude Code che continua a girare senza un terminale collegato, quindi puoi aprirla, rispondere e andare via quando vuoi. Agent view in a terminal. A line at the top counts the sessions awaiting input, working, and completed. Four sessions are grouped under Needs input, Working, and Completed. Each row shows the session's name, its latest status or question, and a time. At the bottom are an input for describing a new task and a row of keyboard hints. Agent view in a terminal. A line at the top counts the sessions awaiting input, working, and completed. Four sessions are grouped under Needs input, Working, and Completed. Each row shows the session's name, its latest status or question, and a time. At the bottom are an input for describing a new task and a row of keyboard hints. Usa agent view quando hai diversi compiti indipendenti su cui Claude può lavorare senza che tu guardi ogni passo. Invia una correzione di bug, una revisione di pull request e un’investigazione di test instabile come tre righe, continua a lavorare in un’altra finestra e controlla quando una riga mostra che ha bisogno di te o ha un risultato. Quando vuoi lavorare più direttamente nella sessione di qualsiasi agente, collegati alla riga per entrare nella conversazione completa. Per confrontare agent view con subagenti, team di agenti e worktrees, vedi Esegui agenti in parallelo. Agent view esegue sessioni sulla tua macchina e tu invii ognuna; per fare in modo che Claude avvii e traccia sessioni parallele nel cloud da una sola conversazione, vedi Projects.
Agent view è in anteprima di ricerca. L’interfaccia e le scorciatoie da tastiera potrebbero cambiare mentre la funzione si evolve.

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:
Se non hai ancora accettato la finestra di dialogo di fiducia del workspace 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 il workspace 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 invece a quella conversazione. 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 permesso 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 avvii una seconda sessione accanto alla prima piuttosto che inviare un follow-up ad essa. Puoi eseguirne diverse 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 scollegati

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 scollegarti e tornare alla tabella.
5

Porta una sessione esistente dentro

Questo passaggio richiede una sessione in esecuzione. Se hai seguito i passaggi precedenti non ne hai una aperta in questo terminale, quindi apri una sessione claude regolare in un altro terminale e invia prima un messaggio.Per spostare una sessione che hai già aperta in agent view, esegui /bg dentro di essa, o premi ← su un prompt vuoto per metterla in background e aprire agent view in un unico passaggio. In una sessione nuova senza messaggi ancora, /bg ti chiede di inviare prima un messaggio, mentre ← funziona subito. La sessione continua a funzionare e appare come una riga accanto a quelle che hai inviato.
All’interno di una sessione claude regolare, l’hint ← del footer del prompt conta gli agenti in background che stanno aspettando te, come ← 2 agents, e ritorna a ← for agents quando nessuno ha bisogno di input. I conteggi superiori a 99 vengono visualizzati come 99+. Il conteggio si aggiorna circa ogni dieci secondi mentre il terminale è focalizzato e immediatamente quando il focus ritorna. Cambia brevemente colore quando si sposta e quando un agente si completa, e quando una sessione in background si completa mentre nessuno ha bisogno del tuo input mostra brevemente il numero completato, come ← 2 done. Entrambi i flash sono disattivati quando l’impostazione prefersReducedMotion è attiva, e l’hint è nascosto in modalità screen reader.

Apri agent view per impostazione predefinita

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

Attiva l'impostazione

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

Avvia Claude Code

Esci dalla sessione, quindi esegui claude senza argomenti:
Agent view si apre al posto di una nuova conversazione.
Per avviare una sessione regolare mentre l’impostazione è attiva, passa un prompt: claude "fix the login test". Per disattivare l’impostazione, esegui /config defaultToAgentsView=false in una sessione regolare o in una a cui ti colleghi da agent view.

Monitorare le sessioni con agent view

Esegui claude agents per aprire agent view. Occupa l’intero terminale ed elenca ogni sessione raggruppata per stato, con le sessioni fissate e quelle che hanno bisogno di te in cima. Ogni riga mostra il nome della sessione, l’attività corrente e la sua età, contata da quando la sessione è stata creata; l’età di una sessione terminata si ferma alla durata dell’esecuzione. Il nome è colorato con il colore impostato da /color in quella sessione, anche quando metti in background una sessione con ← o /background. Per impostazione predefinita, l’elenco mostra ogni sessione in background che hai avviato, in tutti i tuoi progetti. Una sessione che lavora in un repository e un’altra in un worktree diverso appaiono entrambe qui, indipendentemente dalla directory da cui hai aperto agent view. Per limitare l’elenco a un progetto, passa --cwd:
Questo mostra solo le sessioni avviate in quella directory. Elenca comunque una sessione che si è spostata in un worktree sotto ~/projects/my-app/.claude/worktrees/. Le sessioni interattive che hai aperto in altri terminali non appaiono finché non le metti in background. I subagent e i teammate che una sessione genera non sono elencati come righe separate.

Leggere lo stato della sessione

Ogni riga inizia con un’icona il cui colore e la cui animazione mostrano lo stato della sessione: Separatamente, la forma dell’icona ha un proprio significato: L’etichetta #N o !N che può apparire sul bordo destro di una riga è un collegamento alla pull request o merge request della sessione, non fa parte dell’icona di stato. Il titolo della scheda del terminale mostra il numero di sessioni in attesa di input mentre agent view è aperto: 2 awaiting input · claude agents quando ci sono sessioni che hanno bisogno di input, oppure claude agents quando non ce ne sono. Per leggere lo stato della sessione da uno script o da un altro programma, usa claude agents --json anziché i file sotto ~/.claude/jobs/. Mentre agent view è aperto, Claude Code invia anche una notifica attraverso il canale di notifica del terminale che hai configurato quando una sessione in background locale inizia ad aver bisogno del tuo input, termina o fallisce. Le sessioni eseguite secondo una pianificazione, come le sessioni /loop, inviano notifiche solo quando hanno bisogno del tuo input. Le notifiche usano la stessa impostazione preferredNotifChannel del resto di Claude Code e attivano l’hook Notification con il tipo agent_needs_input o agent_completed. Le sessioni in background non hanno bisogno di alcun terminale aperto per continuare a lavorare. Le esegue un processo supervisor separato, quindi puoi chiudere agent view, chiudere la tua shell o avviare una nuova sessione interattiva e il lavoro che hai inviato continua. Lo stato della sessione persiste su disco attraverso gli aggiornamenti automatici e i riavvii del supervisor. Le sessioni vengono preservate anche quando la tua macchina va in stop. I loro processi riprendono al risveglio e il supervisor si ricollega a essi invece di trattare l’intervallo di tempo come inattività. Lo spegnimento ferma comunque le sessioni in esecuzione; consulta Le sessioni appaiono come non riuscite o fermate dopo lo spegnimento per sapere come recuperarle. Una sessione che era a metà di una risposta quando la macchina è andata in stop può tornare senza rispondere. Quando apri una sessione che ha smesso di rispondere, il supervisor riavvia il suo processo e la sessione continua la risposta interrotta da dove si era fermata.

Riassunti delle righe

Il riassunto di una riga in ciascuna riga è generato da un modello di classe Haiku, così la riga può dirti cosa sta facendo la sessione, di cosa ha bisogno o cosa ha prodotto senza aprire la trascrizione. Mentre una sessione sta lavorando attivamente, il testo della riga si aggiorna al massimo una volta ogni 15 secondi a partire dall’output recente della sessione stessa, senza inviare una richiesta al modello, e il modello scrive un nuovo riassunto al termine di ogni turno. Una riga in lavorazione mostra cosa la sessione dice di stare facendo, e una riga bloccata mostra la domanda che sta ponendo. Durante un turno lungo, il modello riscrive anche il riassunto ogni pochi minuti, così una riga occupata non continua a mostrarne uno obsoleto. Il testo del riassunto riempie la larghezza rimanente della riga; apri il pannello peek per leggere una frase tagliata dal bordo del terminale. Quando l’elenco è raggruppato per directory, il riassunto inizia con lo stato della sessione come parola colorata, ad esempio Needs input · double jump or wall climb?. Nel raggruppamento predefinito per stato, l’intestazione del gruppo indica già lo stato, quindi la riga mostra solo il riassunto. Il riassunto di fine turno e ogni riscrittura a metà turno sono una breve richiesta di classe Haiku attraverso il tuo provider abituale, fatturata e gestita secondo gli stessi termini di utilizzo dei dati della sessione stessa. Gli aggiornamenti ogni 15 secondi tra una riscrittura del modello e l’altra riutilizzano l’output della sessione stessa e non inviano richieste. Su un provider di terze parti o un gateway senza un modello di classe Haiku configurato, la richiesta usa invece il modello principale della sessione; imposta ANTHROPIC_DEFAULT_HAIKU_MODEL per sceglierne uno.

Stato della pull request

Quando una sessione apre una pull request, Claude Code aggiunge un’etichetta sul bordo destro della riga, collegata alla pull request:
  • Claude Code scrive l’etichetta come #1234 per una pull request e come !1234 per una merge request di GitLab.
  • Claude Code emette il collegamento anche quando non riesce a rilevare il supporto per i collegamenti ipertestuali, ad esempio tramite SSH o tmux. Imposta FORCE_HYPERLINK=0 per mostrare l’etichetta come testo semplice.
  • Dopo che invii un messaggio di follow-up alla sessione, Claude Code mantiene l’etichetta mentre la riga torna a mostrare l’avanzamento in tempo reale.
Una sessione che lavora su una pull request esistente viene collegata a essa allo stesso modo. Claude Code trova la pull request in modo diverso a seconda del comando che Claude esegue:
  • Quando Claude modifica, commenta, chiude o contrassegna come pronta una pull request con gh, Claude Code collega la pull request indicata dall’output del comando stesso. Un comando gh il cui output catturato non indica alcuna pull request non crea un collegamento; gh pr merge è il caso comune, perché stampa il suo risultato solo su un terminale interattivo.
  • Quando Claude esegue il checkout di una pull request con gh pr checkout o esegue il push su un branch, Claude Code cerca il branch con gh pr view e collega la sua pull request aperta.
  • Non è necessario che la pull request esista già quando Claude esegue il push: Claude Code riprova la ricerca del branch dopo un massimo di cinque comandi git, gh, glab o curl successivi eseguiti nella stessa directory, quindi una pull request creata dopo il push, inclusa una che Claude crea tramite la REST API di GitHub, viene collegata quando un nuovo tentativo la trova.
Quando una sessione è collegata a più di una pull request, l’etichetta mostra invece un conteggio, come 3 PRs, colorato in base alla pull request aperta che richiede più attenzione. Apri il pannello peek per vederle tutte. Il numero della pull request è colorato in base al suo stato: Per un’attività che si conclude con una pull request, controlla questa etichetta per conoscere il risultato: rivedi la pull request ed esegui il merge quando il suo numero diventa verde.

Peek e rispondi

Premi Space su una riga selezionata per aprire il pannello peek. Si apre con la frase che la riga tronca sul bordo del terminale, e quale sia questa frase dipende dallo stato della sessione:
  • Una sessione che ti sta aspettando: la domanda esatta che sta ponendo, sopra il campo di risposta
  • Una sessione terminata: il suo risultato
  • Una sessione in lavorazione: la sua frase di stato completa
Subito dopo sono elencate le eventuali pull request collegate alla sessione. Per una sessione che ti sta aspettando, una riga come waiting 3m sotto di esse mostra da quanto tempo è in attesa, ed è l’unico tempo mostrato nel pannello. L’età sul bordo destro della riga è un numero diverso: conta da quando la sessione è stata avviata. Nella maggior parte dei casi il pannello peek è sufficiente e non hai bisogno di aprire la trascrizione completa. Digita una risposta nel pannello peek e premi Enter per inviarla a quella sessione. Anteponi ! a una risposta per inviare invece un comando Bash. Cosa succede alla risposta dipende dalla sessione e da cosa invii:
  • Una sessione che sta lavorando: /model, /effort, /rename e /usage vengono eseguiti subito. Le altre risposte entrano nella coda dei messaggi della sessione invece di interrompere la risposta in corso, e hanno effetto quando lo ha l’input in coda. Gli altri comandi attendono la fine del turno, anche quelli che vengono eseguiti non appena li digiti nel prompt della sessione stessa
  • Una risposta che è esattamente /stop: ferma subito la sessione invece di esserle consegnata, sia che la sessione stia lavorando sia che ti stia aspettando
  • Un job di shell: la risposta, /stop incluso, va al terminale del comando come input digitato
Quando la sessione ti sta aspettando, il modo in cui rispondi dal pannello peek dipende da cosa sta aspettando:
  • Una domanda con scelte predefinite: il pannello elenca le scelte per numero. Con il campo di risposta vuoto, premi il numero di una scelta per inserirla, poi Enter per inviarla, oppure digita invece la tua risposta
  • Una domanda senza scelte predefinite: digita la tua risposta. Quando il campo vuoto mostra una risposta suggerita, premi Tab per inserirla e modificala prima di inviarla
  • Una richiesta di permesso o un’altra finestra di dialogo, come una richiesta della sandbox o una richiesta di input di un server MCP: rispondere non la gestisce. La tua risposta attende in coda. Per rispondere alla finestra di dialogo, collegati con →
Quando un hook PermissionRequest o PreToolUse restituisce un output che Claude Code non riesce a convalidare per la chiamata di cui la sessione chiede conferma, la riga mostra l’evento dell’hook e hook output invalid: con l’errore di convalida prima del testo della richiesta in sospeso. Per un hook che fallisce in un altro modo, la riga indica che l’hook non è riuscito. La sessione continua ad attendere la stessa richiesta. Quando una risposta non può essere consegnata, il messaggio di errore indica se è stata salvata. Una risposta con il prefisso ! o / non viene mai salvata. Claude Code invia una risposta salvata come prossimo prompt della sessione la prossima volta che riavvii la sessione; invia di nuovo qualsiasi altra risposta. Con la dettatura vocale attivata in modalità hold, tieni premuto il tasto push-to-talk mentre il campo di risposta ha il focus per dettare una risposta invece di digitarla. Lo stesso funziona nel campo di dispatch in fondo ad agent view. Usa ↑ e ↓ per dare un’occhiata alle sessioni adiacenti senza chiudere il pannello, oppure → per collegarti.

Collegarsi a una sessione

Premi Enter o → su una riga selezionata per collegarti. Agent view viene sostituito dalla sessione interattiva completa. Quando ti colleghi, Claude pubblica un breve riepilogo di cosa è successo mentre eri via. Mentre sei collegato, la sessione si comporta come qualsiasi altra sessione di Claude Code: comandi, scorciatoie da tastiera e funzionalità funzionano tutti, con le eccezioni indicate di seguito. Mentre sei collegato, /install-github-app e l’elenco delle impostazioni di /mcp funzionano normalmente, poiché una persona al terminale può completare le loro finestre di dialogo. Quando nessuno è collegato, questi comandi non possono aprire le loro finestre di dialogo, quindi la sessione appare sotto Needs input in agent view con una riga come open this session to manage MCP servers, e la risposta nella trascrizione dice lo stesso. Collegati ed esegui di nuovo il comando per continuare; la riga di richiesta input scompare quando ti colleghi. /mcp reconnect <server>, /mcp enable e /mcp disable funzionano in ogni caso senza collegarsi. Le sessioni collegate vengono sempre visualizzate in modalità fullscreen, indipendentemente dalla tua impostazione tui, perché una sessione in background non ha uno scrollback del terminale a cui aggiungere contenuto. Scorri con PgUp, PgDn o la rotella del mouse, e premi Ctrl+O per la modalità trascrizione. Lo scorrimento nativo del terminale e la modalità copia di tmux mostrano solo l’area visibile corrente, come quando esegui qualsiasi applicazione a schermo intero. Una sessione collegata non riporta il suo stato al tuo terminale. Premi ← su un prompt vuoto, oppure esegui /exit, per scollegarti e tornare ad agent view, sia che tu abbia aperto la sessione da agent view sia con claude attach <id> dalla tua shell. ← ti scollega anche mentre l’overlay /btw è aperto. Richiede Claude Code v2.1.257 o successivo. Una domanda laterale ancora in fase di risposta continua a essere eseguita mentre sei via. La prossima volta che ti colleghi, l’overlay si riapre con essa, o con la sua risposta. Su Windows, se premi ← entro circa mezzo secondo dal collegamento, Claude Code mostra Ambiguous ←, press again to detach, perché in quell’intervallo il terminale può ritrasmettere una pressione avvenuta prima del collegamento. Premi di nuovo ← per scollegarti. Anche Ctrl+Z ti scollega, ma torna invece al punto da cui sei partito: agent view se ti sei collegato da lì, oppure la tua shell se hai eseguito claude attach. Usa Ctrl+Z quando una finestra di dialogo ha il focus e non risponde a ←. Ctrl+C mantiene il suo comportamento standard di interruzione mentre sei collegato: annulla una risposta in corso o un comando shell ! anziché scollegarti. Premere Ctrl+C due volte su un prompt vuoto ti scollega. Scollegarti non ferma mai una sessione in background: ←, Ctrl+Z, /exit e il doppio Ctrl+C o doppio Ctrl+D la lasciano tutti in esecuzione. Se ti scolleghi mentre un /loop attende la sua prossima iterazione, il loop continua a essere eseguito e quell’iterazione parte all’orario previsto senza di te. Per fermare il loop prima di scollegarti, consulta Fermare un loop. Per terminare una sessione dall’interno, esegui /stop.

Cambiare sessione senza lasciare il terminale

In una sessione in esecuzione in primo piano, cioè una che hai avviato nel terminale anziché collegarti a essa da agent view, premere ← su un prompt vuoto la mette in background e apre agent view con quella riga selezionata, così puoi cambiare sessione senza lasciare il terminale. La stessa singola pressione scollega una sessione collegata. Se premi ← subito dopo aver eliminato l’ultimo testo del prompt o esserti spostato nella cronologia dei prompt, Claude Code ti chiede di confermare: la prima pressione mostra Press ← again to open agents, oppure Press ← again to go back to agents in una sessione collegata, e la seconda pressione effettua il cambio. Quando ← mette in background una sessione in primo piano, agent view mostra Your conversation moved to the background sopra l’elenco, con la riga di quella sessione già selezionata. Da lì:
  • Premi Enter per riaprire la conversazione.
  • Premi Esc per annullare il cambio e tornare alla conversazione. Se Esc mostra Still starting — try again in a moment, la sessione in background non è ancora pronta, quindi premi di nuovo Esc tra un momento.
  • Premi Ctrl+C due volte per uscire alla tua shell.
Quando Claude Code non riesce a riaprire la conversazione, esce e stampa un comando claude --resume che la riprende. L’elenco delle attività di Claude si sposta nella sessione in background insieme alla conversazione, quindi la checklist è intatta quando torni a quella riga. Anche la riga da cui hai premuto ← mantiene un nome in grassetto e non attenuato dopo che sposti la selezione con i tasti freccia o il mouse, così puoi capire da quale sessione provieni. Se uno strumento è in esecuzione quando premi ←, Claude Code attende che termini prima di mettere la sessione in background, e Claude continua la risposta nella sessione in background. Premi di nuovo ← per metterla subito in background invece di attendere. Quando il lavoro in corso non può essere trasferito alla sessione in background, Claude Code mostra prima la finestra di dialogo Background this session?, come con /background. Dopo circa dieci secondi, Claude Code mette la sessione in background senza attendere oltre, tranne in casi come questi:
  • I subagent in primo piano sono ancora in esecuzione: Claude Code continua ad attendere affinché il lavoro dei subagent in primo piano avviati da Claude venga trasferito, e mostra Still backgrounding after the current tool. Premi di nuovo ← per mettere la sessione in background senza attendere, il che riavvia quei subagent dall’inizio.
  • Una richiesta di permesso o una domanda attende la tua risposta: mentre una richiesta di permesso o una domanda posta da Claude è in attesa, Claude Code continua ad attendere e mostra Still backgrounding after the current tool — a question is waiting for your answer. Se la tua risposta permette al turno di continuare, come Yes su una richiesta di permesso, Claude Code mette la sessione in background quando lo strumento corrente termina.
  • Digiti nel campo del prompt: Claude Code annulla il cambio, perché il testo non inviato rimane nella casella di input del terminale e non verrebbe spostato nella sessione in background. Mostra Backgrounding cancelled — you have unsent text in the input. Send it or clear it, then press ← again.
  • Fermi il turno: Claude Code annulla il cambio e mostra Backgrounding cancelled — the turn was stopped. Ad esempio, il turno si ferma quando interrompi Claude con Esc o selezioni No senza un commento su una richiesta di permesso della conversazione principale, oppure premi Esc su una domanda che Claude pone lì. Premi di nuovo ← per mettere la sessione in background.
  • Un messaggio in coda non può essere spostato: i messaggi che hai messo in coda mentre Claude stava lavorando si spostano nella sessione in background insieme alla conversazione. Quando uno di essi non può farlo, la sessione rimane in primo piano e Claude Code mostra un avviso come Cannot open agents — 1 queued message can't move to the background. Press ← again once Claude has read it.
Quando Claude Code mette la sessione in background, dopo circa dieci secondi oppure dopo che premi di nuovo ←, ferma un comando shell che Claude sta ancora eseguendo in primo piano. Claude Code non mostra la finestra di dialogo Background this session? per quel comando. Nella sessione in background, Claude non ha traccia dell’avvio del comando, quindi potrebbe eseguirlo di nuovo. Per mantenere il comando in esecuzione quando la sessione viene spostata, premi Ctrl+B per trasformarlo in un comando in background mentre Claude Code sta ancora attendendo. Premere ← crea la riga della sessione anche quando la conversazione non ha ancora messaggi, quindi → vi ritorna comunque. Puoi disattivare questa scorciatoia per le sessioni in primo piano con l’impostazione leftArrowOpensAgents in /config.

Organizzare l’elenco

Agent view raggruppa le sessioni in modo che quelle che hanno bisogno di input siano in cima, con Ready for review e Needs input sopra Working e Completed. Questi nomi di gruppo non corrispondono uno a uno agli stati descritti sopra: una sessione passa a Ready for review quando ha una pull request aperta che richiede una revisione o ha controlli non superati, e Completed raccoglie insieme le sessioni terminate, non riuscite e fermate. Premi Ctrl+S per raggruppare invece per directory. La tua scelta persiste tra un’esecuzione e l’altra. All’interno di un gruppo:
  • Premi Ctrl+T per fissare una sessione in cima e mantenere il suo processo in esecuzione quando è inattiva
  • Premi Shift+↑ o Shift+↓ per riordinare le sessioni
  • Premi Ctrl+R per rinominare una sessione
  • Premi Enter su un’intestazione di gruppo per comprimerla, tranne quando è attivo un filtro, nel qual caso ogni gruppo rimane espanso
Per rimuovere una sessione dall’elenco, premi Ctrl+X per fermarla e di nuovo Ctrl+X entro due secondi per eliminarla. Premere Ctrl+X su un’intestazione di gruppo elimina, dopo conferma, ogni sessione di quel gruppo. La seconda pressione elimina la sessione anche quando il tentativo di arresto non riesce, ad esempio perché il servizio in background non risponde: la conferma rimane attiva per altri due secondi e l’eliminazione termina direttamente il processo della sessione. Premi Esc per chiudere la conferma senza eliminare. Tranne nei casi di conservazione descritti in Cosa rimuove l’eliminazione di una sessione, l’eliminazione rimuove la sessione dall’elenco, e un worktree che Claude ha creato per essa viene rimosso, conservato o lasciato al suo posto a seconda di come elimini e di cosa contiene il worktree. La trascrizione della conversazione rimane sempre sulla tua macchina locale, disponibile tramite claude --resume. Per ripristinare una sessione su Claude Code v2.1.212 o successivo, digita /resume nel campo di dispatch. Si apre un selettore con le sessioni passate del repository da cui hai aperto agent view, dalla più recente, incluse le sessioni che hai eliminato dall’elenco; le sessioni che hanno già una riga non sono elencate. ↑/↓ spostano la selezione, Enter riprende la sessione selezionata come sessione in background, così rientra nell’elenco come riga, e Esc chiude il selettore. Il selettore si apre solo per un semplice /resume. Un ripristino mirato, con ambito limitato o ristretto non può essere gestito dal selettore, quindi agent view mostra invece il suggerimento attach to a session to run it quando:
  • /resume indica un id o un termine di ricerca
  • la vista è limitata con --cwd
  • la vista è stata avviata con --safe-mode
  • la vista è stata aperta con un flag come --permission-mode o --settings
Le sessioni completate che non entrano nello schermo vengono raggruppate in una riga … N more. Il gruppo Completed occupa lo spazio verticale rimasto dopo i gruppi attivi e, su un terminale basso, l’intestazione si compatta in una singola riga di riepilogo così che le sessioni in lavorazione o che hanno bisogno di input rimangano visibili.

Filtrare le sessioni

Inizia il campo di dispatch con uno di questi filtri per restringere l’elenco mentre digiti: Per combinare i filtri, inizia con a:, s:, n: o o: e aggiungine altri, separati da spazi. L’elenco mostra le sessioni che corrispondono a tutti. Ad esempio, s:blocked a:reviewer elenca le sessioni reviewer che ti stanno aspettando. Mentre un filtro è attivo, i gruppi che hai compresso si espandono per mostrare le loro corrispondenze e una corrispondenza viene selezionata, quindi premendo Enter la apri. Svuota il campo per rimuovere il filtro, e quei gruppi si comprimono di nuovo.

Scorciatoie da tastiera

Premi ? in agent view per vedere le scorciatoie nel contesto. La tabella seguente le riassume. Le scorciatoie che hanno un’azione nel contesto Agents seguono il tuo keybindings.json. Lo stesso vale per Ctrl+G, tramite l’associazione chat:externalEditor del contesto Chat.

Inviare nuovi agenti

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

Inviare un agente dalla vista agente

Digita un prompt nell’input in fondo alla vista agente e premi Enter per avviare una nuova sessione in background. La sessione viene denominata automaticamente dal prompt; rinominala in seguito con Ctrl+R. Il nome automatico è un’etichetta breve scritta da un modello di classe Haiku. Un nome che la sessione riceve in seguito appare anche sulla sua riga, incluso il titolo generato che la sessione riceve quando accetti un piano in quella sessione. Incolla un’immagine nel prompt per includere uno screenshot o un diagramma con l’attività. Il testo incollato più lungo di 800 caratteri o più di tre righe si comprime in un placeholder [Pasted text #N] in modo che l’input rimanga su una riga; il testo completo viene inviato quando invii. Per rivedere o modificare il testo compresso prima di inviare, incolla lo stesso testo di nuovo e il placeholder si espande di nuovo nell’input. Prefissa o menziona parti del prompt per controllare come inizia la sessione: Un piccolo insieme di comandi viene eseguito nella vista agente stessa invece di essere inviato:
  • /exit e /quit chiudono la vista agente
  • /logout ti disconnette
  • /model imposta il modello di invio
  • /login apre la finestra di dialogo di accesso in modo da poter accedere di nuovo senza collegarti a una sessione
  • Un /resume nudo, o il suo alias /continue, apre un selettore delle sessioni passate del repository per riportarne una indietro come sessione in background. Richiede Claude Code v2.1.212 o successivo
Le skill, i tuoi comandi e i built-in che espandono il prompt come /init vengono inviati a una nuova sessione in background come primo prompt. Gli altri comandi built-in mostrano invece un suggerimento attach to a session to run it. Tutto ciò che hai digitato rimane nell’input accanto al suggerimento in modo da poterlo modificare. Confezionare un’attività ricorrente come skill ti consente di avviare lo stesso workflow dalla vista agente ripetutamente senza riscrivere il prompt. Quando lo stesso @name corrisponde sia a un subagent che a un repository fratello, il subagent ha la precedenza. Si applica anche la corrispondenza della prima parola nuda, quindi un prompt che inizia casualmente con uno dei nomi dei tuoi subagent invia quel subagent piuttosto che trattare la parola come testo semplice. Usa la forma @ quando vuoi essere esplicito, o inizia il prompt con una parola diversa per evitare la corrispondenza.

Inviare a una directory specifica

Una nuova sessione viene eseguita nella directory da cui hai aperto la vista agente. Per indirizzare una directory diversa, usa uno di questi:
  • Apri claude agents in quella directory.
  • Apri claude agents in una directory padre e menziona un repository figlio con @<repo> nel prompt. Digitando @ vengono elencati questi target:
    • Repository Git un livello sotto la directory di avvio
    • I git worktree registrati del repository da cui hai avviato che si trovano all’interno del suo albero di directory, come quelli che Claude crea sotto .claude/worktrees/, etichettati con il loro branch estratto. I worktree aggiunti al di fuori del repository, come con git worktree add ../feature, non sono elencati
    • Qualsiasi directory che ha già una sessione nell’elenco
    Una directory il cui nome contiene uno spazio non è elencata.
  • Dalla shell, cd nella directory ed esegui claude --bg "<prompt>".
Quando la vista agente è raggruppata per directory, l’invio invia il prompt alla directory della riga selezionata, in modo da poter selezionare un gruppo e inviare in esso senza riscrivere il percorso.

Inviare o copiare una sessione in background

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

Inviare la sessione in background

Esegui /background o il suo alias /bg per spostare la conversazione corrente in una sessione in background. Passa un prompt come /bg run the test suite and fix any failures per dare prima un’istruzione in più. Se Claude sta rispondendo quando esegui /bg, la risposta continua nella sessione in background. L’uscita da una sessione che ha ancora lavoro in background in esecuzione, come subagent, comandi shell in background, workflow o monitor, mostra una finestra di dialogo Background work is running invece di uscire immediatamente. Scegli Move to background and exit per inviare la sessione in background nello stesso modo in cui lo fa /background e tornare alla tua shell. L’opzione non viene mostrata quando la vista agente è disattivata. Se una sessione in background nell’elenco ha già il nome della conversazione, Claude Code numera il nome della nuova riga, come my-session (2), e lascia il nome della riga esistente invariato. Per rinominare la nuova riga, selezionala nella vista agente e premi Ctrl+R.

Copiare la sessione con /fork

Esegui /fork per copiare la conversazione corrente in una nuova sessione in background mentre l’originale continua a essere eseguita. La copia inizia con tutto ciò che c’è nella conversazione fino a quel punto; vedi i punti elenco di seguito per sapere dove viene eseguita la copia. Trasporta anche il modello, la modalità di permesso, il livello di sforzo e qualsiasi directory o concessione di permesso “non chiedere di nuovo” che hai aggiunto durante la sessione. La copia appare come una riga propria nella vista agente. Dopo il fork, le due conversazioni sono indipendenti: nulla di ciò che fa la copia entra nella conversazione originale da solo, anche se nelle sessioni in cui la messaggistica tra sessioni è abilitata, il Claude di entrambe le sessioni può esplicitamente inviare un messaggio all’altra. La copia della sessione richiede Claude Code v2.1.212 o successivo; dalla v2.1.161 alla v2.1.211, /fork avvia invece un subagent con fork, che ora è /subtask. Quando la vista agente è disattivata, /fork mantiene il comportamento del subagent con fork e /subtask non è disponibile. Passa un prompt come /fork open a draft pull request with the work so far e la copia inizia a lavorarci immediatamente. Senza un prompt la copia attende la sua prima istruzione: seleziona la sua riga in claude agents e premi Space per inviarne una, oppure esegui claude attach <id>. La riga selezionata mostra space to send it a prompt mentre attende. La conferma di /fork è una riga che mostra lo stato della copia, come session running, il nome della sua riga nella vista agente e il suo ID di sessione per claude attach. Fai clic sul nome per passare alla copia: questa sessione si sposta in background, come premendo ←, e la vista agente apre la sessione della copia. Tranne quando la copia modifica in posizione, Claude Code le indica di creare un worktree proprio prima di apportare modifiche al codice. Al di fuori di un repository git, solo una copia spostata fuori da un worktree creato da un hook riceve l’istruzione; senza un hook WorktreeCreate, la copia modifica in posizione. A una copia spostata fuori dal tuo worktree viene anche detto di non modificare mai, non eseguire comandi in né entrare in quel worktree, qualunque sia l’impostazione di isolamento. Il punto in cui inizia la copia dipende da dove è in esecuzione la sessione corrente:
  • Come qualsiasi sessione inviata, la copia si sposta nel suo worktree prima di modificare i file. In quel caso la conferma non menziona dove viene eseguita la copia.
  • Quando la tua sessione si è spostata nel suo worktree collegato dopo l’avvio, la copia inizia da dove era la sessione prima dello spostamento e, a meno che non modifichi in posizione, apporta le sue modifiche al codice in un worktree proprio lì. Quando il tuo worktree è estratto su un branch, quell’istruzione dice anche a una copia il cui compito si basa sul tuo lavoro di basare il suo nuovo branch sul tuo, poiché il tuo branch rimane estratto nel tuo worktree. La conferma termina con runs in the origin tree.
  • Quando hai avviato la sessione all’interno di un worktree collegato di un repository che ha un albero di lavoro principale, la copia inizia in quell’albero di lavoro principale, con la stessa regola del worktree proprio ma nessuna istruzione sul branch. Anche qui la conferma termina con runs in the origin tree.
  • Una sessione avviata all’interno di un worktree di un layout di repository bare non ha un albero di lavoro principale a cui tornare, quindi la copia rimane dove è, e la conferma termina con edits this checkout. La stessa nota appare quando l’isolamento con worktree è disattivato in una sessione che non è all’interno di un worktree collegato, perché la copia modifica allora i file che hai aperto.
Le sessioni avviate con flag di avvio che la copia non erediterebbe, come un prompt di sistema sostituito o un’allowlist --tools, non possono essere forkate; Claude Code lo dice invece di fare una copia parziale. Una sessione inviata dalla vista agente viene forkata normalmente: la copia viene avviata con la stessa definizione di agente e le stesse istruzioni aggiunte della sessione da cui proviene.

Cosa viene trasportato quando invii in background

L’invio in background avvia un nuovo processo che riprende dalla conversazione salvata, e il lavoro in corso si sposta in esso: comandi shell in background in esecuzione, subagent in background, workflow dinamici, attività pianificate che hai creato con /loop, e le risposte automatiche di Claude ai commenti degli artefatti vengono tutti trasportati e continuano a essere eseguiti lì. Un subagent si sposta insieme a tutto ciò che ha avviato, quindi viene trasportato solo quando anche tutto quel lavoro può spostarsi. Per interrompere il lavoro in corso invece di trasportarlo, imposta la variabile d’ambiente CLAUDE_DISABLE_ADOPT=1; Claude Code ti chiede allora di confermare prima di inviare in background. Quando un workflow dinamico ha ancora subagent in esecuzione, Claude Code chiede prima di inviare in background con la finestra di dialogo Background this session?, che dice quanti subagent verrebbero riavviati. Scegli Stay per lasciarli finire prima. Se confermi, Claude Code riproduce l’esecuzione nella sessione in background: i subagent che erano ancora in esecuzione ricominciano dall’inizio, quindi i token che hanno usato finora vengono spesi di nuovo. Vedi Riprendere dopo una pausa per sapere quali subagent completati restituiscono i loro risultati salvati e quali vengono eseguiti di nuovo. Claude Code interrompe il lavoro che non può essere trasportato, come un monitor in esecuzione, e insieme ad esso interrompe un subagent in background che possiede un monitor. Quando uno di questi lavori è in esecuzione, Claude Code mostra la finestra di dialogo Background this session? in modo che tu possa confermare prima che interrompa il lavoro. Una volta in background, la sessione può avviare nuovi subagent, monitor e comandi in background, e questi continuano a essere eseguiti durante i successivi distacchi e ricollegamenti. I flag di configurazione dell’avvio originale vengono trasportati nella sessione in background, quindi i suoi server MCP, le impostazioni e il modello di fallback rimangono in vigore:
  • --mcp-config e --strict-mcp-config
  • --settings
  • --setting-sources
  • --add-dir
  • --plugin-dir
  • --fallback-model
  • --allow-dangerously-skip-permissions
Vengono trasportate anche le directory che hai aggiunto durante la sessione con /add-dir. Trasportare --allow-dangerously-skip-permissions mantiene bypassPermissions raggiungibile nella sessione in background, ma non concede nulla di nuovo: la modalità richiede comunque che la tua accettazione del disclaimer di bypass risulti registrata.

Inviare un agente dalla tua shell

Passa --bg o la sua forma lunga --background per avviare una sessione che va direttamente in background:
Il prompt è l’argomento posizionale, non un valore -p. Claude Code rifiuta --bg combinato con -p o --print prima che venga creata una sessione, perché --print non avvia mai la sessione interattiva a cui claude agents si collega. Se esegui claude --bg da un terminale in una directory che non hai considerato attendibile, appare prima la finestra di dialogo di attendibilità del workspace e la sessione inizia una volta che accetti. Se rifiuti, Claude Code esce senza avviare una sessione. Dove nessuna finestra di dialogo può apparire, come in uno script, il comando esce invece con un errore Workspace not trusted. Per eseguire un subagent specifico che hai definito, come un code-reviewer, come agente principale della sessione, combina --bg con --agent:
Se il nome non corrisponde a nessuno dei tuoi subagent, l’avvio fallisce: Claude Code stampa un avviso no agent named e segnala comunque la sessione come inviata in background, ma la sessione esce immediatamente con un errore --agent '<name>' not found. Quando la sessione in background in seguito riprende o si riavvia, Claude Code ripristina l’agente e le sue restrizioni sugli strumenti; per il suo prompt di sistema, vedi Flag del prompt di sistema nelle conversazioni riprese. Cerca l’agente prima nella directory della sessione stessa, a condizione che tu abbia considerato attendibile quel workspace, quindi un agente con ambito di progetto si carica ancora quando la sessione viene ripresa da un’altra directory. Se l’agente non esiste più, la sessione continua con gli strumenti predefiniti e la sua trascrizione si apre con un avviso che nomina l’agente. Per continuare una conversazione esistente in background, passa il suo ID di sessione completo con --resume:
Su Claude Code v2.1.257 o successivo, Claude Code continua quella sessione con lo stesso ID, oppure avvia una copia con un nuovo ID e stampa una riga note: che spiega perché non poteva continuare in posizione. Quando la sessione continua in posizione, claude agents mostra una riga per essa. Quando combini --bg con --continue, un --resume nudo, o --resume con un nome o percorso di file, Claude Code avvia sempre una copia di questo tipo. Aggiungi --fork-session per avviare una copia di proposito, senza la nota. Passa --name per impostare il nome di visualizzazione della sessione nella vista agente invece di quello generato automaticamente:
Dopo l’invio in background, Claude stampa l’ID breve della sessione e i comandi per gestirla. Quando il servizio che ospita le sessioni in background non è già in esecuzione, --bg potrebbe prima stampare Starting background service… sopra questo output. Quando passi --name, il nome appare dopo l’ID breve:

Eseguire un comando shell

Per eseguire un comando shell come processo in background invece di una sessione Claude, passa --exec. L’esempio seguente esegue pytest -x come processo in background:
Dalla vista agente, invia lo stesso tipo di processo digitando ! come primo carattere dell’input di invio: il ! viene mostrato come prefisso, tutto ciò che lo segue è il comando, e Enter avvia il processo. Il comando viene eseguito come processo supportato da PTY e appare come una riga nella vista agente, con la riga di output più recente come suo stato. Un processo shell esegue il comando al posto di Claude, quindi nessun modello viene invocato e l’output non viene inviato a nessuna sessione. Per vedere l’output, collegati alla riga, premi Space per visualizzarla in anteprima senza collegarti, oppure esegui claude logs <id> dalla tua shell. L’output acquisito rimane in memoria e non viene scritto su disco. La riga e il suo output vengono rimossi automaticamente circa cinque minuti dopo l’uscita del comando, quindi leggilo prima se ti serve il risultato.

Come vengono isolate le modifiche ai file

Quando invii una sessione in background dalla vista agente o ne avvii una con claude --bg, la sessione inizia nella tua directory di lavoro. Prima di modificare i file, Claude sposta la sessione in un git worktree isolato sotto .claude/worktrees/, in modo che le sessioni parallele possano leggere lo stesso checkout ma ognuna scriva nel proprio. Una volta che la sessione è nel suo worktree, Claude Code applica l’isolamento con worktree per la sessione e per qualsiasi subagent che genera. Claude salta il worktree quando:
  • Hai spostato in background una sessione che avevi già aperta con ← o /background. Quella sessione continua a modificare i file dove stava già lavorando
  • La sessione è già all’interno di un git worktree collegato, che Claude l’abbia creato sotto .claude/worktrees/ o tu l’abbia creato con git worktree add da qualche altra parte
  • Il file che Claude sta modificando è all’interno di un git worktree collegato, come uno che la sessione o il suo subagent ha creato con git worktree add
  • La directory di lavoro non è un repository git e non è configurato alcun hook WorktreeCreate
  • La scrittura è al di fuori della directory di lavoro
Per disattivare l’isolamento con worktree per un repository in cui i git worktree non sono pratici, imposta worktree.bgIsolation su "none". Le sessioni in background modificano quindi direttamente la tua copia di lavoro senza spostarsi prima in un worktree. Aggiungi l’impostazione al .claude/settings.json del progetto:
Al di fuori di un repository git, le sessioni scrivono direttamente nella directory di lavoro e non sono isolate l’una dall’altra, quindi evita di inviare sessioni parallele che modificano gli stessi file. Se usi un sistema di controllo della versione diverso, configura un hook WorktreeCreate e Claude isola le modifiche nello stesso modo in cui lo fa per git. Quando l’hook fallisce in una directory che non è un repository git, Claude salta l’isolamento per quella directory e modifica la directory di lavoro in posizione. All’interno di un repository git, una sessione che Claude sposta in un worktree prima di modificare non può usare gli strumenti Edit, Write o NotebookEdit sul checkout condiviso finché quello spostamento non avviene. Per trovare il percorso del worktree di una sessione, collegati e controlla la sua directory di lavoro. Un subagent generato dalla sessione in background eredita la directory di lavoro della sessione. Una volta che la sessione è in un worktree, le modifiche ai file del subagent finiscono in quel worktree piuttosto che nella tua copia di lavoro. Per dare invece a un subagent un proprio worktree separato, imposta isolation: worktree nel suo frontmatter o passa isolation: "worktree" quando lo generi. Quando una sessione in background ha apportato modifiche al codice in un worktree in cui Claude è entrato, Claude Code indica a Claude di preservare il lavoro prima di finire, in modo che sopravviva se elimini la sessione e il suo worktree:
  • Commit e push: Claude esegue il commit senza chiedere, e fa il push del branch quando il repository ha un remote.
  • Draft pull request: Claude ne apre una quando l’attività lo richiede, e l’etichetta #N appare sulla riga.
  • Mai: fare il push su main o master, fare force-push ed eseguire il merge.
  • Le tue istruzioni git hanno la precedenza: se l’attività, CLAUDE.md o la memoria dicono che il commit o il push li gestisci tu, Claude lascia git a te.
Una sessione che modifica un checkout che non ha isolato da sé chiede comunque prima di eseguire il commit o di cambiare branch. Questo si applica quando l’isolamento è impostato su "none", quando lo spostamento nel worktree è fallito, o quando la sessione è iniziata all’interno di un worktree che esisteva già. Qualunque sia l’attività, Claude termina il lavoro con un rapporto che dice cosa ha fatto e dove si trova il lavoro: un percorso, un branch, una pull request, o la risposta stessa.

Cosa rimuove l’eliminazione di una sessione

Elimina una sessione premendo Ctrl+X due volte nella vista agente o con claude rm. Tranne nei casi di mantenimento descritti di seguito, la sessione esce dall’elenco. La sua trascrizione rimane sulla tua macchina tramite claude --resume, e la rimozione sopravvive ai riavvii del supervisore. Cosa succede a un worktree che Claude ha creato per la sessione:
  • La vista agente lo rimuove, incluse le modifiche non sottoposte a commit, quindi esegui prima il commit di ciò che vuoi mantenere.
  • claude rm lo mantiene, insieme alla riga della sessione, quando ha modifiche non sottoposte a commit.
  • Né la vista agente né claude rm rimuovono un worktree che un’altra sessione in esecuzione sta usando o ha bloccato, ed eliminare di nuovo non cambia questo. Claude Code mantiene il worktree e la sessione, e indica la directory mantenuta e il motivo; nella vista agente, la riga della sessione mostra not deleted. Chiudi l’altra sessione, quindi elimina di nuovo.
  • Quando elimini una sessione il cui worktree ha commit che Claude Code non può confermare siano salvati altrove, Claude Code mantiene il worktree e la sessione, e il messaggio indica il branch del worktree e quanti commit non sono stati sottoposti a push. Il messaggio offre anche i due modi per procedere: fare il push dei commit, o eliminare di nuovo per scartarli. I commit su un remote non bloccano l’eliminazione. Nemmeno i commit sulla copia locale del branch predefinito del tuo remote origin, purché quel branch sia estratto nel tuo checkout principale, cioè la directory del repository stessa anziché un worktree. Dopo quel rifiuto, scegli:
    • Per mantenere i commit, fanne il push, o eseguine il merge in quel branch predefinito, quindi elimina di nuovo la sessione.
    • Per scartarli, elimina di nuovo la sessione senza fare il push: premi Ctrl+X due volte sulla sua riga nella vista agente, o esegui il comando claude rm <id> --discard-unpushed che il rifiuto ha stampato. Questo rimuove la sessione e il worktree insieme al suo branch, scartando i commit non sottoposti a push e le eventuali modifiche non sottoposte a commit.
    Quando elimini di nuovo, Claude Code scarta solo ciò che il rifiuto ha mostrato: se nel frattempo il worktree ha ricevuto un nuovo commit, Claude Code lo mantiene di nuovo e mostra lo stato aggiornato. Quando anche i record di un’altra sessione terminata nominano il worktree, questo rimane quando elimini di nuovo; fai il push dei commit, quindi elimina di nuovo.
  • Un worktree che git non riconosce più, ad esempio dopo git worktree prune, non blocca l’eliminazione. Claude Code elimina la sessione e lascia la directory su disco.
  • Quando git o il tuo hook WorktreeRemove non riesce a rimuovere il worktree, Claude Code mantiene il worktree e la sessione, e il messaggio indica la causa. Per un hook, il messaggio dice come è terminato, ad esempio exited 1, e cita l’inizio del suo stderr. Il messaggio ti dice anche quale di queste azioni eseguire dopo:
    • Elimina di nuovo la sessione per rimuovere comunque la directory, premendo Ctrl+X due volte sulla sua riga nella vista agente o eseguendo il comando claude rm <id> --force-remove-worktree <worktree-id> che il rifiuto di claude rm ha stampato. Il branch del worktree rimane nel repository. Claude Code offre questa opzione solo quando può confermare tutto quanto segue:
      • La directory è uno dei worktree collegati del repository sotto .claude/worktrees/
      • Né il worktree né un submodule estratto hanno modifiche non sottoposte a commit ai file tracciati
      • Nessun record di un’altra sessione lo nomina
      Quando Claude Code non può verificare lo stato del checkout di un submodule, ad esempio uno sostituito da un repository git separato, non offre nemmeno questa opzione.
    • Risolvi ciò che ostacola l’operazione, ad esempio eseguendo il commit o lo stash delle modifiche non sottoposte a commit, spostando un repository git separato fuori dal worktree, chiudendo ciò che sta usando la directory, o correggendo l’hook, quindi elimina di nuovo la sessione.
    • Rimuovi tu stesso la directory, quindi elimina di nuovo la sessione.
Un worktree che hai creato tu stesso e all’interno del quale hai avviato la sessione viene lasciato in posizione in entrambi i casi. Una sessione la cui directory di worktree non appartiene a nessun repository git, perché il repository è stato eliminato o un hook WorktreeCreate ha creato la directory altrove, può comunque essere eliminata. Finché nella directory rimangono file:
  • La vista agente chiede la stessa doppia pressione di Ctrl+X prima di scartarli. Per una directory creata da un hook esegue invece il tuo hook WorktreeRemove, e senza di esso rifiuta l’eliminazione e mantiene la sessione.
  • claude rm mantiene la sessione e il worktree, e indica il motivo.
Entrambe le vie mantengono una directory nominata dai record di un’altra sessione terminata.

Impostare il modello

Il nome del modello mostrato nell’intestazione della vista agente è il valore predefinito di invio. Le nuove sessioni che avvii dall’input utilizzano questo modello, che proviene dall’impostazione model nelle tue impostazioni utente. Impostalo selezionando un modello nel selettore /model, o modifica direttamente l’impostazione. Per sovrascrivere il valore predefinito di invio per l’intera sessione della vista agente, passa --model quando apri la vista agente. Vedi Modalità di permesso, modello e sforzo. Per cambiare il valore predefinito di invio da dentro la vista agente, digita /model seguito da un nome di modello nell’input di invio e premi Enter. L’intestazione si aggiorna per mostrare quel modello con un marcatore (session), e le sessioni che invii in seguito lo utilizzano. Digita /model default per cancellare l’override e tornare al valore predefinito di invio. Questo override dura per il resto dell’esecuzione corrente di claude agents e non scrive nel tuo file di impostazioni. L’esempio seguente invia una sessione su Opus e la successiva su Sonnet:
Ogni sessione in background può essere eseguita su un modello diverso. Per sovrascriverlo per una sessione:
  • Dalla shell, passa --model con claude --bg.
  • Collegati a una sessione in esecuzione ed esegui /model per cambiare: una scelta dal selettore, o un /model <name> digitato, viene salvata come tuo valore predefinito per le nuove sessioni a meno che non premi s nel selettore per un cambio valido solo per la sessione. Un cambio valido solo per la sessione persiste se la sessione viene rigenerata.
  • Invia un subagent il cui frontmatter imposta un campo model.

Modalità di permesso, modello e sforzo

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

Impostazioni e provider

Una sessione in background legge le sue impostazioni dalla directory in cui viene eseguita, come se avessi avviato claude lì con i flag di configurazione che ha trasportato. Questo include i valori env nelle impostazioni del progetto, quindi una variabile ANTHROPIC_MODEL o di provider impostata lì si applica a ogni sessione in background in quella directory. Una sessione in background viene anche eseguita con il PATH della shell da cui l’hai inviata, quindi i comandi che esegue trovano gli stessi strumenti del tuo terminale. Mantiene anche la selezione del provider cloud di quella shell, come CLAUDE_CODE_USE_BEDROCK o CLAUDE_CODE_USE_VERTEX, insieme ai suoi alias ANTHROPIC_DEFAULT_*_MODEL e a qualsiasi override CLAUDE_CODE_EXTRA_BODY che hai esportato lì.

Gateway LLM

Se instradi Claude Code attraverso un gateway LLM, metti le variabili del gateway nel blocco env di un file di impostazioni anziché esportarle nella tua shell, e le sessioni in background le leggono insieme al resto delle loro impostazioni. Impostare in un file di impostazioni mostra il blocco e quale file di impostazioni usare per le credenziali. Se invece esporti un ANTHROPIC_BASE_URL del gateway solo nella tua shell, questo raggiunge una sessione in background, insieme a ANTHROPIC_CUSTOM_HEADERS e alle credenziali che hai esportato con esso, solo quando il supervisore stesso è stato avviato da una shell che ha esportato lo stesso gateway, e solo in questi casi:
  • Invii in background la tua sessione con ← o /background
  • Invii una sessione nella directory in cui ti trovi
  • Risvegli una sessione interrotta nella directory in cui ti trovi collegandoti o rispondendole
Claude Code inoltra un gateway posto davanti a un provider cloud. Se la shell da cui invii seleziona il provider ed esporta il suo endpoint del gateway con il relativo flag di bypass dell’autenticazione, Claude Code inoltra la coppia endpoint-flag alla sessione alle stesse condizioni che si applicano a ANTHROPIC_BASE_URL, insieme a ANTHROPIC_CUSTOM_HEADERS. Ad esempio, esporta CLAUDE_CODE_USE_VERTEX=1 con ANTHROPIC_VERTEX_BASE_URL e CLAUDE_CODE_SKIP_VERTEX_AUTH=1, e Claude Code inoltra quell’endpoint e quel flag. Claude Code applica un gateway inoltrato solo al processo in esecuzione di quella sessione e non lo scrive mai su disco.

Modalità di permesso

La modalità di permesso dipende da come hai avviato la sessione:
  • Inviata in background con /bg o ←: Claude Code mantiene la modalità di permesso in cui si trovava la sessione, quindi una sessione che hai passato ad acceptEdits o auto rimane tale dopo il distacco
  • Inviata da una vista agente che hai aperto con ←: la configurazione del target viene per prima, e la modalità di permesso della sessione da cui provieni si applica quando nient’altro ne imposta una
  • Inviata da claude agents avviato in una shell, o con claude --bg: la nuova sessione inizia come farebbe una nuova sessione claude in quella directory, a meno che tu non l’abbia inviata da una vista agente aperta con valori predefiniti di invio. In quale modalità di permesso inizia una sessione elenca l’ordine
Per una sessione che invii da una vista agente aperta con ←, Claude Code prende la modalità di permesso dalla prima di queste che si applica:
  1. La permissions.defaultMode della directory target. Si applicano due regole sull’origine:
  2. La modalità di permesso della sessione da cui provieni
Quando Claude Code rifiuta la modalità di una fonte perché troppo permissiva, decide la fonte successiva nell’elenco. Ad esempio, se invii da una sessione in plan mode in una directory le cui impostazioni sotto controllo di versione chiedono acceptEdits, la nuova sessione inizia in plan mode. Se sposti quella defaultMode in ~/.claude/settings.json, si applica indipendentemente dalla modalità di permesso della sessione da cui provieni. L’ordine di permissività è: plan, poi Manual e dontAsk, poi acceptEdits e auto, ciascuna delle quali conta come più permissiva dell’altra, poi bypassPermissions.

Valori predefiniti di invio

Per impostare i valori predefiniti per ogni sessione che invii dalla vista agente, passa uno qualsiasi tra --permission-mode, --model, --effort o --agent quando la apri:
--effort qui accetta gli stessi valori del flag --effort di livello superiore, incluso ultracode. --agent imposta il subagent utilizzato quando un prompt di invio non ne nomina uno, né con @name né come prima parola. Il valore predefinito è l’impostazione agent se è impostata, altrimenti l’agente claude generico integrato. Nominare un subagent nell’input di invio ha la precedenza su entrambi. claude agents accetta anche --dangerously-skip-permissions come abbreviazione di --permission-mode bypassPermissions, e --allow-dangerously-skip-permissions per rendere bypassPermissions disponibile nel ciclo Shift+Tab di ogni sessione inviata senza iniziare in quella modalità. Entrambi corrispondono ai flag CLI di livello superiore. Passa --restricted per avviare ogni sessione che invii dalla vista in modalità ristretta, come se ognuna fosse avviata con il flag di livello superiore --restricted. Richiede Claude Code v2.1.248 o successivo. I valori predefiniti attivi appaiono nel piè di pagina sotto l’input di invio. Una sessione in background avviata in modalità bypassPermissions richiede che la tua accettazione del disclaimer di bypass risulti registrata, poiché quella modalità consente a una sessione che non stai osservando di agire senza approvazione. Passare --dangerously-skip-permissions o --permission-mode bypassPermissions a claude agents mostra lo stesso disclaimer se non l’hai accettato in precedenza, e accettarlo applica bypassPermissions alle sessioni che avvii dalla vista. Anche passare --allow-dangerously-skip-permissions mostra lo stesso disclaimer, e accettarlo rende bypassPermissions disponibile nel ciclo Shift+Tab di quelle sessioni senza avviarle in quella modalità.

Cosa persiste attraverso i riavvii

La modalità di permesso, il modello e lo sforzo che hai scelto per una sessione in background, insieme ai flag di configurazione che trasporta, persistono tutti quando il supervisore in seguito interrompe e riavvia il suo processo. Viene mantenuto anche un modello o uno sforzo che hai cambiato a metà sessione con /model o /effort. Se la sessione ha preso il suo sforzo dalle tue impostazioni anziché da --effort o /effort, Claude Code rilegge le tue impostazioni ogni volta che avvia un processo per la sessione. Dopo che hai modificato lo sforzo salvato in settings.json, la modifica raggiunge le sessioni che invii in background con ← o /bg, e i loro riavvii successivi. Lo sforzo salvato è la chiave effortLevel o una voce modelSettings. Claude Code mantiene anche, attraverso quel riavvio, un nome che hai impostato con /rename o Ctrl+R, in modo che tu possa ancora eseguire claude --resume <name> per raggiungere la sessione. Anche un prompt che hai messo da parte con Ctrl+S mentre eri collegato viene mantenuto con la sessione. Riapri la sessione dopo che il suo processo è stato interrotto o riavviato, e premi Ctrl+S per ripristinare il testo messo da parte. Il contenuto incollato nel testo messo da parte non sopravvive al riavvio.

Impostazioni, plugin e server MCP

La vista agente accetta gli stessi flag di configurazione di claude per caricare impostazioni, plugin, server MCP e directory aggiuntive. La vista agente applica --settings, --setting-sources e --plugin-dir a se stessa e passa ogni flag di configurazione alle sessioni che invii da essa, quindi un plugin o un server MCP che carichi in questo modo è disponibile in quelle sessioni. Ripeti --add-dir, --plugin-dir o --mcp-config una volta per ogni valore. claude agents non supporta la forma separata da spazi, come --add-dir a b c. Puoi posizionare --settings, --setting-sources e --plugin-dir prima o dopo agents. Mantieni --add-dir e --mcp-config dopo agents: se posizioni uno dei due prima di agents, claude agents --json fallisce con un errore unknown option. L’esempio seguente apre la vista agente con un override delle impostazioni e una directory aggiuntiva:
--settings accetta un percorso di file o una stringa JSON inline. Un percorso di file deve puntare a un file esistente; in caso contrario, Claude Code esce con un errore Settings file not found.

Gestire le sessioni dalla shell

Ogni sessione in background ha un ID breve che puoi usare dalla shell. L’ID viene stampato quando avvii una sessione con claude --bg, e l’ID di ogni sessione è il nome della sua directory sotto ~/.claude/jobs/. Questi comandi sono utili per lo scripting o quando non vuoi aprire agent view. claude attach e claude logs possono accettare parte del nome di una sessione al posto dell’ID, come in claude logs "auth refactor". claude attach apre una sessione per nome solo mentre il suo processo è in esecuzione, quindi passa invece l’ID per riavviare una sessione fermata. Passare un nome richiede Claude Code v2.1.290 o successivo.

Elencare le sessioni come JSON

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

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. Una sessione che ha finito il suo turno e sta aspettando la tua prossima istruzione legge done, non blocked. blocked significa sempre che la sessione ha bisogno di qualcosa da te prima di poter continuare. I file sotto ~/.claude/jobs/<id>/ non sono un’interfaccia stabile. I valori che una sessione o un altro programma scrive in state, detail, tempo, o needs vengono sostituiti al prossimo aggiornamento. Se vuoi che una sessione segnali il progresso con le sue stesse parole, falle scrivere un file proprio, ad esempio sotto $CLAUDE_JOB_DIR/tmp, invece di modificare state.json.

Come sono ospitate le sessioni in background

Claude Code tratta ogni sessione elencata nella vista agente come una sessione in background, indipendentemente dal fatto che tu sia attualmente collegato ad essa. Al contrario, una sessione avviata eseguendo claude direttamente è legata a quel terminale e termina quando si chiude, a meno che tu non la invii in background. Per verificare quale tipo di sessione stai utilizzando, esegui /status. La riga Session kind legge background job · attached o background job · unattended in una sessione in background, a seconda che un terminale sia collegato, e interactive in qualsiasi altra sessione.

Il processo supervisor

Il supervisor è un servizio in background che esegue le tue sessioni in background in modo che continuino a funzionare dopo che chiudi la vista agente o il tuo terminale. Claude Code lo avvia la prima volta che metti una sessione in background o apri la vista agente, e non hai bisogno di gestirlo tu stesso. Ogni sessione è il suo proprio processo Claude Code sotto il supervisor, e ciò che accade a quel processo dipende dallo stato della sessione:
  • In esecuzione, in pausa su una richiesta di permesso o un’altra finestra di dialogo, o collegato: il processo continua a funzionare. Un subagent, workflow o monitor in esecuzione conta come in esecuzione, così come un’attività pianificata con ambito di sessione in sospeso, ad esempio un risveglio di /loop.
  • 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.
  • Il supervisor stesso si ferma, ad esempio perché il suo processo è stato terminato dall’esterno di Claude Code: su macOS e Linux, il processo di ogni sessione attende circa un minuto che un nuovo supervisor si ricolleghi ad esso, e si ferma se nessuno lo fa. Esegui claude agents nella tua shell entro quel minuto per avviare un nuovo supervisor e mantenere le tue sessioni in esecuzione. Se il minuto passa prima, le sessioni si fermano, ma le loro conversazioni salvate rimangono su disco: collegati o rispondi a una sessione e questa si riavvia dalla sua conversazione salvata, come descritto in Le sessioni vengono visualizzate come non riuscite o fermate dopo l’arresto.
Quando il processo di una sessione si ferma o si riavvia, i comandi shell in background, i workflow dinamici e i subagent in background che Claude ha avviato in essa si trasferiscono al suo prossimo processo; i monitor in esecuzione e i comandi shell che un subagent ha avviato si fermano con il processo. L’eliminazione della sessione ferma tutto ciò che ha trasferito. Per fermare tutto con il processo invece, imposta CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF su 1. Il supervisor e le sue sessioni si autenticano con le stesse credenziali archiviate delle tue sessioni interattive. Per quali impostazioni e variabili di shell raggiungono una sessione, incluso PATH, vedi Impostazioni e provider. Per gli endpoint del gateway, vedi Gateway LLM.

Dove lo stato è archiviato

Lo stato della sessione è archiviato sotto la tua directory di configurazione Claude Code. Se imposti CLAUDE_CONFIG_DIR, il supervisor usa quella directory invece di ~/.claude e viene eseguito come un’istanza separata con le sue proprie sessioni. Ogni sessione in background ha la variabile d’ambiente CLAUDE_JOB_DIR impostata sulla sua directory ~/.claude/jobs/<id>, quindi i comandi shell che la sessione esegue possono scrivere file temporanei su $CLAUDE_JOB_DIR/tmp senza collidere con sessioni parallele. Per ispezionare questo stato senza leggere direttamente i file, esegui claude daemon status. Riporta se il supervisor è raggiungibile, il suo ID processo e versione, la directory socket, e quante sessioni in background sono attive. Il comando avverte anche quando il supervisor in esecuzione è su una versione diversa da quella di claude che hai invocato, il che accade dopo un aggiornamento in cui il supervisor non si è ancora riavviato. L’avviso mostra entrambe le versioni e ti dice di eseguire claude daemon stop --any per raccogliere la nuova versione. Le sessioni sopravvivono intatte a quel mismatch di versione: una versione più vecchia di Claude Code che aggiorna il file state.json di una sessione preserva i campi che non riconosce e mantiene la sessione elencata. L’elenco delle sessioni in roster.json segue la stessa regola, quindi le sessioni avviate dalla versione più nuova rimangono raggiungibili e continuano ad accettare input dopo il riavvio del supervisor.

Disattiva agent view

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

Risoluzione dei problemi

claude agents elenca subagent invece di aprire agent view

Se claude agents stampa un conteggio seguito dai tuoi subagent configurati e poi esce, agent view non è disponibile nel tuo ambiente. Esegui claude update per installare la versione più recente. Se agent view ancora non si apre dopo l’aggiornamento, verifica se è stata disattivata da un’impostazione o da una variabile d’ambiente.

Agent view si apre senza sessioni

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

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

Se premi ← per mettere in background la sessione corrente e Claude Code mostra una finestra di dialogo Background this session?, la sessione ha lavoro in corso che lo spostamento in background interromperebbe, riavvierebbe o lascerebbe in esecuzione incustodito, e Claude Code chiede prima di fare uno di questi:
  • Lavoro che non può trasferirsi: la sessione ha lavoro che non può trasferirsi alla sessione in background, come un monitor in esecuzione. La finestra di dialogo nomina il lavoro che Claude Code fermerebbe e, separatamente, conta i compiti che si trasferiscono.
  • Un workflow con subagent in esecuzione: un dynamic workflow ha ancora subagent in esecuzione. Il workflow stesso si trasferisce, ma i suoi subagent in esecuzione si riavviano dall’inizio, e la finestra di dialogo dice quanti sono.
  • Risposte automatiche agli artefatti: Claude sta rispondendo ai commenti su un artefatto da solo. Quelle risposte continuano nella sessione in background, e la finestra di dialogo lo dice.
Esegui /tasks per vedere tutto ciò che è in esecuzione, quindi conferma per metterla in background comunque o scegli Stay per lasciare che il lavoro finisca prima. Vedi Cosa si trasferisce quando metti in background per sapere quali tipi di lavoro si trasferiscono e quali Claude Code ferma.

Prompt rifiutato come troppo breve

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

Le sessioni risultano non riuscite o interrotte dopo lo spegnimento

Lo spegnimento o il riavvio della tua macchina interrompe le sessioni in background in esecuzione. Una sessione che era in attesa del tuo input rimane sotto Needs input quando torni. Per qualsiasi altra sessione in esecuzione, ciò che agent view mostra dipende da quanto tempo fa ha fatto progressi per l’ultima volta:
  • Entro 48 ore, la sessione risulta non riuscita. Collegati o rispondi ad essa e si riavvia dalla sua conversazione salvata. Per riprendere il lavoro interrotto, inviale una risposta chiedendole di continuare.
  • Passate 48 ore, come dopo che la macchina è stata spenta per giorni, la sessione risulta interrotta con ended while the background service was off. Premi Enter sulla riga e il footer mostra Press enter again to resume this session (it ended while the background service was off), or ctrl+x to delete it. Premi Enter sulla stessa riga di nuovo per riprendere la sua conversazione salvata. Una risposta, o claude attach <id>, la riprende senza quella richiesta del footer.
Quando la pulizia delle trascrizioni ha rimosso la conversazione salvata di una sessione interrotta, Claude Code rifiuta di aprire la riga: il messaggio dice che non c’è nulla da riprendere. claude rm <id> elimina la riga, tranne nei casi mantenuti descritti sopra, e claude respawn <id> esegue di nuovo il suo prompt originale. Vedi La conversazione salvata di questa sessione non è più su disco. Lo stop da solo non ferma le sessioni. Le sessioni vengono preservate durante lo stop e il supervisor si ricollega ad esse al risveglio.

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

Due processi non possono scrivere sulla stessa trascrizione. Quando la conversazione salvata di una sessione interrotta è già aperta in un altro processo Claude Code attivo, Claude Code rifiuta di avviare il processo della sessione. Ciò che vedi dipende da ciò che tiene la conversazione:
  • Un terminale dove hai ripreso la conversazione, ad esempio con claude --resume o /resume: la riga mostra Open in a terminal con un suggerimento per continuarla lì, e aprire la riga mostra Can't open — this session is running in another terminal. Continua in quel terminale, o esci da esso e apri di nuovo la riga.
  • Un altro processo Claude Code non interattivo, ad esempio un processo di sessione in background per la stessa conversazione che non è ancora uscito: aprire la riga mostra This conversation is already open in another running Claude session. Usa quel processo, o aspetta che esca e apri di nuovo la riga.
Claude Code salva una risposta che hai digitato con il tentativo rifiutato, tranne una preceduta da ! o /, e la invia la prossima volta che la sessione si avvia.

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

Quando apri una sessione che hai messo in background da un’altra conversazione e che si è interrotta prima di eseguire un turno proprio, Claude Code riprende quella conversazione. Se Claude Code non riesce a trovare la conversazione, rifiuta di aprire la sessione:
  • claude attach stampa This session has no saved transcript.
  • Agent view 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. Vedi il riferimento degli errori per i dettagli.

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

Il supervisor esegue il terminale di ogni sessione in background nel suo processo host separato. Quando quel processo muore o smette di rispondere, Claude Code mostra il motivo e offre un riavvio; in entrambi i casi la conversazione è salvata e il riavvio la riprende. Il riferimento degli errori cita i messaggi completi. Claude Code non riavvia mai una riga che esegue un comando shell, da Enter o da claude attach, perché ciò eseguirebbe di nuovo il comando; il messaggio della riga e claude attach dicono entrambi che il comando non viene eseguito di nuovo.

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

Quando il processo di una sessione in background esce prima di finire l’avvio e l’host ha poca memoria, lo stato della riga nomina l’uscita e aggiunge possibly low memory — free some up and retry. La nota è un’ipotesi, non una causa confermata. Claude Code la aggiunge solo quando il processo è uscito silenziosamente, senza scrivere un errore e senza essere fermato da un segnale, e l’host ha segnalato poca memoria in quel momento. Quando il processo ha scritto un errore prima di uscire, la riga mostra invece quell’errore. Libera memoria sulla macchina, quindi collegati o rispondi alla riga e il supervisor avvia un nuovo processo per la sessione. Quando la memoria rimane bassa, il supervisor ferma anche le sessioni inattive per liberare risorse da solo, e ferma anche le sessioni fissate inattive se fermare le altre non ha liberato nulla.

Agent view dice che il servizio in background non ha risposto

Se il collegamento, il peek, o claude logs segnala che il servizio in background non ha risposto, il processo supervisor ha probabilmente subito un blocco. Fermalo e lascia che il prossimo claude agents ne avvii uno nuovo. Per mantenere le tue sessioni in background in esecuzione durante il riavvio, passa --keep-workers:
Quindi esegui claude agents nella tua shell per avviare il nuovo supervisor. Se lo fai entro circa un minuto dall’arresto, si ricollega alle sessioni ancora in esecuzione e il loro lavoro continua senza interruzioni. Se impieghi più tempo, su macOS e Linux le sessioni si sono già fermate da sole, e collegarti o rispondere a una di esse la riavvia dalla sua conversazione salvata. Senza --keep-workers, il comando termina anche le sessioni in background. Il flag --any fa sì che il comando fermi un supervisor che Claude Code ha avviato su richiesta. Un supervisor che si avvia ma non riesce ad accettare connessioni esce e rilascia il suo blocco da solo, quindi il prossimo claude agents ne avvia uno nuovo senza questo arresto manuale. I passaggi precedenti si applicano quando un supervisor in esecuzione subisce un blocco. Se il comando invece esce dicendo che non è stato possibile verificare il processo registrato come il supervisor, controlla l’ID del processo segnalato: se è un supervisor che possiedi, fermalo tu stesso, quindi elimina ~/.claude/daemon.lock in modo che il prossimo claude agents si avvii da zero. Su Windows, se il supervisor non risponde alla richiesta di arresto, il comando stampa il suo ID di processo. Termina quel processo con taskkill /PID <pid> per completare il recupero. Le sessioni in background vengono comunque preservate quando hai passato --keep-workers.

Dispatch non riesce con Could not resolve authentication method

Se un dispatch in background non riesce con Could not resolve authentication method mentre le sessioni interattive si autenticano normalmente, il worker che ha ricevuto il dispatch non ha raccolto le credenziali. Le sessioni in background ottengono le loro credenziali dal supervisor, quindi questo errore significa che nessuna credenziale memorizzata era disponibile per il processo supervisor stesso. Conferma di aver eseguito /login o di aver configurato una chiave API, quindi ferma il supervisor:
Entro circa un minuto, esegui claude agents o claude --bg nella tua shell per avviare un nuovo supervisor che legge le tue credenziali memorizzate. Se ti autentichi con una variabile d’ambiente come ANTHROPIC_API_KEY piuttosto che con /login, esegui quel comando successivo da una shell dove la variabile è impostata. Vedi il riferimento degli errori per l’elenco completo delle cause e delle correzioni.

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

Su macOS, l’host della sessione in background viene eseguito come processo separato e richiede l’accesso alle cartelle protette separatamente dal tuo terminale. Se una sessione in background segnala Operation not permitted durante la lettura di ~/Desktop, ~/Documents, ~/Downloads, o un’altra posizione protetta, concedi l’accesso in Impostazioni di Sistema sotto Privacy e Sicurezza > File e Cartelle, o abilita Accesso Completo al Disco per la voce. Con il programma di installazione nativo, la voce appare come Claude Code e la concessione persiste tra gli aggiornamenti. Con altri metodi di installazione come Homebrew o npm, la voce mostra il percorso del binario e potrebbe dover essere concessa di nuovo dopo l’aggiornamento.

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

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

Una sessione è lenta a rispondere dopo il collegamento

Quando una sessione che ha finito o è in attesa del tuo prossimo messaggio rimane scollegata per circa un’ora, il supervisor ferma il suo processo per liberare risorse. Il collegamento avvia un nuovo processo da dove l’aveva lasciata e passa alla sessione immediatamente mentre il processo si riavvia. Le sessioni che stanno lavorando, in pausa su una richiesta di permesso o un’altra finestra di dialogo, o fissate non vengono fermate in questo modo, quindi fissa una sessione con Ctrl+T per mantenerla reattiva. Mentre il processo si avvia, Claude Code mostra la parte finale della trascrizione della sessione formattata nel modo in cui la sessione attiva la visualizza, con markdown, blocchi di codice evidenziati e chiamate agli strumenti come righe attenuate, sopra un’area di prompt attenuata con una nota Session is starting. La sessione attiva la sostituisce non appena è pronta.

.claude/worktrees/ si sta riempiendo

L’eliminazione di una sessione in agent view rimuove il worktree che Claude ha creato per essa, ma alcune eliminazioni mantengono il worktree o lasciano la sua directory su disco, quindi le directory rimaste possono accumularsi. Le directory che git non riconosce più non appaiono in git worktree list, quindi rimuovile a mano. Elenca le voci rimaste con git worktree list nella directory del progetto e rimuovi ognuna con git worktree remove <path>. Vedi Pulisci i worktree.

Limitazioni

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

Cronologia delle versioni

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