Vai al contenuto principale
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.
In una sessione claude regolare, premere ← su un prompt vuoto apre agent view, e un hint ← nel footer riporta lo stato delle tue sessioni in background:
  • Hint: il footer mostra ← for agents per dieci secondi dopo l’apertura della sessione. Premere ← funziona anche dopo che l’hint è scomparso
  • Conteggio in attesa: mentre le sessioni in background aspettano il tuo input, lo stesso punto le conta, come ← 2 agents, oppure ← 99+ agents quando più di 99 sono in attesa. Il conteggio si aggiorna circa ogni dieci secondi mentre il terminale è focalizzato e immediatamente quando il focus ritorna
  • Conteggio completate: quando le sessioni in background si completano correttamente mentre nessuna aspetta il tuo input, il footer mostra brevemente quante sono state completate, come ← 2 done per due
Il conteggio in attesa cambia brevemente colore quando aumenta o diminuisce e quando una sessione in background si completa correttamente. Se attivi prefersReducedMotion, non vedi né il cambio di colore né il conteggio done. In modalità screen reader, l’hint ← e i suoi conteggi sono nascosti.

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.

Costo dei riassunti delle righe

Il riassunto di fine turno e ogni riscrittura a metà turno sono una breve richiesta attraverso il tuo provider abituale, fatturata e gestita secondo gli stessi termini di utilizzo dei dati della sessione stessa. Su un provider di terze parti o un gateway, i riassunti usano il modello che imposti in ANTHROPIC_DEFAULT_HAIKU_MODEL. Se non è impostato, usano il modello del tuo provider per le attività in background: consulta Amazon Bedrock, Agent Platform di Google Cloud, Microsoft Foundry o il tuo gateway.

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. Sotto di esse appare un’ulteriore riga per una sessione che ti sta aspettando o che è in esecuzione in modalità sicura:
  • Una riga come waiting 3m: da quanto tempo la sessione ti sta aspettando. L’età sul bordo destro della riga è un numero diverso: conta da quando la sessione è stata avviata
  • safe mode · customizations are off: questa sessione viene eseguita con le tue personalizzazioni disattivate perché l’hai avviata dalla tua shell con claude --bg --safe-mode. Puoi lasciarla così com’è. Per continuare la conversazione con le tue personalizzazioni di nuovo attive, esegui claude stop <id> e poi claude --resume, entrambi nella tua shell
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 background 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 in modo che il lavoro dei subagent in primo piano avviati da Claude venga mantenuto, e mostra Still backgrounding after the current tool. Premi di nuovo ← per passare 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. Claude continua a lavorare in primo piano.
  • 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.
Prompt inviati mentre la sessione passa in background
Se inserisci un prompt o un comando shell ! nel momento in cui la sessione passa in background, viene fermato oppure non viene inviato:
  • Inviato mentre la conversazione si chiude: la risposta o il comando si ferma quando la conversazione si chiude e si apre agent view
  • Ancora in attesa degli hook in quel momento: il prompt non viene inviato, e nulla sullo schermo lo indica. Questo include un prompt che hai digitato mentre gli hook SessionStart erano ancora in esecuzione
In entrambi i casi il testo che hai digitato viene conservato nella cronologia dei prompt. Per inviarlo di nuovo, apri la sessione messa in background e premi ↑ nel suo prompt per recuperare il testo.

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
  • Premi Ctrl+X per fermare una sessione e di nuovo Ctrl+X entro due secondi per eliminarla dall’elenco, oppure Esc per chiudere la conferma senza eliminare. La seconda pressione elimina la sessione anche quando il tentativo di arresto non riesce, ad esempio perché il servizio in background non risponde. In quel caso la conferma rimane attiva per altri due secondi e l’eliminazione termina direttamente il processo della sessione
Premere Ctrl+X su un’intestazione di gruppo elimina, dopo conferma, ogni sessione di quel gruppo. Tranne nei casi di conservazione descritti in Cosa rimuove l’eliminazione di una sessione, l’eliminazione rimuove la sessione dall’elenco. 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 sulla tua macchina locale, disponibile tramite claude --resume. 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. 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.

