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 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 dell’area di lavoro per la directory, Claude Code la mostra prima che agent view si apra, la stessa finestra di dialogo che mostra
claude. Accetta per salvare la fiducia per l’area di lavoro e continua. Se rifiuti, Claude Code esce senza aprire agent view.Agent view si apre con un input in basso e una tabella che si riempie quando le sessioni iniziano. Premi Esc per tornare alla tua shell; se hai aperto agent view mettendo in background una sessione con ←, Esc ritorna a quella conversazione invece. Le tue sessioni continuano a funzionare mentre sei via e riappaiono la prossima volta che apri agent view.2
Invia una sessione
Digita un prompt che descrive un’attività e premi
Enter. Una nuova sessione in background inizia su quell’attività e appare come una riga che mostra se sta lavorando, aspettando te, o è completata. La nuova sessione utilizza il modello mostrato nell’intestazione di agent view. La modalità di autorizzazione in cui inizia dipende da come hai aperto agent view.Ogni prompt che inserisci qui avvia la sua propria nuova sessione. Digitando un altro prompt e premendo Enter avvia una seconda sessione accanto alla prima piuttosto che inviare un follow-up ad essa. Puoi eseguire diversi in parallelo in questo modo.Ogni sessione utilizza la tua quota di abbonamento indipendentemente, quindi consulta Limitazioni prima di inviare molte sessioni contemporaneamente.3
Peek e rispondi
Seleziona una riga con i tasti freccia e premi
Space per aprire il pannello peek. Mostra l’output più recente della sessione, o la domanda su cui sta aspettando, piuttosto che la trascrizione completa. Digita una risposta e premi Enter per inviarla senza lasciare agent view.4
Collegati e scollega
Premi
Enter o → su una riga per collegarti quando vuoi la conversazione completa. La sessione prende il controllo del terminale come una sessione Claude Code interattiva completa. Premi ← su un prompt vuoto per scollegar e tornare alla tabella.5
Porta una sessione esistente dentro
Questo passaggio richiede una sessione in esecuzione. Se hai seguito i passaggi precedenti non ne hai una aperta in questo terminale, quindi apri una sessione
claude regolare in un altro terminale e invia prima un messaggio.Per spostare una sessione che hai già aperta in agent view, esegui /bg dentro di essa, o premi ← su un prompt vuoto per metterla in background e aprire agent view in un unico passaggio. In una sessione nuova senza messaggi ancora, /bg ti chiede di inviare prima un messaggio, mentre ← funziona subito. La sessione continua a funzionare e appare come una riga accanto a quelle che hai inviato.claude agents come tuo punto di ingresso principale invece di claude: invia ogni attività da agent view, collegati quando vuoi la conversazione completa, e premi ← per tornare alla tabella.
All’interno di una sessione claude regolare, l’hint ← del footer del prompt conta gli agenti in background che stanno aspettando te, come ← 2 agents, e ritorna a ← for agents quando nessuno ha bisogno di input. I conteggi superiori a 99 vengono visualizzati come 99+. Il conteggio si aggiorna circa ogni dieci secondi mentre il terminale è focalizzato e immediatamente quando il focus ritorna. Cambia brevemente colore quando si sposta e quando un agente si completa, e quando una sessione in background si completa mentre nessuno ha bisogno del tuo input mostra brevemente il numero completato, come ← 2 done. Entrambi i flash sono disattivati quando l’impostazione prefersReducedMotion è attiva, e l’hint è nascosto in modalità screen reader.
Monitorare le sessioni con agent view
Eseguiclaude agents per aprire agent view. Prende il controllo del terminale completo ed elenca ogni sessione raggruppata per stato, con sessioni fissate e quelle che hanno bisogno di te in cima. Ogni riga mostra il nome della sessione, l’attività corrente e la sua età, contata da quando la sessione è stata creata; l’età di una sessione terminata si congela a quanto tempo ha impiegato l’esecuzione.
Il nome è tinto con il colore impostato da /color in quella sessione, incluso quando metti in background una sessione con ← o /background.
Per impostazione predefinita, l’elenco mostra ogni sessione in background che hai avviato, in tutti i tuoi progetti. Una sessione che lavora in un repository e un’altra in un worktree diverso appaiono entrambe qui, indipendentemente da quale directory hai aperto agent view. Per limitare l’elenco a un progetto, passa --cwd:
~/projects/my-app/.claude/worktrees/ conta ancora come appartenente a ~/projects/my-app.
Le sessioni interattive che hai aperto in altri terminali non appaiono finché non le metti in background. I subagents e i teammates che una sessione genera non sono elencati come righe separate.
Leggere lo stato della sessione
Ogni riga inizia con un’icona il cui colore e animazione mostrano lo stato della sessione:
Separatamente, la forma dell’icona mostra se il processo sottostante è in esecuzione:
L’etichetta
#N o !N che può apparire al bordo destro di una riga è un collegamento alla pull request o merge request della sessione, non parte dell’icona di stato.
Il titolo della scheda del terminale mostra il conteggio awaiting-input mentre agent view è aperto: 2 awaiting input · claude agents quando le sessioni hanno bisogno di input, o claude agents quando nessuna lo fa.
Per leggere lo stato della sessione da uno script o un altro programma, usa claude agents --json piuttosto che i file sotto ~/.claude/jobs/.
Mentre agent view è aperto, Claude Code invia anche una notifica attraverso il tuo canale di notifica del terminale configurato quando una sessione in background locale inizia ad aver bisogno del tuo input, finisce, o fallisce. Le sessioni che vengono eseguite secondo una pianificazione, come le sessioni /loop, notificano solo quando hanno bisogno del tuo input. Le notifiche utilizzano la stessa impostazione preferredNotifChannel del resto di Claude Code e attivano l’hook Notification con il tipo agent_needs_input o agent_completed.
Le sessioni in background non hanno bisogno di alcun terminale aperto per continuare a lavorare. Un processo supervisor separato le esegue, quindi puoi chiudere agent view, chiudere la tua shell, o avviare una nuova sessione interattiva e il tuo lavoro inviato continua.
Lo stato della sessione persiste su disco attraverso gli auto-update e i riavvii del supervisor. Le sessioni sono anche preservate quando la tua macchina dorme. I loro processi riprendono al risveglio e il supervisor si ricollega a loro invece di trattare il gap di tempo come inattività. Lo spegnimento ferma comunque le sessioni in esecuzione; vedi Le sessioni mostrano come non riuscite o fermate dopo lo spegnimento per come recuperarle.
Una sessione che era a metà risposta quando la macchina ha dormito può tornare non responsiva. Quando apri una sessione che ha smesso di rispondere, il supervisor riavvia il suo processo e la sessione continua la risposta interrotta da dove l’ha lasciata.
Riassunti delle righe
Il riassunto su una riga è generato da un modello di classe Haiku in modo che la riga possa dirti cosa sta facendo la sessione, cosa ha bisogno, o cosa ha prodotto senza aprire il transcript. Mentre una sessione sta attivamente lavorando, il testo della riga si aggiorna al massimo una volta ogni 15 secondi dall’output recente della sessione stessa senza inviare una richiesta di modello, e il modello scrive un riassunto fresco quando ogni turno termina. Una riga di lavoro mostra cosa la sessione dice che sta facendo, e una riga bloccata mostra la domanda che sta ponendo. Durante un turno lungo, il modello riscrive anche il riassunto ogni pochi minuti in modo che una riga occupata non continui a mostrare un riassunto obsoleto. Il testo di riepilogo riempie la larghezza rimanente della riga; apri il pannello peek per leggere una frase che il bordo del terminale taglia. Quando l’elenco è raggruppato per directory, il riassunto si apre con lo stato della sessione come una parola colorata, comeNeeds input · double jump or wall climb?. Nel raggruppamento di stato predefinito, l’intestazione del gruppo nomina già lo stato, quindi la riga mostra solo il riassunto.
Il riassunto di fine turno e ogni riscrittura a metà turno sono una breve richiesta di classe Haiku attraverso il tuo provider normale, fatturata e gestita secondo gli stessi termini di utilizzo dei dati della sessione stessa. Gli aggiornamenti di 15 secondi tra le riscritture del modello riutilizzano l’output della sessione stessa e non inviano una richiesta. Su un provider di terze parti o gateway senza un modello Haiku configurato, la richiesta utilizza il modello principale della sessione; imposta ANTHROPIC_DEFAULT_HAIKU_MODEL per sceglierne uno.
Stato della pull request
Quando una sessione apre una pull request, Claude Code aggiunge un’etichetta al bordo destro della riga, collegata alla pull request:- Claude Code scrive l’etichetta come
#1234per una pull request e come!1234per una merge request di GitLab. - Claude Code emette il collegamento anche quando non riesce a rilevare il supporto dei hyperlink, ad esempio su SSH o tmux. Imposta
FORCE_HYPERLINK=0per rendere l’etichetta come testo semplice. - Dopo aver inviato un follow-up alla sessione, Claude Code mantiene l’etichetta mentre la riga ritorna al progresso live.
- Quando Claude modifica, commenta, chiude, o contrassegna una pull request come pronta con
gh, Claude Code collega la pull request che l’output del comando stesso nomina. Un comandoghil cui output catturato non nomina alcuna pull request non crea un collegamento;gh pr mergeè il caso comune, perché stampa il suo risultato solo su un terminale interattivo. - Quando Claude controlla una pull request con
gh pr checkouto esegue il push su un ramo, Claude Code cerca il ramo congh pr viewe collega la sua pull request aperta. - La pull request non ha bisogno di esistere ancora quando Claude esegue il push: Claude Code ritenta la ricerca del ramo dopo fino a cinque comandi
git,gh,glab, ocurlsuccessivi eseguiti nella stessa directory, quindi una pull request creata dopo il push, inclusa una che Claude crea attraverso l’API REST di GitHub, si collega quando un tentativo la trova.
3 PRs, colorato dalla pull request aperta che ha più bisogno di attenzione. Apri il pannello peek per vederle tutte.
Il numero della pull request è colorato dal suo stato:
Per un compito che termina in una pull request, controlla questa etichetta per il risultato: rivedi e unisci la pull request quando il suo numero diventa verde.
Peek e rispondi
PremiSpace su una riga selezionata per aprire il pannello peek. Si apre con la frase che la riga tronca al bordo del terminale, e quale frase sia dipende dallo stato della sessione:
- Una sessione che sta aspettando te: la domanda esatta che sta ponendo, sopra l’input di risposta
- Una sessione terminata: il suo risultato
- Una sessione che lavora: la sua frase di stato completa
waiting 3m sotto di loro mostra quanto tempo è stata in attesa, ed è l’unico momento mostrato nel pannello. L’età al bordo destro della riga è un numero diverso: conta da quando la sessione è iniziata.
La maggior parte delle volte il pannello peek è sufficiente e non hai bisogno di aprire il transcript completo.
Digita una risposta nel pannello peek e premi Enter per inviarla a quella sessione. Quando la sessione pone una domanda con scelte predefinite, il pannello peek le mostra come un elenco numerato e puoi premere un tasto numero per sceglierne uno. Un prompt di permesso mostra come testo che descrive cosa la sessione vuole eseguire, senza opzioni numerate. Digita una risposta per rispondere, o collegati per rispondere con il prompt standard. Per altre sessioni bloccate, premi Tab per riempire l’input con una risposta suggerita che puoi modificare prima di inviare. Prefissa una risposta con ! per inviare un comando Bash invece.
Quando un hook PermissionRequest o PreToolUse restituisce un output che Claude Code non può convalidare per la chiamata che la sessione sta chiedendo, la riga mostra l’evento hook e hook output invalid: con l’errore di convalida prima del testo della richiesta in sospeso. Per un hook che fallisce in un altro modo, la riga dice che l’hook ha fallito. La sessione continua ad aspettare la stessa richiesta.
Una risposta che non può essere consegnata, perché il servizio in background non è raggiungibile o l’invio fallisce, viene salvata e inviata alla sessione come suo prossimo prompt quando il suo processo si avvia di nuovo, e il messaggio di errore dice che la risposta è stata salvata. Una risposta con prefisso ! non viene salvata, perché il testo salvato raggiungerebbe la sessione come un prompt semplice piuttosto che eseguire come comando Bash.
Con la dettatura vocale abilitata, tieni premuto o tocca il tuo tasto push-to-talk mentre l’input di risposta è focalizzato per dettare una risposta invece di digitarla. Lo stesso funziona nell’input di dispatch in fondo a agent view.
Usa ↑ e ↓ per fare peek alle sessioni adiacenti senza chiudere il pannello, o → per collegarti.
Collegarsi a una sessione
PremiEnter o → su una riga selezionata per collegarti. Agent view è sostituito dalla sessione interattiva completa. Quando ti colleghi, Claude pubblica un breve riassunto di cosa è successo mentre eri via.
Mentre collegato, la sessione si comporta come qualsiasi altra sessione di Claude Code: comandi, scorciatoie da tastiera e funzioni funzionano tutti, con le eccezioni sottostanti.
Mentre sei collegato, /install-github-app e l’elenco delle impostazioni /mcp funzionano normalmente, poiché un umano al terminale può completare i loro dialoghi. Quando nessuno è collegato, questi comandi non possono aprire i loro dialoghi, quindi la sessione appare sotto Needs input in agent view con una riga come open this session to manage MCP servers, e la risposta del transcript dice lo stesso. Collegati ed esegui il comando di nuovo per continuare; la riga needs-input si cancella quando ti colleghi. /mcp reconnect <server>, /mcp enable, e /mcp disable funzionano senza collegarsi in entrambi i casi.
Le sessioni collegate si rendono sempre in modalità fullscreen, indipendentemente dalla tua impostazione tui, perché una sessione in background non ha scrollback del terminale a cui aggiungere. Scorri con PgUp, PgDn, o la rotella del mouse, e premi Ctrl+O per la modalità transcript. Lo scroll nativo del tuo terminale e la modalità copia di tmux mostrano solo il viewport corrente, lo stesso di quando esegui qualsiasi applicazione fullscreen.
Premi ← su un prompt vuoto, o esegui /exit, per scollegar e tornare a agent view, indipendentemente dal fatto che tu abbia aperto la sessione da agent view o con claude attach <id> dalla tua shell.
← scollega anche mentre l’overlay /btw è aperto. Richiede Claude Code v2.1.257 o successivo. Una domanda laterale che sta ancora rispondendo continua a funzionare mentre sei via. La prossima volta che ti colleghi, l’overlay si riapre con essa, o con la sua risposta.
Su Windows, se premi ← entro circa mezzo secondo dal collegamento, Claude Code mostra Ambiguous ←, press again to detach, perché in quella finestra il terminale può rideliver una pressione da prima che ti collegassi. Premi ← di nuovo per scollegar.
Ctrl+Z scollega anche ma torna a dove hai iniziato invece: agent view se ti sei collegato da lì, o la tua shell se hai eseguito claude attach. Usa Ctrl+Z quando una finestra di dialogo ha il focus e non risponde a ←.
Ctrl+C mantiene il suo comportamento di interruzione standard mentre collegato: annulla una risposta in esecuzione o un comando shell ! piuttosto che scollegar. Premere Ctrl+C due volte su un prompt vuoto scollega, come in qualsiasi sessione.
Scollegar non ferma mai una sessione in background: ←, Ctrl+Z, /exit, e doppio Ctrl+C o doppio Ctrl+D la lasciano tutte in esecuzione. Per terminare una sessione da dentro di essa, esegui /stop.
Cambiare sessioni senza lasciare il terminale
In una sessione in esecuzione in primo piano, una che hai avviato nel terminale piuttosto che collegato da agent view, premere← su un prompt vuoto la mette in background e apre agent view con quella riga selezionata, quindi puoi cambiare sessioni senza lasciare il terminale. Lo stesso singolo press scollega una sessione collegata.
Se premi ← subito dopo aver eliminato l’ultimo testo del prompt o aver spostato la cronologia del prompt, Claude Code ti chiede di confermare: il primo press mostra Press ← again to open agents, o Press ← again to go back to agents in una sessione collegata, e il secondo press cambia.
Quando ← mette in background una sessione in primo piano, agent view mostra Your conversation moved to the background sopra l’elenco, con la riga di quella sessione già selezionata. Da lì:
- Premi
Enterper riaprire la conversazione. - Premi
Escper annullare il cambio e tornare alla conversazione. SeEscmostraStill starting — try again in a moment, la sessione in background non è ancora pronta, quindi premiEscdi nuovo tra un momento. - Premi
Ctrl+Cdue volte per uscire alla tua shell.
claude --resume che la riprende.
L’elenco delle attività di Claude si sposta alla sessione in background con la conversazione, quindi la checklist è intatta quando torni a quella riga.
La riga su cui hai premuto ← mantiene anche un nome in grassetto e non attenuato dopo aver spostato la selezione con i tasti freccia o il mouse, quindi puoi dire da quale sessione sei venuto.
Se uno strumento è in esecuzione quando premi ←, Claude Code aspetta fino a circa dieci secondi che finisca prima di metterla in background, e Claude continua la risposta nella sessione in background. Premi ← di nuovo per metterla in background immediatamente invece di aspettare. Quando il lavoro in corso non può trasferirsi alla sessione in background, Claude Code mostra prima la finestra di dialogo Background this session?, come con /background.
Il limite di dieci secondi non si applica mentre i subagents in primo piano che Claude ha avviato nella conversazione sono ancora in esecuzione. Claude Code continua ad aspettare in modo che il loro lavoro si trasferisca, e mostra un avviso Still backgrounding after the current tool mentre aspetta. Premi ← di nuovo per metterla in background senza aspettare, il che riavvia quei subagents dall’inizio. Claude Code non aspetta i subagents che un workflow dinamico sta eseguendo. Quando un workflow ha subagents in esecuzione, Claude Code mostra la finestra di dialogo Background this session? invece.
Claude Code non mette in background la sessione mentre hai testo non inviato nell’input del prompt, perché il testo rimane nella casella di input del tuo terminale e non si sposterebbe alla sessione in background. Se digiti nell’input mentre Claude Code aspetta di mettere in background la sessione, annulla il cambio con Backgrounding cancelled — you have unsent text in the input. Send it or clear it, then press ← again.
Premere ← crea la riga della sessione anche quando la conversazione non ha ancora messaggi, quindi → ritorna comunque a essa.
Puoi disattivare questa scorciatoia con l’impostazione leftArrowOpensAgents in /config.
Organizzare l’elenco
Agent view raggruppa le sessioni in modo che quelle che hanno bisogno di input siano in cima, conReady for review e Needs input sopra Working e Completed. Questi nomi di gruppo non corrispondono uno a uno agli stati sopra: una sessione si sposta a Ready for review quando ha una pull request aperta, e Completed raccoglie insieme sessioni finite, fallite e fermate.
Premi Ctrl+S per raggruppare per directory invece. La tua scelta persiste tra le esecuzioni.
All’interno di un gruppo:
- Premi
Ctrl+Tper fissare una sessione in cima e mantenere il suo processo in esecuzione mentre inattivo - Premi
Shift+↑oShift+↓per riordinare le sessioni - Premi
Ctrl+Rper rinominare una sessione - Premi
Entersu un’intestazione di gruppo per comprimerla
Ctrl+X per fermarla e Ctrl+X di nuovo entro due secondi per eliminarla. Premere Ctrl+X su un’intestazione di gruppo elimina ogni sessione in quel gruppo dopo conferma.
Il secondo press elimina la sessione anche quando il tentativo di arresto fallisce, ad esempio perché il servizio in background non sta rispondendo: la conferma rimane attiva per altri due secondi, e l’eliminazione termina il processo della sessione stesso. Premi Esc per chiudere la conferma senza eliminare.
Tranne nei casi mantenuti coperti in Cosa elimina una sessione, l’eliminazione rimuove la sessione dall’elenco, e un worktree che Claude ha creato per essa viene rimosso, mantenuto, o lasciato in posto a seconda di come elimini e cosa contiene il worktree. Il transcript della conversazione rimane sempre sulla tua macchina locale, disponibile attraverso claude --resume.
Per riportare una sessione su Claude Code v2.1.212 o successivo, digita /resume nell’input di dispatch. Si apre un picker con le sessioni passate del repository da cui hai aperto agent view, più recenti per prime, incluse le sessioni che hai eliminato dall’elenco; le sessioni che hanno già una riga non sono elencate. ↑/↓ spostano la selezione, Enter riprende la sessione selezionata come sessione in background in modo che si riunisca all’elenco come riga, e Esc chiude il picker.
Il picker si apre solo per un /resume semplice. Un resume mirato, scoped, o ristretto non può essere servito dal picker, quindi agent view mostra l’hint attach to a session to run it invece quando:
/resumenomina un id o un termine di ricerca- la vista è scoped con
--cwd - la vista è stata avviata con
--safe-mode - la vista è stata aperta con un flag come
--permission-modeo--settings
… N more. I fallimenti e le sessioni con una pull request aperta rimangono sempre visibili. Il gruppo Completed riempie lo spazio verticale rimasto dopo i gruppi live, e su un terminale corto l’intestazione si compatta in una singola riga di riepilogo in modo che le sessioni che stanno lavorando o hanno bisogno di input rimangono visibili.
Filtrare le sessioni
Digita nell’input di dispatch per filtrare invece di inviare:Scorciatoie da tastiera
Premi? in agent view per vedere ogni scorciatoia nel contesto. La tabella sottostante le riassume.
Ctrl+S, Ctrl+T, e Ctrl+G seguono il tuo keybindings.json. Riassegna o scollega Ctrl+S e Ctrl+T con le azioni agents:switchView e agents:togglePin nel contesto Agents, e Ctrl+G attraverso il binding chat:externalEditor del contesto Chat. Le altre scorciatoie nella tabella non possono essere riassegnate.
Invia nuovi agenti
Puoi inviare nuove sessioni in background da agent view, inviare una sessione interattiva esistente in background, o avviarne una direttamente dalla shell.Da agent view
Digita un prompt nell’input in basso di agent view e premiEnter per avviare una nuova sessione in background. La sessione è denominata automaticamente dal prompt; rinominala in seguito con Ctrl+R.
Il nome automatico è un’etichetta breve scritta da un modello di classe Haiku. Un nome che la sessione riceve in seguito appare anche sulla sua riga, incluso il titolo generato che la sessione ottiene quando accetti un piano in quella sessione.
Incolla un’immagine nel prompt per includere uno screenshot o un diagramma con il compito.
Il testo incollato più lungo di 800 caratteri o più di tre righe si comprime in un placeholder [Pasted text #N] in modo che l’input rimanga su una riga; il testo completo viene inviato quando invii. Per rivedere o modificare il testo compresso prima di inviare, incolla lo stesso testo di nuovo e il placeholder si espande di nuovo nell’input.
Prefissa o menziona parti del prompt per controllare come la sessione inizia:
Un piccolo insieme di comandi viene eseguito in agent view stesso invece di essere inviato:
/exite/quitchiudono agent view/logoutti disconnette/modelimposta il modello di dispatch/loginapre la finestra di dialogo di accesso in modo che tu possa accedere di nuovo senza collegarti a una sessione- Un
/resumesemplice, o il suo alias/continue, apre un picker delle sessioni passate del repository per riportarne una indietro come sessione in background. Richiede Claude Code v2.1.212 o successivo
/init vengono inviati a una nuova sessione in background come loro primo prompt. Gli altri comandi built-in mostrano un suggerimento attach to a session to run it invece. Tutto ciò che hai digitato rimane nell’input accanto al suggerimento in modo che tu possa modificarlo.
Confezionare un compito ricorrente come una skill ti permette di avviare lo stesso workflow da agent view ripetutamente senza riscrivere il prompt.
Quando lo stesso @name corrisponde sia a un subagent che a un repository fratello, il subagent ha la precedenza. La corrispondenza della prima parola senza @ si applica anche, quindi un prompt che inizia con uno dei tuoi nomi di subagent invia quel subagent piuttosto che trattare la parola come testo semplice. Usa la forma @ quando vuoi essere esplicito, o inizia il prompt con una parola diversa per evitare la corrispondenza.
Invia a una directory specifica
Una nuova sessione viene eseguita nella directory da cui hai aperto agent view. Per indirizzare una directory diversa, utilizza uno qualsiasi di questi:-
Apri
claude agentsin quella directory. -
Apri
claude agentsin una directory padre e menziona un repository figlio con@<repo>nel prompt. Digitando@vengono elencati questi target:- Repository Git un livello sotto la directory di lancio
- I git worktrees registrati del repository da cui hai lanciato che si trovano all’interno del suo albero di directory, come quelli che Claude crea sotto
.claude/worktrees/, etichettati con il loro ramo estratto. I worktrees aggiunti al di fuori del repository, come congit worktree add ../feature, non sono elencati - Qualsiasi directory che ha già una sessione nell’elenco
-
Dalla shell,
cdnella directory e eseguiclaude --bg "<prompt>".
Da dentro una sessione
Due comandi spostano il lavoro dalla sessione in cui ti trovi in background:/background invia la conversazione corrente lì e libera il tuo terminale, e /fork invia una copia mentre continui a lavorare dove sei.
Invia la sessione in background
Esegui/background o il suo alias /bg per spostare la conversazione corrente in una sessione in background. Passa un prompt come /bg run the test suite and fix any failures per inviare un’istruzione in più prima. Se Claude sta rispondendo quando esegui /bg, la risposta continua nella sessione in background.
L’uscita da una sessione che ha ancora lavoro in background in esecuzione, come subagent, comandi shell in background, workflow, o monitor, mostra una finestra di dialogo Background work is running invece di uscire immediatamente. Scegli Move to background and exit per mettere in background la sessione nello stesso modo in cui /background fa e tornare alla tua shell. L’opzione non viene mostrata quando agent view è disattivato.
Se una sessione in background nell’elenco ha già il nome della conversazione, Claude Code numera il nome della nuova riga, come my-session (2), e lascia il nome della riga esistente invariato. Per rinominare la nuova riga, selezionala in agent view e premi Ctrl+R.
Copia la sessione con /fork
Esegui/fork per copiare la conversazione corrente in una nuova sessione in background mentre l’originale continua a essere eseguita. La copia inizia con tutto nella conversazione fino a quel punto; vedi i punti elenco di seguito per dove viene eseguita la copia. Trasporta anche il modello, la modalità di autorizzazione, il livello di sforzo, e qualsiasi directory o concessioni di autorizzazione “non chiedere di nuovo” che hai aggiunto durante la sessione. La copia appare come sua propria riga in agent view.
Dopo il fork, le due conversazioni sono indipendenti: nulla di ciò che la copia fa entra nella conversazione originale da sola, anche se nelle sessioni in cui la messaggistica tra sessioni è abilitata, la Claude di entrambe le sessioni può esplicitamente inviare messaggi all’altra.
La copia della sessione richiede Claude Code v2.1.212 o successivo; su v2.1.161 attraverso v2.1.211, /fork avvia un subagent con fork invece, che è ora /subtask. Quando agent view è disattivato, /fork mantiene il comportamento del subagent con fork e /subtask non è disponibile.
Passa un prompt come /fork open a draft pull request with the work so far e la copia inizia a lavorarci immediatamente. Senza un prompt la copia aspetta la sua prima istruzione: seleziona la sua riga in claude agents e premi Space per inviarne una, o esegui claude attach <id>. La riga selezionata mostra space to send it a prompt mentre aspetta.
La conferma di /fork è una riga che mostra lo stato della copia, come session running, il nome della sua riga di agent view, e il suo ID di sessione per claude attach. Fai clic sul nome per passare alla copia: questa sessione si sposta in background, come premere ←, e agent view apre la sessione della copia.
Tranne quando la copia modifica in posizione, Claude Code le istruisce di creare un worktree proprio prima di apportare modifiche al codice. Al di fuori di un repository git, solo una copia spostata fuori da un worktree creato da hook riceve l’istruzione; senza un WorktreeCreate hook, la copia modifica in posizione. Una copia spostata fuori dal tuo worktree riceve anche l’istruzione di non modificare mai, eseguire comandi in, o entrare in quel worktree, qualunque sia l’impostazione di isolamento.
Dove la copia inizia dipende da dove è in esecuzione la sessione corrente:
- Come qualsiasi sessione inviata, la copia si sposta nel suo worktree prima di modificare i file. In quel caso la conferma non menziona dove viene eseguita la copia.
- Quando la tua sessione si è spostata nel suo worktree collegato dopo l’avvio, la copia inizia da dove era la sessione prima dello spostamento e, a meno che non modifichi in posizione, apporta le sue modifiche al codice in un worktree proprio lì. Quando il tuo worktree è estratto su un ramo, quell’istruzione dice anche a una copia il cui compito si basa sul tuo lavoro di basare il suo nuovo ramo sul tuo, poiché il tuo ramo rimane estratto nel tuo worktree. La conferma termina con
runs in the origin tree. - Quando hai lanciato la sessione all’interno di un worktree collegato di un repository che ha un albero di lavoro principale, la copia inizia in quell’albero di lavoro principale, con la stessa regola del worktree proprio ma nessuna istruzione di ramo. La conferma termina con
runs in the origin treeanche qui. - Una sessione lanciata all’interno di un worktree di un layout di repository bare non ha un albero di lavoro principale a cui tornare, quindi la copia rimane dove si trova, e la conferma termina con
edits this checkout. La stessa nota appare quando l’isolamento del worktree è disattivato in una sessione che non è all’interno di un worktree collegato, perché la copia modifica i file che hai aperto.
--tools, non possono essere forkate; Claude Code lo dice invece di fare una copia parziale. Una sessione inviata da agent view viene forkata normalmente: la copia viene lanciata con la stessa definizione di agente e istruzioni aggiunte della sessione da cui proviene.
Cosa si trasporta quando metti in background
Mettere in background avvia un nuovo processo che riprende dalla conversazione salvata, e il lavoro in corso si trasferisce ad esso: comandi shell in background in esecuzione, subagent in background, workflow dinamici, compiti programmati che hai creato con/loop, e risposte automatiche di Claude ai commenti degli artefatti si trasferiscono tutti e continuano a essere eseguiti lì. Un subagent si sposta insieme a tutto ciò che ha avviato, quindi si trasferisce solo quando tutto quel lavoro può trasferirsi anche. Per fermare il lavoro in corso invece di trasferirlo, imposta la variabile di ambiente CLAUDE_DISABLE_ADOPT=1; Claude Code ti chiede di confermare prima di mettere in background.
Quando un workflow dinamico ha ancora subagent in esecuzione, Claude Code chiede prima di mettere in background con la finestra di dialogo Background this session?, che dice quanti subagent verrebbero riavviati. Scegli Stay per lasciarli finire prima. Se confermi, Claude Code riproduce l’esecuzione nella sessione in background: i subagent che erano ancora in esecuzione ricominciamo dall’inizio, quindi i token che hanno usato finora vengono spesi di nuovo. Vedi Riprendi dopo una pausa per quali subagent completati restituiscono i loro risultati salvati e quali vengono eseguiti di nuovo.
Claude Code interrompe il lavoro che non può trasferirsi, come un monitor in esecuzione, e interrompe un subagent messo in background che possiede un monitor insieme ad esso. Quando uno qualsiasi di essi è in esecuzione, Claude Code mostra la finestra di dialogo Background this session? in modo che tu possa confermare prima che il lavoro sia interrotto.
Una volta in background, la sessione può avviare nuovi subagent, monitor, e comandi in background, e questi continuano a essere eseguiti durante successivi distacchi e ricollegamenti.
I flag di configurazione dal lancio originale si trasferiscono alla sessione messa in background, quindi i suoi server MCP, le impostazioni e il modello di fallback rimangono in vigore:
--mcp-confige--strict-mcp-config--settings--add-dir--plugin-dir--fallback-model--allow-dangerously-skip-permissions
/add-dir si trasferiscono anche. Il trasferimento di --allow-dangerously-skip-permissions mantiene bypassPermissions raggiungibile nella sessione messa in background, ma non concede nulla di nuovo: la modalità richiede comunque la stessa accettazione interattiva una tantum descritta in Permission mode, model, and effort.
Dalla tua shell
Passa--bg o la sua forma lunga --background per avviare una sessione che va direttamente in background:
-p. Claude Code rifiuta --bg combinato con -p o --print prima che qualsiasi sessione sia creata, perché --print non avvia mai la sessione interattiva a cui claude agents si collega.
Per eseguire un subagent specifico che hai definito, come un code-reviewer, come agente principale della sessione, combina --bg con --agent:
no agent named e comunque segnala la sessione come messa in background, ma la sessione esce immediatamente con un errore --agent '<name>' not found.
Quando la sessione messa in background in seguito riprende o si riavvia, Claude Code ripristina l’agente e le sue restrizioni di strumenti; per il suo prompt di sistema, vedi Flag di prompt di sistema nelle conversazioni riprese. Cerca prima il suo agente nella directory della sessione, a condizione che tu abbia fiducia in quel workspace, quindi un agente con ambito di progetto si carica ancora quando la sessione viene ripresa da un’altra directory. Se l’agente non esiste più, la sessione continua con gli strumenti predefiniti e la sua trascrizione si apre con un avviso che nomina l’agente.
Per continuare una conversazione esistente in background, passa il suo ID di sessione completo con --resume:
note: che spiega perché non potrebbe continuare in posizione. Quando la sessione continua in posizione, claude agents mostra una riga per essa.
Quando combini --bg con --continue, un --resume semplice, o --resume con un nome o percorso di file, Claude Code avvia sempre una copia di questo tipo. Aggiungi --fork-session per avviare una copia di proposito, senza la nota.
Passa --name per impostare il nome di visualizzazione della sessione in agent view invece di quello generato automaticamente:
--bg potrebbe prima stampare Starting background service… sopra questo output. Quando passi --name, il nome appare dopo l’ID breve:
Esegui un comando shell
Per eseguire un comando shell come un job in background invece di una sessione Claude, passa--exec. L’esempio seguente esegue pytest -x come un job in background:
! come primo carattere dell’input di dispatch: il ! viene visualizzato come prefisso, tutto ciò che digiti dopo di esso è il comando, e Enter avvia il job.
Il comando viene eseguito come un job supportato da PTY e appare come una riga in agent view, con la riga di output più recente come suo stato. Un job shell esegue il comando al posto di Claude, quindi nessun modello viene invocato e l’output non viene inviato a nessuna sessione.
Per vedere l’output, collegati alla riga, premi Space per visualizzare l’anteprima senza collegarti, o esegui claude logs <id> dalla tua shell. L’output acquisito rimane in memoria e non viene scritto su disco. La riga e il suo output si puliscono automaticamente circa cinque minuti dopo l’uscita del comando, quindi leggi prima se hai bisogno del risultato.
Come sono isolate le modifiche ai file
Ogni sessione in background, che sia avviata da agent view,/bg, o claude --bg, inizia nella tua directory di lavoro. Prima di modificare i file, Claude sposta la sessione in un git worktree isolato sotto .claude/worktrees/, quindi le sessioni parallele possono leggere lo stesso checkout ma ognuna scrive nel suo. Una volta che la sessione è nel suo worktree, Claude Code applica l’isolamento del worktree per la sessione e per qualsiasi subagent che genera.
Claude salta il worktree quando:
- La sessione è già all’interno di un git worktree collegato, che Claude l’abbia creato sotto
.claude/worktrees/o tu l’abbia creato congit worktree addda qualche altra parte - Il file che Claude sta modificando è all’interno di un git worktree collegato, come uno che la sessione o il suo subagent ha creato con
git worktree add - La directory di lavoro non è un repository git e nessun
WorktreeCreatehook è configurato - La scrittura è al di fuori della directory di lavoro
worktree.bgIsolation su "none". Le sessioni in background modificheranno quindi la tua copia di lavoro direttamente senza spostarsi prima in un worktree. Aggiungi l’impostazione al file .claude/settings.json del progetto:
WorktreeCreate hook e Claude isola le modifiche nello stesso modo in cui lo fa per git.
Quando l’hook fallisce in una directory che non è un repository git, Claude salta l’isolamento per quella directory e modifica la directory di lavoro in posizione. All’interno di un repository git, Claude Code blocca le scritture al checkout condiviso finché Claude non sposta la sessione in un worktree.
Per trovare il percorso del worktree di una sessione, visualizza l’anteprima della sessione o collegati e controlla la sua directory di lavoro.
Un subagent che la sessione in background genera eredita la directory di lavoro della sessione, quindi le sue modifiche ai file finiscono nel worktree della sessione piuttosto che nella tua copia di lavoro. Per dare a un subagent il suo proprio worktree separato, imposta isolation: worktree nel suo frontmatter o passa isolation: "worktree" quando lo generi.
Quando una sessione in background ha apportato modifiche al codice in un worktree in cui Claude è entrato, Claude Code istruisce Claude di preservare il lavoro prima di finire, quindi sopravvive se elimini la sessione e il suo worktree:
- Commit e push: Claude esegue il commit senza chiedere, e spinge il ramo quando il repository ha un remote.
- Bozza di pull request: Claude ne apre una quando il compito lo richiede, e l’etichetta
#Nappare sulla riga. - Mai: spingere a
mainomaster, force-push, e merge. - Le tue istruzioni git hanno la precedenza: se il compito,
CLAUDE.md, o memoria dice che gestisci tu stesso il commit o il push, Claude lascia git a te.
"none", quando lo spostamento del worktree è fallito, o quando la sessione è stata avviata all’interno di un worktree che già esisteva.
Qualunque sia il compito, Claude termina il lavoro con un rapporto che dice cosa ha fatto e dove si trova il lavoro: un percorso, un ramo, una pull request, o la risposta stessa.
Cosa elimina l’eliminazione di una sessione
Elimina una sessione conCtrl+X due volte in agent view o con claude rm. Tranne nei casi mantenuti di seguito, la sessione lascia l’elenco. La sua trascrizione rimane sulla tua macchina attraverso claude --resume, e la rimozione sopravvive ai riavvii del supervisore.
Cosa succede a un worktree che Claude ha creato per la sessione:
- Agent view lo rimuove, inclusi eventuali cambiamenti non committati, quindi esegui il commit di ciò che vuoi mantenere prima.
-
claude rmlo mantiene, insieme alla riga della sessione, quando ha cambiamenti non committati. -
Né agent view né
claude rmrimuovono un worktree che un’altra sessione in esecuzione sta usando o ha bloccato, e eliminare di nuovo non cambia questo. Claude Code mantiene il worktree e la sessione, e nomina la directory mantenuta e il motivo; in agent view, la riga della sessione mostranot deleted. Chiudi l’altra sessione, quindi elimina di nuovo. -
Quando elimini una sessione il cui worktree ha commit che Claude Code non può confermare sono salvati altrove, Claude Code mantiene il worktree e la sessione, e il messaggio nomina il ramo del worktree e quanti commit non sono stati spinti. Il messaggio offre anche i due modi per procedere: spingere i commit, o eliminare di nuovo per scartarli.
I commit su un remote non bloccano l’eliminazione. Nemmeno i commit sulla copia locale del ramo predefinito del tuo remote
origin, purché quel ramo sia estratto nel tuo checkout principale, la directory del repository stessa piuttosto che un worktree. Dopo quel rifiuto, scegli:- Per mantenere i commit, spingili, o uniscili in quel ramo predefinito, quindi elimina la sessione di nuovo.
- Per scartarli, elimina la sessione di nuovo senza spingere: premi
Ctrl+Xdue volte sulla sua riga in agent view, o esegui il comandoclaude rm <id> --discard-unpushedche il rifiuto ha stampato. Questo rimuove la sessione e il worktree insieme al suo ramo, scartando i commit non spinti e qualsiasi cambiamento non committato.
-
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
WorktreeRemovehook non riesce a rimuovere il worktree, Claude Code mantiene il worktree e la sessione, e il messaggio nomina la causa. Per un hook, il messaggio dice come è terminato, comeexited 1, e cita l’inizio del suo stderr. Il messaggio ti dice anche quale di questi fare dopo:- Elimina la sessione di nuovo per rimuovere la directory comunque, premendo
Ctrl+Xdue volte sulla sua riga in agent view o eseguendo il comandoclaude rm <id> --force-remove-worktree <worktree-id>che il rifiuto diclaude rmha stampato. Claude Code offre questo solo quando può confermare che la directory è uno dei worktree collegati del repository sotto.claude/worktrees/senza cambiamenti non committati ai file tracciati, nessun repository annidato dentro, e nessun record di un’altra sessione che lo nomina. Il ramo del worktree rimane nel repository. - Correggi ciò che sta nel modo, come committare o stash dei cambiamenti non committati, chiudere tutto ciò che sta usando la directory, o correggere l’hook, quindi elimina la sessione di nuovo.
- Rimuovi la directory tu stesso, quindi elimina la sessione di nuovo.
- Elimina la sessione di nuovo per rimuovere la directory comunque, premendo
WorktreeCreate hook ha creato la directory altrove, può comunque essere eliminata. Mentre i file rimangono nella directory:
- Agent view chiede lo stesso doppio
Ctrl+Xprima di scartarli. Per una directory creata da hook esegue il tuoWorktreeRemovehook invece, e senza uno rifiuta l’eliminazione e mantiene la sessione. claude rmmantiene la sessione e il worktree, e nomina il motivo.
Imposta il modello
Il nome del modello mostrato nell’intestazione di agent view è il default di dispatch. Le nuove sessioni che avvii dall’input utilizzano questo modello, che proviene dall’impostazionemodel nei tuoi settings utente. Impostalo selezionando un modello nel picker /model, o modifica l’impostazione direttamente.
Per sovrascrivere il default di dispatch per l’intera sessione di agent view, passa --model quando apri agent view. Vedi Permission mode, model, and effort.
Per cambiare il default di dispatch da dentro agent view, digita /model seguito da un nome di modello nell’input di dispatch e premi Enter. L’intestazione si aggiorna per mostrare quel modello con un marcatore (session), e le sessioni che invii successivamente lo utilizzano. Digita /model default per cancellare l’override e tornare al default di dispatch. Questo override dura per il resto della corrente esecuzione di claude agents e non scrive nel tuo file di settings. L’esempio seguente invia una sessione su Opus e la successiva su Sonnet:
- Dalla shell, passa
--modelconclaude --bg. - Collegati a una sessione in esecuzione e esegui
/modelper passare: una scelta dal picker, o un/model <name>digitato, viene salvato come tuo default per le nuove sessioni a meno che tu non premisnel picker per un passaggio solo per la sessione. Un passaggio solo per la sessione persiste se la sessione viene riavviata. - Invia un subagent il cui frontmatter imposta un campo
model.
Permission mode, model, and effort
Una sessione in background prende le sue impostazioni, provider, modalità di autorizzazione, modello e sforzo da dove e come l’hai inviata. Le sottosezioni di seguito coprono ogni fonte, e cosa persiste quando il supervisore riavvia la sessione.Impostazioni e provider
Una sessione in background legge le sue impostazioni dalla directory in cui viene eseguita, come se avessi avviatoclaude lì. Questo include i valori env nelle impostazioni del progetto, quindi un ANTHROPIC_MODEL o una variabile del provider impostata lì si applica a ogni sessione in background in quella directory.
Una sessione in background viene anche eseguita con il PATH della shell da cui l’hai inviata, quindi i comandi che esegue trovano gli stessi strumenti del tuo terminale. Mantiene anche la selezione del cloud provider di quella shell, come CLAUDE_CODE_USE_BEDROCK o CLAUDE_CODE_USE_VERTEX, insieme ai suoi alias ANTHROPIC_DEFAULT_*_MODEL e qualsiasi override CLAUDE_CODE_EXTRA_BODY che hai esportato lì.
Gateway LLM
Se instrada Claude Code attraverso un gateway LLM, metti le variabili del gateway in un bloccoenv di un file di impostazioni piuttosto che esportarle nella tua shell, e le sessioni in background le leggono insieme al resto delle loro impostazioni. Imposta in un file di impostazioni mostra il blocco e quale file di impostazioni usare per la credenziale.
Se esporti un gateway ANTHROPIC_BASE_URL solo nella tua shell, raggiunge una sessione in background, insieme a ANTHROPIC_CUSTOM_HEADERS e la credenziale che hai esportato con esso, solo quando il supervisore stesso è stato avviato da una shell che ha esportato lo stesso gateway, e solo in questi casi:
- Metti in background la tua sessione con
←o/background - Invii una sessione nella directory in cui sei
- Svegli una sessione fermata nella directory in cui sei collegandoti o rispondendo ad essa
ANTHROPIC_BASE_URL, insieme a ANTHROPIC_CUSTOM_HEADERS. Ad esempio, esporta CLAUDE_CODE_USE_VERTEX=1 con ANTHROPIC_VERTEX_BASE_URL e CLAUDE_CODE_SKIP_VERTEX_AUTH=1, e Claude Code inoltra quell’endpoint e flag.
Claude Code applica un gateway inoltrato solo al processo in esecuzione di quella sessione e non lo scrive mai su disco.
Modalità di autorizzazione
La modalità di autorizzazione dipende da come hai avviato la sessione:- Messa in background con
/bgo←: Claude Code mantiene la modalità di autorizzazione in cui era la sessione, quindi una che hai cambiato inacceptEditsoautorimane lì dopo il distacco - Inviata da un agent view che hai aperto con
←: la configurazione del target viene prima, e la modalità di autorizzazione della sessione da cui sei venuto si applica quando nulla altro ne imposta una - Inviata da
claude agentsavviato in una shell, o conclaude --bg: la nuova sessione inizia come una nuova sessioneclaudein quella directory, a meno che non l’abbia inviata da un agent view che hai aperto con dispatch defaults. Quale modalità di autorizzazione una sessione inizia elenca l’ordine
←, Claude Code prende la modalità di autorizzazione dal primo di questi che si applica:
- La
permissions.defaultModedella directory target. Due regole di origine si applicano:autoebypassPermissionshanno effetto solo dalle impostazioni gestite, un file--settings, o~/.claude/settings.json.- Claude Code rifiuta un
defaultModedal.claude/settings.jsono.claude/settings.local.jsondel progetto che seleziona una modalità più permissiva di quella in cui era la sessione da cui sei venuto.
- La modalità di autorizzazione della sessione da cui sei venuto
acceptEdits, la nuova sessione inizia in modalità piano. Se sposti quel defaultMode a ~/.claude/settings.json, si applica indipendentemente dalla modalità di autorizzazione della sessione da cui sei venuto.
La permissività corre piano, poi Manual e dontAsk, poi acceptEdits e auto, che ognuno conta come più permissivo dell’altro, poi bypassPermissions.
Dispatch defaults
Per impostare i default per ogni sessione che invii da agent view, passa uno qualsiasi di--permission-mode, --model, --effort, o --agent quando lo apri:
--effort qui accetta gli stessi valori del flag --effort di livello superiore, incluso ultracode.
--agent imposta il subagent utilizzato quando un prompt di dispatch non ne nomina uno, sia con @name che come prima parola. Per impostazione predefinita, utilizza l’impostazione agent se ne è impostata una, altrimenti l’agente catch-all integrato claude. Nominare un subagent nell’input di dispatch sovrascrive entrambi.
claude agents accetta anche --dangerously-skip-permissions come abbreviazione per --permission-mode bypassPermissions, e --allow-dangerously-skip-permissions per rendere bypassPermissions disponibile nel ciclo Shift+Tab di ogni sessione inviata senza avviare in quella modalità. Entrambi corrispondono ai flag CLI di livello superiore.
Passa --restricted per avviare ogni sessione che invii dalla vista in modalità ristretta, come se ognuna fosse lanciata con il flag di livello superiore --restricted. Richiede Claude Code v2.1.248 o successivo.
I default attivi appaiono nel footer sotto l’input di dispatch.
Claude Code rifiuta claude --bg --permission-mode bypassPermissions finché non hai accettato il disclaimer di bypass eseguendo claude --dangerously-skip-permissions una volta in modo interattivo, poiché quella modalità permette a una sessione che non stai guardando di agire senza approvazione. Passare --dangerously-skip-permissions o --permission-mode bypassPermissions a claude agents mostra lo stesso disclaimer quando non l’hai accettato prima, e accettare applica bypassPermissions alle sessioni che avvii dalla vista. Passare --allow-dangerously-skip-permissions mostra lo stesso disclaimer anche, e accettare rende bypassPermissions disponibile nel ciclo Shift+Tab di quelle sessioni senza avviarle in esso.
Cosa persiste attraverso i riavvii
La modalità di autorizzazione, il modello e lo sforzo che hai scelto per una sessione in background, insieme ai flag di configurazione che trasporta, persistono tutti quando il supervisore successivamente arresta e riavvia il processo della sessione. Una sessione che hai lanciato conclaude --bg --dangerously-skip-permissions o claude --bg --permission-mode bypassPermissions rimane in bypassPermissions dopo quel riavvio. Un modello o sforzo che hai cambiato a metà sessione con /model o /effort viene mantenuto anche.
Se la sessione ha preso il suo sforzo dalle tue impostazioni piuttosto che da --effort o /effort, Claude Code legge di nuovo le tue impostazioni ogni volta che avvia un processo per la sessione. Dopo aver modificato lo sforzo salvato in settings.json, il cambiamento raggiunge le sessioni che metti in background con ← o /bg, e i loro successivi riavvii. Lo sforzo salvato è la chiave effortLevel o una voce modelSettings.
Claude Code mantiene anche un nome che hai impostato con /rename o Ctrl+R attraverso quel riavvio, quindi puoi ancora eseguire claude --resume <name> per raggiungere la sessione.
Un prompt che hai stashed con Ctrl+S mentre collegato viene mantenuto con la sessione anche. Riapri la sessione dopo che il suo processo è stato fermato o riavviato, e Ctrl+S ripristina il testo stashed. Il contenuto incollato nello stash non sopravvive al riavvio.
Impostazioni, plugin, e server MCP
Agent view accetta gli stessi flag di configurazione diclaude per caricare impostazioni, plugin, server MCP, e directory aggiuntive. Agent view applica --settings e --plugin-dir a se stesso e passa ogni flag di configurazione alle sessioni che invii da esso, quindi un plugin o server MCP che carichi in questo modo è disponibile in quelle sessioni.
Ripeti
--add-dir, --plugin-dir, o --mcp-config una volta per valore. claude agents non supporta la forma separata da spazi, come --add-dir a b c.
Puoi mettere --settings e --plugin-dir prima o dopo agents. Mantieni --add-dir e --mcp-config dopo agents: se metti uno di questi prima di agents, claude agents --json fallisce con un errore unknown option.
L’esempio seguente apre agent view con un override di impostazioni e una directory extra:
--settings accetta un percorso di file o una stringa JSON inline. Un percorso di file deve puntare a un file esistente; Claude Code esce con un errore Settings file not found se non lo fa.
Gestire le sessioni dalla shell
Ogni sessione in background ha un ID breve che puoi usare dalla shell. L’ID viene stampato quando avvii una sessione conclaude --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.
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 eseguendoclaude direttamente è legata a quel terminale e termina quando si chiude, a meno che tu non la invii in background.
Per verificare quale tipo di sessione stai utilizzando, esegui /status. La riga Session kind legge background job · attached o background job · unattended in una sessione in background, a seconda che un terminale sia collegato, e interactive in qualsiasi altra sessione.
Il processo supervisor
Il supervisor è un servizio in background che esegue le tue sessioni in background in modo che continuino a funzionare dopo che chiudi la vista agente o il tuo terminale. Claude Code lo avvia la prima volta che metti una sessione in background o apri la vista agente, e non hai bisogno di gestirlo tu stesso. Ogni sessione è il suo proprio processo Claude Code sotto il supervisor, e ciò che accade a quel processo dipende dallo stato della sessione:- In esecuzione, in pausa su un prompt di permesso o un’altra finestra di dialogo, o collegato: il processo continua a funzionare. Un subagente, workflow o monitor in esecuzione conta come in esecuzione.
- Terminato o in attesa del tuo prossimo messaggio, e scollegato per circa un’ora: il supervisor ferma il processo per liberare risorse. Una sessione che ha terminato il suo turno chiedendoti una domanda conta come in attesa del tuo prossimo messaggio. La conversazione rimane su disco, e la prossima volta che ti colleghi o rispondi, la sessione riprende da dove l’ha lasciata. Fissa una sessione con
Ctrl+Tper 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 conkill, 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.
CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF su 1.
Il supervisor e le sue sessioni si autenticano con le stesse credenziali archiviate delle tue sessioni interattive. Per quali impostazioni e variabili di shell raggiungono una sessione, incluso PATH, vedi Impostazioni e provider. Per gli endpoint del gateway, vedi Gateway LLM.
Dove lo stato è archiviato
Lo stato della sessione è archiviato sotto la tua directory di configurazione Claude Code. Se impostiCLAUDE_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 di ambiente
CLAUDE_JOB_DIR impostata sulla sua directory ~/.claude/jobs/<id>, quindi i comandi shell che la sessione esegue possono scrivere file temporanei su $CLAUDE_JOB_DIR/tmp senza collidere con sessioni parallele.
Per ispezionare questo stato senza leggere direttamente i file, esegui claude daemon status. Riporta se il supervisor è raggiungibile, il suo ID processo e versione, la directory socket, e quante sessioni in background sono attive.
Il comando avverte anche quando il supervisor in esecuzione è su una versione diversa da quella di claude che hai invocato, il che accade dopo un aggiornamento in cui il supervisor non si è ancora riavviato. L’avviso mostra entrambe le versioni e ti dice di eseguire claude daemon stop --any per raccogliere la nuova versione. Quando Claude Code è installato come servizio del sistema operativo, il comando suggerito è claude daemon stop senza il flag.
Le sessioni sopravvivono a quel mismatch di versione intatto: una versione più vecchia di Claude Code che aggiorna il file state.json di una sessione preserva i campi che non riconosce e mantiene la sessione elencata. L’elenco delle sessioni in roster.json segue la stessa regola, quindi le sessioni avviate dalla versione più nuova rimangono raggiungibili e continuano ad accettare input dopo il riavvio del supervisor.
Disattiva agent view
Per disattivare completamente gli agenti in background e agent view, imposta l’impostazionedisableAgentView su true o imposta la variabile di ambiente CLAUDE_CODE_DISABLE_AGENT_VIEW. Gli amministratori possono applicare questo attraverso impostazioni gestite.
Troubleshooting
claude agents elenca subagenti invece di aprire agent view
Se claude agents stampa un conteggio seguito dai tuoi subagenti configurati e poi esce, agent view non è disponibile nel tuo ambiente. Esegui claude update per installare la versione più recente.
Se agent view ancora non si apre dopo l’aggiornamento, verifica se è stata disattivata da un’impostazione o da una variabile di ambiente.
Agent view si apre senza sessioni
Prima di inviare la tua prima sessione, agent view mostra le intestazioni di sezione vuote con una descrizione sotto ognuna, più una spiegazione su una riga sopra l’input, al posto dell’elenco delle sessioni. Digita un prompt nell’input in basso e premiEnter per inviare la tua prima sessione.
Lo spostamento in background mostra una finestra di dialogo Background this session?
Se premere ← per mettere in background la sessione corrente e Claude Code mostra una finestra di dialogo Background this session?, la sessione ha lavoro in corso che lo spostamento in background interromperebbe, riavvierebbe o lascerebbe in esecuzione incustodito, e Claude Code chiede prima di fare uno di questi:
- Lavoro che non può trasferirsi: la sessione ha lavoro che non può trasferirsi alla sessione in background, come un monitor in esecuzione. La finestra di dialogo nomina il lavoro che Claude Code fermerebbe e, separatamente, conta i compiti che si trasferiscono.
- Un workflow con subagenti in esecuzione: un dynamic workflow ha ancora subagenti in esecuzione. Il workflow stesso si trasferisce, ma i suoi subagenti in esecuzione si riavviano dall’inizio, e la finestra di dialogo dice quanti sono.
- Risposte automatiche agli artefatti: Claude sta rispondendo ai commenti su un artefatto da solo. Quelle risposte continuano nella sessione in background, e la finestra di dialogo lo dice.
/tasks per vedere tutto ciò che è in esecuzione, quindi conferma per metterla in background comunque o scegli Stay per lasciare che il lavoro finisca prima. Vedi Cosa si trasferisce quando metti in background per sapere quali tipi di lavoro si trasferiscono e quali Claude Code ferma.
Prompt rifiutato come troppo breve
L’input di dispatch si aspetta una descrizione del compito, non un’apertura conversazionale. Un prompt più corto di quattro caratteri viene rifiutato con un suggerimentoToo short in modo che una pressione accidentale non avvii una sessione. Descrivi cosa vuoi che la sessione faccia, come investigate the flaky checkout test.
Le sessioni mostrano come non riuscite o interrotte dopo lo spegnimento
Lo spegnimento o il riavvio della tua macchina interrompe le sessioni in background in esecuzione. Una sessione che era in attesa del tuo input rimane sottoNeeds input quando torni. Per qualsiasi altra sessione in esecuzione, ciò che agent view mostra dipende da quanto tempo fa ha fatto progressi per l’ultima volta:
- Entro 48 ore, la sessione mostra come non riuscita. Collegati o rispondi ad essa e si riavvia da dove l’ha lasciata.
- Passate 48 ore, come dopo che la macchina è stata spenta per giorni, la sessione mostra come interrotta con
ended while the background service was off. PremiEntersulla riga e il footer mostraPress enter again to resume this session (it ended while the background service was off), or ctrl+x to delete it.PremiEntersulla stessa riga di nuovo per riprendere la sua conversazione salvata. Una risposta, oclaude attach <id>, la riprende senza quel prompt del footer.
claude rm <id> elimina la riga, tranne nei casi mantenuti descritti sopra, e claude respawn <id> esegue di nuovo il suo prompt originale. Vedi La conversazione salvata di questa sessione non è più su disco.
Il sonno da solo non ferma le sessioni. Le sessioni vengono preservate durante il sonno e il supervisor si ricollega ad esse al risveglio.
L’apertura di una sessione dice che la conversazione è già aperta
Due processi non possono scrivere sulla stessa trascrizione. Quando la conversazione salvata di una sessione interrotta è già aperta in un altro processo Claude Code live, Claude Code rifiuta di avviare il processo della sessione. Ciò che vedi dipende da ciò che tiene la conversazione:- Un terminale dove hai ripreso la conversazione, ad esempio con
claude --resumeo/resume: la riga mostraOpen in a terminalcon un suggerimento per continuarla lì, e aprire la riga mostraCan't open — this session is running in another terminal. Continua in quel terminale, o esci da esso e apri di nuovo la riga. - Un altro processo Claude Code non interattivo, ad esempio un processo di sessione in background per la stessa conversazione che non è ancora uscito: aprire la riga mostra
This conversation is already open in another running Claude session. Usa quel processo, o aspetta che esca e apri di nuovo la riga.
L’apertura di una sessione dice che non ha trascrizione salvata
Una sessione interrotta che è stata messa in background da un’altra conversazione e interrotta prima che la sua prima risposta finisse non ha nulla da riprendere: fino a quando quella prima risposta non finisce, la conversazione vive ancora solo nella sessione da cui è stata messa in background.claude attach rifiuta di aprirla con This session has no saved transcript.
In agent view, aprire quella riga mostra Press enter again to restart this session fresh sotto l’elenco. Premi Enter sulla stessa riga di nuovo per riavviare la sessione con una conversazione vuota, o esegui claude respawn <id> dalla shell.
La conversazione originale è intatta; riprendi con claude --resume o continua a lavorarci. Vedi il riferimento degli errori per i dettagli.
L’host del terminale è morto o la sessione ha smesso di rispondere
Il supervisor esegue il terminale di ogni sessione in background nel suo processo host separato. Quando quel processo muore o smette di rispondere, Claude Code mostra il motivo e offre un riavvio; in entrambi i casi la conversazione è salvata e il riavvio la riprende. Il riferimento degli errori cita i messaggi completi. Claude Code non riavvia mai una riga che esegue un comando shell, daEnter o da claude attach, perché ciò eseguirebbe di nuovo il comando; il messaggio della riga e claude attach entrambi dicono che il comando non viene eseguito di nuovo.
L’host del terminale è morto
Su Linux e WSL, il supervisor controlla ogni processo host ogni pochi secondi, indipendentemente dal fatto che apri la sessione o meno, e contrassegna la sessione come non riuscita quando il processo è uscito ma la sua connessione al supervisor non si è mai chiusa.- In agent view, la riga mostra
terminal host process died — press Enter to restart. PremiEntersu di essa e Claude Code riavvia la sessione su un processo host fresco. - Dalla shell,
claude attach <id>riavvia una sessione già contrassegnata come non riuscita. Altrimenti segnala la causa e esce, dicendoti di eseguireclaude attach <id>di nuovo.
La sessione non sta rispondendo
Quando il supervisor accetta un’apertura ma nessun output arriva per circa dieci secondi, Claude Code termina il tentativo e offre un riavvio. Una sessione che semplicemente si è bloccata, ad esempio durante il sonno della macchina, non raggiunge questa offerta: il supervisor la riavvia all’apertura stesso.- In agent view, il footer mostra
Press enter again to restart this session — it isn't responding (its conversation is saved and resumes).PremiEntersulla stessa riga di nuovo e Claude Code ferma il processo che non risponde e riavvia la sessione; non ferma nulla senza quel secondo press. - Dalla shell,
claude attach <id>segnala la causa e esce, dicendoti di eseguireclaude stop <id>, poiclaude attach <id>.
Una sessione non riesce prima di iniziare con una nota possibly low memory
Quando il processo di una sessione in background esce prima di finire l’avvio e l’host ha poca memoria, lo stato della riga nomina l’uscita e aggiunge possibly low memory — free some up and retry.
La nota è un’ipotesi, non una causa confermata. Claude Code la aggiunge solo quando il processo è uscito silenziosamente, senza scrivere un errore e senza essere fermato da un segnale, e l’host ha segnalato poca memoria in quel momento. Quando il processo ha scritto un errore prima di uscire, la riga mostra invece quell’errore.
Libera memoria sulla macchina, quindi collegati o rispondi alla riga e il supervisor avvia un processo fresco per la sessione. Quando la memoria rimane bassa, il supervisor ferma anche le sessioni inattive per liberare risorse da solo, e ferma anche le sessioni fissate inattive se fermare le altre non ha liberato nulla.
Agent view dice che il servizio in background non ha risposto
Se il collegamento, il peek, oclaude logs segnala che il servizio in background non ha risposto, il processo supervisor ha probabilmente subito un blocco. Fermalo e lascia che il prossimo claude agents avvii uno nuovo. Per mantenere le tue sessioni in background in esecuzione durante il riavvio, passa --keep-workers:
--keep-workers, il comando termina anche le sessioni in background. Il flag --any conferma che desideri fermare un supervisor che è stato avviato su richiesta piuttosto che come servizio installato, che è l’impostazione predefinita.
Un supervisor che si avvia ma non riesce ad accettare connessioni esce e rilascia il suo blocco da solo, quindi il prossimo claude agents avvia uno nuovo senza questo arresto manuale. I passaggi precedenti si applicano quando un supervisor in esecuzione subisce un blocco.
Se il comando invece esce dicendo che il processo registrato non potrebbe essere verificato come il supervisor, controlla l’ID del processo segnalato: se è un supervisor che possiedi, fermalo tu stesso, quindi elimina ~/.claude/daemon.lock in modo che il prossimo claude agents si avvii fresco.
Su Windows, se il supervisor non risponde alla richiesta di arresto, il comando stampa il suo ID di processo. Termina quel processo con taskkill /PID <pid> per completare il recupero. Le sessioni in background vengono comunque preservate quando hai passato --keep-workers.
Dispatch non riesce con Could not resolve authentication method
Se un dispatch in background non riesce con Could not resolve authentication method mentre le sessioni interattive si autenticano normalmente, il worker che ha ricevuto il dispatch non ha raccolto le credenziali. Le sessioni in background ottengono le loro credenziali dal supervisor, quindi questo errore significa che nessuna credenziale memorizzata era disponibile per il processo supervisor stesso. Conferma di aver eseguito /login o di aver configurato una chiave API, quindi ferma il supervisor:
claude agents o claude --bg avvia un supervisor fresco che legge le tue credenziali memorizzate. Se ti autentichi con una variabile di ambiente come ANTHROPIC_API_KEY piuttosto che con /login, esegui quel comando successivo da una shell dove la variabile è impostata.
Vedi il riferimento degli errori per l’elenco completo delle cause e delle correzioni.
Le sessioni in background non riescono a leggere Desktop, Documents o Downloads su macOS
Su macOS, l’host della sessione in background viene eseguito come processo separato e richiede l’accesso alle cartelle protette separatamente dal tuo terminale. Se una sessione in background segnalaOperation not permitted durante la lettura di ~/Desktop, ~/Documents, ~/Downloads, o un’altra posizione protetta, concedi l’accesso in Impostazioni di Sistema sotto Privacy e Sicurezza > File e Cartelle, o abilita Accesso Completo al Disco per la voce.
Con il programma di installazione nativo, la voce appare come Claude Code e la concessione persiste tra gli aggiornamenti. Con altri metodi di installazione come Homebrew o npm, la voce mostra il percorso del binario e potrebbe dover essere concessa di nuovo dopo l’aggiornamento.
Le sessioni in background non riescono a raggiungere host della rete locale su macOS
Su macOS 15 e versioni successive, il sistema blocca un processo dal raggiungimento di dispositivi sulla tua rete locale finché non concedi il permesso di Rete Locale, quindi un comando che mira a un indirizzo LAN può non riuscire conconnect: no route to host in una sessione in background anche se funziona in un terminale in primo piano. Il primo comando in una sessione in background che si connette a un indirizzo della rete locale attiva il prompt di permesso di Rete Locale di macOS per Claude Code. Concedilo una volta e quei comandi raggiungono gli host LAN nello stesso modo in cui lo fanno in un terminale in primo piano.
Una sessione è lenta a rispondere dopo il collegamento
Quando una sessione che ha finito o è in attesa del tuo prossimo messaggio rimane scollega per circa un’ora, il supervisor ferma il suo processo per liberare risorse. Il collegamento avvia un processo fresco da dove l’ha lasciato e passa alla sessione immediatamente mentre il processo si riavvia. Le sessioni che stanno lavorando, in pausa su un prompt di permesso o un’altra finestra di dialogo, o fissate non sono fermate in questo modo, quindi fissa una sessione conCtrl+T per mantenerla reattiva.
Mentre il processo si avvia, Claude Code mostra la coda della trascrizione della sessione formattata nel modo in cui la sessione live la rende, con markdown, blocchi di codice evidenziati e chiamate di strumenti come righe attenuate, sopra un’area di prompt attenuata con una nota Session is starting. La sessione live la sostituisce non appena è pronta.
.claude/worktrees/ si sta riempiendo
L’eliminazione di una sessione in agent view rimuove il worktree che Claude ha creato per essa, ma alcuni elimina mantengono il worktree o lasciano la sua directory su disco, quindi le directory rimaste possono accumularsi. Le directory che git non riconosce più non appaiono in git worktree list, quindi rimuovile a mano.
Elenca le voci rimaste con git worktree list nella directory del progetto e rimuovi ognuna con git worktree remove <path>. Vedi Pulisci i worktrees.
Limitazioni
Agent view è un’anteprima di ricerca con le seguenti limitazioni:- I limiti di velocità si applicano: le sessioni in background consumano l’utilizzo dell’abbonamento allo stesso modo delle sessioni interattive, quindi eseguire dieci agenti in parallelo utilizza la quota approssimativamente dieci volte più velocemente rispetto all’esecuzione di uno.
- Le sessioni sono locali: le sessioni in background vengono eseguite sulla vostra macchina. Vengono preservate durante la sospensione ma si fermano se la macchina si spegne.
- I worktrees creati da Claude vengono eliminati con la sessione in agent view: unite i cambiamenti prima di eliminare una sessione che ha modificato file nel suo proprio worktree. Alcuni eliminazioni mantengono il worktree.
Risorse correlate
Per altri modi di eseguire Claude in parallelo, e per passare i risultati tra le sessioni che esegui, vedi:- Esegui agenti in parallelo: confronta agent view con subagenti, team di agenti e worktrees
- Messaggistica tra sessioni: fai in modo che le tue sessioni si passino i risultati l’una con l’altra
- Team di agenti: coordina più sessioni che si messaggiano l’una con l’altra
- Use Claude Code in the cloud: esegui sessioni in un ambiente cloud gestito invece che localmente
- Projects: fai in modo che Claude coordini sessioni cloud parallele da una conversazione e ti dica quali hai bisogno
Cronologia delle versioni
Agent view si è evoluto rapidamente durante l’anteprima di ricerca. Se sei su una versione più vecchia di Claude Code, alcuni comportamenti su questa pagina potrebbero differire; in particolare,claude agents rifiuta i flag che non supporta ancora con un errore di opzione sconosciuta. La tabella sottostante elenca quando ogni flag e comportamento è stato aggiunto.