Ripristinare una sessione passata

Per ripristinare una sessione, 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. Premi Enter per riprendere la sessione selezionata come sessione in background, così rientra nell’elenco come riga. /resume non riesce con isn't available in agent view 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
Se hai digitato qualcosa dopo /resume, riscrivilo senza. Se hai usato uno di quei flag, esegui claude agents nella tua shell senza di esso, poi digita /resume da solo.

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, /effort e /fast impostano ciò con cui iniziano le sessioni che invii successivamente. /effort e /fast richiedono Claude Code v2.1.299 o successivo.
  • /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
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. Il suggerimento isn't available in agent view significa che il comando built-in che hai inserito non è stato eseguito. Per eseguirlo, collegati a una sessione e inseriscilo lì. 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. Se esci da una sessione mentre sono in esecuzione alcuni tipi di lavoro in background, come subagent o workflow, una finestra di dialogo Background work is running avvisa che il lavoro si interrompe. 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. Quando la vista agente è disattivata, /fork avvia un subagent con fork invece di copiare la sessione.
Inviare un prompt alla copia e aprire la sua sessione
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.
Dove viene eseguita la 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.
Sessioni che non possono essere forkate
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

Quando invii la sessione in background, ogni tipo di lavoro in background in corso viene trasportato nella sessione in background, continua solo quando Claude lo riavvia lì, oppure si interrompe:
  • Viene trasportato: i comandi shell in background in esecuzione, i subagent in background, le attività pianificate che hai creato con /loop e le risposte automatiche di Claude ai commenti degli artefatti continuano a essere eseguiti nella sessione in background. Un subagent si sposta insieme a tutto ciò che ha avviato, quindi viene trasportato solo quando anche tutto quel lavoro può spostarsi.
  • Continua solo quando Claude lo riavvia: un workflow dinamico in esecuzione. Se il workflow non è proseguito quando controlli la sessione in background, chiedi a Claude di riavviarlo.
  • Si interrompe: il lavoro che non può spostarsi nella sessione in background, come un monitor in esecuzione. 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. Un subagent in background che possiede un monitor si interrompe insieme al monitor.
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.
Workflow dinamici quando invii in background
Se un workflow dinamico non è proseguito dopo che hai inviato in background la sua sessione, chiedi a Claude di riavviare il workflow. L’esecuzione continua solo quando Claude la riavvia nella sessione in background, e Claude Code può chiederti prima di approvare quel riavvio. La conversazione della sessione mostra un avviso che indica che il workflow could not be resumed. Quando Claude riavvia il workflow, tutti i suoi subagent che erano ancora in esecuzione quando hai inviato in background la sessione ricominciano dall’inizio e spendono di nuovo i loro token. Se premi ← o esegui /background mentre alcuni sono ancora in esecuzione, la finestra di dialogo Background this session? dice quanti sono. Per lasciarli finire prima, scegli Stay.

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:

Prompt che contengono --bg

Un prompt che menziona --bg o --background viene consegnato così come l’hai digitato, e lo stesso vale per una risposta --bg che invii a una sessione in background. Ad esempio, questo comando avvia una sessione in background, e il secondo --bg fa parte del suo prompt:
Claude Code interpreta un intero argomento come flag solo dove può trovarsi un flag: prima di qualsiasi separatore -- isolato e non dove un altro flag si aspetta il proprio valore. Metti il flag per primo, come in claude --bg "<prompt>". Dove la posizione è ambigua, ad esempio dopo una serie di flag brevi combinati, Claude Code non avvia nulla. Esce invece con Couldn't tell whether --bg is a flag or text here.

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, lo sforzo e la modalità veloce

Nella vista agente, digita /model, /effort o /fast nell’input di invio e premi Enter, e le sessioni che invii in seguito iniziano con ciò che hai impostato. La tua scelta rimane legata a quella finestra della vista agente e non viene salvata in un file di impostazioni. /effort e /fast richiedono Claude Code v2.1.299 o successivo, così come /model digitato senza nulla dopo. Indica il valore dopo il comando, oppure digita solo il comando per sceglierne uno da un elenco:
  • Modello: /model <name>, ad esempio /model opus
  • Livello di sforzo: /effort con low, medium, high, xhigh o max, ad esempio /effort high. Per avviare sessioni in ultracode, apri invece la vista agente dalla tua shell con claude agents --effort ultracode; l’input di invio non accetta /effort ultracode
  • Modalità veloce: /fast on o /fast off. La sessione inizia in modalità veloce solo se la modalità veloce è disponibile per te e il suo modello supporta la modalità veloce. Su un modello che non la supporta, la sessione inizia con la modalità veloce disattivata, quindi usa prima /model per scegliere uno dei modelli che supportano la modalità veloce. È il suggerimento sotto l’input, non l’intestazione, a confermare se le nuove sessioni ottengono la modalità veloce.
Per annullare una scelta, indica default come valore, ad esempio /effort default. 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 che imposta model nel suo frontmatter, iniziando il prompt con il suo nome o menzionando @name. Finché si applica una scelta /model nell’input di invio, il model del subagent non viene usato, quindi inserisci /model default lì. Se hai avviato con claude agents --model, anche in quel caso quello del subagent non viene usato, quindi esegui claude agents nella tua shell senza --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
  • Riavvii una sessione nella directory in cui ti trovi con claude respawn
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

  • 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 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. auto e bypassPermissions hanno effetto solo da impostazioni gestite, da un file --settings o da ~/.claude/settings.json. Claude Code rifiuta una defaultMode proveniente dal .claude/settings.json o .claude/settings.local.json del progetto che seleziona una modalità più permissiva di quella in cui si trovava la sessione da cui provieni.
  2. La modalità di permesso della sessione da cui provieni. Se quella sessione era in modalità bypassPermissions, la nuova sessione può invece iniziare in modalità Manual, con l’avviso Bypass permissions was requested at launch and ignored. Questo accade quando la tua accettazione del disclaimer di bypass si trova solo in .claude/settings.local.json o in un file --settings. Continua in modalità Manual, oppure aggiungi quell’accettazione a ~/.claude/settings.json.
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, le tue sessioni si fermano a meno che un nuovo supervisor non si colleghi entro circa un minuto. Per avviarne uno, esegui claude agents nella tua shell. Trascorso quel minuto, vedi Mantieni le sessioni in esecuzione dopo l’arresto del supervisor.
Quando il processo di una sessione si ferma o si riavvia, i comandi shell in background e i subagent in background che Claude ha avviato in essa si trasferiscono al suo prossimo processo. Un workflow dinamico continua solo quando Claude lo riavvia. I monitor in esecuzione e i comandi shell che un subagent ha avviato si fermano con il processo. Se elimini la sessione, tutto ciò che ha trasferito si ferma. 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.

Mantieni le sessioni in esecuzione dopo l’arresto del supervisor

Se la vista agente stampa questo avviso mentre si chiude, nessun supervisor è in esecuzione:
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. Per riavviare una sessione dalla sua conversazione salvata, collegati o rispondi a essa, come descritto in Le sessioni vengono visualizzate come non riuscite o fermate dopo l’arresto.

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.

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 i subagent invece di aprire la vista agenti

Se claude agents stampa un conteggio seguito dai subagent configurati e poi termina, la vista agenti non è disponibile nel tuo ambiente. Esegui claude update per installare la versione più recente. Se la vista agenti continua a non aprirsi dopo l’aggiornamento, verifica se è stata disattivata da un’impostazione o da una variabile d’ambiente.

La vista agenti si apre senza sessioni

Prima che tu avvii la prima sessione, la vista agenti mostra le intestazioni di sezione vuote con una descrizione sotto ciascuna, più una spiegazione di una riga sopra il campo di input, al posto dell’elenco delle sessioni. Digita un prompt nel campo di input in basso e premi Enter per avviare la tua prima sessione.

Il passaggio in background mostra una finestra di dialogo Background this session?

Quando premi ← per mandare in background una sessione, una finestra di dialogo Background this session? significa che la sessione ha del lavoro in background in corso che verrebbe interrotto, bloccato a metà o lasciato in esecuzione senza supervisione:
  • Lavoro che non può essere spostato: la sessione ha del lavoro che non può essere spostato nella sessione in background, come un monitor in esecuzione. La finestra di dialogo indica il lavoro in background che Claude Code interromperebbe e, separatamente, conta le attività che vengono trasferite.
  • Un workflow con subagent in esecuzione: un workflow dinamico ha ancora dei subagent in esecuzione. Se passi comunque in background, quei subagent si interrompono, e la finestra di dialogo indica quanti sono. Ripartono dall’inizio quando Claude riavvia il workflow nella sessione in background.
  • Risposte automatiche agli artefatti: Claude sta rispondendo autonomamente ai commenti su un artefatto. Queste risposte continuano nella sessione in background, e la finestra di dialogo lo indica.
Esegui /tasks per vedere tutto ciò che è in esecuzione, quindi conferma per passare comunque in background oppure scegli Stay per lasciare che il lavoro finisca prima. Consulta Cosa viene trasferito quando passi in background per sapere quali tipi di lavoro vengono trasferiti e quali Claude Code interrompe.

La conversazione dice che un agente in background was carried into this session and not resumed

Questo avviso indica un subagent in background che non è in esecuzione in questa sessione. Claude vede l’avviso e risponde autonomamente, quindi non devi chiederglielo. Se dopo aver letto la risposta di Claude hai ancora bisogno del lavoro di quel subagent, chiedilo a Claude.

Prompt rifiutato perché troppo breve

Il campo di input per l’avvio si aspetta una descrizione dell’attività, non un’apertura colloquiale. Un prompt più breve di quattro caratteri viene rifiutato con un suggerimento Too short, così che un tasto premuto per sbaglio non avvii una sessione. Descrivi cosa vuoi che faccia la sessione, ad esempio investigate the flaky checkout test.

Le sessioni risultano fallite o interrotte dopo lo spegnimento

Spegnere o riavviare la macchina interrompe le sessioni in background in esecuzione. Una sessione che era in attesa di un tuo input rimane sotto Needs input quando torni. Per qualsiasi altra sessione in esecuzione, ciò che la vista agenti mostra dipende da quanto tempo fa ha fatto progressi l’ultima volta:
  • Entro 48 ore, la sessione risulta fallita. Collegati a essa o rispondile e riparte dalla conversazione salvata. Per riprendere il lavoro interrotto, inviale una risposta chiedendole di continuare.
  • Oltre 48 ore, ad esempio dopo che la macchina è rimasta spenta per giorni, la sessione risulta interrotta con ended while the background service was off. Premi Enter sulla riga e il piè di pagina mostra Press enter again to resume this session (it ended while the background service was off), or ctrl+x to delete it. Premi di nuovo Enter sulla stessa riga per riprendere la conversazione salvata. Una risposta, oppure claude attach <id>, la riprende senza quel messaggio nel piè di pagina.
Quando la pulizia delle trascrizioni ha rimosso la conversazione salvata di una sessione interrotta, Claude Code si rifiuta di aprire la riga: il messaggio indica che non c’è nulla da riprendere. claude rm <id> elimina la riga, tranne nei casi di conservazione descritti sopra, e claude respawn <id> esegue di nuovo il suo prompt originale. Consulta This session’s saved conversation is no longer on disk. La sola sospensione della macchina non interrompe le sessioni. Le sessioni vengono mantenute durante la sospensione e il supervisore si ricollega a esse al risveglio.

L’apertura di una sessione indica 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 di Claude Code attivo, Claude Code si rifiuta di avviare il processo proprio della sessione. Ciò che vedi dipende da cosa tiene aperta la conversazione:
  • Un terminale in cui 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, oppure chiudilo e apri di nuovo la riga.
  • Un altro processo di Claude Code non interattivo, ad esempio un processo di sessione in background per la stessa conversazione che non è ancora terminato: aprire la riga mostra This conversation is already open in another running Claude session. Usa quel processo, oppure attendi che termini e apri di nuovo la riga.
Claude Code salva una risposta che hai digitato durante il tentativo rifiutato, tranne una che inizia con ! o /, e la invia al successivo avvio della sessione.

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

Quando apri una sessione che hai mandato in background da un’altra conversazione e che si è interrotta prima di eseguire un proprio turno, Claude Code riprende quella conversazione. Se Claude Code non riesce a trovare la conversazione, si rifiuta di aprire la sessione:
  • claude attach stampa This session has no saved transcript.
  • La vista agenti mostra Press enter again to restart this session fresh sotto l’elenco.
Premi di nuovo Enter sulla stessa riga per riavviare la sessione con una conversazione vuota, oppure esegui claude respawn <id> dalla shell. Consulta il riferimento agli errori per i dettagli.

Il processo host del terminale è terminato o la sessione ha smesso di rispondere

Il supervisore esegue il terminale di ciascuna sessione in background in un proprio processo host. Quando quel processo termina o smette di rispondere, Claude Code mostra il motivo e offre un riavvio; in entrambi i casi la conversazione viene salvata e il riavvio la riprende. Il riferimento agli errori riporta i messaggi completi. Claude Code non riavvia mai una riga che esegue un comando shell, né da Enter né da claude attach, perché ciò eseguirebbe di nuovo il comando; il messaggio della riga e claude attach indicano entrambi che il comando non viene eseguito di nuovo.

Una sessione fallisce prima di avviarsi con una nota possibly low memory

Quando il processo di una sessione in background termina prima di completare l’avvio e l’host ha poca memoria disponibile, lo stato della riga indica la terminazione 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 è terminato silenziosamente, senza scrivere un errore e senza essere interrotto da un segnale, e l’host segnalava poca memoria in quel momento. Quando il processo ha scritto un errore prima di terminare, la riga mostra invece quell’errore. Libera memoria sulla macchina, quindi collegati alla riga o rispondile e il supervisore avvia un nuovo processo per la sessione. Quando la memoria rimane scarsa, il supervisore interrompe anche le sessioni inattive per liberare risorse autonomamente, e interrompe anche le sessioni inattive fissate se interrompere le altre non ha liberato nulla.

La vista agenti indica che il servizio in background non ha risposto

Se il collegamento, l’anteprima o claude logs segnalano che il servizio in background non ha risposto, probabilmente il processo supervisore si è bloccato. Interrompilo e lascia che il successivo claude agents ne avvii uno nuovo. Per mantenere in esecuzione le sessioni in background durante il riavvio, passa --keep-workers:
Quindi, esegui claude agents nella tua shell per avviare un nuovo supervisore. Su macOS e Linux, fallo entro circa un minuto dalla terminazione del vecchio, altrimenti le sessioni si interrompono senza un supervisore. Se hai visto stopped ma lo stesso errore si ripresenta, e sei su macOS o Linux con una versione di Claude Code precedente alla v2.1.300, esegui claude update, quindi di nuovo entrambi i comandi. Se invece il comando di interruzione ha stampato uno di questi quattro messaggi, il vecchio processo non è stato interrotto. Esegui nella tua shell quanto indicato dalla riga corrispondente, quindi esegui claude agents:

L’avvio fallisce con Could not resolve authentication method

Se un avvio in background fallisce con Could not resolve authentication method mentre le sessioni interattive si autenticano normalmente, il worker che ha ricevuto l’avvio non ha acquisito le credenziali. Le sessioni in background ottengono le credenziali dal supervisore, quindi questo errore significa che nessuna credenziale memorizzata era disponibile per il processo supervisore stesso. Verifica di aver eseguito /login o di aver configurato una chiave API, quindi interrompi il supervisore:
Entro circa un minuto, esegui claude agents o claude --bg nella tua shell per avviare un nuovo supervisore che legga le tue credenziali memorizzate. Se ti autentichi con una variabile d’ambiente come ANTHROPIC_API_KEY invece che con /login, esegui il comando successivo da una shell in cui la variabile è impostata. Consulta il riferimento agli errori per l’elenco completo delle cause e delle soluzioni.

Una sessione in background mostra No LLM gateway

Se una sessione in background mostra No LLM gateway, non ha ricevuto il tuo ANTHROPIC_BASE_URL del gateway, quindi le sue richieste falliscono. Claude Code lo ha trattenuto perché hai avviato, risvegliato o riavviato la sessione da una directory diversa dalla cartella indicata nel messaggio. Vedi il messaggio, ad esempio, dopo aver avviato una sessione in un repository con @<repo> o dopo aver risvegliato una sessione interrotta eseguendo claude attach da un’altra directory. Per fornire il tuo gateway alla sessione, scegli la soluzione corrispondente a dove è impostato il gateway:
  • Hai esportato il gateway nel tuo terminale: in un terminale in cui hai esportato le variabili del gateway, esegui cd nella cartella indicata nel messaggio ed esegui il comando claude respawn <id> riportato nel messaggio.
  • Hai usato la vista agenti in un progetto le cui impostazioni definiscono il gateway: inserisci ANTHROPIC_BASE_URL e la relativa credenziale nel blocco env di un file di impostazioni. Usa ~/.claude/settings.json, oppure .claude/settings.local.json nel progetto della sessione, entrambi letti da una sessione riavviata con respawn. Quindi esegui claude respawn <id> nella tua shell da qualsiasi directory per riavviare questa sessione sul gateway.

Le sessioni in background non riescono a leggere Desktop, Documenti o Download su macOS

Su macOS, l’host delle sessioni in background viene eseguito come processo autonomo 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 di un’altra posizione protetta, concedi l’accesso in Impostazioni di Sistema in Privacy e sicurezza > File e cartelle, oppure abilita l’Accesso completo al disco per la voce. In entrambi gli elenchi, cerca una voce denominata Claude Code, oppure una denominata con il percorso o il nome file del binario claude. Quel nome file può essere un numero di versione come 2.1.316. Se Operation not permitted si ripresenta dopo un aggiornamento di Claude Code, cerca una nuova voce, ad esempio una denominata con la nuova versione. Se è presente, concedile l’accesso.

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 i dispositivi della rete locale finché non concedi il permesso Rete locale, quindi un comando destinato a un indirizzo LAN può fallire 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 Rete locale di macOS per Claude Code. Concedilo una volta e quei comandi raggiungeranno 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 terminato o è in attesa del tuo messaggio successivo rimane scollegata per circa un’ora, il supervisore interrompe il suo processo per liberare risorse. Il collegamento avvia un nuovo processo dal punto in cui si era fermata e passa immediatamente alla sessione mentre il processo si riavvia. Le sessioni che stanno lavorando, in pausa su una richiesta di permesso o un’altra finestra di dialogo, oppure fissate non vengono interrotte in questo modo, quindi fissa una sessione con Ctrl+T per mantenerla reattiva. Durante l’avvio del processo, Claude Code mostra la parte finale della trascrizione della sessione formattata come la visualizza la sessione attiva, 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 nella vista agenti rimuove il worktree che Claude ha creato per essa, ma alcune eliminazioni mantengono il worktree o lasciano la sua directory sul disco, quindi le directory residue possono accumularsi. Le directory che Git non riconosce più non compaiono in git worktree list, quindi rimuovile a mano. Elenca le voci residue con git worktree list nella directory del progetto e rimuovi ciascuna con git worktree remove <path>. Consulta Pulire 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.