SpyBara
Go Premium

Documentation 2026-10-02 22:59 UTC to 2026-10-03 14:58 UTC

44 files changed +1,394 −1,232. View all changes and history on the product overview
2026
Sat 3 16:02 Fri 2 22:59 Thu 1 23:59
Details

145Alcuni comportamenti non sono adattati per la modalità lettore di schermo:145Alcuni comportamenti non sono adattati per la modalità lettore di schermo:

146 146 

147* La modalità lettore di schermo non si attiva automaticamente quando un lettore di schermo è in esecuzione.147* La modalità lettore di schermo non si attiva automaticamente quando un lettore di schermo è in esecuzione.

148* Claude Code non annuncia un cambio di modalità di permesso effettuato in qualsiasi modo diverso dal ciclo con `Shift+Tab`, come l'ingresso in [plan mode](/docs/it/permission-modes#analyze-before-you-edit-with-plan-mode) da un comando.148* Claude Code non annuncia un cambio di modalità di permesso effettuato con un comando, come l'ingresso in [plan mode](/docs/it/permission-modes#analyze-before-you-edit-with-plan-mode) con `/plan`.

149* L'allegato a una [sessione in background](/docs/it/agent-view) con `claude attach` o dalla vista agente entra nello schermo alternativo del terminale, che non ha scrollback nativo. Questo è lo [stesso comportamento di altre sessioni allegate](/docs/it/fullscreen). Per uscire, premete la freccia sinistra su un prompt vuoto, o Ctrl+Z se una finestra di dialogo ha il focus.149* L'allegato a una [sessione in background](/docs/it/agent-view) con `claude attach` o dalla vista agente entra nello schermo alternativo del terminale, che non ha scrollback nativo. Questo è lo [stesso comportamento di altre sessioni allegate](/docs/it/fullscreen). Per uscire, premete la freccia sinistra su un prompt vuoto, o Ctrl+Z se una finestra di dialogo ha il focus.

150* Claude Code annuncia i costi nel riepilogo che stampa all'uscita, non per turno.150* Claude Code annuncia i costi nel riepilogo che stampa all'uscita, non per turno.

151* La modalità lettore di schermo non modifica la [modalità non interattiva](/docs/it/headless) con il flag `-p`. La modalità non interattiva scrive già testo semplice e rimane un'alternativa per lo scripting.151* La modalità lettore di schermo non modifica la [modalità non interattiva](/docs/it/headless) con il flag `-p`. La modalità non interattiva scrive già testo semplice e rimane un'alternativa per lo scripting.

Details

154| `PostToolUse` | Sì | Sì | Risultato dell'esecuzione dello strumento | Registrare tutte le modifiche ai file nel registro di controllo |154| `PostToolUse` | Sì | Sì | Risultato dell'esecuzione dello strumento | Registrare tutte le modifiche ai file nel registro di controllo |

155| `PostToolUseFailure` | Sì | Sì | Errore di esecuzione dello strumento | Gestire o registrare errori dello strumento |155| `PostToolUseFailure` | Sì | Sì | Errore di esecuzione dello strumento | Gestire o registrare errori dello strumento |

156| `PostToolBatch` | No | Sì | Un intero batch di chiamate a strumenti si risolve, una volta per batch prima della prossima chiamata al modello | Iniettare convenzioni una volta per l'intero batch |156| `PostToolBatch` | No | Sì | Un intero batch di chiamate a strumenti si risolve, una volta per batch prima della prossima chiamata al modello | Iniettare convenzioni una volta per l'intero batch |

157| `UserPromptSubmit` | Sì | Sì | Invio del prompt dell'utente | Iniettare contesto aggiuntivo nei prompt |157| [`UserPromptSubmit`](/docs/it/hooks#userpromptsubmit) | Sì | Sì | Viene inviato un prompt, incluso un turno che Claude Code avvia da solo | Iniettare contesto aggiuntivo nei prompt |

158| [`UserPromptExpansion`](/docs/it/hooks#userpromptexpansion) | No | Sì | Un comando digitato dall'utente, o un prompt MCP, si espande in un prompt prima di raggiungere Claude. Non si attiva quando Claude invoca una skill da solo | Bloccare un comando dall'invocazione diretta o aggiungere contesto quando viene digitata una skill |158| [`UserPromptExpansion`](/docs/it/hooks#userpromptexpansion) | No | Sì | Un comando digitato dall'utente, o un prompt MCP, si espande in un prompt prima di raggiungere Claude. Non si attiva quando Claude invoca una skill da solo | Bloccare un comando dall'invocazione diretta o aggiungere contesto quando viene digitata una skill |

159| `MessageDisplay` | No | Sì | Un messaggio dell'assistente con testo si completa, una volta per messaggio con il testo completo del messaggio | Oscurare o riformattare il testo visualizzato senza modificare la trascrizione |159| `MessageDisplay` | No | Sì | Un messaggio dell'assistente con testo si completa, una volta per messaggio con il testo completo del messaggio | Oscurare o riformattare il testo visualizzato senza modificare la trascrizione |

160| `Stop` | Sì | Sì | Arresto dell'esecuzione dell'agente | Salvare lo stato della sessione prima dell'uscita |160| `Stop` | Sì | Sì | Arresto dell'esecuzione dell'agente | Salvare lo stato della sessione prima dell'uscita |

Details

2241 "PreToolUse", # Called before tool execution2241 "PreToolUse", # Called before tool execution

2242 "PostToolUse", # Called after tool execution2242 "PostToolUse", # Called after tool execution

2243 "PostToolUseFailure", # Called when a tool execution fails2243 "PostToolUseFailure", # Called when a tool execution fails

2244 "UserPromptSubmit", # Called when user submits a prompt2244 "UserPromptSubmit", # Called when a prompt is submitted

2245 "Stop", # Called when stopping execution2245 "Stop", # Called when stopping execution

2246 "SubagentStop", # Called when a subagent stops2246 "SubagentStop", # Called when a subagent stops

2247 "PreCompact", # Called before message compaction2247 "PreCompact", # Called before message compaction


2443| Campo | Tipo | Descrizione |2443| Campo | Tipo | Descrizione |

2444| :- | :- | :- |2444| :- | :- | :- |

2445| `hook_event_name` | `Literal["UserPromptSubmit"]` | Sempre "UserPromptSubmit" |2445| `hook_event_name` | `Literal["UserPromptSubmit"]` | Sempre "UserPromptSubmit" |

2446| `prompt` | `str` | Il prompt inviato dall'utente |2446| `prompt` | `str` | Il prompt inviato |

2447 2447 

2448<h3 id="stophookinput">2448<h3 id="stophookinput">

2449 `StopHookInput`2449 `StopHookInput`

Details

275| `options.version` | `string` | Stringa di versione opzionale |275| `options.version` | `string` | Stringa di versione opzionale |

276| `options.instructions` | `string` | Istruzioni del server opzionali, restituite da `initialize` e presentate al modello come un blocco di istruzioni MCP |276| `options.instructions` | `string` | Istruzioni del server opzionali, restituite da `initialize` e presentate al modello come un blocco di istruzioni MCP |

277| `options.tools` | `Array<SdkMcpToolDefinition>` | Array di definizioni di tool create con [`tool()`](#tool) |277| `options.tools` | `Array<SdkMcpToolDefinition>` | Array di definizioni di tool create con [`tool()`](#tool) |

278| `options.alwaysLoad` | `boolean` | Quando `true`, ogni tool da questo server rimane nel prompt iniziale e non viene mai differito dietro [tool search](/docs/it/agent-sdk/tool-search). Si combina con `alwaysLoad` per tool in [`tool()`](#tool) |278| `options.alwaysLoad` | `boolean` | Quando `true`, ogni strumento di questo server rimane nel prompt iniziale invece di essere differito dietro la [ricerca degli strumenti](/docs/it/agent-sdk/tool-search). Si combina con `alwaysLoad` per singolo strumento in [`tool()`](#tool) |

279| `options.timeout` | `number` | Timeout in millisecondi per le chiamate ai tool di questo server. Claude Code lo applica a questo server al posto di [`MCP_TOOL_TIMEOUT`](/docs/it/env-vars). Passa un numero intero di almeno 1000. Claude Code ignora altri valori. Richiede TypeScript Agent SDK v0.3.248 o successivo |279| `options.timeout` | `number` | Timeout in millisecondi per le chiamate ai tool di questo server. Claude Code lo applica a questo server al posto di [`MCP_TOOL_TIMEOUT`](/docs/it/env-vars). Passa un numero intero di almeno 1000. Claude Code ignora altri valori. Richiede TypeScript Agent SDK v0.3.248 o successivo |

280 280 

281<h3 id="listsessions">281<h3 id="listsessions">

agent-teams.md +1 −1

Details

91* **Invio**: aprire la trascrizione del compagno di team selezionato e messaggiargli direttamente91* **Invio**: aprire la trascrizione del compagno di team selezionato e messaggiargli direttamente

92* **Escape**: cancellare la selezione. Mentre state visualizzando la trascrizione di un compagno di team, Escape interrompe il turno corrente di quel compagno di team92* **Escape**: cancellare la selezione. Mentre state visualizzando la trascrizione di un compagno di team, Escape interrompe il turno corrente di quel compagno di team

93 93 

94A partire dalla v2.1.199, la riga di un compagno di team inattivo rimane nel pannello mentre qualsiasi compagno di team o subagente è ancora al lavoro, quindi potete selezionarlo per rivedere la sua trascrizione o assegnargli più lavoro. Una volta che ogni agente nel pannello è inattivo, le righe inattive si nascondono dopo 30 secondi e riappaiono al turno successivo del compagno di team; il compagno di team rimane in esecuzione e indirizzabile mentre nascosto. Nella v2.1.181 fino alla v2.1.198, una riga inattiva si nascondeva 30 secondi dopo la fine del suo turno, anche mentre altri compagni di team erano ancora al lavoro; le righe inattive non sono nascoste nelle versioni precedenti alla v2.1.181.94La riga di un compagno di team inattivo rimane nel pannello mentre qualsiasi compagno di team o subagent è ancora al lavoro, quindi puoi selezionarla per rivedere la sua trascrizione o assegnargli altro lavoro. Una volta che ogni agente nel pannello è inattivo, le righe inattive si nascondono dopo 30 secondi e riappaiono al turno successivo del compagno di team; il compagno di team rimane in esecuzione e raggiungibile mentre è nascosto.

95 95 

96Quando più di tre compagni di team sono inattivi contemporaneamente, le righe oltre le prime tre si comprimono in una singola riga che conta i compagni di team compressi, come `2 idle agents` quando cinque sono inattivi. Selezionatela e premete Invio per espandere le righe compresse, oppure premete Esc per comprimerle di nuovo. I compagni di team al lavoro, i compagni di team non riusciti, e il compagno di team che state visualizzando mantengono sempre le loro righe proprie.96Quando più di tre compagni di team sono inattivi contemporaneamente, le righe oltre le prime tre si comprimono in una singola riga che conta i compagni di team compressi, come `2 idle agents` quando cinque sono inattivi. Selezionatela e premete Invio per espandere le righe compresse, oppure premete Esc per comprimerle di nuovo. I compagni di team al lavoro, i compagni di team non riusciti, e il compagno di team che state visualizzando mantengono sempre le loro righe proprie.

97 97 

champion-kit.md +6 −6

Details

50Esempi di tecniche riutilizzabili:50Esempi di tecniche riutilizzabili:

51 51 

52* "Ho imparato che @-menzionare una directory funziona. Puntandola a `@src/components/` e chiedendo quali mancavano di test, ho scoperto due che avevo trascurato."52* "Ho imparato che @-menzionare una directory funziona. Puntandola a `@src/components/` e chiedendo quali mancavano di test, ho scoperto due che avevo trascurato."

53* "Plan mode (`Shift+Tab`) mostra esattamente quali file verranno toccati prima di qualsiasi modifica, ecco perché sono a mio agio nell'usarlo su codice condiviso."53* "Plan mode (`Shift+Tab`) presenta prima le modifiche proposte, ecco perché sono a mio agio nell'usarlo su codice condiviso."

54* "Ho configurato un hook Stop in modo da ricevere una notifica desktop quando un'attività lunga si completa. La configurazione è nel thread."54* "Ho configurato un hook Stop in modo da ricevere una notifica desktop quando un'attività lunga si completa. La configurazione è nel thread."

55* "Eseguire `/init` genera un `CLAUDE.md` dal repository in modo che l'assistente smetta di chiedere di nuovo delle nostre convenzioni."55* "Eseguire `/init` genera un `CLAUDE.md` dal repository in modo che l'assistente smetta di chiedere di nuovo delle nostre convenzioni."

56 56 


89 89 

90```text theme={null}90```text theme={null}

91Plan mode è il motivo per cui sono a mio agio nell'usare questo su codice91Plan mode è il motivo per cui sono a mio agio nell'usare questo su codice

92che conta. Premi Shift+Tab finché non vedi "plan"; mostra esattamente quali92che conta. Premi Shift+Tab finché non vedi "plan"; presenta le modifiche

93file intende toccare prima di cambiare qualcosa.93che propone senza modificare il tuo codice sorgente.

94```94```

95 95 

96<h2 id="be-the-person-people-ask">96<h2 id="be-the-person-people-ask">


126| Domanda | Risposta suggerita | Risorsa di follow-up |126| Domanda | Risposta suggerita | Risorsa di follow-up |

127| - | - | - |127| - | - | - |

128| "Su cosa dovrei provarlo per primo?" | Consiglia un compito reale ma contenuto, idealmente un bug o una chore che la persona ha rimandato perché è noioso piuttosto che difficile. | [Common workflows](/docs/it/common-workflows) |128| "Su cosa dovrei provarlo per primo?" | Consiglia un compito reale ma contenuto, idealmente un bug o una chore che la persona ha rimandato perché è noioso piuttosto che difficile. | [Common workflows](/docs/it/common-workflows) |

129| "Come faccio a fidarmi di lui con il mio codice?" | Introduci plan mode: premendo `Shift+Tab` si entra, Claude propone esattamente cosa intende cambiare, e nulla viene modificato fino all'approvazione dell'utente. | [Permissions](/docs/it/permissions) |129| "Come faccio a fidarmi di lui con il mio codice?" | Introduci plan mode: premendo `Shift+Tab` ci si arriva ciclicamente, e Claude esegue ricerche e propone modifiche senza modificare il tuo codice sorgente. | [Permissions](/docs/it/permissions) |

130| "Vale la pena lo sforzo di configurazione?" | L'installazione richiede circa due minuti, viene eseguita nel terminale e non richiede alcuna estensione IDE. Eseguire `/init` una volta è sufficiente per iniziare a lavorare. | [Quickstart](/docs/it/quickstart) |130| "Vale la pena lo sforzo di configurazione?" | L'installazione richiede circa due minuti, viene eseguita nel terminale e non richiede alcuna estensione IDE. Eseguire `/init` una volta è sufficiente per iniziare a lavorare. | [Quickstart](/docs/it/quickstart) |

131| "Ha prodotto un risultato errato." | Incoraggiali a fornire il fallimento a Claude. Incollare il messaggio di errore o il test fallito è molto più efficace che riformulare la richiesta originale. | [Common workflows](/docs/it/common-workflows) |131| "Ha prodotto un risultato errato." | Incoraggiali a fornire il fallimento a Claude. Incollare il messaggio di errore o il test fallito è molto più efficace che riformulare la richiesta originale. | [Common workflows](/docs/it/common-workflows) |

132| "Non comprende le convenzioni del nostro codebase." | Suggerisci di eseguire `/init` per generare un file `CLAUDE.md`, quindi aggiungi le convenzioni del team, i comandi di test e qualsiasi directory che dovrebbe essere evitata. | [Memory](/docs/it/memory) |132| "Non comprende le convenzioni del nostro codebase." | Suggerisci di eseguire `/init` per generare un file `CLAUDE.md`, quindi aggiungi le convenzioni del team, i comandi di test e qualsiasi directory che dovrebbe essere evitata. | [Memory](/docs/it/memory) |


199| Preoccupazione | Risposta suggerita | Evidenza da offrire |199| Preoccupazione | Risposta suggerita | Evidenza da offrire |

200| - | - | - |200| - | - | - |

201| "Sono più veloce senza di esso." | È probabile che sia vero per il codice che la persona scrive abitualmente. Suggerisci di provarlo sul lavoro che tendono a evitare: file legacy, servizi sconosciuti o scaffolding di test, dove la leva è più alta. | Cronometra un compito noioso in entrambi i modi e confronta. |201| "Sono più veloce senza di esso." | È probabile che sia vero per il codice che la persona scrive abitualmente. Suggerisci di provarlo sul lavoro che tendono a evitare: file legacy, servizi sconosciuti o scaffolding di test, dove la leva è più alta. | Cronometra un compito noioso in entrambi i modi e confronta. |

202| "Non mi fido dell'IA per toccare il codice di produzione." | Accorda che nessun cambiamento dovrebbe arrivare senza essere letto. Plan mode combinato con la normale revisione diff significa che nulla viene applicato che l'ingegnere non ha ispezionato, lo stesso standard di qualsiasi pull request. | Dimostra plan mode su un file reale. |202| "Non mi fido dell'IA per toccare il codice di produzione." | Accorda che nessun cambiamento dovrebbe arrivare senza essere letto. Suggerisci il plan mode per vedere prima le modifiche proposte, poi esamina il diff con lo stesso standard di qualsiasi pull request. | Dimostra plan mode su un file reale. |

203| "Renderà gli ingegneri junior più deboli." | Usato bene, è un efficace spiegatore. Incoraggia gli ingegneri junior a chiedere a Claude di spiegare un file e i suoi siti di chiamata prima di chiedere di cambiare qualcosa. | Esegui "Spiega @file e dove viene chiamato da" insieme. |203| "Renderà gli ingegneri junior più deboli." | Usato bene, è un efficace spiegatore. Incoraggia gli ingegneri junior a chiedere a Claude di spiegare un file e i suoi siti di chiamata prima di chiedere di cambiare qualcosa. | Esegui "Spiega @file e dove viene chiamato da" insieme. |

204| "Ho provato una volta e ha allucinato." | Questo è solitamente un problema di contesto piuttosto che un problema di modello. @-menzionare i file rilevanti, eseguire `/init` e fornire l'output di errore effettivo di solito lo risolve. | Riesegui il loro prompt originale con il contesto `@` appropriato. |204| "Ho provato una volta e ha allucinato." | Questo è solitamente un problema di contesto piuttosto che un problema di modello. @-menzionare i file rilevanti, eseguire `/init` e fornire l'output di errore effettivo di solito lo risolve. | Riesegui il loro prompt originale con il contesto `@` appropriato. |

205| "Non abbiamo tempo per imparare un altro strumento." | Claude Code è un comando di terminale piuttosto che una piattaforma. Se non restituisce valore nella prima sessione, è ragionevole metterlo da parte. | Un'installazione di due minuti seguita da un bug reale. |205| "Non abbiamo tempo per imparare un altro strumento." | Claude Code è un comando di terminale piuttosto che una piattaforma. Se non restituisce valore nella prima sessione, è ragionevole metterlo da parte. | Un'installazione di due minuti seguita da un bug reale. |


213| Tecnica | Come applicarla |213| Tecnica | Come applicarla |

214| - | - |214| - | - |

215| Fornisci il contesto giusto | Usa riferimenti `@file` o `@directory/`, o incolla direttamente l'output di errore o log. Fornire il contesto rilevante è più efficace che un prompt elaborato. |215| Fornisci il contesto giusto | Usa riferimenti `@file` o `@directory/`, o incolla direttamente l'output di errore o log. Fornire il contesto rilevante è più efficace che un prompt elaborato. |

216| Rivedi il piano prima della modifica | Premi `Shift+Tab` per entrare in plan mode. Claude descriverà i cambiamenti previsti per la tua approvazione prima di eseguirli. |216| Rivedi il piano prima della modifica | Premi `Shift+Tab` per entrare in plan mode. Claude esegue ricerche e propone modifiche senza modificare il tuo codice sorgente. |

217| Insegnagli il tuo repository | Esegui `/init` per generare un file `CLAUDE.md`, quindi aggiungi le tue convenzioni, i comandi di test e qualsiasi directory che non dovrebbe essere modificata. Vedi [Memory](/docs/it/memory). |217| Insegnagli il tuo repository | Esegui `/init` per generare un file `CLAUDE.md`, quindi aggiungi le tue convenzioni, i comandi di test e qualsiasi directory che non dovrebbe essere modificata. Vedi [Memory](/docs/it/memory). |

218| Riutilizza un flusso di lavoro | Salva un file `SKILL.md` in `.claude/skills/<name>/` per creare una skill `/name` che l'intero team può utilizzare. Vedi [Skills](/docs/it/skills). |218| Riutilizza un flusso di lavoro | Salva un file `SKILL.md` in `.claude/skills/<name>/` per creare una skill `/name` che l'intero team può utilizzare. Vedi [Skills](/docs/it/skills). |

219| Rimani informato durante i compiti lunghi | Configura un hook Stop per ricevere una notifica desktop quando un'attività di lunga durata si completa. Vedi [Hooks](/docs/it/hooks-guide). |219| Rimani informato durante i compiti lunghi | Configura un hook Stop per ricevere una notifica desktop quando un'attività di lunga durata si completa. Vedi [Hooks](/docs/it/hooks-guide). |

channels.md +1 −1

Details

349 349 

350Se imposti un array vuoto, blocchi tutti i plugin di canale dall'allowlist, ma `--dangerously-load-development-channels` può comunque bypassarlo per i test locali. Per bloccare i canali interamente incluso il flag di sviluppo, lascia invece `channelsEnabled` non impostato.350Se imposti un array vuoto, blocchi tutti i plugin di canale dall'allowlist, ma `--dangerously-load-development-channels` può comunque bypassarlo per i test locali. Per bloccare i canali interamente incluso il flag di sviluppo, lascia invece `channelsEnabled` non impostato.

351 351 

352Questa impostazione richiede `channelsEnabled: true`. Se un utente passa un plugin a `--channels` che non è nel tuo elenco, Claude Code si avvia normalmente ma il canale non si registra, e l'avviso di avvio spiega che il plugin non è nell'elenco approvato dell'organizzazione. Se imposti `MCP_PROTOCOL_NEGOTIATION` su `auto` nel runtime del client MCP v2, un canale può anche non registrarsi perché Claude Code [non registra un server di canale che negozia la revisione del protocollo 2026-07-28](/docs/it/mcp#push-messages-with-channels).352Questa impostazione richiede `channelsEnabled: true`. Se un utente passa un plugin a `--channels` che non è nel tuo elenco, Claude Code si avvia normalmente ma il canale non si registra, e l'avviso di avvio spiega che il plugin non è nell'elenco approvato dell'organizzazione. Nel runtime del client MCP v2, un canale può anche non registrarsi perché Claude Code [non registra un server di canale che negozia la revisione del protocollo 2026-07-28](/docs/it/mcp#push-messages-with-channels).

353 353 

354<h2 id="research-preview">354<h2 id="research-preview">

355 Anteprima di ricerca355 Anteprima di ricerca

chrome.md +1 −1

Details

130In una sessione VS Code, il fatto che Claude Code ti chieda conferma prima di un'azione del browser dipende da come la sessione si è connessa al tuo browser:130In una sessione VS Code, il fatto che Claude Code ti chieda conferma prima di un'azione del browser dipende da come la sessione si è connessa al tuo browser:

131 131 

132* **Hai digitato `@browser`**: l'estensione approva ogni azione del browser per cui Claude Code altrimenti ti chiederebbe conferma.132* **Hai digitato `@browser`**: l'estensione approva ogni azione del browser per cui Claude Code altrimenti ti chiederebbe conferma.

133* **L'impostazione [Enabled by default](#enable-chrome-by-default) l'ha connessa all'avvio**: Claude Code ti chiede conferma prima delle azioni del browser nelle modalità Manual, Edit automatically, Auto e Bypass permissions, finché non digiti `@browser` in quella sessione.133* **L'impostazione [Enabled by default](#enable-chrome-by-default) l'ha connessa all'avvio**: Claude Code ti chiede conferma prima delle azioni del browser su un sito che non hai consentito, nelle modalità Manual, Edit automatically, Auto e Bypass permissions, finché non digiti `@browser` in quella sessione.

134 134 

135<h3 id="browser-tools-in-plan-mode">135<h3 id="browser-tools-in-plan-mode">

136 Strumenti del browser in plan mode136 Strumenti del browser in plan mode

Details

79| Campo | Obbligatorio | Descrizione |79| Campo | Obbligatorio | Descrizione |

80| - | - | - |80| - | - | - |

81| `issuer` | Sì | Base di scoperta OIDC. Deve servire la scoperta su `/.well-known/openid-configuration`. Usa HTTPS in produzione; il gateway accetta un emittente `http://`. Un emittente loopback come `http://localhost:8081` è rifiutato dalla [guardia SSRF](/docs/it/claude-apps-gateway-deploy#threat-model-summary) a meno che `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` non sia impostato nell'ambiente del gateway. |81| `issuer` | Sì | Base di scoperta OIDC. Deve servire la scoperta su `/.well-known/openid-configuration`. Usa HTTPS in produzione; il gateway accetta un emittente `http://`. Un emittente loopback come `http://localhost:8081` è rifiutato dalla [guardia SSRF](/docs/it/claude-apps-gateway-deploy#threat-model-summary) a meno che `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` non sia impostato nell'ambiente del gateway. |

82| `client_id` / `client_secret` | Sì | Dalla tua registrazione del client OAuth |82| `client_id` | Sì | Dalla tua registrazione del client OAuth |

83| `client_secret` | A meno che `token_endpoint_auth_method` non sia `private_key_jwt` | Dalla tua registrazione del client OAuth. Omettilo quando usi l'[autenticazione del client con certificato](#certificate-client-authentication). |

83| `allowed_email_domains` | No | Rifiuta gli id\_token il cui claim `email` non è in uno di questi domini, senza distinzione tra maiuscole e minuscole. Difesa in profondità contro la configurazione errata dell'IdP multi-tenant. Indipendentemente da questa impostazione, un id\_token il cui claim `email_verified` è esplicitamente `false` è sempre rifiutato. |84| `allowed_email_domains` | No | Rifiuta gli id\_token il cui claim `email` non è in uno di questi domini, senza distinzione tra maiuscole e minuscole. Difesa in profondità contro la configurazione errata dell'IdP multi-tenant. Indipendentemente da questa impostazione, un id\_token il cui claim `email_verified` è esplicitamente `false` è sempre rifiutato. |

84| `allowed_groups` | No | Limita l'accesso ai membri di questi gruppi IdP, abbinati rispetto a `groups_claim`. Un utente in un dominio email consentito ma in nessuno di questi gruppi è rifiutato. Richiede che l'IdP emetta il claim dei gruppi. L'abbinamento è un confronto di stringhe esatto e case-sensitive rispetto ai valori in quel claim, e il gateway non espande i gruppi annidati: per ammettere i membri di un sottogruppo, elenca il sottogruppo qui o configura l'IdP per emettere l'appartenenza appiattita. |85| `allowed_groups` | No | Limita l'accesso ai membri di questi gruppi IdP, abbinati rispetto a `groups_claim`. Un utente in un dominio email consentito ma in nessuno di questi gruppi è rifiutato. Richiede che l'IdP emetta il claim dei gruppi. L'abbinamento è un confronto di stringhe esatto e case-sensitive rispetto ai valori in quel claim, e il gateway non espande i gruppi annidati: per ammettere i membri di un sottogruppo, elenca il sottogruppo qui o configura l'IdP per emettere l'appartenenza appiattita. |

85| `groups_claim` | No | Quale claim dell'id\_token porta l'appartenenza al gruppo. Predefinito `groups`. Microsoft Entra emette i ruoli dell'app sotto `roles`. Accetta una chiave flat o un JSON Pointer RFC 6901 come `/resource_access/gateway/roles` per i claim annidati. |86| `groups_claim` | No | Quale claim dell'id\_token porta l'appartenenza al gruppo. Predefinito `groups`. Microsoft Entra emette i ruoli dell'app sotto `roles`. Accetta una chiave flat o un JSON Pointer RFC 6901 come `/resource_access/gateway/roles` per i claim annidati. |


91| `userinfo_fallback` | No | Quando l'id\_token omette email o gruppi, recuperali da `/userinfo`. Necessario per i token di accesso leggeri di Keycloak, il server org di Okta e i token minimi di ADFS. L'id\_token rimane autorevole; userinfo riempie solo i vuoti. Predefinito `false`. |92| `userinfo_fallback` | No | Quando l'id\_token omette email o gruppi, recuperali da `/userinfo`. Necessario per i token di accesso leggeri di Keycloak, il server org di Okta e i token minimi di ADFS. L'id\_token rimane autorevole; userinfo riempie solo i vuoti. Predefinito `false`. |

92| `use_pkce` | No | Invia una sfida PKCE (S256) sulla richiesta di autorizzazione. Predefinito `true`. Imposta `false` solo se il tuo IdP rifiuta PKCE per questo client confidenziale. |93| `use_pkce` | No | Invia una sfida PKCE (S256) sulla richiesta di autorizzazione. Predefinito `true`. Imposta `false` solo se il tuo IdP rifiuta PKCE per questo client confidenziale. |

93| `clock_skew_seconds` | No | Tollera la deriva dell'orologio quando si convalidano i claim temporali dell'id\_token. Predefinito `0`, che è rigoroso. Aumentalo se vedi errori "token scaduto / non ancora valido" subito dopo l'accesso a causa della deriva dell'orologio tra host e IdP. |94| `clock_skew_seconds` | No | Tollera la deriva dell'orologio quando si convalidano i claim temporali dell'id\_token. Predefinito `0`, che è rigoroso. Aumentalo se vedi errori "token scaduto / non ancora valido" subito dopo l'accesso a causa della deriva dell'orologio tra host e IdP. |

94| `token_endpoint_auth_method` | No | Override del metodo di autenticazione dell'endpoint del token. Accetta `client_secret_basic` o `client_secret_post`. Negoziato automaticamente per impostazione predefinita. |95| `token_endpoint_auth_method` | No | Come il gateway si autentica presso l'endpoint del token dell'IdP: `client_secret_basic`, `client_secret_post` o `private_key_jwt` per l'[autenticazione del client con certificato](#certificate-client-authentication). Per impostazione predefinita il gateway sceglie uno dei due metodi `client_secret` in base a ciò che l'IdP dichiara. |

96| `client_assertion` | Con `private_key_jwt` | Un blocco con `private_key_pem` e `certificate_pem`: la chiave privata e il certificato per l'[autenticazione del client con certificato](#certificate-client-authentication). Richiede v2.1.284 o successivo. |

95| `id_token_signed_response_alg` | No | Algoritmo di firma dell'id\_token previsto. Predefinito `RS256`. Impostalo per gli IdP che firmano con ES256, PS256 o EdDSA. |97| `id_token_signed_response_alg` | No | Algoritmo di firma dell'id\_token previsto. Predefinito `RS256`. Impostalo per gli IdP che firmano con ES256, PS256 o EdDSA. |

96| `additional_authorized_parties` | No | Valori `azp` extra da accettare oltre a `client_id`, per i flussi di broker e scambio di token di Keycloak |98| `additional_authorized_parties` | No | Valori `azp` extra da accettare oltre a `client_id`, per i flussi di broker e scambio di token di Keycloak |

97| `discovery_url` | No | Recupera il documento di scoperta da questo URL invece di derivarlo da `issuer`, per gli IdP dietro un proxy che riscrive l'host dell'emittente. Il percorso deve contenere `/.well-known/`. |99| `discovery_url` | No | Recupera il documento di scoperta da questo URL invece di derivarlo da `issuer`, per gli IdP dietro un proxy che riscrive l'host dell'emittente. Il percorso deve contenere `/.well-known/`. |


99| `form_action_origins` | No | Origini aggiuntive per la direttiva `Content-Security-Policy: form-action` della pagina `/device`. Il gateway consente già `'self'` e l'origine dell'`authorization_endpoint` scoperta, ma Chrome applica `form-action` all'intera catena di reindirizzamento. Se il tuo IdP reindirizza attraverso un secondo host, come Azure AD federato ad ADFS, Okta hub-spoke o un intercettore SSO aziendale, elenca ogni origine attraverso cui la richiesta di autorizzazione può essere reindirizzata. |101| `form_action_origins` | No | Origini aggiuntive per la direttiva `Content-Security-Policy: form-action` della pagina `/device`. Il gateway consente già `'self'` e l'origine dell'`authorization_endpoint` scoperta, ma Chrome applica `form-action` all'intera catena di reindirizzamento. Se il tuo IdP reindirizza attraverso un secondo host, come Azure AD federato ad ADFS, Okta hub-spoke o un intercettore SSO aziendale, elenca ogni origine attraverso cui la richiesta di autorizzazione può essere reindirizzata. |

100| `ca_cert_pem` | No | Il certificato CA codificato in PEM stesso, non un percorso a un file. Sostituisce l'archivio di attendibilità del sistema solo per le richieste IdP. Per caricare un file montato, scrivi `${file:/etc/gateway/idp-ca.pem}`. Usalo per Keycloak o Dex dietro una PKI aziendale. |102| `ca_cert_pem` | No | Il certificato CA codificato in PEM stesso, non un percorso a un file. Sostituisce l'archivio di attendibilità del sistema solo per le richieste IdP. Per caricare un file montato, scrivi `${file:/etc/gateway/idp-ca.pem}`. Usalo per Keycloak o Dex dietro una PKI aziendale. |

101 103 

104<h4 id="certificate-client-authentication">

105 Autenticazione del client con certificato

106</h4>

107 

108Se il tuo provider di identità autentica i client OAuth con un certificato invece che con un client secret, come fa Microsoft Entra con le credenziali basate su certificato, imposta `token_endpoint_auth_method: private_key_jwt`. Richiede Claude Code v2.1.284 o successivo sul server del gateway.

109 

110Con questa configurazione il gateway non invia alcun segreto. Si autentica presso l'endpoint del token dell'IdP con un JWT a breve durata firmato con la chiave privata del certificato quando uno sviluppatore accede e ogni volta che il gateway aggiorna la sua sessione. Il JWT è firmato con RS256 e identifica il certificato tramite gli header di thumbprint `x5t` e `x5t#S256` anziché tramite un `kid`. Il tuo IdP deve essere in grado di trovare il certificato registrato tramite thumbprint.

111 

112<Steps>

113 <Step title="Crea la chiave e il certificato">

114 Crea una chiave privata RSA non cifrata di almeno 2048 bit, in formato PEM PKCS#8 o PKCS#1, e un certificato per essa. Il gateway si rifiuta di avviarsi con qualsiasi chiave che non soddisfi queste condizioni. Questo comando `openssl` crea una chiave di questo tipo con un certificato autofirmato valido per un anno:

115 

116 ```bash theme={null}

117 openssl req -x509 -newkey rsa:2048 -nodes -keyout idp-client.key -out idp-client.crt -days 365 -subj "/CN=claude-gateway"

118 ```

119 

120 Scrive `idp-client.key` e `idp-client.crt` nella directory corrente. Copia o monta entrambi i file dove il gateway può leggerli. L'esempio del passaggio 3 usa `/etc/gateway/`.

121 </Step>

122 

123 <Step title="Carica il certificato sull'IdP">

124 Carica il certificato, non la chiave privata, nella registrazione dell'app del gateway presso l'IdP.

125 </Step>

126 

127 <Step title="Aggiungi la chiave e il certificato a gateway.yaml">

128 Fornisci al gateway la chiave privata e il certificato in un blocco `client_assertion`. Ometti `client_secret`, perché il gateway si rifiuta di avviarsi quando è impostato insieme a `private_key_jwt`. Questo blocco `oidc` autentica il gateway presso un tenant Microsoft Entra con un certificato:

129 

130 ```yaml theme={null}

131 oidc:

132 issuer: https://login.microsoftonline.com/<tenant-id>/v2.0

133 client_id: <application-id>

134 token_endpoint_auth_method: private_key_jwt

135 client_assertion:

136 private_key_pem: ${file:/etc/gateway/idp-client.key}

137 certificate_pem: ${file:/etc/gateway/idp-client.crt}

138 ```

139 

140 Entrambi i valori sono il contenuto PEM, non percorsi di file, quindi carica i file montati con `${file:/path}` come fa l'esempio. Il gateway si rifiuta di avviarsi a meno che `certificate_pem` non sia un singolo certificato PEM, senza il resto della sua catena, la cui chiave pubblica corrisponde a `private_key_pem`.

141 </Step>

142 

143 <Step title="Riavvia il gateway e controlla il log di avvio">

144 Riavvia il gateway e trova questa riga nel log di avvio:

145 

146 ```text theme={null}

147 [gateway] 2026-10-01T23:07:40.512Z info oidc: client authentication private_key_jwt; certificate CN=claude-gateway, SHA-1 thumbprint DE92821854EE8BAA1D98C758FAA04AABE80B9F57, expires Oct 1 23:07:31 2027 GMT

148 ```

149 

150 Confronta il thumbprint SHA-1 con quello che l'IdP mostra per il certificato che hai caricato. Se il certificato è scaduto o non è ancora valido, il gateway si avvia comunque ma registra un avviso che gli accessi e gli aggiornamenti falliranno finché non lo sostituisci. Per confermare che l'IdP accetta il certificato, fai accedere uno sviluppatore tramite il gateway.

151 </Step>

152</Steps>

153 

154<h4 id="rotate-the-client-certificate">

155 Ruotare il certificato del client

156</h4>

157 

158Il gateway legge la chiave e il certificato una sola volta all'avvio, quindi un file modificato ha effetto solo dopo un riavvio. Esegui la rotazione in questo ordine in modo che nessuna richiesta di token presenti un certificato che l'IdP non ha:

159 

1601. Carica il nuovo certificato sull'IdP accanto a quello vecchio.

1612. Sostituisci i file della chiave e del certificato che `gateway.yaml` carica, quindi riavvia il gateway.

1623. Rimuovi il vecchio certificato dall'IdP.

163 

102<h4 id="idp-requests-through-a-forward-proxy">164<h4 id="idp-requests-through-a-forward-proxy">

103 Richieste IdP attraverso un forward proxy165 Richieste IdP attraverso un forward proxy

104</h4>166</h4>


1224| - | - | - | - |1286| - | - | - | - |

1225| `access_control` | `allow_cidrs` / `deny_cidrs` | vuoto | Consenso/negazione degli IP in entrata per indirizzo client, dopo la risoluzione di `trusted_proxies`. `deny_cidrs` viene controllato per primo; un client a cui corrisponde viene rifiutato anche se corrisponde anche `allow_cidrs`. Se `allow_cidrs` non è vuoto, il gateway nega per impostazione predefinita. `/healthz` e `/readyz` sono esenti da `allow_cidrs`. Quando un proxy attendibile invia una voce `X-Forwarded-For` che non è un indirizzo IP, il client reale è sconosciuto e il gateway registra una sola volta un avviso che indica cosa controllare. Dove uno dei due elenchi si applica alla richiesta, la rifiuta con `403` e motivo di audit `xff_unparseable`. Dove nessuno dei due si applica, serve la richiesta e usa l'indirizzo del proxy stesso come IP del client per i rate limit per IP e per l'audit. |1287| `access_control` | `allow_cidrs` / `deny_cidrs` | vuoto | Consenso/negazione degli IP in entrata per indirizzo client, dopo la risoluzione di `trusted_proxies`. `deny_cidrs` viene controllato per primo; un client a cui corrisponde viene rifiutato anche se corrisponde anche `allow_cidrs`. Se `allow_cidrs` non è vuoto, il gateway nega per impostazione predefinita. `/healthz` e `/readyz` sono esenti da `allow_cidrs`. Quando un proxy attendibile invia una voce `X-Forwarded-For` che non è un indirizzo IP, il client reale è sconosciuto e il gateway registra una sola volta un avviso che indica cosa controllare. Dove uno dei due elenchi si applica alla richiesta, la rifiuta con `403` e motivo di audit `xff_unparseable`. Dove nessuno dei due si applica, serve la richiesta e usa l'indirizzo del proxy stesso come IP del client per i rate limit per IP e per l'audit. |

1226| `limits` | `max_request_bytes` | 32 MiB | Dimensione massima del corpo della richiesta in entrata; le richieste troppo grandi ottengono `413` prima che il corpo venga bufferizzato. Aumentalo per richieste con file o immagini di grandi dimensioni. |1288| `limits` | `max_request_bytes` | 32 MiB | Dimensione massima del corpo della richiesta in entrata; le richieste troppo grandi ottengono `413` prima che il corpo venga bufferizzato. Aumentalo per richieste con file o immagini di grandi dimensioni. |

1227| `limits` | `max_request_header_bytes` | non impostato | Quando impostato, le intestazioni troppo grandi restituiscono `431` |1289| `limits` | `max_request_header_bytes` | non impostato | Riduce il limite di 256 KiB del gateway sulle intestazioni totali di una richiesta. Una richiesta che supera il limite restituisce `431`, e un valore superiore a 256 KiB non ha effetto. Se gli sviluppatori ottengono `431` dopo aver effettuato l'accesso, vedi [Intestazioni della richiesta troppo grandi dopo l'accesso](/docs/it/claude-apps-gateway-deploy#request-headers-too-large-after-sign-in). |

1228| `limits` | `max_url_length` | non impostato | Quando impostato, un URL troppo lungo restituisce `414` |1290| `limits` | `max_url_length` | non impostato | Quando impostato, un URL troppo lungo restituisce `414` |

1229| `timeouts` | `upstream_ttfb_ms` | 120000 | Attesa massima per le intestazioni di risposta dell'upstream (tempo al primo byte). Il corpo della risposta viene poi trasmesso in streaming senza limite di tempo complessivo. Si applica al percorso upstream diretto di Anthropic; con ogni altro provider il gateway attende fino a un'ora che la risposta inizi. |1291| `timeouts` | `upstream_ttfb_ms` | 120000 | Attesa massima per le intestazioni di risposta dell'upstream (tempo al primo byte). Il corpo della risposta viene poi trasmesso in streaming senza limite di tempo complessivo. Si applica al percorso upstream diretto di Anthropic; con ogni altro provider il gateway attende fino a un'ora che la risposta inizi. |

1230| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | Rate limit per IP sull'endpoint non autenticato di autorizzazione del dispositivo. Aumentalo per una grande organizzazione dietro un IP di uscita condiviso o NAT. [Distribuzioni su larga scala](/docs/it/claude-apps-gateway-deploy#large-rollouts) mostra come dimensionarlo. Questi limiti si applicano solo al flusso di accesso con concessione del dispositivo, non all'inferenza su `/v1/messages`. Vedi [Resistenza al brute force dei codici utente](/docs/it/claude-apps-gateway-deploy#user-code-brute-force-resistance). |1292| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | Rate limit per IP sull'endpoint non autenticato di autorizzazione del dispositivo. Aumentalo per una grande organizzazione dietro un IP di uscita condiviso o NAT. [Distribuzioni su larga scala](/docs/it/claude-apps-gateway-deploy#large-rollouts) mostra come dimensionarlo. Questi limiti si applicano solo al flusso di accesso con concessione del dispositivo, non all'inferenza su `/v1/messages`. Vedi [Resistenza al brute force dei codici utente](/docs/it/claude-apps-gateway-deploy#user-code-brute-force-resistance). |

Details

25 Configurazione del provider di identità25 Configurazione del provider di identità

26</h2>26</h2>

27 27 

28Registra un'applicazione web OAuth/OpenID Connect (OIDC) confidenziale con un singolo URI di reindirizzamento, `https://<gateway>/oauth/callback`, e assegnala agli utenti o ai gruppi che dovrebbero avere accesso al gateway.28Registra un'applicazione web OAuth/OpenID Connect (OIDC) confidenziale con un singolo URI di reindirizzamento, `https://<gateway>/oauth/callback`, e assegnala agli utenti o ai gruppi che dovrebbero avere accesso al gateway. Il gateway si autentica presso l'IdP con il client secret della registrazione, oppure con un certificato che carichi nella registrazione se il tuo IdP usa invece le [credenziali con certificato](/docs/it/claude-apps-gateway-config#certificate-client-authentication).

29 29 

30Qualsiasi IdP conforme a OIDC funziona: Okta, Microsoft Entra ID, Google Workspace, Keycloak, Dex, PingFederate e altri. L'IdP deve soddisfare tre requisiti:30Qualsiasi IdP conforme a OIDC funziona: Okta, Microsoft Entra ID, Google Workspace, Keycloak, Dex, PingFederate e altri. L'IdP deve soddisfare tre requisiti:

31 31 


367La prima registrazione può avvenire prima che lo sviluppatore acceda al gateway, quando non è ancora arrivata alcuna policy del gateway. Per coprire quel primo avvio, fornisci la tua scelta nelle [impostazioni gestite lato client](/docs/it/claude-apps-gateway-config#client-side-managed-settings) oltre che nel [blocco `cli`](/docs/it/claude-apps-gateway-config#what-goes-in-cli) della policy del gateway.367La prima registrazione può avvenire prima che lo sviluppatore acceda al gateway, quando non è ancora arrivata alcuna policy del gateway. Per coprire quel primo avvio, fornisci la tua scelta nelle [impostazioni gestite lato client](/docs/it/claude-apps-gateway-config#client-side-managed-settings) oltre che nel [blocco `cli`](/docs/it/claude-apps-gateway-config#what-goes-in-cli) della policy del gateway.

368 368 

369<h2 id="troubleshooting">369<h2 id="troubleshooting">

370 Troubleshooting370 Risoluzione dei problemi

371</h2>371</h2>

372 372 

373Per domande e feedback, utilizza il [supporto Claude Code](https://support.claude.com/en/collections/14445694-claude-code), oppure apri un problema nel [repository GitHub di Claude Code](https://github.com/anthropics/claude-code/issues). Quando segnali un problema, includi:373Per domande e feedback, utilizza il [supporto Claude Code](https://support.claude.com/en/collections/14445694-claude-code), oppure apri un problema nel [repository GitHub di Claude Code](https://github.com/anthropics/claude-code/issues). Quando segnali un problema, includi:


376* **Login issue**: lo sviluppatore esegue `claude --debug-file ./claude-debug.txt`, riproduce il problema e invia quel file più il log di audit del gateway per la stessa finestra376* **Login issue**: lo sviluppatore esegue `claude --debug-file ./claude-debug.txt`, riproduce il problema e invia quel file più il log di audit del gateway per la stessa finestra

377* **Inference issue**: il modello richiesto, gli upstream configurati e il log di audit del gateway per la richiesta, che registra quale upstream l'ha servita e lo stato della risposta377* **Inference issue**: il modello richiesto, gli upstream configurati e il log di audit del gateway per la richiesta, che registra quale upstream l'ha servita e lo stato della risposta

378 378 

379Lo stderr del gateway include il flusso di eventi di audit, il log di audit registra le identità degli sviluppatori e il file di debug registra l'output di hook e MCP server dalla macchina dello sviluppatore. Rivedi e oscura questi elementi prima di pubblicare su un problema pubblico.379Lo stderr del gateway include il flusso di eventi di audit, il log di audit registra le identità degli sviluppatori e il file di debug registra l'output di hook e server MCP dalla macchina dello sviluppatore. Rivedi e oscura questi elementi prima di pubblicare su un problema pubblico.

380 380 

381| Sintomo | Causa | Soluzione |381| Sintomo | Causa | Soluzione |

382| - | - | - |382| - | - | - |


386| L'avvio mostra `Gateway login is configured in managed settings, but this Claude Code build does not include Cloud gateway support.` | La build di Claude Code installata precede il supporto del gateway | Chiedi allo sviluppatore di aggiornare Claude Code a una versione che include il supporto Cloud gateway |386| L'avvio mostra `Gateway login is configured in managed settings, but this Claude Code build does not include Cloud gateway support.` | La build di Claude Code installata precede il supporto del gateway | Chiedi allo sviluppatore di aggiornare Claude Code a una versione che include il supporto Cloud gateway |

387| L'avvio esce con `Administrator policy requires a Cloud gateway sign-in on this machine` | L'ambiente dello sviluppatore imposta `ANTHROPIC_API_KEY` o `ANTHROPIC_AUTH_TOKEN`, le loro impostazioni configurano un [`apiKeyHelper`](/docs/it/settings-reference#apikeyhelper), oppure una chiave API da un accesso precedente a Claude Console è ancora salvata | Chiedi allo sviluppatore di cancellare ciascuno che si applica: annulla l'impostazione della variabile, rimuovi la voce `apiKeyHelper`, oppure esegui `claude auth logout` per rimuovere la chiave salvata. Una sessione che seleziona un provider cloud con `CLAUDE_CODE_USE_*` quindi inizia senza accesso; per ogni altra sessione, chiedigli di avviare `claude` e accedere con `/login`. Vedi anche [Administrator policy requires a Cloud gateway sign-in](/docs/it/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |387| L'avvio esce con `Administrator policy requires a Cloud gateway sign-in on this machine` | L'ambiente dello sviluppatore imposta `ANTHROPIC_API_KEY` o `ANTHROPIC_AUTH_TOKEN`, le loro impostazioni configurano un [`apiKeyHelper`](/docs/it/settings-reference#apikeyhelper), oppure una chiave API da un accesso precedente a Claude Console è ancora salvata | Chiedi allo sviluppatore di cancellare ciascuno che si applica: annulla l'impostazione della variabile, rimuovi la voce `apiKeyHelper`, oppure esegui `claude auth logout` per rimuovere la chiave salvata. Una sessione che seleziona un provider cloud con `CLAUDE_CODE_USE_*` quindi inizia senza accesso; per ogni altra sessione, chiedigli di avviare `claude` e accedere con `/login`. Vedi anche [Administrator policy requires a Cloud gateway sign-in](/docs/it/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |

388| L'avvio o `/login` segnala `Claude Code may not be enabled for your organization` dopo un 403 al caricamento delle impostazioni gestite | Il gateway, o qualcosa davanti ad esso, ha risposto alla richiesta `/managed/settings` con 403. La rotta delle impostazioni del gateway stesso non risponde mai con 403. Lo stato proviene dai controlli IP [`access_control`](/docs/it/claude-apps-gateway-config#http-tuning) o da un proxy o WAF davanti al gateway. Il log di audit registra un rifiuto del controllo IP come `access.denied` con il motivo. Lo sviluppatore rimane connesso. | Controlla il log di audit per `access.denied` al momento dell'errore e correggi gli elenchi `access_control` o il front end, quindi chiedi allo sviluppatore di avviare `claude` di nuovo |388| L'avvio o `/login` segnala `Claude Code may not be enabled for your organization` dopo un 403 al caricamento delle impostazioni gestite | Il gateway, o qualcosa davanti ad esso, ha risposto alla richiesta `/managed/settings` con 403. La rotta delle impostazioni del gateway stesso non risponde mai con 403. Lo stato proviene dai controlli IP [`access_control`](/docs/it/claude-apps-gateway-config#http-tuning) o da un proxy o WAF davanti al gateway. Il log di audit registra un rifiuto del controllo IP come `access.denied` con il motivo. Lo sviluppatore rimane connesso. | Controlla il log di audit per `access.denied` al momento dell'errore e correggi gli elenchi `access_control` o il front end, quindi chiedi allo sviluppatore di avviare `claude` di nuovo |

389| CLI `/login`: `The gateway is limiting sign-in attempts right now`, oppure `Request failed with status code 429` nelle versioni precedenti. La pagina `/device` potrebbe mostrare `Too many attempts` agli sviluppatori che non hanno mai provato prima | È stato raggiunto il limite di velocità di accesso per IP. O `listen.trusted_proxies` non copre il bilanciatore di carico, quindi ogni sviluppatore condivide il suo indirizzo, oppure molti sviluppatori condividono un indirizzo di uscita NAT o VPN. Gli eventi di audit con `result: rate_limited` mostrano lo stesso uno o pochi valori `client_ip`. | Imposta prima `listen.trusted_proxies` agli intervalli di origine del bilanciatore di carico, quindi aumenta `rate_limits` se gli sviluppatori condividono ancora indirizzi. Vedi [Large rollouts](#large-rollouts). |389| CLI `/login`: `The gateway is limiting sign-in attempts right now`, oppure `Request failed with status code 429` nelle versioni precedenti. La pagina `/device` potrebbe mostrare `Too many attempts` agli sviluppatori che non hanno mai provato prima | È stato raggiunto il rate limit di accesso per IP. O `listen.trusted_proxies` non copre il bilanciatore di carico, quindi ogni sviluppatore condivide il suo indirizzo, oppure molti sviluppatori condividono un indirizzo di uscita NAT o VPN. Gli eventi di audit con `result: rate_limited` mostrano lo stesso uno o pochi valori `client_ip`. | Imposta prima `listen.trusted_proxies` agli intervalli di origine del bilanciatore di carico, quindi aumenta `rate_limits` se gli sviluppatori condividono ancora indirizzi. Vedi [Large rollouts](#large-rollouts). |

390| CLI `/login`: `Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | Il nome host del gateway si risolve in almeno un indirizzo IP pubblico. Claude Code controlla ogni indirizzo risolto e richiede che tutti siano privati. Una causa comune è un nome dual-stack in cui una famiglia si risolve in un indirizzo pubblico, inclusi i bilanciatori di carico dual-stack interni di AWS, che restituiscono indirizzi AAAA in intervallo pubblico. | Fai in modo che il nome del gateway si risolva solo in indirizzi privati sulle macchine degli sviluppatori. Per un nome dual-stack, elimina il record in intervallo pubblico o servi un nome DNS solo interno separato. Vedi il [prerequisito di rete privata](/docs/it/claude-apps-gateway#prerequisites). Se l'indirizzo è spazio pubblico che la tua organizzazione possiede e utilizza internamente, [dichiara quel blocco](/docs/it/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) invece. |390| CLI `/login`: `Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | Il nome host del gateway si risolve in almeno un indirizzo IP pubblico. Claude Code controlla ogni indirizzo risolto e richiede che tutti siano privati. Una causa comune è un nome dual-stack in cui una famiglia si risolve in un indirizzo pubblico, inclusi i bilanciatori di carico dual-stack interni di AWS, che restituiscono indirizzi AAAA in intervallo pubblico. | Fai in modo che il nome del gateway si risolva solo in indirizzi privati sulle macchine degli sviluppatori. Per un nome dual-stack, elimina il record in intervallo pubblico o servi un nome DNS solo interno separato. Vedi il [prerequisito di rete privata](/docs/it/claude-apps-gateway#prerequisites). Se l'indirizzo è spazio pubblico che la tua organizzazione possiede e utilizza internamente, [dichiara quel blocco](/docs/it/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) invece. |

391| CLI `/login`: `Gateway login would go through proxy <proxy>, which is not on a private network` | Un `HTTPS_PROXY` o `HTTP_PROXY` si applica all'host del gateway e il nome host del proxy si risolve in un indirizzo pubblico. Un proxy il cui host si risolve solo in indirizzi privati è consentito e non attiva questo errore | Aggiungi l'host del gateway a `NO_PROXY` sulla macchina dello sviluppatore in modo che la connessione sia diretta, oppure utilizza un proxy il cui nome host si risolve in indirizzi privati. Il messaggio nomina la voce esatta `NO_PROXY` da aggiungere |391| CLI `/login`: `Gateway login would go through proxy <proxy>, which is not on a private network` | Un `HTTPS_PROXY` o `HTTP_PROXY` si applica all'host del gateway e il nome host del proxy si risolve in un indirizzo pubblico. Un proxy il cui host si risolve solo in indirizzi privati è consentito e non attiva questo errore | Aggiungi l'host del gateway a `NO_PROXY` sulla macchina dello sviluppatore in modo che la connessione sia diretta, oppure utilizza un proxy il cui nome host si risolve in indirizzi privati. Il messaggio nomina la voce esatta `NO_PROXY` da aggiungere |

392| CLI `/login`: `Claude Code only signs in to <host> from inside its declared network <block> (managed settings), and this machine is connecting from <ip>, outside it` | Il gateway è su un blocco dichiarato in [`gatewayInternalNetworks`](/docs/it/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own), e la macchina dello sviluppatore l'ha raggiunto da un indirizzo al di fuori di quel blocco: un pool di indirizzi VPN, un segmento NAT di container o WSL2, oppure una rete che non è la tua | Chiedi allo sviluppatore di eseguire `/login` dal sistema operativo host sulla tua rete. Se l'indirizzo mostrato è anche lo spazio pubblico della tua organizzazione, sostituisci la voce del gateway con un blocco che copra entrambi, fino a `/8`; una seconda voce sovrapposta è rifiutata |392| CLI `/login`: `Claude Code only signs in to <host> from inside its declared network <block> (managed settings), and this machine is connecting from <ip>, outside it` | Il gateway è su un blocco dichiarato in [`gatewayInternalNetworks`](/docs/it/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own), e la macchina dello sviluppatore l'ha raggiunto da un indirizzo al di fuori di quel blocco: un pool di indirizzi VPN, un segmento NAT di container o WSL2, oppure una rete che non è la tua | Chiedi allo sviluppatore di eseguire `/login` dal sistema operativo host sulla tua rete. Se l'indirizzo mostrato è anche lo spazio pubblico della tua organizzazione, sostituisci la voce del gateway con un blocco che copra entrambi, fino a `/8`; una seconda voce sovrapposta è rifiutata |


398| L'avvio esce con un errore di convalida della configurazione che nomina `store.postgres_url` | Nessun Postgres configurato; il gateway richiede Postgres | Imposta `store.postgres_url`. Per lo sviluppo locale, utilizza un container usa e getta: `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`. |398| L'avvio esce con un errore di convalida della configurazione che nomina `store.postgres_url` | Nessun Postgres configurato; il gateway richiede Postgres | Imposta `store.postgres_url`. Per lo sviluppo locale, utilizza un container usa e getta: `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`. |

399| L'avvio esce: `requires the native binary` | In esecuzione sotto Node invece del binario nativo | Installa Claude Code con uno dei [metodi di installazione standalone](/docs/it/setup) |399| L'avvio esce: `requires the native binary` | In esecuzione sotto Node invece del binario nativo | Installa Claude Code con uno dei [metodi di installazione standalone](/docs/it/setup) |

400| L'avvio esce con un errore di scoperta OIDC dopo `config.load` | `oidc.issuer` non raggiungibile, oppure la catena TLS non è attendibile | Controlla che l'emittente sia raggiungibile dal pod e serva `/.well-known/openid-configuration`. Imposta `ca_cert_pem` per PKI privata. Se il pod raggiunge l'IdP solo attraverso un proxy forward, imposta [`oidc.use_proxy: true`](/docs/it/claude-apps-gateway-config#idp-requests-through-a-forward-proxy); nelle versioni precedenti a v2.1.227, fornisci al pod una rotta diretta a ciascuno degli endpoint dell'IdP invece. Se il pod inoltre non può risolvere il nome host dell'IdP, oppure il proxy rifiuta `CONNECT` a un indirizzo IP, vedi [Proxy-only egress](/docs/it/claude-apps-gateway-config#proxy-only-egress), che richiede v2.1.277 o successivo. |400| L'avvio esce con un errore di scoperta OIDC dopo `config.load` | `oidc.issuer` non raggiungibile, oppure la catena TLS non è attendibile | Controlla che l'emittente sia raggiungibile dal pod e serva `/.well-known/openid-configuration`. Imposta `ca_cert_pem` per PKI privata. Se il pod raggiunge l'IdP solo attraverso un proxy forward, imposta [`oidc.use_proxy: true`](/docs/it/claude-apps-gateway-config#idp-requests-through-a-forward-proxy); nelle versioni precedenti a v2.1.227, fornisci al pod una rotta diretta a ciascuno degli endpoint dell'IdP invece. Se il pod inoltre non può risolvere il nome host dell'IdP, oppure il proxy rifiuta `CONNECT` a un indirizzo IP, vedi [Proxy-only egress](/docs/it/claude-apps-gateway-config#proxy-only-egress), che richiede v2.1.277 o successivo. |

401| L'avvio esce con un errore di autorizzazione Postgres | Il ruolo del database manca dei diritti DDL sul suo schema | Concedi al ruolo `CREATE` sullo schema del gateway in modo che possa creare e alterare le sue tabelle all'avvio |401| L'avvio esce con un errore di permessi Postgres | Il ruolo del database manca dei diritti DDL sul suo schema | Concedi al ruolo `CREATE` sullo schema del gateway in modo che possa creare e alterare le sue tabelle all'avvio |

402| Log: `could not connect to Postgres at boot, attempt 1 of 3` | Il database non era raggiungibile quando il gateway è stato avviato, ad esempio su un'istanza fredda la cui rete è ancora in fase di avvio | Se il gateway finisce di avviarsi, non è necessaria alcuna azione. Quando il database non è raggiungibile, il gateway tenta la connessione tre volte, due secondi di distanza, prima di uscire. Se esce con `could not connect to Postgres`, controlla `store.postgres_url` e il percorso di rete al database. Se i tentativi scadono piuttosto che essere rifiutati, aumenta [`store.connect_timeout_seconds`](/docs/it/claude-apps-gateway-config#store) per dare a ciascuno più tempo. |402| Log: `could not connect to Postgres at boot, attempt 1 of 3` | Il database non era raggiungibile quando il gateway è stato avviato, ad esempio su un'istanza fredda la cui rete è ancora in fase di avvio | Se il gateway finisce di avviarsi, non è necessaria alcuna azione. Quando il database non è raggiungibile, il gateway tenta la connessione tre volte, due secondi di distanza, prima di uscire. Se esce con `could not connect to Postgres`, controlla `store.postgres_url` e il percorso di rete al database. Se i tentativi scadono piuttosto che essere rifiutati, aumenta [`store.connect_timeout_seconds`](/docs/it/claude-apps-gateway-config#store) per dare a ciascuno più tempo. |

403| `/oauth/callback` mostra "Sign-in could not be completed" | Dominio email rifiutato, convalida id\_token non riuscita, oppure `email_verified` è esplicitamente `false`, che il gateway rifiuta sempre senza override | Controlla `allowed_email_domains` e che l'IdP restituisca un'attestazione `email` verificata. Per `email_verified: false`, correggi la verifica lato IdP. Se il tuo IdP emette email con un nome di attestazione diverso, imposta `oidc.email_claim`. |403| `/oauth/callback` mostra "Sign-in could not be completed" | Dominio email rifiutato, convalida id\_token non riuscita, oppure `email_verified` è esplicitamente `false`, che il gateway rifiuta sempre senza override | Controlla `allowed_email_domains` e che l'IdP restituisca un'attestazione `email` verificata. Per `email_verified: false`, correggi la verifica lato IdP. Se il tuo IdP emette email con un nome di attestazione diverso, imposta `oidc.email_claim`. |

404| Log: `token exchange failed request_id=<id>: id_token missing email claim` | L'IdP non include `email` nell'id\_token per impostazione predefinita. Questo rifiuto si attiva solo quando `allowed_email_domains` è impostato; senza di esso, un'email mancante conia una sessione senza email | Configura l'IdP per emettere `email` nell'id\_token. Okta: aggiungi `email` alle attestazioni del token ID di un server di autorizzazione personalizzato. Entra: aggiungi `email` come attestazione facoltativa sulla registrazione dell'app. PingFederate: abilita una Politica OpenID Connect che emette `email`. Se l'IdP serve `email` dall'endpoint userinfo ma non lo includerà nell'id\_token, come il server di autorizzazione dell'organizzazione Okta, imposta `oidc.userinfo_fallback: true`. |404| Log: `token exchange failed request_id=<id>: id_token missing email claim` | L'IdP non include `email` nell'id\_token per impostazione predefinita. Questo rifiuto si attiva solo quando `allowed_email_domains` è impostato; senza di esso, un'email mancante conia una sessione senza email | Configura l'IdP per emettere `email` nell'id\_token. Okta: aggiungi `email` alle attestazioni del token ID di un server di autorizzazione personalizzato. Entra: aggiungi `email` come attestazione facoltativa sulla registrazione dell'app. PingFederate: abilita una Politica OpenID Connect che emette `email`. Se l'IdP serve `email` dall'endpoint userinfo ma non lo includerà nell'id\_token, come il server di autorizzazione dell'organizzazione Okta, imposta `oidc.userinfo_fallback: true`. |

405| Log: `refresh failed request_id=<id>: invalid_token (…) (at userinfo_no_id_token, …)`, e gli sviluppatori vedono `Cloud gateway session expired` ogni `session.ttl_hours` | L'IdP ha accettato il token di aggiornamento ma non ha restituito alcun id\_token con esso, quindi il gateway ha chiesto all'endpoint userinfo dell'IdP le attestazioni dell'utente. L'IdP ha rifiutato il token di accesso aggiornato lì. Il gateway risponde `temporarily_unavailable`, quindi Claude Code mantiene il token di aggiornamento ma non può rinnovare la sessione. Le versioni del gateway precedenti a v2.1.260 registrano la stessa riga senza il dettaglio `(at …)`. | Imposta [`oidc.scope_on_refresh: true`](/docs/it/claude-apps-gateway-config#oidc), disponibile nel gateway v2.1.260 o successivo, in modo che la richiesta di aggiornamento chieda di nuovo `openid`. Alcuni IdP, come Okta, restituiscono un id\_token all'aggiornamento solo quando richiesto. Su PingFederate, abilita **Return ID Token On Refresh Grant** in **Applications > OAuth > OpenID Connect Policy Management** invece. La chiave non cambia il comportamento di PingFederate. Per altri IdP che ancora lo omettono, controlla se l'endpoint userinfo accetta token di accesso emessi da un aggiornamento. Come misura temporanea, aumenta [`session.ttl_hours`](/docs/it/claude-apps-gateway-config#session). Vedi [Identity provider setup](#identity-provider-setup) per il compromesso di deprovisioning. |405| Log: `refresh failed request_id=<id>: invalid_token (…) (at userinfo_no_id_token, …)`, e gli sviluppatori vedono `Cloud gateway session expired` ogni `session.ttl_hours` | L'IdP ha accettato il token di aggiornamento ma non ha restituito alcun id\_token con esso, quindi il gateway ha chiesto all'endpoint userinfo dell'IdP le attestazioni dell'utente. L'IdP ha rifiutato il token di accesso aggiornato lì. Il gateway risponde `temporarily_unavailable`, quindi Claude Code mantiene il token di aggiornamento ma non può rinnovare la sessione. Le versioni del gateway precedenti a v2.1.260 registrano la stessa riga senza il dettaglio `(at …)`. | Imposta [`oidc.scope_on_refresh: true`](/docs/it/claude-apps-gateway-config#oidc), disponibile nel gateway v2.1.260 o successivo, in modo che la richiesta di aggiornamento chieda di nuovo `openid`. Alcuni IdP, come Okta, restituiscono un id\_token all'aggiornamento solo quando richiesto. Su PingFederate, abilita **Return ID Token On Refresh Grant** in **Applications > OAuth > OpenID Connect Policy Management** invece. La chiave non cambia il comportamento di PingFederate. Per altri IdP che ancora lo omettono, controlla se l'endpoint userinfo accetta token di accesso emessi da un aggiornamento. Come misura temporanea, aumenta [`session.ttl_hours`](/docs/it/claude-apps-gateway-config#session). Vedi [Identity provider setup](#identity-provider-setup) per il compromesso di deprovisioning. |

406| Uno sviluppatore accede, poi ogni richiesta di quella sessione fallisce con un errore `431` | Il token di sessione nell'intestazione `Authorization` di ogni richiesta elenca i gruppi IdP dello sviluppatore, quindi per uno sviluppatore in molti gruppi le intestazioni possono superare in totale quanto il gateway accetta | Vedi [Intestazioni della richiesta troppo grandi dopo l'accesso](#request-headers-too-large-after-sign-in) per sapere quale limite si applica e cosa cambiare |

406| Ogni richiesta Amazon Bedrock restituisce 502; il log mostra `Could not load credentials from any providers` | Su EC2, il limite di hop predefinito di IMDSv2 di 1 blocca la richiesta di metadati dell'istanza dall'interno del container. L'avvio e `/readyz` passano comunque perché l'AWS SDK risolve le credenziali dell'istanza sulla prima richiesta, non alla costruzione del client | Aumenta il limite di hop con `aws ec2 modify-instance-metadata-options --instance-id <id> --http-put-response-hop-limit 2`, oppure impostalo nel modello di lancio. La modifica si applica a ogni container sull'istanza. Preferisci i ruoli delle attività ECS dove disponibili, che leggono le credenziali dall'endpoint delle credenziali del container ECS ed evitano completamente la modifica, oppure applica la modifica su un'istanza del gateway dedicata per limitare l'esposizione. |407| Ogni richiesta Amazon Bedrock restituisce 502; il log mostra `Could not load credentials from any providers` | Su EC2, il limite di hop predefinito di IMDSv2 di 1 blocca la richiesta di metadati dell'istanza dall'interno del container. L'avvio e `/readyz` passano comunque perché l'AWS SDK risolve le credenziali dell'istanza sulla prima richiesta, non alla costruzione del client | Aumenta il limite di hop con `aws ec2 modify-instance-metadata-options --instance-id <id> --http-put-response-hop-limit 2`, oppure impostalo nel modello di lancio. La modifica si applica a ogni container sull'istanza. Preferisci i ruoli delle attività ECS dove disponibili, che leggono le credenziali dall'endpoint delle credenziali del container ECS ed evitano completamente la modifica, oppure applica la modifica su un'istanza del gateway dedicata per limitare l'esposizione. |

407| Al carico di picco, le risposte sono lente a iniziare o sembrano bloccarsi, oppure falliscono con un 502 `all upstreams failed` mentre l'upstream è integro | Una replica ha più richieste aperte di quante ne invia upstream contemporaneamente, quindi le richieste extra attendono all'interno del gateway. Su un upstream `provider: anthropic`, una richiesta che attende più a lungo di `timeouts.upstream_ttfb_ms` rinuncia a quel upstream, che produce il 502 quando nessun upstream successivo lo serve. Il log mostra un avviso che contiene `client requests are open`. | Aggiungi repliche, oppure aumenta il limite su ogni replica. Vedi [Concurrent upstream requests](#concurrent-upstream-requests). |408| Al carico di picco, le risposte sono lente a iniziare o sembrano bloccarsi, oppure falliscono con un 502 `all upstreams failed` mentre l'upstream è integro | Una replica ha più richieste aperte di quante ne invia upstream contemporaneamente, quindi le richieste extra attendono all'interno del gateway. Su un upstream `provider: anthropic`, una richiesta che attende più a lungo di `timeouts.upstream_ttfb_ms` rinuncia a quell'upstream, il che produce il 502 quando nessun upstream successivo la serve. Il log mostra un avviso che contiene `client requests are open`. | Aggiungi repliche, oppure aumenta il limite su ogni replica. Vedi [Concurrent upstream requests](#concurrent-upstream-requests). |

408| Errore IdP: unknown or unsupported scope | L'IdP rifiuta gli ambiti che non riconosce | Imposta `oidc.scopes` esattamente all'elenco che il tuo IdP accetta; deve includere `openid`. L'impostazione predefinita è `openid profile email offline_access`. |409| Errore IdP: unknown or unsupported scope | L'IdP rifiuta gli scope che non riconosce | Imposta `oidc.scopes` esattamente all'elenco che il tuo IdP accetta; deve includere `openid`. L'impostazione predefinita è `openid profile email offline_access`. |

409| Le sessioni non si rinnovano silenziosamente dopo l'impostazione di `oidc.scopes` | `offline_access` è stato eliminato dall'override | Aggiungi di nuovo `offline_access` se il tuo IdP lo supporta. Senza un token di aggiornamento, gli sviluppatori rieseguono l'accesso del browser ogni `session.ttl_hours`. |410| Le sessioni non si rinnovano silenziosamente dopo l'impostazione di `oidc.scopes` | `offline_access` è stato eliminato dall'override | Aggiungi di nuovo `offline_access` se il tuo IdP lo supporta. Senza un token di aggiornamento, gli sviluppatori rieseguono l'accesso del browser ogni `session.ttl_hours`. |

410| Il browser mostra "This request came from another site and was blocked" | POST di modulo cross-site, bloccato come protezione CSRF. Previsto per pagine incorporate o proxy | Apri il collegamento di verifica direttamente |411| Il browser mostra "This request came from another site and was blocked" | POST di modulo cross-site, bloccato come protezione CSRF. Previsto per pagine incorporate o proxy | Apri il collegamento di verifica direttamente |

411| Chrome blocca il pulsante Approve con "Refused to send form data … violates … Content Security Policy directive: form-action", ma la stessa pagina funziona in Safari o Firefox | Chrome applica `form-action` all'intera catena di reindirizzamento. Il tuo IdP reindirizza ulteriormente a un secondo host che non è nella lista di autorizzazione. | Aggiungi ogni origine aggiuntiva nella catena di reindirizzamento a `oidc.form_action_origins`. Apri Chrome DevTools → Console nella pagina Approve per vedere quale origine è stata bloccata. |412| Chrome blocca il pulsante Approve con "Refused to send form data … violates … Content Security Policy directive: form-action", ma la stessa pagina funziona in Safari o Firefox | Chrome applica `form-action` all'intera catena di reindirizzamento. Il tuo IdP reindirizza ulteriormente a un secondo host che non è nella lista di autorizzazione. | Aggiungi ogni origine aggiuntiva nella catena di reindirizzamento a `oidc.form_action_origins`. Apri Chrome DevTools → Console nella pagina Approve per vedere quale origine è stata bloccata. |

412| L'accesso si completa presso l'IdP ma il callback fallisce, con un errore CSP in Chrome o "this sign-in link has expired" in Safari | L'IdP ha restituito il codice tramite `response_mode=form_post`, che lo invia automaticamente cross-origin tramite POST a `/oauth/callback`. Chrome lo blocca sotto una CSP ristretta; Safari consente l'invio ma il callback legge solo la stringa di query. | Assicurati che il tuo IdP onori `response_mode=query`, che il gateway richiede esplicitamente in modo che il callback sia un reindirizzamento semplice |413| L'accesso si completa presso l'IdP ma il callback fallisce, con un errore CSP in Chrome o "this sign-in link has expired" in Safari | L'IdP ha restituito il codice tramite `response_mode=form_post`, che lo invia automaticamente cross-origin tramite POST a `/oauth/callback`. Chrome lo blocca sotto una CSP ristretta; Safari consente l'invio ma il callback legge solo la stringa di query. | Assicurati che il tuo IdP onori `response_mode=query`, che il gateway richiede esplicitamente in modo che il callback sia un reindirizzamento semplice |

413| L'accesso funziona localmente ma fallisce dietro un ALB | `public_url` nomina ancora l'origine locale o interna `http://`, quindi l'IdP ottiene l'`redirect_uri` sbagliato | Imposta `listen.public_url` all'origine esterna `https://` e registra `<public_url>/oauth/callback` con l'IdP |414| L'accesso funziona localmente ma fallisce dietro un ALB | `public_url` nomina ancora l'origine locale o interna `http://`, quindi l'IdP ottiene il `redirect_uri` sbagliato | Imposta `listen.public_url` all'origine esterna `https://` e registra `<public_url>/oauth/callback` con l'IdP |

414| Lo sviluppatore vede il prompt di fiducia ripetutamente | Il certificato TLS ruota per replica o per richiesta | Utilizza un certificato stabile all'ingresso, oppure termina TLS una volta ed esegui le repliche su HTTP semplice internamente |415| Lo sviluppatore vede il prompt di fiducia ripetutamente | Il certificato TLS ruota per replica o per richiesta | Utilizza un certificato stabile all'ingresso, oppure termina TLS una volta ed esegui le repliche su HTTP semplice internamente |

415| CLI `/login`: "Could not verify the gateway's TLS certificate" o `SELF_SIGNED_CERT_IN_CHAIN` | La catena TLS del gateway è firmata da una CA privata non nell'archivio di fiducia dell'host CLI | Claude Code legge l'archivio di fiducia del sistema operativo per impostazione predefinita sul binario nativo e su Node 22.15 o successivo; [`CLAUDE_CODE_CERT_STORE`](/docs/it/network-config#ca-certificate-store) controlla questo comportamento. Se la CA è installata nell'archivio di fiducia del sistema operativo, assicurati che gli sviluppatori siano su un runtime attuale. Altrimenti imposta `NODE_EXTRA_CA_CERTS` al PEM del certificato CA prima del lancio. Il prompt dell'impronta digitale della prima connessione si applica comunque. |416| CLI `/login`: "Could not verify the gateway's TLS certificate" o `SELF_SIGNED_CERT_IN_CHAIN` | La catena TLS del gateway è firmata da una CA privata non nell'archivio di fiducia dell'host CLI | Claude Code legge l'archivio di fiducia del sistema operativo per impostazione predefinita sul binario nativo e su Node 22.15 o successivo; [`CLAUDE_CODE_CERT_STORE`](/docs/it/network-config#ca-certificate-store) controlla questo comportamento. Se la CA è installata nell'archivio di fiducia del sistema operativo, assicurati che gli sviluppatori siano su un runtime attuale. Altrimenti imposta `NODE_EXTRA_CA_CERTS` al PEM del certificato CA prima del lancio. Il prompt dell'impronta digitale della prima connessione si applica comunque. |

416| CLI `/login` completa l'accesso del browser, quindi la sessione termina con `Cloud gateway sign-in was not completed` e una mancata corrispondenza del certificato TLS | Sulla prima richiesta dopo l'accesso, il gateway ha presentato un certificato che non corrisponde all'impronta digitale che Claude Code ha fissato, quindi Claude Code non ha mantenuto alcuna credenziale del gateway. Le cause comuni sono repliche dietro un indirizzo che servono certificati diversi, oppure qualcosa sul percorso di rete che intercetta TLS. | Servi un certificato per il nome host, ad esempio terminando TLS una volta all'ingresso, quindi chiedi allo sviluppatore di eseguire di nuovo `/login`. Se quel certificato differisce da quello fissato, Claude Code mostra di nuovo il [prompt di fiducia](/docs/it/claude-apps-gateway#connect-developers) con un avviso che il certificato è cambiato. |417| CLI `/login` completa l'accesso del browser, quindi la sessione termina con `Cloud gateway sign-in was not completed` e una mancata corrispondenza del certificato TLS | Sulla prima richiesta dopo l'accesso, il gateway ha presentato un certificato che non corrisponde all'impronta digitale che Claude Code ha fissato, quindi Claude Code non ha mantenuto alcuna credenziale del gateway. Le cause comuni sono repliche dietro un indirizzo che servono certificati diversi, oppure qualcosa sul percorso di rete che intercetta TLS. | Servi un certificato per il nome host, ad esempio terminando TLS una volta all'ingresso, quindi chiedi allo sviluppatore di eseguire di nuovo `/login`. Se quel certificato differisce da quello fissato, Claude Code mostra di nuovo il [prompt di fiducia](/docs/it/claude-apps-gateway#connect-developers) con un avviso che il certificato è cambiato. |


420 421 

421Se Claude Code segnala `couldn't load your organization's managed settings` dopo un accesso al gateway, Claude Code nomina il motivo, si riavvia sul posto e riprende la conversazione. Se Claude Code non può riavviarsi, ad esempio in una sessione in background, Claude Code termina la sessione e mantiene l'accesso.422Se Claude Code segnala `couldn't load your organization's managed settings` dopo un accesso al gateway, Claude Code nomina il motivo, si riavvia sul posto e riprende la conversazione. Se Claude Code non può riavviarsi, ad esempio in una sessione in background, Claude Code termina la sessione e mantiene l'accesso.

422 423 

424<h3 id="request-headers-too-large-after-sign-in">

425 Intestazioni della richiesta troppo grandi dopo l'accesso

426</h3>

427 

428Le richieste di uno sviluppatore possono fallire con un errore `431` dopo l'accesso quando lo sviluppatore appartiene a molti gruppi IdP.

429 

430Il gateway risponde `431` quando le intestazioni di una richiesta superano in totale 256 KiB, oppure [`limits.max_request_header_bytes`](/docs/it/claude-apps-gateway-config#http-tuning) se lo imposti. Non scrive alcuna riga di log né evento di audit per queste richieste. Le versioni del gateway precedenti a v2.1.284 rispondono `431` oltre i 16 KiB.

431 

432Cosa cambiare dipende dalla versione e dalla configurazione del tuo gateway:

433 

434* **Gateway precedente a v2.1.284**: aggiorna il gateway

435* **`limits.max_request_header_bytes` impostato**: aumenta il valore o rimuovi la chiave

436* **Nessuno dei due casi si applica, oppure il `431` continua in seguito**: fai in modo che il tuo IdP emetta meno gruppi. [Identity provider setup](#identity-provider-setup) spiega come Okta, Microsoft Entra ID e Google Workspace forniscono i gruppi

437 

423<h2 id="related">438<h2 id="related">

424 Correlati439 Correlati

425</h2>440</h2>

Details

1598 1598 

1599`<project>` è il percorso della tua directory di lavoro con ogni carattere diverso da lettere e cifre sostituito da `-`, ad esempio `-Users-you-my-project`. Se imposti [`CLAUDE_CODE_TMPDIR`](/docs/it/env-vars), l'albero si sposta sotto quella directory. Gli hooks ricevono il percorso della sessione corrente come [`scratchpad_dir`](/docs/it/hooks#common-input-fields).1599`<project>` è il percorso della tua directory di lavoro con ogni carattere diverso da lettere e cifre sostituito da `-`, ad esempio `-Users-you-my-project`. Se imposti [`CLAUDE_CODE_TMPDIR`](/docs/it/env-vars), l'albero si sposta sotto quella directory. Gli hooks ricevono il percorso della sessione corrente come [`scratchpad_dir`](/docs/it/hooks#common-input-fields).

1600 1600 

1601I file scratchpad durano quanto la trascrizione della sessione: la [pulizia della conservazione](#cleaned-up-automatically) elimina la directory quando elimina la trascrizione, e [`claude project purge`](#clear-local-data) non tocca la directory temporanea. Poiché la directory si trova nella posizione temporanea del sistema, il tuo sistema operativo può anche cancellarla, ad esempio al riavvio. Per mantenere qualcosa che Claude ha scritto lì, chiedi a Claude di spostarlo nel tuo progetto.1601I file scratchpad durano quanto la trascrizione della sessione: la [pulizia della conservazione](#cleaned-up-automatically) elimina la directory quando elimina la trascrizione, e [`claude purge`](#clear-local-data) non tocca la directory temporanea. Poiché la directory si trova nella posizione temporanea del sistema, il tuo sistema operativo può anche cancellarla, ad esempio al riavvio. Per mantenere qualcosa che Claude ha scritto lì, chiedi a Claude di spostarlo nel tuo progetto.

1602 1602 

1603Una sessione ha uno scratchpad solo quando tutti questi elementi sono veri:1603Una sessione ha uno scratchpad solo quando tutti questi elementi sono veri:

1604 1604 


1645 Cancella dati locali1645 Cancella dati locali

1646</h3>1646</h3>

1647 1647 

1648Esegui `claude project purge` per eliminare lo stato che Claude Code mantiene per un progetto. Elimina:1648Esegui `claude purge` per eliminare lo stato che Claude Code mantiene per un progetto. Elimina:

1649 1649 

1650* Trascrizioni e memoria automatica sotto `projects/`1650* Trascrizioni e memoria automatica sotto `projects/`

1651* Voci per sessione `tasks/`, `debug/` e `file-history/`1651* Voci per sessione `tasks/`, `debug/` e `file-history/`


1656 1656 

1657Il comando stampa il piano di eliminazione completo e chiede conferma prima di rimuovere qualsiasi cosa.1657Il comando stampa il piano di eliminazione completo e chiede conferma prima di rimuovere qualsiasi cosa.

1658 1658 

1659Prima della v2.1.288, il comando era `claude project purge`.

1660 

1659Gli esempi di seguito utilizzano `~/work/my-repo` come segnaposto. Sostituiscilo con il percorso del tuo progetto. Se nessuno stato corrisponde al percorso, il comando stampa un errore e esce con stato 1.1661Gli esempi di seguito utilizzano `~/work/my-repo` come segnaposto. Sostituiscilo con il percorso del tuo progetto. Se nessuno stato corrisponde al percorso, il comando stampa un errore e esce con stato 1.

1660 1662 

1661Visualizza l'anteprima del piano senza eliminare nulla:1663Visualizza l'anteprima del piano senza eliminare nulla:

1662 1664 

1663```bash theme={null}1665```bash theme={null}

1664claude project purge ~/work/my-repo --dry-run1666claude purge ~/work/my-repo --dry-run

1665```1667```

1666 1668 

1667Il piano elenca ogni elemento corrispondente e il motivo per cui è incluso:1669Il piano elenca ogni elemento corrispondente e il motivo per cui è incluso:


1684Elimina con un singolo prompt di conferma:1686Elimina con un singolo prompt di conferma:

1685 1687 

1686```bash theme={null}1688```bash theme={null}

1687claude project purge ~/work/my-repo1689claude purge ~/work/my-repo

1688```1690```

1689 1691 

1690Il comando stampa lo stesso piano, quindi chiede `Delete 3 item(s) for /home/user/work/my-repo? This cannot be undone. [y/N]` ed elimina solo se rispondi `y`.1692Il comando stampa lo stesso piano, quindi chiede `Delete 3 item(s) for /home/user/work/my-repo? This cannot be undone. [y/N]` ed elimina solo se rispondi `y`.


1694Salta il prompt di conferma per l'uso negli script:1696Salta il prompt di conferma per l'uso negli script:

1695 1697 

1696```bash theme={null}1698```bash theme={null}

1697claude project purge ~/work/my-repo --yes1699claude purge ~/work/my-repo --yes

1698```1700```

1699 1701 

1700Passa `--all` invece di un percorso per eliminare lo stato per ogni progetto contemporaneamente, il che elimina `history.jsonl` completamente piuttosto che filtrarlo. Passa `-i` per scorrere il piano di eliminazione un elemento alla volta.1702Passa `--all` invece di un percorso per eliminare lo stato per ogni progetto contemporaneamente, il che elimina `history.jsonl` completamente piuttosto che filtrarlo. Passa `-i` per scorrere il piano di eliminazione un elemento alla volta.

Details

500 Limitazioni500 Limitazioni

501</h2>501</h2>

502 502 

503* I project sono disponibili su claude.ai/code, nell'app desktop e nell'app mobile di Claude, non nel CLI del terminale, nell'estensione VS Code o nel plugin JetBrains, e non attraverso Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry. Il comando [`claude project`](/docs/it/cli-reference) del CLI, che gestisce lo stato locale di Claude Code per una directory, non è correlato.503* I project sono disponibili su claude.ai/code, nell'app desktop e nell'app mobile di Claude, non nel CLI del terminale, nell'estensione VS Code o nel plugin JetBrains, e non attraverso Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry.

504* I thread del project sono [sessioni cloud](/docs/it/claude-code-on-the-web), o sessioni sulla vostra macchina attraverso [Remote Control](/docs/it/remote-control), con Anthropic come fornitore di modello in entrambi i casi. [Sicurezza](/docs/it/security) e [Utilizzo dei dati](/docs/it/data-usage) coprono come le sessioni cloud sono isolate e cosa viene conservato, e [Connessione e sicurezza](/docs/it/remote-control#connection-and-security) copre come un thread sulla vostra macchina si connette e cosa viene archiviato.504* I thread del project sono [sessioni cloud](/docs/it/claude-code-on-the-web), o sessioni sulla vostra macchina attraverso [Remote Control](/docs/it/remote-control), con Anthropic come fornitore di modello in entrambi i casi. [Sicurezza](/docs/it/security) e [Utilizzo dei dati](/docs/it/data-usage) coprono come le sessioni cloud sono isolate e cosa viene conservato, e [Connessione e sicurezza](/docs/it/remote-control#connection-and-security) copre come un thread sulla vostra macchina si connette e cosa viene archiviato.

505* Non potete aggiungere una sessione che avete avviato voi stessi sulla vostra macchina a un project. Un project raggiunge la vostra macchina solo [eseguendo un thread lì attraverso Remote Control](#run-a-thread-on-your-own-computer), e quella sezione elenca di cosa ha bisogno.505* Non potete aggiungere una sessione che avete avviato voi stessi sulla vostra macchina a un project. Un project raggiunge la vostra macchina solo [eseguendo un thread lì attraverso Remote Control](#run-a-thread-on-your-own-computer), e quella sezione elenca di cosa ha bisogno.

506* La sandbox di un thread cloud si mette in pausa tra i turni e riprende quando il thread continua. Se la sandbox non può essere ripresa, il thread continua da un clone fresco, quindi i cambiamenti non committati possono essere persi. Su compiti lunghi, chiedete a Claude di committare e spingere il lavoro in corso.506* La sandbox di un thread cloud si mette in pausa tra i turni e riprende quando il thread continua. Se la sandbox non può essere ripresa, il thread continua da un clone fresco, quindi i cambiamenti non committati possono essere persi. Su compiti lunghi, chiedete a Claude di committare e spingere il lavoro in corso.

Details

40| `claude mcp login <name>` | Esegui il flusso OAuth di un server MCP configurato senza aprire il pannello interattivo `/mcp`. Funziona per server HTTP, SSE e connettori claude.ai. Aggiungi `--no-browser` su SSH per stampare l'URL di autorizzazione invece di aprire un browser, quindi incolla l'URL di reindirizzamento al prompt. Vedi [Autentica dalla riga di comando](/docs/it/mcp#authenticate-from-the-command-line) | `claude mcp login sentry` |40| `claude mcp login <name>` | Esegui il flusso OAuth di un server MCP configurato senza aprire il pannello interattivo `/mcp`. Funziona per server HTTP, SSE e connettori claude.ai. Aggiungi `--no-browser` su SSH per stampare l'URL di autorizzazione invece di aprire un browser, quindi incolla l'URL di reindirizzamento al prompt. Vedi [Autentica dalla riga di comando](/docs/it/mcp#authenticate-from-the-command-line) | `claude mcp login sentry` |

41| `claude mcp logout <name>` | Cancella le credenziali OAuth archiviate per un server MCP | `claude mcp logout sentry` |41| `claude mcp logout <name>` | Cancella le credenziali OAuth archiviate per un server MCP | `claude mcp logout sentry` |

42| `claude plugin` | Gestisci i [plugin](/docs/it/plugins/overview) di Claude Code. Alias: `claude plugins`. Vedi il [riferimento plugin](/docs/it/plugins/cli-reference#claude-plugin-commands) per i sottocomandi | `claude plugin install code-review@claude-plugins-official` |42| `claude plugin` | Gestisci i [plugin](/docs/it/plugins/overview) di Claude Code. Alias: `claude plugins`. Vedi il [riferimento plugin](/docs/it/plugins/cli-reference#claude-plugin-commands) per i sottocomandi | `claude plugin install code-review@claude-plugins-official` |

43| `claude project purge [path]` | Elimina tutto lo stato locale di Claude Code per un progetto: trascrizioni, elenchi di attività, log di debug, cronologia delle modifiche ai file, righe della cronologia dei prompt e la voce del progetto in `~/.claude.json`. Ometti `[path]` per scegliere da un elenco interattivo. Flag: `--dry-run` per visualizzare un'anteprima, `-y`/`--yes` per saltare la conferma, `-i`/`--interactive` per confermare ogni elemento, `--all` per ogni progetto. Vedi [Cancella dati locali](/docs/it/claude-directory#clear-local-data) | `claude project purge ~/work/repo --dry-run` |43| `claude purge [path]` | Elimina tutto lo stato locale di Claude Code per un progetto: trascrizioni, elenchi di attività, log di debug, cronologia delle modifiche ai file, righe della cronologia dei prompt e la voce del progetto in `~/.claude.json`. Ometti `[path]` per scegliere da un elenco interattivo. Flag: `--dry-run` per visualizzare un'anteprima, `-y`/`--yes` per saltare la conferma, `-i`/`--interactive` per confermare ogni elemento, `--all` per ogni progetto. Vedi [Cancella dati locali](/docs/it/claude-directory#clear-local-data) | `claude purge ~/work/repo --dry-run` |

44| `claude remote-control` | Avvia un server [Remote Control](/docs/it/remote-control) per controllare Claude Code da Claude.ai o dall'app Claude. Viene eseguito in modalità server (nessuna sessione interattiva locale). Vedi [Flag modalità server](/docs/it/remote-control#start-a-remote-control-session). Dopo aver interrotto il server, puoi ripristinare le sessioni che stava servendo. Vedi [Riprendi sessioni dopo aver interrotto il server](/docs/it/remote-control#resume-sessions-after-stopping-the-server) | `claude remote-control --name "My Project"` |44| `claude remote-control` | Avvia un server [Remote Control](/docs/it/remote-control) per controllare Claude Code da Claude.ai o dall'app Claude. Viene eseguito in modalità server (nessuna sessione interattiva locale). Vedi [Flag modalità server](/docs/it/remote-control#start-a-remote-control-session). Dopo aver interrotto il server, puoi ripristinare le sessioni che stava servendo. Vedi [Riprendi sessioni dopo aver interrotto il server](/docs/it/remote-control#resume-sessions-after-stopping-the-server) | `claude remote-control --name "My Project"` |

45| `claude respawn <id>` | Riavvia una [sessione in background](/docs/it/agent-view#manage-sessions-from-the-shell), in esecuzione o interrotta, mantenendo la sua conversazione intatta. Usa `--all` per riavviare ogni sessione in esecuzione, ad esempio per raccogliere un binario Claude Code aggiornato | `claude respawn 7c5dcf5d` |45| `claude respawn <id>` | Riavvia una [sessione in background](/docs/it/agent-view#manage-sessions-from-the-shell), in esecuzione o interrotta, mantenendo la sua conversazione intatta. Usa `--all` per riavviare ogni sessione in esecuzione, ad esempio per raccogliere un binario Claude Code aggiornato | `claude respawn 7c5dcf5d` |

46| `claude rm <id>` | Rimuovi una [sessione in background](/docs/it/agent-view#manage-sessions-from-the-shell) dall'elenco. Quando la rimozione viene [rifiutata sul worktree della sessione](/docs/it/agent-view#what-deleting-a-session-removes) e un secondo `claude rm` può risolverlo, il rifiuto stampa il flag esatto e il valore da passare: `--discard-unpushed <commit>@<worktree-id>` scarta un worktree che ha commit non inviati insieme a quei commit, e `--force-remove-worktree <worktree-id>` elimina una directory worktree che git o l'hook `WorktreeRemove` non potevano rimuovere. `--discard-unpushed` richiede Claude Code v2.1.260 o successivo, e `--force-remove-worktree` richiede v2.1.268 o successivo. La trascrizione della conversazione rimane sul tuo computer locale, disponibile tramite `claude --resume` | `claude rm 7c5dcf5d` |46| `claude rm <id>` | Rimuovi una [sessione in background](/docs/it/agent-view#manage-sessions-from-the-shell) dall'elenco. Quando la rimozione viene [rifiutata sul worktree della sessione](/docs/it/agent-view#what-deleting-a-session-removes) e un secondo `claude rm` può risolverlo, il rifiuto stampa il flag esatto e il valore da passare: `--discard-unpushed <commit>@<worktree-id>` scarta un worktree che ha commit non inviati insieme a quei commit, e `--force-remove-worktree <worktree-id>` elimina una directory worktree che git o l'hook `WorktreeRemove` non potevano rimuovere. `--discard-unpushed` richiede Claude Code v2.1.260 o successivo, e `--force-remove-worktree` richiede v2.1.268 o successivo. La trascrizione della conversazione rimane sul tuo computer locale, disponibile tramite `claude --resume` | `claude rm 7c5dcf5d` |


51 51 

52Se digiti male un sottocomando, Claude Code suggerisce la corrispondenza più vicina e esce senza avviare una sessione. Ad esempio, `claude udpate` stampa `Did you mean claude update?`.52Se digiti male un sottocomando, Claude Code suggerisce la corrispondenza più vicina e esce senza avviare una sessione. Ad esempio, `claude udpate` stampa `Did you mean claude update?`.

53 53 

54A partire da v2.1.199, `claude --dangerously-skip-permissions daemon <subcommand>` esegue il sottocomando `daemon`. Le versioni precedenti trattavano `daemon <subcommand>` come il prompt per una nuova sessione interattiva, quindi il sottocomando non veniva mai eseguito quando il flag veniva per primo, una configurazione comune quando `claude` è aliasato per includere il flag. Solo un `--dangerously-skip-permissions` o `--allow-dangerously-skip-permissions` iniziale instrada a `daemon` in questo modo; qualsiasi altro flag iniziale avvia comunque una sessione interattiva.54`claude --dangerously-skip-permissions daemon <subcommand>` esegue il sottocomando `daemon`, quindi il sottocomando funziona quando `claude` è aliasato per includere il flag. Solo un `--dangerously-skip-permissions` o `--allow-dangerously-skip-permissions` iniziale instrada a `daemon` in questo modo; con qualsiasi altro flag prima di `daemon`, il sottocomando non viene eseguito.

55 55 

56<h2 id="cli-flags">56<h2 id="cli-flags">

57 Flag CLI57 Flag CLI

Details

118 Aggiungere una credenziale118 Aggiungere una credenziale

119</h4>119</h4>

120 120 

121Aggiungete le credenziali una alla volta dall'editor di un ambiente che già esiste. La finestra di dialogo per un nuovo ambiente non le offre. Non c'è nemmeno modifica. Per modificare gli host o il valore di una credenziale, cancellatela e aggiungetela di nuovo.121Aggiungi le credenziali una alla volta, e non puoi modificare una credenziale dopo averla aggiunta. Per cambiare gli host o il valore di una credenziale, eliminala e aggiungila di nuovo.

122 122 

123<Steps>123<Steps>

124 <Step title="Aprire le credenziali API dell'ambiente">124 <Step title="Aprire le credenziali API dell'ambiente">

125 [Aprite l'ambiente per la modifica](#configure-your-environment) su [claude.ai/code](https://claude.ai/code). Nella finestra di dialogo **Edit cloud environment**, trovate **API credentials** sotto **Environment variables**. Vedete le credenziali già sull'ambiente, ognuna con gli host a cui si applica.125 [Apri l'ambiente per la modifica](#configure-your-environment) su [claude.ai/code](https://claude.ai/code). Nella finestra di dialogo **Edit environment**, trova la sezione **API credentials**. Vedi le credenziali già presenti sull'ambiente, ognuna con gli host a cui si applica.

126 </Step>126 </Step>

127 127 

128 <Step title="Aggiungere la credenziale">128 <Step title="Aggiungere la credenziale">

129 Selezionate **Add credential** e compilate il modulo. Mantenete il **Credential type** predefinito, **Bearer**, per una chiave API che viaggia in un'intestazione di richiesta, e compilate questi campi:129 Seleziona **Add credential** e compila il modulo. Mantieni il **Credential type** predefinito, **Bearer**, per una chiave API che viaggia in un'intestazione della richiesta, e compila questi campi:

130 130 

131 * **Name**: un'etichetta per la credenziale, come `Internal billing API`131 * **Name**: un'etichetta per la credenziale, come `Internal billing API`

132 * **Allowed websites**: gli host dell'API, come `api.example.com`. Un `*.` iniziale corrisponde a ogni sottodominio132 * **Allowed websites**: gli host dell'API, come `api.example.com`. Un `*.` iniziale corrisponde a ogni sottodominio

code-review.md +1 −0

Details

346 * `--fix`: applica i risultati al tuo albero di lavoro dopo la revisione346 * `--fix`: applica i risultati al tuo albero di lavoro dopo la revisione

347 * `--comment`: pubblica i risultati su una pull request GitHub come commenti inline, o su una merge request GitLab come una singola nota347 * `--comment`: pubblica i risultati su una pull request GitHub come commenti inline, o su una merge request GitLab come una singola nota

348 * `--post`: su una revisione cloud `ultra` di una pull request `github.com`, preseleziona la pubblicazione dei risultati finiti nella PR nella finestra di dialogo di avvio; vedi [Pubblica i risultati nella pull request](/docs/it/ultrareview#post-findings-to-the-pull-request). Richiede Claude Code v2.1.227 o successivo348 * `--post`: su una revisione cloud `ultra` di una pull request `github.com`, preseleziona la pubblicazione dei risultati finiti nella PR nella finestra di dialogo di avvio; vedi [Pubblica i risultati nella pull request](/docs/it/ultrareview#post-findings-to-the-pull-request). Richiede Claude Code v2.1.227 o successivo

349 * `--max-findings <n>`, `--max-findings all` o `--max-findings default`: segnala fino a `n` risultati, o tutti i risultati con `all`, al posto del consueto limite della revisione. Le revisioni successive riutilizzano il valore che hai digitato finché non passi `--max-findings default`. Richiede Claude Code v2.1.288 o successivo

349 350 

350 Quando passi `--comment` per una merge request GitLab, Claude Code pubblica i risultati tramite la CLI `glab` di GitLab. Richiede Claude Code v2.1.257 o successivo. Quando `glab` non è installato, Claude stampa i risultati nel terminale.351 Quando passi `--comment` per una merge request GitLab, Claude Code pubblica i risultati tramite la CLI `glab` di GitLab. Richiede Claude Code v2.1.257 o successivo. Quando `glab` non è installato, Claude stampa i risultati nel terminale.

351 352 

commands.md +2 −2

Details

72| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[Skill](/docs/it/skills#bundled-skills).** Carica il materiale di riferimento di [Claude API](https://platform.claude.com/docs/en/api/overview) e [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) per il linguaggio del tuo progetto. Si attiva anche automaticamente quando il tuo codice importa `anthropic` o `@anthropic-ai/sdk`. Per sapere cosa fa ogni sottocomando e quale versione richiede, consulta [Lavorare su progetti Claude API](/docs/it/skills#work-on-claude-api-projects) |72| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[Skill](/docs/it/skills#bundled-skills).** Carica il materiale di riferimento di [Claude API](https://platform.claude.com/docs/en/api/overview) e [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) per il linguaggio del tuo progetto. Si attiva anche automaticamente quando il tuo codice importa `anthropic` o `@anthropic-ai/sdk`. Per sapere cosa fa ogni sottocomando e quale versione richiede, consulta [Lavorare su progetti Claude API](/docs/it/skills#work-on-claude-api-projects) |

73| `/claude-in-chrome [task]` | **[Skill](/docs/it/skills#bundled-skills).** Fa svolgere a Claude un'attività nel tuo browser, come testare una pagina, compilare un modulo o leggere i log della console, tramite [Claude in Chrome](/docs/it/chrome). Disponibile quando l'integrazione con Chrome è abilitata per la sessione, ad esempio con `claude --chrome`, o quando Claude Code può offrirsi di [installare l'estensione](/docs/it/chrome#install-the-extension-when-claude-asks) |73| `/claude-in-chrome [task]` | **[Skill](/docs/it/skills#bundled-skills).** Fa svolgere a Claude un'attività nel tuo browser, come testare una pagina, compilare un modulo o leggere i log della console, tramite [Claude in Chrome](/docs/it/chrome). Disponibile quando l'integrazione con Chrome è abilitata per la sessione, ad esempio con `claude --chrome`, o quando Claude Code può offrirsi di [installare l'estensione](/docs/it/chrome#install-the-extension-when-claude-asks) |

74| `/clear [name]` | Avvia una nuova conversazione con contesto vuoto. Passa un nome per etichettare la conversazione precedente nel selettore di `/resume`. Per liberare contesto continuando la stessa conversazione, usa invece `/compact`. Riprendi la conversazione precedente con `/resume` oppure, nello stesso processo di Claude Code, ripristinala dalla [voce della sessione precedente nel menu di rewind](/docs/it/checkpointing#rewind-past-a-cleared-conversation). Alias: `/reset`, `/new` |74| `/clear [name]` | Avvia una nuova conversazione con contesto vuoto. Passa un nome per etichettare la conversazione precedente nel selettore di `/resume`. Per liberare contesto continuando la stessa conversazione, usa invece `/compact`. Riprendi la conversazione precedente con `/resume` oppure, nello stesso processo di Claude Code, ripristinala dalla [voce della sessione precedente nel menu di rewind](/docs/it/checkpointing#rewind-past-a-cleared-conversation). Alias: `/reset`, `/new` |

75| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/it/skills#bundled-skills).** Esamina il diff corrente, oppure un numero di PR, un branch o un percorso che passi, alla ricerca di bug di correttezza. A seconda del modello e del livello di sforzo, la revisione copre anche opportunità di pulizia. Passa `--fix` per applicare i risultati, `--comment` per pubblicarli sulla PR GitHub o sulla merge request GitLab, oppure `ultra` per eseguire una [revisione cloud](/docs/it/ultrareview) approfondita. La pubblicazione su una merge request GitLab richiede Claude Code v2.1.257 o successiva. Con `ultra` su una PR di `github.com` come destinazione, passa `--post` per preselezionare nella finestra di dialogo di avvio la [pubblicazione dei risultati finali sulla PR](/docs/it/ultrareview#post-findings-to-the-pull-request); `--post` richiede Claude Code v2.1.227 o successiva. Consulta [Esaminare un diff localmente](/docs/it/code-review#review-a-diff-locally) per i livelli di sforzo, la scelta della destinazione e la relazione con `/simplify`. Alias: `/review` |75| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | **[Skill](/docs/it/skills#bundled-skills).** Esamina il diff corrente, oppure un numero di PR, un branch o un percorso che passi, alla ricerca di bug di correttezza. A seconda del modello e del livello di sforzo, la revisione copre anche opportunità di pulizia. Passa `--fix` per applicare i risultati, `--comment` per pubblicarli sulla PR GitHub o sulla merge request GitLab, oppure `ultra` per eseguire una [revisione cloud](/docs/it/ultrareview) approfondita. La pubblicazione su una merge request GitLab richiede Claude Code v2.1.257 o successiva. Con `ultra` su una PR di `github.com` come destinazione, passa `--post` per preselezionare nella finestra di dialogo di avvio la [pubblicazione dei risultati finali sulla PR](/docs/it/ultrareview#post-findings-to-the-pull-request); `--post` richiede Claude Code v2.1.227 o successiva. Consulta [Esaminare un diff localmente](/docs/it/code-review#review-a-diff-locally) per i livelli di sforzo, la scelta della destinazione e la relazione con `/simplify`. Alias: `/review` |

76| `/color [color\|default]` | Imposta il colore della barra del prompt per la sessione corrente. Colori disponibili: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Usa `default` per reimpostarlo, oppure eseguilo senza argomento per scegliere un colore casuale. Quando [Remote Control](/docs/it/remote-control) è connesso, il colore viene sincronizzato con claude.ai/code. Disponibile anche in modalità non interattiva (`-p`); richiede Claude Code v2.1.205 o successiva |76| `/color [color\|default]` | Imposta il colore della barra del prompt per la sessione corrente. Colori disponibili: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Usa `default` per reimpostarlo, oppure eseguilo senza argomento per scegliere un colore casuale. Quando [Remote Control](/docs/it/remote-control) è connesso, il colore viene sincronizzato con claude.ai/code. Disponibile anche in modalità non interattiva (`-p`); richiede Claude Code v2.1.205 o successiva |

77| `/compact [instructions]` | Libera contesto riassumendo la conversazione fino a questo punto. Facoltativamente, passa istruzioni su cosa privilegiare nel riepilogo. Consulta [come la compattazione gestisce regole, skill e file di memoria](/docs/it/context-window#what-survives-compaction) |77| `/compact [instructions]` | Libera contesto riassumendo la conversazione fino a questo punto. Facoltativamente, passa istruzioni su cosa privilegiare nel riepilogo. Consulta [come la compattazione gestisce regole, skill e file di memoria](/docs/it/context-window#what-survives-compaction) |

78| `/config [key=value ...]` | Apre l'interfaccia delle [Impostazioni](/docs/it/settings) per regolare tema, modello, [stile di output](/docs/it/output-styles) e altre preferenze. Passa una o più coppie `key=value` per impostare direttamente un'impostazione senza aprire l'interfaccia, ad esempio `/config thinking=false`, `/config theme=dark` o `/config model=sonnet`. La forma `key=value` funziona anche in modalità non interattiva (`-p`) e dall'app mobile Claude tramite [Remote Control](/docs/it/remote-control). La forma `key=value` non può attivare un'impostazione che richiede la tua conferma nel pannello, come [`autoContinueAtUsageLimit`](/docs/it/interactive-mode#turn-automatic-continue-off), anche se può disattivarla. Esegui `/config --help` per elencare le chiavi accettate. Alias: `/settings` |78| `/config [key=value ...]` | Apre l'interfaccia delle [Impostazioni](/docs/it/settings) per regolare tema, modello, [stile di output](/docs/it/output-styles) e altre preferenze. Passa una o più coppie `key=value` per impostare direttamente un'impostazione senza aprire l'interfaccia, ad esempio `/config thinking=false`, `/config theme=dark` o `/config model=sonnet`. La forma `key=value` funziona anche in modalità non interattiva (`-p`) e dall'app mobile Claude tramite [Remote Control](/docs/it/remote-control). La forma `key=value` non può attivare un'impostazione che richiede la tua conferma nel pannello, come [`autoContinueAtUsageLimit`](/docs/it/interactive-mode#turn-automatic-continue-off), anche se può disattivarla. Esegui `/config --help` per elencare le chiavi accettate. Alias: `/settings` |


134| `/remote-env` | Sceglie l'[ambiente cloud](/docs/it/cloud-environments#select-an-environment-from-the-cli) predefinito per le sessioni cloud che avvii dalla CLI |134| `/remote-env` | Sceglie l'[ambiente cloud](/docs/it/cloud-environments#select-an-environment-from-the-cli) predefinito per le sessioni cloud che avvii dalla CLI |

135| `/rename [name]` | Rinomina la sessione corrente e mostra il nome sulla barra del prompt. Senza un nome, ne genera automaticamente uno dalla cronologia della conversazione. Disponibile anche in modalità non interattiva (`-p`); richiede Claude Code v2.1.205 o successiva. Da ogni superficie in cui è possibile rinominare, inclusi claude.ai e l'app desktop, Claude Code sostituisce con spazi i caratteri di controllo e invisibili nel nuovo nome e limita il nome a 200 caratteri. Se il nome è vuoto una volta rimossi i caratteri invisibili, Claude Code lo rifiuta e mostra `That name is empty once invisible characters are removed. Usage: /rename <name>`. La sostituzione dei caratteri e il limite di lunghezza richiedono Claude Code v2.1.221 o successiva. Se un'altra sessione attiva su questo computer usa già un nome che passi, Claude Code applica invece [una sua variante](/docs/it/sessions#name-your-sessions) |135| `/rename [name]` | Rinomina la sessione corrente e mostra il nome sulla barra del prompt. Senza un nome, ne genera automaticamente uno dalla cronologia della conversazione. Disponibile anche in modalità non interattiva (`-p`); richiede Claude Code v2.1.205 o successiva. Da ogni superficie in cui è possibile rinominare, inclusi claude.ai e l'app desktop, Claude Code sostituisce con spazi i caratteri di controllo e invisibili nel nuovo nome e limita il nome a 200 caratteri. Se il nome è vuoto una volta rimossi i caratteri invisibili, Claude Code lo rifiuta e mostra `That name is empty once invisible characters are removed. Usage: /rename <name>`. La sostituzione dei caratteri e il limite di lunghezza richiedono Claude Code v2.1.221 o successiva. Se un'altra sessione attiva su questo computer usa già un nome che passi, Claude Code applica invece [una sua variante](/docs/it/sessions#name-your-sessions) |

136| `/resume [session]` | Riprende una conversazione per ID o nome, oppure apre il selettore delle sessioni. Le [sessioni in background](/docs/it/agent-view) compaiono nel selettore contrassegnate con `bg`. Riprendendone una ancora in esecuzione, dal selettore o per ID o nome, [si apre quella sessione](/docs/it/sessions#resume-a-running-background-session): la conversazione corrente passa in background e questo terminale si collega a quella in esecuzione. Premi `←` su un prompt vuoto per tornare alla vista agenti, che elenca anche la conversazione che hai lasciato. Prima della v2.1.285, Claude Code rifiutava e ti diceva di aprire la sessione con `claude attach` o di arrestarla prima. Alias: `/continue` |136| `/resume [session]` | Riprende una conversazione per ID o nome, oppure apre il selettore delle sessioni. Le [sessioni in background](/docs/it/agent-view) compaiono nel selettore contrassegnate con `bg`. Riprendendone una ancora in esecuzione, dal selettore o per ID o nome, [si apre quella sessione](/docs/it/sessions#resume-a-running-background-session): la conversazione corrente passa in background e questo terminale si collega a quella in esecuzione. Premi `←` su un prompt vuoto per tornare alla vista agenti, che elenca anche la conversazione che hai lasciato. Prima della v2.1.285, Claude Code rifiutava e ti diceva di aprire la sessione con `claude attach` o di arrestarla prima. Alias: `/continue` |

137| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | Alias di [`/code-review`](/docs/it/code-review#review-a-diff-locally): esamina il diff corrente, oppure un numero di PR, un branch o un percorso che passi, come `/review 1234`, e accetta gli stessi livelli di sforzo e flag. Se non indichi un livello, la revisione riutilizza l'ultimo livello da `low` a `max` che hai digitato; consulta [Esaminare un diff localmente](/docs/it/code-review#review-a-diff-locally) per le regole esatte. Per una revisione cloud approfondita, usa [`/code-review ultra`](/docs/it/ultrareview). Prima della v2.1.223, `/review` era un comando separato che eseguiva una revisione in un solo passaggio e di sola lettura di una pull request GitHub indicata per numero, elencando le PR aperte tra cui scegliere quando eseguito senza argomento; dalla v2.1.186 alla v2.1.201, eseguiva lo stesso motore multi-agente di `/code-review medium` |137| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | Alias di [`/code-review`](/docs/it/code-review#review-a-diff-locally): esamina il diff corrente, oppure un numero di PR, un branch o un percorso che passi, come `/review 1234`, e accetta gli stessi livelli di sforzo e flag. Se non indichi un livello, la revisione riutilizza l'ultimo livello da `low` a `max` che hai digitato; consulta [Esaminare un diff localmente](/docs/it/code-review#review-a-diff-locally) per le regole esatte. Per una revisione cloud approfondita, usa [`/code-review ultra`](/docs/it/ultrareview). Prima della v2.1.223, `/review` era un comando separato che eseguiva una revisione in un solo passaggio e di sola lettura di una pull request GitHub indicata per numero, elencando le PR aperte tra cui scegliere quando eseguito senza argomento; dalla v2.1.186 alla v2.1.201, eseguiva lo stesso motore multi-agente di `/code-review medium` |

138| `/rewind` | Riporta la conversazione e/o il codice a un punto precedente, oppure crea un riepilogo a partire da un messaggio selezionato. Consulta [checkpointing](/docs/it/checkpointing). Alias: `/checkpoint`, `/undo` |138| `/rewind` | Riporta la conversazione e/o il codice a un punto precedente, oppure crea un riepilogo a partire da un messaggio selezionato. Consulta [checkpointing](/docs/it/checkpointing). Alias: `/checkpoint`, `/undo` |

139| `/run` | **[Skill](/docs/it/skills#bundled-skills).** Avvia e gestisce l'app del tuo progetto per vedere una modifica funzionare, non solo superare i test. Consulta [Eseguire e verificare la tua app](/docs/it/skills#run-and-verify-your-app) |139| `/run` | **[Skill](/docs/it/skills#bundled-skills).** Avvia e gestisce l'app del tuo progetto per vedere una modifica funzionare, non solo superare i test. Consulta [Eseguire e verificare la tua app](/docs/it/skills#run-and-verify-your-app) |

140| `/run-skill-generator` | **[Skill](/docs/it/skills#bundled-skills).** Insegna a `/run` e `/verify` come eseguire la build, avviare e gestire l'app del tuo progetto a partire da un ambiente pulito, scrivendo una [skill](/docs/it/skills#run-and-verify-your-app) per progetto |140| `/run-skill-generator` | **[Skill](/docs/it/skills#bundled-skills).** Insegna a `/run` e `/verify` come eseguire la build, avviare e gestire l'app del tuo progetto a partire da un ambiente pulito, scrivendo una [skill](/docs/it/skills#run-and-verify-your-app) per progetto |

Details

42<Tabs>42<Tabs>

43 <Tab title="Email">43 <Tab title="Email">

44 ```text theme={null}44 ```text theme={null}

45 Subject: Claude Code è live per [Engineering / vostro team]45 Subject: Claude Code è live per [Engineering / il tuo team]

46 46 

47 Team,47 Team,

48 48 

49 A partire da oggi avete accesso a Claude Code, un agente di codifica AI che49 A partire da oggi hai accesso a Claude Code, un agente di codifica AI che

50 funziona nel vostro terminale, legge il vostro codebase effettivo e lavora50 funziona nel tuo terminale, legge il tuo codebase effettivo e porta a

51 attraverso compiti reali da capo a fondo: debug, refactor, test, PR. Non è51 termine compiti reali da capo a fondo: debug, refactor, test, PR. Non è

52 autocomplete e non è una finestra di chat. Modifica file, esegue i vostri52 autocomplete e non è una finestra di chat. Modifica file ed esegue i tuoi

53 comandi e chiede il permesso prima di fare qualcosa di rischioso.53 comandi.

54 54 

55 Iniziate in due minuti:55 Inizia in due minuti:

56 56 

57 curl -fsSL https://claude.ai/install.sh | bash57 curl -fsSL https://claude.ai/install.sh | bash

58 cd <your-repo>58 cd <your-repo>

59 claude59 claude

60 60 

61 Poi eseguite /init una volta. Claude legge il vostro progetto e scrive un61 Poi esegui /init una volta. Claude legge il tuo progetto e scrive un

62 CLAUDE.md con i vostri comandi di build e convenzioni, così smettete di62 CLAUDE.md con i tuoi comandi di build e le tue convenzioni, così smetti di

63 re-spiegare le basi.63 rispiegare le basi.

64 64 

65 Poi provate uno di questi nel repo in cui siete già:65 Poi prova uno di questi nel repo in cui sei già:

66 66 

67 - "Il test in [file] è instabile. Scopri perché e correggilo"67 - "Il test in [file] è instabile. Scopri perché e correggilo"

68 - "Spiegami come [module] gestisce [X]"68 - "Spiegami come [module] gestisce [X]"

69 - "Guarda il mio diff funzionante e dimmi cosa è rischioso prima che lo69 - "Guarda il mio diff di lavoro e dimmi cosa è rischioso prima che lo

70 spinga"70 pushi"

71 71 

72 Dove va il vostro codice: Claude Code funziona nel vostro terminale e parla72 Dove va il tuo codice: Claude Code funziona nel tuo terminale e comunica

73 direttamente all'API di Anthropic, senza server di terze parti nel loop.73 direttamente con l'API di Anthropic. Con il nostro piano Team o Enterprise,

74 Chiede prima di modificare file o eseguire comandi. Secondo il nostro74 Anthropic non utilizza il tuo codice o i tuoi prompt per addestrare i suoi

75 accordo Enterprise, Anthropic non utilizza il vostro codice o i vostri75 modelli.

76 prompt per addestrare i suoi modelli.

77 Dettagli: https://code.claude.com/docs/it/data-usage76 Dettagli: https://code.claude.com/docs/it/data-usage

78 https://code.claude.com/docs/it/security77 https://code.claude.com/docs/it/security

79 78 


82 81 

83 - [Name]82 - [Name]

84 83 

85 P.S. Preferite il vostro editor? C'è un'estensione VS Code e un plugin84 P.S. Preferisci il tuo editor? C'è un'estensione VS Code e un plugin

86 JetBrains. Lo stesso agente, nessun terminale richiesto.85 JetBrains. Lo stesso agente, nessun terminale richiesto.

87 ```86 ```

88 </Tab>87 </Tab>


91 ```markdown theme={null}90 ```markdown theme={null}

92 🚀 *Claude Code è live per [team]*91 🚀 *Claude Code è live per [team]*

93 92 

94 Agente di codifica AI, funziona nel vostro terminale, legge il vostro repo,93 Agente di codifica AI, funziona nel tuo terminale, legge il tuo repo,

95 fa lavoro reale: bug, refactor, test, PR. Chiede prima di toccare qualcosa.94 fa lavoro reale: bug, refactor, test, PR.

96 95 

97 `curl -fsSL https://claude.ai/install.sh | bash` → `cd your-repo` → `claude`96 `curl -fsSL https://claude.ai/install.sh | bash` → `cd your-repo` → `claude`

98 97 

99 *Prima cosa da provare* → esegui `/init`, poi: "il test in [file] è98 *Prima cosa da provare* → esegui `/init`, poi: "il test in [file] è

100 instabile, scopri perché e correggilo."99 instabile, scopri perché e correggilo."

101 100 

102 🔒 Funziona nel vostro terminale, parla solo all'API di Anthropic. Secondo101 🔒 Funziona nel tuo terminale, comunica direttamente con l'API di Anthropic.

103 il vostro piano Enterprise il vostro codice e i vostri prompt non vengono102 Con il nostro piano Team o Enterprise, il tuo codice e i tuoi prompt non

104 utilizzati per addestrare i modelli.103 vengono utilizzati per addestrare i modelli.

105 Data usage → https://code.claude.com/docs/it/data-usage104 Data usage → https://code.claude.com/docs/it/data-usage

106 105 

107 📚 Quickstart · VS Code · Corso gratuito di 1 ora106 📚 Guida rapida · VS Code · Corso gratuito di 1 ora

108 https://code.claude.com/docs/it/quickstart107 https://code.claude.com/docs/it/quickstart

109 https://code.claude.com/docs/it/vs-code108 https://code.claude.com/docs/it/vs-code

110 https://academy.claude.com/courses/claude-code-in-action109 https://academy.claude.com/courses/claude-code-in-action


174Usate per un rollout in fasi. Inviate solo al gruppo pilota.173Usate per un rollout in fasi. Inviate solo al gruppo pilota.

175 174 

176```text theme={null}175```text theme={null}

177Subject: Siete nel pilota di Claude Code176Subject: Sei nel pilota di Claude Code

178 177 

179[Name / team],178[Name / team],

180 179 

181Siete nella prima ondata di Claude Code presso [company]. Abbiamo scelto180Sei nella prima ondata di Claude Code presso [company]. Abbiamo scelto

182questo gruppo perché lo metterete su problemi reali e ci direte la verità181questo gruppo perché lo metterai alla prova su problemi reali e ci dirai

183al riguardo.182la verità al riguardo.

184 183 

185La richiesta: usatelo su almeno un compito reale questa settimana, poi184La richiesta: usalo su almeno un compito reale questa settimana, poi

186lasciate una nota in #claude-code-pilot coprendo cosa ha funzionato, cosa185lascia una nota in #claude-code-pilot su cosa ha funzionato, cosa era

187era fastidioso e cosa vi ha sorpreso. Questo feedback decide come lo186fastidioso e cosa ti ha sorpreso. Questo feedback decide come lo

188implementiamo a tutti gli altri.187distribuiremo a tutti gli altri.

189 188 

190[Continuate con "Iniziate in due minuti" dall'annuncio standard]189[Continua con "Inizia in due minuti" dall'annuncio standard]

191 190 

192Una cosa extra per i piloti: al vostro primo cambio multi-file, premete191Una cosa extra per i piloti: alla tua prima modifica su più file, premi

193Shift+Tab finché non vedete "plan". Claude esporrà esattamente cosa intende192Shift+Tab finché non vedi "plan". Claude esporrà cosa intende fare senza

194fare prima di toccare un file. È il modo più veloce per calibrare quanto193modificare il tuo codice sorgente. È il modo più veloce per calibrare

195fidarsi.194quanto fidarti.

196```195```

197 196 

198<h3 id="champion-recruitment-dm">197<h3 id="champion-recruitment-dm">


307```markdown theme={null}306```markdown theme={null}

308🛡️ *Suggerimento: Un tasto tra "guarda ma non toccare" e "fallo e basta"*307🛡️ *Suggerimento: Un tasto tra "guarda ma non toccare" e "fallo e basta"*

309 308 

310A volte volete che Claude chieda prima di ogni modifica. A volte volete solo che lo faccia. Non dovreste dover scegliere uno per sempre.309A volte vuoi che Claude chieda prima di ogni modifica. A volte vuoi solo che vada avanti. Non dovresti dover scegliere una volta per tutte.

311 310 

312*Shift+Tab* cicla attraverso quanto Claude può fare senza chiedere: *Manual* (il valore di impostazione `default`) chiede prima di modifiche ai file e della maggior parte dei comandi shell, *acceptEdits* lascia fluire le modifiche ai file e i comandi comuni del filesystem mentre controlla ancora prima di altri comandi shell, e *plan* propone cambiamenti per la vostra approvazione prima che qualcosa sia toccato. La modalità Plan è il costruttore di fiducia, quindi iniziate da lì per qualsiasi cosa che tocchi più file.311*Shift+Tab* scorre tra i livelli di autonomia di Claude senza chiedere: *Manual* (il valore di impostazione `default`) chiede prima delle modifiche ai file e della maggior parte dei comandi shell, *acceptEdits* lascia passare le modifiche ai file e i comandi comuni del filesystem continuando a chiedere prima degli altri comandi shell, e *plan* analizza e propone modifiche senza toccare il tuo codice sorgente. Il plan mode è quello che costruisce fiducia, quindi parti da lì per qualsiasi cosa tocchi più file.

313 312 

314*Provalo ora:* al vostro prossimo refactor, premete Shift+Tab finché non vedete "plan", poi descrivete il cambiamento. Otterrete una proposta completa prima che un singolo file si muova.313*Provalo ora:* al tuo prossimo refactor, premi Shift+Tab finché non vedi "plan", poi descrivi la modifica. Otterrai una proposta completa da rivedere.

315 314 

316📖 Modalità di permesso → https://code.claude.com/docs/it/permissions315📖 Modalità di permesso → https://code.claude.com/docs/it/permissions

317```316```


437**Architettura di sicurezza**436**Architettura di sicurezza**

438 437 

439```markdown theme={null}438```markdown theme={null}

440🔐 *Suggerimento: La risposta a "è sicuro?" per la prossima volta che vi viene chiesto*439🔐 *Suggerimento: La risposta a "è sicuro?" per la prossima volta che te lo chiedono*

441 440 

442Qualcuno nel vostro team chiederà "aspetta, dove va il mio codice?" Ecco la versione breve che potete incollare.441Qualcuno nel tuo team chiederà "aspetta, dove va a finire il mio codice?" Ecco la versione breve che puoi incollare.

443 442 

444Permission-first per design. Ogni modifica di file, comando shell e chiamata esterna è controllata dalla vostra approvazione. La CLI funziona nel vostro terminale e parla direttamente all'API di Anthropic, senza server di terze parti, e supporta sandboxing opzionale a livello di OS per i comandi shell. Su un piano Team o Enterprise, Anthropic non utilizza il vostro codice o i vostri prompt per addestrare i suoi modelli.443Una modalità di permesso stabilisce quali azioni Claude può eseguire senza chiederti prima conferma. La CLI funziona nel tuo terminale, comunica direttamente con l'API di Anthropic e supporta il sandboxing opzionale a livello di sistema operativo per i comandi shell. Con un piano Team o Enterprise, Anthropic non usa il tuo codice o i tuoi prompt per addestrare i suoi modelli.

445 444 

446*Provalo ora:* salvate questi due link per la prossima volta che la domanda viene posta. Rispondono alla maggior parte delle domande di revisione della sicurezza.445*Provalo ora:* salva questi due link per la prossima volta che salta fuori la domanda. Rispondono alla maggior parte delle domande delle revisioni di sicurezza.

447 446 

448📖 https://code.claude.com/docs/it/security447📖 https://code.claude.com/docs/it/security

449📖 https://code.claude.com/docs/it/data-usage448📖 https://code.claude.com/docs/it/data-usage


480| - | - |479| - | - |

481| "Funziona in VS Code?" | Sì. Esiste un'estensione VS Code e un plugin JetBrains con le stesse funzionalità, integrati nel vostro editor. [VS Code →](/docs/it/vs-code) |480| "Funziona in VS Code?" | Sì. Esiste un'estensione VS Code e un plugin JetBrains con le stesse funzionalità, integrati nel vostro editor. [VS Code →](/docs/it/vs-code) |

482| "Devo configurare qualcosa prima?" | No. Installate, quindi eseguite `claude` in qualsiasi repository. Eseguite `/init` una volta e siete pronti. [Quickstart →](/docs/it/quickstart) |481| "Devo configurare qualcosa prima?" | No. Installate, quindi eseguite `claude` in qualsiasi repository. Eseguite `/init` una volta e siete pronti. [Quickstart →](/docs/it/quickstart) |

483| "Dove va il mio codice?" | La CLI viene eseguita nel vostro terminale e invia il contesto all'API di Anthropic per l'inferenza, senza server di terze parti. Su un piano Team o Enterprise, il vostro codice e i vostri prompt non vengono utilizzati per addestrare i modelli. [Data usage →](/docs/it/data-usage) |482| "Dove va il mio codice?" | La CLI viene eseguita nel tuo terminale e invia il contesto all'API di Anthropic per l'inferenza. Su un piano Team o Enterprise, il tuo codice e i tuoi prompt non vengono utilizzati per addestrare i modelli. [Utilizzo dei dati →](/docs/it/data-usage) |

484| "Può vedere l'intero mio repository?" | Legge ciò a cui gli date accesso. Le letture di file all'interno della vostra directory di lavoro non richiedono prompt; i prompt di autorizzazione controllano le modifiche, i comandi shell non di sola lettura e le letture di file-tool al di fuori di quella directory. Un insieme integrato di comandi shell di sola lettura come `ls` e `cat` viene eseguito senza richiedere prompt; limitatelo con le [regole sandbox `denyRead`](/docs/it/sandboxing#filesystem-isolation). [Permissions →](/docs/it/permissions) |483| "Può vedere l'intero mio repository?" | Legge ciò a cui gli dai accesso. Le letture di file all'interno della tua directory di lavoro non richiedono conferma. [Permessi →](/docs/it/permissions) |

485| "Come è diverso da Copilot?" | Copilot completa le righe. Claude Code è un agente che legge file, esegue comandi e apporta modifiche multi-file. [Overview →](/docs/it/overview) |484| "Come è diverso da Copilot?" | Copilot completa le righe. Claude Code è un agente che legge file, esegue comandi e apporta modifiche multi-file. [Overview →](/docs/it/overview) |

486| "Cosa dovrei provare per primo?" | Un bug che avete rimandato perché è tedioso. "Il test in \[file] è instabile, scopri perché." [Quickstart →](/docs/it/quickstart) |485| "Cosa dovrei provare per primo?" | Un bug che avete rimandato perché è tedioso. "Il test in \[file] è instabile, scopri perché." [Quickstart →](/docs/it/quickstart) |

487 486 

Details

226* **La sessione ricevente richiede autorizzazioni**: Claude Code consegna ogni messaggio. Trattiene uno per la tua approvazione solo quando la sessione di invio si identifica come bypassando i prompt di autorizzazione.226* **La sessione ricevente richiede autorizzazioni**: Claude Code consegna ogni messaggio. Trattiene uno per la tua approvazione solo quando la sessione di invio si identifica come bypassando i prompt di autorizzazione.

227* **La sessione ricevente bypassa i prompt di autorizzazione**: Claude Code trattiene ogni messaggio per la tua approvazione. Consegna uno solo quando la sessione di invio si identifica come bypassando anche.227* **La sessione ricevente bypassa i prompt di autorizzazione**: Claude Code trattiene ogni messaggio per la tua approvazione. Consegna uno solo quando la sessione di invio si identifica come bypassando anche.

228 228 

229Quando il default trattiene un messaggio, Claude Code apre una finestra di dialogo di approvazione nella sessione ricevente. La finestra di dialogo mostra il mittente e un'anteprima:229Quando il default trattiene un messaggio in una sessione interattiva nel terminale, Claude Code apre lì una finestra di dialogo di approvazione. La finestra di dialogo mostra il mittente e un'anteprima:

230 230 

231* **Approve** consegna quel messaggio a Claude.231* **Approve** consegna quel messaggio a Claude.

232* **Deny**, o chiudere la finestra di dialogo, lo elimina.232* **Deny**, o chiudere la finestra di dialogo, lo elimina.


234* Mentre nessun terminale è collegato a una [sessione in background](/docs/it/agent-view), Claude Code lascia la finestra di dialogo aperta oltre la scadenza. Dopo che colleghi, se la finestra di dialogo rimane senza risposta per un intero periodo di scadenza, Claude Code la chiude e elimina il messaggio.234* Mentre nessun terminale è collegato a una [sessione in background](/docs/it/agent-view), Claude Code lascia la finestra di dialogo aperta oltre la scadenza. Dopo che colleghi, se la finestra di dialogo rimane senza risposta per un intero periodo di scadenza, Claude Code la chiude e elimina il messaggio.

235* Se la classe di modalità di autorizzazione di questa sessione cambia mentre i messaggi sono trattenuti, Claude Code riapplica le regole in entrata, consegna i messaggi che ora accetta, e mostra un avviso.235* Se la classe di modalità di autorizzazione di questa sessione cambia mentre i messaggi sono trattenuti, Claude Code riapplica le regole in entrata, consegna i messaggi che ora accetta, e mostra un avviso.

236 236 

237Una sessione nell'estensione VS Code o nell'app Desktop non può mostrare la finestra di dialogo. Lì Claude Code mantiene un messaggio trattenuto fino alla stessa scadenza, come descritto in [Sessioni non interattive](#non-interactive-sessions).

238 

237Claude Code trattiene al massimo 100 messaggi, e oltre quello elimina i più vecchi.239Claude Code trattiene al massimo 100 messaggi, e oltre quello elimina i più vecchi.

238 240 

239<h3 id="non-interactive-sessions">241<h3 id="non-interactive-sessions">

env-vars.md +311 −309

Details

124 Variabili124 Variabili

125</h2>125</h2>

126 126 

127Le variabili numeriche come timeout, budget di token e numero di nuovi tentativi accettano la notazione scientifica e le grafie con separatore di cifre oltre alle semplici cifre, tranne dove la riga di una variabile indica che accetta solo cifre semplici. Ad esempio, Claude Code legge `2e3` come 2000 e `64_000` come 64000. Prima della v2.1.211, queste grafie potevano impostare silenziosamente un valore molto più piccolo, ad esempio `1e6` impostava un timeout a 1.127Le variabili numeriche come timeout, budget di token e numero di nuovi tentativi accettano la notazione scientifica e le grafie con separatore di cifre oltre alle cifre semplici, tranne dove la riga di una variabile indica che accetta solo cifre semplici. Ad esempio, Claude Code legge `2e3` come 2000 e `64_000` come 64000. Prima della v2.1.211, queste grafie potevano impostare silenziosamente un valore molto più piccolo, ad esempio `1e6` impostava un timeout a 1.

128 128 

129<Note>129<Note>

130 Per le variabili che attivano o disattivano un comportamento, imposta `1`, `true`, `yes` o `on` per attivarlo e `0`, `false`, `no` o `off` per disattivarlo, con qualsiasi combinazione di maiuscole e minuscole.130 Per le variabili che attivano o disattivano un comportamento, imposta `1`, `true`, `yes` o `on` per attivarlo e `0`, `false`, `no` o `off` per disattivarlo, con qualsiasi combinazione di maiuscole e minuscole.

131 131 

132 Alcune variabili verificano solo se le hai impostate, quindi qualsiasi valore non vuoto, incluso `0`, attiva il comportamento, e lo disattivi rimuovendo la variabile o impostandola su un valore vuoto. Queste variabili funzionano in questo modo:132 Alcune variabili verificano solo se le hai impostate o meno, quindi qualsiasi valore non vuoto, incluso `0`, attiva il comportamento, e lo disattivi rimuovendo la variabile o impostandola su un valore vuoto. Queste variabili funzionano in questo modo:

133 133 

134 * `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`134 * `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`

135 * `DISABLE_TELEMETRY`135 * `DISABLE_TELEMETRY`


138 * `FALLBACK_FOR_ALL_PRIMARY_MODELS`138 * `FALLBACK_FOR_ALL_PRIMARY_MODELS`

139 * `IS_DEMO`139 * `IS_DEMO`

140 140 

141 Un'altra variabile ha una regola propria: `FORCE_HYPERLINK` legge un numero, quindi solo `0` la disattiva. Anche la riga di ciascuna variabile indica la sua regola.141 Un'altra variabile ha una propria regola: `FORCE_HYPERLINK` legge un numero, quindi solo `0` la disattiva. Anche la riga di ciascuna variabile indica la propria regola.

142</Note>142</Note>

143 143 

144| Variabile | Scopo |144| Variabile | Scopo |

145| :- | :- |145| :- | :- |

146| `ANTHROPIC_API_KEY` | Chiave API inviata come intestazione `X-Api-Key`. Quando è impostata, questa chiave viene usata al posto del tuo abbonamento Claude Pro, Max, Team o Enterprise anche se hai effettuato l'accesso. In modalità non interattiva (`-p`), la chiave viene sempre usata quando presente. In modalità interattiva, ti viene chiesto di approvare la chiave una volta prima che sovrascriva il tuo abbonamento. Per usare invece il tuo abbonamento, esegui `unset ANTHROPIC_API_KEY` |146| `ANTHROPIC_API_KEY` | Chiave API inviata come header `X-Api-Key`. Quando è impostata, questa chiave viene usata al posto del tuo abbonamento Claude Pro, Max, Team o Enterprise anche se hai effettuato l'accesso. In modalità non interattiva (`-p`), la chiave viene sempre usata quando presente. In modalità interattiva, ti viene chiesto di approvare la chiave una volta prima che sostituisca il tuo abbonamento. Per usare invece il tuo abbonamento, esegui `unset ANTHROPIC_API_KEY` |

147| `ANTHROPIC_AUTH_TOKEN` | Valore personalizzato per l'intestazione `Authorization` (il valore che imposti qui avrà il prefisso `Bearer `) |147| `ANTHROPIC_AUTH_TOKEN` | Valore personalizzato per l'header `Authorization` (al valore che imposti qui verrà aggiunto il prefisso `Bearer `) |

148| `ANTHROPIC_AWS_API_KEY` | Chiave API del workspace per [Claude Platform on AWS](/docs/it/claude-platform-on-aws), generata nella AWS Console. Inviata come `x-api-key` e ha la precedenza su AWS SigV4 |148| `ANTHROPIC_AWS_API_KEY` | Chiave API del workspace per [Claude Platform on AWS](/docs/it/claude-platform-on-aws), generata nella Console AWS. Inviata come `x-api-key` e ha la precedenza su AWS SigV4 |

149| `ANTHROPIC_AWS_BASE_URL` | Sovrascrive l'URL dell'endpoint di [Claude Platform on AWS](/docs/it/claude-platform-on-aws). Usala per regioni personalizzate o quando instradi le richieste tramite un [gateway LLM](/docs/it/llm-gateway). Il valore predefinito è `https://aws-external-anthropic.{region}.api.aws`. Claude Code determina la regione con la [stessa precedenza usata su Amazon Bedrock](/docs/it/amazon-bedrock#3-configure-claude-code) |149| `ANTHROPIC_AWS_BASE_URL` | Sovrascrive l'URL dell'endpoint di [Claude Platform on AWS](/docs/it/claude-platform-on-aws). Usala per regioni personalizzate o quando instradi le richieste tramite un [LLM gateway](/docs/it/llm-gateway). Il valore predefinito è `https://aws-external-anthropic.{region}.api.aws`. Claude Code risolve la regione con la [stessa precedenza usata su Amazon Bedrock](/docs/it/amazon-bedrock#3-configure-claude-code) |

150| `ANTHROPIC_AWS_WORKSPACE_ID` | Obbligatoria per [Claude Platform on AWS](/docs/it/claude-platform-on-aws). Inviata in ogni richiesta come intestazione `anthropic-workspace-id` |150| `ANTHROPIC_AWS_WORKSPACE_ID` | Obbligatoria per [Claude Platform on AWS](/docs/it/claude-platform-on-aws). Inviata in ogni richiesta come header `anthropic-workspace-id` |

151| `ANTHROPIC_BASE_URL` | Sovrascrive l'endpoint API per instradare le richieste tramite un proxy o un gateway. Quando è impostata su un host non di prima parte, [MCP Tool Search](/docs/it/mcp#scale-with-mcp-tool-search) è disattivato per impostazione predefinita. Imposta `ENABLE_TOOL_SEARCH=true` se il tuo proxy inoltra i blocchi `tool_reference`. A partire dalla v2.1.196, [Remote Control](/docs/it/remote-control#requirements) è disattivato quando questa variabile punta a un host diverso da `api.anthropic.com`, in linea con il suo comportamento su Amazon Bedrock, Google Cloud's Agent Platform e Microsoft Foundry |151| `ANTHROPIC_BASE_URL` | Sovrascrive l'endpoint API per instradare le richieste tramite un proxy o un gateway. Quando è impostata su un host non di prima parte, [MCP Tool Search](/docs/it/mcp#scale-with-mcp-tool-search) è disabilitato per impostazione predefinita. Imposta `ENABLE_TOOL_SEARCH=true` se il tuo proxy inoltra i blocchi `tool_reference`. A partire dalla v2.1.196, [Remote Control](/docs/it/remote-control#requirements) è disabilitato quando questa variabile punta a un host diverso da `api.anthropic.com`, in linea con il suo comportamento su Amazon Bedrock, Google Cloud's Agent Platform e Microsoft Foundry |

152| `ANTHROPIC_BEDROCK_BASE_URL` | Sovrascrive l'URL dell'endpoint Amazon Bedrock. Usala per endpoint Amazon Bedrock personalizzati o quando instradi le richieste tramite un [gateway LLM](/docs/it/llm-gateway). Consulta [Amazon Bedrock](/docs/it/amazon-bedrock) |152| `ANTHROPIC_BEDROCK_BASE_URL` | Sovrascrive l'URL dell'endpoint di Amazon Bedrock. Usala per endpoint Amazon Bedrock personalizzati o quando instradi le richieste tramite un [LLM gateway](/docs/it/llm-gateway). Consulta [Amazon Bedrock](/docs/it/amazon-bedrock) |

153| `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | Sovrascrive l'URL dell'endpoint Amazon Bedrock Mantle. Consulta [Endpoint Mantle](/docs/it/amazon-bedrock#use-the-mantle-endpoint) |153| `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | Sovrascrive l'URL dell'endpoint Amazon Bedrock Mantle. Consulta [Endpoint Mantle](/docs/it/amazon-bedrock#use-the-mantle-endpoint) |

154| `ANTHROPIC_BEDROCK_REGION_PREFIX` | Prefisso del profilo di inferenza tra regioni (`us`, `eu`, `apac`, `jp`, `au` o `global`) che Claude Code prova per primo al posto di quello derivato dalla regione AWS. Ignorata nelle regioni AWS GovCloud. Richiede Claude Code v2.1.224 o successiva. Consulta [Amazon Bedrock](/docs/it/amazon-bedrock#cross-region-inference-profile-prefixes) |154| `ANTHROPIC_BEDROCK_REGION_PREFIX` | Prefisso del profilo di inferenza tra regioni (`us`, `eu`, `apac`, `jp`, `au` o `global`) che Claude Code prova per primo al posto di quello derivato dalla regione AWS. Ignorata nelle regioni AWS GovCloud. Richiede Claude Code v2.1.224 o successiva. Consulta [Amazon Bedrock](/docs/it/amazon-bedrock#cross-region-inference-profile-prefixes) |

155| `ANTHROPIC_BEDROCK_SERVICE_TIER` | [Livello di servizio](https://docs.aws.amazon.com/bedrock/latest/userguide/service-tiers-inference.html) di Amazon Bedrock (`default`, `flex` o `priority`). Inviato come intestazione `X-Amzn-Bedrock-Service-Tier`. Consulta [Amazon Bedrock](/docs/it/amazon-bedrock#service-tiers) |155| `ANTHROPIC_BEDROCK_SERVICE_TIER` | [Livello di servizio](https://docs.aws.amazon.com/bedrock/latest/userguide/service-tiers-inference.html) di Amazon Bedrock (`default`, `flex` o `priority`). Inviato come header `X-Amzn-Bedrock-Service-Tier`. Consulta [Amazon Bedrock](/docs/it/amazon-bedrock#service-tiers) |

156| `ANTHROPIC_BETAS` | Elenco separato da virgole di valori aggiuntivi dell'intestazione `anthropic-beta` da includere nelle richieste API. Claude Code invia già le intestazioni beta di cui ha bisogno; usa questa variabile per aderire a una [beta dell'API Anthropic](https://platform.claude.com/docs/en/api/beta-headers) prima che Claude Code aggiunga il supporto nativo. A differenza del [flag `--betas`](/docs/it/cli-reference#cli-flags), che richiede l'autenticazione con chiave API, questa variabile funziona con tutti i metodi di autenticazione, incluso l'abbonamento Claude.ai |156| `ANTHROPIC_BETAS` | Elenco separato da virgole di valori aggiuntivi dell'header `anthropic-beta` da includere nelle richieste API. Claude Code invia già gli header beta di cui ha bisogno; usa questa variabile per aderire a una [beta dell'API Anthropic](https://platform.claude.com/docs/en/api/beta-headers) prima che Claude Code aggiunga il supporto nativo. A differenza del [flag `--betas`](/docs/it/cli-reference#cli-flags), che richiede l'autenticazione con chiave API, questa variabile funziona con tutti i metodi di autenticazione, incluso l'abbonamento Claude.ai |

157| `ANTHROPIC_CUSTOM_HEADERS` | Intestazioni personalizzate da aggiungere alle richieste (formato `Name: Value`, separate da un a capo per più intestazioni). Se un nome o un valore contiene un carattere che un'intestazione HTTP non può trasportare, come una virgoletta curva o uno spazio a larghezza zero, la richiesta fallisce con un errore che identifica la coppia in base alla posizione. Richiede Claude Code v2.1.227 o successiva. [Valore dell'intestazione di richiesta non valido](/docs/it/errors#invalid-request-header-value) elenca l'esatto set di caratteri e dove viene eseguito il controllo. Un valore che imposta un'intestazione di credenziali, organizzazione o tenant, instradamento o comportamento dell'API, come `Authorization` o `Host`, conta come [impostazione che richiede approvazione](/docs/it/server-managed-settings#environment-variables-and-the-approval-dialog) quando viene fornito dalle impostazioni gestite dal server. Dalle impostazioni di progetto o locali, un valore di questo tipo segue le [regole su quando si applicano i valori `env`](/docs/it/settings-reference#when-claude-code-applies-env-values) |157| `ANTHROPIC_CUSTOM_HEADERS` | Header personalizzati da aggiungere alle richieste (formato `Name: Value`, separati da un ritorno a capo per più header). Se un nome o un valore contiene un carattere che un header HTTP non può trasportare, come una virgoletta curva o uno spazio a larghezza zero, la richiesta non riesce con un errore che identifica la coppia in base alla posizione. Richiede Claude Code v2.1.227 o successiva. [Invalid request header value](/docs/it/errors#invalid-request-header-value) elenca il set esatto di caratteri e dove viene eseguito il controllo. Un valore che imposta un header di credenziali, di organizzazione o tenant, di instradamento o di comportamento dell'API, come `Authorization` o `Host`, conta come [impostazione che richiede approvazione](/docs/it/server-managed-settings#environment-variables-and-the-approval-dialog) quando viene fornito dalle impostazioni gestite dal server. Dalle impostazioni di progetto o locali, un valore di questo tipo segue le [regole su quando si applicano i valori `env`](/docs/it/settings-reference#when-claude-code-applies-env-values) |

158| `ANTHROPIC_CUSTOM_MODEL_OPTION` | ID del modello da aggiungere come voce personalizzata nel selettore `/model`. Usala per rendere selezionabile un modello non standard o specifico del gateway senza sostituire gli alias integrati. Consulta [Configurazione del modello](/docs/it/model-config#add-a-custom-model-option) |158| `ANTHROPIC_CUSTOM_MODEL_OPTION` | ID del modello da aggiungere come voce personalizzata nel selettore `/model`. Usala per rendere selezionabile un modello non standard o specifico di un gateway senza sostituire gli alias integrati. Consulta [Configurazione del modello](/docs/it/model-config#add-a-custom-model-option) |

159| `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` | Descrizione visualizzata per la voce del modello personalizzato nel selettore `/model`. Il valore predefinito è `Custom model (<model-id>)` quando non è impostata |159| `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` | Descrizione visualizzata per la voce del modello personalizzato nel selettore `/model`. Il valore predefinito è `Custom model (<model-id>)` quando non è impostata |

160| `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` | Nome visualizzato per la voce del modello personalizzato nel selettore `/model`. Quando non è impostato, la voce mostra il nome del modello se Claude Code [riconosce l'ID](/docs/it/model-config#customize-pinned-model-display-and-capabilities), altrimenti l'ID del modello |160| `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` | Nome visualizzato per la voce del modello personalizzato nel selettore `/model`. Quando non è impostata, la voce mostra il nome del modello se Claude Code [riconosce l'ID](/docs/it/model-config#customize-pinned-model-display-and-capabilities), altrimenti l'ID del modello |

161| `ANTHROPIC_CUSTOM_MODEL_OPTION_SUPPORTED_CAPABILITIES` | Elenco separato da virgole delle [funzionalità](/docs/it/model-config#customize-pinned-model-display-and-capabilities) supportate dal modello personalizzato, ad esempio `effort,thinking`. Consulta [Configurazione del modello](/docs/it/model-config#customize-pinned-model-display-and-capabilities) |161| `ANTHROPIC_CUSTOM_MODEL_OPTION_SUPPORTED_CAPABILITIES` | Elenco separato da virgole delle [funzionalità](/docs/it/model-config#customize-pinned-model-display-and-capabilities) supportate dal modello personalizzato, ad esempio `effort,thinking`. Consulta [Configurazione del modello](/docs/it/model-config#customize-pinned-model-display-and-capabilities) |

162| `ANTHROPIC_DEFAULT_FABLE_MODEL` | ID del modello a cui si risolve l'alias `fable` e ID che Claude Code riconosce come modello Fable per il [fallback automatico del modello](/docs/it/model-config#automatic-model-fallback) sui provider di terze parti. Consulta [Configurazione del modello](/docs/it/model-config#environment-variables) |162| `ANTHROPIC_DEFAULT_FABLE_MODEL` | ID del modello a cui si risolve l'alias `fable` e ID che Claude Code riconosce come modello Fable per il [fallback automatico del modello](/docs/it/model-config#automatic-model-fallback) sui provider di terze parti. Consulta [Configurazione del modello](/docs/it/model-config#environment-variables) |

163| `ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION` | Descrizione visualizzata per il modello Fable fissato nel selettore `/model`. Quando non è impostata, la riga mostra una descrizione predefinita che inizia con `Custom Fable model`. Consulta [Configurazione del modello](/docs/it/model-config#customize-pinned-model-display-and-capabilities) |163| `ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION` | Descrizione visualizzata per il modello Fable fissato nel selettore `/model`. Quando non è impostata, la riga mostra una descrizione predefinita che inizia con `Custom Fable model`. Consulta [Configurazione del modello](/docs/it/model-config#customize-pinned-model-display-and-capabilities) |

164| `ANTHROPIC_DEFAULT_FABLE_MODEL_NAME` | Nome visualizzato per il modello Fable fissato nel selettore `/model`. Quando non è impostato, la riga mostra il nome del modello se Claude Code riconosce l'ID fissato, altrimenti l'ID fissato. Consulta [Configurazione del modello](/docs/it/model-config#customize-pinned-model-display-and-capabilities) |164| `ANTHROPIC_DEFAULT_FABLE_MODEL_NAME` | Nome visualizzato per il modello Fable fissato nel selettore `/model`. Quando non è impostata, la riga mostra il nome del modello se Claude Code riconosce l'ID fissato, altrimenti l'ID fissato. Consulta [Configurazione del modello](/docs/it/model-config#customize-pinned-model-display-and-capabilities) |

165| `ANTHROPIC_DEFAULT_FABLE_MODEL_SUPPORTED_CAPABILITIES` | Elenco separato da virgole delle [funzionalità](/docs/it/model-config#customize-pinned-model-display-and-capabilities) supportate dal modello Fable fissato, ad esempio `effort,thinking`. Consulta [Configurazione del modello](/docs/it/model-config#customize-pinned-model-display-and-capabilities) |165| `ANTHROPIC_DEFAULT_FABLE_MODEL_SUPPORTED_CAPABILITIES` | Elenco separato da virgole delle [funzionalità](/docs/it/model-config#customize-pinned-model-display-and-capabilities) supportate dal modello Fable fissato, ad esempio `effort,thinking`. Consulta [Configurazione del modello](/docs/it/model-config#customize-pinned-model-display-and-capabilities) |

166| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | ID del modello a cui si risolve l'alias `haiku`, usato anche per le [funzionalità in background](/docs/it/costs#background-token-usage). Consulta [Configurazione del modello](/docs/it/model-config#environment-variables) |166| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | ID del modello a cui si risolve l'alias `haiku`, usato anche per le [funzionalità in background](/docs/it/costs#background-token-usage). Consulta [Configurazione del modello](/docs/it/model-config#environment-variables) |

167| `ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION` | Descrizione visualizzata per il modello Haiku fissato nel selettore `/model`. Quando non è impostata, la riga mostra una descrizione predefinita che inizia con `Custom Haiku model`. Consulta [Configurazione del modello](/docs/it/model-config#customize-pinned-model-display-and-capabilities) |167| `ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION` | Descrizione visualizzata per il modello Haiku fissato nel selettore `/model`. Quando non è impostata, la riga mostra una descrizione predefinita che inizia con `Custom Haiku model`. Consulta [Configurazione del modello](/docs/it/model-config#customize-pinned-model-display-and-capabilities) |

168| `ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME` | Nome visualizzato per il modello Haiku fissato nel selettore `/model`. Quando non è impostato, la riga mostra il nome del modello se Claude Code riconosce l'ID fissato, altrimenti l'ID fissato. Consulta [Configurazione del modello](/docs/it/model-config#customize-pinned-model-display-and-capabilities) |168| `ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME` | Nome visualizzato per il modello Haiku fissato nel selettore `/model`. Quando non è impostata, la riga mostra il nome del modello se Claude Code riconosce l'ID fissato, altrimenti l'ID fissato. Consulta [Configurazione del modello](/docs/it/model-config#customize-pinned-model-display-and-capabilities) |

169| `ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES` | Elenco separato da virgole delle [funzionalità](/docs/it/model-config#customize-pinned-model-display-and-capabilities) supportate dal modello Haiku fissato, ad esempio `effort,thinking`. Consulta [Configurazione del modello](/docs/it/model-config#customize-pinned-model-display-and-capabilities) |169| `ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES` | Elenco separato da virgole delle [funzionalità](/docs/it/model-config#customize-pinned-model-display-and-capabilities) supportate dal modello Haiku fissato, ad esempio `effort,thinking`. Consulta [Configurazione del modello](/docs/it/model-config#customize-pinned-model-display-and-capabilities) |

170| `ANTHROPIC_DEFAULT_MODEL` | Modello con cui le nuove sessioni si avviano per impostazione predefinita. Richiede Claude Code v2.1.236 o successiva. Consulta [Impostare un modello predefinito per le nuove sessioni](/docs/it/model-config#set-a-default-model-for-new-sessions) |170| `ANTHROPIC_DEFAULT_MODEL` | Modello con cui si avviano per impostazione predefinita le nuove sessioni. Richiede Claude Code v2.1.236 o successiva. Consulta [Impostare un modello predefinito per le nuove sessioni](/docs/it/model-config#set-a-default-model-for-new-sessions) |

171| `ANTHROPIC_DEFAULT_OPUS_MODEL` | ID del modello a cui si risolve l'alias `opus` e che `opusplan` usa mentre il Plan Mode è attivo. Consulta [Configurazione del modello](/docs/it/model-config#environment-variables) |171| `ANTHROPIC_DEFAULT_OPUS_MODEL` | ID del modello a cui si risolve l'alias `opus` e che `opusplan` usa mentre il Plan Mode è attivo. Consulta [Configurazione del modello](/docs/it/model-config#environment-variables) |

172| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | Descrizione visualizzata per il modello Opus fissato nel selettore `/model`. Quando non è impostata, la riga mostra una descrizione predefinita che inizia con `Custom Opus model`. Consulta [Configurazione del modello](/docs/it/model-config#customize-pinned-model-display-and-capabilities) |172| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | Descrizione visualizzata per il modello Opus fissato nel selettore `/model`. Quando non è impostata, la riga mostra una descrizione predefinita che inizia con `Custom Opus model`. Consulta [Configurazione del modello](/docs/it/model-config#customize-pinned-model-display-and-capabilities) |

173| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | Nome visualizzato per il modello Opus fissato nel selettore `/model`. Quando non è impostato, la riga mostra il nome del modello se Claude Code riconosce l'ID fissato, altrimenti l'ID fissato. Consulta [Configurazione del modello](/docs/it/model-config#customize-pinned-model-display-and-capabilities) |173| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | Nome visualizzato per il modello Opus fissato nel selettore `/model`. Quando non è impostata, la riga mostra il nome del modello se Claude Code riconosce l'ID fissato, altrimenti l'ID fissato. Consulta [Configurazione del modello](/docs/it/model-config#customize-pinned-model-display-and-capabilities) |

174| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | Elenco separato da virgole delle [funzionalità](/docs/it/model-config#customize-pinned-model-display-and-capabilities) supportate dal modello Opus fissato, ad esempio `effort,thinking`. Consulta [Configurazione del modello](/docs/it/model-config#customize-pinned-model-display-and-capabilities) |174| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | Elenco separato da virgole delle [funzionalità](/docs/it/model-config#customize-pinned-model-display-and-capabilities) supportate dal modello Opus fissato, ad esempio `effort,thinking`. Consulta [Configurazione del modello](/docs/it/model-config#customize-pinned-model-display-and-capabilities) |

175| `ANTHROPIC_DEFAULT_SONNET_MODEL` | ID del modello a cui si risolve l'alias `sonnet` e che `opusplan` usa quando il Plan Mode non è attivo. Consulta [Configurazione del modello](/docs/it/model-config#environment-variables) |175| `ANTHROPIC_DEFAULT_SONNET_MODEL` | ID del modello a cui si risolve l'alias `sonnet` e che `opusplan` usa quando il Plan Mode non è attivo. Consulta [Configurazione del modello](/docs/it/model-config#environment-variables) |

176| `ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION` | Descrizione visualizzata per il modello Sonnet fissato nel selettore `/model`. Quando non è impostata, la riga mostra una descrizione predefinita che inizia con `Custom Sonnet model`. Consulta [Configurazione del modello](/docs/it/model-config#customize-pinned-model-display-and-capabilities) |176| `ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION` | Descrizione visualizzata per il modello Sonnet fissato nel selettore `/model`. Quando non è impostata, la riga mostra una descrizione predefinita che inizia con `Custom Sonnet model`. Consulta [Configurazione del modello](/docs/it/model-config#customize-pinned-model-display-and-capabilities) |

177| `ANTHROPIC_DEFAULT_SONNET_MODEL_NAME` | Nome visualizzato per il modello Sonnet fissato nel selettore `/model`. Quando non è impostato, la riga mostra il nome del modello se Claude Code riconosce l'ID fissato, altrimenti l'ID fissato. Consulta [Configurazione del modello](/docs/it/model-config#customize-pinned-model-display-and-capabilities) |177| `ANTHROPIC_DEFAULT_SONNET_MODEL_NAME` | Nome visualizzato per il modello Sonnet fissato nel selettore `/model`. Quando non è impostata, la riga mostra il nome del modello se Claude Code riconosce l'ID fissato, altrimenti l'ID fissato. Consulta [Configurazione del modello](/docs/it/model-config#customize-pinned-model-display-and-capabilities) |

178| `ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES` | Elenco separato da virgole delle [funzionalità](/docs/it/model-config#customize-pinned-model-display-and-capabilities) supportate dal modello Sonnet fissato, ad esempio `effort,thinking`. Consulta [Configurazione del modello](/docs/it/model-config#customize-pinned-model-display-and-capabilities) |178| `ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES` | Elenco separato da virgole delle [funzionalità](/docs/it/model-config#customize-pinned-model-display-and-capabilities) supportate dal modello Sonnet fissato, ad esempio `effort,thinking`. Consulta [Configurazione del modello](/docs/it/model-config#customize-pinned-model-display-and-capabilities) |

179| `ANTHROPIC_FEDERATION_RULE_ID` | ID della regola di federazione per [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Quando la imposti insieme a `ANTHROPIC_ORGANIZATION_ID`, Claude Code seleziona le credenziali di federazione, che hanno priorità superiore rispetto alla tua credenziale `/login`. Consulta [precedenza di autenticazione](/docs/it/authentication#authentication-precedence) |179| `ANTHROPIC_FEDERATION_RULE_ID` | ID della regola di federazione per [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Quando la imposti insieme a `ANTHROPIC_ORGANIZATION_ID`, Claude Code seleziona le credenziali di federazione, che hanno priorità rispetto alla credenziale di `/login`. Consulta [precedenza dell'autenticazione](/docs/it/authentication#authentication-precedence) |

180| `ANTHROPIC_FOUNDRY_API_KEY` | Chiave API per l'autenticazione Microsoft Foundry (consulta [Microsoft Foundry](/docs/it/microsoft-foundry)) |180| `ANTHROPIC_FOUNDRY_API_KEY` | Chiave API per l'autenticazione Microsoft Foundry (consulta [Microsoft Foundry](/docs/it/microsoft-foundry)) |

181| `ANTHROPIC_FOUNDRY_AUTH_TOKEN` | Token bearer per l'autenticazione Microsoft Foundry, come un token di accesso Microsoft Entra. Claude Code lo invia come intestazione `Authorization: Bearer`. Ha la precedenza su `ANTHROPIC_FOUNDRY_API_KEY` e sulla catena di credenziali predefinita di Azure. Consulta [Microsoft Foundry](/docs/it/microsoft-foundry). Richiede Claude Code v2.1.203 o successiva |181| `ANTHROPIC_FOUNDRY_AUTH_TOKEN` | Token bearer per l'autenticazione Microsoft Foundry, come un token di accesso Microsoft Entra. Claude Code lo invia come header `Authorization: Bearer`. Ha la precedenza su `ANTHROPIC_FOUNDRY_API_KEY` e sulla catena di credenziali predefinita di Azure. Consulta [Microsoft Foundry](/docs/it/microsoft-foundry). Richiede Claude Code v2.1.203 o successiva |

182| `ANTHROPIC_FOUNDRY_BASE_URL` | URL di base completo per la risorsa Microsoft Foundry (ad esempio, `https://my-resource.services.ai.azure.com/anthropic`). Alternativa a `ANTHROPIC_FOUNDRY_RESOURCE` (consulta [Microsoft Foundry](/docs/it/microsoft-foundry)) |182| `ANTHROPIC_FOUNDRY_BASE_URL` | URL di base completo della risorsa Microsoft Foundry (ad esempio, `https://my-resource.services.ai.azure.com/anthropic`). Alternativa a `ANTHROPIC_FOUNDRY_RESOURCE` (consulta [Microsoft Foundry](/docs/it/microsoft-foundry)) |

183| `ANTHROPIC_FOUNDRY_RESOURCE` | Nome della risorsa Microsoft Foundry (ad esempio, `my-resource`). Claude Code [rifiuta un URL o un nome host](/docs/it/errors#anthropic-foundry-resource-must-be-a-foundry-resource-name). Obbligatoria se `ANTHROPIC_FOUNDRY_BASE_URL` non è impostata (consulta [Microsoft Foundry](/docs/it/microsoft-foundry)) |183| `ANTHROPIC_FOUNDRY_RESOURCE` | Nome della risorsa Microsoft Foundry (ad esempio, `my-resource`). Claude Code [rifiuta un URL o un nome host](/docs/it/errors#anthropic-foundry-resource-must-be-a-foundry-resource-name). Obbligatoria se `ANTHROPIC_FOUNDRY_BASE_URL` non è impostata (consulta [Microsoft Foundry](/docs/it/microsoft-foundry)) |

184| `ANTHROPIC_MODEL` | Nome dell'impostazione del modello da usare (consulta [Configurazione del modello](/docs/it/model-config#environment-variables)) |184| `ANTHROPIC_MODEL` | Nome dell'impostazione del modello da usare (consulta [Configurazione del modello](/docs/it/model-config#environment-variables)) |

185| `ANTHROPIC_ORGANIZATION_ID` | ID dell'organizzazione per [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Impostala insieme a `ANTHROPIC_FEDERATION_RULE_ID`. Consulta [precedenza di autenticazione](/docs/it/authentication#authentication-precedence) |185| `ANTHROPIC_ORGANIZATION_ID` | ID dell'organizzazione per [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Impostala insieme a `ANTHROPIC_FEDERATION_RULE_ID`. Consulta [precedenza dell'autenticazione](/docs/it/authentication#authentication-precedence) |

186| `ANTHROPIC_PROFILE` | Nome del profilo Anthropic con cui autenticarsi, come uno creato da [`ant auth login`](https://platform.claude.com/docs/en/cli-sdks-libraries/cli/authentication) o [accedendo a un account Console senza una chiave API](/docs/it/authentication#sign-in-without-an-api-key). Consulta [precedenza di autenticazione](/docs/it/authentication#authentication-precedence) |186| `ANTHROPIC_PROFILE` | Nome del profilo Anthropic con cui autenticarsi, come uno creato da [`ant auth login`](https://platform.claude.com/docs/en/cli-sdks-libraries/cli/authentication) o [accedendo a un account Console senza una chiave API](/docs/it/authentication#sign-in-without-an-api-key). Consulta [precedenza dell'autenticazione](/docs/it/authentication#authentication-precedence) |

187| `ANTHROPIC_SMALL_FAST_MODEL` | \[DEPRECATA] Nome del [modello di classe Haiku per le attività in background](/docs/it/costs) |187| `ANTHROPIC_SMALL_FAST_MODEL` | \[DEPRECATA] Nome del [modello di classe Haiku per le attività in background](/docs/it/costs) |

188| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Sovrascrive la regione AWS per il modello di classe Haiku quando usi Amazon Bedrock o Amazon Bedrock Mantle. Su Amazon Bedrock, ha effetto solo quando è impostata anche `ANTHROPIC_DEFAULT_HAIKU_MODEL` o la deprecata `ANTHROPIC_SMALL_FAST_MODEL`, poiché altrimenti Amazon Bedrock esegue le attività in background sul [modello Sonnet predefinito o sul modello principale](/docs/it/amazon-bedrock#4-pin-model-versions) nella regione della sessione |188| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Sovrascrive la regione AWS per il modello di classe Haiku quando usi Amazon Bedrock o Amazon Bedrock Mantle. Su Amazon Bedrock, ha effetto solo quando è impostata anche `ANTHROPIC_DEFAULT_HAIKU_MODEL` o la deprecata `ANTHROPIC_SMALL_FAST_MODEL`, poiché altrimenti Amazon Bedrock esegue le attività in background sul [modello Sonnet predefinito o sul modello principale](/docs/it/amazon-bedrock#4-pin-model-versions) nella regione della sessione |

189| `ANTHROPIC_VERTEX_BASE_URL` | Sovrascrive l'URL dell'endpoint di Google Cloud's Agent Platform. Usala per endpoint personalizzati di Google Cloud's Agent Platform o quando instradi le richieste tramite un [gateway LLM](/docs/it/llm-gateway). Consulta [Google Cloud's Agent Platform](/docs/it/google-vertex-ai) |189| `ANTHROPIC_VERTEX_BASE_URL` | Sovrascrive l'URL dell'endpoint di Google Cloud's Agent Platform. Usala per endpoint personalizzati di Google Cloud's Agent Platform o quando instradi le richieste tramite un [LLM gateway](/docs/it/llm-gateway). Consulta [Google Cloud's Agent Platform](/docs/it/google-vertex-ai) |

190| `ANTHROPIC_VERTEX_PROJECT_ID` | ID del progetto GCP a cui sono indirizzate le richieste a Google Cloud's Agent Platform. Consulta [Configurare le credenziali GCP](/docs/it/google-vertex-ai#3-configure-gcp-credentials) |190| `ANTHROPIC_VERTEX_PROJECT_ID` | ID del progetto GCP a cui sono indirizzate le richieste di Google Cloud's Agent Platform. Consulta [Configurare le credenziali GCP](/docs/it/google-vertex-ai#3-configure-gcp-credentials) |

191| `ANTHROPIC_WORKSPACE_ID` | ID del workspace per la [federazione delle identità dei carichi di lavoro](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Impostala quando la tua regola di federazione è limitata a più di un workspace, in modo che lo scambio di token sappia quale workspace usare come destinazione |191| `ANTHROPIC_WORKSPACE_ID` | ID del workspace per la [workload identity federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Impostala quando la tua regola di federazione è limitata a più di un workspace, così lo scambio di token sa quale workspace usare come destinazione |

192| `API_FORCE_IDLE_TIMEOUT` | Sovrascrive il timeout di inattività del corpo di 5 minuti che interrompe una risposta del modello in streaming quando non arrivano byte. Imposta `0` per disattivare il timeout, ad esempio quando un [gateway](/docs/it/llm-gateway) lento o un modello locale fa pause più lunghe di 5 minuti tra un blocco e l'altro, oppure `1` per mantenerlo attivo per ogni provider. Quando non è impostata, il timeout è attivo sui provider diversi dall'API Anthropic diretta, da [Claude Platform on AWS](/docs/it/claude-platform-on-aws) e da Amazon Bedrock con `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` impostata. I [watchdog dello stream](/docs/it/network-config#streaming-idle-watchdogs) funzionano indipendentemente da esso e interrompono una lunga pausa silenziosa anche quando imposti `0` qui |192| `API_FORCE_IDLE_TIMEOUT` | Sovrascrive il timeout di inattività del corpo di 5 minuti che interrompe una risposta del modello in streaming quando non arrivano byte. Imposta `0` per disattivare il timeout, ad esempio quando un [gateway](/docs/it/llm-gateway) lento o un modello locale fa pause più lunghe di 5 minuti tra un chunk e l'altro, oppure `1` per mantenerlo attivo per ogni provider. Quando non è impostata, il timeout è attivo sui provider diversi dall'API Anthropic diretta, da [Claude Platform on AWS](/docs/it/claude-platform-on-aws) e da Amazon Bedrock con `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` impostata. I [watchdog dello streaming](/docs/it/network-config#streaming-idle-watchdogs) funzionano indipendentemente da esso e interrompono una lunga pausa silenziosa anche quando imposti `0` qui |

193| `API_TIMEOUT_MS` | Timeout per le richieste API in millisecondi (predefinito: 600000, ovvero 10 minuti; massimo: 2147483647). Aumentalo quando le richieste vanno in timeout su reti lente o quando instradi le richieste tramite un proxy. I valori superiori al massimo causano l'overflow del timer sottostante e fanno fallire immediatamente le richieste |193| `API_TIMEOUT_MS` | Timeout per le richieste API in millisecondi (predefinito: 600000, ovvero 10 minuti; massimo: 2147483647). Aumentalo quando le richieste vanno in timeout su reti lente o quando instradi le richieste tramite un proxy. I valori superiori al massimo causano l'overflow del timer sottostante e fanno fallire immediatamente le richieste |

194| `AWS_BEARER_TOKEN_BEDROCK` | Chiave API di Amazon Bedrock per l'autenticazione (consulta [Chiavi API di Amazon Bedrock](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |194| `AWS_BEARER_TOKEN_BEDROCK` | Chiave API di Amazon Bedrock per l'autenticazione (consulta [Chiavi API di Amazon Bedrock](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |

195| `BASH_DEFAULT_TIMEOUT_MS` | Timeout predefinito per un comando in primo piano dello strumento Bash o PowerShell, in millisecondi (predefinito: 120000, ovvero 2 minuti). Un valore predefinito superiore a 30 minuti diventa anche il [limite di tempo predefinito per i comandi in background](/docs/it/tools-reference#time-limit-for-background-commands) nelle sessioni non presidiate. Il limite di tempo in background richiede Claude Code v2.1.285 o successiva |195| `BASH_DEFAULT_TIMEOUT_MS` | Timeout predefinito per un comando in primo piano dello strumento Bash o PowerShell, in millisecondi (predefinito: 120000, ovvero 2 minuti). Un valore predefinito superiore a 30 minuti diventa anche il [limite di tempo predefinito per i comandi in background](/docs/it/tools-reference#time-limit-for-background-commands) nelle sessioni non presidiate. Il limite di tempo in background richiede Claude Code v2.1.285 o successiva |

196| `BASH_MAX_OUTPUT_LENGTH` | Numero massimo di caratteri dell'output bash che Claude Code rilegge nel risultato di un comando (predefinito: 30000; massimo: 150000). Se configuri l'impostazione [`bashOutputMaxChars`](/docs/it/settings-reference#bashoutputmaxchars), Claude Code ignora questa variabile. Consulta [Limiti di output](/docs/it/tools-reference#output-limits) |196| `BASH_MAX_OUTPUT_LENGTH` | Numero massimo di caratteri dell'output bash che Claude Code rilegge nel risultato di un comando (predefinito: 30000; massimo: 150000). Se imposti l'impostazione [`bashOutputMaxChars`](/docs/it/settings-reference#bashoutputmaxchars), Claude Code ignora questa variabile. Consulta [Limiti di output](/docs/it/tools-reference#output-limits) |

197| `BASH_MAX_TIMEOUT_MS` | Timeout massimo che il modello può impostare per un comando in primo piano dello strumento Bash o PowerShell, in millisecondi (predefinito: 600000, ovvero 10 minuti). Il limite effettivo è il maggiore tra questo valore e `BASH_DEFAULT_TIMEOUT_MS`. Un limite effettivo superiore a 2 ore diventa anche il [limite di tempo massimo per i comandi in background](/docs/it/tools-reference#time-limit-for-background-commands) nelle sessioni non presidiate. Il limite di tempo in background richiede Claude Code v2.1.285 o successiva |197| `BASH_MAX_TIMEOUT_MS` | Timeout massimo che il modello può impostare per un comando in primo piano dello strumento Bash o PowerShell, in millisecondi (predefinito: 600000, ovvero 10 minuti). Il limite effettivo è il maggiore tra questo valore e `BASH_DEFAULT_TIMEOUT_MS`. Un limite effettivo superiore a 2 ore diventa anche il [limite di tempo massimo per i comandi in background](/docs/it/tools-reference#time-limit-for-background-commands) nelle sessioni non presidiate. Il limite di tempo in background richiede Claude Code v2.1.285 o successiva |

198| `BETA_TRACING_ENDPOINT` | Endpoint OTLP per il [tracing beta dettagliato](/docs/it/monitoring-usage#traces-beta): con `ENABLE_BETA_TRACING_DETAILED=1`, log e trace vengono inviati lì invece che agli exporter configurati. Impostala nella tua shell, nelle impostazioni utente o nelle impostazioni gestite. Ignorata nelle [impostazioni di progetto e locali](/docs/it/settings-reference#variables-claude-code-ignores-in-env) |198| `BETA_TRACING_ENDPOINT` | Endpoint OTLP per il [tracing beta dettagliato](/docs/it/monitoring-usage#traces-beta): con `ENABLE_BETA_TRACING_DETAILED=1`, log e tracce vengono inviati lì anziché agli exporter configurati. Impostala nella tua shell, nelle impostazioni utente o nelle impostazioni gestite. Ignorata nelle [impostazioni di progetto e locali](/docs/it/settings-reference#variables-claude-code-ignores-in-env) |

199| `CCR_FORCE_BUNDLE` | Imposta su `1` per forzare [`claude --cloud`](/docs/it/claude-code-on-the-web#send-local-repositories-without-github) a creare un bundle del tuo repository locale e caricarlo invece di clonarlo dal suo remote |199| `CCR_FORCE_BUNDLE` | Imposta su `1` per forzare [`claude --cloud`](/docs/it/claude-code-on-the-web#send-local-repositories-without-github) a creare un bundle del tuo repository locale e caricarlo anziché clonarlo dal suo remote |

200| `CLAUDECODE` | Impostata su `1` nei sottoprocessi avviati da Claude Code (strumenti Bash e PowerShell, sessioni tmux, comandi degli [hook](/docs/it/hooks), comandi della [riga di stato](/docs/it/statusline), sottoprocessi dei [server MCP](/docs/it/mcp) stdio). Anche le estensioni IDE la impostano nei loro terminali integrati. Usala per rilevare quando uno script è in esecuzione all'interno di un sottoprocesso avviato da Claude Code. Per verificare se il processo corrente è stato avviato direttamente da una chiamata a uno strumento o da un hook, anziché all'interno di un server MCP stdio avviato da Claude Code, usa invece `CLAUDE_CODE_CHILD_SESSION` |200| `CLAUDECODE` | Impostata su `1` nei sottoprocessi avviati da Claude Code (strumenti Bash e PowerShell, sessioni tmux, comandi degli [hook](/docs/it/hooks), comandi della [riga di stato](/docs/it/statusline), sottoprocessi dei [server MCP](/docs/it/mcp) stdio). Anche le estensioni IDE la impostano nei loro terminali integrati. Usala per rilevare quando uno script è in esecuzione all'interno di un sottoprocesso avviato da Claude Code. Per verificare se il processo corrente è stato avviato direttamente da una chiamata a uno strumento o da un hook, anziché all'interno di un server MCP stdio avviato da Claude Code, usa invece `CLAUDE_CODE_CHILD_SESSION` |

201| `CLAUDE_AFK_COUNTDOWN_MS` | Quanti millisecondi prima della continuazione automatica compare il conto alla rovescia sullo schermo in una finestra di dialogo [`AskUserQuestion`](/docs/it/tools-reference) senza risposta. Predefinito `20000` (20 secondi), limitato al timeout di continuazione automatica. Non ha effetto a meno che la continuazione automatica non sia attiva; consulta l'impostazione [`askUserQuestionTimeout`](/docs/it/settings-reference#askuserquestiontimeout) e `CLAUDE_AFK_TIMEOUT_MS`. Richiede Claude Code v2.1.198 o successiva |201| `CLAUDE_AFK_COUNTDOWN_MS` | Quanti millisecondi prima della continuazione automatica compare il conto alla rovescia sullo schermo in una finestra di dialogo [`AskUserQuestion`](/docs/it/tools-reference) senza risposta. Predefinito `20000` (20 secondi), limitato al timeout di continuazione automatica. Non ha effetto a meno che la continuazione automatica non sia attiva; consulta l'impostazione [`askUserQuestionTimeout`](/docs/it/settings-reference#askuserquestiontimeout) e `CLAUDE_AFK_TIMEOUT_MS`. Richiede Claude Code v2.1.198 o successiva |

202| `CLAUDE_AFK_TIMEOUT_MS` | Quanti millisecondi di inattività prima che una finestra di dialogo [`AskUserQuestion`](/docs/it/tools-reference) senza risposta prosegua automaticamente senza di te. La continuazione automatica è disattivata per impostazione predefinita; attivala con l'impostazione [`askUserQuestionTimeout`](/docs/it/settings-reference#askuserquestiontimeout). Questa variabile è un override per demo e test automatizzati: quando è impostata, ha la precedenza su quell'impostazione e attiva la continuazione automatica anche quando l'impostazione non è configurata o è `never`. Impostare `0` non disattiva il timeout; chiude immediatamente la finestra di dialogo. Nella v2.1.198 e nella v2.1.199, la continuazione automatica era attiva per impostazione predefinita con un timeout di `60000` (60 secondi). Richiede Claude Code v2.1.198 o successiva |202| `CLAUDE_AFK_TIMEOUT_MS` | Quanti millisecondi di inattività prima che una finestra di dialogo [`AskUserQuestion`](/docs/it/tools-reference) senza risposta continui automaticamente senza di te. La continuazione automatica è disattivata per impostazione predefinita; attivala con l'impostazione [`askUserQuestionTimeout`](/docs/it/settings-reference#askuserquestiontimeout). Questa variabile è un override per demo e test automatizzati: quando è impostata, ha la precedenza su quell'impostazione e attiva la continuazione automatica anche quando l'impostazione non è impostata o è `never`. Impostare `0` non disattiva il timeout; chiude immediatamente la finestra di dialogo. Nelle v2.1.198 e v2.1.199, la continuazione automatica era attiva per impostazione predefinita con un timeout di `60000` (60 secondi). Richiede Claude Code v2.1.198 o successiva |

203| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | Imposta su `1` per disattivare tutti i tipi di [subagent](/docs/it/sub-agents) integrati, come Explore e Plan. Si applica solo in modalità non interattiva (il flag `-p`). Utile per gli utenti dell'SDK che vogliono partire da zero. Questo rimuove anche `general-purpose`, il subagent che Claude Code esegue quando una chiamata allo strumento Agent omette `subagent_type`. Una chiamata di questo tipo fallisce quindi con [`subagent_type is required`](/docs/it/errors#subagent-type-is-required) |203| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | Imposta su `1` per disabilitare tutti i tipi di [subagent](/docs/it/sub-agents) integrati come Explore e Plan. Si applica solo in modalità non interattiva (il flag `-p`). Utile per gli utenti dell'SDK che vogliono partire da zero. Questo rimuove anche `general-purpose`, il subagent che Claude Code esegue quando una chiamata allo strumento Agent omette `subagent_type`. Una chiamata di questo tipo non riesce quindi con [`subagent_type is required`](/docs/it/errors#subagent-type-is-required) |

204| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | Imposta su `1` per omettere il prefisso `mcp__<server>__` nei nomi degli strumenti dei server MCP creati tramite SDK. Gli strumenti usano i loro nomi originali. Solo per l'uso con l'SDK |204| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | Imposta su `1` per omettere il prefisso `mcp__<server>__` dai nomi degli strumenti dei server MCP creati dall'SDK. Gli strumenti usano i loro nomi originali. Solo per l'uso dell'SDK |

205| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Timeout di stallo in millisecondi per i subagent. Predefinito `600000` (10 minuti); se aumenti `CLAUDE_STREAM_IDLE_TIMEOUT_MS` mentre il watchdog dello stream è attivo, il valore predefinito aumenta di conseguenza, come descritto in [Gestire risposte API lente o bloccate](/docs/it/agent-sdk/typescript#handle-slow-or-stalled-api-responses). Il timer si azzera a ogni evento di avanzamento dello streaming; se non arriva alcun avanzamento entro la finestra, Claude Code interrompe il subagent e segnala lo stallo all'agente padre |205| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Timeout di stallo in millisecondi per i subagent. Predefinito `600000` (10 minuti); se aumenti `CLAUDE_STREAM_IDLE_TIMEOUT_MS` mentre il watchdog dello stream è attivo, il valore predefinito aumenta di conseguenza, come descritto in [Gestire le risposte API lente o bloccate](/docs/it/agent-sdk/typescript#handle-slow-or-stalled-api-responses). Il timer si azzera a ogni evento di avanzamento dello streaming; se non arriva alcun avanzamento entro la finestra, Claude Code interrompe il subagent e segnala lo stallo al genitore |

206| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Imposta la percentuale (1-100) della finestra di compattazione automatica alla quale si attiva la compattazione automatica. Usa valori più bassi come `50` per compattare prima; la variabile non può alzare la soglia, quindi i valori superiori alla percentuale predefinita vengono ignorati. Si applica solo nelle sessioni che [compattano prima del limite di contesto del modello](/docs/it/model-config#context-window-and-auto-compaction). Si applica sia alle conversazioni principali sia ai subagent |206| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Imposta la percentuale (1-100) della finestra di compattazione automatica alla quale si attiva la compattazione automatica. Usa valori più bassi come `50` per compattare prima; la variabile non può alzare la soglia, quindi i valori superiori alla percentuale predefinita vengono ignorati. Si applica solo nelle sessioni che [compattano prima del limite di contesto del modello](/docs/it/model-config#context-window-and-auto-compaction). Si applica sia alle conversazioni principali sia ai subagent |

207| `CLAUDE_AUTO_BACKGROUND_TASKS` | Imposta su `1` per forzare l'attivazione dello spostamento automatico in background delle attività degli agenti a lunga esecuzione. Quando è attiva, i subagent vengono spostati in background dopo circa due minuti di esecuzione. Attiva anche lo [spostamento automatico in background delle chiamate lunghe agli strumenti MCP](/docs/it/mcp#automatic-backgrounding-of-long-tool-calls) in modalità non interattiva su Claude Code v2.1.212 o successiva |207| `CLAUDE_AUTO_BACKGROUND_TASKS` | Imposta su `1` per forzare l'attivazione dello spostamento automatico in background delle attività degli agenti a lunga esecuzione. Quando è attivo, i subagent vengono spostati in background dopo circa due minuti di esecuzione. Attiva anche lo [spostamento automatico in background delle chiamate lunghe agli strumenti MCP](/docs/it/mcp#automatic-backgrounding-of-long-tool-calls) in modalità non interattiva su Claude Code v2.1.212 o successiva |

208| `CLAUDE_AX_PREPARK_MS` | In [modalità screen reader](/docs/it/accessibility), quanti millisecondi Claude Code attende prima di scrivere una riga nuova o modificata. Predefinito `0`, quindi Claude Code non attende. Prima della v2.1.287, il valore predefinito era `50`. Claude Code limita l'attesa a `5000`. Richiede Claude Code v2.1.233 o successiva |208| `CLAUDE_AX_PREPARK_MS` | In [modalità screen reader](/docs/it/accessibility), quanti millisecondi Claude Code attende prima di scrivere una riga nuova o modificata. Predefinito `0`, quindi Claude Code non attende. Prima della v2.1.287, il valore predefinito era `50`. Claude Code limita l'attesa a `5000`. Richiede Claude Code v2.1.233 o successiva |

209| `CLAUDE_AX_SCREEN_READER` | Imposta su `1` per generare un output adatto agli screen reader: testo semplice senza bordi decorativi o animazioni. Imposta su `0` per forzare la disattivazione della modalità screen reader anche quando [`axScreenReader`](/docs/it/settings-reference#axscreenreader) è `true`. Il flag [`--ax-screen-reader`](/docs/it/cli-reference#cli-flags) ha la precedenza. Richiede Claude Code v2.1.181 o successiva |209| `CLAUDE_AX_SCREEN_READER` | Imposta su `1` per generare un output adatto agli screen reader: testo semplice senza bordi decorativi né animazioni. Imposta su `0` per forzare la disattivazione della modalità screen reader anche quando [`axScreenReader`](/docs/it/settings-reference#axscreenreader) è `true`. Il flag [`--ax-screen-reader`](/docs/it/cli-reference#cli-flags) ha la precedenza. Richiede Claude Code v2.1.181 o successiva |

210| `CLAUDE_AX_STARTUP_QUIET_MS` | In [modalità screen reader](/docs/it/accessibility), per quanti millisecondi Claude Code trattiene il primo rendering dell'interfaccia dopo la riga di conferma dell'avvio, in modo che il tuo screen reader possa leggere la riga per intero prima che nuovo output la interrompa. Predefinito `3000`. Imposta `0` per eseguire subito il rendering. Claude Code limita l'attesa a `600000` (10 minuti). Il primo tasto che premi termina l'attesa in anticipo. Richiede Claude Code v2.1.217 o successiva |210| `CLAUDE_AX_STARTUP_QUIET_MS` | In [modalità screen reader](/docs/it/accessibility), per quanti millisecondi Claude Code trattiene il primo rendering dell'interfaccia dopo la riga di conferma dell'avvio, così il tuo screen reader può leggere la riga per intero prima che nuovo output la interrompa. Predefinito `3000`. Imposta `0` per eseguire il rendering immediatamente. Claude Code limita l'attesa a `600000` (10 minuti). La tua prima pressione di un tasto termina l'attesa in anticipo. Richiede Claude Code v2.1.217 o successiva |

211| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | Torna alla directory di lavoro originale dopo ogni comando Bash o PowerShell nella sessione principale |211| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | Torna alla directory di lavoro originale dopo ogni comando Bash o PowerShell nella sessione principale |

212| `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` | Timeout in millisecondi per il watchdog di inattività dello streaming a livello di byte; quando è impostata, ha la precedenza su `CLAUDE_STREAM_IDLE_TIMEOUT_MS` per quel watchdog e lascia invariato il watchdog a livello di evento. Claude Code limita questa variabile a un valore compreso tra 10 secondi e 30 minuti. Richiede Claude Code v2.1.210 o successiva |212| `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` | Timeout in millisecondi per il watchdog di inattività dello streaming a livello di byte; quando è impostata, ha la precedenza su `CLAUDE_STREAM_IDLE_TIMEOUT_MS` per quel watchdog e lascia invariato il watchdog a livello di evento. Claude Code limita questa variabile a un valore compreso tra 10 secondi e 30 minuti. Richiede Claude Code v2.1.210 o successiva |

213| `CLAUDE_CLIENT_PRESENCE_FILE` | Percorso di un file che uno strumento esterno, come un listener del blocco schermo, crea quando sblocchi lo schermo ed elimina quando lo blocchi. Finché il file esiste, Claude Code salta le [notifiche push mobili di Remote Control](/docs/it/remote-control#mobile-push-notifications), così smetti di ricevere notifiche push mentre usi attivamente il computer. Quando il file è assente o illeggibile, le notifiche vengono inviate normalmente. Claude Code controlla il file una volta per ogni evento che attiva una notifica push, anziché interrogarlo periodicamente. Richiede Claude Code v2.1.181 o successiva |213| `CLAUDE_CLIENT_PRESENCE_FILE` | Percorso di un file che uno strumento esterno, come un listener del blocco schermo, crea quando sblocchi lo schermo ed elimina quando lo blocchi. Finché il file esiste, Claude Code salta le [notifiche push mobili di Remote Control](/docs/it/remote-control#mobile-push-notifications), così smetti di ricevere notifiche push mentre usi attivamente il computer. Quando il file è assente o illeggibile, le notifiche vengono inviate normalmente. Claude Code controlla il file una volta per ogni evento che attiva una notifica push anziché interrogarlo periodicamente. Richiede Claude Code v2.1.181 o successiva |

214| `CLAUDE_CODE_ACCESSIBILITY` | Imposta su `1` per mantenere visibile il cursore nativo del terminale e disattivare l'indicatore del cursore a testo invertito. Consente agli ingranditori dello schermo come Zoom di macOS di seguire la posizione del cursore |214| `CLAUDE_CODE_ACCESSIBILITY` | Imposta su `1` per mantenere visibile il cursore nativo del terminale e disabilitare l'indicatore del cursore a testo invertito. Consente agli ingranditori dello schermo come Zoom di macOS di seguire la posizione del cursore |

215| `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` | Imposta su `1` per caricare i file di memoria dalle directory specificate con `--add-dir`. Carica `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md` e `CLAUDE.local.md`. Per impostazione predefinita, le directory aggiuntive non caricano i file di memoria |215| `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` | Imposta su `1` per caricare i file di memoria dalle directory specificate con `--add-dir`. Carica `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md` e `CLAUDE.local.md`. Per impostazione predefinita, le directory aggiuntive non caricano i file di memoria |

216| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | Imposta su `1` per ridisegnare l'intero schermo a ogni frame nel [rendering a schermo intero](/docs/it/fullscreen) invece di inviare aggiornamenti incrementali. Usala se la modalità a schermo intero mostra frammenti di testo obsoleti o fuori posto. Claude Code la attiva automaticamente per le sessioni in background e per la [vista agenti](/docs/it/agent-view) su Windows |216| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | Imposta su `1` per ridisegnare l'intero schermo a ogni frame nel [rendering a schermo intero](/docs/it/fullscreen) anziché inviare aggiornamenti incrementali. Usala se la modalità a schermo intero mostra frammenti di testo obsoleti o fuori posto. Claude Code la attiva automaticamente per le sessioni in background e per la [vista agenti](/docs/it/agent-view) su Windows |

217| `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` | Imposta su `1` per inviare il parametro [effort](/docs/it/model-config#adjust-effort-level) con ogni richiesta, anche quando Claude Code non riconosce l'ID del modello come compatibile con effort. Usala quando instradi le richieste tramite un [gateway LLM](/docs/it/llm-gateway) o un provider di terze parti che serve modelli con identificatori personalizzati. I modelli che rifiutano il parametro effort a livello di API, inclusi i modelli Claude 3, Sonnet 4.0 e 4.5, Opus 4.0 e 4.1 e Haiku 4.5, restano comunque esclusi, così le richieste non falliscono |217| `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` | Imposta su `1` per inviare il parametro [effort](/docs/it/model-config#adjust-effort-level) con ogni richiesta, anche quando Claude Code non riconosce l'ID del modello come compatibile con effort. Usala quando instradi le richieste tramite un [LLM gateway](/docs/it/llm-gateway) o un provider di terze parti che serve i modelli con identificatori personalizzati. I modelli che rifiutano il parametro effort a livello di API, inclusi i modelli Claude 3, Sonnet 4.0 e 4.5, Opus 4.0 e 4.1 e Haiku 4.5, restano comunque esclusi, così le richieste non falliscono |

218| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | Intervallo in millisecondi con cui le credenziali devono essere aggiornate (quando usi [`apiKeyHelper`](/docs/it/settings-reference#apikeyhelper)) |218| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | Intervallo in millisecondi con cui le credenziali devono essere aggiornate (quando usi [`apiKeyHelper`](/docs/it/settings-reference#apikeyhelper)) |

219| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Imposta su `0` per impedire a Claude Code di aprire automaticamente il browser quando viene pubblicato un nuovo [artefatto](/docs/it/artifacts#create-an-artifact) |219| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Imposta su `0` per impedire a Claude Code di aprire automaticamente il browser quando viene pubblicato un nuovo [artefatto](/docs/it/artifacts#create-an-artifact) |

220| `CLAUDE_CODE_ARTIFACT_COMMENTS` | Imposta su `0` per impedire a Claude di leggere e rispondere ai [commenti su un artefatto](/docs/it/artifacts#collect-comments-on-an-artifact). Non ha effetto quando `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` ha [disattivato gli artefatti](/docs/it/artifacts#availability). Richiede Claude Code v2.1.221 o successiva |220| `CLAUDE_CODE_ARTIFACT_COMMENTS` | Imposta su `0` per impedire a Claude di leggere e rispondere ai [commenti su un artefatto](/docs/it/artifacts#collect-comments-on-an-artifact). Non ha effetto quando `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` ha [disattivato gli artefatti](/docs/it/artifacts#availability). Richiede Claude Code v2.1.221 o successiva |

221| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | Imposta su `0` per impedire a Claude di [rispondere autonomamente ai commenti che gli vengono inviati](/docs/it/artifacts#let-claude-reply-to-comments-on-its-own). Richiede Claude Code v2.1.228 o successiva |221| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | Imposta su `0` per impedire a Claude di [rispondere autonomamente ai commenti che gli vengono inviati](/docs/it/artifacts#let-claude-reply-to-comments-on-its-own). Richiede Claude Code v2.1.228 o successiva |

222| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Imposta su `0` per omettere il [blocco di attribuzione](/docs/it/llm-gateway-protocol#system-prompt-attribution-block), che contiene la versione del client e un'impronta del prompt, dall'inizio del prompt di sistema. La memorizzazione nella cache su una connessione diretta all'API Anthropic non è influenzata in nessun caso. In alcune configurazioni con connessione diretta, Claude Code mantiene il blocco nelle richieste al classificatore della [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode) anche quando imposti `0`. In [Blocco di attribuzione del prompt di sistema](/docs/it/llm-gateway-protocol#system-prompt-attribution-block), verifica quali connessioni e credenziali sono interessate. Prima della v2.1.181 il blocco includeva un token per richiesta sugli URL di base personalizzati e sulle connessioni Microsoft Foundry, quindi su quelle versioni impostala su `0` quando il tuo gateway LLM memorizza nella cache in base al corpo della richiesta o inoltra le richieste a un provider di terze parti, oppure quando ti connetti direttamente a Microsoft Foundry |222| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Imposta su `0` per omettere il [blocco di attribuzione](/docs/it/llm-gateway-protocol#system-prompt-attribution-block), che contiene la versione del client e un'impronta del prompt, dall'inizio del prompt di sistema. La cache su una connessione diretta all'API Anthropic non è influenzata in nessun caso. In alcune configurazioni a connessione diretta, Claude Code mantiene il blocco nelle richieste al classificatore della [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode) anche quando imposti `0`. In [Blocco di attribuzione del prompt di sistema](/docs/it/llm-gateway-protocol#system-prompt-attribution-block), verifica quali connessioni e credenziali sono interessate. Prima della v2.1.181 il blocco includeva un token per richiesta sugli URL di base personalizzati e sulle connessioni Microsoft Foundry, quindi in quelle versioni impostala su `0` quando il tuo LLM gateway memorizza nella cache in base al corpo della richiesta o inoltra le richieste a un provider di terze parti, oppure quando ti connetti direttamente a Microsoft Foundry |

223| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Quando `CLAUDE_AUTO_BACKGROUND_TASKS` è attiva, secondi tra i promemoria a Claude per controllare i [subagent in background](/docs/it/sub-agents#run-subagents-in-foreground-or-background) ancora in esecuzione. Accetta solo un intero semplice da `1` a `86400`; qualsiasi altro valore o grafia viene letto come non impostato. Quando non è impostata, non ci sono promemoria di controllo. Richiede Claude Code v2.1.248 o successiva |223| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Quando `CLAUDE_AUTO_BACKGROUND_TASKS` è attiva, secondi tra i promemoria a Claude per controllare i [subagent in background](/docs/it/sub-agents#run-subagents-in-foreground-or-background) ancora in esecuzione. Accetta solo un intero semplice da `1` a `86400`; qualsiasi altro valore o grafia viene letto come non impostato. Quando non è impostata, non ci sono promemoria di controllo. Richiede Claude Code v2.1.248 o successiva |

224| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Imposta la [finestra di compattazione automatica](/docs/it/model-config#set-the-auto-compact-window) in token, da `100000` a `1000000`. Accetta solo un intero semplice come `500000`: un valore come `500k` viene letto come `500` e viene portato al minimo di 100K. La finestra effettiva è inoltre limitata alla finestra di contesto del modello. Ha la precedenza sul comando `/autocompact`, sul flag `--autocompact` e sull'impostazione `autoCompactWindow`. Il valore `used_percentage` della riga di stato si misura sempre rispetto all'intera finestra di contesto del modello, quindi una volta impostata questa variabile, quella percentuale non indica più quando verrà eseguita la compattazione |224| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Imposta la [finestra di compattazione automatica](/docs/it/model-config#set-the-auto-compact-window) in token, da `100000` a `1000000`. Accetta solo un intero semplice come `500000`: un valore come `500k` viene letto come `500` e portato al minimo di 100K. La finestra effettiva è inoltre limitata alla finestra di contesto del modello. Ha la precedenza sul comando `/autocompact`, sul flag `--autocompact` e sull'impostazione `autoCompactWindow`. Il valore `used_percentage` della riga di stato viene sempre misurato rispetto all'intera finestra di contesto del modello, quindi una volta impostata questa variabile, quella percentuale non indica più quando verrà eseguita la compattazione |

225| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Sovrascrive la [connessione IDE](/docs/it/vs-code) automatica. Per impostazione predefinita, Claude Code si connette automaticamente quando viene avviato nel terminale integrato di un IDE supportato. Imposta su `false` per impedirlo. Imposta su `true` per forzare un tentativo di connessione quando il rilevamento automatico non riesce, ad esempio quando tmux nasconde il terminale padre. Ha la precedenza sull'impostazione di configurazione globale [`autoConnectIde`](/docs/it/settings-reference#autoconnectide) |225| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Sovrascrive la [connessione IDE](/docs/it/vs-code) automatica. Per impostazione predefinita, Claude Code si connette automaticamente quando viene avviato all'interno del terminale integrato di un IDE supportato. Imposta su `false` per impedirlo. Imposta su `true` per forzare un tentativo di connessione quando il rilevamento automatico non riesce, ad esempio quando tmux nasconde il terminale padre. Ha la precedenza sull'impostazione di configurazione globale [`autoConnectIde`](/docs/it/settings-reference#autoconnectide) |

226| `CLAUDE_CODE_AUTO_MODE_SERVER` | Controlla se Claude Code chiede al server di [esaminare le azioni della modalità auto](/docs/it/permission-modes#server-side-classifier-review). Imposta su `0` per usare invece le richieste al classificatore di Claude Code stesso. Su una connessione diretta all'API Anthropic, richiede la v2.1.281 o successiva. La sezione collegata elenca quali sessioni interpellano il server quando la variabile non è impostata, e da quale versione. Richiede Claude Code v2.1.271 o successiva |226| `CLAUDE_CODE_AUTO_MODE_SERVER` | Controlla se Claude Code chiede al server di [esaminare le azioni della modalità auto](/docs/it/permission-modes#server-side-classifier-review). Imposta su `0` per usare invece le richieste al classificatore di Claude Code stesso. Su una connessione diretta all'API Anthropic, richiede la v2.1.281 o successiva. La sezione collegata elenca quali sessioni interpellano il server quando la variabile non è impostata, e da quale versione. Richiede Claude Code v2.1.271 o successiva |

227| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | Tempo in millisecondi che Claude Code attende affinché la catena predefinita dei provider di credenziali AWS produca le credenziali prima che la richiesta fallisca con [`AWS default-chain credential resolve timed out`](/docs/it/errors#aws-default-chain-credential-resolve-timed-out) (predefinito: `60000`). Aumentalo quando un passaggio della tua catena richiede legittimamente più tempo, come un accesso SSO basato su browser con MFA tramite un wrapper come `aws-vault`. Si applica ovunque Claude Code firmi con la catena predefinita: [Amazon Bedrock](/docs/it/amazon-bedrock#credential-caching-and-resolution-timeout), [Claude Platform on AWS](/docs/it/claude-platform-on-aws) e l'[endpoint Mantle](/docs/it/amazon-bedrock#use-the-mantle-endpoint). Richiede Claude Code v2.1.207 o successiva |227| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | Tempo in millisecondi che Claude Code attende affinché la catena predefinita di provider di credenziali AWS produca le credenziali prima che la richiesta non riesca con [`AWS default-chain credential resolve timed out`](/docs/it/errors#aws-default-chain-credential-resolve-timed-out) (predefinito: `60000`). Aumentalo quando un passaggio della tua catena richiede legittimamente più tempo, come un accesso SSO basato su browser con MFA tramite un wrapper come `aws-vault`. Si applica ovunque Claude Code firmi con la catena predefinita: [Amazon Bedrock](/docs/it/amazon-bedrock#credential-caching-and-resolution-timeout), [Claude Platform on AWS](/docs/it/claude-platform-on-aws) e l'[endpoint Mantle](/docs/it/amazon-bedrock#use-the-mantle-endpoint). Richiede Claude Code v2.1.207 o successiva |

228| `CLAUDE_CODE_BASH_EDIT_DIFF` | Imposta su `0` per disattivare il [diff dei file modificati durante l'esecuzione di un comando Bash](/docs/it/hooks#bash), oppure su `1` per registrarlo in ogni modalità di permesso. Ha la precedenza sull'impostazione [`bashEditDiffEnabled`](/docs/it/settings-reference#basheditdiffenabled). Richiede Claude Code v2.1.269 o successiva |228| `CLAUDE_CODE_BASH_EDIT_DIFF` | Imposta su `0` per disattivare il [diff dei file modificati durante l'esecuzione di un comando Bash](/docs/it/hooks#bash), oppure `1` per registrarlo in ogni modalità di permesso. Ha la precedenza sull'impostazione [`bashEditDiffEnabled`](/docs/it/settings-reference#basheditdiffenabled). Richiede Claude Code v2.1.269 o successiva |

229| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | Imposta su `0` per fare in modo che una sessione non interattiva segnali al proprio host uno stato inattivo alla fine di ogni turno, anche mentre è ancora in corso lavoro in background. Per impostazione predefinita, la sessione continua a segnalare uno stato in esecuzione dopo la fine del turno finché il lavoro in background, come un agente in background o un'esecuzione di un [workflow](/docs/it/workflows), è ancora attivo. Questo impedisce a un host che osserva lo stato, come un elenco di sessioni remote, di annunciare che Claude è in attesa del tuo input a metà lavoro. I comandi shell in background, come un server di sviluppo, non mantengono lo stato in esecuzione. Il valore predefinito dello stato in esecuzione e la disattivazione con `0` richiedono Claude Code v2.1.269 o successiva; nelle versioni precedenti, imposta `1` per mantenere lo stato in esecuzione |229| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | Imposta su `0` per fare in modo che una sessione non interattiva segnali al suo host uno stato inattivo alla fine di ogni turno, anche mentre il lavoro in background è ancora in esecuzione. Per impostazione predefinita, la sessione continua a segnalare uno stato di esecuzione oltre la fine del turno mentre il lavoro in background, come un agente in background o un'esecuzione di un [workflow](/docs/it/workflows), è ancora attivo. In questo modo un host che osserva lo stato, come un elenco di sessioni remote, non annuncia che Claude è in attesa del tuo input a metà lavoro. I comandi shell in background, come un server di sviluppo, non mantengono lo stato di esecuzione. Il valore predefinito dello stato di esecuzione e la disattivazione con `0` richiedono Claude Code v2.1.269 o successiva; nelle versioni precedenti, imposta `1` per mantenere lo stato di esecuzione |

230| `CLAUDE_CODE_BRIDGE_SESSION_ID` | Impostata automaticamente nei sottoprocessi dello strumento Bash e dei [comandi degli hook](/docs/it/hooks) mentre la sessione ha una connessione [Remote Control](/docs/it/remote-control) attiva, e rimossa al termine della connessione. Il valore è l'ID della sessione nel formato `session_`, lo stesso identificatore che compare nell'URL `claude.ai/code` della sessione, così uno script può collegarsi alla sessione che lo ha eseguito. Richiede Claude Code v2.1.199 o successiva. Nelle [sessioni cloud](/docs/it/claude-code-on-the-web), leggi invece `CLAUDE_CODE_REMOTE_SESSION_ID` |230| `CLAUDE_CODE_BRIDGE_SESSION_ID` | Impostata automaticamente nei sottoprocessi dello strumento Bash e dei [comandi hook](/docs/it/hooks) mentre la sessione ha una connessione [Remote Control](/docs/it/remote-control) attiva, e rimossa quando la connessione termina. Il valore è l'ID della sessione nel formato `session_`, lo stesso identificatore che compare nell'URL `claude.ai/code` della sessione, così uno script può rimandare alla sessione che lo ha eseguito. Richiede Claude Code v2.1.199 o successiva. Nelle [sessioni cloud](/docs/it/claude-code-on-the-web), leggi invece `CLAUDE_CODE_REMOTE_SESSION_ID` |

231| `CLAUDE_CODE_BS_AS_CTRL_BACKSPACE` | Imposta su `0` per fare in modo che Claude Code legga il byte `0x08`, scritto anche `^H`, come semplice Backspace, oppure su `1` per leggerlo come Ctrl+Backspace. Entrambi i valori sostituiscono il comportamento predefinito della piattaforma. Per impostazione predefinita, Claude Code lo legge come Ctrl+Backspace su Windows, tranne quando `TERM_PROGRAM` è `mintty` o `TERM` è `cygwin`, e come semplice Backspace su macOS e Linux. Imposta `0` in un terminale Windows in cui [Backspace elimina un'intera parola](/docs/it/terminal-config#fix-backspace-deleting-a-whole-word-on-windows) |231| `CLAUDE_CODE_BS_AS_CTRL_BACKSPACE` | Imposta su `0` per fare in modo che Claude Code legga il byte `0x08`, scritto anche `^H`, come un semplice Backspace, oppure `1` per leggerlo come Ctrl+Backspace. Entrambi i valori sostituiscono il comportamento predefinito della piattaforma. Per impostazione predefinita, Claude Code lo legge come Ctrl+Backspace su Windows, tranne quando `TERM_PROGRAM` è `mintty` o `TERM` è `cygwin`, e come semplice Backspace su macOS e Linux. Imposta `0` in un terminale Windows in cui [Backspace elimina un'intera parola](/docs/it/terminal-config#fix-backspace-deleting-a-whole-word-on-windows) |

232| `CLAUDE_CODE_CERT_STORE` | Elenco separato da virgole delle origini dei certificati CA per le connessioni TLS. `bundled` è il set di CA Mozilla fornito con Claude Code. `system` è l'archivio di attendibilità del sistema operativo, letto solo sui runtime con `tls.getCACertificates`: il binario nativo, oppure Node 22.15 o successivo per le installazioni npm. Consulta [Archivio dei certificati CA](/docs/it/network-config#ca-certificate-store). Il valore predefinito è `bundled,system` |232| `CLAUDE_CODE_CERT_STORE` | Elenco separato da virgole delle origini dei certificati CA per le connessioni TLS. `bundled` è il set di CA Mozilla incluso in Claude Code. `system` è l'archivio attendibile del sistema operativo, letto solo sui runtime con `tls.getCACertificates`: il binario nativo, oppure Node 22.15 o successivo per le installazioni npm. Consulta [Archivio dei certificati CA](/docs/it/network-config#ca-certificate-store). Il valore predefinito è `bundled,system` |

233| `CLAUDE_CODE_CHILD_SESSION` | Impostata su `1` nei sottoprocessi che Claude Code avvia tramite gli strumenti Bash, PowerShell e Monitor, i comandi degli [hook](/docs/it/hooks) e i comandi della [riga di stato](/docs/it/statusline). Non è impostata per i sottoprocessi dei [server MCP](/docs/it/mcp) stdio, che sono di lunga durata e sopravvivono alla sessione che li ha avviati. A differenza di `CLAUDECODE`, viene impostata solo da Claude Code stesso quando avvia un sottoprocesso e non dalle estensioni IDE, quindi distingue in modo affidabile una sessione annidata da un `claude` di primo livello avviato in un terminale integrato nell'IDE. Una TUI `claude` interattiva annidata avviata in questo modo viene esclusa automaticamente da `--resume`, `--continue`, dalla cronologia con freccia su e dall'elenco `claude agents`. Le sessioni non interattive `claude -p` vengono comunque salvate. Imposta `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1` per sovrascrivere questa esclusione. Richiede Claude Code v2.1.172 o successiva |233| `CLAUDE_CODE_CHILD_SESSION` | Impostata su `1` nei sottoprocessi che Claude Code avvia tramite gli strumenti Bash, PowerShell e Monitor, i comandi degli [hook](/docs/it/hooks) e i comandi della [riga di stato](/docs/it/statusline). Non è impostata per i sottoprocessi dei [server MCP](/docs/it/mcp) stdio, che sono di lunga durata e sopravvivono alla sessione che li ha avviati. A differenza di `CLAUDECODE`, viene impostata solo da Claude Code stesso quando avvia un sottoprocesso e non dalle estensioni IDE, quindi distingue in modo affidabile una sessione annidata da un `claude` di primo livello avviato in un terminale integrato in un IDE. Una TUI `claude` interattiva annidata avviata in questo modo viene esclusa automaticamente da `--resume`, `--continue`, dalla cronologia con la freccia su e dall'elenco `claude agents`. Le sessioni non interattive `claude -p` vengono comunque salvate. Imposta `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1` per sovrascrivere questa esclusione. Richiede Claude Code v2.1.172 o successiva |

234| `CLAUDE_CODE_CLIENT_CERT` | Percorso del file del certificato client per l'autenticazione mTLS |234| `CLAUDE_CODE_CLIENT_CERT` | Percorso del file del certificato client per l'autenticazione mTLS |

235| `CLAUDE_CODE_CLIENT_KEY` | Percorso del file della chiave privata del client per l'autenticazione mTLS |235| `CLAUDE_CODE_CLIENT_KEY` | Percorso del file della chiave privata del client per l'autenticazione mTLS |

236| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Passphrase per la CLAUDE\_CODE\_CLIENT\_KEY crittografata (facoltativa) |236| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Passphrase per la CLAUDE\_CODE\_CLIENT\_KEY crittografata (facoltativa) |

237| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | Rimossa nella v2.1.186 e ora non ha alcun effetto. In precedenza impostava un timeout separato per la fase di connessione, TLS e intestazioni di risposta di una richiesta API in streaming. Usa `API_TIMEOUT_MS` per il timeout per richiesta. Per la fase delle intestazioni di risposta di una richiesta in streaming, consulta `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |237| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | Rimossa nella v2.1.186 e ora non ha alcun effetto. In precedenza impostava un timeout separato per la fase di connessione, TLS e header di risposta di una richiesta API in streaming. Usa `API_TIMEOUT_MS` per il timeout per richiesta. Per la fase degli header di risposta di una richiesta in streaming, consulta `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |

238| `CLAUDE_CODE_DEBUG_LOGS_DIR` | Sovrascrive il percorso del file di log di debug. Nonostante il nome, si tratta di un percorso di file, non di una directory. Richiede che la modalità di debug sia attivata separatamente tramite `--debug`, `/debug` o la variabile d'ambiente `DEBUG`: impostare solo questa variabile non attiva il logging. Il flag [`--debug-file`](/docs/it/cli-reference#cli-flags) fa entrambe le cose contemporaneamente. Il valore predefinito è `~/.claude/debug/<session-id>.txt` |238| `CLAUDE_CODE_DEBUG_LOGS_DIR` | Sovrascrive il percorso del file di log di debug. Nonostante il nome, si tratta di un percorso di file, non di una directory. Richiede che la modalità debug sia abilitata separatamente tramite `--debug`, `/debug` o la variabile d'ambiente `DEBUG`: impostare solo questa variabile non abilita il logging. Il flag [`--debug-file`](/docs/it/cli-reference#cli-flags) fa entrambe le cose insieme. Il valore predefinito è `~/.claude/debug/<session-id>.txt` |

239| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | Livello minimo di log scritto nel file di log di debug. Valori: `verbose`, `debug` (predefinito), `info`, `warn`, `error`. Imposta su `verbose` per includere diagnostica ad alto volume come l'output completo del comando della riga di stato, oppure alza a `error` per ridurre il rumore |239| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | Livello minimo di log scritto nel file di log di debug. Valori: `verbose`, `debug` (predefinito), `info`, `warn`, `error`. Imposta su `verbose` per includere diagnostica ad alto volume come l'output completo del comando della riga di stato, oppure alza a `error` per ridurre il rumore |

240| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Imposta su `1` per disattivare il supporto della [finestra di contesto da 1M](/docs/it/model-config#extended-context). Quando è impostata, le varianti dei modelli da 1M non sono disponibili nel selettore dei modelli e Claude Code limita a una finestra di 200K le sessioni sui modelli con una finestra nativa da 1M, come [Sonnet 5.5](/docs/it/model-config#sonnet-5-5-and-sonnet-5-context-window) e i modelli Fable; consulta [Contesto esteso](/docs/it/model-config#extended-context) per sapere come viene applicato il limite. Utile per ambienti aziendali con requisiti di conformità. Per il suo ruolo nella correzione della finestra per un ID di modello `[1m]` non riconosciuto, consulta [Correggere la finestra per un gateway o un ID di modello personalizzato](/docs/it/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |240| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Imposta su `1` per disabilitare il supporto della [finestra di contesto da 1M](/docs/it/model-config#extended-context). Quando è impostata, le varianti dei modelli da 1M non sono disponibili nel selettore dei modelli e Claude Code limita a una finestra da 200K le sessioni sui modelli con una finestra nativa da 1M, come [Sonnet 5.5](/docs/it/model-config#sonnet-5-5-and-sonnet-5-context-window) e i modelli Fable; consulta [Contesto esteso](/docs/it/model-config#extended-context) per sapere come viene applicato il limite. Utile per gli ambienti enterprise con requisiti di conformità. Per il suo ruolo nella correzione della finestra per un ID modello `[1m]` non riconosciuto, consulta [Correggere la finestra per un gateway o un ID modello personalizzato](/docs/it/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |

241| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Imposta su `1` per disattivare il [ragionamento adattivo](/docs/it/model-config#adjust-effort-level) su Opus 4.6 e Sonnet 4.6 e ripiegare sul budget di ragionamento fisso controllato da `MAX_THINKING_TOKENS`. Non ha effetto sui [modelli Fable](/docs/it/model-config#extended-thinking), su Sonnet 5 e successivi o su Opus 4.7 e successivi, che usano sempre il ragionamento adattivo |241| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Imposta su `1` per disabilitare il [ragionamento adattivo](/docs/it/model-config#adjust-effort-level) su Opus 4.6 e Sonnet 4.6 e ripiegare sul budget di ragionamento fisso controllato da `MAX_THINKING_TOKENS`. Non ha effetto sui [modelli Fable](/docs/it/model-config#extended-thinking), su Sonnet 5 e successivi o su Opus 4.7 e successivi, che usano sempre il ragionamento adattivo |

242| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | Imposta su `1` per impedire a Claude Code di unire per chiave i blocchi `env` delle [impostazioni gestite](/docs/it/managed-settings#precedence-within-the-managed-tier) tra le origini di amministrazione, in modo che si applichi solo l'intero blocco `env` dell'origine con priorità più alta, come prima della v2.1.223. Impostala nell'ambiente che avvia Claude Code, poiché Claude Code ignora una copia fornita tramite un blocco `env` delle impostazioni. Richiede Claude Code v2.1.223 o successiva |242| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | Imposta su `1` per impedire a Claude Code di unire chiave per chiave i blocchi `env` delle [impostazioni gestite](/docs/it/managed-settings#precedence-within-the-managed-tier) tra le origini di amministrazione, così si applica solo l'intero blocco `env` dell'origine con priorità più alta, come prima della v2.1.223. Impostala nell'ambiente che avvia Claude Code, poiché Claude Code ignora una copia fornita tramite un blocco `env` delle impostazioni. Richiede Claude Code v2.1.223 o successiva |

243| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | Imposta su `1` per disattivare lo [strumento advisor](/docs/it/advisor). Il comando `/advisor` diventa non disponibile, qualsiasi `advisorModel` configurato viene ignorato e il flag `--advisor` viene accettato ma non ha effetto, quindi gli script esistenti che lo passano continuano a funzionare senza errori |243| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | Imposta su `1` per disabilitare lo [strumento advisor](/docs/it/advisor). Il comando `/advisor` diventa non disponibile, qualsiasi `advisorModel` configurato viene ignorato e il flag `--advisor` viene accettato ma non ha effetto, così gli script esistenti che lo passano continuano a funzionare senza errori |

244| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | Imposta su `1` per disattivare gli [agenti in background e la vista agenti](/docs/it/agent-view): `claude agents`, `--bg`, `/background` e il supervisore on demand. Equivalente all'impostazione [`disableAgentView`](/docs/it/settings-reference#disableagentview) |244| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | Imposta su `1` per disattivare gli [agenti in background e la vista agenti](/docs/it/agent-view): `claude agents`, `--bg`, `/background` e il supervisore su richiesta. Equivalente all'impostazione [`disableAgentView`](/docs/it/settings-reference#disableagentview) |

245| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Imposta su `1` per disattivare il [rendering a schermo intero](/docs/it/fullscreen) e usare il renderer classico sullo schermo principale. La conversazione resta nello scrollback nativo del terminale, così `Cmd+f` e la modalità copia di tmux funzionano come al solito. Ha la precedenza su `CLAUDE_CODE_NO_FLICKER` e sull'impostazione [`tui`](/docs/it/settings-reference#tui). Puoi anche passare con `/tui default`. Non si applica alle sessioni in background aperte dalla [vista agenti](/docs/it/agent-view), che usano sempre il rendering a schermo intero |245| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Imposta su `1` per disabilitare il [rendering a schermo intero](/docs/it/fullscreen) e usare il renderer classico della schermata principale. La conversazione rimane nello scrollback nativo del tuo terminale, così `Cmd+f` e la modalità copia di tmux funzionano come al solito. Ha la precedenza su `CLAUDE_CODE_NO_FLICKER` e sull'impostazione [`tui`](/docs/it/settings-reference#tui). Puoi anche cambiare con `/tui default`. Non si applica alle sessioni in background aperte dalla [vista agenti](/docs/it/agent-view), che usano sempre il rendering a schermo intero |

246| `CLAUDE_CODE_DISABLE_ARTIFACT` | Imposta su `1` per disattivare lo strumento [Artifact](/docs/it/artifacts), che pubblica l'output della sessione come pagina web privata su claude.ai. Una volta impostata, nessun file di impostazioni riattiva lo strumento. Per disattivare invece lo strumento da un file di impostazioni, imposta [`enableArtifact`](/docs/it/settings-reference#enableartifact) su `false`; anche la chiave deprecata [`disableArtifact`](/docs/it/settings-reference#disableartifact) lo disattiva |246| `CLAUDE_CODE_DISABLE_ARTIFACT` | Imposta su `1` per disattivare lo strumento [Artifact](/docs/it/artifacts), che pubblica l'output della sessione come pagina web privata su claude.ai. Una volta impostata, nessun file di impostazioni riattiva lo strumento. Per disattivare invece lo strumento da un file di impostazioni, imposta [`enableArtifact`](/docs/it/settings-reference#enableartifact) su `false`; anche la chiave deprecata [`disableArtifact`](/docs/it/settings-reference#disableartifact) lo disattiva |

247| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Imposta su `1` per disattivare l'elaborazione degli allegati. Le menzioni di file con la sintassi `@` vengono inviate come testo semplice invece di essere espanse nel contenuto del file |247| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Imposta su `1` per disabilitare l'elaborazione degli allegati. Le menzioni di file con la sintassi `@` vengono inviate come testo semplice anziché essere espanse nel contenuto del file |

248| `CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK` | Imposta su `1` per fare in modo che un processo Claude Code esegua da sé il comando [`gcpAuthRefresh`](/docs/it/settings-reference#gcpauthrefresh) o [`awsAuthRefresh`](/docs/it/settings-reference#awsauthrefresh) invece di attendere mentre un altro processo lo esegue. Richiede Claude Code v2.1.286 o successiva |248| `CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK` | Imposta su `1` per fare in modo che un processo Claude Code esegua autonomamente il proprio comando [`gcpAuthRefresh`](/docs/it/settings-reference#gcpauthrefresh) o [`awsAuthRefresh`](/docs/it/settings-reference#awsauthrefresh) anziché attendere mentre lo esegue un altro processo. Richiede Claude Code v2.1.286 o successiva |

249| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Imposta su `1` per disattivare la [memoria automatica](/docs/it/memory#auto-memory). Imposta su `0` per forzare l'attivazione della memoria automatica anche quando la modalità `--bare` o [`autoMemoryEnabled: false`](/docs/it/settings-reference#automemoryenabled) la disattiverebbero. Quando è disattivata, Claude non crea né carica i file di memoria automatica |249| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Imposta su `1` per disabilitare la [memoria automatica](/docs/it/memory#auto-memory). Imposta su `0` per forzare l'attivazione della memoria automatica anche quando la modalità `--bare` o [`autoMemoryEnabled: false`](/docs/it/settings-reference#automemoryenabled) la disabiliterebbero. Quando è disabilitata, Claude non crea né carica i file di memoria automatica |

250| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Imposta su `1` per disattivare tutte le funzionalità delle attività in background, incluso il parametro `run_in_background` negli strumenti Bash e subagent, lo spostamento automatico in background e la scorciatoia Ctrl+B |250| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Imposta su `1` per disabilitare tutte le funzionalità delle attività in background, incluso il parametro `run_in_background` degli strumenti Bash e subagent, lo spostamento automatico in background e la scorciatoia Ctrl+B |

251| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Imposta su `1` per impedire a Claude Code di trattare una risposta in streaming di [Amazon Bedrock](/docs/it/amazon-bedrock) con un'intestazione `Content-Type` mancante o vuota come il flusso di eventi binario di Amazon Bedrock. Per impostazione predefinita, Claude Code presume che un gateway abbia eliminato l'intestazione da una risposta altrimenti non modificata, quindi decodifica il corpo e lo streaming continua a funzionare. Impostala solo per un gateway che riemette anche il flusso come server-sent events; Claude Code legge quindi il corpo senza intestazione come server-sent events. Richiede Claude Code v2.1.239 o successiva |251| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Imposta su `1` per impedire a Claude Code di trattare una risposta in streaming di [Amazon Bedrock](/docs/it/amazon-bedrock) con un header `Content-Type` mancante o vuoto come il flusso di eventi binario di Amazon Bedrock. Per impostazione predefinita, Claude Code presume che un gateway abbia rimosso l'header da una risposta altrimenti non modificata, quindi decodifica il corpo e lo streaming continua a funzionare. Impostala solo per un gateway che riemette anche lo stream come server-sent events; Claude Code legge quindi il corpo senza header come server-sent events. Richiede Claude Code v2.1.239 o successiva |

252| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | Imposta su `1` per saltare il controllo che verifica che una risposta in streaming di [Amazon Bedrock](/docs/it/amazon-bedrock) abbia il content-type `application/vnd.amazon.eventstream`. Senza questa variabile, quando una risposta ha un content-type diverso, Claude Code fa fallire la richiesta con un errore che indica quel tipo, il che significa che un [gateway o un proxy sta trasformando la risposta](/docs/it/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy). Configura il gateway in modo che inoltri l'intestazione `Content-Type` e il corpo senza modifiche, anziché impostare questa variabile. Richiede Claude Code v2.1.208 o successiva |252| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | Imposta su `1` per saltare il controllo che verifica che una risposta in streaming di [Amazon Bedrock](/docs/it/amazon-bedrock) abbia il content-type `application/vnd.amazon.eventstream`. Senza questa variabile, quando una risposta ha un content-type diverso, Claude Code fa fallire la richiesta con un errore che indica quel tipo, il che significa che un [gateway o un proxy sta trasformando la risposta](/docs/it/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy). Configura il gateway per inoltrare l'header `Content-Type` e il corpo senza modifiche anziché impostare questa variabile. Richiede Claude Code v2.1.208 o successiva |

253| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Imposta su `1` per arrestare, in una [sessione in background](/docs/it/agent-view), i comandi shell in background in esecuzione, i workflow dinamici e, a partire dalla v2.1.198, i subagent in background quando il [supervisore](/docs/it/agent-view#the-supervisor-process) arresta, riavvia o aggiorna il processo di quella sessione, invece di passarli al processo successivo della sessione. Riguarda solo quel passaggio: mettere in background una sessione con `←` o [`/background`](/docs/it/agent-view#from-inside-a-session) trasferisce comunque il lavoro in corso, e `CLAUDE_DISABLE_ADOPT` disattiva entrambi. Richiede Claude Code v2.1.196 o successiva |253| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Imposta su `1` per arrestare i comandi shell in background in esecuzione, i workflow dinamici e, a partire dalla v2.1.198, i subagent in background di una [sessione in background](/docs/it/agent-view) quando il [supervisore](/docs/it/agent-view#the-supervisor-process) arresta, riavvia o aggiorna il processo di quella sessione, anziché passarli al processo successivo della sessione. Riguarda solo quel passaggio: spostare una sessione in background con `←` o [`/background`](/docs/it/agent-view#from-inside-a-session) trasferisce comunque il lavoro in corso, e `CLAUDE_DISABLE_ADOPT` disattiva entrambi. Richiede Claude Code v2.1.196 o successiva |

254| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | Imposta su `1` per impedire a Claude Code di terminare i [comandi shell in background](/docs/it/interactive-mode#background-bash-commands) in caso di pressione sulla memoria. Per impostazione predefinita, su macOS e Linux, Claude Code termina le shell in background quando il sistema operativo segnala una pressione critica sulla memoria e la sessione è rimasta inattiva per 30 minuti senza turni o subagent in esecuzione. Windows non ha un segnale di pressione sulla memoria, quindi lì questa variabile non ha effetto. Richiede Claude Code v2.1.193 o successiva |254| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | Imposta su `1` per impedire a Claude Code di terminare i [comandi shell in background](/docs/it/interactive-mode#background-bash-commands) in caso di pressione sulla memoria. Per impostazione predefinita, su macOS e Linux, Claude Code termina le shell in background quando il sistema operativo segnala una pressione critica sulla memoria e la sessione è rimasta inattiva per 30 minuti senza turni o subagent in esecuzione. Windows non dispone di un segnale di pressione sulla memoria, quindi lì questa variabile non ha effetto. Richiede Claude Code v2.1.193 o successiva |

255| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Imposta su `1` per disattivare le [skill](/docs/it/skills) e i workflow inclusi in Claude Code: le skill e i workflow inclusi vengono rimossi completamente, mentre i comandi integrati come `/init` restano digitabili ma vengono nascosti al modello. `/doctor` resta digitabile come i comandi integrati; nascondilo invece con `DISABLE_DOCTOR_COMMAND`. Le skill provenienti dai plugin, da `.claude/skills/` e da `.claude/commands/` non sono interessate. Equivalente all'impostazione [`disableBundledSkills`](/docs/it/settings-reference#disablebundledskills) |255| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Imposta su `1` per disabilitare le [skill](/docs/it/skills) e i workflow inclusi in Claude Code: le skill e i workflow inclusi vengono rimossi completamente, mentre i comandi integrati come `/init` restano digitabili ma sono nascosti al modello. `/doctor` resta digitabile come i comandi integrati; nascondilo invece con `DISABLE_DOCTOR_COMMAND`. Le skill provenienti da plugin, `.claude/skills/` e `.claude/commands/` non sono interessate. Equivalente all'impostazione [`disableBundledSkills`](/docs/it/settings-reference#disablebundledskills) |

256| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Imposta su `1` per mantenere disponibili gli strumenti del browser di [Claude in Chrome](/docs/it/chrome) omettendo la sezione Chrome del prompt di sistema e la [skill inclusa](/docs/it/skills#bundled-skills) `/claude-in-chrome`. Per gli host che incorporano Claude Code e forniscono le proprie indicazioni sul browser. Richiede Claude Code v2.1.257 o successiva |256| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Imposta su `1` per mantenere disponibili gli strumenti del browser di [Claude in Chrome](/docs/it/chrome) omettendo la sezione Chrome del prompt di sistema e la [skill inclusa](/docs/it/skills#bundled-skills) `/claude-in-chrome`. Per gli host che incorporano Claude Code e forniscono le proprie indicazioni per il browser. Richiede Claude Code v2.1.257 o successiva |

257| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | Imposta su `1` per impedire il caricamento nel contesto di qualsiasi file di memoria CLAUDE.md, inclusi i file di memoria utente, di progetto e di memoria automatica |257| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | Imposta su `1` per impedire il caricamento nel contesto di qualsiasi file di memoria CLAUDE.md, inclusi i file di memoria utente, di progetto e di memoria automatica |

258| `CLAUDE_CODE_DISABLE_CRON` | Imposta su `1` per disattivare le [attività pianificate](/docs/it/scheduled-tasks). La skill `/loop` e gli strumenti cron diventano non disponibili e tutte le attività già pianificate smettono di attivarsi, incluse quelle già in esecuzione a metà sessione |258| `CLAUDE_CODE_DISABLE_CRON` | Imposta su `1` per disabilitare le [attività pianificate](/docs/it/scheduled-tasks). La skill `/loop` e gli strumenti cron diventano non disponibili e le attività già pianificate smettono di attivarsi, incluse quelle già in esecuzione a metà sessione |

259| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | Imposta su `1` per disattivare il limite di tempo sulle richieste di conferma per la [rimozione di percorsi critici](/docs/it/permission-modes#critical-paths). In modalità `auto` Claude Code invia invece queste rimozioni al classificatore, e in modalità `bypassPermissions` la richiesta attende la tua risposta. Impostala nell'ambiente che avvia Claude Code, poiché Claude Code ignora una copia fornita tramite un blocco `env` delle impostazioni. Richiede Claude Code v2.1.281 o successiva |259| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | Imposta su `1` per disattivare il limite di tempo sulle richieste di conferma per la [rimozione di percorsi critici](/docs/it/permission-modes#critical-paths). In modalità `auto` Claude Code invia quindi queste rimozioni al classificatore, e in modalità `bypassPermissions` la richiesta di conferma attende la tua risposta. Impostala nell'ambiente che avvia Claude Code, poiché Claude Code ignora una copia fornita tramite un blocco `env` delle impostazioni. Richiede Claude Code v2.1.281 o successiva |

260| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Imposta su `1` per rimuovere dalle richieste API gli header `anthropic-beta` pre-release, i campi del body associati e i campi beta dello schema degli strumenti come `defer_loading` ed `eager_input_streaming`. Usala quando un gateway proxy rifiuta le richieste con un errore `Unexpected value(s)` per l'header `anthropic-beta` o un errore `Extra inputs are not permitted`. [Disattivare le funzionalità pre-release](/docs/it/llm-gateway-protocol#disable-pre-release-capabilities) elenca cosa rimuove la variabile, incluso [MCP Tool Search](/docs/it/mcp#scale-with-mcp-tool-search), e cosa Claude Code continua a inviare |260| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Imposta su `1` per rimuovere dalle richieste API gli header di richiesta `anthropic-beta` di pre-rilascio, i campi del corpo associati e i campi beta dello schema degli strumenti come `defer_loading` e `eager_input_streaming`. Usala quando un gateway proxy rifiuta le richieste con un errore `Unexpected value(s)` per l'header `anthropic-beta` o con un errore `Extra inputs are not permitted`. [Disabilitare le funzionalità di pre-rilascio](/docs/it/llm-gateway-protocol#disable-pre-release-capabilities) elenca ciò che la variabile rimuove, incluso [MCP Tool Search](/docs/it/mcp#scale-with-mcp-tool-search), e ciò che Claude Code continua a inviare |

261| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | Imposta su `1` per disattivare i [subagent Explore e Plan](/docs/it/sub-agents#built-in-subagents) integrati. Claude esplora invece con i suoi strumenti di ricerca o con il subagent general-purpose, e il [plan mode](/docs/it/permission-modes#analyze-before-you-edit-with-plan-mode) legge i file direttamente anziché avviare gli agenti Explore e Plan. I subagent personalizzati denominati `Explore` o `Plan` non sono interessati. Per rimuovere tutti i tipi di subagent integrati nell'Agent SDK o in modalità non interattiva, usa invece `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS`. Richiede Claude Code v2.1.198 o successiva |261| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | Imposta su `1` per disabilitare i [subagent Explore e Plan](/docs/it/sub-agents#built-in-subagents) integrati. Claude esplora invece con i suoi strumenti di ricerca o con il subagent general-purpose, e il [plan mode](/docs/it/permission-modes#analyze-before-you-edit-with-plan-mode) legge i file direttamente anziché avviare gli agenti Explore e Plan. I subagent personalizzati denominati `Explore` o `Plan` non sono interessati. Per rimuovere ogni tipo di subagent integrato nell'Agent SDK o in modalità non interattiva, usa invece `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS`. Richiede Claude Code v2.1.198 o successiva |

262| `CLAUDE_CODE_DISABLE_FAST_MODE` | Imposta su `1` per disattivare la [modalità veloce](/docs/it/fast-mode) |262| `CLAUDE_CODE_DISABLE_FAST_MODE` | Imposta su `1` per disabilitare la [modalità veloce](/docs/it/fast-mode) |

263| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Imposta su `1` per disattivare i sondaggi sulla qualità della sessione "How is Claude doing?". I sondaggi sono disattivati anche quando è impostata `DISABLE_TELEMETRY`, `DO_NOT_TRACK` o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, a meno che `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` non li riattivi. Per impostare una frequenza di campionamento invece di disattivarli del tutto, usa l'impostazione [`feedbackSurveyRate`](/docs/it/settings-reference#feedbacksurveyrate). Consulta [Sondaggi sulla qualità della sessione](/docs/it/data-usage#session-quality-surveys) |263| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Imposta su `1` per disabilitare i sondaggi sulla qualità della sessione "How is Claude doing?". I sondaggi sono disabilitati anche quando è impostata `DISABLE_TELEMETRY`, `DO_NOT_TRACK` o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, a meno che `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` non li riattivi. Per impostare una frequenza di campionamento anziché disabilitarli del tutto, usa l'impostazione [`feedbackSurveyRate`](/docs/it/settings-reference#feedbacksurveyrate). Consulta [Sondaggi sulla qualità della sessione](/docs/it/data-usage#session-quality-surveys) |

264| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Imposta su `1` per disattivare il [checkpointing](/docs/it/checkpointing) dei file. Il comando `/rewind` non potrà ripristinare le modifiche al codice. Sovrascrive l'impostazione [`fileCheckpointingEnabled`](/docs/it/settings-reference#filecheckpointingenabled) |264| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Imposta su `1` per disabilitare il [checkpointing](/docs/it/checkpointing) dei file. Il comando `/rewind` non potrà ripristinare le modifiche al codice. Sovrascrive l'impostazione [`fileCheckpointingEnabled`](/docs/it/settings-reference#filecheckpointingenabled) |

265| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Imposta su `1` per rimuovere dal contesto di Claude le istruzioni integrate sui workflow di commit e PR e lo snapshot dello stato git. Utile quando usi le tue skill per il workflow git. Quando è impostata, ha la precedenza sull'impostazione [`includeGitInstructions`](/docs/it/settings-reference#includegitinstructions) |265| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Imposta su `1` per rimuovere dal contesto di Claude le istruzioni integrate sul workflow di commit e PR e lo snapshot dello stato git. Utile quando usi le tue skill per il workflow git. Quando è impostata, ha la precedenza sull'impostazione [`includeGitInstructions`](/docs/it/settings-reference#includegitinstructions) |

266| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Imposta su `1` per impedire la rimappatura automatica di Opus 4.0 e 4.1 alla versione Opus corrente sull'API Anthropic. Usala quando vuoi intenzionalmente fissare un modello più vecchio. La rimappatura non viene eseguita su Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry |266| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Imposta su `1` per impedire la rimappatura automatica di Opus 4.0 e 4.1 alla versione attuale di Opus sull'API Anthropic. Usala quando vuoi intenzionalmente fissare un modello precedente. La rimappatura non viene eseguita su Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry |

267| `CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK` | Imposta su `1` per impedire a Claude Code su [Amazon Bedrock](/docs/it/amazon-bedrock#when-a-model-is-disabled-mid-session) e [Google Cloud's Agent Platform](/docs/it/google-vertex-ai#when-a-model-is-disabled-mid-session) di passare a un modello più vecchio quando il tuo account perde l'accesso al modello di una sessione a metà sessione; la richiesta rifiutata fallisce invece immediatamente. Una [catena di modelli di fallback](/docs/it/model-config#fallback-model-chains) che configuri passa comunque a un altro modello in caso di quel rifiuto, e i [controlli dei modelli all'avvio](/docs/it/amazon-bedrock#startup-model-checks) eseguono comunque il fallback all'avvio. Richiede Claude Code v2.1.285 o successiva |267| `CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK` | Imposta su `1` per impedire a Claude Code su [Amazon Bedrock](/docs/it/amazon-bedrock#when-a-model-is-disabled-mid-session) e [Google Cloud's Agent Platform](/docs/it/google-vertex-ai#when-a-model-is-disabled-mid-session) di passare a un modello precedente quando il tuo account perde l'accesso al modello di una sessione a metà sessione; la richiesta rifiutata non riesce invece subito. Una [catena di modelli di fallback](/docs/it/model-config#fallback-model-chains) che configuri cambia comunque modello in caso di rifiuto, e i [controlli dei modelli all'avvio](/docs/it/amazon-bedrock#startup-model-checks) ripiegano comunque su un altro modello all'avvio. Richiede Claude Code v2.1.285 o successiva |

268| `CLAUDE_CODE_DISABLE_MOUSE` | Imposta su `1` per disattivare il tracciamento del mouse nel [rendering a schermo intero](/docs/it/fullscreen). Lo scorrimento da tastiera con `PgUp` e `PgDn` continua a funzionare. Usala per mantenere il comportamento nativo del terminale di copia alla selezione |268| `CLAUDE_CODE_DISABLE_MOUSE` | Imposta su `1` per disabilitare il tracciamento del mouse nel [rendering a schermo intero](/docs/it/fullscreen). Lo scorrimento da tastiera con `PgUp` e `PgDn` funziona ancora. Usala per mantenere il comportamento nativo di copia alla selezione del tuo terminale |

269| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | Imposta su `1` per disattivare la gestione di clic, trascinamento e passaggio del mouse nel [rendering a schermo intero](/docs/it/fullscreen) mantenendo lo scorrimento con la rotellina. Usala quando vuoi che lo scorrimento con la rotellina funzioni in Claude Code ma non vuoi che i clic posizionino il cursore, espandano l'output degli strumenti o aprano link. `CLAUDE_CODE_DISABLE_MOUSE` ha la precedenza quando sono impostate entrambe. Richiede Claude Code v2.1.195 o successiva |269| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | Imposta su `1` per disabilitare la gestione di clic, trascinamento e passaggio del mouse nel [rendering a schermo intero](/docs/it/fullscreen) mantenendo lo scorrimento con la rotellina del mouse. Usala quando vuoi che lo scorrimento con la rotellina funzioni in Claude Code ma non vuoi che i clic posizionino il cursore, espandano l'output degli strumenti o aprano i link. `CLAUDE_CODE_DISABLE_MOUSE` ha la precedenza quando sono impostate entrambe. Richiede Claude Code v2.1.195 o successiva |

270| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | Imposta su `1` per impedire a Claude Code di rileggere il [certificato client e la chiave mTLS](/docs/it/network-config#mtls-authentication) quando una richiesta API fallisce con un errore a livello di connessione, come un reset della connessione o un errore di handshake TLS. Con la ricarica disattivata, Claude Code carica i file ruotati solo alla successiva applicazione delle impostazioni o al successivo avvio. Richiede Claude Code v2.1.232 o successiva |270| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | Imposta su `1` per impedire a Claude Code di rileggere il [certificato e la chiave client mTLS](/docs/it/network-config#mtls-authentication) quando una richiesta API non riesce con un errore a livello di connessione, come un reset della connessione o un errore dell'handshake TLS. Con il ricaricamento disabilitato, Claude Code carica i file ruotati solo alla successiva applicazione delle impostazioni o al successivo avvio. Richiede Claude Code v2.1.232 o successiva |

271| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | Imposta su qualsiasi valore non vuoto, come `1`, per disattivare il traffico di rete non essenziale: aggiornamenti automatici, telemetria, segnalazione degli errori, il comando `/feedback`, il [feedback redatto da Claude](/docs/it/tools-reference#sendfeedback-tool-behavior), le note di rilascio, i controlli del [badge di stato di PR e MR](/docs/it/interactive-mode#pr-review-status) e i controlli di disponibilità come quello della [modalità veloce](/docs/it/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways). Interrompe anche le [esecuzioni in background delle origini `command` dei plugin](/docs/it/plugins/loading#when-a-command-source-re-runs), che sono comandi locali anziché traffico di rete, perché possono attivare installazioni di dipendenze. **Impostarla su `0` o `false` disattiva comunque questo traffico**, a differenza della maggior parte delle variabili di attivazione/disattivazione; rimuovi la variabile per consentirlo di nuovo. Disattiva anche il recupero dei feature flag, il che rende non disponibili [Remote Control](/docs/it/remote-control#requirements) e le altre [funzionalità che richiedono il recupero dei feature flag](#features-that-need-feature-flag-fetching). L'installazione automatica del marketplace ufficiale dei plugin non è inclusa; disattivala con `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`. Non influisce sul [rilevamento dei modelli del gateway](/docs/it/llm-gateway-connect#add-gateway-models-to-the-model-picker), che ha un proprio consenso esplicito |271| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | Imposta su qualsiasi valore non vuoto, come `1`, per disabilitare il traffico di rete non essenziale: aggiornamenti automatici, telemetria, segnalazione degli errori, il comando `/feedback`, il [feedback redatto da Claude](/docs/it/tools-reference#sendfeedback-tool-behavior), le note di rilascio, i controlli del [badge di stato di PR e MR](/docs/it/interactive-mode#pr-review-status) e i controlli di disponibilità come quello della [modalità veloce](/docs/it/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways). Interrompe anche le [esecuzioni in background delle origini `command` dei plugin](/docs/it/plugins/loading#when-a-command-source-re-runs), che sono comandi locali anziché traffico di rete, perché possono attivare installazioni di dipendenze. **Impostarla su `0` o `false` disabilita comunque questo traffico**, a differenza della maggior parte delle variabili di attivazione/disattivazione; rimuovi la variabile per consentirlo di nuovo. Disabilita anche il recupero dei feature flag, il che rende non disponibili [Remote Control](/docs/it/remote-control#requirements) e le altre [funzionalità che richiedono il recupero dei feature flag](#features-that-need-feature-flag-fetching). L'installazione automatica del marketplace ufficiale dei plugin non è inclusa; disabilitala con `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`. Non influisce sul [rilevamento dei modelli del gateway](/docs/it/llm-gateway-connect#add-gateway-models-to-the-model-picker), che ha una propria attivazione esplicita |

272| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | Imposta su `1` per disattivare il fallback non in streaming quando una richiesta in streaming fallisce a metà stream. Gli errori di streaming vengono invece propagati al livello dei nuovi tentativi. Utile quando un proxy o un gateway fa sì che il fallback produca un'esecuzione duplicata degli strumenti |272| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | Imposta su `1` per disabilitare il fallback non in streaming quando una richiesta in streaming non riesce a metà stream. Gli errori di streaming vengono invece propagati al livello dei nuovi tentativi. Utile quando un proxy o un gateway fa sì che il fallback produca un'esecuzione duplicata degli strumenti |

273| `CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK` | Imposta su `1` per inviare la notifica desktop dello strumento `PushNotification` anche mentre stai digitando nel terminale o il terminale ha il focus. Per impostazione predefinita lo strumento salta sia la notifica desktop sia la [notifica push mobile](/docs/it/remote-control#mobile-push-notifications) quando rileva attività recente della tastiera o il focus sul terminale. Questa variabile disattiva solo quel controllo locale, quindi il server può comunque sopprimere la notifica push mobile quando rileva che sei attivo. Richiede Claude Code v2.1.193 o successiva |273| `CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK` | Imposta su `1` per inviare la notifica desktop dello strumento `PushNotification` anche mentre stai digitando nel terminale o il terminale ha il focus. Per impostazione predefinita lo strumento salta sia la notifica desktop sia la [notifica push mobile](/docs/it/remote-control#mobile-push-notifications) quando rileva attività recente della tastiera o il focus sul terminale. Questa variabile disabilita solo quel controllo locale, quindi il server può comunque sopprimere la notifica push mobile quando rileva che sei attivo. Richiede Claude Code v2.1.193 o successiva |

274| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | Imposta su `1` per disattivare la registrazione automatica del marketplace ufficiale dei plugin. Claude Code legge la variabile quando sta per registrare il marketplace, di solito durante il primo avvio interattivo su una macchina. Se in quel momento la variabile è impostata, Claude Code salta la registrazione in modo permanente. Rimuovere la variabile in seguito non annulla il salto. Esegui `claude plugin marketplace add anthropics/claude-plugins-official` per registrare il marketplace in qualsiasi momento |274| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | Imposta su `1` per disabilitare la registrazione automatica del marketplace ufficiale dei plugin. Claude Code legge la variabile quando sta per registrare il marketplace, di solito durante il primo avvio interattivo su una macchina. Se la variabile è impostata in quel momento, Claude Code salta la registrazione in modo permanente. Rimuovere la variabile in seguito non annulla il salto. Esegui `claude plugin marketplace add anthropics/claude-plugins-official` per registrare il marketplace in qualsiasi momento |

275| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | Imposta su `1` per impedire a Claude Code di eseguire i tuoi [hook `Notification` per le richieste di permesso senza risposta](/docs/it/hooks#notification) nelle sessioni in cui Claude Code le invia alla callback `canUseTool` dell'Agent SDK, che è il modo in cui Claude Desktop e l'estensione VS Code ospitano Claude Code. Non ha effetto nelle sessioni del terminale. Richiede Claude Code v2.1.233 o successiva |275| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | Imposta su `1` per impedire a Claude Code di eseguire i tuoi [hook `Notification` per le richieste di permesso senza risposta](/docs/it/hooks#notification) nelle sessioni in cui Claude Code invia queste richieste alla callback `canUseTool` dell'Agent SDK, che è il modo in cui Claude Desktop e l'estensione VS Code ospitano Claude Code. Non ha effetto nelle sessioni del terminale. Richiede Claude Code v2.1.233 o successiva |

276| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | Imposta su `1` per saltare il caricamento delle skill dalla directory delle skill gestite a livello di sistema. Utile per sessioni in container o CI che non devono caricare skill fornite dall'operatore |276| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | Imposta su `1` per saltare il caricamento delle skill dalla directory delle skill gestite a livello di sistema. Utile per sessioni in container o CI che non devono caricare skill fornite dall'operatore |

277| `CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY` | Imposta su `1` per disattivare il controllo dello [strumento PowerShell](/docs/it/tools-reference#powershell-tool) che nega i comandi integrati di `cmd` `rd`, `rmdir`, `del` ed `erase` su un [percorso di sistema](/docs/it/permission-modes#remove-item-in-powershell), come la radice di un'unità o la tua directory home. Claude Code ignora questa variabile nel blocco `env` di un file di impostazioni. Richiede Claude Code v2.1.283 o successiva |277| `CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY` | Imposta su `1` per disattivare il controllo dello [strumento PowerShell](/docs/it/tools-reference#powershell-tool) che nega i comandi integrati di `cmd` `rd`, `rmdir`, `del` ed `erase` su un [percorso di sistema](/docs/it/permission-modes#remove-item-in-powershell), come la radice di un'unità o la tua directory home. Claude Code ignora questa variabile nel blocco `env` di un file di impostazioni. Richiede Claude Code v2.1.283 o successiva |

278| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | Imposta su `1` per disattivare il controllo dei [percorsi critici](/docs/it/permission-modes#critical-paths) per un `rm` ricorsivo il cui obiettivo è interamente l'output di una sostituzione di comando, come `rm -rf "$(pwd)"`. Gli altri controlli dei percorsi critici continuano a essere eseguiti. Impostala nell'ambiente che avvia Claude Code, poiché Claude Code ignora una copia fornita tramite un blocco `env` delle impostazioni. Richiede Claude Code v2.1.281 o successiva |278| `CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS` | Imposta su `1` per impedire a Claude Code di inviare il campo di output strutturato `output_config.format` e il valore `anthropic-beta` associato, per un [LLM gateway](/docs/it/llm-gateway-protocol#feature-pass-through) il cui upstream li rifiuta. Lascia attive le altre funzionalità di pre-rilascio che [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/it/llm-gateway-protocol#disable-pre-release-capabilities) disattiva. Richiede Claude Code v2.1.288 o successiva |

279| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Imposta su `1` per disattivare gli aggiornamenti automatici del titolo del terminale in base al contesto della conversazione. Questo salta anche la richiesta in background al modello piccolo/veloce che [genera un titolo per la sessione](/docs/it/sessions#name-your-sessions) |279| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | Imposta su `1` per disattivare il controllo dei [percorsi critici](/docs/it/permission-modes#critical-paths) per un `rm` ricorsivo il cui target è interamente l'output di una sostituzione di comando, come `rm -rf "$(pwd)"`. Gli altri controlli dei percorsi critici continuano a essere eseguiti. Impostala nell'ambiente che avvia Claude Code, poiché Claude Code ignora una copia fornita tramite un blocco `env` delle impostazioni. Richiede Claude Code v2.1.281 o successiva |

280| `CLAUDE_CODE_DISABLE_THINKING` | Imposta su `1` per omettere completamente il parametro `thinking` dalle richieste API. Si tratta di un'opzione di compatibilità per proxy e gateway che rifiutano il parametro. Sui modelli che ragionano per impostazione predefinita, omettere il parametro significa che il modello potrebbe comunque ragionare. Per disattivare esplicitamente il [ragionamento esteso](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) sull'API Anthropic, usa invece `MAX_THINKING_TOKENS=0`. Nessuna delle due variabili disattiva il ragionamento su Opus 5.5, Sonnet 5.5 o sui modelli Fable, per i quali il ragionamento non può essere disattivato. Sui [provider di terze parti](/docs/it/third-party-integrations), anche `MAX_THINKING_TOKENS=0` omette il parametro, quindi lì le due variabili si comportano allo stesso modo |280| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Imposta su `1` per disabilitare gli aggiornamenti automatici del titolo del terminale in base al contesto della conversazione. Questo salta anche la richiesta in background al modello piccolo/veloce che [genera il titolo della sessione](/docs/it/sessions#name-your-sessions) |

281| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | Imposta su `1` per saltare la [compattazione automatica](/docs/it/costs#reduce-token-usage) proattiva quando Claude Code non riconosce l'ID del modello, come un alias di un [gateway LLM](/docs/it/llm-gateway). Senza questa variabile, Claude Code compatta in base alla finestra di contesto che presume per l'ID. `CLAUDE_CODE_MAX_CONTEXT_TOKENS` può invece correggere la finestra presunta; consulta [Correggere la finestra per un gateway o un ID di modello personalizzato](/docs/it/model-config#correct-the-window-for-a-gateway-or-custom-model-id) per sapere quando si applica ciascuna variabile. Richiede Claude Code v2.1.223 o successiva |281| `CLAUDE_CODE_DISABLE_THINKING` | Imposta su `1` per omettere completamente il parametro `thinking` dalle richieste API. È un'opzione di compatibilità per proxy e gateway che rifiutano il parametro. Sui modelli che ragionano per impostazione predefinita, omettere il parametro significa che il modello potrebbe comunque ragionare. Per disabilitare esplicitamente il [ragionamento esteso](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) sull'API Anthropic, usa invece `MAX_THINKING_TOKENS=0`. Nessuna delle due variabili disattiva il ragionamento su Opus 5.5, Sonnet 5.5 o sui modelli Fable, per i quali il ragionamento non può essere disattivato. Sui [provider di terze parti](/docs/it/third-party-integrations), anche `MAX_THINKING_TOKENS=0` omette il parametro, quindi lì le due variabili si comportano allo stesso modo |

282| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | Imposta su `1` per disattivare lo scorrimento virtuale nel [rendering a schermo intero](/docs/it/fullscreen) e mostrare ogni messaggio della trascrizione. Usala se lo scorrimento in modalità a schermo intero mostra aree vuote dove dovrebbero comparire i messaggi |282| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | Imposta su `1` per saltare la [compattazione automatica](/docs/it/costs#reduce-token-usage) proattiva quando Claude Code non riconosce l'ID del modello, come un alias di un [LLM gateway](/docs/it/llm-gateway). Senza questa variabile, Claude Code compatta in base alla finestra di contesto che presume per l'ID. `CLAUDE_CODE_MAX_CONTEXT_TOKENS` può invece correggere la finestra presunta; consulta [Correggere la finestra per un gateway o un ID modello personalizzato](/docs/it/model-config#correct-the-window-for-a-gateway-or-custom-model-id) per sapere quando si applica ciascuna variabile. Richiede Claude Code v2.1.223 o successiva |

283| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | Imposta su `1` per disabilitare lo scorrimento virtuale nel [rendering a schermo intero](/docs/it/fullscreen) ed eseguire il rendering di ogni messaggio della trascrizione. Usala se lo scorrimento in modalità a schermo intero mostra aree vuote dove dovrebbero comparire i messaggi |

283| `CLAUDE_CODE_DISABLE_WEB_FETCH` | Imposta su `1` per disattivare lo strumento [WebFetch](/docs/it/tools-reference#webfetch-tool-behavior). Lo strumento [WebSearch](/docs/it/tools-reference#websearch-tool-behavior) resta disponibile. Richiede Claude Code v2.1.285 o successiva |284| `CLAUDE_CODE_DISABLE_WEB_FETCH` | Imposta su `1` per disattivare lo strumento [WebFetch](/docs/it/tools-reference#webfetch-tool-behavior). Lo strumento [WebSearch](/docs/it/tools-reference#websearch-tool-behavior) resta disponibile. Richiede Claude Code v2.1.285 o successiva |

284| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | Imposta su `1` per avviare i comandi dello [strumento PowerShell](/docs/it/tools-reference#powershell-tool) su Windows direttamente anziché tramite il launcher `cmd.exe`. Per impostazione predefinita, il launcher consente a un comando PowerShell [in esecuzione in background](/docs/it/tools-reference#background-commands) di [essere trasferito al processo successivo della sessione](/docs/it/agent-view#the-supervisor-process), ad esempio quando [metti in background la sessione](/docs/it/agent-view#from-inside-a-session). Se imposti la variabile, un comando PowerShell in background si arresta quando il processo della sessione termina. I comandi Bash non sono interessati. Richiede Claude Code v2.1.269 o successiva |285| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | Imposta su `1` per avviare i comandi dello [strumento PowerShell](/docs/it/tools-reference#powershell-tool) su Windows direttamente anziché tramite il launcher `cmd.exe`. Per impostazione predefinita, il launcher consente a un comando PowerShell [in esecuzione in background](/docs/it/tools-reference#background-commands) di [passare al processo successivo della sessione](/docs/it/agent-view#the-supervisor-process), ad esempio quando [sposti la sessione in background](/docs/it/agent-view#from-inside-a-session). Se imposti la variabile, un comando PowerShell in background si arresta quando il processo della sessione termina. I comandi Bash non sono interessati. Richiede Claude Code v2.1.269 o successiva |

285| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Imposta su `1` per disattivare i [workflow](/docs/it/workflows#turn-workflows-off). Equivalente all'impostazione [`disableWorkflows`](/docs/it/settings-reference#disableworkflows) |286| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Imposta su `1` per disabilitare i [workflow](/docs/it/workflows#turn-workflows-off). Equivalente all'impostazione [`disableWorkflows`](/docs/it/settings-reference#disableworkflows) |

286| `CLAUDE_CODE_EFFORT_LEVEL` | Imposta il livello di sforzo per i modelli supportati. Valori: `low`, `medium`, `high`, `xhigh`, `max` oppure `auto` per usare il valore predefinito del modello. I livelli disponibili dipendono dal modello. Ha la precedenza su `--effort`, `/effort` e sulle impostazioni `modelSettings` ed `effortLevel`. Un limite [`maxEffortLevel`](/docs/it/settings-reference#maxeffortlevel) si applica comunque. Consulta [Regolare il livello di sforzo](/docs/it/model-config#adjust-effort-level) |287| `CLAUDE_CODE_EFFORT_LEVEL` | Imposta il livello di sforzo per i modelli supportati. Valori: `low`, `medium`, `high`, `xhigh`, `max` oppure `auto` per usare il valore predefinito del modello. I livelli disponibili dipendono dal modello. Ha la precedenza su `--effort`, `/effort` e sulle impostazioni `modelSettings` ed `effortLevel`. Un limite [`maxEffortLevel`](/docs/it/settings-reference#maxeffortlevel) si applica comunque. Consulta [Regolare il livello di sforzo](/docs/it/model-config#adjust-effort-level) |

287| `CLAUDE_CODE_ENABLE_AUTO_MODE` | Accettata per compatibilità con le versioni precedenti e non ha alcun effetto. La modalità auto è disponibile per impostazione predefinita su ogni provider, inclusi Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry e le sessioni con accesso effettuato al [gateway delle app Claude](/docs/it/claude-apps-gateway). Dalla v2.1.158 alla v2.1.206, era necessario impostarla su `1` per rendere disponibile la [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode) su quei provider |288| `CLAUDE_CODE_ENABLE_AUTO_MODE` | Accettata per compatibilità con le versioni precedenti e non ha effetto. La modalità auto è disponibile per impostazione predefinita su ogni provider, inclusi Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry e le sessioni del [Claude apps gateway](/docs/it/claude-apps-gateway) con accesso effettuato. Dalla v2.1.158 alla v2.1.206, era necessario impostarla su `1` per rendere disponibile la [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode) su quei provider |

288| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | Sovrascrive la disponibilità del [riepilogo della sessione](/docs/it/interactive-mode#session-recap). Imposta su `0` per forzare la disattivazione dei riepiloghi indipendentemente dall'opzione in `/config`. Imposta su `1` per forzare l'attivazione dei riepiloghi quando [`awaySummaryEnabled`](/docs/it/settings-reference#awaysummaryenabled) è `false`. Ha la precedenza sull'impostazione e sull'opzione in `/config` |289| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | Sovrascrive la disponibilità del [riepilogo della sessione](/docs/it/interactive-mode#session-recap). Imposta su `0` per forzare la disattivazione dei riepiloghi indipendentemente dall'opzione di `/config`. Imposta su `1` per forzare l'attivazione dei riepiloghi quando [`awaySummaryEnabled`](/docs/it/settings-reference#awaysummaryenabled) è `false`. Ha la precedenza sull'impostazione e sull'opzione di `/config` |

289| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | Imposta su `1` per aggiornare lo stato dei plugin ai confini dei turni in [modalità non interattiva](/docs/it/headless) dopo il completamento di un'installazione in background. Disattivata per impostazione predefinita perché l'aggiornamento modifica il prompt di sistema a metà sessione, il che invalida il [prompt caching](/docs/it/prompt-caching) per quel turno |290| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | Imposta a `1` per aggiornare lo stato dei plugin ai confini dei turni in [modalità non interattiva](/docs/it/headless) dopo il completamento di un'installazione in background. Disattivata per impostazione predefinita perché l'aggiornamento modifica il prompt di sistema a metà sessione, invalidando il [prompt caching](/docs/it/prompt-caching) per quel turno |

290| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | Imposta a `1` per inviare il sondaggio sulla qualità della sessione "How is Claude doing?" al tuo [collector OpenTelemetry](/docs/it/monitoring-usage) quando il traffico non essenziale diretto ad Anthropic è bloccato. Le valutazioni del sondaggio vengono emesse solo come eventi OTEL verso il collector che hai configurato. In questa modalità nessun dato del sondaggio viene inviato ad Anthropic. Si applica quando è impostata `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY` o `DO_NOT_TRACK`, e non ha alcun effetto altrimenti. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` e la policy dell'organizzazione sul feedback del prodotto hanno la precedenza |291| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | Imposta a `1` per indirizzare il sondaggio sulla qualità della sessione "How is Claude doing?" al tuo [collector OpenTelemetry](/docs/it/monitoring-usage) quando il traffico non essenziale diretto ad Anthropic è bloccato. Le valutazioni del sondaggio vengono emesse solo come eventi OTEL verso il collector configurato. In questa modalità nessun dato del sondaggio viene inviato ad Anthropic. Si applica quando è impostata `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY` o `DO_NOT_TRACK`, e non ha effetto altrimenti. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` e la policy dell'organizzazione sul feedback del prodotto hanno la precedenza |

291| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | Controlla se gli input delle chiamate agli strumenti vengono trasmessi in streaming dall'API man mano che Claude li genera. Con questa opzione disattivata, un input di grandi dimensioni, come la scrittura di un file lungo, arriva solo dopo che Claude ha finito di generarlo, il che può sembrare un blocco. Abilitata per impostazione predefinita sull'API Anthropic. Su Amazon Bedrock e su Agent Platform di Google Cloud, è abilitata per modello dove il container distribuito lo supporta. Imposta a `0` per disattivarla. Imposta a `1` per forzarne l'attivazione quando instradi il traffico attraverso un proxy tramite `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL` o `ANTHROPIC_BEDROCK_BASE_URL`. Disattivata per impostazione predefinita su Microsoft Foundry e sulle connessioni tramite [gateway](/docs/it/llm-gateway) |292| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | Controlla se gli input delle chiamate agli strumenti vengono trasmessi in streaming dall'API mentre Claude li genera. Con questa opzione disattivata, un input di grandi dimensioni come la scrittura di un file lungo arriva solo dopo che Claude ha finito di generarlo, il che può dare l'impressione che sia bloccato. Abilitato per impostazione predefinita sull'API Anthropic. Su Amazon Bedrock e Agent Platform di Google Cloud, abilitato per modello dove il container distribuito lo supporta. Imposta a `0` per disattivarlo. Imposta a `1` per forzarne l'attivazione quando l'instradamento passa attraverso un proxy tramite `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL` o `ANTHROPIC_BEDROCK_BASE_URL`. Disattivato per impostazione predefinita su Microsoft Foundry e sulle connessioni tramite [gateway](/docs/it/llm-gateway) |

292| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Imposta a `1` per popolare il selettore `/model` dall'endpoint `/v1/models` del tuo gateway quando `ANTHROPIC_BASE_URL` punta a un gateway compatibile con Anthropic come LiteLLM, Kong o un proxy interno. Disattivata per impostazione predefinita perché altrimenti i gateway basati su una chiave API condivisa mostrerebbero a ogni utente tutti i modelli a cui la chiave può accedere. I modelli individuati vengono comunque filtrati da un'allowlist [`availableModels`](/docs/it/settings-reference#availablemodels) ricevuta dalla sessione; distribuisci l'elenco tramite [MDM o un file di impostazioni gestite](/docs/it/managed-settings#delivery-mechanisms), poiché [la distribuzione gestita dal server non è disponibile nelle configurazioni con gateway](/docs/it/server-managed-settings#platform-availability) |293| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Imposta a `1` per popolare il selettore `/model` dall'endpoint `/v1/models` del tuo gateway quando `ANTHROPIC_BASE_URL` punta a un gateway compatibile con Anthropic come LiteLLM, Kong o un proxy interno. Disattivato per impostazione predefinita perché i gateway basati su una chiave API condivisa mostrerebbero altrimenti a ogni utente tutti i modelli a cui la chiave può accedere. I modelli rilevati vengono comunque filtrati da un'allowlist [`availableModels`](/docs/it/settings-reference#availablemodels) ricevuta dalla sessione; distribuisci l'elenco tramite [MDM o un file di impostazioni gestite](/docs/it/managed-settings#delivery-mechanisms), poiché [la distribuzione gestita dal server non è disponibile nelle configurazioni con gateway](/docs/it/server-managed-settings#platform-availability) |

293| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | Rimossa nella v2.1.142, quando il modello predefinito della [modalità veloce](/docs/it/fast-mode) è passato da Opus 4.6 a Opus 4.7 |294| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | Rimossa nella v2.1.142, quando il valore predefinito della [modalità veloce](/docs/it/fast-mode) è passato da Opus 4.6 a Opus 4.7 |

294| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | Imposta a `false` per disattivare i suggerimenti di prompt, le previsioni in grigio che appaiono nell'input del prompt. Ha la precedenza sull'impostazione [`promptSuggestionEnabled`](/docs/it/settings-reference#promptsuggestionenabled), che è quella scritta dall'interruttore **Prompt suggestions** in `/config`. Claude Code inoltre [mette in pausa i suggerimenti quando il tuo account è vicino al limite di utilizzo o lo ha raggiunto](/docs/it/interactive-mode#when-claude-code-skips-suggestions). Imposta a `true` per mantenerli attivi finché non raggiungi il limite. Richiede Claude Code v2.1.238 o successiva. Consulta [Suggerimenti di prompt](/docs/it/interactive-mode#prompt-suggestions) |295| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | Imposta a `false` per disattivare i suggerimenti di prompt, le previsioni in grigio che compaiono nell'input del prompt. Ha la precedenza sull'impostazione [`promptSuggestionEnabled`](/docs/it/settings-reference#promptsuggestionenabled), che è quella scritta dall'interruttore **Prompt suggestions** in `/config`. Claude Code inoltre [sospende i suggerimenti quando il tuo account è vicino al proprio limite di utilizzo o lo ha raggiunto](/docs/it/interactive-mode#when-claude-code-skips-suggestions). Imposta a `true` per mantenerli attivi finché non raggiungi il limite. Richiede Claude Code v2.1.238 o successiva. Vedi [Suggerimenti di prompt](/docs/it/interactive-mode#prompt-suggestions) |

295| `CLAUDE_CODE_ENABLE_TASKS` | Seleziona quali strumenti di tracciamento delle attività Claude Code fornisce nelle [sessioni che li prevedono](/docs/it/tools-reference#task-tool-availability). Per impostazione predefinita, Claude Code fornisce gli strumenti Task `TaskCreate`, `TaskUpdate`, `TaskGet` e `TaskList`. Imposta a `0` per ottenere invece lo strumento legacy `TodoWrite`. Consulta [Elenco delle attività](/docs/it/interactive-mode#task-list) |296| `CLAUDE_CODE_ENABLE_TASKS` | Seleziona quali strumenti di monitoraggio delle attività fornisce Claude Code nelle [sessioni che li prevedono](/docs/it/tools-reference#task-tool-availability). Per impostazione predefinita, Claude Code fornisce gli strumenti Task `TaskCreate`, `TaskUpdate`, `TaskGet` e `TaskList`. Imposta a `0` per ottenere invece lo strumento legacy `TodoWrite`. Vedi [Elenco delle attività](/docs/it/interactive-mode#task-list) |

296| `CLAUDE_CODE_ENABLE_TELEMETRY` | Imposta a `1` per abilitare la raccolta dei dati OpenTelemetry per metriche e logging. Necessaria prima di configurare gli exporter OTel. Impostala nella tua shell, nelle impostazioni utente o nelle impostazioni gestite. Ignorata nelle [impostazioni di progetto e locali](/docs/it/settings-reference#variables-claude-code-ignores-in-env). Consulta [Monitoraggio](/docs/it/monitoring-usage) |297| `CLAUDE_CODE_ENABLE_TELEMETRY` | Imposta a `1` per abilitare la raccolta di dati OpenTelemetry per metriche e logging. Necessaria prima di configurare gli exporter OTel. Impostala nella tua shell, nelle impostazioni utente o nelle impostazioni gestite. Ignorata nelle [impostazioni di progetto e locali](/docs/it/settings-reference#variables-claude-code-ignores-in-env). Vedi [Monitoraggio](/docs/it/monitoring-usage) |

297| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | Imposta a `1` per ottenere gli strumenti di tracciamento delle attività su ogni modello. Senza di essa, Claude Code li fornisce per impostazione predefinita solo sui modelli elencati in [Disponibilità dello strumento Task](/docs/it/tools-reference#task-tool-availability). `CLAUDE_CODE_ENABLE_TASKS` continua a selezionare gli strumenti Task o `TodoWrite`. Richiede Claude Code v2.1.233 o successiva |298| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | Imposta a `1` per ottenere gli strumenti di monitoraggio delle attività su ogni modello. Senza di essa, Claude Code li fornisce per impostazione predefinita solo sui modelli elencati in [Disponibilità dello strumento Task](/docs/it/tools-reference#task-tool-availability). `CLAUDE_CODE_ENABLE_TASKS` seleziona comunque gli strumenti Task o `TodoWrite`. Richiede Claude Code v2.1.233 o successiva |

298| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | Tempo in millisecondi da attendere dopo che il ciclo delle query diventa inattivo prima di uscire automaticamente. Utile per workflow automatizzati e script che usano la modalità SDK |299| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | Tempo in millisecondi da attendere dopo che il ciclo di query diventa inattivo prima di uscire automaticamente. Utile per workflow automatizzati e script che usano la modalità SDK |

299| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Imposta a `1` per abilitare i [team di agenti](/docs/it/agent-teams). I team di agenti sono sperimentali e disabilitati per impostazione predefinita |300| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Imposta a `1` per abilitare i [team di agenti](/docs/it/agent-teams). I team di agenti sono sperimentali e disabilitati per impostazione predefinita |

300| `CLAUDE_CODE_EXTRA_BODY` | Oggetto JSON da unire al livello superiore del corpo di ogni richiesta API. Utile per passare parametri specifici del provider che Claude Code non espone direttamente. Un valore esportato nella tua shell si applica anche alle [sessioni in background](/docs/it/agent-view) che avvii con `claude agents` o `--bg`. Prima della v2.1.206, le sessioni in background ignoravano un valore esportato dalla shell e usavano la copia ereditata dal processo supervisore in background |301| `CLAUDE_CODE_EXTRA_BODY` | Oggetto JSON da incorporare nel livello superiore del corpo di ogni richiesta API. Utile per passare parametri specifici del provider che Claude Code non espone direttamente. Un valore esportato nella tua shell si applica anche alle [sessioni in background](/docs/it/agent-view) che avvii con `claude agents` o `--bg`. Prima della v2.1.206, le sessioni in background ignoravano un valore esportato dalla shell e usavano qualunque copia avesse ereditato il processo supervisore in background |

301| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Sovrascrive il limite di token predefinito per la lettura dei file. Utile quando devi leggere per intero file più grandi |302| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Sovrascrive il limite di token predefinito per le letture di file. Utile quando devi leggere file più grandi per intero |

302| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | Imposta a `1` per forzare la persistenza della trascrizione, la cronologia dei prompt e la registrazione in `claude agents` anche quando questo `claude` è stato avviato dall'interno di un'altra sessione di Claude Code. Usala quando un valore `CLAUDE_CODE_CHILD_SESSION` ereditato, ad esempio da una sessione `screen` o da un launcher in background avviato inizialmente dallo strumento Bash di Claude Code, fa sì che una vera sessione di primo livello venga erroneamente classificata come annidata. Dalla v2.1.178, Claude Code rileva automaticamente il caso di tmux e ignora il marcatore ereditato, quindi tmux non ha più bisogno di questa variabile. Rispettata anche nella v2.1.169 e precedenti; non ha effetto nelle v2.1.170 e v2.1.171, in cui il rilevamento delle sessioni annidate che sovrascrive era stato rimosso |303| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | Imposta a `1` per forzare la persistenza della trascrizione, la cronologia dei prompt e la registrazione in `claude agents` anche quando questo `claude` è stato avviato dall'interno di un'altra sessione di Claude Code. Usala quando un valore `CLAUDE_CODE_CHILD_SESSION` ereditato, ad esempio da una sessione `screen` o da un launcher in background avviato inizialmente dallo strumento Bash di Claude Code, fa sì che una vera sessione di primo livello venga classificata erroneamente come annidata. A partire dalla v2.1.178, Claude Code rileva automaticamente il caso tmux e ignora il marcatore ereditato, quindi tmux non ha più bisogno di questa variabile. Rispettata anche nella v2.1.169 e precedenti; non ha effetto nelle v2.1.170 e v2.1.171, in cui il rilevamento delle sessioni annidate che sovrascrive era stato rimosso |

303| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | Imposta a `1` per forzare la visualizzazione barrata di `~~text~~` nelle risposte di Claude quando il tuo terminale la supporta ma non viene rilevato automaticamente, ad esempio tramite SSH senza l'inoltro di `TERM_PROGRAM`. Senza di essa, i terminali non rilevati mostrano i marcatori `~~` letterali invece di visualizzare il testo barrato. Richiede Claude Code v2.1.186 o successiva |304| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | Imposta a `1` per forzare il rendering barrato di `~~text~~` nelle risposte di Claude quando il tuo terminale lo supporta ma non viene rilevato automaticamente, ad esempio tramite SSH senza inoltro di `TERM_PROGRAM`. Senza questa variabile, i terminali non rilevati mostrano i marcatori `~~` letterali invece di visualizzare il testo barrato. Richiede Claude Code v2.1.186 o successiva |

304| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Imposta a `1` per forzare l'abilitazione dell'[output sincronizzato](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) della modalità privata DEC 2026 quando il tuo terminale lo supporta ma non viene rilevato automaticamente. Utile per emulatori come `eat` di Emacs che implementano BSU/ESU ma non rispondono al rilevamento delle funzionalità. Non ha effetto sotto tmux. A differenza di `CLAUDE_CODE_NO_FLICKER`, che passa al [rendering a schermo intero](/docs/it/fullscreen), questa non cambia il renderer |305| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Imposta a `1` per forzare l'abilitazione dell'[output sincronizzato](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) in modalità privata DEC 2026 quando il tuo terminale lo supporta ma non viene rilevato automaticamente. Utile per emulatori come `eat` di Emacs che implementano BSU/ESU ma non rispondono alla verifica delle capacità. Non ha effetto in tmux. A differenza di `CLAUDE_CODE_NO_FLICKER`, che passa al [rendering a schermo intero](/docs/it/fullscreen), questa variabile non cambia il renderer |

305| `CLAUDE_CODE_FORK_SUBAGENT` | Controlla la [modalità fork](/docs/it/sub-agents#turn-fork-mode-on-or-off), che consente a Claude di generare autonomamente [subagent fork](/docs/it/sub-agents#fork-the-current-conversation) ed è attiva per impostazione predefinita solo nelle sessioni interattive. Imposta a `1` per attivarla anche in `claude -p` e nell'Agent SDK, oppure a `0` per disattivarla in ogni tipo di sessione. Puoi eseguire `/subtask` indipendentemente dal fatto che la modalità fork sia attiva. Il comportamento predefinito interattivo richiede Claude Code v2.1.232 o successiva; nelle versioni precedenti, imposta la variabile a `1` per attivare la modalità fork |306| `CLAUDE_CODE_FORK_SUBAGENT` | Controlla la [modalità fork](/docs/it/sub-agents#turn-fork-mode-on-or-off), che consente a Claude di generare autonomamente [subagent forkati](/docs/it/sub-agents#fork-the-current-conversation) ed è attiva per impostazione predefinita solo nelle sessioni interattive. Imposta a `1` per attivarla anche in `claude -p` e nell'Agent SDK, oppure a `0` per disattivarla in ogni tipo di sessione. Puoi eseguire `/subtask` indipendentemente dal fatto che la modalità fork sia attiva. Il valore predefinito interattivo richiede Claude Code v2.1.232 o successiva; nelle versioni precedenti, imposta la variabile a `1` per attivare la modalità fork |

306| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | Imposta a `1` per emettere il testo e i blocchi di ragionamento dei [subagent](/docs/it/sub-agents) nell'output di `claude -p --output-format stream-json`, con lo stesso comportamento del flag [`--forward-subagent-text`](/docs/it/cli-reference#cli-flags). Usa la variabile quando un harness invoca `claude` e non può passare il flag da sé. A differenza del flag, che termina con un errore al di fuori della modalità non interattiva con output stream-json, in quel caso la variabile viene ignorata, così le invocazioni annidate continuano a funzionare quando è impostata per l'intero processo. Richiede Claude Code v2.1.211 o successiva |307| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | Imposta a `1` per emettere il testo e i blocchi di ragionamento dei [subagent](/docs/it/sub-agents) nell'output di `claude -p --output-format stream-json`, lo stesso comportamento del flag [`--forward-subagent-text`](/docs/it/cli-reference#cli-flags). Usa la variabile quando un harness invoca `claude` e non può passare il flag direttamente. A differenza del flag, che termina con un errore al di fuori della modalità non interattiva con output stream-json, la variabile viene ignorata in quei casi, così le invocazioni annidate continuano a funzionare quando è impostata a livello di processo. Richiede Claude Code v2.1.211 o successiva |

307| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | Imposta a `1` per inviare gli [header di suggerimento per il gateway](/docs/it/llm-gateway-protocol#gateway-hint-headers), come `x-claude-code-request-class` e `x-claude-code-compaction`, su un proxy personalizzato o su un provider di terze parti come Amazon Bedrock o Claude Platform on AWS. Imposta a `0` per smettere di inviarli su ogni connessione, inclusa una connessione diretta all'API Anthropic, dove Claude Code li invia per impostazione predefinita. Richiede Claude Code v2.1.273 o successiva |308| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | Imposta a `1` per inviare gli [header di suggerimento per il gateway](/docs/it/llm-gateway-protocol#gateway-hint-headers), come `x-claude-code-request-class` e `x-claude-code-compaction`, su un proxy personalizzato o su un provider di terze parti come Amazon Bedrock o Claude Platform on AWS. Imposta a `0` per smettere di inviarli su ogni connessione, inclusa una connessione diretta all'API Anthropic, dove Claude Code li invia per impostazione predefinita. Richiede Claude Code v2.1.273 o successiva |

308| `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` | Timeout in millisecondi per la richiesta di [individuazione dei modelli del gateway](/docs/it/llm-gateway-protocol#model-discovery) attivata da `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` (predefinito: `3000`). Aumentalo quando il tuo gateway impiega più di tre secondi per rispondere a `/v1/models` all'avvio. Accetta solo cifre semplici; `0`, i valori negativi e altre scritture mantengono il valore predefinito. Richiede Claude Code v2.1.269 o successiva |309| `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` | Timeout in millisecondi per la richiesta di [rilevamento dei modelli del gateway](/docs/it/llm-gateway-protocol#model-discovery) che `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` attiva (predefinito: `3000`). Aumentalo quando il tuo gateway impiega più di tre secondi per rispondere a `/v1/models` all'avvio. Accetta solo cifre semplici; `0`, valori negativi e altre scritture mantengono il valore predefinito. Richiede Claude Code v2.1.269 o successiva |

309| `CLAUDE_CODE_GIT_BASH_PATH` | Solo Windows: percorso dell'eseguibile di Git Bash (`bash.exe`). Usala quando Git Bash è installato ma non si trova nel tuo PATH. Se il percorso non esiste o il file non si chiama `bash.exe`, `sh.exe`, `bash` o `sh`, Claude Code ignora la variabile e rileva automaticamente Git Bash come se non fosse impostata, registrando un avviso visibile con `--debug`. Prima della v2.1.219, Claude Code terminava all'avvio quando il percorso non esisteva e usava qualsiasi file esistente come shell senza verificare che fosse bash o sh. Consulta [Configurazione su Windows](/docs/it/setup#set-up-on-windows) |310| `CLAUDE_CODE_GIT_BASH_PATH` | Solo Windows: percorso dell'eseguibile Git Bash (`bash.exe`). Usala quando Git Bash è installato ma non si trova nel tuo PATH. Se il percorso non esiste o il file non si chiama `bash.exe`, `sh.exe`, `bash` o `sh`, Claude Code ignora la variabile e rileva automaticamente Git Bash come se non fosse impostata, registrando un avviso visibile con `--debug`. Prima della v2.1.219, Claude Code terminava all'avvio quando il percorso non esisteva e usava qualsiasi file esistente come shell senza verificare che fosse bash o sh. Vedi [Configurazione su Windows](/docs/it/setup#set-up-on-windows) |

310| `CLAUDE_CODE_GLOB_HIDDEN` | Imposta a `false` per escludere i dotfile dai risultati quando Claude invoca lo [strumento Glob](/docs/it/tools-reference#glob-tool-behavior). Inclusi per impostazione predefinita. Non influisce sul completamento automatico dei file con `@`, su `ls`, Grep o Read |311| `CLAUDE_CODE_GLOB_HIDDEN` | Imposta a `false` per escludere i dotfile dai risultati quando Claude invoca lo [strumento Glob](/docs/it/tools-reference#glob-tool-behavior). Inclusi per impostazione predefinita. Non influisce sul completamento automatico dei file con `@`, su `ls`, Grep o Read |

311| `CLAUDE_CODE_GLOB_NO_IGNORE` | Imposta a `false` per fare in modo che lo [strumento Glob](/docs/it/tools-reference#glob-tool-behavior) rispetti i pattern di `.gitignore`. Per impostazione predefinita, Glob restituisce tutti i file corrispondenti, inclusi quelli ignorati da Git. Non influisce sul completamento automatico dei file con `@`, che ha una propria [impostazione `respectGitignore`](/docs/it/settings-reference#respectgitignore) |312| `CLAUDE_CODE_GLOB_NO_IGNORE` | Imposta a `false` per fare in modo che lo [strumento Glob](/docs/it/tools-reference#glob-tool-behavior) rispetti i pattern di `.gitignore`. Per impostazione predefinita, Glob restituisce tutti i file corrispondenti, inclusi quelli ignorati da git. Non influisce sul completamento automatico dei file con `@`, che ha la propria [impostazione `respectGitignore`](/docs/it/settings-reference#respectgitignore) |

312| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Timeout in secondi per l'individuazione dei file da parte dello strumento Glob. Il valore predefinito è 20 secondi sulla maggior parte delle piattaforme e 60 secondi su WSL |313| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Timeout in secondi per il rilevamento dei file dello strumento Glob. Predefinito: 20 secondi sulla maggior parte delle piattaforme e 60 secondi su WSL |

313| `CLAUDE_CODE_GOAL_CHECKIN_MINUTES` | Per quanti minuti il lavoro in background può tenere in attesa un obiettivo attivo prima che Claude Code [chieda a Claude di verificarlo](/docs/it/goal#background-work-defers-evaluation). Predefinito `30`. Imposta `0` per disattivare le verifiche. Specifica minuti interi in cifre semplici, al massimo `10080`, cioè una settimana. Claude Code tratta qualsiasi altro valore come non impostato e usa il valore predefinito. Richiede Claude Code v2.1.234 o successiva |314| `CLAUDE_CODE_GOAL_CHECKIN_MINUTES` | Quanti minuti il lavoro in background può tenere in attesa un obiettivo attivo prima che Claude Code [chieda a Claude di verificarlo](/docs/it/goal#background-work-defers-evaluation). Predefinito `30`. Imposta `0` per disattivare le verifiche. Indica minuti interi in cifre semplici, al massimo `10080`, ovvero una settimana. Claude Code tratta qualsiasi altro valore come non impostato e usa quello predefinito. Richiede Claude Code v2.1.234 o successiva |

314| `CLAUDE_CODE_HIDE_CWD` | Imposta a `1` per nascondere la directory di lavoro nel logo di avvio. Utile per condivisioni dello schermo o registrazioni in cui il percorso rivela il nome utente del tuo sistema operativo |315| `CLAUDE_CODE_HIDE_CWD` | Imposta a `1` per nascondere la directory di lavoro nel logo di avvio. Utile per condivisioni dello schermo o registrazioni in cui il percorso espone il nome utente del tuo sistema operativo |

315| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | Sovrascrive l'indirizzo host usato per connettersi all'estensione dell'IDE. Per impostazione predefinita Claude Code rileva automaticamente l'indirizzo corretto, incluso l'instradamento da WSL a Windows |316| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | Sovrascrive l'indirizzo host usato per connettersi all'estensione IDE. Per impostazione predefinita Claude Code rileva automaticamente l'indirizzo corretto, incluso l'instradamento da WSL a Windows |

316| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Imposta a `1` per saltare l'installazione automatica delle estensioni dell'IDE. Equivale a impostare [`autoInstallIdeExtension`](/docs/it/settings-reference#autoinstallideextension) a `false` |317| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Imposta a `1` per saltare l'installazione automatica delle estensioni IDE. Equivale a impostare [`autoInstallIdeExtension`](/docs/it/settings-reference#autoinstallideextension) su `false` |

317| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Imposta a `1` per saltare la convalida delle voci del lockfile dell'IDE durante la connessione. Usala quando la connessione automatica non riesce a trovare il tuo IDE nonostante sia in esecuzione |318| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Imposta a `1` per saltare la convalida delle voci del lockfile IDE durante la connessione. Usala quando la connessione automatica non riesce a trovare il tuo IDE nonostante sia in esecuzione |

318| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Quanti [subagent](/docs/it/sub-agents#concurrent-subagent-limit) possono essere in esecuzione in una sessione prima che lo strumento Agent si rifiuti di generarne un altro (predefinito: 20). Accetta un numero intero positivo in cifre semplici; qualsiasi altro valore viene ignorato, quindi la variabile può modificare il limite ma non disabilitarlo. Richiede Claude Code v2.1.217 o successiva |319| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Quanti [subagent](/docs/it/sub-agents#concurrent-subagent-limit) possono essere in esecuzione in una sessione prima che lo strumento Agent si rifiuti di generarne un altro (predefinito: 20). Accetta un numero intero positivo in cifre semplici; qualsiasi altro valore viene ignorato, quindi la variabile può modificare il limite ma non disabilitarlo. Richiede Claude Code v2.1.217 o successiva |

319| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Sovrascrive la dimensione della finestra di contesto che Claude Code presume per il modello attivo. Dalla v2.1.193, il modo in cui si applica dipende da come Claude Code risolve l'ID del modello; consulta [Correggere la finestra per un gateway o un ID di modello personalizzato](/docs/it/model-config#correct-the-window-for-a-gateway-or-custom-model-id). Usala quando instradi verso un modello tramite `ANTHROPIC_BASE_URL` la cui finestra di contesto non corrisponde alla dimensione integrata associata al suo nome |320| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Sovrascrive la dimensione della finestra di contesto che Claude Code presume per il modello attivo. A partire dalla v2.1.193, il modo in cui si applica dipende da come Claude Code risolve l'ID del modello; vedi [Correggere la finestra per un gateway o un ID modello personalizzato](/docs/it/model-config#correct-the-window-for-a-gateway-or-custom-model-id). Usala quando instradi verso un modello tramite `ANTHROPIC_BASE_URL` la cui finestra di contesto non corrisponde alla dimensione integrata per il suo nome |

320| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Lunghezza massima in caratteri di ciascuna descrizione degli strumenti MCP e delle istruzioni di ciascun server MCP che Claude Code invia al modello (predefinito: 2048). Claude Code [tronca il testo più lungo](/docs/it/mcp#for-mcp-server-authors). Accetta un numero intero positivo in cifre semplici. Qualsiasi altro valore viene ignorato e si applica il valore predefinito. Richiede Claude Code v2.1.280 o successiva |321| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Lunghezza massima in caratteri di ogni descrizione di strumento MCP e delle istruzioni di ogni server MCP che Claude Code invia al modello (predefinito: 2048). Claude Code [tronca il testo più lungo](/docs/it/mcp#for-mcp-server-authors). Accetta un numero intero positivo in cifre semplici. Qualsiasi altro valore viene ignorato e si applica il valore predefinito. Richiede Claude Code v2.1.280 o successiva |

321| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Imposta il numero massimo di token di output per la maggior parte delle richieste. I valori predefiniti e i limiti variano in base al modello; consulta [max output tokens](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Claude Code riduce al limite un valore superiore al limite del modello. Per un ID di modello che Claude Code non riesce a ricondurre a un modello noto, il valore predefinito è 32000 e il limite è 128000. Aumentare questo valore riduce la finestra di contesto effettiva disponibile prima che si attivi la [compattazione automatica](/docs/it/costs#reduce-token-usage) |322| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Imposta il numero massimo di token di output per la maggior parte delle richieste. Valori predefiniti e limiti variano in base al modello; vedi [token di output massimi](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Claude Code riduce al limite un valore che supera il limite di un modello. Per un ID modello che Claude Code non riesce a ricondurre a un modello noto, il valore predefinito è 32000 e il limite è 128000. Aumentare questo valore riduce la finestra di contesto effettiva disponibile prima che si attivi la [compattazione automatica](/docs/it/costs#reduce-token-usage) |

322| `CLAUDE_CODE_MAX_RETRIES` | Sovrascrive il numero di volte in cui riprovare le richieste API non riuscite (predefinito: 10). Limitato a 15 dalla v2.1.186; dalla v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` aumenta il valore predefinito e rimuove il limite. Per le sessioni non presidiate che devono attendere interruzioni più lunghe, imposta invece `CLAUDE_CODE_RETRY_WATCHDOG` |323| `CLAUDE_CODE_MAX_RETRIES` | Sovrascrive il numero di nuovi tentativi per le richieste API non riuscite (predefinito: 10). Limitato a 15 a partire dalla v2.1.186; a partire dalla v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` aumenta il valore predefinito e rimuove il limite. Per le sessioni non presidiate che devono attendere durante interruzioni più lunghe, imposta invece `CLAUDE_CODE_RETRY_WATCHDOG` |

323| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Rimossa nella v2.1.224 e ora non ha alcun effetto. In precedenza limitava il numero totale di [subagent](/docs/it/sub-agents) che Claude poteva generare con lo strumento Agent in una sessione (predefinito: 200); la generazione oltre il limite falliva con `Subagent spawn limit reached`. Il [limite di subagent simultanei](/docs/it/sub-agents#concurrent-subagent-limit) e il [limite di profondità](/docs/it/sub-agents#let-subagents-spawn-their-own-subagents) si applicano ancora |324| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Rimossa nella v2.1.224 e ora senza effetto. In precedenza limitava il numero totale di [subagent](/docs/it/sub-agents) che Claude poteva generare con lo strumento Agent in una sessione (predefinito: 200); generarne oltre il limite falliva con `Subagent spawn limit reached`. Il [limite di subagent simultanei](/docs/it/sub-agents#concurrent-subagent-limit) e il [limite di profondità](/docs/it/sub-agents#let-subagents-spawn-their-own-subagents) si applicano ancora |

324| `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | Numero di [livelli di subagent](/docs/it/sub-agents#let-subagents-spawn-their-own-subagents) consentiti sotto la conversazione principale (predefinito: 3). Con il valore predefinito, i subagent possono generare i propri subagent e un subagent al terzo livello non può generarne altri; imposta `1` per disattivare l'annidamento. Dalla v2.1.217 alla v2.1.218, il valore predefinito era 1, quindi un subagent non poteva generarne di propri a meno che tu non aumentassi il limite; la v2.1.219 ha portato il valore predefinito a 3. Accetta un numero intero positivo in cifre semplici; qualsiasi altro valore viene ignorato, quindi il limite può essere modificato ma non rimosso. Richiede Claude Code v2.1.217 o successiva |325| `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | Numero di [livelli di subagent](/docs/it/sub-agents#let-subagents-spawn-their-own-subagents) consentiti sotto la conversazione principale (predefinito: 3). Con il valore predefinito, i subagent possono generare i propri subagent e un subagent al terzo livello non può generarne altri; imposta `1` per disattivare l'annidamento. Dalla v2.1.217 alla v2.1.218, il valore predefinito era 1, quindi un subagent non poteva generarne di propri a meno che non aumentassi il limite; la v2.1.219 ha portato il valore predefinito a 3. Accetta un numero intero positivo in cifre semplici; qualsiasi altro valore viene ignorato, quindi il limite può essere modificato ma non rimosso. Richiede Claude Code v2.1.217 o successiva |

325| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | Numero massimo di strumenti di sola lettura e subagent che possono essere eseguiti in parallelo (predefinito: 10). Valori più alti aumentano il parallelismo ma consumano più risorse |326| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | Numero massimo di strumenti di sola lettura e subagent che possono essere eseguiti in parallelo (predefinito: 10). Valori più alti aumentano il parallelismo ma consumano più risorse |

326| `CLAUDE_CODE_MAX_TURNS` | Limita il numero di turni agentici quando non viene passato un limite esplicito. Equivale a passare [`--max-turns`](/docs/it/cli-reference#cli-flags), che ha la precedenza quando sono impostati entrambi. Un valore che non è un intero positivo viene rifiutato all'avvio con un errore invece di essere trattato come assenza di limite |327| `CLAUDE_CODE_MAX_TURNS` | Limita il numero di turni agentici quando non viene passato un limite esplicito. Equivale a passare [`--max-turns`](/docs/it/cli-reference#cli-flags), che ha la precedenza quando sono impostati entrambi. Un valore che non è un intero positivo viene rifiutato all'avvio con un errore invece di essere trattato come assenza di limite |

327| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | Limite al numero totale di chiamate a [WebSearch](/docs/it/tools-reference#websearch-tool-behavior) che una sessione può effettuare (predefinito: 200). Quando Claude raggiunge il limite, le ulteriori chiamate a WebSearch restituiscono un avviso che gli dice di proseguire con le informazioni già raccolte. Accetta un numero intero positivo senza limite superiore. Qualsiasi altro valore viene ignorato e si applica il valore predefinito, quindi il limite può essere aumentato ma non disattivato. Richiede Claude Code v2.1.212 o successiva |328| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | Limite al numero totale di chiamate [WebSearch](/docs/it/tools-reference#websearch-tool-behavior) che una sessione può effettuare (predefinito: 200). Quando Claude raggiunge il limite, ulteriori chiamate WebSearch restituiscono un avviso che gli indica di proseguire con le informazioni già raccolte. Accetta un numero intero positivo senza limite superiore. Qualsiasi altro valore viene ignorato e si applica il valore predefinito, quindi il limite può essere aumentato ma non disattivato. Richiede Claude Code v2.1.212 o successiva |

328| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Imposta a `1` per avviare i server MCP stdio solo con un ambiente di base sicuro più l'`env` configurato per il server, invece di ereditare l'ambiente della tua shell |329| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Imposta a `1` per avviare i server MCP stdio solo con un ambiente di base sicuro più l'`env` configurato per il server, invece di ereditare l'ambiente della tua shell |

329| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | Tempo trascorso in millisecondi prima che una chiamata a uno strumento MCP ancora in esecuzione [passi a un'attività in background](/docs/it/mcp#automatic-backgrounding-of-long-tool-calls) (predefinito: 120000, ovvero 2 minuti). Imposta a `0` per disattivare il passaggio automatico in background. Richiede Claude Code v2.1.212 o successiva |330| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | Tempo trascorso in millisecondi prima che una chiamata a uno strumento MCP ancora in esecuzione [passi a un'attività in background](/docs/it/mcp#automatic-backgrounding-of-long-tool-calls) (predefinito: 120000, ovvero 2 minuti). Imposta a `0` per disattivare il passaggio automatico in background. Richiede Claude Code v2.1.212 o successiva |

330| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | Per quanti millisecondi il primo turno di una sessione [non interattiva](/docs/it/headless) attende i server MCP ancora in fase di connessione, al posto dell'[attesa predefinita del primo turno](/docs/it/agent-sdk/mcp#connection-timing). Quando è impostata, l'attesa copre tutti i server in sospeso. Imposta a `0` per saltare l'attesa. Un server [`--permission-prompt-tool`](/docs/it/cli-reference#cli-flags) mantiene la propria attesa `MCP_TIMEOUT` indipendentemente dal valore. Richiede Claude Code v2.1.274 o successiva |331| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | Per quanto tempo in millisecondi il primo turno di una sessione [non interattiva](/docs/it/headless) attende i server MCP che si stanno ancora connettendo, al posto dell'[attesa del primo turno](/docs/it/agent-sdk/mcp#connection-timing) predefinita. Quando è impostata, l'attesa copre tutti i server in sospeso. Imposta a `0` per saltare l'attesa. Un server [`--permission-prompt-tool`](/docs/it/cli-reference#cli-flags) mantiene la propria attesa `MCP_TIMEOUT` indipendentemente dal valore. Richiede Claude Code v2.1.274 o successiva |

331| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | Timeout di inattività in millisecondi per le chiamate agli strumenti MCP. Quando un server MCP stdio, HTTP, SSE, WebSocket o un [connettore claude.ai](/docs/it/mcp#use-mcp-servers-from-claude-ai) non invia alcuna risposta né alcuna notifica di avanzamento per questo intervallo, la chiamata allo strumento si interrompe con un errore invece di attendere il `MCP_TOOL_TIMEOUT` complessivo. Sovrascrive i valori predefiniti per trasporto di 300000 (5 minuti) per i server di rete e 1800000 (30 minuti) per i server stdio. Imposta a `0` per disabilitare il controllo di inattività. I valori inferiori a 1000 vengono portati a un secondo e il valore è limitato al `MCP_TOOL_TIMEOUT` effettivo. Un `timeout` per server in `.mcp.json` di almeno 1000 porta la finestra di inattività di quel server almeno al valore di `timeout`. Non si applica ai server dell'IDE né ai server in-process dell'SDK. Richiede Claude Code v2.1.187 o successiva. Prima della v2.1.203, i server stdio erano esenti dal timeout di inattività |332| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | Timeout di inattività in millisecondi per le chiamate agli strumenti MCP. Quando un server MCP stdio, HTTP, SSE, WebSocket o [connettore claude.ai](/docs/it/mcp#use-mcp-servers-from-claude-ai) non invia alcuna risposta né notifica di avanzamento per questo intervallo, la chiamata allo strumento si interrompe con un errore invece di attendere il `MCP_TOOL_TIMEOUT` complessivo. Sovrascrive i valori predefiniti per trasporto di 300000 (5 minuti) per i server di rete e 1800000 (30 minuti) per i server stdio. Imposta a `0` per disabilitare il controllo di inattività. I valori inferiori a 1000 vengono portati a un secondo e il valore è limitato al `MCP_TOOL_TIMEOUT` effettivo. Un `timeout` per server in `.mcp.json` di almeno 1000 aumenta la finestra di inattività di quel server ad almeno il valore di `timeout`. Non si applica ai server IDE né ai server SDK in-process. Richiede Claude Code v2.1.187 o successiva. Prima della v2.1.203, i server stdio erano esclusi dal timeout di inattività |

332| `CLAUDE_CODE_MESSAGING_SOCKET` | Impostata da Claude Code, non da te: nelle sessioni che associano un [socket della casella di posta](/docs/it/cross-session-messaging#the-sessions-inbox-socket), Claude Code esporta il percorso di quel socket verso gli hook e i comandi Bash quando associa il socket. In una sessione che si avvia con la messaggistica attiva, Claude Code associa il socket prima dell'esecuzione di qualsiasi hook. Le altre sessioni sulla macchina recapitano i messaggi a questo percorso. Ogni sessione esporta il proprio socket anziché uno ereditato da una sessione padre, e i messaggi che vi arrivano passano attraverso i [controlli in ingresso](/docs/it/cross-session-messaging#control-inbound-messages) della sessione. I blocchi `env` delle impostazioni non possono impostarla. Richiede Claude Code v2.1.224 o successiva |333| `CLAUDE_CODE_MESSAGING_SOCKET` | Impostata da Claude Code, non da te: nelle sessioni che associano un [socket inbox](/docs/it/cross-session-messaging#the-sessions-inbox-socket), Claude Code esporta il percorso di quel socket verso hook e comandi Bash quando associa il socket. In una sessione che si avvia con la messaggistica attiva, Claude Code associa il socket prima che venga eseguito qualsiasi hook. Le altre sessioni sulla macchina recapitano i messaggi a questo percorso. Ogni sessione esporta il proprio socket invece di uno ereditato da un processo padre, e i messaggi in arrivo su di esso passano attraverso i [controlli in ingresso](/docs/it/cross-session-messaging#control-inbound-messages) della sessione. I blocchi `env` delle impostazioni non possono impostarla. Richiede Claude Code v2.1.224 o successiva |

333| `CLAUDE_CODE_MESSAGING_TOKEN` | Impostata da Claude Code, non da te: nelle sessioni che associano un [socket della casella di posta](/docs/it/cross-session-messaging#the-sessions-inbox-socket), Claude Code esporta questo token per sessione verso gli hook e i comandi Bash insieme a `CLAUDE_CODE_MESSAGING_SOCKET`. Uno script che scrive sul socket può inviare `{"type":"auth","token":"<token>"}` come prima riga per dimostrare di appartenere alla sessione. Su Windows nativo, Claude Code richiede questa riga e chiude qualsiasi connessione che non si apra con una riga valida. Le [regole sui processi figli propri](/docs/it/cross-session-messaging#the-sessions-inbox-socket) indicano quando Claude Code consulta il token. Ogni sessione esporta il proprio token, mai uno ereditato da una sessione padre. I blocchi `env` delle impostazioni non possono impostarla. Richiede Claude Code v2.1.228 o successiva |334| `CLAUDE_CODE_MESSAGING_TOKEN` | Impostata da Claude Code, non da te: nelle sessioni che associano un [socket inbox](/docs/it/cross-session-messaging#the-sessions-inbox-socket), Claude Code esporta questo token per sessione verso hook e comandi Bash insieme a `CLAUDE_CODE_MESSAGING_SOCKET`. Uno script che scrive sul socket può inviare `{"type":"auth","token":"<token>"}` come prima riga per dimostrare di appartenere alla sessione. Su Windows nativo, Claude Code richiede questa riga e chiude qualsiasi connessione che non si apra con una riga valida. Le [regole sui processi figli propri](/docs/it/cross-session-messaging#the-sessions-inbox-socket) indicano quando Claude Code consulta il token. Ogni sessione esporta il proprio token, mai uno ereditato da una sessione padre. I blocchi `env` delle impostazioni non possono impostarla. Richiede Claude Code v2.1.228 o successiva |

334| `CLAUDE_CODE_NATIVE_CURSOR` | Imposta a `1` per mostrare il cursore proprio del terminale nel punto di inserimento invece di un blocco disegnato. Il cursore rispetta le impostazioni di lampeggiamento, forma e focus del terminale |335| `CLAUDE_CODE_NATIVE_CURSOR` | Imposta a `1` per mostrare il cursore del terminale in corrispondenza del punto di inserimento invece di un blocco disegnato. Il cursore rispetta le impostazioni di lampeggio, forma e focus del terminale |

335| `CLAUDE_CODE_NEW_INIT` | Imposta a `1` per fare in modo che `/init` esegua un flusso di configurazione interattivo. Il flusso chiede quali file generare, inclusi CLAUDE.md, skill e hook, prima di esplorare il codebase e scriverli. Senza questa variabile, `/init` genera automaticamente un CLAUDE.md senza chiedere nulla |336| `CLAUDE_CODE_NEW_INIT` | Imposta a `1` per fare in modo che `/init` esegua un flusso di configurazione interattivo. Il flusso chiede quali file generare, tra cui CLAUDE.md, skill e hook, prima di esplorare il codebase e scriverli. Senza questa variabile, `/init` genera automaticamente un CLAUDE.md senza chiedere nulla |

336| `CLAUDE_CODE_NONBLOCKING_STDOUT` | Imposta a `1` per scrivere l'output del terminale attraverso un secondo file descriptor non bloccante, in modo che un terminale che smette di leggere, come un pannello tmux in control mode messo in pausa o una connessione SSH bloccata, non possa bloccare Claude Code a metà sessione. Si applica su macOS, Linux e WSL quando stdout è un terminale. Richiede Claude Code v2.1.261 o successiva |337| `CLAUDE_CODE_NONBLOCKING_STDOUT` | Imposta a `1` per scrivere l'output del terminale attraverso un secondo file descriptor non bloccante, in modo che un terminale che smette di leggere, come un riquadro tmux in control mode in pausa o una connessione SSH bloccata, non possa bloccare Claude Code a metà sessione. Si applica su macOS, Linux e WSL quando stdout è un terminale. Richiede Claude Code v2.1.261 o successiva |

337| `CLAUDE_CODE_NO_FLICKER` | Imposta a `1` per abilitare il [rendering a schermo intero](/docs/it/fullscreen), un'anteprima di ricerca che riduce lo sfarfallio e mantiene costante l'uso della memoria nelle conversazioni lunghe. Sovrascrive l'impostazione [`tui`](/docs/it/settings-reference#tui); puoi anche passare a questa modalità con `/tui fullscreen` |338| `CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES` | Limita quante volte Claude Code invia di nuovo una [richiesta non in streaming](/docs/it/errors#streaming-response-ended-before-any-complete-data-was-received) che va in timeout. Con `0`, la richiesta fallisce al primo timeout. Non impostata per impostazione predefinita, quindi è `CLAUDE_CODE_MAX_RETRIES` a limitare questi nuovi invii. Vedi [Regolare il comportamento dei nuovi tentativi](/docs/it/errors#tune-retry-behavior) per il timeout. Richiede Claude Code v2.1.285 o successiva |

338| `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` | Token di aggiornamento OAuth per l'autenticazione Claude.ai. Quando è impostato, `claude auth login` scambia direttamente questo token invece di aprire un browser. Richiede `CLAUDE_CODE_OAUTH_SCOPES`. Utile per predisporre l'autenticazione in ambienti automatizzati |339| `CLAUDE_CODE_NO_FLICKER` | Imposta a `1` per abilitare il [rendering a schermo intero](/docs/it/fullscreen), un'anteprima di ricerca che riduce lo sfarfallio e mantiene stabile la memoria nelle conversazioni lunghe. Sovrascrive l'impostazione [`tui`](/docs/it/settings-reference#tui); puoi anche passarvi con `/tui fullscreen` |

339| `CLAUDE_CODE_OAUTH_SCOPES` | Scope OAuth separati da spazi con cui è stato emesso il token di aggiornamento, ad esempio `"user:profile user:inference user:sessions:claude_code"`. Obbligatoria quando è impostata `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` |340| `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` | Token di aggiornamento OAuth per l'autenticazione Claude.ai. Quando è impostato, `claude auth login` scambia direttamente questo token invece di aprire un browser. Richiede `CLAUDE_CODE_OAUTH_SCOPES`. Utile per il provisioning dell'autenticazione in ambienti automatizzati |

340| `CLAUDE_CODE_OAUTH_TOKEN` | Token di accesso OAuth per l'autenticazione claude.ai. Alternativa a `/login` per l'SDK e gli ambienti automatizzati. Ha la precedenza sulle credenziali memorizzate nel portachiavi. Generane uno con [`claude setup-token`](/docs/it/authentication#generate-a-long-lived-token). A meno che tu non esegua [`/login`](/docs/it/authentication#authentication-precedence), Claude Code usa il token che hai impostato per l'intera sessione. Per sostituire un token scaduto, generane uno nuovo e riavvia |341| `CLAUDE_CODE_OAUTH_SCOPES` | Scope OAuth separati da spazi con cui è stato emesso il token di aggiornamento, come `"user:profile user:inference user:sessions:claude_code"`. Obbligatoria quando è impostata `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` |

341| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | Rimossa nella v2.1.160 e ora non ha alcun effetto. In precedenza fissava la [modalità veloce](/docs/it/fast-mode) su Claude Opus 4.6 invece che sul modello predefinito attuale. Opus 4.6 non supporta più la modalità veloce |342| `CLAUDE_CODE_OAUTH_TOKEN` | Token di accesso OAuth per l'autenticazione claude.ai. Alternativa a `/login` per SDK e ambienti automatizzati. Ha la precedenza sulle credenziali memorizzate nel portachiavi. Generane uno con [`claude setup-token`](/docs/it/authentication#generate-a-long-lived-token). A meno che tu non esegua [`/login`](/docs/it/authentication#authentication-precedence), Claude Code usa il token impostato per l'intera sessione. Per sostituire un token scaduto, generane uno nuovo e riavvia |

342| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Lunghezza massima degli attributi OpenTelemetry che contengono contenuti (risposte del modello, contenuti degli strumenti, prompt di sistema, corpi API grezzi), incluso il marcatore di troncamento, in unità di codice UTF-16 (predefinito: 61440, ovvero 60 KB). Aumentala solo se il tuo backend di telemetria accetta valori di attributo superiori a 64 KB, oppure riducila per diminuire il volume della telemetria. Richiede Claude Code v2.1.214 o successiva. Consulta [Monitoraggio](/docs/it/monitoring-usage) |343| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | Rimossa nella v2.1.160 e ora senza effetto. In precedenza fissava la [modalità veloce](/docs/it/fast-mode) su Claude Opus 4.6 invece del valore predefinito attuale. Opus 4.6 non supporta più la modalità veloce |

343| `CLAUDE_CODE_OTEL_DIAG_STDERR` | Imposta a `1` per scrivere su stderr gli errori diagnostici dell'exporter OpenTelemetry. Per impostazione predefinita questi errori compaiono solo con `--debug`, quindi un exporter configurato male, ad esempio per una collisione di porta di Prometheus, altrimenti fallisce in silenzio. Richiede Claude Code v2.1.179 o successiva. Consulta [Monitoraggio](/docs/it/monitoring-usage) |344| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Lunghezza massima degli attributi OpenTelemetry che trasportano contenuti (risposte del modello, contenuti degli strumenti, prompt di sistema, corpi API grezzi), marcatore di troncamento incluso, in unità di codice UTF-16 (predefinito: 61440, ovvero 60 KB). Aumentala solo se il tuo backend di telemetria accetta valori di attributo superiori a 64 KB, oppure riducila per diminuire il volume di telemetria. Richiede Claude Code v2.1.214 o successiva. Vedi [Monitoraggio](/docs/it/monitoring-usage) |

344| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | Timeout in millisecondi per lo svuotamento degli span OpenTelemetry in sospeso (predefinito: 5000). Consulta [Monitoraggio](/docs/it/monitoring-usage) |345| `CLAUDE_CODE_OTEL_DIAG_STDERR` | Imposta a `1` per scrivere su stderr gli errori diagnostici degli exporter OpenTelemetry. Per impostazione predefinita questi errori compaiono solo con `--debug`, quindi un exporter configurato in modo errato, ad esempio per una collisione di porta di Prometheus, altrimenti fallisce silenziosamente. Richiede Claude Code v2.1.179 o successiva. Vedi [Monitoraggio](/docs/it/monitoring-usage) |

345| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Intervallo in millisecondi per l'aggiornamento degli header OpenTelemetry dinamici (predefinito: 1740000 / 29 minuti). Consulta [Header dinamici](/docs/it/monitoring-usage#dynamic-headers) |346| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | Timeout in millisecondi per lo svuotamento degli span OpenTelemetry in sospeso (predefinito: 5000). Vedi [Monitoraggio](/docs/it/monitoring-usage) |

346| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | Timeout in millisecondi entro cui l'exporter OpenTelemetry deve terminare alla chiusura (predefinito: 2000). Aumentalo se le metriche vengono perse all'uscita. Consulta [Monitoraggio](/docs/it/monitoring-usage) |347| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Intervallo per l'aggiornamento degli header OpenTelemetry dinamici in millisecondi (predefinito: 1740000 / 29 minuti). Vedi [Header dinamici](/docs/it/monitoring-usage#dynamic-headers) |

347| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | Imposta a `1` per consentire a Claude Code di eseguire in background il comando di aggiornamento del tuo gestore di pacchetti quando è disponibile una nuova versione. Si applica alle installazioni tramite Homebrew e WinGet. Gli altri gestori di pacchetti continuano a mostrare il comando di aggiornamento senza eseguirlo. Consulta [Aggiornamenti automatici](/docs/it/setup#auto-updates) |348| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | Timeout in millisecondi entro cui l'exporter OpenTelemetry deve terminare all'arresto (predefinito: 2000). Aumentalo se le metriche vengono perse all'uscita. Vedi [Monitoraggio](/docs/it/monitoring-usage) |

348| `CLAUDE_CODE_PERFORCE_MODE` | Imposta a `1` per abilitare la protezione in scrittura compatibile con Perforce. Quando è impostata, Edit, Write e NotebookEdit falliscono con un suggerimento `p4 edit <file>` se il file di destinazione non ha il bit di scrittura per il proprietario, che Perforce rimuove dai file sincronizzati finché `p4 edit` non li apre. Ciò impedisce a Claude Code di aggirare il tracciamento delle modifiche di Perforce |349| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | Imposta a `1` per consentire a Claude Code di eseguire in background il comando di aggiornamento del tuo gestore di pacchetti quando è disponibile una nuova versione. Si applica alle installazioni Homebrew e WinGet. Gli altri gestori di pacchetti continuano a mostrare il comando di aggiornamento senza eseguirlo. Vedi [Aggiornamenti automatici](/docs/it/setup#auto-updates) |

349| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Sovrascrive la directory radice dei plugin. Nonostante il nome, imposta la directory padre, non la cache stessa: i marketplace e la cache dei plugin si trovano in sottodirectory di questo percorso. Il valore predefinito è `~/.claude/plugins` |350| `CLAUDE_CODE_PERFORCE_MODE` | Imposta a `1` per abilitare la protezione in scrittura compatibile con Perforce. Quando è impostata, Edit, Write e NotebookEdit falliscono con un suggerimento `p4 edit <file>` se il file di destinazione non ha il bit di scrittura del proprietario, che Perforce rimuove dai file sincronizzati finché `p4 edit` non li apre. Questo impedisce a Claude Code di aggirare il tracciamento delle modifiche di Perforce |

350| `CLAUDE_CODE_PLUGIN_DIRS` | Directory dei plugin da caricare per la sessione, ciascuna caricata nel modo in cui la carica un flag [`--plugin-dir`](/docs/it/plugins/cli-reference#flags-that-load-a-plugin-for-one-session). Separa più percorsi con `:` su Unix o `;` su Windows. Specifica ogni percorso come percorso assoluto o iniziandolo con `~`, perché Claude Code salta i percorsi relativi. Richiede Claude Code v2.1.280 o successiva. Consulta [Caricare un plugin per una sessione](/docs/it/plugins/create#load-a-directory-or-archive-for-one-session) |351| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Sovrascrive la directory radice dei plugin. Nonostante il nome, imposta la directory padre, non la cache stessa: i marketplace e la cache dei plugin si trovano in sottodirectory di questo percorso. Predefinito: `~/.claude/plugins` |

351| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Timeout in millisecondi per la clonazione o l'aggiornamento di un marketplace di plugin (predefinito: 120000). Aumenta questo valore per repository di grandi dimensioni o connessioni di rete lente. Consulta [Timeout del git clone](/docs/it/plugins/troubleshooting#git-clone-timed-out-after-120s) |352| `CLAUDE_CODE_PLUGIN_DIRS` | Directory dei plugin da caricare per la sessione, ognuna caricata nel modo in cui la caricherebbe un flag [`--plugin-dir`](/docs/it/plugins/cli-reference#flags-that-load-a-plugin-for-one-session). Separa più percorsi con `:` su Unix o `;` su Windows. Indica ogni percorso come percorso assoluto o fallo iniziare con `~`, perché Claude Code salta i percorsi relativi. Richiede Claude Code v2.1.280 o successiva. Vedi [Caricare un plugin per una sessione](/docs/it/plugins/create#load-a-directory-or-archive-for-one-session) |

352| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Imposta a `1` per saltare il tentativo di nuova clonazione e continuare a usare il checkout esistente del marketplace quando un aggiornamento del marketplace non riesce a raggiungere il remoto o ad autenticarsi. Utile in ambienti offline o airgapped in cui una nuova clonazione fallirebbe allo stesso modo. Consulta [Gli aggiornamenti del marketplace falliscono negli ambienti offline](/docs/it/plugins/troubleshooting#marketplace-updates-keep-failing-offline) |353| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Timeout in millisecondi per la clonazione o l'aggiornamento di un marketplace di plugin (predefinito: 120000). Aumenta questo valore per repository di grandi dimensioni o connessioni di rete lente. Vedi [Git clone timed out](/docs/it/plugins/troubleshooting#git-clone-timed-out-after-120s) |

353| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Imposta a `1` per clonare le sorgenti GitHub in forma abbreviata `owner/repo` tramite HTTPS invece che tramite SSH. Si applica all'installazione e all'aggiornamento dei plugin, e a `/plugin marketplace add` e `update`. Utile nei runner di CI, nei container o in qualsiasi ambiente senza una chiave SSH configurata per `github.com` |354| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Imposta a `1` per saltare il tentativo di nuova clonazione e continuare a usare il checkout esistente del marketplace quando un aggiornamento del marketplace non riesce a raggiungere il remoto o ad autenticarsi. Utile in ambienti offline o air-gapped in cui una nuova clonazione fallirebbe allo stesso modo. Vedi [Gli aggiornamenti del marketplace non riescono in ambienti offline](/docs/it/plugins/troubleshooting#marketplace-updates-keep-failing-offline) |

354| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Percorso di una o più directory seed di plugin di sola lettura, separate da `:` su Unix o `;` su Windows. Usala per includere una directory di plugin prepopolata in un'immagine container. Claude Code registra i marketplace da queste directory all'avvio e usa i plugin già presenti nella cache senza clonarli di nuovo. Consulta [Prepopolare i plugin per i container](/docs/it/plugins/org#seed-containers-and-ci) |355| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Imposta a `1` per clonare le sorgenti in forma abbreviata GitHub `owner/repo` tramite HTTPS invece che SSH. Si applica all'installazione e all'aggiornamento dei plugin, e a `/plugin marketplace add` e `update`. Utile nei runner CI, nei container o in qualsiasi ambiente senza una chiave SSH configurata per `github.com` |

355| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | Imposta a `1` per impedire a Claude Code di passare `-ExecutionPolicy Bypass` quando avvia PowerShell per le chiamate agli strumenti, gli hook e i comandi della riga di stato, rispettando invece la execution policy effettiva della macchina. Per impostazione predefinita Claude Code aggira la execution policy nell'ambito del processo, così gli script `.ps1` e le importazioni di moduli funzionano nelle installazioni di Windows con il valore predefinito Restricted. L'aggiramento nell'ambito del processo non sovrascrive mai le policy di gruppo `MachinePolicy` o `UserPolicy`, indipendentemente da questa impostazione |356| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Percorso di una o più directory seed dei plugin di sola lettura, separate da `:` su Unix o `;` su Windows. Usala per includere una directory dei plugin prepopolata in un'immagine container. Claude Code registra i marketplace da queste directory all'avvio e usa i plugin già in cache senza clonarli di nuovo. Vedi [Prepopolare i plugin per i container](/docs/it/plugins/org#seed-containers-and-ci) |

356| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | Limite massimo in millisecondi dell'attesa inattiva per i subagent e i workflow in background dopo il turno finale in [modalità non interattiva](/docs/it/headless#background-tasks-at-exit) con il flag `-p`. L'attesa inattiva ricomincia ogni volta che Claude esegue un turno per gestire un risultato in background. Predefinito: `600000`, ovvero 10 minuti. Quando l'attesa inattiva raggiunge il limite, Claude Code smette di attendere le restanti attività in background ed esce. Imposta a `0` per attendere indefinitamente. Questo limite è separato dal periodo di tolleranza di cinque secondi che si applica alle semplici shell in background. Richiede Claude Code v2.1.182 o successiva |357| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | Imposta a `1` per impedire a Claude Code di passare `-ExecutionPolicy Bypass` quando avvia PowerShell per chiamate agli strumenti, hook e comandi della riga di stato, rispettando invece l'execution policy effettiva della macchina. Per impostazione predefinita Claude Code aggira l'execution policy a livello di processo, in modo che gli script `.ps1` e le importazioni di moduli funzionino sulle installazioni Windows con il valore predefinito Restricted. Il bypass a livello di processo non sovrascrive mai i Criteri di gruppo `MachinePolicy` o `UserPolicy`, indipendentemente da questa impostazione |

357| `CLAUDE_CODE_PROCESS_WRAPPER` | Avvia i processi che Claude Code lancia dal proprio binario, come il servizio in background che ospita le sessioni di [agent view](/docs/it/agent-view), tramite un launcher aziendale specificato come prefisso argv, ad esempio `/opt/corp/launcher`. Impostala nel blocco `env` delle impostazioni utente o delle [impostazioni gestite](/docs/it/managed-settings), non come export della shell, in modo che il servizio in background scollegato la erediti; le impostazioni di progetto e locali non possono impostarla. Equivale all'[impostazione `processWrapper`](/docs/it/settings-reference#processwrapper), che richiede Claude Code v2.1.210 o successiva; questa variabile ha la precedenza quando sono impostate entrambe. L'estensione di VS Code configura il proprio launcher separatamente tramite la sua impostazione `claudeProcessWrapper`. Ignorata su Windows. Consulta [Eseguire Claude Code dietro un launcher aziendale](/docs/it/corporate-launcher) per il formato del valore, ciò che il launcher copre e il contratto che il launcher deve rispettare. Richiede Claude Code v2.1.208 o successiva |358| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | Tetto in millisecondi per l'attesa inattiva di subagent e workflow in background dopo il turno finale in [modalità non interattiva](/docs/it/headless#background-tasks-at-exit) con il flag `-p`. L'attesa inattiva ricomincia ogni volta che Claude esegue un turno per gestire un risultato in background. Predefinito: `600000`, ovvero 10 minuti. Quando l'attesa inattiva raggiunge il tetto, Claude Code smette di attendere le attività in background rimanenti ed esce. Imposta a `0` per attendere indefinitamente. Questo limite è separato dal periodo di tolleranza di cinque secondi che si applica alle semplici shell in background. Richiede Claude Code v2.1.182 o successiva |

358| `CLAUDE_CODE_PROJECT_DIR_NAME` | Da impostare insieme a `CLAUDE_CONFIG_DIR` per scegliere il nome della directory in `projects/` in cui Claude Code archivia le trascrizioni e la memoria automatica di quella sessione, al posto di un nome derivato dal percorso della directory di lavoro. Ad esempio, avviando Claude Code con `CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude` le archivia in `/srv/tenant-a/projects/work/`. Claude Code ignora questa variabile quando `CLAUDE_CONFIG_DIR` non è impostata, e la legge solo dall'ambiente da cui avvii `claude`, mai da un [blocco `env` di un file di impostazioni](#in-settings-files). Consulta [Assegnare tu il nome alla directory del progetto](/docs/it/sessions#name-the-project-directory-yourself). Richiede Claude Code v2.1.234 o successiva |359| `CLAUDE_CODE_PROCESS_WRAPPER` | Avvia i processi che Claude Code lancia dal proprio binario, come il servizio in background che ospita le sessioni di [agent view](/docs/it/agent-view), tramite un launcher aziendale indicato come prefisso argv, ad esempio `/opt/corp/launcher`. Impostala nel blocco `env` delle impostazioni utente o delle [impostazioni gestite](/docs/it/managed-settings), non come export della shell, in modo che il servizio in background scollegato la erediti; le impostazioni di progetto e locali non possono impostarla. Equivale all'[impostazione `processWrapper`](/docs/it/settings-reference#processwrapper), che richiede Claude Code v2.1.210 o successiva; questa variabile ha la precedenza quando sono impostate entrambe. L'estensione VS Code configura il proprio launcher separatamente tramite la sua impostazione `claudeProcessWrapper`. Ignorata su Windows. Vedi [Eseguire Claude Code dietro un launcher aziendale](/docs/it/corporate-launcher) per il formato del valore, ciò che il launcher copre e il contratto che il launcher deve rispettare. Richiede Claude Code v2.1.208 o successiva |

359| `CLAUDE_CODE_PROMPT_CACHE_TTL` | Imposta `5m` o `1h`, gli unici valori accettati da Claude Code, per scegliere il [TTL del prompt caching](/docs/it/prompt-caching#cache-lifetime) per la conversazione principale: i tuoi turni interattivi, `-p` e SDK, più gli helper che vengono eseguiti in linea con essi. Ha la precedenza sull'impostazione `promptCacheTtl` e su `ENABLE_PROMPT_CACHING_1H`, mentre `FORCE_PROMPT_CACHING_5M` la sovrascrive. L'API fattura le scritture nella cache da 1 ora a una tariffa più alta. Richiede Claude Code v2.1.242 o successiva |360| `CLAUDE_CODE_PROJECT_DIR_NAME` | Impostala insieme a `CLAUDE_CONFIG_DIR` per scegliere il nome della directory in `projects/` in cui Claude Code memorizza le trascrizioni e la memoria automatica di quella sessione, al posto di uno derivato dal percorso della directory di lavoro. Ad esempio, avviando Claude Code con `CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude` le memorizza in `/srv/tenant-a/projects/work/`. Claude Code ignora questa variabile quando `CLAUDE_CONFIG_DIR` non è impostata, e la legge solo dall'ambiente da cui avvii `claude`, mai da un [blocco `env` di un file di impostazioni](#in-settings-files). Vedi [Assegnare tu il nome alla directory del progetto](/docs/it/sessions#name-the-project-directory-yourself). Richiede Claude Code v2.1.234 o successiva |

360| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | Imposta a `1` per propagare il trace context W3C quando `ANTHROPIC_BASE_URL` punta a un proxy personalizzato. La propagazione riguarda l'header `traceparent` sulle richieste al modello e ai server MCP HTTP e la variabile d'ambiente `TRACEPARENT` per i sottoprocessi di Bash, PowerShell e degli hook. Per impostazione predefinita, la propagazione è abilitata solo quando la connessione è diretta all'API Anthropic. Aggiunta nella v2.1.152. Consulta [Tracce (beta)](/docs/it/monitoring-usage#traces-beta) |361| `CLAUDE_CODE_PROMPT_CACHE_TTL` | Imposta `5m` o `1h`, gli unici valori accettati da Claude Code, per scegliere il [TTL della cache dei prompt](/docs/it/prompt-caching#cache-lifetime) per la conversazione principale: i tuoi turni interattivi, `-p` e SDK, più gli helper che vengono eseguiti in linea con essi. Ha la precedenza sull'impostazione `promptCacheTtl` e su `ENABLE_PROMPT_CACHING_1H`, mentre `FORCE_PROMPT_CACHING_5M` la sovrascrive. L'API fattura le scritture nella cache da 1 ora a una tariffa più alta. Richiede Claude Code v2.1.242 o successiva |

361| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Impostata dalle piattaforme host che incorporano Claude Code e gestiscono per suo conto l'instradamento verso il provider del modello. Quando è impostata, Claude Code ignora le variabili di selezione del provider, dell'endpoint e di autenticazione, come `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL` e `ANTHROPIC_API_KEY`, nei file di impostazioni, così le impostazioni utente non possono sovrascrivere l'instradamento dell'host. Claude Code ignora inoltre le chiavi di selezione del modello come `model`, `fallbackModel` e `modelOverrides` nelle [impostazioni gestite](/docs/it/managed-settings), qualunque sia la fonte gestita che le distribuisce, così la configurazione del modello dell'host ha la precedenza su un modello fissato nelle impostazioni gestite non aggiornato. Claude Code ignora anche le variabili di selezione del modello come `ANTHROPIC_MODEL` e la famiglia `ANTHROPIC_DEFAULT_*_MODEL` in un blocco `env` gestito; un'allowlist [`availableModels`](/docs/it/model-config#restrict-model-selection) nelle impostazioni gestite si applica comunque, a meno che l'host non ne fornisca una propria. Claude Code salta inoltre la disattivazione automatica della telemetria che altrimenti applica sui provider di terze parti come Amazon Bedrock, Claude Platform on AWS, Agent Platform di Google Cloud e Microsoft Foundry, quindi la telemetria segue la disattivazione standard tramite `DISABLE_TELEMETRY`. Consulta [Comportamenti predefiniti per provider API](/docs/it/data-usage#default-behaviors-by-api-provider) |362| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | Imposta a `1` per propagare il trace context W3C quando `ANTHROPIC_BASE_URL` punta a un proxy personalizzato. La propagazione riguarda l'header `traceparent` nelle richieste al modello e MCP HTTP e la variabile d'ambiente `TRACEPARENT` per i sottoprocessi Bash, PowerShell e degli hook. Per impostazione predefinita, la propagazione è abilitata solo con connessione diretta all'API Anthropic. Aggiunta nella v2.1.152. Vedi [Tracce (beta)](/docs/it/monitoring-usage#traces-beta) |

362| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Imposta a `1` per consentire al proxy di eseguire la risoluzione DNS al posto del chiamante. Opzione facoltativa per gli ambienti in cui il proxy deve gestire la risoluzione dei nomi host |363| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Impostata dalle piattaforme host che incorporano Claude Code e gestiscono per suo conto l'instradamento del provider del modello. Quando è impostata, Claude Code ignora le variabili di selezione del provider, di endpoint e di autenticazione come `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL` e `ANTHROPIC_API_KEY` nei file di impostazioni, così le impostazioni utente non possono sovrascrivere l'instradamento dell'host. Claude Code ignora inoltre le chiavi di selezione del modello come `model`, `fallbackModel` e `modelOverrides` nelle [impostazioni gestite](/docs/it/managed-settings), qualunque sia la fonte gestita che le distribuisce, così la configurazione del modello dell'host ha la precedenza su un modello fissato nelle impostazioni gestite e non aggiornato. Claude Code ignora inoltre le variabili di selezione del modello come `ANTHROPIC_MODEL` e la famiglia `ANTHROPIC_DEFAULT_*_MODEL` in un blocco `env` gestito; un'allowlist [`availableModels`](/docs/it/model-config#restrict-model-selection) nelle impostazioni gestite si applica comunque, a meno che l'host non ne fornisca una propria. Claude Code salta inoltre la disattivazione automatica della telemetria che altrimenti applica sui provider di terze parti come Amazon Bedrock, Claude Platform on AWS, Agent Platform di Google Cloud e Microsoft Foundry, quindi la telemetria segue la disattivazione standard tramite `DISABLE_TELEMETRY`. Vedi [Comportamenti predefiniti per provider API](/docs/it/data-usage#default-behaviors-by-api-provider) |

364| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Imposta a `1` per consentire al proxy di eseguire la risoluzione DNS al posto del chiamante. Opzione facoltativa per ambienti in cui il proxy deve gestire la risoluzione dei nomi host |

363| `CLAUDE_CODE_REMOTE` | Impostata automaticamente a `true` quando Claude Code è in esecuzione come [sessione cloud](/docs/it/claude-code-on-the-web). Leggila da un hook o da uno script di configurazione per rilevare se ti trovi in una sessione cloud |365| `CLAUDE_CODE_REMOTE` | Impostata automaticamente a `true` quando Claude Code è in esecuzione come [sessione cloud](/docs/it/claude-code-on-the-web). Leggila da un hook o da uno script di configurazione per rilevare se ti trovi in una sessione cloud |

364| `CLAUDE_CODE_REMOTE_SESSION_ID` | Impostata automaticamente nelle [sessioni cloud](/docs/it/claude-code-on-the-web) all'ID della sessione corrente. Leggila per costruire un link alla trascrizione della sessione. Consulta [Collegare l'output alla sessione](/docs/it/cloud-environments#link-output-back-to-the-session) |366| `CLAUDE_CODE_REMOTE_SESSION_ID` | Impostata automaticamente nelle [sessioni cloud](/docs/it/claude-code-on-the-web) sull'ID della sessione corrente. Leggila per costruire un link alla trascrizione della sessione. Vedi [Collegare l'output alla sessione](/docs/it/cloud-environments#link-output-back-to-the-session) |

365| `CLAUDE_CODE_RESTRICTED` | Imposta a `1` per avviare la sessione in modalità con restrizioni, come passando [`--restricted`](/docs/it/cli-reference#cli-flags). Claude Code ignora questa variabile nel blocco `env` di un file di impostazioni. Richiede Claude Code v2.1.248 o successiva |367| `CLAUDE_CODE_RESTRICTED` | Imposta a `1` per avviare la sessione in modalità limitata, come se passassi [`--restricted`](/docs/it/cli-reference#cli-flags). Claude Code ignora questa variabile nel blocco `env` di un file di impostazioni. Richiede Claude Code v2.1.248 o successiva |

366| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Imposta su `1` per riprendere automaticamente se la sessione precedente è terminata a metà di un turno. Usata in modalità SDK affinché il modello continui senza che l'SDK debba inviare di nuovo il prompt. Per disattivarla, rimuovi la variabile o impostala su `0`. Per il pannello di chat di VS Code, consulta [Continuare le conversazioni dopo un ricaricamento](/docs/it/vs-code#continue-conversations-after-a-reload) |368| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Imposta a `1` per riprendere automaticamente se la sessione precedente è terminata a metà turno. Usata in modalità SDK affinché il modello continui senza che l'SDK debba inviare di nuovo il prompt. Per disattivarla, rimuovi la variabile o impostala a `0`. Per il pannello chat di VS Code, vedi [Continuare le conversazioni dopo un ricaricamento](/docs/it/vs-code#continue-conversations-after-a-reload) |

367| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Età massima in millisecondi dell'ultimo messaggio della trascrizione perché una sessione terminata a metà di un turno prosegua automaticamente alla ripresa. Quando l'ultimo messaggio è più vecchio di questo limite, Claude Code salta la ripresa automatica di `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` e il relativo messaggio di continuazione `CLAUDE_CODE_RESUME_PROMPT`, e la sessione si avvia inattiva in modo che tu prosegua esplicitamente. Non impostata o `0` significa nessun limite, tranne per il fatto che un turno la cui ultima richiesta è fallita con un errore API riprende solo finché quell'errore ha meno di sei ore. Un valore positivo limita ogni turno, inclusi quelli; un valore negativo o non numerico applica un limite di un'ora. Gli script di avvio per agenti di lunga durata possono impostarla in modo che un riavvio su una trascrizione vecchia non riesegua un prompt obsoleto. Claude Code imposta autonomamente un limite di un'ora quando riavvia una sessione di [agent view](/docs/it/agent-view) andata in crash che ha ereditato la conversazione da una sessione interattiva. Richiede Claude Code v2.1.211 o successiva |369| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Età massima in millisecondi dell'ultimo messaggio della trascrizione affinché una sessione terminata a metà turno continui automaticamente alla ripresa. Quando l'ultimo messaggio è più vecchio di questo limite, Claude Code salta la ripresa automatica di `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` e il relativo messaggio di continuazione `CLAUDE_CODE_RESUME_PROMPT`, e la sessione si avvia inattiva in modo che tu prosegua esplicitamente. Non impostata o `0` significa nessun limite, tranne per il fatto che un turno la cui ultima richiesta è fallita con un errore API riprende solo se tale errore risale a meno di sei ore prima. Un valore positivo limita ogni turno, inclusi questi; un valore negativo o non numerico applica un limite di un'ora. Gli script di avvio per agenti a lunga esecuzione possono impostarla affinché un riavvio su una vecchia trascrizione non riesegua un prompt obsoleto. Claude Code imposta autonomamente un limite di un'ora quando riavvia una sessione di [agent view](/docs/it/agent-view) andata in crash che ha ereditato la propria conversazione da una sessione interattiva. Richiede Claude Code v2.1.211 o successiva |

368| `CLAUDE_CODE_RESUME_PROMPT` | Sovrascrive il messaggio di continuazione che Claude Code invia a Claude quando `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` prosegue un turno interrotto invece di inviare di nuovo il suo prompt, oppure quando riprendi una [chiamata a uno strumento rinviata](/docs/it/hooks#defer-a-tool-call-for-later) con `-p`. Il valore predefinito è `Continue from where you left off.`. Una stringa vuota usa il valore predefinito |370| `CLAUDE_CODE_RESUME_PROMPT` | Sovrascrive il messaggio di continuazione che Claude Code invia a Claude quando `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` prosegue un turno interrotto invece di inviare di nuovo il suo prompt, oppure quando riprendi una [chiamata a uno strumento differita](/docs/it/hooks#defer-a-tool-call-for-later) con `-p`. Predefinito: `Continue from where you left off.`. Una stringa vuota usa il valore predefinito |

369| `CLAUDE_CODE_RETRY_WATCHDOG` | Imposta a `1` per le sessioni non presidiate come harness di valutazione, job di CI o worker remoti. Riprova indefinitamente in caso di errori di capacità `429` e `529` invece di fallire dopo `CLAUDE_CODE_MAX_RETRIES` tentativi. Claude Code fallisce immediatamente quando una richiesta a velocità standard riceve un `429` che segnala un limite di spesa o crediti di utilizzo esauriti, anche se proviene da un [limite di spesa del gateway](/docs/it/errors#spend-limit-reached) che si azzera periodicamente. Prima della v2.1.239, il watchdog riprovava indefinitamente anche in questi casi. Per le richieste in modalità veloce, consulta [Gestire i rate limit](/docs/it/fast-mode#handle-rate-limits). Il watchdog attende fino a 5 minuti tra un tentativo e l'altro, oppure fino all'azzeramento del limite quando la risposta include un orario di azzeramento del rate limit, così una sessione che raggiunge un limite di utilizzo attende la fine della finestra rimanente. Nella v2.1.199 o successiva aumenta inoltre a 300 il numero predefinito di nuovi tentativi per gli altri errori transitori, come errori del server, timeout e connessioni interrotte, pari a circa tre ore di attesa, e rimuove il limite di 15 su `CLAUDE_CODE_MAX_RETRIES` se imposti esplicitamente quella variabile. Richiede Claude Code v2.1.186 o successiva |371| `CLAUDE_CODE_RETRY_WATCHDOG` | Imposta a `1` per le sessioni non presidiate come harness di valutazione, job CI o worker remoti. Riprova indefinitamente in caso di errori di capacità `429` e `529` invece di fallire dopo `CLAUDE_CODE_MAX_RETRIES` tentativi. Claude Code fallisce immediatamente quando una richiesta a velocità standard riceve un `429` che segnala un limite di spesa o crediti di utilizzo esauriti, anche se proviene da un [limite di spesa del gateway](/docs/it/errors#spend-limit-reached) che si reimposta secondo una pianificazione. Prima della v2.1.239, il watchdog riprovava indefinitamente in questi casi. Per le richieste in modalità veloce, vedi [Gestire i rate limit](/docs/it/fast-mode#handle-rate-limits). Il watchdog attende fino a 5 minuti tra un tentativo e l'altro, oppure fino al ripristino del limite quando la risposta riporta un orario di ripristino del rate limit, così una sessione che raggiunge un limite di utilizzo attende la fine della finestra rimanente. Nella v2.1.199 o successiva aumenta inoltre a 300 il numero predefinito di nuovi tentativi per altri errori transitori, come errori del server, timeout e connessioni interrotte, pari a circa tre ore di backoff, e rimuove il limite di 15 su `CLAUDE_CODE_MAX_RETRIES` se imposti esplicitamente quella variabile. Richiede Claude Code v2.1.186 o successiva |

370| `CLAUDE_CODE_SAFE_MODE` | Imposta a `1` per avviare in modalità provvisoria: CLAUDE.md, skill, plugin, hook, server MCP, comandi e agenti personalizzati, stili di output, workflow, temi personalizzati, scorciatoie da tastiera personalizzate, comandi della riga di stato e dei suggerimenti di file, server LSP e memoria automatica non vengono caricati, per la risoluzione dei problemi di una configurazione non funzionante. La policy delle impostazioni gestite si applica comunque, inclusi gli hook, la riga di stato e i comandi dei suggerimenti di file configurati dalla policy; i plugin gestiti, le skill gestite, il CLAUDE.md gestito e i server MCP configurati dalla policy no. Equivale a passare [`--safe-mode`](/docs/it/cli-reference#cli-flags). I processi figli avviati direttamente ereditano la variabile |372| `CLAUDE_CODE_SAFE_MODE` | Imposta a `1` per avviare in modalità sicura: CLAUDE.md, skill, plugin, hook, server MCP, comandi e agenti personalizzati, stili di output, workflow, temi personalizzati, scorciatoie da tastiera personalizzate, comandi della riga di stato e di suggerimento dei file, server LSP e memoria automatica non vengono caricati, per la risoluzione dei problemi di una configurazione non funzionante. La policy delle impostazioni gestite si applica comunque, inclusi hook, riga di stato e comandi di suggerimento dei file configurati tramite policy; plugin gestiti, skill gestite, CLAUDE.md gestito e server MCP configurati tramite policy no. Equivale a passare [`--safe-mode`](/docs/it/cli-reference#cli-flags). I processi figli generati direttamente ereditano la variabile |

371| `CLAUDE_CODE_SCRIPT_CAPS` | Oggetto JSON che limita quante volte script specifici possono essere invocati per sessione quando è impostata `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`. Le chiavi sono sottostringhe confrontate con il testo del comando; i valori sono limiti interi di chiamate. Ad esempio, `{"deploy.sh": 2}` consente di chiamare `deploy.sh` al massimo due volte. Il confronto si basa su sottostringhe, quindi trucchi di espansione della shell come `./scripts/deploy.sh $(evil)` vengono comunque conteggiati nel limite. Le diramazioni a runtime tramite `xargs` o `find -exec` non vengono rilevate; si tratta di un controllo di difesa in profondità |373| `CLAUDE_CODE_SCRIPT_CAPS` | Oggetto JSON che limita quante volte script specifici possono essere invocati per sessione quando è impostata `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`. Le chiavi sono sottostringhe confrontate con il testo del comando; i valori sono limiti interi di chiamate. Ad esempio, `{"deploy.sh": 2}` consente di chiamare `deploy.sh` al massimo due volte. La corrispondenza è basata su sottostringhe, quindi trucchi di espansione della shell come `./scripts/deploy.sh $(evil)` vengono comunque conteggiati nel limite. Il fan-out a runtime tramite `xargs` o `find -exec` non viene rilevato; si tratta di un controllo di difesa in profondità |

372| `CLAUDE_CODE_SCROLL_SPEED` | Imposta il moltiplicatore di scorrimento della rotellina del mouse nel [rendering a schermo intero](/docs/it/fullscreen#mouse-wheel-scrolling). Accetta qualsiasi valore positivo fino a 20, inclusi valori frazionari inferiori a 1 come `0.5` per rallentare lo scorrimento accelerato del trackpad e della rotellina nei terminali che già amplificano gli eventi della rotellina. Imposta a `3` per corrispondere a `vim` se il tuo terminale invia un evento della rotellina per scatto senza amplificazione. Ignorata nel terminale degli IDE JetBrains, dove Claude Code usa una propria gestione dello scorrimento |374| `CLAUDE_CODE_SCROLL_SPEED` | Imposta il moltiplicatore di scorrimento della rotella del mouse nel [rendering a schermo intero](/docs/it/fullscreen#mouse-wheel-scrolling). Accetta qualsiasi valore positivo fino a 20, inclusi valori frazionari inferiori a 1 come `0.5` per rallentare lo scorrimento accelerato di trackpad e rotella nei terminali che già amplificano gli eventi della rotella. Imposta a `3` per allinearti a `vim` se il tuo terminale invia un evento di rotella per scatto senza amplificazione. Ignorata nel terminale degli IDE JetBrains, dove Claude Code usa la propria gestione dello scorrimento |

373| `CLAUDE_CODE_SEND_FEEDBACK` | Imposta a `0` per disattivare il [feedback redatto da Claude](/docs/it/tools-reference#sendfeedback-tool-behavior) per una sessione. Imposta a `1` per attivarlo dove il tuo account ha già accesso; la variabile non può concedere l'accesso da sola, e gli altri interruttori che disattivano il feedback, come `DISABLE_FEEDBACK_COMMAND` e il valore `off` dell'impostazione [`feedbackDrafts`](/docs/it/settings-reference#feedbackdrafts), si applicano comunque |375| `CLAUDE_CODE_SEND_FEEDBACK` | Imposta a `0` per disattivare il [feedback redatto da Claude](/docs/it/tools-reference#sendfeedback-tool-behavior) per una sessione. Imposta a `1` per attivarlo dove il tuo account ha già accesso; la variabile non può concedere l'accesso da sola, e gli altri interruttori che disattivano il feedback, come `DISABLE_FEEDBACK_COMMAND` e il valore `off` dell'impostazione [`feedbackDrafts`](/docs/it/settings-reference#feedbackdrafts), si applicano comunque |

374| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | Sovrascrive il tempo disponibile in millisecondi per gli hook [SessionEnd](/docs/it/hooks#sessionend). Il valore è anche il timeout per ogni hook che non imposta un proprio `timeout`. Si applica all'uscita dalla sessione, a `/clear` e al cambio di sessione tramite `/resume` interattivo. Per impostazione predefinita il tempo disponibile è di 1,5 secondi, aumentato automaticamente al `timeout` per hook più alto configurato nei file di impostazioni, fino a 60 secondi. I timeout degli hook forniti dai plugin non aumentano il tempo disponibile |376| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | Sovrascrive il budget di tempo in millisecondi per gli hook [SessionEnd](/docs/it/hooks#sessionend). Il valore è anche il timeout per ogni hook che non imposta un proprio `timeout`. Si applica all'uscita dalla sessione, a `/clear` e al cambio di sessione tramite `/resume` interattivo. Per impostazione predefinita il budget è di 1,5 secondi, aumentato automaticamente al `timeout` per hook più alto configurato nei file di impostazioni, fino a 60 secondi. I timeout degli hook forniti dai plugin non aumentano il budget |

375| `CLAUDE_CODE_SESSION_ID` | Impostata automaticamente all'ID della sessione corrente nei sottoprocessi degli strumenti Bash e PowerShell, nei sottoprocessi dei [comandi hook](/docs/it/hooks) e nei sottoprocessi dei [server MCP](/docs/it/mcp) stdio. Per Bash, PowerShell e gli hook corrisponde al campo `session_id` nell'input JSON degli hook e viene aggiornata con `/clear`. Un sottoprocesso di un server MCP mantiene l'ID con cui è stato avviato. Con `--resume <session-id>` riceve l'ID ripreso, come gli hook e Bash. Con `--continue` o `--resume` senza un ID esplicito potrebbe invece ricevere l'ID iniziale di avvio. Usala per correlare script e strumenti esterni con la sessione di Claude Code che li ha avviati |377| `CLAUDE_CODE_SESSION_ID` | Impostata automaticamente sull'ID della sessione corrente nei sottoprocessi degli strumenti Bash e PowerShell, nei sottoprocessi dei [comandi hook](/docs/it/hooks) e nei sottoprocessi dei [server MCP](/docs/it/mcp) stdio. Per Bash, PowerShell e gli hook corrisponde al campo `session_id` nell'input JSON degli hook e viene aggiornata con `/clear`. Un sottoprocesso di server MCP mantiene l'ID con cui è stato avviato. Con `--resume <session-id>` riceve l'ID ripreso, in linea con hook e Bash. Con `--continue` o `--resume` senza un ID esplicito potrebbe ricevere invece l'ID iniziale di avvio. Usala per correlare script e strumenti esterni con la sessione di Claude Code che li ha avviati |

376| `CLAUDE_CODE_SHELL` | Imposta la shell che Claude Code usa per eseguire i comandi dello strumento Bash. Accetta il percorso di un binario `bash` o `zsh`, ad esempio `/opt/homebrew/bin/bash`. Altre shell come `fish` non sono supportate. Se il valore non è un percorso `bash` o `zsh` funzionante, Claude Code lo ignora e ripiega sul rilevamento automatico. Il rilevamento automatico usa la tua `$SHELL` quando punta a `bash` o `zsh`, altrimenti sceglie il primo `zsh` e poi `bash` funzionante trovato nel tuo `PATH` e nei percorsi di installazione standard |378| `CLAUDE_CODE_SHELL` | Imposta la shell che Claude Code usa per eseguire i comandi dello strumento Bash. Accetta un percorso a un binario `bash` o `zsh`, ad esempio `/opt/homebrew/bin/bash`. Altre shell come `fish` non sono supportate. Se il valore non è un percorso `bash` o `zsh` funzionante, Claude Code lo ignora e ripiega sul rilevamento automatico. Il rilevamento automatico usa il tuo `$SHELL` quando punta a `bash` o `zsh`, altrimenti sceglie il primo `zsh` e poi `bash` funzionante trovato nel tuo `PATH` e nei percorsi di installazione standard |

377| `CLAUDE_CODE_SHELL_PREFIX` | Prefisso di comando che racchiude i comandi di shell avviati da Claude Code: chiamate allo strumento Bash, comandi degli [hook](/docs/it/hooks), comandi della [riga di stato](/docs/it/statusline) e comandi di avvio dei [server MCP](/docs/it/mcp) stdio. Gli hook PowerShell e gli hook in forma exec vengono eseguiti senza il prefisso. Utile per il logging o l'auditing. Impostare un semplice percorso di eseguibile come `/path/to/logger.sh` esegue ogni comando come `/path/to/logger.sh '<command>'`. Il wrapper riceve la riga di comando come singolo argomento quotato per la shell in `$1`, quindi il wrapper deve rivalutare `$1` con una shell, ad esempio `exec bash -c "$1"`. Trattare `$1` come un semplice percorso di eseguibile rompe i server MCP stdio che passano argomenti come `npx -y <package>`. Per le chiamate allo strumento Bash, `$1` contiene l'intera invocazione della shell assemblata da Claude Code, inclusa la preparazione dell'ambiente, non solo il comando eseguito da Claude |379| `CLAUDE_CODE_SHELL_PREFIX` | Prefisso di comando che racchiude i comandi di shell avviati da Claude Code: chiamate allo strumento Bash, comandi degli [hook](/docs/it/hooks), comandi della [riga di stato](/docs/it/statusline) e comandi di avvio dei [server MCP](/docs/it/mcp) stdio. Gli hook PowerShell e gli hook in forma exec vengono eseguiti senza il prefisso. Utile per logging o audit. Impostare un semplice percorso di eseguibile come `/path/to/logger.sh` esegue ogni comando come `/path/to/logger.sh '<command>'`. Il wrapper riceve la riga di comando come un singolo argomento quotato per la shell in `$1`, quindi il wrapper deve rivalutare `$1` con una shell, ad esempio `exec bash -c "$1"`. Trattare `$1` come un semplice percorso di eseguibile compromette i server MCP stdio che passano argomenti come `npx -y <package>`. Per le chiamate allo strumento Bash, `$1` contiene l'intera invocazione della shell assemblata da Claude Code, inclusa la configurazione dell'ambiente, non solo il comando eseguito da Claude |

378| `CLAUDE_CODE_SIMPLE` | Imposta a `1` per eseguire con un prompt di sistema minimo e solo gli strumenti Bash, di lettura file e di modifica file. Gli strumenti MCP da `--mcp-config` restano disponibili. Disabilita l'individuazione automatica di hook, skill, comandi personalizzati, subagent, plugin installati, server MCP, memoria automatica e CLAUDE.md. Le skill in una directory che passi con `--add-dir` vengono comunque caricate. I token OAuth e le credenziali del portachiavi non vengono letti, quindi l'autenticazione Anthropic deve provenire da `ANTHROPIC_API_KEY` o da un `apiKeyHelper` in `--settings`. Equivale a passare [`--bare`](/docs/it/headless#start-faster-with-bare-mode) |380| `CLAUDE_CODE_SIMPLE` | Imposta a `1` per eseguire con un prompt di sistema minimo e solo gli strumenti Bash, lettura file e modifica file. Gli strumenti MCP da `--mcp-config` restano disponibili. Disabilita il rilevamento automatico di hook, skill, comandi personalizzati, subagent, plugin installati, server MCP, memoria automatica e CLAUDE.md. Le skill in una directory passata con `--add-dir` vengono comunque caricate. I token OAuth e le credenziali del portachiavi non vengono letti, quindi l'autenticazione Anthropic deve provenire da `ANTHROPIC_API_KEY` o da un `apiKeyHelper` in `--settings`. Equivale a passare [`--bare`](/docs/it/headless#start-faster-with-bare-mode) |

379| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Imposta a `1` per usare un prompt di sistema più breve e descrizioni degli strumenti abbreviate su qualsiasi modello. Imposta a `0`, `false`, `no` o `off` per disattivarla anche sui modelli in cui l'esperimento o la configurazione del server la abiliterebbero altrimenti. L'intero set di strumenti, gli hook, i server MCP e l'individuazione di CLAUDE.md restano abilitati |381| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Imposta a `1` per usare un prompt di sistema più breve e descrizioni degli strumenti abbreviate su qualsiasi modello. Imposta a `0`, `false`, `no` o `off` per disattivarlo anche sui modelli in cui l'esperimento o la configurazione del server lo abiliterebbero altrimenti. Il set completo di strumenti, gli hook, i server MCP e il rilevamento di CLAUDE.md restano abilitati |

380| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Salta l'autenticazione lato client per [Claude Platform on AWS](/docs/it/claude-platform-on-aws), per i gateway che firmano autonomamente le richieste |382| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Salta l'autenticazione lato client per [Claude Platform on AWS](/docs/it/claude-platform-on-aws), per i gateway che firmano le richieste autonomamente |

381| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | Imposta a `1` per disattivare la cache in-process delle credenziali risolte dalla catena predefinita dei provider di credenziali AWS, in modo che Claude Code risolva la catena a ogni richiesta API. Con la cache disattivata, un profilo basato su SSO richiede le credenziali a IAM Identity Center a ogni richiesta. Consulta [memorizzazione nella cache delle credenziali e timeout di risoluzione](/docs/it/amazon-bedrock#credential-caching-and-resolution-timeout). Richiede Claude Code v2.1.207 o successiva |383| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | Imposta a `1` per disattivare la cache in-process delle credenziali risolte dalla catena predefinita di provider di credenziali AWS, così Claude Code risolve la catena a ogni richiesta API. Con la cache disattivata, un profilo basato su SSO richiede le credenziali a IAM Identity Center a ogni richiesta. Vedi [memorizzazione nella cache delle credenziali e timeout di risoluzione](/docs/it/amazon-bedrock#credential-caching-and-resolution-timeout). Richiede Claude Code v2.1.207 o successiva |

382| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Salta l'autenticazione AWS per Amazon Bedrock (ad esempio, quando usi un gateway LLM) |384| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Salta l'autenticazione AWS per Amazon Bedrock (ad esempio, quando si usa un gateway LLM) |

383| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` | Imposta a `1` per considerare disponibile la [modalità veloce](/docs/it/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) quando il controllo di disponibilità fallisce, per le reti che bloccano la richiesta diretta del controllo a `api.anthropic.com`. Claude Code rispetta comunque una risposta "disabled by your organization" |385| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` | Imposta a `1` per considerare disponibile una verifica di disponibilità della [modalità veloce](/docs/it/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) non riuscita, per le reti che bloccano la richiesta diretta della verifica a `api.anthropic.com`. Claude Code rispetta comunque una risposta "disabled by your organization" |

384| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | Imposta a `1` per saltare il controllo lato client della disponibilità della [modalità veloce](/docs/it/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways), per i proxy che intercettano la richiesta del controllo invece di rifiutarla. L'API rifiuta comunque le richieste in modalità veloce quando la tua organizzazione ha disabilitato la modalità veloce |386| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | Imposta a `1` per saltare la verifica lato client della disponibilità della [modalità veloce](/docs/it/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways), per i proxy che intercettano la richiesta della verifica invece di rifiutarla. L'API rifiuta comunque le richieste in modalità veloce quando la tua organizzazione ha disabilitato la modalità veloce |

385| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Salta l'autenticazione Azure per Microsoft Foundry, per un proxy o un gateway che inserisce un proprio header `Authorization`. Claude Code invia le richieste senza una credenziale Azure e preserva l'header `Authorization` che fornisci, ad esempio tramite `ANTHROPIC_CUSTOM_HEADERS`. Ignorata quando è impostata `ANTHROPIC_FOUNDRY_API_KEY` o `ANTHROPIC_FOUNDRY_AUTH_TOKEN`. Prima della v2.1.203, questa variabile rendeva il client Microsoft Foundry incapace di inviare richieste a meno che non fosse impostata anche una chiave API |387| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Salta l'autenticazione Azure per Microsoft Foundry, per un proxy o gateway che inserisce il proprio header `Authorization`. Claude Code invia le richieste senza una credenziale Azure e mantiene l'header `Authorization` che fornisci, ad esempio tramite `ANTHROPIC_CUSTOM_HEADERS`. Ignorata quando è impostata `ANTHROPIC_FOUNDRY_API_KEY` o `ANTHROPIC_FOUNDRY_AUTH_TOKEN`. Prima della v2.1.203, questa variabile impediva al client Microsoft Foundry di inviare richieste a meno che non fosse impostata anche una chiave API |

386| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Salta l'autenticazione AWS per Amazon Bedrock Mantle (ad esempio, quando usi un gateway LLM) |388| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Salta l'autenticazione AWS per Amazon Bedrock Mantle (ad esempio, quando si usa un gateway LLM) |

387| `CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY` | I [controlli dei modelli all'avvio](/docs/it/amazon-bedrock#startup-model-checks) su [Amazon Bedrock](/docs/it/amazon-bedrock) e su [Agent Platform di Google Cloud](/docs/it/google-vertex-ai) ricordano su questa macchina, per un massimo di un giorno, quali modelli il tuo account non può invocare. Imposta a `1` per disattivare questa memoria. Richiede Claude Code v2.1.285 o successiva |389| `CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY` | I [controlli dei modelli all'avvio](/docs/it/amazon-bedrock#startup-model-checks) su [Amazon Bedrock](/docs/it/amazon-bedrock) e [Agent Platform di Google Cloud](/docs/it/google-vertex-ai) memorizzano su questa macchina, per un massimo di un giorno, quali modelli hanno rilevato che il tuo account non può invocare. Imposta a `1` per disattivare questa memorizzazione. Richiede Claude Code v2.1.285 o successiva |

388| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | Imposta a `1` per non scrivere su disco la cronologia dei prompt e le trascrizioni delle sessioni. Le sessioni avviate con questa variabile impostata non compaiono in `--resume`, `--continue` né nella cronologia richiamabile con la freccia su. Utile per sessioni effimere gestite da script |390| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | Imposta a `1` per non scrivere su disco la cronologia dei prompt e le trascrizioni delle sessioni. Le sessioni avviate con questa variabile impostata non compaiono in `--resume`, `--continue` né nella cronologia con la freccia su. Utile per sessioni temporanee basate su script |

389| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Salta l'autenticazione Google per Agent Platform di Google Cloud (ad esempio, quando usi un gateway LLM) |391| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Salta l'autenticazione Google per Agent Platform di Google Cloud (ad esempio, quando si usa un gateway LLM) |

390| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | Imposta a `1` per fare in modo che una sessione avviata con `--output-format stream-json` scriva un [messaggio di risultato che indica perché Claude Code si è rifiutato di avviarsi](/docs/it/agent-sdk/typescript#startup_failure_reason) per gli errori di avvio che altrimenti terminano solo con stderr. Richiede Claude Code v2.1.274 o successiva |392| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | Imposta a `1` per fare in modo che una sessione avviata con `--output-format stream-json` scriva un [messaggio di risultato che indica perché Claude Code ha rifiutato di avviarsi](/docs/it/agent-sdk/typescript#startup_failure_reason) per gli errori di avvio che altrimenti terminano solo con stderr. Richiede Claude Code v2.1.274 o successiva |

391| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | Numero massimo di volte consecutive in cui un hook [Stop](/docs/it/hooks#stop) o [SubagentStop](/docs/it/hooks#subagentstop) può impedire la conclusione del turno prima che Claude Code lo sovrascriva e concluda comunque il turno (predefinito: 8). Imposta a `0` per disabilitare il limite. Aumentalo se il tuo hook ha legittimamente bisogno di più iterazioni per risolversi |393| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | Numero massimo di volte consecutive in cui un hook [Stop](/docs/it/hooks#stop) o [SubagentStop](/docs/it/hooks#subagentstop) può impedire la fine del turno prima che Claude Code lo scavalchi e termini comunque il turno (predefinito: 8). Imposta a `0` per disabilitare il limite. Aumentalo se il tuo hook ha legittimamente bisogno di più iterazioni per risolversi |

392| `CLAUDE_CODE_SUBAGENT_MODEL` | Il modello predefinito per i [subagent](/docs/it/sub-agents#choose-a-model), i compagni di squadra dei [team di agenti](/docs/it/agent-teams#specify-teammates-and-models) e gli agenti dei [workflow](/docs/it/workflows) a cui non è assegnato un modello in altro modo. Accetta un alias come `haiku` o il nome completo di un modello. Due fonti hanno la precedenza su di essa: un modello che Claude passa quando genera l'agente e un campo `model` nella definizione dell'agente, incluso `inherit`. Per cambiare questo comportamento, imposta [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/it/sub-agents#run-every-subagent-on-one-model). Consulta [Scegliere un modello](/docs/it/sub-agents#choose-a-model) per l'ordine completo. Impostarla a `inherit` equivale a lasciarla non impostata. Prima della v2.1.251, questa variabile sovrascriveva sia il modello per singola invocazione sia il campo `model` della definizione |394| `CLAUDE_CODE_SUBAGENT_MODEL` | Il modello predefinito per i [subagent](/docs/it/sub-agents#choose-a-model), i compagni di un [team di agenti](/docs/it/agent-teams#specify-teammates-and-models) e gli agenti dei [workflow](/docs/it/workflows) a cui non viene assegnato un modello in altro modo. Accetta un alias come `haiku` o un nome di modello completo. Due fonti hanno la precedenza su di essa: un modello che Claude passa quando genera l'agente e un campo `model` nella definizione dell'agente, incluso `inherit`. Per cambiare questo comportamento, imposta [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/it/sub-agents#run-every-subagent-on-one-model). Vedi [Scegliere un modello](/docs/it/sub-agents#choose-a-model) per l'ordine completo. Impostarla su `inherit` equivale a lasciarla non impostata. Prima della v2.1.251, questa variabile sovrascriveva sia il modello per singola invocazione sia il campo `model` della definizione |

393| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | Imposta a `1` per imporre un unico modello a subagent, compagni di squadra e agenti dei workflow. [Eseguire ogni subagent su un unico modello](/docs/it/sub-agents#run-every-subagent-on-one-model) indica di quale modello si tratta. Richiede Claude Code v2.1.257 o successiva |395| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | Imposta a `1` per forzare un unico modello su subagent, compagni di team e agenti dei workflow. [Eseguire ogni subagent su un unico modello](/docs/it/sub-agents#run-every-subagent-on-one-model) indica di quale modello si tratta. Richiede Claude Code v2.1.257 o successiva |

394| `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` | Imposta `5m` o `1h`, gli unici valori accettati da Claude Code, per scegliere il [TTL del prompt caching](/docs/it/prompt-caching#cache-lifetime) per le richieste al di fuori della conversazione principale, come [subagent](/docs/it/sub-agents), workflow e lavoro in background. Ha la precedenza sull'impostazione `subagentPromptCacheTtl` e su `ENABLE_PROMPT_CACHING_1H`, mentre `FORCE_PROMPT_CACHING_5M` la sovrascrive. L'API fattura le scritture nella cache da 1 ora a una tariffa più alta. Richiede Claude Code v2.1.242 o successiva |396| `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` | Imposta `5m` o `1h`, gli unici valori accettati da Claude Code, per scegliere il [TTL della cache dei prompt](/docs/it/prompt-caching#cache-lifetime) per le richieste al di fuori della conversazione principale, come [subagent](/docs/it/sub-agents), workflow e lavoro in background. Ha la precedenza sull'impostazione `subagentPromptCacheTtl` e su `ENABLE_PROMPT_CACHING_1H`, mentre `FORCE_PROMPT_CACHING_5M` la sovrascrive. L'API fattura le scritture nella cache da 1 ora a una tariffa più alta. Richiede Claude Code v2.1.242 o successiva |

395| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Imposta a `1` per rimuovere le credenziali dagli ambienti dei sottoprocessi (strumento Bash, hook, server MCP stdio): le credenziali di Anthropic e dei provider cloud, qualsiasi altra variabile che Claude Code riconosce come credenziale e le credenziali incorporate negli URL dei registri di pacchetti. Il processo Claude padre conserva queste credenziali per le chiamate API, ma i processi figli non possono leggerle, riducendo l'esposizione agli attacchi di prompt injection che tentano di esfiltrare segreti tramite l'espansione della shell. Nella v2.1.251 o successiva, la pulizia rimuove anche le variabili che puntano all'archivio di configurazione di Claude Code (come `CLAUDE_CONFIG_DIR`), così un processo figlio non può individuare una directory di configurazione spostata. Lascia la pulizia non impostata se un sottoprocesso ha bisogno di queste variabili. Su Linux, esegue inoltre i sottoprocessi Bash in un namespace PID isolato, in modo che non possano leggere gli ambienti dei processi dell'host tramite `/proc`; come effetto collaterale, `ps`, `pgrep` e `kill` non possono vedere né inviare segnali ai processi dell'host. `claude-code-action` la imposta automaticamente quando è configurato `allowed_non_write_users` |397| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Imposta a `1` per rimuovere le credenziali dagli ambienti dei sottoprocessi (strumento Bash, hook, server MCP stdio): credenziali di Anthropic e dei provider cloud, qualsiasi altra variabile che Claude Code riconosce come credenziale e credenziali incorporate negli URL dei registri di pacchetti. Il processo Claude padre mantiene queste credenziali per le chiamate API, ma i processi figli non possono leggerle, riducendo l'esposizione ad attacchi di prompt injection che tentano di esfiltrare segreti tramite l'espansione della shell. Nella v2.1.251 o successiva, la rimozione elimina anche le variabili che puntano all'archivio di configurazione di Claude Code stesso (come `CLAUDE_CONFIG_DIR`), così un processo figlio non può individuare una directory di configurazione spostata. Lascia la rimozione non impostata se un sottoprocesso ha bisogno di queste variabili. Su Linux, esegue inoltre i sottoprocessi Bash in un namespace PID isolato, in modo che non possano leggere gli ambienti dei processi host tramite `/proc`; come effetto collaterale, `ps`, `pgrep` e `kill` non possono vedere i processi host né inviare loro segnali. `claude-code-action` la imposta automaticamente quando è configurato `allowed_non_write_users` |

396| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | Imposta a `1` in modalità non interattiva (il flag `-p`) per attendere il completamento dell'installazione dei plugin prima della prima query. Senza di essa, i plugin vengono installati in background e potrebbero non essere disponibili al primo turno. Combinala con `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` per limitare l'attesa |398| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | Imposta a `1` in modalità non interattiva (il flag `-p`) per attendere il completamento dell'installazione dei plugin prima della prima query. Senza di essa, i plugin vengono installati in background e potrebbero non essere disponibili al primo turno. Combinala con `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` per limitare l'attesa |

397| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | Timeout in millisecondi per l'installazione sincrona dei plugin. Quando viene superato, Claude Code prosegue senza plugin e registra un errore. Nessun valore predefinito: senza questa variabile, l'installazione sincrona attende fino al completamento |399| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | Timeout in millisecondi per l'installazione sincrona dei plugin. Quando viene superato, Claude Code prosegue senza plugin e registra un errore. Nessun valore predefinito: senza questa variabile, l'installazione sincrona attende fino al completamento |

398| `CLAUDE_CODE_SYNC_SKILLS` | Imposta a `1` in modalità non interattiva con il flag `-p` per fare in modo che Claude Code scarichi in quell'esecuzione le skill abilitate per il tuo account claude.ai e ne attenda l'elenco, fino a `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS`, prima di eseguire la prima query. I download veri e propri terminano in background, e Claude attende il download di una skill quando la invoca. Richiede l'autenticazione claude.ai. Le sessioni da terminale in cui accedi con il tuo account claude.ai [scaricano queste skill](/docs/it/skills#where-synced-skills-load) in `~/.claude/skills/synced/` e le risincronizzano circa ogni 10 minuti senza questa variabile, quindi impostala solo quando un'esecuzione `-p` ha bisogno delle tue skill aggiornate alla prima query. Prima della v2.1.273, le sessioni da terminale le scaricavano solo in un'esecuzione `-p` con questa variabile impostata. Il nome della cartella `synced` è [riservato a questo download](/docs/it/skills#where-skills-live). Prima della v2.1.227, le skill venivano scaricate direttamente in `~/.claude/skills/`. Claude Code applica [regole aggiuntive alle skill scaricate](/docs/it/skills#how-synced-skills-behave), ad esempio non eseguire i loro comandi `!` sulla tua macchina |400| `CLAUDE_CODE_SYNC_SKILLS` | Imposta a `1` in modalità non interattiva con il flag `-p` per fare in modo che Claude Code scarichi le skill abilitate per il tuo account claude.ai in quell'esecuzione e ne attenda l'elenco, fino a `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS`, prima di eseguire la prima query. I download veri e propri terminano in background e Claude attende il download di una skill quando invoca quella skill. Richiede l'autenticazione claude.ai. Le sessioni nel terminale in cui accedi con il tuo account claude.ai [scaricano queste skill](/docs/it/skills#where-synced-skills-load) in `~/.claude/skills/synced/` e le risincronizzano circa ogni 10 minuti senza questa variabile, quindi impostala solo quando un'esecuzione `-p` ha bisogno delle tue skill aggiornate alla prima query. Prima della v2.1.273, le sessioni nel terminale le scaricavano solo in un'esecuzione `-p` con questa variabile impostata. Il nome della cartella `synced` è [riservato a questo download](/docs/it/skills#where-skills-live). Prima della v2.1.227, le skill venivano scaricate direttamente in `~/.claude/skills/`. Claude Code applica [regole aggiuntive alle skill scaricate](/docs/it/skills#how-synced-skills-behave), ad esempio non esegue i loro comandi `!` sulla tua macchina |

399| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | Timeout in millisecondi per la risincronizzazione delle skill eseguita a metà sessione quando un'app basata sull'[Agent SDK](/docs/it/agent-sdk/typescript#query-object) ricarica le skill (predefinito: 30000). Quando viene superato, il ricaricamento prosegue con le skill già arrivate e i download rimanenti terminano in background |401| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | Timeout in millisecondi per la risincronizzazione delle skill che viene eseguita a metà sessione quando un'app basata sull'[Agent SDK](/docs/it/agent-sdk/typescript#query-object) ricarica le skill (predefinito: 30000). Quando viene superato, il ricaricamento prosegue con le skill già arrivate e i download rimanenti terminano in background |

400| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Timeout in millisecondi entro cui la prima query attende l'elenco iniziale delle skill quando è impostata `CLAUDE_CODE_SYNC_SKILLS` (predefinito: 5000). Quando viene superato, la prima query viene eseguita con le skill già arrivate. I download terminano comunque in background, e Claude attende il download di una skill quando la invoca |402| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Timeout in millisecondi entro cui la prima query attende l'elenco iniziale delle skill quando è impostata `CLAUDE_CODE_SYNC_SKILLS` (predefinito: 5000). Quando viene superato, la prima query viene eseguita con le skill già arrivate. I download terminano comunque in background e Claude attende il download di una skill quando invoca quella skill |

401| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Imposta a `false` per disabilitare l'evidenziazione della sintassi nell'output dei diff. Utile quando i colori interferiscono con la configurazione del tuo terminale. Per disabilitare l'evidenziazione anche nei blocchi di codice e nelle anteprime dei file, usa l'impostazione [`syntaxHighlightingDisabled`](/docs/it/settings-reference#syntaxhighlightingdisabled) |403| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Imposta a `false` per disabilitare l'evidenziazione della sintassi nell'output dei diff. Utile quando i colori interferiscono con la configurazione del tuo terminale. Per disabilitare l'evidenziazione anche nei blocchi di codice e nelle anteprime dei file, usa l'impostazione [`syntaxHighlightingDisabled`](/docs/it/settings-reference#syntaxhighlightingdisabled) |

402| `CLAUDE_CODE_TASK_LIST_ID` | Condivide un elenco di attività tra sessioni. Imposta lo stesso ID in più istanze di Claude Code per coordinarle su un elenco di attività condiviso, nelle [sessioni che dispongono degli strumenti Task](/docs/it/tools-reference#task-tool-availability). Consulta [Elenco delle attività](/docs/it/interactive-mode#task-list) |404| `CLAUDE_CODE_TASK_LIST_ID` | Condivide un elenco di attività tra sessioni. Imposta lo stesso ID in più istanze di Claude Code per coordinarti su un elenco di attività condiviso, nelle [sessioni che dispongono degli strumenti Task](/docs/it/tools-reference#task-tool-availability). Vedi [Elenco delle attività](/docs/it/interactive-mode#task-list) |

403| `CLAUDE_CODE_TEAM_TEARDOWN_PARK_TIMEOUT_MS` | Sovrascrive, in millisecondi, quanto a lungo una sessione non interattiva attende all'uscita che il suo [team di agenti](/docs/it/agent-teams) completi lo smantellamento. Accetta valori da 1000 a 60000; un valore fuori intervallo viene ignorato e si applica il valore predefinito di 10000. Richiede Claude Code v2.1.206 o successiva |405| `CLAUDE_CODE_TEAM_TEARDOWN_PARK_TIMEOUT_MS` | Sovrascrive, in millisecondi, per quanto tempo una sessione non interattiva attende all'uscita che il suo [team di agenti](/docs/it/agent-teams) termini lo smantellamento. Accetta da 1000 a 60000; un valore fuori intervallo viene ignorato e si applica il valore predefinito di 10000. Richiede Claude Code v2.1.206 o successiva |

404| `CLAUDE_CODE_TMPDIR` | Sovrascrive la directory temporanea usata per i file temporanei interni. Claude Code aggiunge `/claude-{uid}/` a questo percorso su Unix, oppure `/claude/` su Windows. Predefinito: `/tmp` su macOS, `os.tmpdir()` su Linux e Windows. Su macOS e Linux, i sottoprocessi Bash in [sandbox](/docs/it/sandboxing) ricevono un `$TMPDIR` di fallback breve nella posizione predefinita di sistema quando il tuo override è un percorso lungo, poiché alcuni strumenti falliscono quando i percorsi temporanei diventano troppo lunghi. I comandi Bash non in sandbox ereditano il `$TMPDIR` della tua shell quando è impostato. Su Windows nativo, quando la tua shell non imposta `$TMPDIR`, un comando Bash che fa riferimento a `$TMPDIR` riceve il tuo override, oppure `%TEMP%` quando non ne hai impostato uno. I file temporanei di Claude Code usano sempre il tuo override. Impostala nella tua shell, nelle impostazioni utente o nelle impostazioni gestite. Ignorata nelle [impostazioni di progetto e locali](/docs/it/settings-reference#variables-claude-code-ignores-in-env) |406| `CLAUDE_CODE_TMPDIR` | Sovrascrive la directory temporanea usata per i file temporanei interni. Claude Code aggiunge `/claude-{uid}/` a questo percorso su Unix, o `/claude/` su Windows. Predefinito: `/tmp` su macOS, `os.tmpdir()` su Linux e Windows. Su macOS e Linux, i sottoprocessi Bash in [sandbox](/docs/it/sandboxing) ricevono un `$TMPDIR` di fallback breve nella posizione predefinita del sistema quando il tuo override è un percorso lungo, poiché alcuni strumenti falliscono quando i percorsi temporanei diventano troppo lunghi. I comandi Bash non in sandbox ereditano il `$TMPDIR` della tua shell quando è impostato. Su Windows nativo, quando la tua shell non imposta `$TMPDIR`, un comando Bash che fa riferimento a `$TMPDIR` riceve il tuo override, oppure `%TEMP%` se non ne hai impostato uno. I file temporanei di Claude Code usano sempre il tuo override. Impostala nella tua shell, nelle impostazioni utente o nelle impostazioni gestite. Ignorata nelle [impostazioni di progetto e locali](/docs/it/settings-reference#variables-claude-code-ignores-in-env) |

405| `CLAUDE_CODE_TMUX_TRUECOLOR` | Imposta a un qualsiasi valore non vuoto, come `1`, per consentire l'output truecolor a 24 bit all'interno di tmux. **Impostarla a `0` o `false` consente comunque il truecolor**, a differenza della maggior parte delle variabili on/off; rimuovi la variabile per ripristinare la limitazione a 256 colori. Per impostazione predefinita, Claude Code si limita a 256 colori quando `$TMUX` è impostata, perché tmux non lascia passare le sequenze di escape truecolor a meno che non sia configurato per farlo. Impostala dopo aver aggiunto `set -ga terminal-overrides ',*:Tc'` al tuo `~/.tmux.conf`. Consulta [Configurazione del terminale](/docs/it/terminal-config) per altre impostazioni di tmux |407| `CLAUDE_CODE_TMUX_TRUECOLOR` | Imposta a qualsiasi valore non vuoto, come `1`, per consentire l'output truecolor a 24 bit all'interno di tmux. **Impostarla a `0` o `false` consente comunque il truecolor**, a differenza della maggior parte delle variabili on/off; rimuovi la variabile per ripristinare il limite a 256 colori. Per impostazione predefinita, Claude Code limita a 256 colori quando `$TMUX` è impostata, perché tmux non inoltra le sequenze di escape truecolor a meno che non sia configurato per farlo. Impostala dopo aver aggiunto `set -ga terminal-overrides ',*:Tc'` al tuo `~/.tmux.conf`. Vedi [Configurazione del terminale](/docs/it/terminal-config) per altre impostazioni di tmux |

406| `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | Su Linux e WSL, imposta un elenco separato da virgole dei tipi di processi che Claude Code [esclude dal limite di memoria degli strumenti](/docs/it/tools-reference#memory-limit-on-linux-and-wsl), come `mcp` o `lsp`. Imposta `none` per limitare tutti i tipi, oppure `all-new` per limitare solo i comandi degli strumenti Bash, PowerShell e Monitor. Claude Code mantiene i comandi degli strumenti Bash, PowerShell e Monitor sotto il limite qualunque cosa tu elenchi. Richiede Claude Code v2.1.246 o successiva |408| `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | Su Linux e WSL, imposta un elenco separato da virgole dei tipi di processi che Claude Code [esclude dal limite di memoria degli strumenti](/docs/it/tools-reference#memory-limit-on-linux-and-wsl), come `mcp` o `lsp`. Imposta `none` per limitare ogni tipo, oppure `all-new` per limitare solo i comandi degli strumenti Bash, PowerShell e Monitor. Claude Code mantiene sotto il limite i comandi degli strumenti Bash, PowerShell e Monitor qualunque cosa tu elenchi. Richiede Claude Code v2.1.246 o successiva |

407| `CLAUDE_CODE_TOOL_MEMORY_LIMIT` | Su Linux e WSL, imposta una dimensione come `4G` per [limitare la memoria che i comandi degli strumenti Bash e PowerShell possono usare](/docs/it/tools-reference#memory-limit-on-linux-and-wsl), e i comandi dello strumento Monitor nella v2.1.246 o successiva. Scrivi la dimensione in cifre semplici, da sola per un numero di byte oppure con un suffisso `K`, `M`, `G` o `T`. Imposta `0` o `off` per disattivare il limite. Una volta che il primo processo avviato da Claude Code ha attivato o disattivato il limite, un valore modificato ha effetto al successivo avvio di `claude`. Richiede Claude Code v2.1.233 o successiva |409| `CLAUDE_CODE_TOOL_MEMORY_LIMIT` | Su Linux e WSL, imposta una dimensione come `4G` per [limitare la memoria che i comandi degli strumenti Bash e PowerShell possono usare](/docs/it/tools-reference#memory-limit-on-linux-and-wsl), e i comandi dello strumento Monitor nella v2.1.246 o successiva. Scrivi la dimensione in cifre semplici, da sola per un numero di byte o con un suffisso `K`, `M`, `G` o `T`. Imposta `0` o `off` per disattivare il limite. Dopo che il primo processo avviato da Claude Code ha attivato o disattivato il limite, un valore modificato ha effetto al successivo avvio di `claude`. Richiede Claude Code v2.1.233 o successiva |

408| `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS` | Scadenza in millisecondi prima che Claude Code annulli una finestra di dialogo che inoltra a un client remoto come un host [Remote Control](/docs/it/remote-control) o SDK, oppure la finestra di approvazione per un [messaggio tra sessioni trattenuto](/docs/it/cross-session-messaging#control-inbound-messages); le richieste di permesso e le domande di `AskUserQuestion` usano flussi propri e non sono regolate da questa variabile. In Claude Code v2.1.236 o successiva, limita anche la [richiesta di consenso ai crediti di utilizzo di Fable](/docs/it/model-config#fable-and-usage-credits) a metà sessione in una sessione che potrebbe essere in esecuzione senza supervisione. [Controllare i messaggi in ingresso](/docs/it/cross-session-messaging#control-inbound-messages) e [Sessioni non interattive](/docs/it/cross-session-messaging#non-interactive-sessions) descrivono tutte le regole di scadenza dei messaggi trattenuti, inclusi i casi in cui la scadenza non si applica. Sovrascrive l'impostazione [`dialogExpiry`](/docs/it/settings-reference#dialogexpiry). `0` o un valore negativo disabilita la scadenza |410| `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS` | Scadenza in millisecondi prima che Claude Code annulli una finestra di dialogo che inoltra a un client remoto come un host [Remote Control](/docs/it/remote-control) o SDK, oppure la finestra di dialogo di approvazione per un [messaggio tra sessioni trattenuto](/docs/it/cross-session-messaging#control-inbound-messages); le richieste di permesso e le domande `AskUserQuestion` usano flussi propri e non sono regolate da questa variabile. In Claude Code v2.1.236 o successiva, limita anche la [richiesta di consenso ai crediti di utilizzo Fable](/docs/it/model-config#fable-and-usage-credits) a metà sessione in una sessione che potrebbe essere in esecuzione senza supervisione. [Controllare i messaggi in ingresso](/docs/it/cross-session-messaging#control-inbound-messages) e [Sessioni non interattive](/docs/it/cross-session-messaging#non-interactive-sessions) descrivono tutte le regole di scadenza dei messaggi trattenuti, inclusi i casi in cui la scadenza non si applica. Sovrascrive l'impostazione [`dialogExpiry`](/docs/it/settings-reference#dialogexpiry). `0` o un valore negativo disabilita la scadenza |

409| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | Usa [Claude Platform on AWS](/docs/it/claude-platform-on-aws) |411| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | Usa [Claude Platform on AWS](/docs/it/claude-platform-on-aws) |

410| `CLAUDE_CODE_USE_BEDROCK` | Usa [Amazon Bedrock](/docs/it/amazon-bedrock) |412| `CLAUDE_CODE_USE_BEDROCK` | Usa [Amazon Bedrock](/docs/it/amazon-bedrock) |

411| `CLAUDE_CODE_USE_FOUNDRY` | Usa [Microsoft Foundry](/docs/it/microsoft-foundry) |413| `CLAUDE_CODE_USE_FOUNDRY` | Usa [Microsoft Foundry](/docs/it/microsoft-foundry) |

412| `CLAUDE_CODE_USE_MANTLE` | Usa l'[endpoint Mantle](/docs/it/amazon-bedrock#use-the-mantle-endpoint) di Amazon Bedrock |414| `CLAUDE_CODE_USE_MANTLE` | Usa l'[endpoint Mantle](/docs/it/amazon-bedrock#use-the-mantle-endpoint) di Amazon Bedrock |

413| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | Imposta a `1` per individuare comandi personalizzati, subagent e stili di output usando le API dei file di Node.js invece di ripgrep. Impostala se il binario di ripgrep incluso non è disponibile o è bloccato nel tuo ambiente. Non influisce su Grep né sugli strumenti di ricerca dei file |415| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | Imposta a `1` per rilevare comandi personalizzati, subagent e stili di output usando le API dei file di Node.js invece di ripgrep. Impostala se il binario ripgrep incluso non è disponibile o è bloccato nel tuo ambiente. Non influisce su Grep né sugli strumenti di ricerca dei file |

414| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | Controlla lo strumento PowerShell. Su Windows senza Git Bash, lo strumento viene abilitato automaticamente; imposta a `0` per disabilitarlo. Su Windows con Git Bash installato, lo strumento è attivo per impostazione predefinita per gli account claude.ai e Console; imposta a `1` per abilitarlo nelle sessioni Amazon Bedrock, Agent Platform di Google Cloud e Microsoft Foundry, oppure a `0` per disattivarlo. Su Linux, macOS e WSL, imposta a `1` per abilitarlo, il che richiede `pwsh` nel tuo `PATH`. Quando è abilitato su Windows, Claude può eseguire i comandi PowerShell in modo nativo invece di passare attraverso Git Bash. Consulta [Strumento PowerShell](/docs/it/tools-reference#powershell-tool) |416| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | Controlla lo strumento PowerShell. Su Windows senza Git Bash, lo strumento è abilitato automaticamente; imposta a `0` per disabilitarlo. Su Windows con Git Bash installato, lo strumento è attivo per impostazione predefinita per gli account claude.ai e Console; imposta a `1` per abilitarlo nelle sessioni Amazon Bedrock, Agent Platform di Google Cloud e Microsoft Foundry, oppure a `0` per disattivarlo. Su Linux, macOS e WSL, imposta a `1` per abilitarlo, il che richiede `pwsh` nel tuo `PATH`. Quando è abilitato su Windows, Claude può eseguire comandi PowerShell in modo nativo invece di passare da Git Bash. Vedi [Strumento PowerShell](/docs/it/tools-reference#powershell-tool) |

415| `CLAUDE_CODE_USE_VERTEX` | Usa [Agent Platform di Google Cloud](/docs/it/google-vertex-ai) |417| `CLAUDE_CODE_USE_VERTEX` | Usa [Agent Platform di Google Cloud](/docs/it/google-vertex-ai) |

416| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | Imposta il numero di millisecondi per cui [WebFetch](/docs/it/tools-reference#webfetch-tool-behavior) mantiene nella cache la risposta di ciascun URL recuperato. Il valore predefinito è `900000`, ovvero 15 minuti. Accetta solo cifre semplici; `0`, un decimale o qualsiasi altra scrittura mantengono il valore predefinito. Claude Code legge il valore una volta per avvio, quindi una modifica in un blocco `env` delle impostazioni si applica al successivo avvio di `claude`. Richiede Claude Code v2.1.233 o successiva |418| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | Imposta il numero di millisecondi per cui [WebFetch](/docs/it/tools-reference#webfetch-tool-behavior) mantiene nella cache la risposta di ogni URL recuperato. Il valore predefinito è `900000`, ovvero 15 minuti. Accetta solo cifre semplici; `0`, un decimale o qualsiasi altra scrittura mantengono il valore predefinito. Claude Code legge il valore una volta per avvio, quindi una modifica in un blocco `env` delle impostazioni si applica al successivo avvio di `claude`. Richiede Claude Code v2.1.233 o successiva |

417| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | Limite massimo in millisecondi per quanto a lungo [WebFetch](/docs/it/tools-reference#webfetch-tool-behavior) attende il download di una pagina, inclusi gli eventuali reindirizzamenti che segue. Un download non completato entro quel tempo fallisce con un errore di scadenza. Il valore predefinito è `300000`, ovvero cinque minuti. Imposta a `0` per rimuovere il limite. Accetta solo cifre semplici; un decimale o qualsiasi altra scrittura mantengono il valore predefinito. Richiede Claude Code v2.1.268 o successiva |419| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | Limite superiore in millisecondi per quanto tempo [WebFetch](/docs/it/tools-reference#webfetch-tool-behavior) attende il download di una pagina, inclusi gli eventuali reindirizzamenti che segue. Un download non completato entro quel tempo fallisce con un errore di scadenza. Il valore predefinito è `300000`, ovvero cinque minuti. Imposta a `0` per rimuovere il limite. Accetta solo cifre semplici; un decimale o qualsiasi altra scrittura mantengono il valore predefinito. Richiede Claude Code v2.1.268 o successiva |

418| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | Quanti agenti una singola esecuzione di un [workflow](/docs/it/workflows) esegue contemporaneamente, da `1` a `256`. Per impostazione predefinita, un'esecuzione esegue fino a 16 agenti contemporaneamente, meno quando Claude Code dispone di meno CPU; le chiamate `agent()` in coda attendono uno slot libero. La trascrizione di ogni agente in esecuzione resta nella memoria di Claude Code, quindi valori più alti aumentano l'uso della memoria. Accetta solo cifre semplici; i valori fuori intervallo e altre scritture mantengono il valore predefinito. Richiede Claude Code v2.1.269 o successiva |420| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | Quanti agenti esegue contemporaneamente una singola esecuzione di un [workflow](/docs/it/workflows), da `1` a `256`. Per impostazione predefinita, un'esecuzione esegue fino a 16 agenti contemporaneamente, meno quando Claude Code ha meno CPU disponibili; le chiamate `agent()` in coda attendono uno slot libero. La trascrizione di ogni agente in esecuzione rimane nella memoria di Claude Code, quindi valori più alti aumentano l'uso di memoria. Accetta solo cifre semplici; i valori fuori intervallo e le altre grafie mantengono il valore predefinito. Richiede Claude Code v2.1.269 o successivo |

419| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Limite superiore, in millisecondi, del tempo per cui un agente di un [workflow](/docs/it/workflows) attende che inizi la prima risposta di un agente fratello con lo stesso prefisso prima di inviare la propria prima richiesta. Quando un fan-out avvia diversi agenti che condividono un [prefisso della cache dei prompt](/docs/it/workflows#prompt-caching-in-a-fan-out), Claude Code trattiene tutti gli agenti tranne il primo fino a questo tempo, in modo che gli altri leggano il prefisso memorizzato nella cache invece di elaborarlo ciascuno senza cache. Valore predefinito `5000`. Imposta `0` per disabilitare l'attesa. Quando `DISABLE_PROMPT_CACHING` è impostata, gli agenti non attendono mai. Richiede Claude Code v2.1.229 o successivo |421| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Limite superiore in millisecondi del tempo che un agente di un [workflow](/docs/it/workflows) attende che inizi la prima risposta di un agente fratello con lo stesso prefisso prima di inviare la propria prima richiesta. Quando un fan-out avvia diversi agenti che condividono un [prefisso della prompt cache](/docs/it/workflows#prompt-caching-in-a-fan-out), Claude Code trattiene tutti gli agenti tranne il primo fino a questo tempo, in modo che gli altri leggano il prefisso memorizzato nella cache invece di elaborarlo ciascuno senza cache. Valore predefinito `5000`. Imposta a `0` per disattivare l'attesa. Quando `DISABLE_PROMPT_CACHING` è impostata, gli agenti non attendono mai. Richiede Claude Code v2.1.229 o successivo |

420| `CLAUDE_CONFIG_DIR` | Sovrascrive la directory di configurazione (predefinita: `~/.claude`). Tutte le impostazioni, la cronologia delle sessioni e i plugin vengono archiviati in questo percorso. Per le credenziali, consulta [dove Claude Code archivia le credenziali](/docs/it/authentication#credential-management). Utile per eseguire più account affiancati: ad esempio, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. Impostala nella tua shell, nelle impostazioni utente o nelle impostazioni gestite. Ignorata nelle [impostazioni di progetto e locali](/docs/it/settings-reference#variables-claude-code-ignores-in-env) |422| `CLAUDE_CONFIG_DIR` | Sovrascrive la directory di configurazione (predefinita: `~/.claude`). Tutte le impostazioni, la cronologia delle sessioni e i plugin sono archiviati in questo percorso. Per le credenziali, consulta [dove Claude Code archivia le credenziali](/docs/it/authentication#credential-management). Utile per eseguire più account affiancati: ad esempio, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. Impostala nella tua shell, nelle impostazioni utente o nelle impostazioni gestite. Ignorata nelle [impostazioni di progetto e locali](/docs/it/settings-reference#variables-claude-code-ignores-in-env) |

421| `CLAUDE_DISABLE_ADOPT` | Imposta `1` per interrompere il lavoro in background in corso invece di trasferirlo quando metti in background una sessione premendo `←` o con [`/background`](/docs/it/agent-view#from-inside-a-session). Claude Code ti chiede conferma prima di mettere in background, quindi interrompe le attività che altrimenti verrebbero trasferite. Richiede Claude Code v2.1.195 o successivo |423| `CLAUDE_DISABLE_ADOPT` | Imposta a `1` per interrompere il lavoro in background in corso invece di trasferirlo quando metti una sessione in background premendo `←` o con [`/background`](/docs/it/agent-view#from-inside-a-session). Claude Code ti chiede conferma prima di mettere in background, poi interrompe le attività che altrimenti verrebbero trasferite. Richiede Claude Code v2.1.195 o successivo |

422| `CLAUDE_EFFORT` | Impostata automaticamente nei sottoprocessi dello strumento Bash e nei comandi degli hook al [livello di sforzo](/docs/it/model-config#adjust-effort-level) in vigore all'avvio del sottoprocesso: `low`, `medium`, `high`, `xhigh` o `max`. Corrisponde al campo `effort.level` passato agli [hook](/docs/it/hooks). Impostata solo quando il modello corrente supporta il parametro effort |424| `CLAUDE_EFFORT` | Impostata automaticamente nei sottoprocessi dello strumento Bash e nei comandi degli hook al [livello di sforzo](/docs/it/model-config#adjust-effort-level) in vigore quando il sottoprocesso si avvia: `low`, `medium`, `high`, `xhigh` o `max`. Corrisponde al campo `effort.level` passato agli [hook](/docs/it/hooks). Impostata solo quando il modello corrente supporta il parametro effort |

423| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Imposta `1` per forzare l'abilitazione del watchdog di inattività dello streaming a livello di byte, oppure `0` per forzarne la disabilitazione. `0` disattiva anche la [scadenza del primo byte](/docs/it/network-config#streaming-idle-watchdogs) sulle connessioni in cui tale scadenza è attiva. Quando non è impostata, il watchdog è abilitato per impostazione predefinita per le connessioni dirette all'API Anthropic e a [Claude Platform on AWS](/docs/it/claude-platform-on-aws), e per le risposte in streaming sulle connessioni tramite [gateway](/docs/it/gateways) raggiunte attraverso `ANTHROPIC_BASE_URL` o `ANTHROPIC_AWS_BASE_URL`; prima della v2.1.222 non veniva eseguito su queste connessioni tramite gateway, quindi il watchdog a livello di evento poteva segnalare uno stallo anche mentre arrivavano ping keep-alive. Per i timeout e il modo in cui i timer interagiscono, consulta [Watchdog di inattività dello streaming](/docs/it/network-config#streaming-idle-watchdogs) |425| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Imposta a `1` per forzare l'attivazione del watchdog di inattività dello streaming a livello di byte, oppure a `0` per forzarne la disattivazione. `0` disattiva anche la [scadenza del primo byte](/docs/it/network-config#streaming-idle-watchdogs) sulle connessioni in cui tale scadenza è attiva. Quando non è impostata, il watchdog è attivo per impostazione predefinita per le connessioni dirette all'API Anthropic e a [Claude Platform on AWS](/docs/it/claude-platform-on-aws), e per le risposte in streaming sulle connessioni tramite [gateway](/docs/it/gateways) raggiunte con `ANTHROPIC_BASE_URL` o `ANTHROPIC_AWS_BASE_URL`; prima della v2.1.222 non era attivo su quelle connessioni tramite gateway, quindi il watchdog a livello di evento poteva segnalare uno stallo anche mentre arrivavano i ping keep-alive. Per i timeout e il modo in cui interagiscono i timer, consulta [Watchdog di inattività dello streaming](/docs/it/network-config#streaming-idle-watchdogs) |

424| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Imposta `1` per abilitare il watchdog di inattività dello streaming a livello di byte sulle risposte `vnd.amazon.eventstream` di Amazon Bedrock, il che abilita anche la [scadenza del primo byte](/docs/it/network-config#streaming-idle-watchdogs) sulle richieste in streaming a Bedrock. Disattivata per impostazione predefinita. Configura il timeout con `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |426| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Imposta a `1` per attivare il watchdog di inattività dello streaming a livello di byte sulle risposte `vnd.amazon.eventstream` di Amazon Bedrock, il che attiva anche la [scadenza del primo byte](/docs/it/network-config#streaming-idle-watchdogs) sulle richieste in streaming di Bedrock. Disattivata per impostazione predefinita. Configura il timeout con `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |

425| `CLAUDE_ENABLE_STREAM_WATCHDOG` | Imposta `0` per forzare la disabilitazione del watchdog di inattività dello streaming a livello di evento, oppure `1` per forzarne l'abilitazione. Quando non è impostata, il watchdog è attivo per impostazione predefinita per tutti i provider. Prima della v2.1.196, il valore predefinito in assenza di impostazione era controllato dal server sull'API Anthropic diretta e disattivato sugli altri provider. Configura il timeout con `CLAUDE_STREAM_IDLE_TIMEOUT_MS`; per gli altri timer di stallo che vengono eseguiti insieme a questo, consulta [Watchdog di inattività dello streaming](/docs/it/network-config#streaming-idle-watchdogs) |427| `CLAUDE_ENABLE_STREAM_WATCHDOG` | Imposta a `0` per forzare la disattivazione del watchdog di inattività dello streaming a livello di evento, oppure a `1` per forzarne l'attivazione. Quando non è impostata, il watchdog è attivo per impostazione predefinita per tutti i provider. Prima della v2.1.196, il valore predefinito in assenza di impostazione era controllato dal server sull'API Anthropic diretta e disattivato sugli altri provider. Configura il timeout con `CLAUDE_STREAM_IDLE_TIMEOUT_MS`; per gli altri timer di stallo che funzionano insieme a questo, consulta [Watchdog di inattività dello streaming](/docs/it/network-config#streaming-idle-watchdogs) |

426| `CLAUDE_ENV_FILE` | Percorso di uno script shell il cui contenuto Claude Code esegue prima di ogni comando Bash nello stesso processo shell, in modo che le esportazioni nel file siano visibili al comando. Usala per mantenere l'attivazione di virtualenv o conda tra i comandi. Viene anche popolata dinamicamente dagli hook [SessionStart](/docs/it/hooks#persist-environment-variables), [Setup](/docs/it/hooks#setup), [CwdChanged](/docs/it/hooks#cwdchanged) e [FileChanged](/docs/it/hooks#filechanged) |428| `CLAUDE_ENV_FILE` | Percorso di uno script shell il cui contenuto Claude Code esegue prima di ogni comando Bash nello stesso processo della shell, in modo che gli export nel file siano visibili al comando. Usala per mantenere l'attivazione di virtualenv o conda tra i comandi. Viene anche popolata dinamicamente dagli hook [SessionStart](/docs/it/hooks#persist-environment-variables), [Setup](/docs/it/hooks#setup), [CwdChanged](/docs/it/hooks#cwdchanged) e [FileChanged](/docs/it/hooks#filechanged) |

427| `CLAUDE_JOB_DIR` | Impostata da Claude Code in ogni [sessione in background](/docs/it/agent-view) sulla directory `~/.claude/jobs/<id>` di quella sessione. I comandi shell eseguiti dalla sessione la ereditano. Scrivi i file temporanei in [`$CLAUDE_JOB_DIR/tmp`](/docs/it/agent-view#where-state-is-stored). Le chiamate `Write` e `Edit` di Claude in quella posizione non richiedono permessi, e la directory viene rimossa quando la sessione viene eliminata |429| `CLAUDE_JOB_DIR` | Impostata da Claude Code in ogni [sessione in background](/docs/it/agent-view) sulla directory `~/.claude/jobs/<id>` di quella sessione. I comandi shell eseguiti dalla sessione la ereditano. Scrivi i file temporanei in [`$CLAUDE_JOB_DIR/tmp`](/docs/it/agent-view#where-state-is-stored). Le chiamate `Write` ed `Edit` di Claude in quella posizione non richiedono permessi, e la directory viene rimossa quando la sessione viene eliminata |

428| `CLAUDE_PID` | Claude Code la imposta sul proprio ID di processo nei sottoprocessi che avvia: i comandi degli strumenti Bash e PowerShell e i comandi degli hook. Su Linux, l'integrazione shell dello strumento Bash la usa per rifiutare un pattern `pkill` che corrisponderebbe al processo stesso di Claude Code; consulta [il riferimento agli errori](/docs/it/errors#pkill-pattern-matches-the-claude-code-process). Leggila dai tuoi script per identificare o inviare segnali deliberatamente al processo Claude Code padre. Richiede Claude Code v2.1.214 o successivo |430| `CLAUDE_PID` | Claude Code la imposta al proprio ID di processo nei sottoprocessi che avvia: i comandi degli strumenti Bash e PowerShell e i comandi degli hook. Su Linux, l'integrazione shell dello strumento Bash la usa per rifiutare un pattern `pkill` che corrisponderebbe al processo stesso di Claude Code; consulta [il riferimento agli errori](/docs/it/errors#pkill-pattern-matches-the-claude-code-process). Leggila dai tuoi script per identificare deliberatamente il processo padre di Claude Code o inviargli segnali. Richiede Claude Code v2.1.214 o successivo |

429| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | Prefisso per i nomi delle sessioni di [Remote Control](/docs/it/remote-control) generati automaticamente quando non viene fornito un nome esplicito. Il valore predefinito è l'hostname della tua macchina, che produce nomi come `myhost-graceful-unicorn`. Il flag CLI `--remote-control-session-name-prefix` imposta lo stesso valore per una singola invocazione |431| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | Prefisso per i nomi delle sessioni [Remote Control](/docs/it/remote-control) generati automaticamente quando non viene fornito un nome esplicito. Il valore predefinito è l'hostname della tua macchina, che produce nomi come `myhost-graceful-unicorn`. Il flag CLI `--remote-control-session-name-prefix` imposta lo stesso valore per una singola invocazione |

430| `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` | Scadenza in millisecondi per il primo byte della risposta di una richiesta in streaming, sulle connessioni in cui è attiva la [scadenza del primo byte](/docs/it/network-config#streaming-idle-watchdogs). Per il modo in cui Claude Code la limita, il tempo aggiuntivo che aggiunge per i corpi di richiesta di grandi dimensioni e il modo in cui sceglie la scadenza quando non la imposti, consulta [Nessuna risposta dall'API](/docs/it/errors#no-response-from-api). Richiede Claude Code v2.1.242 o successivo |432| `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` | Scadenza in millisecondi per il primo byte della risposta di una richiesta in streaming, sulle connessioni in cui è attiva la [scadenza del primo byte](/docs/it/network-config#streaming-idle-watchdogs). Per il modo in cui Claude Code la limita, il tempo extra che aggiunge per i body di richiesta di grandi dimensioni e il modo in cui sceglie la scadenza quando non la imposti, consulta [No response from API](/docs/it/errors#no-response-from-api). Richiede Claude Code v2.1.242 o successivo |

431| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | Timeout in millisecondi prima che i watchdog di inattività dello streaming a livello di evento e di byte chiudano una connessione in stallo. Quando imposti esplicitamente questa variabile, il minimo è `300000` (5 minuti); i valori inferiori vengono limitati silenziosamente per assorbire le pause del ragionamento esteso e il buffering dei proxy, e il watchdog a livello di byte limita il valore a 30 minuti. `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` ha la precedenza su questa variabile per il watchdog a livello di byte. Per i valori predefiniti di ciascun watchdog in assenza di impostazione, consulta [Watchdog di inattività dello streaming](/docs/it/network-config#streaming-idle-watchdogs) |433| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | Timeout in millisecondi prima che i watchdog di inattività dello streaming a livello di evento e di byte chiudano una connessione in stallo. Quando imposti esplicitamente questa variabile, il minimo è `300000` (5 minuti); i valori inferiori vengono silenziosamente portati al minimo per assorbire le pause del ragionamento esteso e il buffering dei proxy, e il watchdog a livello di byte limita il valore a 30 minuti. `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` ha la precedenza su questa variabile per il watchdog a livello di byte. Per i valori predefiniti di ciascun watchdog quando la variabile non è impostata, consulta [Watchdog di inattività dello streaming](/docs/it/network-config#streaming-idle-watchdogs) |

432| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | Rimossa nella v2.1.260 e ora senza effetto. In precedenza limitava, in millisecondi, la durata di esecuzione di un [comando shell in background](/docs/it/interactive-mode#background-bash-commands) avviato da un [subagent](/docs/it/sub-agents), con un valore predefinito di 60 minuti. Consulta [le regole sulla durata dei comandi in background](/docs/it/tools-reference#background-commands) |434| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | Rimossa nella v2.1.260 e ora senza effetto. In precedenza limitava per quanto tempo, in millisecondi, poteva essere eseguito un [comando shell in background](/docs/it/interactive-mode#background-bash-commands) avviato da un [subagent](/docs/it/sub-agents), con un valore predefinito di 60 minuti. Consulta [le regole sulla durata dei comandi in background](/docs/it/tools-reference#background-commands) |

433| `DEBUG` | Imposta `1` per abilitare la modalità di debug, equivalente all'avvio con [`--debug`](/docs/it/cli-reference#cli-flags). I log di debug vengono scritti in `~/.claude/debug/<session-id>.txt`, oppure nel percorso impostato da `CLAUDE_CODE_DEBUG_LOGS_DIR`. Solo i valori veri `1`, `true`, `yes` e `on` abilitano la modalità di debug, quindi i pattern di namespace come `DEBUG=express:*` impostati per altri strumenti non la attivano |435| `DEBUG` | Imposta a `1` per attivare la modalità debug, equivalente all'avvio con [`--debug`](/docs/it/cli-reference#cli-flags). I log di debug vengono scritti in `~/.claude/debug/<session-id>.txt`, oppure nel percorso impostato da `CLAUDE_CODE_DEBUG_LOGS_DIR`. Solo i valori veri `1`, `true`, `yes` e `on` attivano la modalità debug, quindi i pattern di namespace come `DEBUG=express:*` impostati per altri strumenti non la attivano |

434| `DISABLE_AUTOUPDATER` | Imposta `1` per disabilitare gli aggiornamenti automatici in background. Il comando manuale `claude update` continua a funzionare. Usa `DISABLE_UPDATES` per bloccare entrambi |436| `DISABLE_AUTOUPDATER` | Imposta a `1` per disattivare gli aggiornamenti automatici in background. Il comando manuale `claude update` funziona comunque. Usa `DISABLE_UPDATES` per bloccare entrambi |

435| `DISABLE_AUTO_COMPACT` | Imposta `1` per disabilitare la compattazione automatica quando ci si avvicina al limite di contesto. Il comando manuale `/compact` rimane disponibile. Usala quando vuoi un controllo esplicito su quando avviene la compattazione. Sovrascrive l'impostazione [`autoCompactEnabled`](/docs/it/settings-reference#autocompactenabled) |437| `DISABLE_AUTO_COMPACT` | Imposta a `1` per disattivare la compattazione automatica quando ti avvicini al limite del contesto. Il comando manuale `/compact` resta disponibile. Usala quando vuoi un controllo esplicito su quando avviene la compattazione. Sovrascrive l'impostazione [`autoCompactEnabled`](/docs/it/settings-reference#autocompactenabled) |

436| `DISABLE_COMPACT` | Imposta `1` per disabilitare tutta la compattazione: sia la compattazione automatica sia il comando manuale `/compact` |438| `DISABLE_COMPACT` | Imposta a `1` per disattivare tutta la compattazione: sia la compattazione automatica sia il comando manuale `/compact` |

437| `DISABLE_COST_WARNINGS` | Imposta `1` per disabilitare i messaggi di avviso sui costi |439| `DISABLE_COST_WARNINGS` | Imposta a `1` per disattivare i messaggi di avviso sui costi |

438| `DISABLE_DOCTOR_COMMAND` | Imposta `1` per nascondere la skill di controllo della configurazione [`/doctor`](/docs/it/commands#all-commands) e il suo alias `/checkup`. Utile per le distribuzioni gestite in cui gli utenti non dovrebbero eseguire la diagnostica della configurazione da una sessione. Non influisce sul comando da terminale `claude doctor`. Prima della v2.1.205, questa variabile nascondeva il comando della schermata di diagnostica `/doctor` |440| `DISABLE_DOCTOR_COMMAND` | Imposta a `1` per nascondere la skill di controllo della configurazione [`/doctor`](/docs/it/commands#all-commands) e il suo alias `/checkup`. Utile per le distribuzioni gestite in cui gli utenti non devono eseguire la diagnostica della configurazione da una sessione. Non influisce sul comando da terminale `claude doctor`. Prima della v2.1.205, questa variabile nascondeva il comando della schermata di diagnostica `/doctor` |

439| `DISABLE_ERROR_REPORTING` | Imposta un qualsiasi valore non vuoto, come `1`, per disattivare la segnalazione degli errori. **Impostarla su `0` o `false` la disattiva comunque**, a differenza della maggior parte delle variabili on/off; rimuovi l'impostazione della variabile per riattivare la segnalazione degli errori |441| `DISABLE_ERROR_REPORTING` | Imposta a qualsiasi valore non vuoto, come `1`, per disattivare la segnalazione degli errori. **Impostarla a `0` o `false` la disattiva comunque**, a differenza della maggior parte delle variabili on/off; rimuovi la variabile per riattivare la segnalazione degli errori |

440| `DISABLE_EXTRA_USAGE_COMMAND` | Imposta `1` per nascondere il comando `/usage-credits` che consente agli utenti di acquistare utilizzo aggiuntivo oltre i rate limit |442| `DISABLE_EXTRA_USAGE_COMMAND` | Imposta a `1` per nascondere il comando `/usage-credits` che consente agli utenti di acquistare utilizzo aggiuntivo oltre i rate limit |

441| `DISABLE_FEEDBACK_COMMAND` | Imposta `1` per disabilitare il comando `/feedback` e il [feedback redatto da Claude](/docs/it/tools-reference#sendfeedback-tool-behavior). Disabilita anche `/bug` e `/share`, che inviano segnalazioni attraverso lo stesso percorso; prima della v2.1.212 erano alias di `/feedback`, quindi il comando veniva disabilitato con ogni nome. È accettato anche il nome precedente `DISABLE_BUG_COMMAND` |443| `DISABLE_FEEDBACK_COMMAND` | Imposta a `1` per disattivare il comando `/feedback` e il [feedback redatto da Claude](/docs/it/tools-reference#sendfeedback-tool-behavior). Disattiva anche `/bug` e `/share`, che inviano segnalazioni tramite lo stesso percorso; prima della v2.1.212 erano alias di `/feedback`, quindi il comando era disattivato con ogni nome. È accettato anche il vecchio nome `DISABLE_BUG_COMMAND` |

442| `DISABLE_GROWTHBOOK` | Imposta `1` o `true` per disabilitare il recupero dei feature flag di GrowthBook e usare i valori predefiniti del codice per ogni flag. Questo rende non disponibili [Remote Control](/docs/it/remote-control#requirements) e le altre [funzionalità che richiedono il recupero dei feature flag](#features-that-need-feature-flag-fetching). Impostarla su `0` o `false` lascia attivo il recupero. La registrazione degli eventi di telemetria rimane attiva a meno che non sia impostata anche `DISABLE_TELEMETRY` |444| `DISABLE_GROWTHBOOK` | Imposta a `1` o `true` per disattivare il recupero dei feature flag di GrowthBook e usare i valori predefiniti del codice per ogni flag. Questo rende non disponibili [Remote Control](/docs/it/remote-control#requirements) e le altre [funzionalità che richiedono il recupero dei feature flag](#features-that-need-feature-flag-fetching). Impostarla a `0` o `false` lascia attivo il recupero. Il logging degli eventi di telemetria rimane attivo a meno che non sia impostata anche `DISABLE_TELEMETRY` |

443| `DISABLE_INSTALLATION_CHECKS` | Imposta `1` per disabilitare gli avvisi di installazione. Usala solo quando gestisci manualmente la posizione di installazione, poiché può nascondere problemi con le installazioni standard |445| `DISABLE_INSTALLATION_CHECKS` | Imposta a `1` per disattivare gli avvisi di installazione. Usala solo quando gestisci manualmente il percorso di installazione, poiché può nascondere problemi nelle installazioni standard |

444| `DISABLE_INSTALL_GITHUB_APP_COMMAND` | Imposta `1` per nascondere il comando `/install-github-app`. Già nascosto quando si usano provider di terze parti (Amazon Bedrock, Agent Platform di Google Cloud o Microsoft Foundry) |446| `DISABLE_INSTALL_GITHUB_APP_COMMAND` | Imposta a `1` per nascondere il comando `/install-github-app`. È già nascosto quando usi provider di terze parti (Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry) |

445| `DISABLE_INTERLEAVED_THINKING` | Imposta `1` per impedire l'invio dell'header beta interleaved-thinking. Utile quando il tuo gateway LLM o provider non supporta il [ragionamento interleaved](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) |447| `DISABLE_INTERLEAVED_THINKING` | Imposta a `1` per impedire l'invio dell'header beta interleaved-thinking. Utile quando il tuo gateway LLM o provider non supporta il [ragionamento intercalato](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) |

446| `DISABLE_LOGIN_COMMAND` | Imposta `1` per nascondere il comando `/login`. Utile quando l'autenticazione è gestita esternamente tramite chiavi API o `apiKeyHelper` |448| `DISABLE_LOGIN_COMMAND` | Imposta a `1` per nascondere il comando `/login`. Utile quando l'autenticazione è gestita esternamente tramite chiavi API o `apiKeyHelper` |

447| `DISABLE_LOGOUT_COMMAND` | Imposta `1` per nascondere il comando `/logout` |449| `DISABLE_LOGOUT_COMMAND` | Imposta a `1` per nascondere il comando `/logout` |

448| `DISABLE_PROMPT_CACHING` | Imposta `1` per disabilitare il [prompt caching](/docs/it/prompt-caching#disable-prompt-caching) per tutti i modelli (ha la precedenza sulle impostazioni per singolo modello) |450| `DISABLE_PROMPT_CACHING` | Imposta a `1` per disattivare il [prompt caching](/docs/it/prompt-caching#disable-prompt-caching) per tutti i modelli (ha la precedenza sulle impostazioni per modello) |

449| `DISABLE_PROMPT_CACHING_FABLE` | Imposta `1` per disabilitare il prompt caching per i modelli Fable |451| `DISABLE_PROMPT_CACHING_FABLE` | Imposta a `1` per disattivare il prompt caching per i modelli Fable |

450| `DISABLE_PROMPT_CACHING_HAIKU` | Imposta `1` per disabilitare il prompt caching per il [modello Haiku predefinito](/docs/it/prompt-caching#disable-prompt-caching), ovunque venga eseguito |452| `DISABLE_PROMPT_CACHING_HAIKU` | Imposta a `1` per disattivare il prompt caching per il [modello Haiku predefinito](/docs/it/prompt-caching#disable-prompt-caching), ovunque venga eseguito |

451| `DISABLE_PROMPT_CACHING_OPUS` | Imposta `1` per disabilitare il prompt caching per il [modello Opus predefinito](/docs/it/prompt-caching#disable-prompt-caching) |453| `DISABLE_PROMPT_CACHING_OPUS` | Imposta a `1` per disattivare il prompt caching per il [modello Opus predefinito](/docs/it/prompt-caching#disable-prompt-caching) |

452| `DISABLE_PROMPT_CACHING_SONNET` | Imposta `1` per disabilitare il prompt caching per il [modello Sonnet predefinito](/docs/it/prompt-caching#disable-prompt-caching) |454| `DISABLE_PROMPT_CACHING_SONNET` | Imposta a `1` per disattivare il prompt caching per il [modello Sonnet predefinito](/docs/it/prompt-caching#disable-prompt-caching) |

453| `DISABLE_TELEMETRY` | Imposta un qualsiasi valore non vuoto, come `1`, per disattivare la telemetria. **Impostarla su `0` o `false` la disattiva comunque**, a differenza della maggior parte delle variabili on/off; rimuovi l'impostazione della variabile per riattivare la telemetria. Gli eventi di telemetria non includono dati utente come codice, percorsi di file o comandi Bash. Disabilita anche il [recupero dei feature flag](#features-that-need-feature-flag-fetching). Consulta [Disattivare la telemetria per la tua organizzazione](/docs/it/managed-settings#turn-telemetry-off-for-your-organization) |455| `DISABLE_TELEMETRY` | Imposta a qualsiasi valore non vuoto, come `1`, per disattivare la telemetria. **Impostarla a `0` o `false` la disattiva comunque**, a differenza della maggior parte delle variabili on/off; rimuovi la variabile per riattivare la telemetria. Gli eventi di telemetria non includono dati utente come codice, percorsi di file o comandi Bash. Disattiva anche il [recupero dei feature flag](#features-that-need-feature-flag-fetching). Consulta [Disattivare la telemetria per la tua organizzazione](/docs/it/managed-settings#turn-telemetry-off-for-your-organization) |

454| `DISABLE_UPDATES` | Imposta `1` per bloccare tutti gli aggiornamenti, inclusi i comandi manuali `claude update` e `claude install`. Più restrittiva di `DISABLE_AUTOUPDATER`. Usala quando distribuisci Claude Code attraverso i tuoi canali e gli utenti non devono aggiornarlo autonomamente |456| `DISABLE_UPDATES` | Imposta a `1` per bloccare tutti gli aggiornamenti, inclusi i comandi manuali `claude update` e `claude install`. Più restrittiva di `DISABLE_AUTOUPDATER`. Usala quando distribuisci Claude Code tramite i tuoi canali e gli utenti non devono aggiornarlo autonomamente |

455| `DISABLE_UPGRADE_COMMAND` | Imposta `1` per nascondere il comando `/upgrade` |457| `DISABLE_UPGRADE_COMMAND` | Imposta a `1` per nascondere il comando `/upgrade` |

456| `DO_NOT_TRACK` | Imposta `1` per disattivare la telemetria, con lo stesso effetto di `DISABLE_TELEMETRY`, incluso sul [recupero dei feature flag](#features-that-need-feature-flag-fetching). Claude Code legge questa variabile come un booleano standard, quindi `0` lascia attiva la telemetria, e la rispetta come la convenzione trasversale riconosciuta da molte CLI per sviluppatori |458| `DO_NOT_TRACK` | Imposta a `1` per disattivare la telemetria, con lo stesso effetto di `DISABLE_TELEMETRY`, anche sul [recupero dei feature flag](#features-that-need-feature-flag-fetching). Claude Code legge questa variabile come un booleano standard, quindi `0` lascia attiva la telemetria, e la rispetta come convenzione trasversale riconosciuta da molte CLI per sviluppatori |

457| `ENABLE_BETA_TRACING_DETAILED` | Imposta `1`, insieme a `BETA_TRACING_ENDPOINT`, per attivare il [tracing beta dettagliato](/docs/it/monitoring-usage#traces-beta), che aggiunge attributi di span con contenuto e lo span `claude_code.hook`. Le sessioni CLI interattive richiedono inoltre che la tua organizzazione sia inclusa nella lista di autorizzati per la beta. Entrambe le variabili vengono ignorate nelle [impostazioni di progetto e locali](/docs/it/settings-reference#variables-claude-code-ignores-in-env) |459| `ENABLE_BETA_TRACING_DETAILED` | Imposta a `1`, insieme a `BETA_TRACING_ENDPOINT`, per attivare il [tracing beta dettagliato](/docs/it/monitoring-usage#traces-beta), che aggiunge attributi di span contenenti contenuti e lo span `claude_code.hook`. Le sessioni CLI interattive richiedono inoltre che la tua organizzazione sia inclusa nella allowlist della beta. Entrambe le variabili vengono ignorate nelle [impostazioni di progetto e locali](/docs/it/settings-reference#variables-claude-code-ignores-in-env) |

458| `ENABLE_CLAUDEAI_MCP_SERVERS` | Imposta `false` per impedire a Claude Code di recuperare i [server MCP di claude.ai](/docs/it/mcp#use-mcp-servers-from-claude-ai). Abilitata per impostazione predefinita per gli utenti che hanno effettuato l'accesso. Per disabilitarla per progetto o per organizzazione, imposta invece [`disableClaudeAiConnectors`](/docs/it/settings-reference#disableclaudeaiconnectors) nelle impostazioni |460| `ENABLE_CLAUDEAI_MCP_SERVERS` | Imposta a `false` per impedire a Claude Code di recuperare i [server MCP di claude.ai](/docs/it/mcp#use-mcp-servers-from-claude-ai). Attiva per impostazione predefinita per gli utenti che hanno effettuato l'accesso. Per disattivarli per progetto o per organizzazione, imposta invece [`disableClaudeAiConnectors`](/docs/it/settings-reference#disableclaudeaiconnectors) nelle impostazioni |

459| `ENABLE_PROMPT_CACHING_1H` | Imposta `1` per richiedere un [TTL della cache dei prompt](/docs/it/prompt-caching#cache-lifetime) di 1 ora invece dei 5 minuti predefiniti. Pensata per gli utenti con chiave API, [Amazon Bedrock](/docs/it/amazon-bedrock), [Agent Platform di Google Cloud](/docs/it/google-vertex-ai), [Microsoft Foundry](/docs/it/microsoft-foundry) e [Claude Platform on AWS](/docs/it/claude-platform-on-aws). Gli utenti con abbonamento che rientrano nell'utilizzo incluso ricevono automaticamente il TTL di 1 ora sulla [conversazione principale](/docs/it/prompt-caching#which-ttl-each-request-gets). Gli utenti con abbonamento che attingono ai [crediti di utilizzo](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) possono impostarla per mantenere il TTL di 1 ora. Le scritture nella cache di 1 ora vengono fatturate a una tariffa più alta. Per scegliere invece il TTL per ogni categoria di richieste, usa `CLAUDE_CODE_PROMPT_CACHE_TTL` e `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, che hanno la precedenza su questa variabile |461| `ENABLE_PROMPT_CACHING_1H` | Imposta a `1` per richiedere un [TTL della prompt cache](/docs/it/prompt-caching#cache-lifetime) di 1 ora invece dei 5 minuti predefiniti. Pensata per gli utenti con chiave API, [Amazon Bedrock](/docs/it/amazon-bedrock), [Google Cloud's Agent Platform](/docs/it/google-vertex-ai), [Microsoft Foundry](/docs/it/microsoft-foundry) e [Claude Platform on AWS](/docs/it/claude-platform-on-aws). Gli utenti con abbonamento entro l'utilizzo incluso ricevono automaticamente il TTL di 1 ora sulla [conversazione principale](/docs/it/prompt-caching#which-ttl-each-request-gets). Gli utenti con abbonamento che attingono ai [crediti di utilizzo](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) possono impostarla per mantenere il TTL di 1 ora. Le scritture nella cache di 1 ora sono fatturate a una tariffa più alta. Per scegliere invece il TTL per gruppo di richieste, usa `CLAUDE_CODE_PROMPT_CACHE_TTL` e `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, che hanno la precedenza su questa variabile |

460| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Deprecata. Usa invece `ENABLE_PROMPT_CACHING_1H` |462| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Deprecata. Usa invece `ENABLE_PROMPT_CACHING_1H` |

461| `ENABLE_TOOL_SEARCH` | Controlla [MCP Tool Search](/docs/it/mcp#scale-with-mcp-tool-search). Se non è impostata, Claude Code rinvia tutti gli strumenti MCP per impostazione predefinita. Li carica comunque in anticipo sui modelli di Agent Platform di Google Cloud precedenti alla generazione Claude 4.5, su un deploy di Microsoft Foundry ospitato su Azure e quando `ANTHROPIC_BASE_URL` punta a un host non first-party. `true` rinvia sempre e invia l'header beta, tranne su quegli stessi modelli di Agent Platform e deploy di Microsoft Foundry; le richieste falliscono sui proxy che non supportano `tool_reference`. `auto` carica in anticipo quando le definizioni degli strumenti rientrano nel 10% del contesto. `auto:N` imposta una soglia personalizzata, come `auto:5` per il 5%. `false` carica tutti gli strumenti in anticipo. Un valore impostato da te viene ignorato quando è impostata `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`. Prima della v2.1.221, Claude Code disabilitava la ricerca degli strumenti per tutti i modelli su Agent Platform di Google Cloud a meno che non impostassi questa variabile su `true` |463| `ENABLE_TOOL_SEARCH` | Controlla la [MCP Tool Search](/docs/it/mcp#scale-with-mcp-tool-search). Se non è impostata, Claude Code rinvia il caricamento di tutti gli strumenti MCP per impostazione predefinita. Li carica comunque subito sui modelli di Google Cloud's Agent Platform precedenti alla generazione Claude 4.5, su un deploy di Microsoft Foundry ospitato su Azure e quando `ANTHROPIC_BASE_URL` punta a un host non first-party. `true` rinvia sempre il caricamento e invia l'header beta, tranne sugli stessi modelli di Agent Platform e deploy di Microsoft Foundry; le richieste falliscono sui proxy che non supportano `tool_reference`. `auto` carica subito gli strumenti quando le loro definizioni rientrano nel 10% del contesto. `auto:N` imposta una soglia personalizzata, come `auto:5` per il 5%. `false` carica subito tutti gli strumenti. Un valore impostato da te viene ignorato quando è impostata `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`. Prima della v2.1.221, Claude Code disattivava la ricerca degli strumenti per tutti i modelli su Google Cloud's Agent Platform a meno che non impostassi questa variabile a `true` |

462| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Imposta un qualsiasi valore non vuoto, come `1`, per fare in modo che Claude Code smetta di riprovare in caso di errori di sovraccarico ripetuti per ogni modello quando non è configurato alcun modello di fallback. **Impostarla su `0` o `false` abilita comunque questo comportamento**, a differenza della maggior parte delle variabili on/off; rimuovi l'impostazione della variabile per ripristinare il comportamento predefinito dei nuovi tentativi. Senza di essa, Claude Code smette di riprovare in questo modo sui modelli che riconosce come modelli Opus, Fable o Mythos quando ti autentichi con una chiave API o un [provider di terze parti](/docs/it/third-party-integrations) anziché con un abbonamento Claude. Su Claude Code v2.1.160 o successivo, Claude Code passa alla [catena di modelli di fallback](/docs/it/model-config#fallback-model-chains) configurata in caso di errori di sovraccarico ripetuti per qualsiasi modello principale, quindi questa variabile non influisce sul passaggio a un modello di fallback |464| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Imposta a qualsiasi valore non vuoto, come `1`, per fare in modo che Claude Code smetta di riprovare in caso di errori di sovraccarico ripetuti per ogni modello quando non è configurato alcun modello di fallback. **Impostarla a `0` o `false` attiva comunque questo comportamento**, a differenza della maggior parte delle variabili on/off; rimuovi la variabile per ripristinare il comportamento predefinito dei nuovi tentativi. Senza di essa, Claude Code smette di riprovare in questo modo sui modelli che riconosce come modelli Opus, Fable o Mythos quando ti autentichi con una chiave API o un [provider di terze parti](/docs/it/third-party-integrations) anziché con un abbonamento Claude. Su Claude Code v2.1.160 o successivo, Claude Code passa alla [catena di modelli di fallback](/docs/it/model-config#fallback-model-chains) che hai configurato in caso di errori di sovraccarico ripetuti per qualsiasi modello primario, quindi questa variabile non influisce sul passaggio a un modello di fallback |

463| `FORCE_AUTOUPDATE_PLUGINS` | Imposta `1` per forzare gli aggiornamenti automatici dei plugin anche quando l'aggiornamento automatico principale è disabilitato tramite `DISABLE_AUTOUPDATER` |465| `FORCE_AUTOUPDATE_PLUGINS` | Imposta a `1` per forzare gli aggiornamenti automatici dei plugin anche quando l'aggiornamento automatico principale è disattivato tramite `DISABLE_AUTOUPDATER` |

464| `FORCE_HYPERLINK` | Imposta `1` per abilitare i collegamenti ipertestuali OSC 8 cliccabili quando il tuo terminale li supporta ma non viene rilevato automaticamente, oppure `0` per disabilitarli. Quando non è impostata, Claude Code abilita i collegamenti ipertestuali solo quando rileva il supporto del terminale. Claude Code interpreta questo valore come un numero, non come un booleano, quindi un valore come `false`, `no` o `off` abilita i collegamenti ipertestuali anziché disabilitarli. Il [badge della PR o della merge request](/docs/it/interactive-mode#pr-review-status) nel piè di pagina viene visualizzato come collegamento ipertestuale anche quando Claude Code non riesce a rilevare il supporto del terminale, ad esempio tramite SSH. Imposta `0` per visualizzare il badge come testo semplice |466| `FORCE_HYPERLINK` | Imposta a `1` per attivare i collegamenti ipertestuali OSC 8 cliccabili quando il tuo terminale li supporta ma non viene rilevato automaticamente, oppure a `0` per disattivarli. Quando non è impostata, Claude Code attiva i collegamenti ipertestuali solo quando rileva il supporto del terminale. Claude Code interpreta questo valore come un numero, non come un booleano, quindi un valore come `false`, `no` o `off` attiva i collegamenti ipertestuali anziché disattivarli. Il [badge della PR o della merge request](/docs/it/interactive-mode#pr-review-status) nel footer viene visualizzato come collegamento ipertestuale anche quando Claude Code non riesce a rilevare il supporto del terminale, ad esempio tramite SSH. Imposta `0` per visualizzare il badge come testo semplice |

465| `FORCE_PROMPT_CACHING_5M` | Imposta `1` per forzare il TTL della cache dei prompt di 5 minuti anche quando altrimenti si applicherebbe il TTL di 1 ora. Sovrascrive `CLAUDE_CODE_PROMPT_CACHE_TTL`, `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, `ENABLE_PROMPT_CACHING_1H` e le impostazioni `promptCacheTtl` e `subagentPromptCacheTtl` |467| `FORCE_PROMPT_CACHING_5M` | Imposta a `1` per forzare il TTL della prompt cache di 5 minuti anche quando altrimenti si applicherebbe il TTL di 1 ora. Sovrascrive `CLAUDE_CODE_PROMPT_CACHE_TTL`, `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, `ENABLE_PROMPT_CACHING_1H` e le impostazioni `promptCacheTtl` e `subagentPromptCacheTtl` |

466| `HTTP_PROXY` | Specifica il server proxy HTTP per le connessioni di rete |468| `HTTP_PROXY` | Specifica il server proxy HTTP per le connessioni di rete |

467| `HTTPS_PROXY` | Specifica il server proxy HTTPS per le connessioni di rete |469| `HTTPS_PROXY` | Specifica il server proxy HTTPS per le connessioni di rete |

468| `IS_DEMO` | Imposta un qualsiasi valore non vuoto, come `1`, per abilitare la modalità demo: nasconde la tua email e il nome dell'organizzazione dall'intestazione e dall'output di `/status`, e salta l'onboarding. **Impostarla su `0` o `false` abilita comunque la modalità demo**, a differenza della maggior parte delle variabili on/off; rimuovi l'impostazione della variabile per disattivarla. Utile quando trasmetti in streaming o registri una sessione |470| `IS_DEMO` | Imposta a qualsiasi valore non vuoto, come `1`, per attivare la modalità demo: nasconde la tua email e il nome dell'organizzazione dall'intestazione e dall'output di `/status`, e salta l'onboarding. **Impostarla a `0` o `false` attiva comunque la modalità demo**, a differenza della maggior parte delle variabili on/off; rimuovi la variabile per disattivarla. Utile quando trasmetti in streaming o registri una sessione |

469| `MAX_MCP_OUTPUT_TOKENS` | Numero massimo di token consentiti nelle risposte degli strumenti MCP. Claude Code mostra un avviso quando l'output supera i 10.000 token. Gli strumenti che dichiarano [`anthropic/maxResultSizeChars`](/docs/it/mcp#raise-the-limit-for-a-specific-tool) usano invece quel limite di caratteri per il contenuto testuale, ma il contenuto immagine di tali strumenti è comunque soggetto a questa variabile (predefinito: 25000) |471| `MAX_MCP_OUTPUT_TOKENS` | Numero massimo di token consentiti nelle risposte degli strumenti MCP. Claude Code mostra un avviso quando l'output supera 10.000 token. Gli strumenti che dichiarano [`anthropic/maxResultSizeChars`](/docs/it/mcp#raise-the-limit-for-a-specific-tool) usano invece quel limite di caratteri per il contenuto testuale, ma il contenuto di tipo immagine di quegli strumenti è comunque soggetto a questa variabile (predefinito: 25000) |

470| `MAX_STRUCTURED_OUTPUT_RETRIES` | Numero di tentativi che Claude Code consente quando la risposta del modello non supera la convalida rispetto a [`--json-schema`](/docs/it/cli-reference#cli-flags) in modalità non interattiva con il flag `-p`; dopo altrettanti tentativi falliti senza output valido, l'esecuzione fallisce. Lo stesso limite si applica quando l'output strutturato di un subagent di un [workflow](/docs/it/workflows) non supera la convalida. Il valore predefinito è 5, un primo tentativo più quattro nuovi tentativi |472| `MAX_STRUCTURED_OUTPUT_RETRIES` | Numero di tentativi che Claude Code consente quando la risposta del modello non supera la convalida rispetto a [`--json-schema`](/docs/it/cli-reference#cli-flags) in modalità non interattiva con il flag `-p`; dopo quel numero di tentativi falliti senza output valido, l'esecuzione fallisce. Lo stesso limite si applica quando l'output strutturato di un subagent di un [workflow](/docs/it/workflows) non supera la convalida. Il valore predefinito è 5, un primo tentativo più quattro nuovi tentativi |

471| `MAX_THINKING_TOKENS` | Budget fisso di token per il [ragionamento esteso](https://platform.claude.com/docs/en/build-with-claude/extended-thinking). Claude Code lo limita a un token in meno rispetto ai token di output massimi della richiesta e mai al di sotto di 1.024. Consulta `CLAUDE_CODE_MAX_OUTPUT_TOKENS` per sapere come viene impostato quel limite. Quando non è impostata e il ragionamento è abilitato, i modelli con [ragionamento adattivo](/docs/it/model-config#adjust-effort-level) scelgono autonomamente la profondità del ragionamento, mentre gli altri modelli usano il limite. Imposta `0` per disabilitare il ragionamento sull'API Anthropic, tranne su Opus 5.5, Sonnet 5.5 e i modelli Fable, per i quali il ragionamento non può essere disattivato. Sui [provider di terze parti](/docs/it/third-party-integrations), `0` omette invece il parametro `thinking`. Con il ragionamento disattivato sull'API Anthropic, Claude Code invia lo sforzo `high` invece di un livello più alto ai modelli che sa [non accettare quella combinazione](/docs/it/errors#effort-isnt-available-with-thinking-turned-off), come Opus 5. Claude Code ignora i valori diversi da zero sui modelli con ragionamento adattivo, tranne sui modelli in cui `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` disattiva il ragionamento adattivo |473| `MAX_THINKING_TOKENS` | Budget fisso di token per il [ragionamento esteso](https://platform.claude.com/docs/en/build-with-claude/extended-thinking). Claude Code lo limita a un token in meno rispetto al numero massimo di token di output della richiesta e mai sotto 1.024. Consulta `CLAUDE_CODE_MAX_OUTPUT_TOKENS` per sapere come viene impostato quel limite. Quando non è impostata e il ragionamento è attivo, i modelli con [ragionamento adattivo](/docs/it/model-config#adjust-effort-level) scelgono la propria profondità di ragionamento, e gli altri modelli usano il limite. Imposta a `0` per disattivare il ragionamento sull'API Anthropic, tranne su Opus 5.5, Sonnet 5.5 e i modelli Fable, per i quali il ragionamento non può essere disattivato. Sui [provider di terze parti](/docs/it/third-party-integrations), `0` omette invece il parametro `thinking`. Con il ragionamento disattivato sull'API Anthropic, Claude Code invia effort `high` anziché un livello superiore ai modelli che sa [non accettare quella combinazione](/docs/it/errors#effort-isnt-available-with-thinking-turned-off), come Opus 5. Claude Code ignora i valori diversi da zero sui modelli con ragionamento adattivo, tranne sui modelli in cui `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` disattiva il ragionamento adattivo |

472| `MCP_CLIENT_SECRET` | Client secret OAuth per i server MCP che richiedono [credenziali preconfigurate](/docs/it/mcp#use-pre-configured-oauth-credentials). Evita la richiesta interattiva quando aggiungi un server con `--client-secret` |474| `MCP_CLIENT_SECRET` | Client secret OAuth per i server MCP che richiedono [credenziali preconfigurate](/docs/it/mcp#use-pre-configured-oauth-credentials). Evita la richiesta interattiva quando aggiungi un server con `--client-secret` |

473| `MCP_CONNECTION_NONBLOCKING` | Controlla se l'avvio attende la connessione dei server MCP prima della prima query. L'avvio MCP è non bloccante per impostazione predefinita: i server si connettono in background e i loro strumenti diventano disponibili man mano che completano la connessione. Imposta `0` per fare in modo che Claude Code attenda la connessione dei server prima della prima query. I server configurati con [`alwaysLoad: true`](/docs/it/mcp#exempt-a-server-from-deferral) fanno comunque attendere l'avvio, tranne quando vengono serviti dalla [cache di discovery](/docs/it/mcp#server-status-detail), poiché i loro strumenti devono essere presenti quando viene costruito il primo prompt. In modalità non interattiva (`-p`) senza `--input-format stream-json`, Claude Code attende inoltre i server ancora in sospeso prima del primo turno indipendentemente da questa variabile. Quando passi esplicitamente [`--mcp-config`](/docs/it/cli-reference#cli-flags), l'attesa ha una scadenza più lunga; consulta la voce di quel flag per l'eccezione relativa ai server nella cache |475| `MCP_CONNECTION_NONBLOCKING` | Controlla se l'avvio attende la connessione dei server MCP prima della prima query. L'avvio MCP è non bloccante per impostazione predefinita: i server si connettono in background e i loro strumenti diventano disponibili man mano che completano la connessione. Imposta a `0` per fare in modo che Claude Code attenda la connessione dei server prima della prima query. I server configurati con [`alwaysLoad: true`](/docs/it/mcp#exempt-a-server-from-deferral) fanno comunque attendere l'avvio, tranne quando vengono serviti dalla [cache di discovery](/docs/it/mcp#server-status-detail), poiché i loro strumenti devono essere presenti quando viene costruito il primo prompt. In modalità non interattiva (`-p`) senza `--input-format stream-json`, Claude Code attende inoltre i server ancora in sospeso prima del primo turno indipendentemente da questa variabile. Quando passi esplicitamente [`--mcp-config`](/docs/it/cli-reference#cli-flags), l'attesa ha una scadenza più lunga; consulta la voce di quel flag per l'eccezione relativa ai server in cache |

474| `MCP_CONNECT_TIMEOUT_MS` | Per quanto tempo, in millisecondi, l'avvio MCP bloccante attende il gruppo di connessioni prima di acquisire l'elenco degli strumenti (predefinito: 5000). Si applica quando `MCP_CONNECTION_NONBLOCKING=0` o per i server contrassegnati con [`alwaysLoad: true`](/docs/it/mcp#exempt-a-server-from-deferral). I server ancora in sospeso alla scadenza continuano a connettersi in background. Distinta da `MCP_TIMEOUT`, che limita il tentativo di connessione di un singolo server |476| `MCP_CONNECT_TIMEOUT_MS` | Per quanto tempo, in millisecondi, l'avvio MCP bloccante attende il batch di connessioni prima di acquisire uno snapshot dell'elenco degli strumenti (predefinito: 5000). Si applica quando `MCP_CONNECTION_NONBLOCKING=0` o per i server contrassegnati con [`alwaysLoad: true`](/docs/it/mcp#exempt-a-server-from-deferral). I server ancora in sospeso alla scadenza continuano a connettersi in background. Distinta da `MCP_TIMEOUT`, che limita il tentativo di connessione di un singolo server |

475| `MCP_DISCOVERY_CACHE` | Attiva o disattiva la [cache di discovery MCP](/docs/it/mcp#server-status-detail). Con la cache attiva, un server HTTP o SSE remoto che hai già usato può mostrare lo [stato `cached`](/docs/it/mcp#server-status-detail), e Claude Code lo connette alla sua prima chiamata a uno strumento anziché all'avvio. La cache è disattivata per impostazione predefinita, a meno che un rilascio graduale non l'abbia abilitata per il tuo account. Imposta `1` per attivarla, oppure `0` per mantenerla disattivata anche quando il rilascio l'ha abilitata. Prima della v2.1.238, la cache era attiva per impostazione predefinita. Lo stato `cached` richiede Claude Code v2.1.221 o successivo |477| `MCP_DISCOVERY_CACHE` | Attiva o disattiva la [cache di discovery MCP](/docs/it/mcp#server-status-detail). Con la cache attiva, un server HTTP o SSE remoto che hai già usato può mostrare lo [stato `cached`](/docs/it/mcp#server-status-detail), e Claude Code lo connette alla sua prima chiamata a uno strumento invece che all'avvio. La cache è disattivata per impostazione predefinita a meno che un rilascio graduale non l'abbia attivata per il tuo account. Imposta a `1` per attivarla, oppure a `0` per mantenerla disattivata anche quando il rilascio l'ha attivata. Prima della v2.1.238, la cache era attiva per impostazione predefinita. Lo stato `cached` richiede Claude Code v2.1.221 o successivo |

476| `MCP_DISCOVERY_CACHE_MAX_STALE_S` | Età massima, in secondi, di una voce della [cache di discovery](/docs/it/mcp#server-status-detail) (predefinito: 14400, ovvero 4 ore). A un avvio in cui la voce è più vecchia di tale valore, Claude Code la scarta e connette il server all'avvio, come fa con la cache disattivata. Claude Code limita il valore a 7 giorni. Prima della v2.1.238, il valore predefinito era 86400, ovvero 24 ore, e Claude Code non limitava il valore |478| `MCP_DISCOVERY_CACHE_MAX_STALE_S` | Età massima, in secondi, di una voce della [cache di discovery](/docs/it/mcp#server-status-detail) (predefinito: 14400, ovvero 4 ore). A un avvio in cui la voce è più vecchia di tale valore, Claude Code la scarta e connette il server all'avvio, come fa con la cache disattivata. Claude Code limita il valore a 7 giorni. Prima della v2.1.238, il valore predefinito era 86400, ovvero 24 ore, e Claude Code non limitava il valore |

477| `MCP_DISCOVERY_CACHE_STRIKES` | A un avvio in cui una voce della [cache di discovery](/docs/it/mcp#server-status-detail) è più vecchia di `MCP_DISCOVERY_CACHE_TTL_S`, Claude Code la aggiorna in background. Questa variabile imposta quanti aggiornamenti consecutivi possono fallire prima che Claude Code scarti la voce e connetta invece il server all'avvio successivo (predefinito: 1). Aumentala se la tua connessione di rete cade occasionalmente, in modo che un singolo aggiornamento fallito non scarti la voce. Richiede Claude Code v2.1.238 o successivo |479| `MCP_DISCOVERY_CACHE_STRIKES` | A un avvio in cui una voce della [cache di discovery](/docs/it/mcp#server-status-detail) è più vecchia di `MCP_DISCOVERY_CACHE_TTL_S`, Claude Code la aggiorna in background. Questa variabile imposta quanti aggiornamenti consecutivi possono fallire prima che Claude Code scarti la voce e connetta invece il server all'avvio successivo (predefinito: 1). Aumentala se la tua connessione di rete cade occasionalmente, in modo che un singolo aggiornamento fallito non scarti la voce. Richiede Claude Code v2.1.238 o successivo |

478| `MCP_DISCOVERY_CACHE_TTL_S` | Secondi per cui Claude Code usa una voce della [cache di discovery](/docs/it/mcp#server-status-detail) senza aggiornarla (predefinito: 900). A un avvio in cui la voce è più vecchia di tale valore, Claude Code la usa comunque ma la aggiorna in background. Quando la voce è più vecchia di `MCP_DISCOVERY_CACHE_MAX_STALE_S`, Claude Code la scarta. Claude Code limita il valore a `MCP_DISCOVERY_CACHE_MAX_STALE_S`, che per impostazione predefinita è 4 ore. Prima della v2.1.238, Claude Code non limitava il valore |480| `MCP_DISCOVERY_CACHE_TTL_S` | Secondi durante i quali Claude Code usa una voce della [cache di discovery](/docs/it/mcp#server-status-detail) senza aggiornarla (predefinito: 900). A un avvio in cui la voce è più vecchia di tale valore, Claude Code la usa comunque ma la aggiorna in background. Una volta che la voce è più vecchia di `MCP_DISCOVERY_CACHE_MAX_STALE_S`, Claude Code invece la scarta. Claude Code limita il valore a `MCP_DISCOVERY_CACHE_MAX_STALE_S`, che per impostazione predefinita è 4 ore. Prima della v2.1.238, Claude Code non limitava il valore |

479| `MCP_OAUTH_CALLBACK_PORT` | Porta fissa per il callback di reindirizzamento OAuth, come alternativa a `--callback-port` quando aggiungi un server MCP con [credenziali preconfigurate](/docs/it/mcp#use-pre-configured-oauth-credentials) |481| `MCP_OAUTH_CALLBACK_PORT` | Porta fissa per il callback di reindirizzamento OAuth, in alternativa a `--callback-port` quando aggiungi un server MCP con [credenziali preconfigurate](/docs/it/mcp#use-pre-configured-oauth-credentials) |

480| `MCP_PROTOCOL_NEGOTIATION` | Solo sul [runtime client MCP v2](/docs/it/mcp#mcp-client-runtimes), determina se Claude Code sonda i server per la revisione del protocollo MCP 2026-07-28. Imposta `auto` per sondare i server HTTP, i server dei connettori claude.ai e i server stdio; un server che non risponde al sondaggio si connette invece con il protocollo precedente, come fanno sempre i server SSE e WebSocket. Imposta `legacy` per saltare il sondaggio per ogni server. Senza la variabile, Claude Code sonda i server HTTP, e sonda anche i server dei connettori claude.ai nelle sessioni in cui [recupera i feature flag](#features-that-need-feature-flag-fetching). Qualsiasi altro valore viene ignorato con un avviso nel log di debug. Richiede Claude Code v2.1.221 o successivo |482| `MCP_PROTOCOL_NEGOTIATION` | Solo sul [runtime client MCP v2](/docs/it/mcp#mcp-client-runtimes), indica se Claude Code sonda i server per la revisione del protocollo MCP 2026-07-28. Imposta `auto` per sondare i server HTTP, i connettori claude.ai e i server stdio, oppure `legacy` per non sondarne nessuno. Con la variabile non impostata, Claude Code sonda i server descritti in [Runtime client MCP](/docs/it/mcp#mcp-client-runtimes). Qualsiasi altro valore viene ignorato con un avviso nel log di debug. Richiede Claude Code v2.1.221 o successiva |

481| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | Numero massimo di server MCP remoti (HTTP/SSE) da connettere in parallelo durante l'avvio (predefinito: 20) |483| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | Numero massimo di server MCP remoti (HTTP/SSE) da connettere in parallelo durante l'avvio (predefinito: 20) |

482| `MCP_SDK_GENERATION` | Fissa il [runtime client MCP](/docs/it/mcp#mcp-client-runtimes) con cui questo processo si connette ai server MCP: `v1`, basato su MCP TypeScript SDK 1.x, oppure `v2`, basato su [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/). Senza la variabile, Claude Code usa v2, a partire dalle versioni elencate in quella sezione. Su Claude Code v2.1.221 o successivo, il runtime v2 verifica l'emittente restituito da un server OAuth MCP nella sua risposta di autorizzazione e, quando non corrisponde, fa fallire l'accesso con un errore che inizia con `Issuer mismatch in authorization response`. Il runtime v1 non esegue questo controllo. Se imposti un valore non riconosciuto, Claude Code lo ignora e scrive un avviso nel log di debug. Claude Code legge il valore una volta per processo. Richiede Claude Code v2.1.218 o successivo |484| `MCP_SDK_GENERATION` | Fissa il [runtime client MCP](/docs/it/mcp#mcp-client-runtimes) con cui questo processo si connette ai server MCP: `v1`, basato su MCP TypeScript SDK 1.x, oppure `v2`, basato su [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/). Senza la variabile, Claude Code usa v2, a partire dalle versioni elencate in quella sezione. Su Claude Code v2.1.221 o successivo, il runtime v2 verifica l'issuer che un server OAuth MCP restituisce nella sua risposta di autorizzazione e, quando non corrisponde, fa fallire l'accesso con un errore che inizia con `Issuer mismatch in authorization response`. Il runtime v1 non esegue questo controllo. Se imposti un valore non riconosciuto, Claude Code lo ignora e scrive un avviso nel log di debug. Claude Code legge il valore una volta per processo. Richiede Claude Code v2.1.218 o successivo |

483| `MCP_SERVER_CONNECTION_BATCH_SIZE` | Numero massimo di server MCP locali (stdio) da connettere in parallelo durante l'avvio (predefinito: 3) |485| `MCP_SERVER_CONNECTION_BATCH_SIZE` | Numero massimo di server MCP locali (stdio) da connettere in parallelo durante l'avvio (predefinito: 3) |

484| `MCP_TIMEOUT` | Timeout in millisecondi per l'avvio dei server MCP (predefinito: 30000, ovvero 30 secondi) |486| `MCP_TIMEOUT` | Timeout in millisecondi per l'avvio del server MCP (predefinito: 30000, ovvero 30 secondi) |

485| `MCP_TOOL_TIMEOUT` | Timeout in millisecondi per l'esecuzione degli strumenti MCP (predefinito: 100000000, circa 28 ore). Per un server HTTP, SSE o connettore claude.ai, ogni richiesta va inoltre in timeout dopo 60 secondi per impostazione predefinita; imposta questa variabile, o il `timeout` per singolo server, a un valore superiore a 60000 per aumentare quel limite per richiesta. Un valore inferiore accorcia comunque il timeout complessivo di esecuzione dello strumento, ma lascia il limite per richiesta a 60 secondi. I server stdio e WebSocket non hanno un timer per richiesta. Un campo `timeout` per singolo server in `.mcp.json` sovrascrive questo valore per quel server. Un `timeout` per singolo server di almeno 1000 imposta anche la finestra minima di inattività per le chiamate agli strumenti di quel server, in modo che `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` non le interrompa mai prima; questo valore minimo richiede Claude Code v2.1.203 o successivo. Per la variabile d'ambiente, i valori inferiori a 1000 vengono arrotondati a un secondo; per il campo per singolo server, i valori inferiori a 1000 vengono ignorati |487| `MCP_TOOL_TIMEOUT` | Timeout in millisecondi per l'esecuzione degli strumenti MCP (predefinito: 100000000, circa 28 ore). Per un server HTTP, SSE o connettore di claude.ai, ogni richiesta va inoltre in timeout dopo 60 secondi per impostazione predefinita; imposta questa variabile, o il `timeout` per server, sopra 60000 per aumentare quel limite per richiesta. Un valore inferiore accorcia comunque il timeout complessivo di esecuzione dello strumento ma lascia il limite per richiesta a 60 secondi. I server stdio e WebSocket non hanno un timer per richiesta. Un campo `timeout` per server in `.mcp.json` sovrascrive questo valore per quel server. Un `timeout` per server di almeno 1000 imposta anche la finestra di inattività minima per le chiamate agli strumenti di quel server, quindi `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` non le interrompe mai prima; questo minimo richiede Claude Code v2.1.203 o successivo. Per la variabile di ambiente, i valori inferiori a 1000 vengono portati a un secondo; per il campo per server, i valori inferiori a 1000 vengono ignorati |

486| `NO_PROXY` | Elenco di domini e IP a cui le richieste verranno inviate direttamente, aggirando il proxy |488| `NO_PROXY` | Elenco di domini e IP verso cui le richieste verranno inviate direttamente, bypassando il proxy |

487| `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` | Limite standard dell'SDK OpenTelemetry sulla lunghezza dei valori degli attributi. Claude Code limita gli attributi di telemetria con contenuto al valore minore tra questo e `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH`, in modo che l'indicatore di troncamento rimanga entro il limite dell'SDK. Claude Code legge allo stesso modo le varianti `OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT` e `OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT`, e il valore impostato più piccolo si applica a tutti i segnali. Richiede Claude Code v2.1.214 o successivo. Consulta [Monitoraggio](/docs/it/monitoring-usage#common-configuration-variables) |489| `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` | Limite standard dell'SDK OpenTelemetry sulla lunghezza dei valori degli attributi. Claude Code limita gli attributi di telemetria contenenti contenuti al minore tra questo valore e `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH`, in modo che il marcatore di troncamento resti entro il limite dell'SDK. Claude Code legge allo stesso modo le varianti `OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT` e `OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT`, e il valore impostato più piccolo si applica a tutti i segnali. Richiede Claude Code v2.1.214 o successivo. Consulta [Monitoraggio](/docs/it/monitoring-usage#common-configuration-variables) |

488| `OTEL_LOG_ASSISTANT_RESPONSES` | Imposta `1` per includere il testo della risposta del modello negli eventi di log OpenTelemetry `assistant_response`. Quando non è impostata, Claude Code usa invece il valore di `OTEL_LOG_USER_PROMPTS`. Imposta `0` per mantenere le risposte oscurate anche quando `OTEL_LOG_USER_PROMPTS` è impostata. Impostala nella tua shell, nelle impostazioni utente o nelle impostazioni gestite. Ignorata nelle [impostazioni di progetto e locali](/docs/it/settings-reference#variables-claude-code-ignores-in-env). Richiede Claude Code v2.1.193 o successivo. Consulta [Monitoraggio](/docs/it/monitoring-usage#assistant-response-event) |490| `OTEL_LOG_ASSISTANT_RESPONSES` | Imposta a `1` per includere il testo della risposta del modello negli eventi di log OpenTelemetry `assistant_response`. Quando non è impostata, Claude Code usa invece il valore di `OTEL_LOG_USER_PROMPTS`. Imposta a `0` per mantenere le risposte oscurate anche quando `OTEL_LOG_USER_PROMPTS` è impostata. Impostala nella tua shell, nelle impostazioni utente o nelle impostazioni gestite. Ignorata nelle [impostazioni di progetto e locali](/docs/it/settings-reference#variables-claude-code-ignores-in-env). Richiede Claude Code v2.1.193 o successivo. Consulta [Monitoraggio](/docs/it/monitoring-usage#assistant-response-event) |

489| `OTEL_LOG_MANAGED_SETTINGS` | Imposta `1` per aggiungere le impostazioni gestite oscurate, e un digest SHA-256 delle impostazioni prima dell'oscuramento, agli eventi di log OpenTelemetry `managed_settings_resolved`. Disabilitata per impostazione predefinita. Impostala nella tua shell, nelle impostazioni utente o nelle impostazioni gestite; un valore nelle impostazioni di progetto o locali non la attiva. Richiede Claude Code v2.1.274 o successivo. Consulta [Monitoraggio](/docs/it/monitoring-usage#managed-settings-resolved-event) |491| `OTEL_LOG_MANAGED_SETTINGS` | Imposta a `1` per aggiungere le impostazioni gestite oscurate, e un digest SHA-256 delle impostazioni prima dell'oscuramento, agli eventi di log OpenTelemetry `managed_settings_resolved`. Disattivata per impostazione predefinita. Impostala nella tua shell, nelle impostazioni utente o nelle impostazioni gestite; un valore nelle impostazioni di progetto o locali non la attiva. Richiede Claude Code v2.1.274 o successivo. Consulta [Monitoraggio](/docs/it/monitoring-usage#managed-settings-resolved-event) |

490| `OTEL_LOG_RAW_API_BODIES` | Emette il JSON delle richieste e delle risposte della Messages API di Anthropic come eventi di log `api_request_body` / `api_response_body`. Imposta `1` per corpi inline troncati al limite del contenuto, oppure `file:<dir>` per scrivere su disco i corpi non troncati ed emettere invece un percorso `body_ref`. `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` configura il limite del contenuto, 60 KB per impostazione predefinita. Disabilitata per impostazione predefinita; i corpi includono l'intera cronologia della conversazione. Impostala nella tua shell, nelle impostazioni utente o nelle impostazioni gestite. Ignorata nelle [impostazioni di progetto e locali](/docs/it/settings-reference#variables-claude-code-ignores-in-env). Consulta [Monitoraggio](/docs/it/monitoring-usage#api-request-body-event) |492| `OTEL_LOG_RAW_API_BODIES` | Emette il JSON delle richieste e delle risposte dell'API Messages di Anthropic come eventi di log `api_request_body` / `api_response_body`. Imposta a `1` per i body inline troncati al limite di contenuto, oppure a `file:<dir>` per scrivere su disco i body non troncati ed emettere invece un percorso `body_ref`. `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` configura il limite di contenuto, 60 KB per impostazione predefinita. Disattivata per impostazione predefinita; i body includono l'intera cronologia della conversazione. Impostala nella tua shell, nelle impostazioni utente o nelle impostazioni gestite. Ignorata nelle [impostazioni di progetto e locali](/docs/it/settings-reference#variables-claude-code-ignores-in-env). Consulta [Monitoraggio](/docs/it/monitoring-usage#api-request-body-event) |

491| `OTEL_LOG_TOOL_CONTENT` | Imposta `1` per includere il contenuto degli strumenti nell'evento di span OpenTelemetry `tool.output`. Gli attributi di span riportano il contenuto degli strumenti secondo [i propri vincoli](/docs/it/monitoring-usage#new-context-gates). Richiede il [tracing](/docs/it/monitoring-usage#traces-beta). Disabilitata per impostazione predefinita per proteggere i dati sensibili. Impostala nella tua shell, nelle impostazioni utente o nelle impostazioni gestite. Ignorata nelle [impostazioni di progetto e locali](/docs/it/settings-reference#variables-claude-code-ignores-in-env), fatta eccezione per i valori di disattivazione descritti in quella sezione. Consulta [Monitoraggio](/docs/it/monitoring-usage#tool-output-span-event) |493| `OTEL_LOG_TOOL_CONTENT` | Imposta a `1` per includere il contenuto degli strumenti nell'evento span OpenTelemetry `tool.output`. Gli attributi degli span trasportano il contenuto degli strumenti in base ai [propri controlli](/docs/it/monitoring-usage#new-context-gates). Richiede il [tracing](/docs/it/monitoring-usage#traces-beta). Disattivata per impostazione predefinita per proteggere i dati sensibili. Impostala nella tua shell, nelle impostazioni utente o nelle impostazioni gestite. Ignorata nelle [impostazioni di progetto e locali](/docs/it/settings-reference#variables-claude-code-ignores-in-env), fatta eccezione per i valori di disattivazione descritti in quella sezione. Consulta [Monitoraggio](/docs/it/monitoring-usage#tool-output-span-event) |

492| `OTEL_LOG_TOOL_DETAILS` | Imposta `1` per includere gli argomenti di input degli strumenti; i nomi dei server MCP; i nomi dei workflow creati dagli utenti; le stringhe di errore grezze in caso di errori degli strumenti; la `category` del rifiuto negli eventi `api_refusal`; i nomi reali di agenti, skill, plugin e server MCP nelle [metriche di costo e token](/docs/it/monitoring-usage#cost-counter); e altri dettagli degli strumenti nelle metriche, nelle tracce e nei log di OpenTelemetry. Disabilitata per impostazione predefinita per proteggere le PII. Impostala nella tua shell, nelle impostazioni utente o nelle impostazioni gestite. Ignorata nelle [impostazioni di progetto e locali](/docs/it/settings-reference#variables-claude-code-ignores-in-env), fatta eccezione per i valori di disattivazione descritti in quella sezione. Consulta [Monitoraggio](/docs/it/monitoring-usage) |494| `OTEL_LOG_TOOL_DETAILS` | Imposta a `1` per includere gli argomenti di input degli strumenti; i nomi dei server MCP; i nomi dei workflow creati dagli utenti; le stringhe di errore grezze in caso di errori degli strumenti; la `category` del rifiuto negli eventi `api_refusal`; i nomi reali di agenti, skill, plugin e server MCP nelle [metriche di costo e token](/docs/it/monitoring-usage#cost-counter); e altri dettagli degli strumenti nelle metriche, nelle tracce e nei log di OpenTelemetry. Disattivata per impostazione predefinita per proteggere le PII. Impostala nella tua shell, nelle impostazioni utente o nelle impostazioni gestite. Ignorata nelle [impostazioni di progetto e locali](/docs/it/settings-reference#variables-claude-code-ignores-in-env), fatta eccezione per i valori di disattivazione descritti in quella sezione. Consulta [Monitoraggio](/docs/it/monitoring-usage) |

493| `OTEL_LOG_USER_PROMPTS` | Imposta `1` per includere il testo dei prompt dell'utente nelle tracce e nei log di OpenTelemetry. Disabilitata per impostazione predefinita (i prompt vengono oscurati). Impostala nella tua shell, nelle impostazioni utente o nelle impostazioni gestite. Ignorata nelle [impostazioni di progetto e locali](/docs/it/settings-reference#variables-claude-code-ignores-in-env), fatta eccezione per i valori di disattivazione descritti in quella sezione. Consulta [Monitoraggio](/docs/it/monitoring-usage) |495| `OTEL_LOG_USER_PROMPTS` | Imposta a `1` per includere il testo dei prompt dell'utente nelle tracce e nei log di OpenTelemetry. Disattivata per impostazione predefinita (i prompt vengono oscurati). Impostala nella tua shell, nelle impostazioni utente o nelle impostazioni gestite. Ignorata nelle [impostazioni di progetto e locali](/docs/it/settings-reference#variables-claude-code-ignores-in-env), fatta eccezione per i valori di disattivazione descritti in quella sezione. Consulta [Monitoraggio](/docs/it/monitoring-usage) |

494| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Imposta `false` per escludere l'UUID dell'account dagli attributi delle metriche (predefinito: incluso). Consulta [Monitoraggio](/docs/it/monitoring-usage) |496| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Imposta a `false` per escludere l'UUID dell'account dagli attributi delle metriche (predefinito: incluso). Consulta [Monitoraggio](/docs/it/monitoring-usage) |

495| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Imposta `true` per includere l'entrypoint della sessione negli attributi delle metriche (predefinito: escluso). Aggiunta nella v2.1.152. Consulta [Monitoraggio](/docs/it/monitoring-usage) |497| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Imposta a `true` per includere l'entrypoint della sessione negli attributi delle metriche (predefinito: escluso). Aggiunta nella v2.1.152. Consulta [Monitoraggio](/docs/it/monitoring-usage) |

496| `OTEL_METRICS_INCLUDE_REPOSITORY` | Imposta `true` per contrassegnare le metriche e gli eventi OpenTelemetry con attributi `vcs.*` che identificano il repository della sessione (predefinito: escluso). Richiede Claude Code v2.1.269 o successivo. Consulta [Attributi del repository](/docs/it/monitoring-usage#repository-attributes) |498| `OTEL_METRICS_INCLUDE_REPOSITORY` | Imposta a `true` per contrassegnare le metriche e gli eventi OpenTelemetry con attributi `vcs.*` che identificano il repository della sessione (predefinito: escluso). Richiede Claude Code v2.1.269 o successivo. Consulta [Attributi del repository](/docs/it/monitoring-usage#repository-attributes) |

497| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | A partire dalla v2.1.161, Claude Code associa le chiavi di `OTEL_RESOURCE_ATTRIBUTES` alle etichette dei datapoint delle metriche. Imposta `false` per escluderle (predefinito: incluse). Consulta [Monitoraggio](/docs/it/monitoring-usage#multi-team-organization-support) |499| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | A partire dalla v2.1.161, Claude Code associa le chiavi di `OTEL_RESOURCE_ATTRIBUTES` alle etichette dei datapoint delle metriche. Imposta a `false` per escluderle (predefinito: incluse). Consulta [Monitoraggio](/docs/it/monitoring-usage#multi-team-organization-support) |

498| `OTEL_METRICS_INCLUDE_SESSION_ID` | Imposta `false` per escludere l'ID della sessione dagli attributi delle metriche (predefinito: incluso). Consulta [Monitoraggio](/docs/it/monitoring-usage) |500| `OTEL_METRICS_INCLUDE_SESSION_ID` | Imposta a `false` per escludere l'ID della sessione dagli attributi delle metriche (predefinito: incluso). Consulta [Monitoraggio](/docs/it/monitoring-usage) |

499| `OTEL_METRICS_INCLUDE_VERSION` | Imposta `true` per includere la versione di Claude Code negli attributi delle metriche (predefinito: esclusa). Consulta [Monitoraggio](/docs/it/monitoring-usage) |501| `OTEL_METRICS_INCLUDE_VERSION` | Imposta a `true` per includere la versione di Claude Code negli attributi delle metriche (predefinito: escluso). Consulta [Monitoraggio](/docs/it/monitoring-usage) |

500| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | Sovrascrive il budget di caratteri per i metadati delle skill mostrati allo [strumento Skill](/docs/it/skills#control-who-invokes-a-skill). Il budget si adatta dinamicamente all'1% della finestra di contesto, con un fallback di 8.000 caratteri. Nome legacy mantenuto per compatibilità con le versioni precedenti |502| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | Sovrascrive il budget di caratteri per i metadati delle skill mostrati allo [strumento Skill](/docs/it/skills#control-who-invokes-a-skill). Il budget si adatta dinamicamente all'1% della finestra di contesto, con un fallback di 8.000 caratteri. Nome legacy mantenuto per compatibilità con le versioni precedenti |

501| `TASK_MAX_OUTPUT_LENGTH` | Rimossa nella v2.1.277 e ora senza effetto, insieme allo strumento `TaskOutput` di cui definiva la dimensione. In precedenza impostava il numero massimo di caratteri dell'output di un'[attività in background](/docs/it/tools-reference#background-commands) che lo strumento `TaskOutput` conservava. Claude legge invece il file di output di un'attività in background con `Read` |503| `TASK_MAX_OUTPUT_LENGTH` | Rimossa nella v2.1.277 e ora senza effetto, insieme allo strumento `TaskOutput` di cui determinava la dimensione. In precedenza impostava il numero massimo di caratteri dell'output di un'[attività in background](/docs/it/tools-reference#background-commands) che lo strumento `TaskOutput` conservava. Claude legge invece il file di output di un'attività in background con `Read` |

502| `USE_BUILTIN_RIPGREP` | Imposta `0` per usare `rg` installato nel sistema invece di `rg` incluso in Claude Code |504| `USE_BUILTIN_RIPGREP` | Imposta a `0` per usare `rg` installato nel sistema invece di `rg` incluso con Claude Code |

503| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | Sovrascrive la regione per Claude 3.5 Haiku quando usi Agent Platform di Google Cloud |505| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | Sovrascrive la regione per Claude 3.5 Haiku quando usi Google Cloud's Agent Platform |

504| `VERTEX_REGION_CLAUDE_3_5_SONNET` | Sovrascrive la regione per Claude 3.5 Sonnet quando usi Agent Platform di Google Cloud |506| `VERTEX_REGION_CLAUDE_3_5_SONNET` | Sovrascrive la regione per Claude 3.5 Sonnet quando usi Google Cloud's Agent Platform |

505| `VERTEX_REGION_CLAUDE_3_7_SONNET` | Sovrascrive la regione per Claude 3.7 Sonnet quando usi Agent Platform di Google Cloud |507| `VERTEX_REGION_CLAUDE_3_7_SONNET` | Sovrascrive la regione per Claude 3.7 Sonnet quando usi Google Cloud's Agent Platform |

506| `VERTEX_REGION_CLAUDE_4_0_OPUS` | Sovrascrive la regione per Claude 4.0 Opus quando usi Agent Platform di Google Cloud |508| `VERTEX_REGION_CLAUDE_4_0_OPUS` | Sovrascrive la regione per Claude 4.0 Opus quando usi Google Cloud's Agent Platform |

507| `VERTEX_REGION_CLAUDE_4_0_SONNET` | Sovrascrive la regione per Claude 4.0 Sonnet quando usi Agent Platform di Google Cloud |509| `VERTEX_REGION_CLAUDE_4_0_SONNET` | Sovrascrive la regione per Claude 4.0 Sonnet quando usi Google Cloud's Agent Platform |

508| `VERTEX_REGION_CLAUDE_4_1_OPUS` | Sovrascrive la regione per Claude 4.1 Opus quando usi Agent Platform di Google Cloud |510| `VERTEX_REGION_CLAUDE_4_1_OPUS` | Sovrascrive la regione per Claude 4.1 Opus quando usi Google Cloud's Agent Platform |

509| `VERTEX_REGION_CLAUDE_4_5_OPUS` | Sovrascrive la regione per Claude Opus 4.5 quando usi Agent Platform di Google Cloud |511| `VERTEX_REGION_CLAUDE_4_5_OPUS` | Sovrascrive la regione per Claude Opus 4.5 quando usi Google Cloud's Agent Platform |

510| `VERTEX_REGION_CLAUDE_4_5_SONNET` | Sovrascrive la regione per Claude Sonnet 4.5 quando usi Agent Platform di Google Cloud |512| `VERTEX_REGION_CLAUDE_4_5_SONNET` | Sovrascrive la regione per Claude Sonnet 4.5 quando usi Google Cloud's Agent Platform |

511| `VERTEX_REGION_CLAUDE_4_6_OPUS` | Sovrascrive la regione per Claude Opus 4.6 quando usi Agent Platform di Google Cloud |513| `VERTEX_REGION_CLAUDE_4_6_OPUS` | Sovrascrive la regione per Claude Opus 4.6 quando usi Google Cloud's Agent Platform |

512| `VERTEX_REGION_CLAUDE_4_6_SONNET` | Sovrascrive la regione per Claude Sonnet 4.6 quando usi Agent Platform di Google Cloud |514| `VERTEX_REGION_CLAUDE_4_6_SONNET` | Sovrascrive la regione per Claude Sonnet 4.6 quando usi Google Cloud's Agent Platform |

513| `VERTEX_REGION_CLAUDE_4_7_OPUS` | Sovrascrive la regione per Claude Opus 4.7 quando usi Agent Platform di Google Cloud |515| `VERTEX_REGION_CLAUDE_4_7_OPUS` | Sovrascrive la regione per Claude Opus 4.7 quando usi Google Cloud's Agent Platform |

514| `VERTEX_REGION_CLAUDE_4_8_OPUS` | Sovrascrive la regione per Claude Opus 4.8 quando usi Agent Platform di Google Cloud |516| `VERTEX_REGION_CLAUDE_4_8_OPUS` | Sovrascrive la regione per Claude Opus 4.8 quando usi Google Cloud's Agent Platform |

515| `VERTEX_REGION_CLAUDE_5_5_OPUS` | Sovrascrive la regione per Claude Opus 5.5 quando usi Agent Platform di Google Cloud. Aggiunta nella v2.1.280 |517| `VERTEX_REGION_CLAUDE_5_5_OPUS` | Sovrascrive la regione per Claude Opus 5.5 quando usi Google Cloud's Agent Platform. Aggiunta nella v2.1.280 |

516| `VERTEX_REGION_CLAUDE_5_5_SONNET` | Sovrascrive la regione per Claude Sonnet 5.5 quando usi Agent Platform di Google Cloud. Aggiunta nella v2.1.284 |518| `VERTEX_REGION_CLAUDE_5_5_SONNET` | Sovrascrive la regione per Claude Sonnet 5.5 quando usi Google Cloud's Agent Platform. Aggiunta nella v2.1.284 |

517| `VERTEX_REGION_CLAUDE_5_OPUS` | Sovrascrive la regione per Claude Opus 5 quando usi Agent Platform di Google Cloud. Aggiunta nella v2.1.219 |519| `VERTEX_REGION_CLAUDE_5_OPUS` | Sovrascrive la regione per Claude Opus 5 quando usi Google Cloud's Agent Platform. Aggiunta nella v2.1.219 |

518| `VERTEX_REGION_CLAUDE_5_SONNET` | Sovrascrive la regione per Claude Sonnet 5 quando usi Agent Platform di Google Cloud. Aggiunta nella v2.1.197 |520| `VERTEX_REGION_CLAUDE_5_SONNET` | Sovrascrive la regione per Claude Sonnet 5 quando usi Google Cloud's Agent Platform. Aggiunta nella v2.1.197 |

519| `VERTEX_REGION_CLAUDE_FABLE_5` | Sovrascrive la regione per Claude Fable 5 quando usi Agent Platform di Google Cloud. Aggiunta nella v2.1.170 |521| `VERTEX_REGION_CLAUDE_FABLE_5` | Sovrascrive la regione per Claude Fable 5 quando usi Google Cloud's Agent Platform. Aggiunta nella v2.1.170 |

520| `VERTEX_REGION_CLAUDE_FABLE_5_1` | Sovrascrive la regione per Claude Fable 5.1 quando usi Agent Platform di Google Cloud. Aggiunta nella v2.1.257 |522| `VERTEX_REGION_CLAUDE_FABLE_5_1` | Sovrascrive la regione per Claude Fable 5.1 quando usi Google Cloud's Agent Platform. Aggiunta nella v2.1.257 |

521| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Sovrascrive la regione per Claude Haiku 4.5 quando usi Agent Platform di Google Cloud |523| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Sovrascrive la regione per Claude Haiku 4.5 quando usi Google Cloud's Agent Platform |

522 524 

523Sono supportate anche le variabili standard degli exporter OpenTelemetry (`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES` e le varianti specifiche per segnale). Consulta [Monitoraggio](/docs/it/monitoring-usage) per i dettagli di configurazione.525Sono supportate anche le variabili standard dell'exporter OpenTelemetry (`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES` e le varianti specifiche per segnale). Consulta [Monitoraggio](/docs/it/monitoring-usage) per i dettagli di configurazione.

524 526 

525Imposta `CLAUDE_CODE_ENABLE_TELEMETRY` e le variabili OpenTelemetry che attivano l'esportazione, ne scelgono la destinazione o acquisiscono contenuti nella tua shell, nelle impostazioni utente o nelle impostazioni gestite. Claude Code [le ignora nelle impostazioni di progetto e locali](/docs/it/settings-reference#variables-claude-code-ignores-in-env), fatta eccezione per i valori di disattivazione descritti in quella sezione. `OTEL_RESOURCE_ATTRIBUTES` e le variabili relative a intervallo di esportazione, timeout e compressione, come `OTEL_METRIC_EXPORT_INTERVAL`, si applicano comunque dalle impostazioni di progetto e locali.527Imposta `CLAUDE_CODE_ENABLE_TELEMETRY` e le variabili OpenTelemetry che attivano l'esportazione, ne scelgono la destinazione o acquisiscono contenuti nella tua shell, nelle impostazioni utente o nelle impostazioni gestite. Claude Code [le ignora nelle impostazioni di progetto e locali](/docs/it/settings-reference#variables-claude-code-ignores-in-env), fatta eccezione per i valori di disattivazione descritti in quella sezione. `OTEL_RESOURCE_ATTRIBUTES` e le variabili di intervallo, timeout e compressione dell'esportazione, come `OTEL_METRIC_EXPORT_INTERVAL`, si applicano comunque dalle impostazioni di progetto e locali.

526 528 

527<h2 id="features-that-need-feature-flag-fetching">529<h2 id="features-that-need-feature-flag-fetching">

528 Funzionalità che richiedono il recupero dei feature flag530 Funzionalità che richiedono il recupero dei feature flag


545* Utilizzare [lo strumento advisor](/docs/it/advisor#requirements)547* Utilizzare [lo strumento advisor](/docs/it/advisor#requirements)

546* Leggere o rispondere ai [commenti su un artefatto](/docs/it/artifacts#collect-comments-on-an-artifact)548* Leggere o rispondere ai [commenti su un artefatto](/docs/it/artifacts#collect-comments-on-an-artifact)

547* Far leggere a Claude [l'artefatto pubblico di un'altra organizzazione](/docs/it/artifacts#read-an-artifact-shared-with-you)549* Far leggere a Claude [l'artefatto pubblico di un'altra organizzazione](/docs/it/artifacts#read-an-artifact-shared-with-you)

548* Avere Claude Code sondare i server del connettore claude.ai per [la revisione del protocollo MCP 2026-07-28](/docs/it/mcp#mcp-client-runtimes) a meno che non impostiate `MCP_PROTOCOL_NEGOTIATION=auto`550* Far sondare a Claude Code i server dei connettori claude.ai o i server stdio per [la revisione del protocollo MCP 2026-07-28](/docs/it/mcp#mcp-client-runtimes) a meno che non imposti `MCP_PROTOCOL_NEGOTIATION=auto`

549* Ottenere lo [strumento PowerShell](/docs/it/tools-reference#powershell-tool) per impostazione predefinita per gli account claude.ai e Console su Windows con Git Bash installato; Claude Code instrada i comandi della shell attraverso Git Bash a meno che non impostiate `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`. Su Windows senza Git Bash, lo strumento rimane attivo551* Ottenere lo [strumento PowerShell](/docs/it/tools-reference#powershell-tool) per impostazione predefinita per gli account claude.ai e Console su Windows con Git Bash installato; Claude Code instrada i comandi della shell attraverso Git Bash a meno che non impostiate `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`. Su Windows senza Git Bash, lo strumento rimane attivo

550* Ottenere il [feedback elaborato da Claude](/docs/it/tools-reference#sendfeedback-tool-behavior), che Claude Code attiva tramite un flag recuperato552* Ottenere il [feedback elaborato da Claude](/docs/it/tools-reference#sendfeedback-tool-behavior), che Claude Code attiva tramite un flag recuperato

551* Far [trattare a Claude i grandi incollamenti come testo incollato piuttosto che digitato](/docs/it/terminal-config#how-claude-treats-pasted-text); il contenuto dietro un segnaposto `[Pasted text #N]` raggiunge Claude senza marcatura553* Far [trattare a Claude i grandi incollamenti come testo incollato piuttosto che digitato](/docs/it/terminal-config#how-claude-treats-pasted-text); il contenuto dietro un segnaposto `[Pasted text #N]` raggiunge Claude senza marcatura

errors.md +193 −173

Details

187| `<model>'s safeguards flagged this message` | [Errori di richiesta](#safety-measures-flagged-a-cybersecurity-topic) |187| `<model>'s safeguards flagged this message` | [Errori di richiesta](#safety-measures-flagged-a-cybersecurity-topic) |

188| `<model>'s safeguards flagged this session` | [Errori di richiesta](#safety-measures-flagged-a-cybersecurity-topic) |188| `<model>'s safeguards flagged this session` | [Errori di richiesta](#safety-measures-flagged-a-cybersecurity-topic) |

189| `<model> has safety measures that flagged this message for a cybersecurity topic` | [Errori di richiesta](#safety-measures-flagged-a-cybersecurity-topic) |189| `<model> has safety measures that flagged this message for a cybersecurity topic` | [Errori di richiesta](#safety-measures-flagged-a-cybersecurity-topic) |

190| `API Error: Output blocked by content filtering policy` | [Errori di richiesta](#output-blocked-by-content-filtering-policy) |

190| `Installation was killed before it could finish (exit code 137)` | [Errori di installazione](#installation-was-killed-before-it-could-finish) |191| `Installation was killed before it could finish (exit code 137)` | [Errori di installazione](#installation-was-killed-before-it-could-finish) |

191| `The connection dropped while downloading the update` | [Errori di installazione](#the-connection-dropped-while-downloading-the-update) |192| `The connection dropped while downloading the update` | [Errori di installazione](#the-connection-dropped-while-downloading-the-update) |

192| `Download timed out: exceeded the total deadline` | [Errori di installazione](#the-connection-dropped-while-downloading-the-update) |193| `Download timed out: exceeded the total deadline` | [Errori di installazione](#the-connection-dropped-while-downloading-the-update) |


402* Una [Amazon Bedrock streaming response with an unexpected content-type](#bedrock-streaming-response-has-an-unexpected-content-type), perché il gateway o il proxy che riscrive la risposta riscriverebbero il tentativo allo stesso modo. Richiede Claude Code v2.1.208 o successivo.403* Una [Amazon Bedrock streaming response with an unexpected content-type](#bedrock-streaming-response-has-an-unexpected-content-type), perché il gateway o il proxy che riscrive la risposta riscriverebbero il tentativo allo stesso modo. Richiede Claude Code v2.1.208 o successivo.

403* Un tentativo non in streaming di una richiesta in streaming non riuscita che ottiene uno stato di successo ma [no Claude API message in the body](#api-returned-an-empty-or-malformed-response). Claude Code termina il turno con quell'errore.404* Un tentativo non in streaming di una richiesta in streaming non riuscita che ottiene uno stato di successo ma [no Claude API message in the body](#api-returned-an-empty-or-malformed-response). Claude Code termina il turno con quell'errore.

404* Una richiesta che il controllo della politica della tua organizzazione ha negato, che emerge come una riga `API Error:` che porta il messaggio di negazione. Gli amministratori della tua organizzazione hanno configurato il controllo con [Inference hooks](https://platform.claude.com/docs/en/manage-claude/inference-hooks), una funzione Claude Enterprise, e il messaggio termina con le istruzioni che hanno configurato, o per impostazione predefinita ti dice di contattarli. Claude Code non invia nuovamente la richiesta negata allo stesso modello o a un [fallback model](/docs/it/model-config#fallback-model-chains), perché il diniego riguarda il contenuto della richiesta piuttosto che il modello. Prima della v2.1.239, Claude Code poteva inviare nuovamente una richiesta negata, senza streaming o su un fallback model configurato, prima di mostrarti il diniego.405* Una richiesta che il controllo della politica della tua organizzazione ha negato, che emerge come una riga `API Error:` che porta il messaggio di negazione. Gli amministratori della tua organizzazione hanno configurato il controllo con [Inference hooks](https://platform.claude.com/docs/en/manage-claude/inference-hooks), una funzione Claude Enterprise, e il messaggio termina con le istruzioni che hanno configurato, o per impostazione predefinita ti dice di contattarli. Claude Code non invia nuovamente la richiesta negata allo stesso modello o a un [fallback model](/docs/it/model-config#fallback-model-chains), perché il diniego riguarda il contenuto della richiesta piuttosto che il modello. Prima della v2.1.239, Claude Code poteva inviare nuovamente una richiesta negata, senza streaming o su un fallback model configurato, prima di mostrarti il diniego.

406* Una risposta bloccata dal filtro dei contenuti di output dell'API. Claude Code mostra subito [Output blocked by content filtering policy](#output-blocked-by-content-filtering-policy) e non ritenta né invia nuovamente quella richiesta.

405 407 

406<h3 id="what-you-see-while-claude-code-retries-or-waits">408<h3 id="what-you-see-while-claude-code-retries-or-waits">

407 Cosa vedi mentre Claude Code ritenta o attende409 Cosa vedi mentre Claude Code ritenta o attende


432| [`CLAUDE_CODE_MAX_RETRIES`](/docs/it/env-vars) | 10 | Numero di tentativi di riprovazione. Limitato a 15 a partire dalla v2.1.186; a partire dalla v2.1.199 `CLAUDE_CODE_RETRY_WATCHDOG` aumenta il valore predefinito e rimuove il limite. Abbassalo per far emergere i guasti più velocemente negli script. |434| [`CLAUDE_CODE_MAX_RETRIES`](/docs/it/env-vars) | 10 | Numero di tentativi di riprovazione. Limitato a 15 a partire dalla v2.1.186; a partire dalla v2.1.199 `CLAUDE_CODE_RETRY_WATCHDOG` aumenta il valore predefinito e rimuove il limite. Abbassalo per far emergere i guasti più velocemente negli script. |

433| [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/it/env-vars) | unset | Imposta su `1` in sessioni non presenziate come i lavori CI per ritentare gli errori di capacità `429` e `529` indefinitamente invece di fallire dopo `CLAUDE_CODE_MAX_RETRIES` tentativi. Claude Code fallisce immediatamente quando una richiesta a velocità standard riceve un `429` che segnala un limite di spesa o crediti di utilizzo esauriti, anche uno da un [gateway spend cap](#spend-limit-reached) che si ripristina secondo una pianificazione. Prima della v2.1.239, il watchdog ritentava questi indefinitamente. Per le richieste in modalità veloce, vedi [Handle rate limits](/docs/it/fast-mode#handle-rate-limits). Sulla v2.1.199 o successivo aumenta anche il conteggio dei tentativi predefinito per altri errori transitori, come errori del server, timeout e connessioni interrotte, a 300, approssimativamente tre ore di backoff, e rimuove il limite di 15 su `CLAUDE_CODE_MAX_RETRIES` se imposti esplicitamente quella variabile. |435| [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/it/env-vars) | unset | Imposta su `1` in sessioni non presenziate come i lavori CI per ritentare gli errori di capacità `429` e `529` indefinitamente invece di fallire dopo `CLAUDE_CODE_MAX_RETRIES` tentativi. Claude Code fallisce immediatamente quando una richiesta a velocità standard riceve un `429` che segnala un limite di spesa o crediti di utilizzo esauriti, anche uno da un [gateway spend cap](#spend-limit-reached) che si ripristina secondo una pianificazione. Prima della v2.1.239, il watchdog ritentava questi indefinitamente. Per le richieste in modalità veloce, vedi [Handle rate limits](/docs/it/fast-mode#handle-rate-limits). Sulla v2.1.199 o successivo aumenta anche il conteggio dei tentativi predefinito per altri errori transitori, come errori del server, timeout e connessioni interrotte, a 300, approssimativamente tre ore di backoff, e rimuove il limite di 15 su `CLAUDE_CODE_MAX_RETRIES` se imposti esplicitamente quella variabile. |

434| [`API_TIMEOUT_MS`](/docs/it/env-vars) | 600000 | Timeout per richiesta in millisecondi. Aumentalo per reti lente o proxy. Limita anche quanto a lungo Claude Code attende le intestazioni di risposta, descritto in [No response from API](#no-response-from-api). |436| [`API_TIMEOUT_MS`](/docs/it/env-vars) | 600000 | Timeout per richiesta in millisecondi. Aumentalo per reti lente o proxy. Limita anche quanto a lungo Claude Code attende le intestazioni di risposta, descritto in [No response from API](#no-response-from-api). |

437| [`CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES`](/docs/it/env-vars) | unset | Limite di nuovi invii di una [richiesta non in streaming](#streaming-response-ended-before-any-complete-data-was-received) che va in timeout. Al raggiungimento del limite, la richiesta fallisce. Una risposta di Claude che impiega più del timeout per essere generata va di nuovo in timeout a ogni nuovo invio, quindi imposta un numero basso come `0` per fallire prima. Ogni tentativo non in streaming va in timeout dopo 300 secondi in una sessione locale, oppure dopo `API_TIMEOUT_MS` quando imposti un valore positivo. Richiede Claude Code v2.1.285 o successivo. |

435| [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/it/env-vars) | unset | Scadenza in millisecondi per il primo byte di risposta di una richiesta di streaming. Richiede Claude Code v2.1.242 o successivo. Per come Claude Code sceglie la scadenza quando questo non è impostato, vedi [No response from API](#no-response-from-api). |438| [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/it/env-vars) | unset | Scadenza in millisecondi per il primo byte di risposta di una richiesta di streaming. Richiede Claude Code v2.1.242 o successivo. Per come Claude Code sceglie la scadenza quando questo non è impostato, vedi [No response from API](#no-response-from-api). |

436 439 

437<h2 id="server-errors">440<h2 id="server-errors">


1836 Errori di rete e connessione1839 Errori di rete e connessione

1837</h2>1840</h2>

1838 1841 

1839La maggior parte di questi errori significa che una richiesta di rete da Claude Code non ha raggiunto la sua destinazione, oppure qualcosa tra Claude Code e l'API ha alterato la risposta durante il percorso; quando una voce ha anche una causa locale, come un'archivio fallito, il corpo lo specifica. Di solito originano dalla tua rete locale, proxy o firewall, oppure dalla politica di rete dell'ambiente cloud.1842La maggior parte di questi errori significa che una richiesta di rete da Claude Code non ha raggiunto la sua destinazione, oppure qualcosa tra Claude Code e l'API ha alterato la risposta durante il percorso; quando una voce ha anche una causa locale, come una scrittura dell'archivio non riuscita, il corpo lo specifica. Di solito originano dalla tua rete locale, proxy o firewall, oppure dalla politica di rete dell'ambiente cloud.

1840 1843 

1841<h3 id="unable-to-connect-to-api">1844<h3 id="unable-to-connect-to-api">

1842 Unable to connect to API1845 Unable to connect to API

1843</h3>1846</h3>

1844 1847 

1845La connessione TCP all'API non è riuscita o non si è mai completata. Per i codici di errore di connessione comuni, il nome del messaggio specifica il tipo di errore e mantiene il codice tra parentesi:1848La connessione TCP all'API non è riuscita o non si è mai completata. Per i codici di errore di connessione comuni, il messaggio specifica il tipo di errore e mantiene il codice tra parentesi:

1846 1849 

1847```text theme={null}1850```text theme={null}

1848Unable to connect to API. Check your internet connection1851Unable to connect to API. Check your internet connection


1864 1867 

1865* Conferma di poter raggiungere l'host API dalla stessa shell eseguendo `curl -I https://api.anthropic.com`. Su Windows PowerShell usa `curl.exe -I https://api.anthropic.com` in modo che l'alias `Invoke-WebRequest` integrato non sia utilizzato.1868* Conferma di poter raggiungere l'host API dalla stessa shell eseguendo `curl -I https://api.anthropic.com`. Su Windows PowerShell usa `curl.exe -I https://api.anthropic.com` in modo che l'alias `Invoke-WebRequest` integrato non sia utilizzato.

1866* Se sei dietro un proxy aziendale, imposta `HTTPS_PROXY` prima di avviare Claude Code e vedi [Network configuration](/docs/it/network-config)1869* Se sei dietro un proxy aziendale, imposta `HTTPS_PROXY` prima di avviare Claude Code e vedi [Network configuration](/docs/it/network-config)

1867* Se instrada attraverso un gateway LLM o un relay, imposta [`ANTHROPIC_BASE_URL`](/docs/it/env-vars) al suo indirizzo. Vedi [Connect Claude Code to an LLM gateway](/docs/it/llm-gateway-connect) per la configurazione.1870* Se instradi attraverso un gateway LLM o un relay, imposta [`ANTHROPIC_BASE_URL`](/docs/it/env-vars) al suo indirizzo. Vedi [Connect Claude Code to an LLM gateway](/docs/it/llm-gateway-connect) per la configurazione.

1868* Assicurati che il tuo firewall consenta gli host elencati in [Network access requirements](/docs/it/network-config#network-access-requirements)1871* Assicurati che il tuo firewall consenta gli host elencati in [Network access requirements](/docs/it/network-config#network-access-requirements)

1869* I guasti intermittenti vengono [ritentati automaticamente](#automatic-retries); i guasti persistenti indicano un problema di rete locale1872* I guasti intermittenti vengono [ritentati automaticamente](#automatic-retries); i guasti persistenti indicano un problema di rete locale

1870 1873 


1888A proxy is configured via HTTPS_PROXY. Check that it allows connections to the host above.1891A proxy is configured via HTTPS_PROXY. Check that it allows connections to the host above.

1889```1892```

1890 1893 

1891Claude Code invia il controllo attraverso la stessa [proxy configuration](/docs/it/network-config) delle richieste API e assegna a ogni sonda 10 secondi. Quando la sonda fallita è passata attraverso un proxy, il messaggio nomina la variabile di ambiente che l'ha configurata, come `HTTPS_PROXY`. Prima della v2.1.222, il controllo utilizzava un diverso trasporto proxy senza timeout: dietro un URL proxy con lo schema `https://`, potrebbe bloccarsi su `Checking connectivity...` indefinitamente e poi fallire anche se le richieste API attraverso lo stesso proxy hanno successo.1894Claude Code invia il controllo attraverso la stessa [proxy configuration](/docs/it/network-config) delle richieste API e assegna a ogni sonda 10 secondi. Quando la sonda fallita è passata attraverso un proxy, il messaggio nomina la variabile d'ambiente che l'ha configurata, come `HTTPS_PROXY`. Prima della v2.1.222, il controllo utilizzava un diverso trasporto proxy senza timeout: dietro un URL proxy con lo schema `https://`, potrebbe bloccarsi su `Checking connectivity...` indefinitamente e poi fallire anche se le richieste API attraverso lo stesso proxy hanno successo.

1892 1895 

1893Claude Code salta questo controllo quando un [managed settings file, MDM policy, o policy helper](/docs/it/managed-settings) imposta [`forceLoginMethod`](/docs/it/settings-reference#forceloginmethod) a `"gateway"`, o imposta [`forceLoginGatewayUrl`](/docs/it/settings-reference#forcelogingatewayurl) senza `forceLoginMethod`. Con entrambe le configurazioni, Claude Code apre il passaggio di accesso sulla schermata **Cloud gateway** piuttosto che su un metodo di accesso Anthropic. Claude Code salta anche il controllo quando una fonte di managed settings sulla macchina esiste ma non può essere letta, poiché quella fonte potrebbe contenere la configurazione del gateway. Prima della v2.1.247, Claude Code eseguiva il controllo anche sotto questa configurazione e usciva con questo errore quando gli endpoint di Anthropic non erano raggiungibili.1896Claude Code salta questo controllo quando un [file di impostazioni gestite, una policy MDM o un policy helper](/docs/it/managed-settings) imposta [`forceLoginMethod`](/docs/it/settings-reference#forceloginmethod) a `"gateway"`, o imposta [`forceLoginGatewayUrl`](/docs/it/settings-reference#forcelogingatewayurl) senza `forceLoginMethod`. Con entrambe le configurazioni, Claude Code apre il passaggio di accesso sulla schermata **Cloud gateway** piuttosto che su un metodo di accesso Anthropic. Claude Code salta anche il controllo quando una fonte di impostazioni gestite sulla macchina esiste ma non può essere letta, poiché quella fonte potrebbe contenere la configurazione del gateway. Prima della v2.1.247, Claude Code eseguiva il controllo anche sotto questa configurazione e usciva con questo errore quando gli endpoint di Anthropic non erano raggiungibili.

1894 1897 

1895**Cosa fare:**1898**Cosa fare:**

1896 1899 


1917 API returned an empty or malformed response1920 API returned an empty or malformed response

1918</h3>1921</h3>

1919 1922 

1920Claude Code mostra questo errore quando il suo ritentativo non in streaming di una richiesta in streaming fallita ottiene uno stato HTTP di successo ma il corpo non è un messaggio API Claude: comunemente una pagina di errore HTML o di accesso, un corpo vuoto, o JSON in un altro formato. Un proxy, gateway, o pagina di accesso di rete che risponde al posto dell'API è la solita fonte. Claude Code non ritenta la richiesta e il turno termina con questo errore.1923Claude Code mostra questo errore quando il suo nuovo tentativo non in streaming di una richiesta in streaming fallita ottiene uno stato HTTP di successo ma il corpo non è un messaggio API Claude: comunemente una pagina di errore HTML o di accesso, un corpo vuoto, o JSON in un altro formato. Un proxy, gateway, o pagina di accesso di rete che risponde al posto dell'API è la solita fonte. Claude Code non ritenta la richiesta e il turno termina con questo errore.

1921 1924 

1922```text theme={null}1925```text theme={null}

1923API returned an empty or malformed response (HTTP 200) — check for a proxy or gateway intercepting the request.1926API returned an empty or malformed response (HTTP 200) — check for a proxy or gateway intercepting the request.


1926Dopo quell'apertura, il messaggio segnala ciò che è tornato e quale richiesta ha fallito:1929Dopo quell'apertura, il messaggio segnala ciò che è tornato e quale richiesta ha fallito:

1927 1930 

1928* Una clausola `Response:` con il tipo di contenuto, il tipo di corpo, come `body is an HTML page` o `empty body`, la sua dimensione in byte, e se la risposta ha portato un id di richiesta Anthropic. Quando la risposta nomina un server riconoscibile, come `nginx` o `cloudflare`, o porta intestazioni intermediarie, come `cf-ray` o `via`, la clausola elenca anche quelli.1931* Una clausola `Response:` con il tipo di contenuto, il tipo di corpo, come `body is an HTML page` o `empty body`, la sua dimensione in byte, e se la risposta ha portato un id di richiesta Anthropic. Quando la risposta nomina un server riconoscibile, come `nginx` o `cloudflare`, o porta intestazioni intermediarie, come `cf-ray` o `via`, la clausola elenca anche quelli.

1929* Una frase che nomina l'id della richiesta in streaming fallita e il guasto che ha attivato il ritentativo. Quando uno stream si era aperto prima del guasto, segnala anche quanti eventi di stream sono arrivati e, se ce ne sono stati, quanto tempo lo stream era stato silenzioso quando il tentativo è fallito.1932* Una frase che nomina l'id della richiesta in streaming fallita e il guasto che ha attivato il nuovo tentativo. Quando uno stream si era aperto prima del guasto, segnala anche quanti eventi di stream sono arrivati e, se ce ne sono stati, quanto tempo lo stream era stato silenzioso quando il tentativo è fallito.

1930 1933 

1931Prima della v2.1.234, il messaggio terminava dopo `intercepting the request`.1934Prima della v2.1.234, il messaggio terminava dopo `intercepting the request`.

1932 1935 


1935**Cosa fare:**1938**Cosa fare:**

1936 1939 

1937* Leggi la clausola `Response:` per vedere quale sistema ha risposto. Un corpo HTML, nessun id di richiesta Anthropic, o un server nominato come `nginx` o `cloudflare` significa che qualcosa tra Claude Code e l'API ha risposto al suo posto1940* Leggi la clausola `Response:` per vedere quale sistema ha risposto. Un corpo HTML, nessun id di richiesta Anthropic, o un server nominato come `nginx` o `cloudflare` significa che qualcosa tra Claude Code e l'API ha risposto al suo posto

1938* Se instrada attraverso un [LLM gateway](/docs/it/llm-gateway-connect#troubleshoot-gateway-errors), testa il percorso con una richiesta diretta e correggi l'hop che restituisce la risposta non-API1941* Se instradi attraverso un [LLM gateway](/docs/it/llm-gateway-connect#troubleshoot-gateway-errors), testa il percorso con una richiesta diretta e correggi l'hop che restituisce la risposta non-API

1939* Su una rete con una pagina di accesso, come Wi-Fi ospite, completa l'accesso in un browser, quindi riprova1942* Su una rete con una pagina di accesso, come Wi-Fi ospite, completa l'accesso in un browser, quindi riprova

1940* Se solo il percorso non in streaming attraverso il tuo gateway è rotto, imposta [`CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=1`](/docs/it/env-vars#variables) per disattivare questo fallback, tranne quando l'endpoint di streaming stesso restituisce `404`, dove Claude Code continua comunque a fare fallback1943* Se solo il percorso non in streaming attraverso il tuo gateway è rotto, imposta [`CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=1`](/docs/it/env-vars#variables) per disattivare questo fallback, tranne quando l'endpoint di streaming stesso restituisce `404`, dove Claude Code continua comunque a usare il fallback

1941 1944 

1942<h3 id="streaming-response-ended-before-any-complete-data-was-received">1945<h3 id="streaming-response-ended-before-any-complete-data-was-received">

1943 Streaming response ended before any complete data was received1946 Streaming response ended before any complete data was received


1949Streaming response ended before any complete data was received. Retrying without streaming. If this keeps happening, check any proxy or gateway between Claude Code and your model provider.1952Streaming response ended before any complete data was received. Retrying without streaming. If this keeps happening, check any proxy or gateway between Claude Code and your model provider.

1950```1953```

1951 1954 

1952Claude Code invia ogni richiesta interessata due volte: il tentativo di streaming vuoto e il ritentativo. La causa solita è un proxy o gateway che consuma o trasforma il corpo della risposta in streaming durante il percorso di ritorno.1955Claude Code invia ogni richiesta interessata due volte: il tentativo di streaming vuoto e il nuovo tentativo. La causa solita è un proxy o gateway che consuma o trasforma il corpo della risposta in streaming durante il percorso di ritorno.

1953 1956 

1954**Cosa fare:**1957**Cosa fare:**

1955 1958 


1971**Cosa fare:**1974**Cosa fare:**

1972 1975 

1973* Configura il gateway per passare il corpo della risposta `InvokeModelWithResponseStream` e la sua intestazione `Content-Type` senza modifiche. Un intermediario che ri-emette lo stream come server-sent events è una causa comune.1976* Configura il gateway per passare il corpo della risposta `InvokeModelWithResponseStream` e la sua intestazione `Content-Type` senza modifiche. Un intermediario che ri-emette lo stream come server-sent events è una causa comune.

1974* Impostare [`CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1`](/docs/it/env-vars) nasconde questo errore, ma Claude Code non decodifica un corpo binario sotto un'intestazione riscritta, quindi quelle richieste ricadono in un percorso più lento non in streaming. Vedi [Streaming errors behind a gateway or proxy](/docs/it/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy).1977* Impostare [`CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1`](/docs/it/env-vars) nasconde questo errore, ma Claude Code non decodifica un corpo binario sotto un'intestazione riscritta, quindi quelle richieste ripiegano su un percorso più lento non in streaming. Vedi [Streaming errors behind a gateway or proxy](/docs/it/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy).

1975 1978 

1976<h3 id="ssl-certificate-errors">1979<h3 id="ssl-certificate-errors">

1977 SSL certificate errors1980 SSL certificate errors


2015 2018 

2016Potresti anche vedere un certificato TLS che non corrisponde al certificato reale della destinazione. Le sessioni cloud instradano il traffico in uscita attraverso un proxy che applica la politica di rete, quindi un certificato non corrispondente significa che il proxy ha terminato la connessione, non la destinazione.2019Potresti anche vedere un certificato TLS che non corrisponde al certificato reale della destinazione. Le sessioni cloud instradano il traffico in uscita attraverso un proxy che applica la politica di rete, quindi un certificato non corrispondente significa che il proxy ha terminato la connessione, non la destinazione.

2017 2020 

2018Questo non è un problema di rete lato client. Le sessioni cloud e [routines](/docs/it/routines) vengono eseguite all'interno di una VM sandbox la cui rete di traffico in uscita attraverso la rete della sessione è filtrata alla [allowlist dell'ambiente cloud](/docs/it/cloud-environments); le [operazioni GitHub](/docs/it/cloud-environments#github-proxy) e il traffico del connettore MCP utilizzano canali separati, motivo per cui possono continuare a funzionare mentre altri host sono bloccati. L'ambiente **Default** utilizza accesso **Trusted**, che consente la [allowlist predefinita](/docs/it/cloud-environments#default-allowed-domains) di registri di pacchetti, API di provider cloud, registri di container, e domini di sviluppo comuni e blocca altri domini su quel percorso.2021Questo non è un problema di rete lato client. Le sessioni cloud e le [routine](/docs/it/routines) vengono eseguite all'interno di una VM sandbox il cui traffico in uscita attraverso la rete della sessione è filtrato in base all'[allowlist dell'ambiente cloud](/docs/it/cloud-environments); le [operazioni GitHub](/docs/it/cloud-environments#github-proxy) e il traffico del connettore MCP utilizzano canali separati, motivo per cui possono continuare a funzionare mentre altri host sono bloccati. L'ambiente **Default** utilizza accesso **Trusted**, che consente l'[allowlist predefinita](/docs/it/cloud-environments#default-allowed-domains) di registri di pacchetti, API di provider cloud, registri di container, e domini di sviluppo comuni e blocca altri domini su quel percorso.

2019 2022 

2020**Cosa fare:**2023**Cosa fare:**

2021 2024 

2022Questi passaggi cambiano uno dei tuoi ambienti. Un [organization-shared environment](/docs/it/cloud-environments#organization-shared-environments) si apre in sola lettura nel selettore, quindi chiedi a un Owner di cambiare il suo accesso di rete dalla pagina **Cloud environments** in [admin settings](https://claude.ai/admin-settings).2025Questi passaggi cambiano uno dei tuoi ambienti. Un [organization-shared environment](/docs/it/cloud-environments#organization-shared-environments) si apre in sola lettura nel selettore, quindi chiedi a un Owner di cambiare il suo accesso di rete dalla pagina **Cloud environments** in [admin settings](https://claude.ai/admin-settings).

2023 2026 

2024* Apri il tuo ambiente per la modifica, o dalla [routine's form](/docs/it/routines#environments-and-network-access) o dal [environment selector](/docs/it/cloud-environments#configure-your-environment) dove avvii sessioni cloud.2027* Apri il tuo ambiente per la modifica, o dalla [routine's form](/docs/it/routines#environments-and-network-access) o dal [environment selector](/docs/it/cloud-environments#configure-your-environment) dove avvii sessioni cloud.

2025* Nella finestra di dialogo **Edit cloud environment**, cambia **Network access** da **Trusted** a **Custom**, quindi aggiungi il dominio bloccato a **Allowed domains**. Inserisci un dominio per riga. Seleziona **Also include default list of common package managers** per mantenere la [allowlist predefinita](/docs/it/cloud-environments#default-allowed-domains) insieme ai tuoi domini personalizzati. Seleziona **Full** invece se desideri accesso senza restrizioni.2028* Nella finestra di dialogo **Edit environment**, cambia **Network access** da **Trusted** a **Custom**, quindi aggiungi il dominio bloccato a **Allowed domains**. Inserisci un dominio per riga. Seleziona **Also include default list of common package managers** per mantenere l'[allowlist predefinita](/docs/it/cloud-environments#default-allowed-domains) insieme ai tuoi domini personalizzati. Seleziona **Full** invece se desideri accesso senza restrizioni.

2026* Fai clic su **Save changes**. La prossima esecuzione utilizza l'allowlist aggiornata. Per una sessione cloud che è già aperta, vedi [quando una modifica dell'accesso di rete raggiunge le sessioni esistenti](/docs/it/cloud-environments#network-access).2029* Fai clic su **Save changes**. La prossima esecuzione utilizza l'allowlist aggiornata. Per una sessione cloud che è già aperta, vedi [quando una modifica dell'accesso di rete raggiunge le sessioni esistenti](/docs/it/cloud-environments#network-access).

2027 2030 

2028Vedi [Network access](/docs/it/cloud-environments#network-access) per i livelli di accesso e l'allowlist predefinita. Le sessioni CLI locali non sono interessate da questa politica.2031Vedi [Network access](/docs/it/cloud-environments#network-access) per i livelli di accesso e l'allowlist predefinita. Le sessioni CLI locali non sono interessate da questa politica.


2031 The proxy refused the connection2034 The proxy refused the connection

2032</h3>2035</h3>

2033 2036 

2034Vedi questo messaggio quando Claude legge un [artifact](/docs/it/artifacts) attraverso il proxy che hai impostato in `HTTPS_PROXY` o una [proxy variable](/docs/it/network-config#environment-variables) correlata. Il contenuto dell'artifact proviene da `*.frame.claudeusercontent.com`, quindi Claude Code invia prima al proxy una richiesta `CONNECT` chiedendogli di aprire un tunnel a quell'host. Quando il proxy rifiuta, nulla raggiunge l'host, e il messaggio porta lo stato HTTP del proxy:2037Vedi questo messaggio quando Claude legge un [artefatto](/docs/it/artifacts) attraverso il proxy che hai impostato in `HTTPS_PROXY` o una [proxy variable](/docs/it/network-config#environment-variables) correlata. Il contenuto dell'artefatto proviene da `*.frame.claudeusercontent.com`, quindi Claude Code invia prima al proxy una richiesta `CONNECT` chiedendogli di aprire un tunnel a quell'host. Quando il proxy rifiuta, nulla raggiunge l'host, e il messaggio porta lo stato HTTP del proxy:

2035 2038 

2036```text theme={null}2039```text theme={null}

2037artifact content fetch failed (proxy refused the connection: HTTP 407)2040artifact content fetch failed (proxy refused the connection: HTTP 407)


2048 2051 

2049**Cosa fare:**2052**Cosa fare:**

2050 2053 

2051* Controlla l'indirizzo e le credenziali nella variabile proxy, come descrive [Proxy configuration](/docs/it/network-config#proxy-configuration), quindi esegui `curl -x http://proxy.example.com:8080 -I https://api.anthropic.com` dalla shell in cui avvii Claude Code, usando il tuo URL proxy. Su Windows PowerShell, esegui `curl.exe`. Se questa sonda fallisce allo stesso modo, correggi prima la configurazione del proxy. Se ha successo, il rifiuto è specifico dell'host dell'artifact.2054* Controlla l'indirizzo e le credenziali nella variabile proxy, come descrive [Proxy configuration](/docs/it/network-config#proxy-configuration), quindi esegui `curl -x http://proxy.example.com:8080 -I https://api.anthropic.com` dalla shell in cui avvii Claude Code, usando il tuo URL proxy. Su Windows PowerShell, esegui `curl.exe`. Se questa sonda fallisce allo stesso modo, correggi prima la configurazione del proxy. Se ha successo, il rifiuto è specifico dell'host dell'artefatto.

2052* Se la tua rete consente a Claude Code di raggiungere l'host dell'artifact direttamente, aggiungi `.frame.claudeusercontent.com` a [`NO_PROXY`](/docs/it/network-config#environment-variables). Mantieni la voce stretta: una voce `.claudeusercontent.com` più ampia bypassa anche il proxy per `bridge.claudeusercontent.com`, che le organizzazioni con [IP allowlisting](/docs/it/network-config#organization-ip-allowlists-and-proxy-egress) devono mantenere sul proxy.2055* Se la tua rete consente a Claude Code di raggiungere l'host dell'artefatto direttamente, aggiungi `.frame.claudeusercontent.com` a [`NO_PROXY`](/docs/it/network-config#environment-variables). Mantieni la voce stretta: una voce `.claudeusercontent.com` più ampia bypassa anche il proxy per `bridge.claudeusercontent.com`, che le organizzazioni con [IP allowlisting](/docs/it/network-config#organization-ip-allowlists-and-proxy-egress) devono mantenere sul proxy.

2053 2056 

2054Prima della v2.1.238, Claude Code segnalava un tunnel rifiutato come un errore di rete generico.2057Prima della v2.1.238, Claude Code segnalava un tunnel rifiutato come un errore di rete generico.

2055 2058 


2096 Sessions ended while this machine was offline2099 Sessions ended while this machine was offline

2097</h3>2100</h3>

2098 2101 

2099Claude Code mostra questo messaggio nel terminale che esegue [`claude remote-control`](/docs/it/remote-control#start-a-remote-control-session) dopo che la tua macchina è stata offline abbastanza a lungo che il server ha pulito l'ambiente Remote Control che la tua macchina stava servendo. Le sessioni in quell'ambiente sono terminate e non puoi riprendere. Il conteggio è il numero di sessioni che sono terminate.2102Claude Code mostra questo messaggio nel terminale che esegue [`claude remote-control`](/docs/it/remote-control#start-a-remote-control-session) dopo che la tua macchina è stata offline abbastanza a lungo che il server ha pulito l'ambiente Remote Control che la tua macchina stava servendo. Le sessioni in quell'ambiente sono terminate e non puoi riprenderle. Il conteggio è il numero di sessioni che sono terminate.

2100 2103 

2101```text theme={null}2104```text theme={null}

21022 sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.21052 sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.


2104 2107 

2105**Cosa fare:**2108**Cosa fare:**

2106 2109 

2107* Quando Claude Code elenca i worktrees mantenuti sotto questo messaggio, raccogli qualsiasi lavoro non committato da loro2110* Quando Claude Code elenca i worktree mantenuti sotto questo messaggio, recupera da essi qualsiasi lavoro non committato

2108* Esegui `claude remote-control` per avviare un ambiente nuovo2111* Esegui `claude remote-control` per avviare un ambiente nuovo

2109 2112 

2110<h3 id="couldnt-share-the-transcript">2113<h3 id="couldnt-share-the-transcript">

2111 Couldn't share the transcript2114 Couldn't share the transcript

2112</h3>2115</h3>

2113 2116 

2114Dopo che accetti di condividere la trascrizione della tua sessione da un prompt di sondaggio, come il [session quality survey](/docs/it/data-usage#session-quality-surveys), Claude Code la carica su Anthropic, o salva un archivio locale invece su provider di terze parti, su sessioni [Claude apps gateway](/docs/it/claude-apps-gateway), e quando nessuna credenziale Anthropic è disponibile. Questo messaggio significa che la condivisione non è stata completata.2117Dopo che accetti di condividere la trascrizione della tua sessione da un prompt di sondaggio, come il [session quality survey](/docs/it/data-usage#session-quality-surveys), Claude Code la carica su Anthropic, o salva invece un archivio locale su provider di terze parti, su sessioni [Claude apps gateway](/docs/it/claude-apps-gateway), e quando nessuna credenziale Anthropic è disponibile. Questo messaggio significa che la condivisione non è stata completata.

2115 2118 

2116```text theme={null}2119```text theme={null}

2117Couldn't share the transcript.2120Couldn't share the transcript.

2118```2121```

2119 2122 

2120Il caricamento deve rientrare in un limite di 8 MiB. Su una sessione lunga, Claude Code progressivamente elimina parti della condivisione, le impostazioni del modello dell'ultima richiesta per prime, quindi la conversazione strutturata e le trascrizioni dei subagent, e mostra questo messaggio solo quando nessuna versione ridotta può essere inviata o un errore di rete o server interrompe il caricamento. Quando Claude Code salva un archivio locale invece, il messaggio significa che non poteva scrivere l'archivio.2123Il caricamento deve rientrare in un limite di 8 MiB. Su una sessione lunga, Claude Code elimina progressivamente parti della condivisione, le impostazioni del modello dell'ultima richiesta per prime, quindi la conversazione strutturata e le trascrizioni dei subagent, e mostra questo messaggio quando nessuna versione ridotta può essere inviata o un errore di rete o server interrompe il caricamento. Quando Claude Code salva invece un archivio locale, il messaggio significa che non è riuscito a scrivere l'archivio.

2121 2124 

2122**Cosa fare:**2125**Cosa fare:**

2123 2126 


2128 Couldn't send feedback2131 Couldn't send feedback

2129</h3>2132</h3>

2130 2133 

2131Hai inviato un rapporto dalla finestra di dialogo [`/feedback`, `/bug`, o `/share`](/docs/it/commands#all-commands) e il caricamento su Anthropic è fallito. La finestra di dialogo mantiene il tuo testo in modo che tu possa ritentare.2134Hai inviato un rapporto dalla finestra di dialogo [`/feedback`, `/bug`, o `/share`](/docs/it/commands#all-commands) e il caricamento su Anthropic è fallito. La finestra di dialogo mantiene il tuo testo in modo che tu possa riprovare.

2132 2135 

2133```text theme={null}2136```text theme={null}

2134Couldn't send feedback (couldn't reach the service). If it keeps failing, you can file at https://github.com/anthropics/claude-code/issues instead.2137Couldn't send feedback (couldn't reach the service). If it keeps failing, you can file at https://github.com/anthropics/claude-code/issues instead.


2136 2139 

2137Il testo dopo il prefisso nomina ciò che è fallito:2140Il testo dopo il prefisso nomina ciò che è fallito:

2138 2141 

2139* **`: not signed in. Run /login, then retry.`**: la finestra di dialogo carica solo quando Claude Code ha trovato credenziali Anthropic mentre si apriva, e nessuna era utilizzabile al momento dell'invio. Ad esempio, hai effettuato il logout su questa macchina nel frattempo, o il tuo login non poteva più essere aggiornato.2142* **`: not signed in. Run /login, then retry.`**: la finestra di dialogo carica solo quando Claude Code ha trovato credenziali Anthropic mentre si apriva, e nessuna era utilizzabile al momento dell'invio. Ad esempio, sei uscito dall'account su questa macchina nel frattempo, o il tuo login non poteva più essere aggiornato.

2140* **Una parentesi**: `(server returned <status>)` è il codice di risposta del servizio; `(request timed out)` e `(couldn't reach the service)` sono guasti di rete. Quando Claude Code non riesce a nominare un motivo, la parentesi è assente.2143* **Una parentesi**: `(server returned <status>)` è il codice di risposta del servizio; `(request timed out)` e `(couldn't reach the service)` sono guasti di rete. Quando Claude Code non riesce a nominare un motivo, la parentesi è assente.

2141 2144 

2142Nella [feedback drafts queue](/docs/it/tools-reference#sendfeedback-tool-behavior), lo stesso guasto termina con `The draft is still queued. Try again later.` invece, e la bozza rimane nella coda per un altro tentativo.2145Nella [feedback drafts queue](/docs/it/tools-reference#sendfeedback-tool-behavior), lo stesso guasto termina invece con `The draft is still queued. Try again later.`, e la bozza rimane nella coda per un altro tentativo.

2143 2146 

2144**Cosa fare:**2147**Cosa fare:**

2145 2148 

2146* Per la dicitura non-signed-in, esegui `/login` e invia di nuovo2149* Per la dicitura non-signed-in, esegui `/login` e invia di nuovo

2147* Altrimenti, invia di nuovo; se anche altre richieste stanno fallendo, controlla la tua connessione di rete e vedi [Unable to connect to API](#unable-to-connect-to-api)2150* Altrimenti, invia di nuovo; se anche altre richieste stanno fallendo, controlla la tua connessione di rete e vedi [Unable to connect to API](#unable-to-connect-to-api)

2148* Se continua a fallire, archivia il rapporto su [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues), come dice il messaggio2151* Se continua a fallire, apri una segnalazione su [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues), come dice il messaggio

2149 2152 

2150Prima della v2.1.281, ogni invio falliva con questo messaggio una volta che un Remote Control **Stop** o un messaggio urgente tra sessioni era arrivato mentre la finestra di dialogo era aperta. Su quelle versioni, chiudi la finestra di dialogo, riaprila e invia di nuovo.2153Prima della v2.1.281, ogni invio falliva con questo messaggio una volta che un Remote Control **Stop** o un messaggio urgente tra sessioni era arrivato mentre la finestra di dialogo era aperta. Su quelle versioni, chiudi la finestra di dialogo, riaprila e invia di nuovo.

2151 2154 


2156Questi errori riguardano il contenuto della tua richiesta. La maggior parte proviene dall'API dopo che ha rifiutato la richiesta; alcuni sono prodotti localmente da Claude Code prima che venga inviata qualsiasi richiesta.2159Questi errori riguardano il contenuto della tua richiesta. La maggior parte proviene dall'API dopo che ha rifiutato la richiesta; alcuni sono prodotti localmente da Claude Code prima che venga inviata qualsiasi richiesta.

2157 2160 

2158<h3 id="prompt-is-too-long">2161<h3 id="prompt-is-too-long">

2159 Prompt è troppo lungo2162 Prompt is too long

2160</h3>2163</h3>

2161 2164 

2162La conversazione più i file allegati superano la finestra di contesto del modello.2165La conversazione più i file allegati superano la finestra di contesto del modello.


2251**Cosa fare:**2254**Cosa fare:**

2252 2255 

2253* In una conversazione multi-turno, esegui `/compact` per riassumere i turni precedenti e liberare spazio. Per ricominciare da capo, esegui `/clear`2256* In una conversazione multi-turno, esegui `/compact` per riassumere i turni precedenti e liberare spazio. Per ricominciare da capo, esegui `/clear`

2254* Per altri modi per ridurre l'utilizzo, vedi [Prompt è troppo lungo](#prompt-is-too-long)2257* Per altri modi per ridurre l'utilizzo, vedi [Prompt is too long](#prompt-is-too-long)

2255 2258 

2256Prima della v2.1.216, `/context` mostrava l'utilizzo sopra il 100% senza una riga di avviso che spiegasse cosa significava o come recuperare.2259Prima della v2.1.216, `/context` mostrava l'utilizzo sopra il 100% senza una riga di avviso che spiegasse cosa significava o come recuperare.

2257 2260 

2258<h3 id="request-too-large">2261<h3 id="request-too-large">

2259 Richiesta troppo grande2262 Request too large

2260</h3>2263</h3>

2261 2264 

2262Il corpo della richiesta grezza ha superato il limite di 32MB dell'API prima della tokenizzazione, solitamente a causa di contenuto incollato di grandi dimensioni, risultati degli strumenti o allegati. Questo limite è separato dalla [finestra di contesto](#prompt-is-too-long).2265Il corpo della richiesta grezza ha superato il limite di 32MB dell'API prima della tokenizzazione, solitamente a causa di contenuto incollato di grandi dimensioni, risultati degli strumenti o allegati. Questo limite è separato dalla [finestra di contesto](#prompt-is-too-long).


2277* Se il messaggio dice `compacting cannot make it fit`, premi Esc due volte per tornare indietro oltre il turno che ha aggiunto il contenuto di grandi dimensioni, oppure esegui `/clear` per ricominciare da capo2280* Se il messaggio dice `compacting cannot make it fit`, premi Esc due volte per tornare indietro oltre il turno che ha aggiunto il contenuto di grandi dimensioni, oppure esegui `/clear` per ricominciare da capo

2278* Altrimenti, esegui `/compact`, che elimina le immagini e gli allegati accumulati2281* Altrimenti, esegui `/compact`, che elimina le immagini e gli allegati accumulati

2279* Fai riferimento ai file di grandi dimensioni per percorso invece di incollarne il contenuto, in modo che Claude possa leggerli in blocchi2282* Fai riferimento ai file di grandi dimensioni per percorso invece di incollarne il contenuto, in modo che Claude possa leggerli in blocchi

2280* Per le immagini, vedi [L'immagine era troppo grande](#image-was-too-large) di seguito2283* Per le immagini, vedi [Image was too large](#image-was-too-large) di seguito

2281 2284 

2282<h3 id="image-was-too-large">2285<h3 id="image-was-too-large">

2283 L'immagine era troppo grande2286 Image was too large

2284</h3>2287</h3>

2285 2288 

2286Un'immagine incollata o allegata supera i limiti di dimensione o dimensione dell'API.2289Un'immagine incollata o allegata supera i limiti di dimensione o dimensione dell'API.


2298* Fai uno screenshot più stretto della regione rilevante invece dello schermo intero2301* Fai uno screenshot più stretto della regione rilevante invece dello schermo intero

2299 2302 

2300<h3 id="unable-to-resize-image">2303<h3 id="unable-to-resize-image">

2301 Impossibile ridimensionare l'immagine2304 Unable to resize image

2302</h3>2305</h3>

2303 2306 

2304Claude Code non ha potuto ridimensionare un'immagine allegata prima di inviarla all'API.2307Claude Code non ha potuto ridimensionare un'immagine allegata prima di inviarla all'API.


2347Le letture dell'intervallo di pagine eseguono il rendering delle pagine con `pdftoppm`. Installa poppler-utils con il comando che il messaggio fornisce, o su altre piattaforme una build poppler che mette `pdftoppm` sul tuo `PATH`. Vedi [Comportamento dello strumento Read](/docs/it/tools-reference#read-tool-behavior) per quali PDF vengono letti per intervallo di pagine.2350Le letture dell'intervallo di pagine eseguono il rendering delle pagine con `pdftoppm`. Installa poppler-utils con il comando che il messaggio fornisce, o su altre piattaforme una build poppler che mette `pdftoppm` sul tuo `PATH`. Vedi [Comportamento dello strumento Read](/docs/it/tools-reference#read-tool-behavior) per quali PDF vengono letti per intervallo di pagine.

2348 2351 

2349<h3 id="extra-inputs-are-not-permitted">2352<h3 id="extra-inputs-are-not-permitted">

2350 Gli input extra non sono consentiti2353 Extra inputs are not permitted

2351</h3>2354</h3>

2352 2355 

2353Un proxy o gateway LLM tra Claude Code e l'API ha rimosso l'intestazione della richiesta `anthropic-beta`, quindi l'API ha rifiutato i campi che dipendono da essa.2356Un proxy o gateway LLM tra Claude Code e l'API ha rimosso l'intestazione della richiesta `anthropic-beta`, quindi l'API ha rifiutato i campi che dipendono da essa.


2409Prima della v2.1.281, il nome eccessivamente lungo rimaneva nella cronologia e l'API rifiutava ogni richiesta che reinviava la conversazione, inclusi `/compact` e `--resume`, quindi questo errore si ripeteva e la conversazione era bloccata.2412Prima della v2.1.281, il nome eccessivamente lungo rimaneva nella cronologia e l'API rifiutava ogni richiesta che reinviava la conversazione, inclusi `/compact` e `--resume`, quindi questo errore si ripeteva e la conversazione era bloccata.

2410 2413 

2411<h3 id="theres-an-issue-with-the-selected-model">2414<h3 id="theres-an-issue-with-the-selected-model">

2412 C'è un problema con il modello selezionato2415 There's an issue with the selected model

2413</h3>2416</h3>

2414 2417 

2415Il nome del modello configurato non è stato riconosciuto o il tuo account non ha accesso ad esso. A partire dalla v2.1.160 l'hint finale, mostrato qui nella sua forma interattiva, varia in base alla superficie.2418Il nome del modello configurato non è stato riconosciuto o il tuo account non ha accesso ad esso. A partire dalla v2.1.160 l'hint finale, mostrato qui nella sua forma interattiva, varia in base alla superficie.


2429* Per le distribuzioni di Google Cloud's Agent Platform, vedi [Risoluzione dei problemi di Google Cloud's Agent Platform](/docs/it/google-vertex-ai#troubleshooting).2432* Per le distribuzioni di Google Cloud's Agent Platform, vedi [Risoluzione dei problemi di Google Cloud's Agent Platform](/docs/it/google-vertex-ai#troubleshooting).

2430 2433 

2431<h3 id="model-is-not-a-recognized-model-id">2434<h3 id="model-is-not-a-recognized-model-id">

2432 Il modello non è un ID modello riconosciuto2435 Model is not a recognized model id

2433</h3>2436</h3>

2434 2437 

2435La stringa che hai passato a un cambio di modello non è una che Claude Code può usare come modello, quindi ha rifiutato il cambio senza inviare una richiesta e la sessione mantiene il suo modello attuale. Puoi ottenere questo errore quando un modello è impostato tramite il metodo [Agent SDK](/docs/it/agent-sdk/typescript) `setModel()`, da un'app che esegue la CLI di Claude Code per te, come l'[app Desktop](/docs/it/desktop), o quando scegli un modello da un dispositivo connesso tramite [Remote Control](/docs/it/remote-control). Prima della v2.1.200, Claude Code salvava la stringa e falliva alla richiesta successiva con [C'è un problema con il modello selezionato](#theres-an-issue-with-the-selected-model).2438La stringa che hai passato a un cambio di modello non è una che Claude Code può usare come modello, quindi ha rifiutato il cambio senza inviare una richiesta e la sessione mantiene il suo modello attuale. Puoi ottenere questo errore quando un modello è impostato tramite il metodo [Agent SDK](/docs/it/agent-sdk/typescript) `setModel()`, da un'app che esegue la CLI di Claude Code per te, come l'[app Desktop](/docs/it/desktop), o quando scegli un modello da un dispositivo connesso tramite [Remote Control](/docs/it/remote-control). Prima della v2.1.200, Claude Code salvava la stringa e falliva alla richiesta successiva con [There's an issue with the selected model](#theres-an-issue-with-the-selected-model).

2436 2439 

2437```text theme={null}2440```text theme={null}

2438Model "Sonnet5" is not a recognized model id. Did you mean 'claude-sonnet-5'?2441Model "Sonnet5" is not a recognized model id. Did you mean 'claude-sonnet-5'?


2447**Cosa fare:**2450**Cosa fare:**

2448 2451 

2449* Esegui `/model` senza argomenti per aprire il selettore e scegliere dai modelli disponibili per il tuo account, quindi passa l'alias o l'ID mostrato lì2452* Esegui `/model` senza argomenti per aprire il selettore e scegliere dai modelli disponibili per il tuo account, quindi passa l'alias o l'ID mostrato lì

2450* Se hai usato un alias che solo una versione più recente di Claude Code supporta, esegui `claude update`, oppure passa l'ID completo del modello. Il server può comunque richiedere una versione minima di Claude Code per quel modello; vedi [Claude Code non supporta questo modello](#claude-code-does-not-support-this-model).2453* Se hai usato un alias che solo una versione più recente di Claude Code supporta, esegui `claude update`, oppure passa l'ID completo del modello. Il server può comunque richiedere una versione minima di Claude Code per quel modello; vedi [Claude Code does not support this model](#claude-code-does-not-support-this-model).

2451* Un modello salvato prima della v2.1.200 non viene riparato da questo controllo. Se un valore obsoleto continua a tornare, rimuovilo dalle posizioni elencate in [Impostazione del modello](/docs/it/model-config#setting-your-model).2454* Un modello salvato prima della v2.1.200 non viene riparato da questo controllo. Se un valore obsoleto continua a tornare, rimuovilo dalle posizioni elencate in [Impostazione del modello](/docs/it/model-config#setting-your-model).

2452* Su qualsiasi provider diverso dall'API Anthropic, o dietro un gateway o `ANTHROPIC_BASE_URL` personalizzato, solo una stringa vuota ottiene questo errore. Claude Code può comunque scrivere la [riga diagnostica del modello non riconosciuto](#unrecognized-model-id-on-a-request) al momento della richiesta, su ogni provider.2455* Su qualsiasi provider diverso dall'API Anthropic, o dietro un gateway o `ANTHROPIC_BASE_URL` personalizzato, solo una stringa vuota ottiene questo errore. Claude Code può comunque scrivere la [riga diagnostica del modello non riconosciuto](#unrecognized-model-id-on-a-request) al momento della richiesta, su ogni provider.

2453 2456 

2454<h3 id="model-not-found">2457<h3 id="model-not-found">

2455 Modello non trovato2458 Model not found

2456</h3>2459</h3>

2457 2460 

2458Hai cambiato a un modello per nome e Claude Code non ha potuto confermare che esista un modello con quel nome. Quando il nome non è un [alias di modello](/docs/it/model-config#model-aliases) o un'altra ortografia che Claude Code accetta localmente, Claude Code lo verifica con una richiesta API minima, e questo errore è solitamente la risposta del tuo endpoint API. Con `/model <name>`, un nome che non può essere un ID modello affatto, come uno contenente spazi, ottiene lo stesso messaggio.2461Hai cambiato a un modello per nome e Claude Code non ha potuto confermare che esista un modello con quel nome. Quando il nome non è un [alias di modello](/docs/it/model-config#model-aliases) o un'altra ortografia che Claude Code accetta localmente, Claude Code lo verifica con una richiesta API minima, e questo errore è solitamente la risposta del tuo endpoint API. Con `/model <name>`, un nome che non può essere un ID modello affatto, come uno contenente spazi, ottiene lo stesso messaggio.


2471* Prima della v2.1.265, `/model` ha anche rifiutato l'ortografia dell'alias `opusplan[1m]` con questo errore. Su quelle versioni, aggiorna Claude Code, oppure imposta il modello in [impostazioni](/docs/it/model-config#setting-your-model) o con `--model` invece.2474* Prima della v2.1.265, `/model` ha anche rifiutato l'ortografia dell'alias `opusplan[1m]` con questo errore. Su quelle versioni, aggiorna Claude Code, oppure imposta il modello in [impostazioni](/docs/it/model-config#setting-your-model) o con `--model` invece.

2472 2475 

2473<h3 id="couldnt-confirm-model-with-the-api">2476<h3 id="couldnt-confirm-model-with-the-api">

2474 Impossibile confermare il modello con l'API2477 Couldn't confirm model with the API

2475</h3>2478</h3>

2476 2479 

2477Hai cambiato modelli tramite il metodo [Agent SDK](/docs/it/agent-sdk/typescript) `setModel()` o un'app che esegue la CLI di Claude Code per te, come l'[app Desktop](/docs/it/desktop), e la richiesta che conferma l'ID del modello con il tuo endpoint API non ha ricevuto risposta entro cinque secondi. La sessione mantiene il suo modello attuale.2480Hai cambiato modelli tramite il metodo [Agent SDK](/docs/it/agent-sdk/typescript) `setModel()` o un'app che esegue la CLI di Claude Code per te, come l'[app Desktop](/docs/it/desktop), e la richiesta che conferma l'ID del modello con il tuo endpoint API non ha ricevuto risposta entro cinque secondi. La sessione mantiene il suo modello attuale.


2502**Cosa fare:**2505**Cosa fare:**

2503 2506 

2504* Agisci sulla spiegazione del server; per un rate limit o uno stato 5xx, attendi e seleziona di nuovo il modello2507* Agisci sulla spiegazione del server; per un rate limit o uno stato 5xx, attendi e seleziona di nuovo il modello

2505* I rifiuti con la loro propria dicitura sono coperti dalle voci circostanti, come [Modello non trovato](#model-not-found) e [Il modello è limitato dalle impostazioni della tua organizzazione](#model-is-restricted-by-your-organizations-settings)2508* I rifiuti con la loro propria dicitura sono coperti dalle voci circostanti, come [Model not found](#model-not-found) e [Model is restricted by your organization's settings](#model-is-restricted-by-your-organizations-settings)

2506 2509 

2507<h3 id="claude-opus-is-not-available-with-the-claude-pro-plan">2510<h3 id="claude-opus-is-not-available-with-the-claude-pro-plan">

2508 Claude Opus non è disponibile con il piano Claude Pro2511 Claude Opus is not available with the Claude Pro plan

2509</h3>2512</h3>

2510 2513 

2511Il tuo piano di abbonamento attivo non include il modello che hai selezionato.2514Il tuo piano di abbonamento attivo non include il modello che hai selezionato.


2523* Vedi [claude.com/pricing](https://claude.com/pricing) per quali modelli ogni piano include2526* Vedi [claude.com/pricing](https://claude.com/pricing) per quali modelli ogni piano include

2524 2527 

2525<h3 id="claude-code-does-not-support-this-model">2528<h3 id="claude-code-does-not-support-this-model">

2526 Claude Code non supporta questo modello2529 Claude Code does not support this model

2527</h3>2530</h3>

2528 2531 

2529L'API ha rifiutato la richiesta con un 400 perché la tua versione di Claude Code è al di sotto di un minimo richiesto. O il modello che hai selezionato richiede una versione più recente, che il server controlla per modello, o la politica della tua organizzazione ne richiede una. Il 400 porta il codice di errore `claude_code_version_too_old`, e il messaggio dice quale minimo si applica.2532L'API ha rifiutato la richiesta con un 400 perché la tua versione di Claude Code è al di sotto di un minimo richiesto. O il modello che hai selezionato richiede una versione più recente, che il server controlla per modello, o la politica della tua organizzazione ne richiede una. Il 400 porta il codice di errore `claude_code_version_too_old`, e il messaggio dice quale minimo si applica.


2556* Per la dicitura della politica organizzativa, aggiorna prima di continuare2559* Per la dicitura della politica organizzativa, aggiorna prima di continuare

2557 2560 

2558<h3 id="model-is-restricted-by-your-organizations-settings">2561<h3 id="model-is-restricted-by-your-organizations-settings">

2559 Il modello è limitato dalle impostazioni della tua organizzazione2562 Model is restricted by your organization's settings

2560</h3>2563</h3>

2561 2564 

2562L'amministratore della tua organizzazione ha disabilitato questo modello nella console di amministrazione claude.ai, oppure le impostazioni gestite lo escludono tramite un'allowlist [`availableModels`](/docs/it/model-config#restrict-model-selection) o un elenco [`deniedModels`](/docs/it/model-config#block-specific-models-or-versions). L'avviso appare all'avvio quando `--model`, `ANTHROPIC_MODEL`, o l'impostazione `model` ha nominato il modello limitato, e nomina il modello che la sessione usa invece. Se le impostazioni gestite non lasciano alcun modello consentito per la sessione da usare, vedi [Le impostazioni gestite bloccano il modello predefinito](#managed-settings-block-the-default-model). L'avviso di sostituzione può anche apparire a metà sessione dopo che un amministratore disabilita il modello su cui una sessione è in esecuzione nella console di amministrazione claude.ai.2565L'amministratore della tua organizzazione ha disabilitato questo modello nella console di amministrazione claude.ai, oppure le impostazioni gestite lo escludono tramite un'allowlist [`availableModels`](/docs/it/model-config#restrict-model-selection) o un elenco [`deniedModels`](/docs/it/model-config#block-specific-models-or-versions). L'avviso appare all'avvio quando `--model`, `ANTHROPIC_MODEL`, o l'impostazione `model` ha nominato il modello limitato, e nomina il modello che la sessione usa invece. Se le impostazioni gestite non lasciano alcun modello consentito per la sessione da usare, vedi [Le impostazioni gestite bloccano il modello predefinito](#managed-settings-block-the-default-model). L'avviso di sostituzione può anche apparire a metà sessione dopo che un amministratore disabilita il modello su cui una sessione è in esecuzione nella console di amministrazione claude.ai.


2578* Se hai bisogno di accesso al modello limitato, chiedi all'amministratore della tua organizzazione di abilitarlo. Vedi [Restrizioni del modello dell'organizzazione](/docs/it/model-config#organization-model-restrictions).2581* Se hai bisogno di accesso al modello limitato, chiedi all'amministratore della tua organizzazione di abilitarlo. Vedi [Restrizioni del modello dell'organizzazione](/docs/it/model-config#organization-model-restrictions).

2579 2582 

2580<h3 id="cant-switch-to-the-default-model">2583<h3 id="cant-switch-to-the-default-model">

2581 Impossibile passare al modello predefinito2584 Can't switch to the default model

2582</h3>2585</h3>

2583 2586 

2584Hai selezionato il modello Predefinito, ad esempio selezionando la riga Predefinito nel selettore `/model` o digitando `/model default`. Claude Code ha rifiutato il cambio, quindi la sessione mantiene il suo modello attuale.2587Hai selezionato il modello Predefinito, ad esempio selezionando la riga Predefinito nel selettore `/model` o digitando `/model default`. Claude Code ha rifiutato il cambio, quindi la sessione mantiene il suo modello attuale.


2602Se una sessione invece non riesce ad avviarsi con un messaggio `Claude Code can't start` in queste impostazioni gestite, vedi [Le impostazioni gestite bloccano il modello predefinito](#managed-settings-block-the-default-model).2605Se una sessione invece non riesce ad avviarsi con un messaggio `Claude Code can't start` in queste impostazioni gestite, vedi [Le impostazioni gestite bloccano il modello predefinito](#managed-settings-block-the-default-model).

2603 2606 

2604<h3 id="model-switch-was-blocked-by-a-premodelswitch-hook">2607<h3 id="model-switch-was-blocked-by-a-premodelswitch-hook">

2605 Il cambio di modello è stato bloccato da un hook PreModelSwitch2608 Model switch was blocked by a PreModelSwitch hook

2606</h3>2609</h3>

2607 2610 

2608Un [hook PreModelSwitch](/docs/it/hooks#premodelswitch) non ha approvato il cambio di modello che tu o un client hai richiesto, quindi la sessione mantiene il suo modello attuale. Quando il cambio è venuto da un host [Agent SDK](/docs/it/agent-sdk/overview) o [Remote Control](/docs/it/remote-control) piuttosto che da un comando che hai digitato, il messaggio recita `Model switch blocked by a PreModelSwitch hook` senza nominare il modello di destinazione.2611Un [hook PreModelSwitch](/docs/it/hooks#premodelswitch) non ha approvato il cambio di modello che tu o un client hai richiesto, quindi la sessione mantiene il suo modello attuale. Quando il cambio è venuto da un host [Agent SDK](/docs/it/agent-sdk/overview) o [Remote Control](/docs/it/remote-control) piuttosto che da un comando che hai digitato, il messaggio recita `Model switch blocked by a PreModelSwitch hook` senza nominare il modello di destinazione.


2622Prima della v2.1.260, il rifiuto del plugin gestito recitava `plugin hooks could not be loaded, so PreModelSwitch hooks could not be checked; see the debug log`. Claude Code ha ritentato il caricamento del plugin una volta e poi ha rifiutato i cambi successivi nella sessione, anche quando la tua organizzazione non ha gestito alcun plugin. Riavvia la sessione per eseguire di nuovo il caricamento del plugin su quelle versioni.2625Prima della v2.1.260, il rifiuto del plugin gestito recitava `plugin hooks could not be loaded, so PreModelSwitch hooks could not be checked; see the debug log`. Claude Code ha ritentato il caricamento del plugin una volta e poi ha rifiutato i cambi successivi nella sessione, anche quando la tua organizzazione non ha gestito alcun plugin. Riavvia la sessione per eseguire di nuovo il caricamento del plugin su quelle versioni.

2623 2626 

2624<h3 id="couldnt-save-it-as-your-default">2627<h3 id="couldnt-save-it-as-your-default">

2625 Impossibile salvarlo come predefinito2628 Couldn't save it as your default

2626</h3>2629</h3>

2627 2630 

2628Hai selezionato un modello da salvare come predefinito, ad esempio con `/model <name>` o `Enter` nel selettore `/model`, e Claude Code non ha potuto scrivere la selezione nel file delle impostazioni utente, `~/.claude/settings.json`. Il cambio stesso è stato applicato, quindi la sessione attuale viene eseguita sul modello che hai selezionato, ma il tuo predefinito rimane invariato e la sessione successiva inizia sul valore precedente.2631Hai selezionato un modello da salvare come predefinito, ad esempio con `/model <name>` o `Enter` nel selettore `/model`, e Claude Code non ha potuto scrivere la selezione nel file delle impostazioni utente, `~/.claude/settings.json`. Il cambio stesso è stato applicato, quindi la sessione attuale viene eseguita sul modello che hai selezionato, ma il tuo predefinito rimane invariato e la sessione successiva inizia sul valore precedente.


2664Prima della v2.1.287, Claude Code classificava diversamente diverse combinazioni. Mostrava questa nota per un advisor Sonnet 5.5 con un modello principale Opus 4.7 o Opus 4.8, una combinazione che ora accetta. Collegava anche alcuni advisor che ora producono questa nota, come un advisor Opus 4.8 con un modello principale Sonnet 5.5.2667Prima della v2.1.287, Claude Code classificava diversamente diverse combinazioni. Mostrava questa nota per un advisor Sonnet 5.5 con un modello principale Opus 4.7 o Opus 4.8, una combinazione che ora accetta. Collegava anche alcuni advisor che ora producono questa nota, come un advisor Opus 4.8 con un modello principale Sonnet 5.5.

2665 2668 

2666<h3 id="thinking-type-enabled-is-not-supported-for-this-model">2669<h3 id="thinking-type-enabled-is-not-supported-for-this-model">

2667 thinking.type.enabled non è supportato per questo modello2670 thinking.type.enabled is not supported for this model

2668</h3>2671</h3>

2669 2672 

2670La tua versione di Claude Code è più vecchia del minimo per il modello selezionato. La CLI ha inviato una configurazione di ragionamento che il modello non accetta più.2673La tua versione di Claude Code è più vecchia del minimo per il modello selezionato. La CLI ha inviato una configurazione di ragionamento che il modello non accetta più.


2681* Se colpisci questo nell'[Agent SDK](/docs/it/agent-sdk/overview), aggiorna il pacchetto SDK. Opus 4.8 ha bisogno di TypeScript SDK v0.3.154 o successiva e Python SDK v0.2.88 o successiva. Sonnet 5 ha bisogno di TypeScript SDK v0.3.197 o successiva. Opus 5 ha bisogno di TypeScript SDK v0.3.219 o successiva. Opus 5.5 ha bisogno di TypeScript SDK v0.3.280 o successiva. Sonnet 5.5 ha bisogno di TypeScript SDK v0.3.284 o successiva2684* Se colpisci questo nell'[Agent SDK](/docs/it/agent-sdk/overview), aggiorna il pacchetto SDK. Opus 4.8 ha bisogno di TypeScript SDK v0.3.154 o successiva e Python SDK v0.2.88 o successiva. Sonnet 5 ha bisogno di TypeScript SDK v0.3.197 o successiva. Opus 5 ha bisogno di TypeScript SDK v0.3.219 o successiva. Opus 5.5 ha bisogno di TypeScript SDK v0.3.280 o successiva. Sonnet 5.5 ha bisogno di TypeScript SDK v0.3.284 o successiva

2682 2685 

2683<h3 id="effort-isnt-available-with-thinking-turned-off">2686<h3 id="effort-isnt-available-with-thinking-turned-off">

2684 Lo sforzo non è disponibile con il ragionamento disattivato2687 Effort isn't available with thinking turned off

2685</h3>2688</h3>

2686 2689 

2687Hai disattivato il [ragionamento esteso](/docs/it/model-config#extended-thinking) e hai eseguito a un [livello di sforzo](/docs/it/model-config#adjust-effort-level) superiore a `high`. Il modello non accetta quella combinazione, quindi l'API ha rifiutato la richiesta.2690Hai disattivato il [ragionamento esteso](/docs/it/model-config#extended-thinking) e hai eseguito a un [livello di sforzo](/docs/it/model-config#adjust-effort-level) superiore a `high`. Il modello non accetta quella combinazione, quindi l'API ha rifiutato la richiesta.


2736* Esegui `/rewind`, o premi Esc due volte, per tornare indietro a un checkpoint prima del turno corrotto e continua da lì. Vedi [Checkpointing](/docs/it/checkpointing) per come i checkpoint vengono creati e ripristinati.2739* Esegui `/rewind`, o premi Esc due volte, per tornare indietro a un checkpoint prima del turno corrotto e continua da lì. Vedi [Checkpointing](/docs/it/checkpointing) per come i checkpoint vengono creati e ripristinati.

2737 2740 

2738<h3 id="invalid-data-in-redacted-thinking-block">2741<h3 id="invalid-data-in-redacted-thinking-block">

2739 Dati non validi nel blocco redacted\_thinking2742 Invalid data in redacted\_thinking block

2740</h3>2743</h3>

2741 2744 

2742L'API ha rifiutato la richiesta con un 400 perché non poteva accettare un blocco `redacted_thinking` che un turno precedente nella cronologia della conversazione porta.2745L'API ha rifiutato la richiesta con un 400 perché non poteva accettare un blocco `redacted_thinking` che un turno precedente nella cronologia della conversazione porta.


2753* Se l'errore persiste, esegui `/clear` per avviare una conversazione che non porta il blocco2756* Se l'errore persiste, esegui `/clear` per avviare una conversazione che non porta il blocco

2754 2757 

2755<h3 id="unsupported-tool-content-removed">2758<h3 id="unsupported-tool-content-removed">

2756 Contenuto dello strumento non supportato rimosso2759 Unsupported tool content removed

2757</h3>2760</h3>

2758 2761 

2759Quando Claude Code si connette direttamente all'API Anthropic e carica o visualizza un'anteprima di una sessione salvata, rimuove il contenuto dello strumento che l'API Anthropic non accetta e lascia questa riga dove il contenuto rimosso si trovava tra due blocchi di ragionamento:2762Quando Claude Code si connette direttamente all'API Anthropic e carica o visualizza un'anteprima di una sessione salvata, rimuove il contenuto dello strumento che l'API Anthropic non accetta e lascia questa riga dove il contenuto rimosso si trovava tra due blocchi di ragionamento:


2770* Se ogni turno di una sessione ripresa fallisce invece con l'errore 400, esegui `claude update` e riprendi la sessione di nuovo. Le versioni precedenti alla v2.1.246 non rimuovono il contenuto.2773* Se ogni turno di una sessione ripresa fallisce invece con l'errore 400, esegui `claude update` e riprendi la sessione di nuovo. Le versioni precedenti alla v2.1.246 non rimuovono il contenuto.

2771 2774 

2772<h3 id="role-system-must-precede-an-assistant-message">2775<h3 id="role-system-must-precede-an-assistant-message">

2773 Il ruolo 'system' deve precedere un messaggio 'assistant'2776 role 'system' must precede an 'assistant' message

2774</h3>2777</h3>

2775 2778 

2776L'API ha rifiutato la richiesta con un 400 perché un messaggio di sistema si trova in una posizione nella conversazione che non accetta:2779L'API ha rifiutato la richiesta con un 400 perché un messaggio di sistema si trova in una posizione nella conversazione che non accetta:


2791Prima della v2.1.280, Claude Code non riconosceva questa dicitura, quindi l'errore appariva anche quando il messaggio di sistema rifiutato era uno che Claude Code stesso inviava, e ogni turno successivo della conversazione falliva allo stesso modo.2794Prima della v2.1.280, Claude Code non riconosceva questa dicitura, quindi l'errore appariva anche quando il messaggio di sistema rifiutato era uno che Claude Code stesso inviava, e ogni turno successivo della conversazione falliva allo stesso modo.

2792 2795 

2793<h3 id="invalid-encrypted-content-in-search-result-block">2796<h3 id="invalid-encrypted-content-in-search-result-block">

2794 Encrypted\_content non valido nel blocco search\_result2797 Invalid encrypted\_content in search\_result block

2795</h3>2798</h3>

2796 2799 

2797L'API ha rifiutato la richiesta con un 400 perché la cronologia della conversazione contiene contenuto di ricerca web ospitato che non può decrittare. La dicitura nomina il campo che non può leggere:2800L'API ha rifiutato la richiesta con un 400 perché la cronologia della conversazione contiene contenuto di ricerca web ospitato che non può decrittare. La dicitura nomina il campo che non può leggere:


2865* Se la tua richiesta non riguardava un argomento di cibersicurezza, esegui `/feedback` per segnalare il falso positivo2868* Se la tua richiesta non riguardava un argomento di cibersicurezza, esegui `/feedback` per segnalare il falso positivo

2866* Per continuare a lavorare nella stessa sessione, premi Esc due volte o esegui `/rewind` per tornare indietro a un checkpoint prima del turno che ha attivato il flag, quindi prendi un approccio diverso. Vedi [Checkpointing](/docs/it/checkpointing).2869* Per continuare a lavorare nella stessa sessione, premi Esc due volte o esegui `/rewind` per tornare indietro a un checkpoint prima del turno che ha attivato il flag, quindi prendi un approccio diverso. Vedi [Checkpointing](/docs/it/checkpointing).

2867 2870 

2871<h3 id="output-blocked-by-content-filtering-policy">

2872 Output blocked by content filtering policy

2873</h3>

2874 

2875Il filtro dei contenuti di output dell'API ha interrotto la risposta che Claude stava generando. Il testo del messaggio proviene dall'API:

2876 

2877```text theme={null}

2878API Error: Output blocked by content filtering policy

2879```

2880 

2881Claude Code mostra l'errore non appena arriva il blocco e termina lì la richiesta. Non riprova la richiesta, non la reinvia senza streaming e non passa a un [modello di fallback](/docs/it/model-config#fallback-model-chains). Prima della v2.1.285, Claude Code poteva reinviare e riprovare una richiesta bloccata, a volte per minuti, prima di mostrarti l'errore.

2882 

2883**Cosa fare:**

2884 

2885* Riformula il tuo ultimo messaggio o adotta un approccio diverso

2886* Per tornare indietro a un checkpoint prima del turno che ha attivato il blocco, premi Esc due volte o esegui `/rewind`. Vedi [Checkpointing](/docs/it/checkpointing)

2887 

2868<h2 id="installation-errors">2888<h2 id="installation-errors">

2869 Errori di installazione2889 Errori di installazione

2870</h2>2890</h2>


4244 Errori degli strumenti4264 Errori degli strumenti

4245</h2>4265</h2>

4246 4266 

4247Questi errori provengono dalle chiamate agli strumenti di Claude. Claude corregge la maggior parte degli errori degli strumenti autonomamente. Quando uno richiede una modifica da parte tua, l'elenco **Cosa fare** di quell'errore specifica cosa cambiare.4267Questi errori derivano dalle chiamate agli strumenti di Claude. Claude corregge da solo la maggior parte degli errori degli strumenti. Quando un errore richiede una modifica da parte tua, l'elenco **Cosa fare** di quell'errore indica cosa cambiare.

4248 4268 

4249<h3 id="no-such-tool-available">4269<h3 id="no-such-tool-available">

4250 No such tool available4270 No such tool available

4251</h3>4271</h3>

4252 4272 

4253Claude ha chiamato uno strumento con un nome che non è nell'elenco degli strumenti della sessione. Claude Code restituisce l'errore a Claude come risultato della chiamata allo strumento, e il turno continua. Quando Claude Code riesce a capire perché lo strumento manca, aggiunge una frase dopo il nome dello strumento che indica il motivo o nomina lo strumento da chiamare al suo posto, come nella seconda riga:4273Claude ha chiamato uno strumento con un nome che non è presente nell'elenco degli strumenti della sessione. Claude Code restituisce l'errore a Claude come risultato della chiamata allo strumento e il turno prosegue. Quando Claude Code riesce a capire perché lo strumento manca, aggiunge dopo il nome dello strumento una frase che indica il motivo o nomina lo strumento da chiamare al suo posto, come nella seconda riga:

4254 4274 

4255```text theme={null}4275```text theme={null}

4256Error: No such tool available: <tool name>4276Error: No such tool available: <tool name>

4257Error: No such tool available: read. Tool names are case-sensitive: call Read instead.4277Error: No such tool available: read. Tool names are case-sensitive: call Read instead.

4258```4278```

4259 4279 

4260Subito dopo che riprendi una sessione, un server MCP può essere ancora al suo primo tentativo di connessione quando Claude chiama uno dei suoi strumenti. Claude Code allora [attende il server](/docs/it/mcp#tool-availability) e restituisce questo errore se lo strumento non è ancora disponibile al termine dell'attesa. Prima della v2.1.284, una chiamata di questo tipo falliva immediatamente invece di attendere.4280Subito dopo aver ripreso una sessione, un server MCP può trovarsi ancora al primo tentativo di connessione quando Claude chiama uno dei suoi strumenti. Claude Code allora [attende il server](/docs/it/mcp#tool-availability) e restituisce questo errore se lo strumento non è ancora disponibile al termine dell'attesa. Prima della v2.1.284, una chiamata di questo tipo falliva immediatamente invece di attendere.

4261 4281 

4262Anche una chiamata il cui nome dello strumento Claude Code ha [troncato a 200 caratteri](#tool-use-name-over-200-characters) fallisce con questo errore.4282Anche una chiamata il cui nome dello strumento è stato [troncato da Claude Code a 200 caratteri](#tool-use-name-over-200-characters) fallisce con questo errore.

4263 4283 

4264**Cosa fare:**4284**Cosa fare:**

4265 4285 

4266* Se succede una volta, non devi fare nulla. Claude legge l'errore e il turno continua.4286* Se succede una volta sola, non devi fare nulla. Claude legge l'errore e il turno prosegue.

4267* Se le chiamate agli strumenti di un server MCP continuano a fallire con questo errore, esegui `/mcp` nella sessione o `claude mcp list` nella tua shell per controllare lo [stato](/docs/it/mcp#server-status) del server, e riconnetti un server non riuscito da `/mcp`. Nell'Agent SDK, consulta [Gestione degli errori](/docs/it/agent-sdk/mcp#error-handling).4287* Se le chiamate agli strumenti di un server MCP continuano a fallire con questo errore, esegui `/mcp` nella sessione o `claude mcp list` nella tua shell per controllare lo [stato](/docs/it/mcp#server-status) del server, e riconnetti un server non riuscito da `/mcp`. Nell'Agent SDK, consulta [Gestione degli errori](/docs/it/agent-sdk/mcp#error-handling).

4268 4288 

4269<h3 id="agent-would-be-spawned-with-zero-tools">4289<h3 id="agent-would-be-spawned-with-zero-tools">

4270 Agent would be spawned with zero tools4290 Agent would be spawned with zero tools

4271</h3>4291</h3>

4272 4292 

4273Ogni voce nell'elenco [`tools` del subagent](/docs/it/sub-agents#supported-frontmatter-fields) non ha corrisposto a uno strumento utilizzabile, quindi Claude Code ha rifiutato di avviare il subagent: senza strumenti, non poteva agire. Il messaggio raggruppa le tue voci in base a cosa è andato storto:4293Nessuna voce nell'[elenco `tools`](/docs/it/sub-agents#supported-frontmatter-fields) del subagent corrispondeva a uno strumento utilizzabile, quindi Claude Code si è rifiutato di avviare il subagent: senza strumenti, non avrebbe potuto agire. Il messaggio raggruppa le tue voci in base a cosa è andato storto:

4274 4294 

4275* **Unrecognized**: la voce non corrisponde a nessun nome di strumento, di solito un errore di battitura come `Grpe` per `Grep`.4295* **Non riconosciuta**: la voce non corrisponde a nessun nome di strumento, di solito per un errore di battitura come `Grpe` invece di `Grep`.

4276* **Not available to subagents**: la voce nomina uno strumento reale che [i subagent non possono usare](/docs/it/sub-agents#available-tools). I subagent in background mantengono un set di strumenti integrati più piccolo, quindi una voce che solo un subagent in foreground può usare finisce qui quando il subagent verrebbe eseguito in background, che è l'impostazione predefinita. Se elenchi `Agent`, il messaggio lo segnala invece nel gruppo successivo.4296* **Non disponibile per i subagent**: la voce nomina uno strumento reale che [i subagent non possono usare](/docs/it/sub-agents#available-tools). I subagent in background mantengono un insieme più ridotto di strumenti integrati, quindi una voce che solo un subagent in primo piano può usare finisce qui quando il subagent verrebbe eseguito in background, che è il comportamento predefinito. Se elenchi `Agent`, il messaggio lo riporta invece nel gruppo successivo.

4277* **Matched no tools in this session**: la voce è valida ma nessuno strumento nella sessione corrente vi corrisponde in questo momento, come `mcp__github__*` senza alcun server MCP GitHub connesso, o `Agent` per un subagent al [limite di profondità](/docs/it/sub-agents#let-subagents-spawn-their-own-subagents).4297* **Nessuno strumento corrispondente in questa sessione**: la voce è valida ma al momento nessuno strumento della sessione corrente le corrisponde, come `mcp__github__*` senza alcun server MCP di GitHub connesso, oppure `Agent` per un subagent che ha raggiunto il [limite di profondità](/docs/it/sub-agents#let-subagents-spawn-their-own-subagents).

4278 4298 

4279Omettere il campo `tools` non attiva mai questo rifiuto. Se lasci l'elenco `tools` vuoto, o `disallowedTools` rimuove ogni voce in esso, Claude Code salta anche il rifiuto e avvia il subagent senza strumenti.4299Omettere il campo `tools` non provoca mai questo rifiuto. Se lasci vuoto l'elenco `tools`, o se `disallowedTools` ne rimuove tutte le voci, Claude Code salta anch'esso il rifiuto e avvia il subagent senza strumenti.

4280 4300 

4281Prima della v2.1.208, il subagent veniva avviato senza strumenti e poteva restituire un risultato vuoto o confuso.4301Prima della v2.1.208, il subagent veniva avviato senza strumenti e poteva restituire un risultato vuoto o confuso.

4282 4302 


4286 4306 

4287**Cosa fare:**4307**Cosa fare:**

4288 4308 

4289* Correggi ogni voce che l'errore nomina confrontandola con gli [strumenti disponibili per i subagent](/docs/it/sub-agents#available-tools)4309* Correggi ogni voce indicata dall'errore confrontandola con gli [strumenti disponibili per i subagent](/docs/it/sub-agents#available-tools)

4290* Rimuovi le voci per gli strumenti che la sessione non ha, come gli strumenti MCP di un server che non è connesso4310* Rimuovi le voci relative a strumenti che la sessione non ha, come gli strumenti MCP di un server non connesso

4291* Per uno strumento che [i subagent in background eliminano](/docs/it/sub-agents#available-tools), come `CronCreate`, rimuovi la voce. Per mantenere lo strumento, [disattiva la fork mode](/docs/it/sub-agents#turn-fork-mode-on-or-off) e chiedi a Claude di eseguire il subagent in foreground4311* Per uno strumento che [i subagent in background escludono](/docs/it/sub-agents#available-tools), come `CronCreate`, rimuovi la voce. Per mantenere lo strumento, [disattiva la modalità fork](/docs/it/sub-agents#turn-fork-mode-on-or-off) e chiedi a Claude di eseguire il subagent in primo piano

4292* Elimina il campo `tools` invece di elencare gli strumenti per dare al subagent ogni [strumento disponibile per i subagent](/docs/it/sub-agents#available-tools)4312* Elimina il campo `tools` invece di elencare gli strumenti per dare al subagent ogni [strumento disponibile per i subagent](/docs/it/sub-agents#available-tools)

4293* Per un elenco `tools` che contiene solo `Agent`, aumenta il [limite di profondità](/docs/it/sub-agents#let-subagents-spawn-their-own-subagents) o dai all'agente almeno un altro strumento: Claude Code trattiene `Agent` a quel limite, quindi un elenco senza nient'altro si risolve in nessuno strumento4313* Per un elenco `tools` che contiene solo `Agent`, aumenta il [limite di profondità](/docs/it/sub-agents#let-subagents-spawn-their-own-subagents) oppure assegna all'agente almeno un altro strumento: Claude Code nega `Agent` a quel limite, quindi un elenco che non contiene nient'altro si risolve in nessuno strumento

4294 4314 

4295<h3 id="file-is-covered-by-a-read-deny-rule">4315<h3 id="file-is-covered-by-a-read-deny-rule">

4296 File is covered by a Read deny rule4316 File is covered by a Read deny rule

4297</h3>4317</h3>

4298 4318 

4299Lo strumento Edit o Write è stato chiamato su un percorso corrispondente a una [regola di negazione `Read`](/docs/it/permissions#read-and-edit), inclusa la creazione di un nuovo file in quel percorso. Entrambi gli strumenti modificano contenuto che Claude deve essere in grado di rileggere, quindi Claude Code rifiuta la chiamata prima di qualsiasi accesso ai file. NotebookEdit non è coperto dalle regole di negazione `Read`. Prima della v2.1.228, la regola bloccava solo lo strumento Edit, e prima della v2.1.208, solo una regola di negazione `Edit` bloccava le modifiche.4319Lo strumento Edit o Write è stato chiamato su un percorso corrispondente a una [regola di negazione `Read`](/docs/it/permissions#read-and-edit), anche per creare un nuovo file in quel percorso. Entrambi gli strumenti modificano contenuti che Claude deve poter rileggere, quindi Claude Code rifiuta la chiamata prima di qualsiasi accesso al file. NotebookEdit non è coperto dalle regole di negazione `Read`. Prima della v2.1.228, la regola bloccava solo lo strumento Edit, e prima della v2.1.208, solo una regola di negazione `Edit` bloccava le modifiche.

4300 4320 

4301```text theme={null}4321```text theme={null}

4302File is covered by a Read deny rule in your permission settings and cannot be edited.4322File is covered by a Read deny rule in your permission settings and cannot be edited.


4306 4326 

4307**Cosa fare:**4327**Cosa fare:**

4308 4328 

4309* Se Claude dovrebbe essere in grado di modificare il file, rimuovi o restringi la regola di negazione `Read` in `/permissions` o nelle [impostazioni](/docs/it/settings-reference#permission-settings)4329* Se Claude deve poter modificare il file, rimuovi o restringi la regola di negazione `Read` in `/permissions` o nelle [impostazioni](/docs/it/settings-reference#permission-settings)

4310* Se il file deve rimanere intatto, mantieni la regola e aggiungi una regola di negazione `Edit` per lo stesso percorso per bloccare anche lo strumento NotebookEdit4330* Se il file deve rimanere intatto, mantieni la regola e aggiungi una regola di negazione `Edit` per lo stesso percorso per bloccare anche lo strumento NotebookEdit

4311 4331 

4312<h3 id="path-cannot-contain-null-bytes">4332<h3 id="path-cannot-contain-null-bytes">

4313 Path cannot contain null bytes4333 Path cannot contain null bytes

4314</h3>4334</h3>

4315 4335 

4316L'argomento di percorso o pattern di una chiamata a uno strumento per i file conteneva un byte null, che i file system e gli strumenti di ricerca non possono accettare. Read, Write, Edit, NotebookEdit, Glob e Grep effettuano questo controllo, e il messaggio nomina lo strumento e l'argomento:4336L'argomento percorso o pattern di una chiamata a uno strumento per i file conteneva un byte nullo, che i file system e gli strumenti di ricerca non possono accettare. Read, Write, Edit, NotebookEdit, Glob e Grep effettuano questo controllo, e il messaggio indica lo strumento e l'argomento:

4317 4337 

4318```text theme={null}4338```text theme={null}

4319Read file_path cannot contain null bytes (\0). Remove the null byte and try again.4339Read file_path cannot contain null bytes (\0). Remove the null byte and try again.

4320```4340```

4321 4341 

4322La chiamata allo strumento fallisce, Claude vede l'errore, e il turno continua.4342La chiamata allo strumento fallisce, Claude vede l'errore e il turno prosegue.

4323 4343 

4324**Cosa fare:**4344**Cosa fare:**

4325 4345 

4326* Niente da parte tua: l'errore viene restituito a Claude come risultato dello strumento, e il messaggio stesso dice a Claude di rimuovere il byte null e riprovare4346* Nulla da parte tua: l'errore viene restituito a Claude come risultato dello strumento, e il messaggio stesso dice a Claude di rimuovere il byte nullo e riprovare

4327 4347 

4328Prima della v2.1.281, un byte null in un percorso di Read, Write, Edit o NotebookEdit terminava l'intero turno con un errore che nominava `Path contains null bytes`, e lo strumento non veniva mai eseguito.4348Prima della v2.1.281, un byte nullo in un percorso di Read, Write, Edit o NotebookEdit terminava l'intero turno con un errore che indicava `Path contains null bytes`, e lo strumento non veniva mai eseguito.

4329 4349 

4330<h3 id="subagent-type-is-required">4350<h3 id="subagent-type-is-required">

4331 subagent\_type is required4351 subagent\_type is required


4335subagent_type is required: the general-purpose agent is not available in this session. Available agents: ...4355subagent_type is required: the general-purpose agent is not available in this session. Available agents: ...

4336```4356```

4337 4357 

4338Claude ha chiamato lo [strumento Agent](/docs/it/tools-reference#agent-tool-behavior) senza un `subagent_type`, e questa sessione non ha un [subagent general-purpose](/docs/it/sub-agents#built-in-subagents) su cui ripiegare. Questo accade in due configurazioni:4358Claude ha chiamato lo [strumento Agent](/docs/it/tools-reference#agent-tool-behavior) senza un `subagent_type`, e questa sessione non ha alcun [subagent general-purpose](/docs/it/sub-agents#built-in-subagents) da usare come alternativa. Questo accade in due configurazioni:

4339 4359 

4340* [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/docs/it/env-vars) è impostato in modalità non interattiva, il che rimuove ogni subagent integrato4360* [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/docs/it/env-vars) è impostata in modalità non interattiva, il che rimuove tutti i subagent integrati

4341* L'agente del thread principale della sessione ha un'[allowlist `tools: Agent(...)`](/docs/it/sub-agents#restrict-which-subagents-can-be-spawned) che esclude `general-purpose`4361* L'agente del thread principale della sessione ha un'[allowlist `tools: Agent(...)`](/docs/it/sub-agents#restrict-which-subagents-can-be-spawned) che esclude `general-purpose`

4342 4362 

4343**Cosa fare:**4363**Cosa fare:**

4344 4364 

4345* Di solito niente: il messaggio elenca i subagent che la sessione ha, quindi Claude può riprovare con uno di essi4365* Di solito nulla: il messaggio elenca i subagent di cui la sessione dispone, quindi Claude può riprovare con uno di essi

4346* Se Claude continua a fallire, aggiungi `general-purpose` all'allowlist `tools: Agent(...)`, o rimuovi l'impostazione di `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS`4366* Se Claude continua a fallire, aggiungi `general-purpose` all'allowlist `tools: Agent(...)`, oppure rimuovi l'impostazione di `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS`

4347 4367 

4348Prima della v2.1.235, la stessa chiamata falliva con `Agent type 'general-purpose' not found`.4368Prima della v2.1.235, la stessa chiamata falliva con `Agent type 'general-purpose' not found`.

4349 4369 

4350<h3 id="memory-index-is-over-its-read-limit">4370<h3 id="memory-index-is-over-its-read-limit">

4351 Memory index is over its read limit4371 L'indice della memoria supera il limite di lettura

4352</h3>4372</h3>

4353 4373 

4354Claude ha scritto nell'indice della [memoria automatica](/docs/it/memory#auto-memory) `MEMORY.md` e l'ha lasciato oltre uno dei suoi limiti di lettura: 200 righe o 25KB. La scrittura è riuscita, ma solo le prime 200 righe o 25KB, a seconda di quale limite viene raggiunto per primo, vengono caricate all'inizio di una sessione, quindi tutto ciò che supera il limite viene scartato ogni volta che l'indice viene letto. Prima della v2.1.210, un indice oltre il limite veniva silenziosamente troncato al caricamento successivo senza alcun segnale al momento della scrittura.4374Claude ha scritto nell'indice `MEMORY.md` della [memoria automatica](/docs/it/memory#auto-memory) lasciandolo oltre uno dei suoi limiti di lettura: 200 righe o 25KB. La scrittura è riuscita, ma all'avvio di una sessione vengono caricate solo le prime 200 righe o i primi 25KB, a seconda di quale limite si raggiunge per primo, quindi tutto ciò che supera il limite viene scartato ogni volta che l'indice viene letto. Prima della v2.1.210, un indice oltre il limite veniva troncato silenziosamente al caricamento successivo senza alcun segnale al momento della scrittura.

4355 4375 

4356```text theme={null}4376```text theme={null}

4357Error: this write left the memory index at MEMORY.md at 214 lines, over its 200-line read limit. The write succeeded, but everything past the limit is silently dropped each time the index is loaded — entries at the end are already invisible to readers. Rewrite it to under 140 lines now: keep one line per entry, move detail into topic files, and merge or drop stale entries.4377Error: this write left the memory index at MEMORY.md at 214 lines, over its 200-line read limit. The write succeeded, but everything past the limit is silently dropped each time the index is loaded — entries at the end are already invisible to readers. Rewrite it to under 140 lines now: keep one line per entry, move detail into topic files, and merge or drop stale entries.

4358```4378```

4359 4379 

4360Solo il contenuto che viene caricato conta ai fini dei limiti. Il frontmatter YAML e i commenti HTML a livello di blocco vengono rimossi prima che l'indice venga caricato, quindi sono esclusi dalla misurazione. Prima della v2.1.211, Claude Code misurava il file grezzo, e il frontmatter o i commenti potevano attivare questo errore anche quando il contenuto caricato rientrava nei limiti.4380Ai fini dei limiti conta solo il contenuto che viene caricato. Il frontmatter YAML e i commenti HTML a livello di blocco vengono rimossi prima del caricamento dell'indice, quindi sono esclusi dalla misurazione. Prima della v2.1.211, Claude Code misurava il file grezzo, e il frontmatter o i commenti potevano provocare questo errore anche quando il contenuto caricato rientrava nei limiti.

4361 4381 

4362Claude Code consegna l'errore a Claude dopo la scrittura invece di stamparlo come banner nel tuo terminale, quindi potresti notarlo solo nella trascrizione.4382Claude Code consegna l'errore a Claude dopo la scrittura invece di mostrarlo come banner nel tuo terminale, quindi potresti notarlo solo nella trascrizione.

4363 4383 

4364Quando la scrittura di Claude porta il file vicino a un limite senza superarlo, Claude Code restituisce un promemoria più blando per compattare l'indice invece di questo errore.4384Quando la scrittura di Claude porta il file vicino a un limite senza superarlo, Claude Code restituisce, invece di questo errore, un promemoria più blando per compattare l'indice.

4365 4385 

4366**Cosa fare:**4386**Cosa fare:**

4367 4387 

4368* Lascia che Claude riscriva `MEMORY.md`, o chiediglielo: mantenere una riga per voce, spostare i dettagli nei file di argomento, e fare il merge delle voci obsolete o eliminarle4388* Lascia che Claude riscriva `MEMORY.md`, o chiediglielo: una riga per voce, sposta i dettagli nei file tematici e unisci o elimina le voci obsolete

4369* Per ridurre l'indice tu stesso, consulta [Audit and edit your memory](/docs/it/memory#audit-and-edit-your-memory)4389* Per ridurre tu stesso l'indice, consulta [Verificare e modificare la memoria](/docs/it/memory#audit-and-edit-your-memory)

4370 4390 

4371<h3 id="pkill-pattern-matches-the-claude-code-process">4391<h3 id="pkill-pattern-matches-the-claude-code-process">

4372 pkill pattern matches the Claude Code process4392 Il pattern di pkill corrisponde al processo di Claude Code

4373</h3>4393</h3>

4374 4394 

4375Un comando `pkill` in una chiamata allo strumento Bash ha usato un pattern, tipicamente con `-f`, che corrisponde al processo stesso di Claude Code, quindi Claude Code rifiuta il comando invece di lasciare che termini la sessione. Claude Code testa il pattern con `pgrep` prima di eseguire `pkill` e rifiuta quando il proprio ID di processo è nel risultato. Il controllo viene eseguito solo su Linux; su macOS, `pkill` viene eseguito senza modifiche. Prima della v2.1.214, il comando veniva eseguito, e un pattern corrispondente terminava la sessione di Claude Code a metà turno.4395Un comando `pkill` in una chiamata allo strumento Bash ha usato un pattern, tipicamente con `-f`, che corrisponde al processo stesso di Claude Code, quindi Claude Code rifiuta il comando invece di lasciargli terminare la sessione. Claude Code verifica il pattern con `pgrep` prima di eseguire `pkill` e rifiuta quando il proprio ID di processo compare nel risultato. Il controllo viene eseguito solo su Linux; su macOS, `pkill` viene eseguito senza modifiche. Prima della v2.1.214, il comando veniva eseguito, e un pattern corrispondente terminava la sessione di Claude Code a metà turno.

4376 4396 

4377```text theme={null}4397```text theme={null}

4378pkill: refusing to run — this pattern matches the Claude CLI process (PID 12345). Narrow the pattern, or target your own children with `pkill -P $$ ...`.4398pkill: refusing to run — this pattern matches the Claude CLI process (PID 12345). Narrow the pattern, or target your own children with `pkill -P $$ ...`.

4379```4399```

4380 4400 

4381Il rifiuto appare nel risultato dello strumento Bash invece che come banner nel tuo terminale, e Claude di solito corregge il comando autonomamente.4401Il rifiuto compare nel risultato dello strumento Bash invece che come banner nel tuo terminale, e di solito Claude corregge il comando da solo.

4382 4402 

4383**Cosa fare:**4403**Cosa fare:**

4384 4404 

4385* Restringi il pattern in modo che corrisponda solo al processo previsto, ad esempio il percorso completo del binario di destinazione invece di una breve sottostringa4405* Restringi il pattern in modo che corrisponda solo al processo desiderato, ad esempio il percorso completo del binario di destinazione invece di una breve sottostringa

4386* Per interrompere i processi avviati dalla shell corrente, usa `pkill -P $$` con il pattern, che limita la corrispondenza ai processi figli della shell stessa4406* Per arrestare i processi avviati dalla shell corrente, usa `pkill -P $$` con il pattern, che limita la corrispondenza ai processi figli della shell stessa

4387 4407 

4388<h3 id="failed-to-write-to-a-teammate-inbox">4408<h3 id="failed-to-write-to-a-teammate-inbox">

4389 Failed to write to a teammate's inbox4409 Failed to write to a teammate's inbox

4390</h3>4410</h3>

4391 4411 

4392Claude Code non è riuscito a scrivere un messaggio nel file della casella di posta di un compagno di squadra in `~/.claude/teams/{team-name}/inboxes/`, quindi il destinatario non ha ricevuto nulla. La scrittura fallisce quando Claude Code non può creare o aggiornare il file, ad esempio perché il disco è pieno, la directory non è scrivibile, o un altro agente mantiene il blocco della casella di posta troppo a lungo. Prima della v2.1.224, Claude Code segnalava il messaggio come inviato anche quando la scrittura falliva.4412Claude Code non è riuscito a scrivere un messaggio nel file della casella di posta di un compagno di squadra in `~/.claude/teams/{team-name}/inboxes/`, quindi il destinatario non ha ricevuto nulla. La scrittura fallisce quando Claude Code non riesce a creare o aggiornare il file, ad esempio perché il disco è pieno, la directory non è scrivibile o un altro agente mantiene il lock della casella di posta troppo a lungo. Prima della v2.1.224, Claude Code segnalava il messaggio come inviato anche quando la scrittura falliva.

4393 4413 

4394L'errore appare nel risultato dello strumento dell'agente mittente invece che come banner nel tuo terminale, e il suo testo dice a Claude di riprovare:4414L'errore compare nel risultato dello strumento dell'agente mittente invece che come banner nel tuo terminale, e il suo testo dice a Claude di riprovare:

4395 4415 

4396```text theme={null}4416```text theme={null}

4397Failed to write to researcher's inbox — nothing was sent. Try again, or message the lead.4417Failed to write to researcher's inbox — nothing was sent. Try again, or message the lead.

4398```4418```

4399 4419 

4400I messaggi strutturati del protocollo del [team di agenti](/docs/it/agent-teams) falliscono allo stesso modo, e l'errore nomina il messaggio non consegnato: quando Claude Code non riesce a scrivere un'approvazione del piano, un rifiuto del piano, una richiesta di arresto o un rifiuto di arresto, l'errore riporta `Failed to write the <message> to <name>'s inbox — nothing was sent`. Il `plan approval` in quell'elenco è la decisione del lead che approva il piano di un compagno di squadra; l'invio del piano da parte del compagno di squadra è il messaggio separato `plan approval request`. Quel messaggio e altri due messaggi del protocollo hanno un proprio testo e una propria conseguenza:4420I messaggi strutturati del protocollo del [team di agenti](/docs/it/agent-teams) falliscono allo stesso modo, e l'errore indica il messaggio non consegnato: quando Claude Code non riesce a scrivere un'approvazione del piano, un rifiuto del piano, una richiesta di arresto o un rifiuto dell'arresto, l'errore riporta `Failed to write the <message> to <name>'s inbox — nothing was sent`. La `plan approval` in quell'elenco è la decisione del lead che approva il piano di un compagno di squadra; l'invio del piano da parte del compagno di squadra è il messaggio separato `plan approval request`. Quel messaggio e altri due messaggi del protocollo hanno un proprio testo e una propria conseguenza:

4401 4421 

4402* `Failed to write the plan approval request to the lead's inbox — plan not submitted; try again`: il piano del compagno di squadra non ha mai raggiunto il lead, e il compagno di squadra rimane in plan mode finché un nuovo invio non riesce4422* `Failed to write the plan approval request to the lead's inbox — plan not submitted; try again`: il piano del compagno di squadra non ha mai raggiunto il lead, e il compagno di squadra rimane in plan mode fino a un nuovo invio riuscito

4403* `The permission request could not be delivered to the team lead (mailbox write failed)`: la richiesta di permesso del compagno di squadra non ha mai raggiunto il lead, quindi nessuno ha approvato la chiamata allo strumento4423* `The permission request could not be delivered to the team lead (mailbox write failed)`: la richiesta di permesso del compagno di squadra non ha mai raggiunto il lead, quindi nessuno ha approvato la chiamata allo strumento

4404* `The confirmation could not be written to team-lead's inbox.`: l'approvazione dell'arresto in sé ha avuto effetto e il compagno di squadra esce; manca solo la conferma al lead4424* `The confirmation could not be written to team-lead's inbox.`: l'approvazione dell'arresto in sé ha avuto effetto e il compagno di squadra termina; manca solo la conferma al lead

4405 4425 

4406Quando sei tu a mandare un messaggio a un compagno di squadra, digitando `@name` seguito dal messaggio nella sessione del lead, lo stesso errore appare come notifica, `Couldn't write to @name's inbox — message not sent. Try again.`, e Claude Code mantiene il tuo testo nella casella del prompt in modo che tu possa inviarlo di nuovo.4426Quando sei tu a inviare un messaggio a un compagno di squadra, digitando `@name` seguito dal messaggio nella sessione del lead, lo stesso errore compare come notifica, `Couldn't write to @name's inbox — message not sent. Try again.`, e Claude Code mantiene il tuo testo nella casella del prompt così puoi inviarlo di nuovo.

4407 4427 

4408**Cosa fare:**4428**Cosa fare:**

4409 4429 

4410* Chiedi al mittente di inviare di nuovo il messaggio; la contesa per il blocco della casella di posta è transitoria e si risolve con un nuovo tentativo4430* Chiedi al mittente di inviare di nuovo il messaggio; la contesa per il lock della casella di posta è temporanea e si risolve con un nuovo tentativo

4411* Controlla lo spazio libero su disco, e verifica che `~/.claude/teams` e i file al suo interno siano scrivibili dal tuo utente4431* Controlla lo spazio libero su disco e verifica che `~/.claude/teams` e i file al suo interno siano scrivibili dal tuo utente

4412 4432 

4413<h3 id="teammate-agent-definition-not-restored">4433<h3 id="teammate-agent-definition-not-restored">

4414 Teammate's agent definition was not restored4434 La definizione dell'agente del compagno di squadra non è stata ripristinata

4415</h3>4435</h3>

4416 4436 

4417Claude ha mandato un messaggio a un compagno di squadra arrestato di un [team di agenti](/docs/it/agent-teams), e Claude Code l'ha riattivato senza riapplicare la [definizione del subagent](/docs/it/agent-teams#use-subagent-definitions-for-teammates) da cui era stato generato, perché il suo file di definizione proveniva da una cartella senza fiducia salvata. L'avviso segue il resoconto della ripresa nel risultato dello strumento dell'agente mittente:4437Claude ha inviato un messaggio a un compagno di squadra arrestato di un [team di agenti](/docs/it/agent-teams), e Claude Code lo ha riattivato senza riapplicare la [definizione del subagent](/docs/it/agent-teams#use-subagent-definitions-for-teammates) da cui era stato generato. L'avviso segue il resoconto della ripresa nel risultato dello strumento dell'agente mittente e indica il motivo. Quando il file di definizione proviene da una cartella senza fiducia salvata, riporta:

4418 4438 

4419```text wrap theme={null}4439```text wrap theme={null}

4420Its agent definition was not restored: the folder its definition file came from is not trusted (source: projectSettings), so the teammate is running with the team-essential tools and no custom instructions. To restore it, the user needs to run Claude Code in that folder once and accept the trust dialog (the --debug log names the folder); do not change trust settings on the user's behalf.4440Its agent definition was not restored: the folder its definition file came from is not trusted (source: projectSettings), so the teammate is running with the team-essential tools and no custom instructions. To restore it, the user needs to run Claude Code in that folder once and accept the trust dialog (the --debug log names the folder); do not change trust settings on the user's behalf.

4421```4441```

4422 4442 

4423Il controllo si applica a una definizione nella directory `.claude/agents/` del progetto o di una directory `--add-dir`, e accettare la finestra di dialogo di fiducia per una cartella padre non lo soddisfa.4443Il controllo si applica a una definizione nella directory `.claude/agents/` del progetto o di una directory `--add-dir`, e accettare la finestra di dialogo di fiducia per una cartella padre non è sufficiente.

4424 4444 

4425**Cosa fare:**4445**Cosa fare:**

4426 4446 

4427* Esegui `claude` nella cartella indicata dal [log di debug](/docs/it/debug-your-config) e accetta la finestra di dialogo di fiducia. La definizione viene riapplicata la prossima volta che Claude Code riattiva il compagno di squadra; non è necessario riavviare la sessione del lead4447* Esegui `claude` nella cartella indicata dal [log di debug](/docs/it/debug-your-config) e accetta la finestra di dialogo di fiducia. La definizione viene riapplicata la prossima volta che Claude Code riattiva il compagno di squadra; non devi riavviare la sessione del lead

4428* Oppure imposta la voce `hasTrustDialogAccepted` su `true` in `~/.claude.json`, usando la chiave esatta `projects["<path>"]` che il log di debug stampa4448* Oppure imposta la voce `hasTrustDialogAccepted` su `true` in `~/.claude.json`, usando esattamente la chiave `projects["<path>"]` stampata dal log di debug

4429 4449 

4430<h3 id="message-too-large-for-cross-session-delivery">4450<h3 id="message-too-large-for-cross-session-delivery">

4431 Message too large for cross-session delivery4451 Message too large for cross-session delivery

4432</h3>4452</h3>

4433 4453 

4434Il [messaggio cross-session](/docs/it/cross-session-messaging) di Claude a un'altra delle tue sessioni su questa macchina era troppo lungo per essere inviato. Claude Code l'ha rifiutato, e la sessione ricevente non ha ricevuto nulla. Il rifiuto appare nel risultato dello strumento della sessione mittente, non come banner nel tuo terminale. Indica entrambe le dimensioni e come far rientrare il messaggio nel limite:4454Il [messaggio tra sessioni](/docs/it/cross-session-messaging) di Claude verso un'altra delle tue sessioni su questa macchina era troppo lungo per essere inviato. Claude Code lo ha rifiutato, e la sessione ricevente non ha ricevuto nulla. Il rifiuto compare nel risultato dello strumento della sessione mittente, non come banner nel tuo terminale. Indica entrambe le dimensioni e come far rientrare il messaggio nel limite:

4435 4455 

4436```text wrap theme={null}4456```text wrap theme={null}

4437Failed to send to api-worker: Message too large for cross-session delivery: the serialized message is 1,203,844 characters and the limit is 1,048,576. Shorten the message text — put bulk content in a file the recipient can read rather than in the message — or split it into smaller messages.4457Failed to send to api-worker: Message too large for cross-session delivery: the serialized message is 1,203,844 characters and the limit is 1,048,576. Shorten the message text — put bulk content in a file the recipient can read rather than in the message — or split it into smaller messages.


4441 4461 

4442**Cosa fare:**4462**Cosa fare:**

4443 4463 

4444* Chiedi a Claude di riassumere il messaggio, o di mettere il contenuto più corposo in un file e inviare il percorso del file4464* Chiedi a Claude di riassumere il messaggio, oppure di mettere il contenuto voluminoso in un file e inviare il percorso del file

4445* Chiedi a Claude di suddividere il contenuto in diversi messaggi più brevi4465* Chiedi a Claude di suddividere il contenuto in più messaggi più brevi

4446 4466 

4447Prima della v2.1.235, Claude Code segnalava un messaggio troppo grande come inviato. La sessione ricevente lo scartava senza leggerlo.4467Prima della v2.1.235, Claude Code segnalava come inviato un messaggio troppo grande. La sessione ricevente lo scartava senza leggerlo.

4448 4468 

4449<h3 id="too-many-messages-to-this-session-just-now">4469<h3 id="too-many-messages-to-this-session-just-now">

4450 Too many messages to this session just now4470 Too many messages to this session just now

4451</h3>4471</h3>

4452 4472 

4453Claude ha inviato una raffica rapida di [messaggi cross-session](/docs/it/cross-session-messaging) a una delle tue sessioni su questa macchina, e la raffica ha raggiunto quanto accetta la casella di posta di quella sessione. Claude Code ha rifiutato l'invio successivo, e la sessione ricevente non ha ricevuto nulla da esso. Il rifiuto appare nel risultato dello strumento della sessione mittente, non come banner nel tuo terminale:4473Claude ha inviato una rapida raffica di [messaggi tra sessioni](/docs/it/cross-session-messaging) a una delle tue sessioni su questa macchina, e la raffica ha raggiunto quanto la casella di posta di quella sessione accetta. Claude Code ha rifiutato l'invio successivo, e la sessione ricevente non ne ha ricevuto nulla. Il rifiuto compare nel risultato dello strumento della sessione mittente, non come banner nel tuo terminale:

4454 4474 

4455```text wrap theme={null}4475```text wrap theme={null}

4456Failed to send to api-worker: Too many messages to this session just now: 30 were sent recently and more would be dropped by its rate limit, so this one was not sent. Batch what remains into one message, or wait a little before sending more.4476Failed to send to api-worker: Too many messages to this session just now: 30 were sent recently and more would be dropped by its rate limit, so this one was not sent. Batch what remains into one message, or wait a little before sending more.


4458 4478 

4459**Cosa fare:**4479**Cosa fare:**

4460 4480 

4461* Di solito niente: Claude raggruppa il contenuto rimanente in un unico messaggio, o aspetta prima di inviarne altri4481* Di solito nulla: Claude raggruppa il contenuto rimanente in un unico messaggio, oppure attende prima di inviarne altri

4462* Se sei stato tu a richiedere la raffica, chiedi a Claude di combinare ciò che rimane in un singolo messaggio4482* Se sei stato tu a sollecitare la raffica, chiedi a Claude di combinare ciò che resta in un unico messaggio

4463 4483 

4464Prima della v2.1.236, Claude Code segnalava questi invii come inviati. La sessione ricevente li scartava senza leggerli.4484Prima della v2.1.236, Claude Code segnalava questi invii come riusciti. La sessione ricevente li scartava senza leggerli.

4465 4485 

4466<h3 id="cross-session-message-dropped-at-the-inbox">4486<h3 id="cross-session-message-dropped-at-the-inbox">

4467 Cross-session message was dropped at the recipient session's inbox4487 Cross-session message was dropped at the recipient session's inbox

4468</h3>4488</h3>

4469 4489 

4470Claude ha inviato un [messaggio cross-session](/docs/it/cross-session-messaging) a un'altra delle tue sessioni su questa macchina, e la casella di posta di quella sessione l'ha scartato prima che Claude in quella sessione lo leggesse. La riga indica l'indirizzo del destinatario e, quando il destinatario ha fornito un motivo, aggiunge il motivo dopo un trattino:4490Claude ha inviato un [messaggio tra sessioni](/docs/it/cross-session-messaging) a un'altra delle tue sessioni su questa macchina, e la casella di posta di quella sessione lo ha scartato prima che Claude in quella sessione lo leggesse. La riga indica il destinatario e, quando il destinatario ha fornito un motivo, aggiunge il motivo dopo un trattino:

4471 4491 

4472```text wrap theme={null}4492```text wrap theme={null}

4473Cross-session message was dropped at the recipient session's inbox (recipient: uds:/tmp/cc-socks/13605.sock) and not delivered — its queue of undelivered peer messages was full. Claude was told not to resend right away.4493Cross-session message was dropped at the recipient session's inbox (recipient: uds:/tmp/cc-socks/13605.sock) and not delivered — its queue of undelivered peer messages was full. Claude was told not to resend right away.

4474```4494```

4475 4495 

4476Una riga può riguardare diversi messaggi scartati. In tal caso inizia al plurale, ad esempio `Cross-session messages (12) were dropped`. Per scoprire a quale sessione appartiene un indirizzo, confrontalo con la [riga `Peer address`](/docs/it/cross-session-messaging#the-sessions-inbox-socket) che `/status` mostra in ogni sessione.4496Una sola riga può riguardare più messaggi scartati. In tal caso inizia al plurale, ad esempio `Cross-session messages (12) were dropped`. Per scoprire a quale sessione appartiene un indirizzo, confrontalo con la [riga `Peer address`](/docs/it/cross-session-messaging#the-sessions-inbox-socket) che `/status` mostra in ciascuna sessione.

4477 4497 

4478Dopo il trattino, la riga fornisce uno o più di questi motivi:4498Dopo il trattino, la riga riporta uno o più di questi motivi:

4479 4499 

4480* `its queue of undelivered peer messages was full`: il destinatario conteneva già tanti messaggi non consegnati da altre sessioni quanti ne consente la sua coda4500* `its queue of undelivered peer messages was full`: il destinatario conteneva già tanti messaggi non consegnati provenienti da altre sessioni quanti ne consente la sua coda

4481* `you sent faster than that session accepts`: i messaggi della sessione mittente sono arrivati più velocemente di quanto il destinatario accetti da un singolo mittente4501* `you sent faster than that session accepts`: i messaggi della sessione mittente sono arrivati più velocemente di quanto il destinatario accetti da un singolo mittente

4482* `it repeated your previous message`: il messaggio era identico a uno che la sessione mittente aveva inviato a questo destinatario poco prima4502* `it repeated your previous message`: il messaggio era identico a uno che la sessione mittente aveva inviato a questo destinatario poco prima

4483* `a relay loop between sessions was cut`: il messaggio proseguiva una catena di sessioni che si scambiavano messaggi, e la catena era passata per il destinatario troppe volte o era diventata troppo lunga4503* `a relay loop between sessions was cut`: il messaggio proseguiva una catena di sessioni che si scambiavano messaggi, e la catena era passata troppe volte per il destinatario o era diventata troppo lunga

4484 4504 

4485**Cosa fare:**4505**Cosa fare:**

4486 4506 

4487* Considera che il destinatario non abbia mai visto i messaggi scartati. Claude Code dice lo stesso a Claude, e gli dice di includere tutto ciò che conta ancora in un unico messaggio successivo invece di inviarlo di nuovo subito4507* Presumi che il destinatario non abbia mai visto i messaggi scartati. Claude Code dice lo stesso a Claude, e gli dice di includere tutto ciò che è ancora rilevante in un unico messaggio successivo invece di inviare di nuovo subito

4488* Se le tue sessioni si scambiano aggiornamenti frequenti, chiedi a Claude di inviare meno messaggi ma più corposi, come un unico resoconto quando una sessione termina il suo lavoro4508* Se le tue sessioni si inviano aggiornamenti frequenti, chiedi a Claude di inviare messaggi meno numerosi e più corposi, come un unico resoconto quando una sessione termina il proprio lavoro

4489* Per `a relay loop between sessions was cut`, digita tu stesso l'istruzione successiva in una delle sessioni. Un messaggio che Claude invia in risposta a un tuo prompt inizia una nuova catena4509* Per `a relay loop between sessions was cut`, digita tu stesso l'istruzione successiva in una delle sessioni. Un messaggio che Claude invia in risposta a un tuo prompt avvia una nuova catena

4490 4510 

4491Prima della v2.1.238, la sessione mittente non riceveva alcun resoconto quando la casella di posta del destinatario scartava un messaggio.4511Prima della v2.1.238, la sessione mittente non riceveva alcuna segnalazione quando la casella di posta del destinatario scartava un messaggio.

4492 4512 

4493<h3 id="refusing-to-send-a-cross-session-message">4513<h3 id="refusing-to-send-a-cross-session-message">

4494 Refusing to send a cross-session message4514 Refusing to send a cross-session message

4495</h3>4515</h3>

4496 4516 

4497Prima che Claude Code scriva un [messaggio cross-session](/docs/it/cross-session-messaging) a un'altra delle tue sessioni su questa macchina, verifica che il socket della casella di posta della sessione di destinazione sia l'endpoint a cui il messaggio era indirizzato. Quando un controllo fallisce, Claude Code rifiuta l'invio nella sessione mittente, e la sessione di destinazione non riceve nulla. Per un messaggio inviato da Claude, il rifiuto appare nel risultato dello strumento della sessione mittente:4517Prima di scrivere un [messaggio tra sessioni](/docs/it/cross-session-messaging) verso un'altra delle tue sessioni su questa macchina, Claude Code verifica che il socket della casella di posta della sessione di destinazione sia l'endpoint a cui il messaggio era indirizzato. Quando un controllo fallisce, Claude Code rifiuta l'invio nella sessione mittente, e la sessione di destinazione non riceve nulla. Per un messaggio inviato da Claude, il rifiuto compare nel risultato dello strumento della sessione mittente:

4498 4518 

4499```text theme={null}4519```text theme={null}

4500Failed to send to api-worker: Refusing to send: reply target is a symlink4520Failed to send to api-worker: Refusing to send: reply target is a symlink

4501```4521```

4502 4522 

4503Il testo dopo `Refusing to send:` indica il controllo che è fallito:4523Il testo dopo `Refusing to send:` indica il controllo non superato:

4504 4524 

4505* `reply target is a symlink`: nel percorso del socket della sessione di destinazione si trova un collegamento simbolico. Claude Code non consegna attraverso di esso, perché un collegamento in quel punto potrebbe reindirizzare il messaggio a un endpoint che la sessione di destinazione non ha creato.4525* `reply target is a symlink`: nel percorso del socket della sessione di destinazione si trova un collegamento simbolico. Claude Code non consegna attraverso di esso, perché un collegamento in quel punto potrebbe reindirizzare il messaggio verso un endpoint che la sessione di destinazione non ha creato.

4506* `cannot vet reply target`: Claude Code non è riuscito in alcun modo a ispezionare il percorso di destinazione, ad esempio perché la lettura è fallita con un errore di permesso.4526* `cannot vet reply target`: Claude Code non è riuscito affatto a ispezionare il percorso di destinazione, ad esempio perché la lettura è fallita con un errore di permesso.

4507 4527 

4508**Cosa fare:**4528**Cosa fare:**

4509 4529 

4510* Di solito niente: i controlli impediscono a un messaggio di raggiungere un endpoint diverso dalla sessione a cui era indirizzato, e non è stato inviato nulla4530* Di solito nulla: i controlli impediscono a un messaggio di raggiungere un endpoint diverso dalla sessione a cui era indirizzato, e non è stato inviato nulla

4511* Se `reply target is a symlink` si ripete per una sessione, verifica cosa ha creato un collegamento nel percorso del socket di quella sessione, mostrato nel suo `/status` sotto `Peer address`4531* Se `reply target is a symlink` si ripete per una sessione, verifica cosa ha creato un collegamento nel percorso del socket di quella sessione, mostrato nel suo `/status` sotto `Peer address`

4512 4532 

4513<h3 id="refusing-after-a-symlink-changed">4533<h3 id="refusing-after-a-symlink-changed">

4514 Refusing to read, write, or search a path4534 Refusing to read, write, or search a path

4515</h3>4535</h3>

4516 4536 

4517Claude Code verifica le [regole di permesso](/docs/it/permissions#read-and-edit) di un percorso file, poi conferma di nuovo quella risoluzione quando lo strumento apre il file o avvia la ricerca. Quando non riesce a confermare che il percorso conduca ancora alla posizione approvata dal controllo, Claude Code rifiuta l'operazione invece di seguirlo. Il rifiuto appare nel risultato dello strumento:4537Claude Code controlla le [regole di permesso](/docs/it/permissions#read-and-edit) di un percorso di file, poi conferma di nuovo quella risoluzione quando lo strumento apre il file o avvia la ricerca. Quando non riesce a confermare che il percorso porti ancora alla posizione approvata dal controllo, Claude Code rifiuta l'operazione invece di seguirlo. Il rifiuto compare nel risultato dello strumento:

4518 4538 

4519```text wrap theme={null}4539```text wrap theme={null}

4520Refusing to read /path/to/file: its symlink resolution changed after permission was checked (a link on the way now leads somewhere the check did not see). If a link in the working directory is being rewritten concurrently, stop that and retry.4540Refusing to read /path/to/file: its symlink resolution changed after permission was checked (a link on the way now leads somewhere the check did not see). If a link in the working directory is being rewritten concurrently, stop that and retry.


4522 4542 

4523Ogni rifiuto indica il proprio motivo:4543Ogni rifiuto indica il proprio motivo:

4524 4544 

4525* `its symlink resolution changed after permission was checked`: un collegamento simbolico lungo il percorso, o in una radice di ricerca di Grep o Glob, è stato sostituito tra il controllo dei permessi e l'operazione. In un rifiuto di lettura, la frase tra parentesi indica quale confronto è fallito.4545* `its symlink resolution changed after permission was checked`: un collegamento simbolico lungo il percorso, o nella radice di una ricerca Grep o Glob, è stato sostituito tra il controllo dei permessi e l'operazione. In un rifiuto di lettura, la frase tra parentesi indica quale confronto è fallito.

4526* `its parent-directory symlink resolution changed after permission was checked`: una directory attraversata dal percorso di scrittura non si risolve più nella posizione approvata4546* `its parent-directory symlink resolution changed after permission was checked`: una directory attraversata dal percorso di scrittura non si risolve più nella posizione approvata

4527* `where it leads on disk could not be determined (a link on the way could not be examined, or the links do not resolve)`: Claude Code non è riuscito a seguire il percorso fino a una posizione finale su disco, ad esempio perché i collegamenti simbolici lungo di esso formano un ciclo4547* `where it leads on disk could not be determined (a link on the way could not be examined, or the links do not resolve)`: Claude Code non è riuscito a seguire il percorso fino a una posizione finale su disco, ad esempio perché i collegamenti simbolici lungo di esso formano un ciclo

4528* `it is a symbolic link. Write to the link's target path instead`: un collegamento simbolico si trova nella posizione di scrittura richiesta stessa, ad esempio un `CLAUDE.md` che è un collegamento simbolico a `AGENTS.md`; il messaggio indirizza Claude alla destinazione del collegamento4548* `it is a symbolic link. Write to the link's target path instead`: nella posizione di scrittura richiesta si trova essa stessa un collegamento simbolico, ad esempio un `CLAUDE.md` che è un collegamento simbolico ad `AGENTS.md`; il messaggio indirizza Claude verso la destinazione del collegamento

4529* `Refusing to write through symlink: <path>. Resolve the symlink and pass the real target path explicitly.`: la stessa condizione rilevata quando un altro componente di scrittura apre il file, come una scrittura su un `.mcp.json` che è un collegamento simbolico4549* `Refusing to write through symlink: <path>. Resolve the symlink and pass the real target path explicitly.`: la stessa condizione rilevata quando un altro processo di scrittura apre il file, come una scrittura su un `.mcp.json` che è un collegamento simbolico

4530* `Refusing to write into symlinked directory: <path>`: la directory che contiene il file è essa stessa un collegamento simbolico, ad esempio la directory `.claude/` di un progetto collegata a un'altra posizione4550* `Refusing to write into symlinked directory: <path>`: la directory che contiene il file è essa stessa un collegamento simbolico, ad esempio la directory `.claude/` di un progetto collegata a un'altra posizione

4531* `a path one of its Read deny rules is written through changed while the search was being prepared. Retry.`: una regola di negazione `Read` per la ricerca nomina un percorso che passa attraverso un collegamento simbolico, e quel collegamento è cambiato mentre Claude Code stava preparando la ricerca4551* `a path one of its Read deny rules is written through changed while the search was being prepared. Retry.`: una regola di negazione `Read` per la ricerca indica un percorso che passa attraverso un collegamento simbolico, e quel collegamento è cambiato mentre Claude Code preparava la ricerca

4532* `it could not be opened (EACCES) — it is unreadable, or is being replaced concurrently.`: la radice di ricerca esiste ma non è stato possibile aprirla; il codice tra parentesi è l'errore del sistema operativo4552* `it could not be opened (EACCES) — it is unreadable, or is being replaced concurrently.`: la radice della ricerca esiste ma non è stato possibile aprirla; il codice tra parentesi è l'errore del sistema operativo

4533* `its permission check expired before it ran (too many concurrent file operations). Retry.`: Claude Code ha rimosso il record di approvazione, a causa di molte operazioni simultanee sui file, prima che lo strumento lo usasse; riprovare esegue un nuovo controllo dei permessi4553* `its permission check expired before it ran (too many concurrent file operations). Retry.`: Claude Code ha rimosso il record di approvazione a causa di molte operazioni simultanee sui file prima che lo strumento lo usasse; riprovare esegue un nuovo controllo dei permessi

4534* `ripgrep was found only by name on PATH, and a search outside the working directory cannot apply your Read deny rules in that configuration`: Claude Code non è riuscito a risolvere il binario `rg` in un percorso assoluto, quindi rifiuta le ricerche al di fuori della directory di lavoro invece di eseguirne una non coperta dalle tue regole di negazione4554* `ripgrep was found only by name on PATH, and a search outside the working directory cannot apply your Read deny rules in that configuration`: Claude Code non è riuscito a risolvere il binario `rg` in un percorso assoluto, quindi rifiuta le ricerche al di fuori della directory di lavoro invece di eseguirne una non coperta dalle tue regole di negazione

4535 4555 

4536**Cosa fare:**4556**Cosa fare:**

4537 4557 

4538* Di solito niente: il rifiuto raggiunge Claude come risultato dello strumento, e l'operazione rifiutata non viene eseguita4558* Di solito nulla: il rifiuto raggiunge Claude come risultato dello strumento, e l'operazione rifiutata non viene eseguita

4539* Se un rifiuto dovuto a un collegamento simbolico si ripete su un percorso, individua cosa continua a riscrivere un collegamento in quel punto, come uno strumento di build o un file watcher, oppure chiedi a Claude di usare il percorso risolto del file invece di quello collegato4559* Se un rifiuto relativo a un collegamento simbolico si ripete su un percorso, individua cosa continua a riscrivere un collegamento in quel punto, come uno strumento di build o un file watcher, oppure chiedi a Claude di usare il percorso risolto del file invece di quello collegato

4540* Se questo rifiuto appare per ogni file mentre Claude Code è in esecuzione su Windows all'interno di un AppContainer o di una sandbox con token limitato, aggiorna alla v2.1.265 o successiva4560* Se questo rifiuto compare per ogni file mentre Claude Code è in esecuzione su Windows all'interno di un AppContainer o di una sandbox con token limitato, aggiorna alla v2.1.265 o successiva

4541* Se su macOS appare un rifiuto di lettura per un file che nulla sta riscrivendo, come uno screenshot trascinato nel prompt, aggiorna alla v2.1.273 o successiva4561* Se su macOS compare un rifiuto di lettura per un file che nessuno sta riscrivendo, come uno screenshot trascinato nel prompt, aggiorna alla v2.1.273 o successiva

4542* Per il rifiuto relativo a ripgrep, installa ripgrep con il tuo gestore di pacchetti in modo che `rg` si risolva in un percorso assoluto su `PATH`, oppure mantieni le ricerche all'interno della directory di lavoro4562* Per il rifiuto relativo a ripgrep, installa ripgrep con il tuo gestore di pacchetti in modo che `rg` si risolva in un percorso assoluto nel `PATH`, oppure limita le ricerche alla directory di lavoro

4543 4563 

4544Prima della v2.1.251, Claude Code ricontrollava la risoluzione di un percorso solo per le scritture di file, quindi un collegamento sostituito dopo il controllo dei permessi poteva reindirizzare una lettura o una ricerca a una posizione diversa senza alcun messaggio. Tra questi, solo i rifiuti di scrittura relativi alla directory padre, alla scrittura attraverso un collegamento simbolico e alla directory collegata simbolicamente appaiono nelle versioni precedenti.4564Prima della v2.1.251, Claude Code ricontrollava la risoluzione di un percorso solo per le scritture di file, quindi un collegamento sostituito dopo il controllo dei permessi poteva reindirizzare una lettura o una ricerca verso una posizione diversa senza alcun messaggio. Tra questi, solo i rifiuti di scrittura relativi alla directory padre, alla scrittura attraverso un collegamento simbolico e alla directory collegata compaiono nelle versioni precedenti.

4545 4565 

4546Prima della v2.1.280, il rifiuto `where it leads on disk could not be determined` non appariva.4566Prima della v2.1.280, il rifiuto `where it leads on disk could not be determined` non compariva.

4547 4567 

4548<h3 id="task-output-swap-refused">4568<h3 id="task-output-swap-refused">

4549 Task output swap refused4569 Task output swap refused

4550</h3>4570</h3>

4551 4571 

4552Claude Code salva l'output di ogni comando Bash in un file all'interno della sua directory temporanea. Ogni volta che apre uno di questi file, verifica che il percorso conduca ancora al file che ha creato, senza alcun collegamento simbolico, collegamento fisico aggiuntivo o directory spostata che lo reindirizzi. Questo messaggio significa che quel controllo è fallito, quindi Claude Code ha rifiutato l'operazione invece di scrivere o leggere l'output attraverso quel percorso. Il messaggio appare nel risultato dello strumento Bash:4572Claude Code salva l'output di ogni comando Bash in un file all'interno della propria directory temporanea. Ogni volta che apre uno di questi file, verifica che il percorso porti ancora al file che ha creato, senza alcun collegamento simbolico, hard link aggiuntivo o directory spostata che lo reindirizzi. Questo messaggio indica che il controllo è fallito, quindi Claude Code ha rifiutato l'operazione invece di scrivere o leggere l'output attraverso quel percorso. Il messaggio compare nel risultato dello strumento Bash:

4553 4573 

4554```text wrap theme={null}4574```text wrap theme={null}

4555task output swap refused (tasks dir moved or linked): /private/tmp/claude-501/-Users-you-my-project/1f0e62dc-4b0a-4f5e-9c2d-8a7b6c5d4e3f/tasks/b7k2f9m3q.output. To recover: restart Claude Code with CLAUDE_CODE_TMPDIR set to a fresh directory; or, if /private/tmp/claude-501/-Users-you-my-project is a stray directory or a symbolic link that should not be there, remove that entry itself (not what it points to) and restart.4575task output swap refused (tasks dir moved or linked): /private/tmp/claude-501/-Users-you-my-project/1f0e62dc-4b0a-4f5e-9c2d-8a7b6c5d4e3f/tasks/b7k2f9m3q.output. To recover: restart Claude Code with CLAUDE_CODE_TMPDIR set to a fresh directory; or, if /private/tmp/claude-501/-Users-you-my-project is a stray directory or a symbolic link that should not be there, remove that entry itself (not what it points to) and restart.

4556```4576```

4557 4577 

4558Il testo tra parentesi indica il controllo che è fallito. Motivi come `output symlink was re-pointed`, `output file identity changed` e `not a regular file` segnalano tutti la stessa condizione: qualcosa nel percorso dell'output o lungo di esso non è più il file che Claude Code ha creato. Solo alcuni motivi includono una frase `To recover:`.4578Il testo tra parentesi indica il controllo non superato. Motivi come `output symlink was re-pointed`, `output file identity changed` e `not a regular file` segnalano tutti la stessa condizione: qualcosa nel percorso di output o lungo di esso non è più il file creato da Claude Code. Solo alcuni motivi includono una frase `To recover:`.

4559 4579 

4560Se il controllo fallisce mentre un comando è ancora in esecuzione, Claude Code interrompe il comando, e il suo risultato riporta:4580Se il controllo fallisce mentre un comando è ancora in esecuzione, Claude Code arresta il comando, e il suo risultato riporta:

4561 4581 

4562```text theme={null}4582```text theme={null}

4563Command killed: its output file was replaced or could no longer be verified4583Command killed: its output file was replaced or could no longer be verified


4566**Cosa fare:**4586**Cosa fare:**

4567 4587 

4568* Aggiorna alla v2.1.260 o successiva. Le versioni precedenti a volte mostravano questo messaggio anche quando non era presente alcun collegamento o directory spostata4588* Aggiorna alla v2.1.260 o successiva. Le versioni precedenti a volte mostravano questo messaggio anche quando non era presente alcun collegamento o directory spostata

4569* Riavvia Claude Code con [`CLAUDE_CODE_TMPDIR`](/docs/it/env-vars) impostato su una directory nuova4589* Riavvia Claude Code con [`CLAUDE_CODE_TMPDIR`](/docs/it/env-vars) impostata su una nuova directory

4570* Oppure controlla la directory del tuo progetto all'interno della directory temporanea di Claude Code, `/private/tmp/claude-501/-Users-you-my-project` nel messaggio di esempio. Se quel percorso è un collegamento simbolico, o una directory che non dovrebbe trovarsi lì, rimuovi il collegamento o la directory stessa invece della destinazione del collegamento, e riavvia Claude Code4590* Oppure controlla la directory del tuo progetto all'interno della directory temporanea di Claude Code, `/private/tmp/claude-501/-Users-you-my-project` nel messaggio di esempio. Se quel percorso è un collegamento simbolico, o una directory che non dovrebbe trovarsi lì, rimuovi il collegamento o la directory stessi invece della destinazione del collegamento, e riavvia Claude Code

4571* Se il rifiuto si ripete, un processo sta sostituendo, collegando o rimuovendo voci nella directory temporanea di Claude Code mentre la sessione è in esecuzione. Imposta [`CLAUDE_CODE_TMPDIR`](/docs/it/env-vars) su una directory non gestita da nient'altro e riavvia4591* Se il rifiuto si ripete, un processo sta sostituendo, collegando o rimuovendo voci nella directory temporanea di Claude Code mentre la sessione è in esecuzione. Imposta [`CLAUDE_CODE_TMPDIR`](/docs/it/env-vars) su una directory non gestita da nient'altro e riavvia

4572 4592 

4573<h3 id="disk-quota-or-temp-filesystem-is-full">4593<h3 id="disk-quota-or-temp-filesystem-is-full">

4574 Disk quota or temp filesystem is full4594 Quota del disco o file system temporaneo pieni

4575</h3>4595</h3>

4576 4596 

4577Claude Code salva l'output di ogni comando Bash e PowerShell in un file all'interno della sua directory temporanea. Quando un comando termina con un codice diverso da zero e senza alcun output, Claude Code verifica se il file system che contiene quel file ha esaurito lo spazio o gli inode, o se la tua quota disco su di esso è esaurita. In tal caso, nel risultato del comando appare una diagnostica al posto dell'output vuoto:4597Claude Code salva l'output di ogni comando Bash e PowerShell in un file all'interno della propria directory temporanea. Quando un comando termina con un codice diverso da zero e senza alcun output, Claude Code verifica se il file system che contiene quel file ha esaurito lo spazio o gli inode, oppure se la tua quota del disco su di esso è esaurita. In tal caso, nel risultato del comando compare una diagnostica al posto dell'output vuoto:

4578 4598 

4579```text wrap theme={null}4599```text wrap theme={null}

4580Your disk quota is full on the filesystem with Claude Code's temp directory /private/tmp/claude-501/-Users-you-my-project/1f0e62dc-4b0a-4f5e-9c2d-8a7b6c5d4e3f/tasks (EDQUOT), so any output this command printed was lost, and it may have failed because it could not write. Delete files you no longer need there, or restart Claude Code with CLAUDE_CODE_TMPDIR set to a directory on another filesystem.4600Your disk quota is full on the filesystem with Claude Code's temp directory /private/tmp/claude-501/-Users-you-my-project/1f0e62dc-4b0a-4f5e-9c2d-8a7b6c5d4e3f/tasks (EDQUOT), so any output this command printed was lost, and it may have failed because it could not write. Delete files you no longer need there, or restart Claude Code with CLAUDE_CODE_TMPDIR set to a directory on another filesystem.

4581```4601```

4582 4602 

4583Il messaggio indica cosa è esaurito:4603Il messaggio indica cosa si è esaurito:

4584 4604 

4585* `Your disk quota is full ... (EDQUOT)`: la tua quota su quel file system è esaurita. Una quota può essere piena anche quando il file system mostra ancora spazio libero4605* `Your disk quota is full ... (EDQUOT)`: la tua quota personale su quel file system è esaurita. Una quota può essere piena anche quando il file system mostra ancora spazio libero

4586* `The filesystem with Claude Code's temp directory ..., or your disk quota on it, is full (ENOSPC)`: il file system, o la tua quota su di esso, non ha più spazio4606* `The filesystem with Claude Code's temp directory ..., or your disk quota on it, is full (ENOSPC)`: il file system, o la tua quota su di esso, non ha più spazio disponibile

4587* `Command output was lost: the temp filesystem at ... is full` o `... is out of inodes`: il file system non ha quasi più spazio libero, o sta esaurendo gli inode4607* `Command output was lost: the temp filesystem at ... is full` oppure `... is out of inodes`: il file system non ha quasi più spazio libero, oppure sta esaurendo gli inode

4588 4608 

4589**Cosa fare:**4609**Cosa fare:**

4590 4610 

4591* Elimina i file che non ti servono più sul file system che contiene la directory temporanea di Claude Code. Per `EDQUOT`, elimina i file che contano ai fini della tua quota. Per `out of inodes`, elimina molti file invece di pochi file grandi, poiché ogni file occupa un inode indipendentemente dalla sua dimensione4611* Elimina i file che non ti servono più sul file system che contiene la directory temporanea di Claude Code. Per `EDQUOT`, elimina i file che contano ai fini della tua quota personale. Per `out of inodes`, elimina molti file invece di pochi file grandi, poiché ogni file occupa un inode indipendentemente dalla sua dimensione

4592* Oppure riavvia Claude Code con [`CLAUDE_CODE_TMPDIR`](/docs/it/env-vars) impostato su una directory in un file system con spazio disponibile4612* Oppure riavvia Claude Code con [`CLAUDE_CODE_TMPDIR`](/docs/it/env-vars) impostata su una directory in un file system con spazio disponibile

4593* Poi chiedi a Claude di eseguire di nuovo il comando. L'output che aveva stampato è andato perso, non troncato4613* Poi chiedi a Claude di eseguire di nuovo il comando. L'output che aveva stampato è andato perso, non troncato

4594 4614 

4595<h3 id="the-source-file-is-not-valid-utf-8-text">4615<h3 id="the-source-file-is-not-valid-utf-8-text">

4596 The source file is not valid UTF-8 text4616 The source file is not valid UTF-8 text

4597</h3>4617</h3>

4598 4618 

4599Claude ha tentato di pubblicare un [artefatto](/docs/it/artifacts) da un file i cui byte non si decodificano come testo, o il cui testo contiene già il carattere di sostituzione `U+FFFD`, quindi Claude Code ha rifiutato la pubblicazione prima di caricare qualsiasi cosa. Il messaggio appare nel risultato dello strumento Artifact e indica la prima posizione da correggere:4619Claude ha tentato di pubblicare un [artefatto](/docs/it/artifacts) da un file i cui byte non si decodificano come testo, o il cui testo contiene già il carattere di sostituzione `U+FFFD`, quindi Claude Code ha rifiutato la pubblicazione prima di caricare qualsiasi cosa. Il messaggio compare nel risultato dello strumento Artifact e indica la prima posizione da correggere:

4600 4620 

4601```text wrap theme={null}4621```text wrap theme={null}

4602file_path: the source file is not valid UTF-8 text (first invalid byte at line 12, column 40). It may be saved in another encoding or contain binary data. Rewrite it as UTF-8, then publish again. Nothing was published.4622file_path: the source file is not valid UTF-8 text (first invalid byte at line 12, column 40). It may be saved in another encoding or contain binary data. Rewrite it as UTF-8, then publish again. Nothing was published.


4604file_path: the source file has the replacement character U+FFFD at line 12, column 40, usually left where an earlier edit or paste lost a character. Replace it with the intended text (in HTML, write an intended U+FFFD as &#xFFFD;), then publish again. Nothing was published.4624file_path: the source file has the replacement character U+FFFD at line 12, column 40, usually left where an earlier edit or paste lost a character. Replace it with the intended text (in HTML, write an intended U+FFFD as &#xFFFD;), then publish again. Nothing was published.

4605```4625```

4606 4626 

4607Claude Code decodifica il file come UTF-8, o come UTF-16 quando inizia con un byte order mark UTF-16 little-endian. Quando un file UTF-16 di questo tipo non si decodifica, il primo messaggio nomina `UTF-16` e ti dice comunque di riscrivere il file come UTF-8. Quando altre posizioni seguono quella indicata, il messaggio aggiunge un conteggio come `(+2 more)` dopo la posizione.4627Claude Code decodifica il file come UTF-8, oppure come UTF-16 quando inizia con un byte-order mark UTF-16 little-endian. Quando un file UTF-16 di questo tipo non si decodifica, il primo messaggio indica `UTF-16` e ti dice comunque di riscrivere il file come UTF-8. Quando altre posizioni seguono quella indicata, il messaggio aggiunge un conteggio come `(+2 more)` dopo la posizione.

4608 4628 

4609**Cosa fare:**4629**Cosa fare:**

4610 4630 

4611* Di solito niente: Claude riscrive il file e lo pubblica di nuovo4631* Di solito nulla: Claude riscrive il file e lo pubblica di nuovo

4612* Se il file è uno che hai scritto o esportato tu, salvalo di nuovo come UTF-8, e sostituisci ogni `U+FFFD` con il carattere perso in una precedente modifica, operazione di incolla o conversione4632* Se il file è uno che hai scritto o esportato tu, salvalo di nuovo come UTF-8 e sostituisci ogni `U+FFFD` con il carattere perso da una modifica, un incolla o una conversione precedente

4613* Per mostrare un `U+FFFD` intenzionale nella pagina, scrivilo come `&#xFFFD;` nell'HTML invece del carattere letterale4633* Per mostrare intenzionalmente un `U+FFFD` nella pagina, scrivilo come `&#xFFFD;` nell'HTML invece del carattere letterale

4614 4634 

4615Prima della v2.1.267, Claude Code caricava un file di questo tipo senza controllarlo, e il server rifiutava invece la pubblicazione.4635Prima della v2.1.267, Claude Code caricava un file di questo tipo senza controllarlo, ed era invece il server a rifiutare la pubblicazione.

4616 4636 

4617<h3 id="not-published-that-file-is-on-a-network-share">4637<h3 id="not-published-that-file-is-on-a-network-share">

4618 Not published: that file is on a network share4638 Not published: that file is on a network share

4619</h3>4639</h3>

4620 4640 

4621Claude ha tentato di pubblicare un [artefatto](/docs/it/artifacts) da un file in un percorso che nomina un host di rete:4641Claude ha tentato di pubblicare un [artefatto](/docs/it/artifacts) da un file in un percorso che indica un host di rete:

4622 4642 

4623* Su Windows, un percorso `\\server\share` che non si trova in un'unità di rete mappata che hai passato all'avvio con [`--add-dir`](/docs/it/cli-reference#cli-flags)4643* Su Windows, un percorso `\\server\share` che non si trova sotto un'unità di rete mappata che hai passato all'avvio con [`--add-dir`](/docs/it/cli-reference#cli-flags)

4624* Su macOS o Linux, un percorso di automount come `/net/<host>/page.html`4644* Su macOS o Linux, un percorso di automount come `/net/<host>/page.html`

4625 4645 

4626La risoluzione di un percorso di questo tipo contatta l'host che nomina, e su Windows quel contatto può inviare all'host le tue credenziali. Claude Code rifiuta di pubblicare il file e non lo legge. Il rifiuto appare nel risultato dello strumento Artifact:4646La risoluzione di un percorso di questo tipo contatta l'host indicato, e su Windows quel contatto può inviare all'host le tue credenziali. Claude Code rifiuta di pubblicare il file e non lo legge. Il rifiuto compare nel risultato dello strumento Artifact:

4627 4647 

4628```text theme={null}4648```text theme={null}

4629Not published: that file is on a network share. Publish a file from this session's folders instead.4649Not published: that file is on a network share. Publish a file from this session's folders instead.


4631 4651 

4632**Cosa fare:**4652**Cosa fare:**

4633 4653 

4634* Niente, se non ti serve proprio quel file: il messaggio dice a Claude di pubblicare invece un file dalle cartelle della sessione4654* Nulla, se non ti serve esattamente quel file: il messaggio dice a Claude di pubblicare invece un file dalle cartelle della sessione

4635* Per pubblicare proprio quel file, copialo in una cartella su un disco locale e chiedi di nuovo4655* Per pubblicare esattamente quel file, copialo in una cartella su un disco locale e chiedi di nuovo

4636* Su Windows, per permettere a Claude di pubblicare direttamente dalla condivisione, mappala a una lettera di unità e passa l'unità quando avvii Claude Code. In PowerShell, ad esempio, esegui `net use Z: \\server\share` e poi `claude --add-dir Z:\`. Claude potrà quindi pubblicare file da quell'unità. Aggiungere l'unità a sessione in corso con `/add-dir` non è sufficiente.4656* Su Windows, per consentire a Claude di pubblicare direttamente dalla condivisione, mappala su una lettera di unità e passa l'unità quando avvii Claude Code. In PowerShell, ad esempio, esegui `net use Z: \\server\share` e poi `claude --add-dir Z:\`. Claude potrà quindi pubblicare file da quell'unità. Aggiungere l'unità durante la sessione con `/add-dir` non è sufficiente.

4637* Su macOS o Linux, monta la condivisione in una directory come una sotto `/mnt` o `/Volumes`, e pubblica da quel percorso invece che dal percorso di automount4657* Su macOS o Linux, monta la condivisione in una directory, ad esempio una sotto `/mnt` o `/Volumes`, e pubblica da quel percorso invece che dal percorso di automount

4638 4658 

4639<h3 id="reading-a-local-file-from-outside-the-connected-folders">4659<h3 id="reading-a-local-file-from-outside-the-connected-folders">

4640 Reading a local file from outside the connected folders in a Cowork session4660 Lettura di un file locale al di fuori delle cartelle connesse in una sessione Cowork

4641</h3>4661</h3>

4642 4662 

4643In una sessione [Cowork](https://claude.com/docs/cowork/overview) in esecuzione sulla tua macchina nell'app Claude Desktop, Claude ha indicato un file locale per un [artefatto](/docs/it/artifacts). Claude Code non è riuscito a confermare che il file sia un file semplice all'interno delle cartelle connesse della sessione: il percorso si trova al di fuori di quelle cartelle, passa attraverso un collegamento simbolico, o è scritto in un modo che può indicare un file diverso da quello che sembra. Leggere un file di questo tipo richiede la tua approvazione, e in una sessione che non può mostrarti la scheda di approvazione, come una impostata per saltare tutte le approvazioni, Claude Code rifiuta la lettura.4663In una sessione [Cowork](https://claude.com/docs/cowork/overview) in esecuzione sulla tua macchina nell'app Claude Desktop, Claude ha indicato un file locale per un [artefatto](/docs/it/artifacts). Claude Code non è riuscito a confermare che il file sia un file semplice all'interno delle cartelle connesse della sessione: il percorso si trova al di fuori di quelle cartelle, passa attraverso un collegamento simbolico o è scritto in un modo che può indicare un file diverso da quello che sembra. La lettura di un file di questo tipo richiede la tua approvazione, e in una sessione che non può mostrarti la scheda di approvazione, come una impostata per saltare tutte le approvazioni, Claude Code rifiuta la lettura.

4644 4664 

4645Il rifiuto appare nel risultato dello strumento Artifact; quando non è stato possibile esaminare il file in alcun modo, indica invece quell'errore:4665Il rifiuto compare nel risultato dello strumento Artifact; quando non è stato possibile esaminare affatto il file, indica invece quell'errore:

4646 4666 

4647```text wrap theme={null}4667```text wrap theme={null}

4648Reading a local file from outside this session's connected folders, or through a link, needs the approval card, and no one can answer it in this Cowork session. Use a plain file inside the connected folders; do not retry this file in this session.4668Reading a local file from outside this session's connected folders, or through a link, needs the approval card, and no one can answer it in this Cowork session. Use a plain file inside the connected folders; do not retry this file in this session.


4652 4672 

4653**Cosa fare:**4673**Cosa fare:**

4654 4674 

4655* Di solito niente: il messaggio dice a Claude di usare invece un file semplice all'interno delle cartelle connesse4675* Di solito nulla: il messaggio dice a Claude di usare invece un file semplice all'interno delle cartelle connesse

4656* Per inserire proprio quel file nell'artefatto, copialo in una delle cartelle connesse della sessione come file normale, non come collegamento simbolico, e chiedi di nuovo4676* Per inserire esattamente quel file nell'artefatto, copialo in una delle cartelle connesse della sessione come file normale, non come collegamento simbolico, e chiedi di nuovo

4657 4677 

4658<h3 id="webfetch-cannot-fetch-localhost">4678<h3 id="webfetch-cannot-fetch-localhost">

4659 WebFetch cannot fetch localhost4679 WebFetch cannot fetch localhost


4667 4687 

4668**Cosa fare:**4688**Cosa fare:**

4669 4689 

4670* Di solito niente: il messaggio indirizza Claude verso `curl` tramite lo strumento Bash, che può raggiungere server locali e intranet4690* Di solito nulla: il messaggio indirizza Claude verso `curl` tramite lo strumento Bash, che può raggiungere server locali e intranet

4671 4691 

4672Prima della v2.1.268, WebFetch segnalava questi URL con un errore generico `Invalid URL`.4692Prima della v2.1.268, WebFetch segnalava questi URL con un generico errore `Invalid URL`.

4673 4693 

4674<h3 id="webfetch-domain-safety-check-failed">4694<h3 id="webfetch-domain-safety-check-failed">

4675 WebFetch domain safety check failed4695 Controllo di sicurezza del dominio di WebFetch non riuscito

4676</h3>4696</h3>

4677 4697 

4678Prima di recuperare un URL, WebFetch invia l'hostname dell'URL a `api.anthropic.com` per verificarlo rispetto alla [lista di blocco per la sicurezza dei domini](/docs/it/data-usage#webfetch-domain-safety-check) di Anthropic. Se il controllo non può essere completato, WebFetch non può confermare che il dominio sia sicuro, quindi non recupera la pagina e il risultato dello strumento riporta invece uno di questi messaggi:4698Prima di recuperare un URL, WebFetch invia l'hostname dell'URL ad `api.anthropic.com` per verificarlo rispetto alla [blocklist di sicurezza dei domini](/docs/it/data-usage#webfetch-domain-safety-check) di Anthropic. Se il controllo non può essere completato, WebFetch non può confermare che il dominio sia sicuro, quindi non recupera la pagina e il risultato dello strumento riporta invece uno di questi messaggi:

4679 4699 

4680```text wrap theme={null}4700```text wrap theme={null}

4681The safety check for domain example.com is rate-limited (too many domain checks from this network; the limit is shared and can stay exhausted for minutes). Do not retry WebFetch in a loop or sleep to wait it out; continue without this page and report that its safety check was rate-limited. A single later attempt is fine; if that is rate-limited too, stop.4701The safety check for domain example.com is rate-limited (too many domain checks from this network; the limit is shared and can stay exhausted for minutes). Do not retry WebFetch in a loop or sleep to wait it out; continue without this page and report that its safety check was rate-limited. A single later attempt is fine; if that is rate-limited too, stop.


4683Unable to verify if domain example.com is safe to fetch. This may be due to network restrictions or enterprise security policies blocking claude.ai.4703Unable to verify if domain example.com is safe to fetch. This may be due to network restrictions or enterprise security policies blocking claude.ai.

4684```4704```

4685 4705 

4686* `rate-limited`: l'endpoint di controllo ha risposto con HTTP `429`. Il messaggio dice a Claude di continuare senza la pagina e di riprovare al massimo una volta più tardi. Claude Code non memorizza nella cache un controllo fallito, quindi un successivo recupero di quel dominio esegue di nuovo il controllo. Se le sessioni sulla tua rete incontrano spesso questo errore, puoi saltare il controllo con [`skipWebFetchPreflight: true`](/docs/it/settings-reference#skipwebfetchpreflight) nelle impostazioni.4706* `rate-limited`: l'endpoint del controllo ha risposto con HTTP `429`. Il messaggio dice a Claude di proseguire senza la pagina e di riprovare al massimo una volta più tardi. Claude Code non memorizza nella cache un controllo non riuscito, quindi un recupero successivo di quel dominio esegue di nuovo il controllo. Se le sessioni sulla tua rete incorrono spesso in questo rate limit, puoi saltare il controllo con [`skipWebFetchPreflight: true`](/docs/it/settings-reference#skipwebfetchpreflight) nelle impostazioni.

4687* `Unable to verify`: la richiesta di controllo è fallita, è andata in timeout o ha ricevuto un altro stato di errore. Se la tua rete blocca `api.anthropic.com`, aggiungi quel dominio all'allowlist, oppure salta il controllo con [`skipWebFetchPreflight: true`](/docs/it/settings-reference#skipwebfetchpreflight) nelle impostazioni.4707* `Unable to verify`: la richiesta di controllo è fallita, è scaduta o ha ricevuto un altro stato di errore. Se la tua rete blocca `api.anthropic.com`, aggiungi quel dominio all'allowlist, oppure salta il controllo con [`skipWebFetchPreflight: true`](/docs/it/settings-reference#skipwebfetchpreflight) nelle impostazioni.

4688 4708 

4689Prima della v2.1.286, il messaggio di rate limit riportava `The safety check for domain example.com is temporarily rate-limited (too many domain checks from this network). Retry after about a minute; retrying sooner will fail the same way.`.4709Prima della v2.1.286, il messaggio di rate limit riportava `The safety check for domain example.com is temporarily rate-limited (too many domain checks from this network). Retry after about a minute; retrying sooner will fail the same way.`.

4690Prima della v2.1.285, un controllo soggetto a rate limit veniva invece segnalato con il messaggio `Unable to verify`.4710Prima della v2.1.285, un controllo soggetto a rate limit veniva segnalato invece con il messaggio `Unable to verify`.

4691 4711 

4692<h2 id="background-session-errors">4712<h2 id="background-session-errors">

4693 Errori di sessione in background4713 Errori di sessione in background

hooks.md +591 −580

Details

40| :- | :- |40| :- | :- |

41| `SessionStart` | Quando una sessione inizia o riprende |41| `SessionStart` | Quando una sessione inizia o riprende |

42| `Setup` | Quando avvii Claude Code con `--init-only`, o con `--init` o `--maintenance` in modalità `-p`. Per la preparazione una tantum in CI o script |42| `Setup` | Quando avvii Claude Code con `--init-only`, o con `--init` o `--maintenance` in modalità `-p`. Per la preparazione una tantum in CI o script |

43| `UserPromptSubmit` | Quando invii un prompt, prima che Claude lo elabori |43| `UserPromptSubmit` | Quando viene inviato un prompt, prima che Claude lo elabori. Si attiva anche nei [turni che Claude Code avvia autonomamente](/docs/it/hooks#userpromptsubmit) |

44| `UserPromptExpansion` | Quando un comando digitato dall'utente si espande in un prompt, prima che raggiunga Claude. Può bloccare l'espansione |44| `UserPromptExpansion` | Quando un comando digitato dall'utente si espande in un prompt, prima che raggiunga Claude. Può bloccare l'espansione |

45| `PreToolUse` | Prima che una chiamata a uno strumento si esegua. Può bloccarla |45| `PreToolUse` | Prima che una chiamata a uno strumento si esegua. Può bloccarla |

46| `PermissionRequest` | Quando una chiamata a uno strumento necessita di una decisione di autorizzazione |46| `PermissionRequest` | Quando una chiamata a uno strumento necessita di una decisione di autorizzazione |


1156Per esempi estesi inclusa la convalida dei comandi Bash, il filtraggio dei prompt e gli script di approvazione automatica, consultare [What you can automate](/docs/it/hooks-guide#what-you-can-automate) nella guida e l'[implementazione di riferimento del validatore di comandi Bash](https://github.com/anthropics/claude-code/blob/main/examples/hooks/bash_command_validator_example.py).1156Per esempi estesi inclusa la convalida dei comandi Bash, il filtraggio dei prompt e gli script di approvazione automatica, consultare [What you can automate](/docs/it/hooks-guide#what-you-can-automate) nella guida e l'[implementazione di riferimento del validatore di comandi Bash](https://github.com/anthropics/claude-code/blob/main/examples/hooks/bash_command_validator_example.py).

1157 1157 

1158<h2 id="hook-events">1158<h2 id="hook-events">

1159 Eventi hook1159 Eventi degli hook

1160</h2>1160</h2>

1161 1161 

1162Ogni evento corrisponde a un punto nel ciclo di vita di Claude Code in cui gli hook possono essere eseguiti. Le sezioni seguenti sono ordinate per corrispondere al ciclo di vita: dalla configurazione della sessione attraverso il loop agentivo fino alla fine della sessione. Ogni sezione descrive quando l'evento si attiva, quali matcher supporta, l'input JSON che riceve e come controllare il comportamento attraverso l'output.1162Ogni evento corrisponde a un punto nel ciclo di vita di Claude Code in cui gli hook possono essere eseguiti. Le sezioni seguenti sono ordinate in base al ciclo di vita: dalla configurazione della sessione, attraverso il ciclo agentico, fino alla fine della sessione. Ogni sezione descrive quando l'evento si attiva, quali matcher supporta, l'input JSON che riceve e come controllarne il comportamento tramite l'output.

1163 1163 

1164<h3 id="sessionstart">1164<h3 id="sessionstart">

1165 SessionStart1165 SessionStart

1166</h3>1166</h3>

1167 1167 

1168Si esegue quando Claude Code avvia una nuova sessione o riprende una sessione esistente. Utile per caricare il contesto di sviluppo come problemi esistenti o modifiche recenti al tuo codebase, o per configurare variabili di ambiente. Per il contesto statico che non richiede uno script, usa [CLAUDE.md](/docs/it/memory) invece.1168Viene eseguito quando Claude Code avvia una nuova sessione o riprende una sessione esistente. Utile per caricare il contesto di sviluppo, come le issue esistenti o le modifiche recenti al tuo codebase, o per configurare variabili d'ambiente. Per un contesto statico che non richiede uno script, usa invece [CLAUDE.md](/docs/it/memory).

1169 1169 

1170SessionStart si esegue su ogni sessione, quindi mantieni questi hook veloci. Solo gli hook `type: "command"` e `type: "mcp_tool"` sono supportati. Vedi [MCP tool hook fields](#mcp-tool-hook-fields) per quando gli hook `mcp_tool` si eseguono.1170SessionStart viene eseguito a ogni sessione, quindi mantieni questi hook veloci. Sono supportati solo gli hook `type: "command"` e `type: "mcp_tool"`. Consulta [Campi degli hook per strumenti MCP](#mcp-tool-hook-fields) per sapere quando vengono eseguiti gli hook `mcp_tool`.

1171 1171 

1172Il valore del matcher corrisponde a come la sessione è stata avviata:1172Il valore del matcher corrisponde al modo in cui è stata avviata la sessione:

1173 1173 

1174| Matcher | Quando si attiva |1174| Matcher | Quando si attiva |

1175| :- | :- |1175| :- | :- |

1176| `startup` | Nuova sessione |1176| `startup` | Nuova sessione |

1177| `resume` | `--resume`, `--continue`, o `/resume` |1177| `resume` | `--resume`, `--continue` o `/resume` |

1178| `clear` | `/clear` |1178| `clear` | `/clear` |

1179| `compact` | Compattazione automatica o manuale |1179| `compact` | Compattazione automatica o manuale |

1180| `fork` | Una nuova sessione creata da una sessione esistente: `--fork-session` con `--resume` o `--continue`, la copia di background `/fork`, `/branch`, o una conversazione che [sposti in background](/docs/it/agent-view#from-inside-a-session) |1180| `fork` | Una nuova sessione derivata da una esistente: `--fork-session` con `--resume` o `--continue`, la copia in background di `/fork`, `/branch`, o una conversazione che [sposti in background](/docs/it/agent-view#from-inside-a-session) |

1181 1181 

1182Prima della v2.1.214, le sessioni create da fork segnalano la sorgente `"resume"`.1182Prima della v2.1.214, le sessioni derivate riportavano la sorgente `"resume"`.

1183 1183 

1184Quando avvii una sessione interattiva, riprendi una conversazione al lancio con `--continue` o `--resume`, o esegui `/clear`, gli hook SessionStart si eseguono in background. Puoi digitare subito, e una conversazione che hai ripreso appare senza aspettare gli hook. La prima risposta di Claude attende comunque che gli hook finiscano, quindi il loro contesto raggiunge Claude.1184Quando avvii una sessione interattiva, riprendi una conversazione all'avvio con `--continue` o `--resume`, oppure esegui `/clear`, gli hook SessionStart vengono eseguiti in background. Puoi digitare subito, e una conversazione ripresa appare senza attendere gli hook. La prima risposta di Claude attende comunque il completamento degli hook, così il loro contesto raggiunge Claude.

1185 1185 

1186Quando cambi conversazioni con `/resume` all'interno di una sessione, il cambio attende che gli hook finiscano. Se esegui `/clear` o cambi a un'altra conversazione mentre gli hook di background sono ancora in esecuzione, nulla di ciò che restituiscono si applica alla sessione.1186Quando cambi conversazione con `/resume` all'interno di una sessione, il cambio invece attende il completamento degli hook. Se esegui `/clear` o passi a un'altra conversazione mentre gli hook in background sono ancora in esecuzione, nulla di ciò che restituiscono si applica alla sessione.

1187 1187 

1188Lo stesso attesa si applica al lancio, inclusa una sessione ripresa: un prompt che invii mentre gli hook SessionStart sono ancora in esecuzione non raggiunge Claude finché non finiscono.1188La stessa attesa si applica all'avvio, inclusa una sessione ripresa: un prompt che invii mentre gli hook SessionStart sono ancora in esecuzione non raggiunge Claude finché non terminano.

1189 1189 

1190Durante uno qualsiasi di questi attese, premi `Esc` per riprendere il prompt nell'input senza inviarlo. Gli hook continuano a essere eseguiti.1190Durante entrambe le attese, premi `Esc` per riportare il prompt nell'input senza inviarlo. Gli hook continuano a essere eseguiti.

1191 1191 

1192<h4 id="sessionstart-input">1192<h4 id="sessionstart-input">

1193 Input SessionStart1193 Input di SessionStart

1194</h4>1194</h4>

1195 1195 

1196Oltre ai [campi di input comuni](#common-input-fields), gli hook SessionStart ricevono `source` e facoltativamente `model`, `agent_type`, e `session_title`:1196Oltre ai [campi di input comuni](#common-input-fields), gli hook SessionStart ricevono `source` e, facoltativamente, `model`, `agent_type` e `session_title`:

1197 1197 

1198| Campo | Descrizione |1198| Campo | Descrizione |

1199| :- | :- |1199| :- | :- |

1200| `source` | Come la sessione è stata avviata: `"startup"` per nuove sessioni, `"resume"` per sessioni riprese, `"clear"` dopo `/clear`, `"compact"` dopo compattazione, o `"fork"` per una nuova sessione creata da una sessione esistente |1200| `source` | Come è iniziata la sessione: `"startup"` per le nuove sessioni, `"resume"` per le sessioni riprese, `"clear"` dopo `/clear`, `"compact"` dopo la compattazione, o `"fork"` per una nuova sessione derivata da una esistente |

1201| `model` | L'identificatore del modello attivo. Può essere omesso, ad esempio dopo `/clear` o quando una sessione viene ripristinata tramite il recupero della conversazione, quindi controlla il campo prima di leggerlo |1201| `model` | L'identificatore del modello attivo. Può essere omesso, ad esempio dopo `/clear` o quando una sessione viene ripristinata tramite il recupero della conversazione, quindi verifica la presenza del campo prima di leggerlo |

1202| `agent_type` | Il nome dell'agente, presente quando avvii Claude Code con `claude --agent <name>` |1202| `agent_type` | Il nome dell'agente, presente quando avvii Claude Code con `claude --agent <name>` |

1203| `session_title` | Il titolo della sessione corrente se già impostato, ad esempio tramite `--name` o `/rename`. Un hook che emette `sessionTitle` può controllare `session_title` prima per evitare di sovrascrivere un titolo che l'utente ha impostato esplicitamente |1203| `session_title` | Il titolo personalizzato della sessione, presente quando ne è impostato uno, ad esempio con `--name`, `/rename`, l'output `sessionTitle` di un hook o `renameSession()` dell'Agent SDK. Un hook che emette `sessionTitle` può controllare prima questo campo per evitare di sovrascrivere un titolo personalizzato esistente |

1204 1204 

1205Una sessione che non hai nominato può comunque avere un [titolo generato](/docs/it/sessions#name-your-sessions). Quel titolo non è un titolo personalizzato e non appare in `session_title`.1205Una sessione a cui non hai dato un nome può comunque avere un [titolo generato](/docs/it/sessions#name-your-sessions). Quel titolo non è un titolo personalizzato e non compare in `session_title`.

1206 1206 

1207Quando `source` è `"resume"` o `"fork"` e la trascrizione contiene almeno una risposta da Claude, gli hook SessionStart ricevono anche i quattro campi seguenti. Il tuo hook può usarli per segnalare quale costo ha la ripresa di una conversazione obsoleta prima della prima richiesta, ad esempio in un [`systemMessage`](#json-output). Questi campi richiedono Claude Code v2.1.251 o successivo.1207Quando `source` è `"resume"` o `"fork"` e la trascrizione contiene almeno una risposta di Claude, gli hook SessionStart ricevono anche i quattro campi seguenti. Il tuo hook può usarli per riportare quanto costa riprendere una conversazione datata prima della prima richiesta, ad esempio in un [`systemMessage`](#json-output). Questi campi richiedono Claude Code v2.1.251 o successiva.

1208 1208 

1209| Campo | Descrizione |1209| Campo | Descrizione |

1210| :- | :- |1210| :- | :- |

1211| `seconds_since_last_response` | Secondi di tempo reale dalla risposta più recente nella trascrizione ripresa |1211| `seconds_since_last_response` | Secondi reali trascorsi dall'ultima risposta nella trascrizione ripresa |

1212| `context_tokens` | Token che la prima richiesta della sessione ripresa invia di nuovo come suo prompt |1212| `context_tokens` | Token che la prima richiesta della sessione ripresa invia di nuovo come prompt |

1213| `prompt_cache_likely_expired` | `true` quando l'ultima risposta è più vecchia della [durata della cache del prompt](/docs/it/prompt-caching#cache-lifetime) della sessione o una compattazione successiva ha sostituito la conversazione memorizzata nella cache |1213| `prompt_cache_likely_expired` | `true` quando l'ultima risposta è più vecchia della [durata del prompt caching](/docs/it/prompt-caching#cache-lifetime) della sessione o una compattazione successiva ha sostituito la conversazione memorizzata nella cache |

1214| `estimated_cache_write_usd` | Costo stimato in dollari USA della scrittura di `context_tokens` nella cache del prompt sul modello della sessione, escludendo la risposta |1214| `estimated_cache_write_usd` | Costo stimato in dollari statunitensi della scrittura di `context_tokens` nella cache del prompt sul modello della sessione, esclusa la risposta |

1215 1215 

1216Questo esempio mostra l'input per una sessione ripresa 90 minuti dopo la sua ultima risposta:1216Questo esempio mostra l'input per una sessione ripresa 90 minuti dopo la sua ultima risposta:

1217 1217 


1231```1231```

1232 1232 

1233<h4 id="sessionstart-decision-control">1233<h4 id="sessionstart-decision-control">

1234 Controllo decisionale SessionStart1234 Controllo delle decisioni di SessionStart

1235</h4>1235</h4>

1236 1236 

1237Claude Code aggiunge stdout che [tratta come testo semplice](#exit-code-0) al contesto di Claude. Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, puoi restituire questi campi specifici dell'evento:1237Claude Code aggiunge al contesto di Claude lo stdout che [tratta come testo semplice](#exit-code-0). Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, puoi restituire questi campi specifici dell'evento:

1238 1238 

1239| Campo | Descrizione |1239| Campo | Descrizione |

1240| :- | :- |1240| :- | :- |

1241| `additionalContext` | Stringa aggiunta al contesto di Claude all'inizio della conversazione, prima del primo prompt. Vedi [Aggiungi contesto per Claude](#add-context-for-claude) per come il testo viene consegnato e cosa metterci |1241| `additionalContext` | Stringa aggiunta al contesto di Claude all'inizio della conversazione, prima del primo prompt. Consulta [Aggiungere contesto per Claude](#add-context-for-claude) per sapere come viene recapitato il testo e cosa inserirvi |

1242| `initialUserMessage` | Stringa utilizzata come primo messaggio utente della sessione. Si applica in [modalità non interattiva](/docs/it/headless) con il flag `-p`, dove diventa il primo turno anche se non viene fornito alcun prompt. Se viene fornito un prompt, segue come turno successivo. A differenza di `additionalContext`, che si allega a un turno esistente, questo crea il turno |1242| `initialUserMessage` | Stringa usata come primo messaggio utente della sessione. Si applica in [modalità non interattiva](/docs/it/headless) con il flag `-p`, dove diventa il primo turno anche se non viene fornito alcun prompt. Se viene fornito un prompt, questo segue come turno successivo. A differenza di `additionalContext`, che si aggancia a un turno esistente, questo crea il turno |

1243| `sessionTitle` | Imposta il titolo della sessione, con lo stesso effetto di `/rename`. Usa per nominare le sessioni automaticamente dalla cartella di lancio, dal ramo git, o dal nome del worktree. Si applica quando `source` è `"startup"`, `"resume"`, o `"fork"`; ignorato su `"clear"` e `"compact"` |1243| `sessionTitle` | Imposta il titolo della sessione, con lo stesso effetto di `/rename`. Usalo per dare automaticamente un nome alle sessioni in base alla cartella di avvio, al branch git o al nome del worktree. Si applica quando `source` è `"startup"`, `"resume"` o `"fork"`; viene ignorato con `"clear"` e `"compact"` |

1244| `watchPaths` | Array di percorsi assoluti da osservare per gli eventi [FileChanged](#filechanged) durante questa sessione |1244| `watchPaths` | Array di percorsi assoluti da monitorare per gli eventi [FileChanged](#filechanged) durante questa sessione |

1245| `reloadSkills` | Booleano. Quando `true`, Claude Code ripete la scansione delle directory [skill](/docs/it/skills) e command dopo che gli hook SessionStart completano, quindi le skill che l'hook ha installato sono disponibili nella stessa sessione, a partire dal primo prompt |1245| `reloadSkills` | Booleano. Quando è `true`, Claude Code analizza di nuovo le directory delle [skill](/docs/it/skills) e dei comandi dopo il completamento degli hook SessionStart, così le skill installate dall'hook sono disponibili nella stessa sessione, a partire dal primo prompt |

1246 1246 

1247```json theme={null}1247```json theme={null}

1248{1248{


1254}1254}

1255```1255```

1256 1256 

1257Poiché lo stdout semplice raggiunge già Claude per questo evento, un hook che carica solo il contesto può stampare su stdout direttamente senza costruire JSON. Usa il modulo JSON quando hai bisogno di combinare il contesto con altri campi come `sessionTitle`.1257Poiché per questo evento lo stdout semplice raggiunge già Claude, un hook che carica solo contesto può stampare direttamente su stdout senza costruire JSON. Usa il formato JSON quando devi combinare il contesto con altri campi come `sessionTitle`.

1258 1258 

1259Usa `reloadSkills` quando un hook SessionStart installa o aggiorna skill. La scoperta delle skill normalmente si esegue prima che gli hook SessionStart finiscano, quindi i file che l'hook scrive in `~/.claude/skills/` o `.claude/skills/` altrimenti apparirebbero solo nella sessione successiva. Questo esempio sincronizza un repository di skill condiviso e richiede la ripetizione della scansione:1259Usa `reloadSkills` quando un hook SessionStart installa o aggiorna delle skill. Il rilevamento delle skill viene normalmente eseguito prima che gli hook SessionStart terminino, quindi i file che l'hook scrive in `~/.claude/skills/` o `.claude/skills/` apparirebbero altrimenti solo nella sessione successiva. Questo esempio sincronizza un repository di skill condiviso e richiede la nuova analisi:

1260 1260 

1261```bash theme={null}1261```bash theme={null}

1262#!/bin/bash1262#!/bin/bash


1267echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'1267echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'

1268```1268```

1269 1269 

1270L'URL del repository è un segnaposto; sostituiscilo con il tuo repository di skill. Con il segnaposto, il clone fallisce e stampa un messaggio `fatal:` su stderr. Stderr da un hook SessionStart che esce con 0 è solo informativo, quindi la richiesta `reloadSkills` si applica comunque.1270L'URL del repository è un segnaposto; sostituiscilo con il tuo repository di skill. Con il segnaposto, il clone fallisce e stampa un messaggio `fatal:` su stderr. Lo stderr di un hook SessionStart che termina con 0 è solo informativo, quindi la richiesta `reloadSkills` si applica comunque.

1271 1271 

1272<h4 id="persist-environment-variables">1272<h4 id="persist-environment-variables">

1273 Persistere variabili di ambiente1273 Rendere persistenti le variabili d'ambiente

1274</h4>1274</h4>

1275 1275 

1276Gli hook SessionStart hanno accesso alla variabile di ambiente `CLAUDE_ENV_FILE`, che fornisce un percorso di file dove puoi persistere le variabili di ambiente per i comandi Bash successivi.1276Gli hook SessionStart hanno accesso alla variabile d'ambiente `CLAUDE_ENV_FILE`, che fornisce il percorso di un file in cui puoi rendere persistenti le variabili d'ambiente per i successivi comandi Bash.

1277 1277 

1278Per impostare singole variabili di ambiente, scrivi istruzioni `export` in `CLAUDE_ENV_FILE`. Usa append (`>>`) per preservare le variabili impostate da altri hook:1278Per impostare singole variabili d'ambiente, scrivi istruzioni `export` in `CLAUDE_ENV_FILE`. Usa l'accodamento (`>>`) per preservare le variabili impostate da altri hook:

1279 1279 

1280```bash theme={null}1280```bash theme={null}

1281#!/bin/bash1281#!/bin/bash


1289exit 01289exit 0

1290```1290```

1291 1291 

1292Per catturare tutti i cambiamenti di ambiente dai comandi di configurazione, confronta le variabili esportate prima e dopo:1292Per catturare tutte le modifiche all'ambiente dai comandi di configurazione, confronta le variabili esportate prima e dopo:

1293 1293 

1294```bash theme={null}1294```bash theme={null}

1295#!/bin/bash1295#!/bin/bash


1309```1309```

1310 1310 

1311<Note>1311<Note>

1312 `CLAUDE_ENV_FILE` è disponibile per gli hook SessionStart, [Setup](#setup), [CwdChanged](#cwdchanged), e [FileChanged](#filechanged). Altri tipi di hook non hanno accesso a questa variabile.1312 `CLAUDE_ENV_FILE` è disponibile per gli hook SessionStart, [Setup](#setup), [CwdChanged](#cwdchanged) e [FileChanged](#filechanged). Gli altri tipi di hook non hanno accesso a questa variabile.

1313</Note>1313</Note>

1314 1314 

1315<h3 id="setup">1315<h3 id="setup">

1316 Setup1316 Setup

1317</h3>1317</h3>

1318 1318 

1319Si esegue solo quando avvii Claude Code con `--init-only`, o con `--init` o `--maintenance` in [modalità non interattiva](/docs/it/headless) con il flag `-p`. Non si esegue all'avvio normale. Usalo per l'installazione di dipendenze una tantum o la pulizia programmata che attivi esplicitamente da CI o script, separato dall'avvio della sessione normale. Per l'inizializzazione per sessione, usa [SessionStart](#sessionstart) invece.1319Si attiva solo quando avvii Claude Code con `--init-only`, oppure con `--init` o `--maintenance` in [modalità non interattiva](/docs/it/headless) con il flag `-p`. Non si attiva al normale avvio. Usalo per l'installazione una tantum di dipendenze o per una pulizia pianificata che attivi esplicitamente da CI o da script, separatamente dal normale avvio della sessione. Per l'inizializzazione per sessione, usa invece [SessionStart](#sessionstart).

1320 1320 

1321Il valore del matcher corrisponde al flag CLI che ha attivato l'hook:1321Il valore del matcher corrisponde al flag CLI che ha attivato l'hook:

1322 1322 


1325| `init` | `claude --init-only` o `claude -p --init` |1325| `init` | `claude --init-only` o `claude -p --init` |

1326| `maintenance` | `claude -p --maintenance` |1326| `maintenance` | `claude -p --maintenance` |

1327 1327 

1328Quando esegui `claude --init-only`, Claude Code esegue gli hook Setup e gli hook `SessionStart` con il matcher `startup`, quindi esce senza avviare una conversazione.1328Quando esegui `claude --init-only`, Claude Code esegue gli hook Setup e gli hook `SessionStart` con il matcher `startup`, poi esce senza avviare una conversazione.

1329 1329 

1330Quando avvii o continui una conversazione con `-p`, devi anche fornire un prompt, come argomento o tramite pipe su stdin. Puoi saltare il prompt quando un hook `SessionStart` fornisce [`initialUserMessage`](#sessionstart-decision-control) o quando riprendi una sessione con una [chiamata di tool differita](#defer-a-tool-call-for-later).1330Quando avvii o continui una conversazione con `-p`, devi anche fornire un prompt, come argomento o tramite pipe su stdin. Puoi omettere il prompt quando un hook `SessionStart` fornisce [`initialUserMessage`](#sessionstart-decision-control) o quando riprendi una sessione con una [chiamata a uno strumento differita](#defer-a-tool-call-for-later).

1331 1331 

1332Al successo, `--init-only` non stampa nulla al terminale. Per confermare che gli hook si sono eseguiti, avvia con `claude --debug-file <path> --init-only`, sostituendo `<path>` con una posizione di file di log, e controlla il log per le voci degli hook Setup e SessionStart.1332In caso di successo, `--init-only` non stampa nulla nel terminale. Per verificare che gli hook siano stati eseguiti, avvia con `claude --debug-file <path> --init-only`, sostituendo `<path>` con la posizione di un file di log, e cerca nel log le voci degli hook Setup e SessionStart.

1333 1333 

1334Poiché Setup non si esegue ad ogni lancio, un plugin che ha bisogno di una dipendenza installata non può fare affidamento solo su Setup. Il modello pratico è controllare la dipendenza al primo utilizzo e installare se assente, ad esempio un hook o una skill che testa per `${CLAUDE_PLUGIN_DATA}/node_modules` ed esegue `npm install` se assente. Vedi la [directory di dati persistenti](/docs/it/plugins/components#path-variables-and-persistent-data) per dove archiviare le dipendenze installate. Se distribuisci il tuo plugin tramite un marketplace, potresti non aver bisogno di questo modello: Claude Code [installa automaticamente le dipendenze del pacchetto Node.js idonee](/docs/it/plugins/loading#node-js-package-dependencies) quando memorizza il plugin nella cache.1334Poiché Setup non si attiva a ogni avvio, un plugin che necessita di una dipendenza installata non può fare affidamento solo su Setup. Lo schema pratico è verificare la dipendenza al primo utilizzo e installarla se manca, ad esempio con un hook o una skill che controlla `${CLAUDE_PLUGIN_DATA}/node_modules` ed esegue `npm install` se assente. Consulta la [directory dei dati persistenti](/docs/it/plugins/components#path-variables-and-persistent-data) per sapere dove archiviare le dipendenze installate. Se distribuisci il tuo plugin tramite un marketplace, potresti non aver bisogno di questo schema: Claude Code [installa automaticamente le dipendenze idonee dei pacchetti Node.js](/docs/it/plugins/loading#node-js-package-dependencies) quando memorizza il plugin nella cache.

1335 1335 

1336<h4 id="setup-input">1336<h4 id="setup-input">

1337 Input Setup1337 Input di Setup

1338</h4>1338</h4>

1339 1339 

1340Oltre ai [campi di input comuni](#common-input-fields), gli hook Setup ricevono un campo `trigger` impostato su `"init"` o `"maintenance"`:1340Oltre ai [campi di input comuni](#common-input-fields), gli hook Setup ricevono un campo `trigger` impostato su `"init"` o `"maintenance"`:


1350```1350```

1351 1351 

1352<h4 id="setup-decision-control">1352<h4 id="setup-decision-control">

1353 Controllo decisionale Setup1353 Controllo delle decisioni di Setup

1354</h4>1354</h4>

1355 1355 

1356Gli hook Setup non possono bloccare; l'esecuzione continua su qualsiasi codice di uscita. Su ogni codice di uscita, Claude Code scarta i [campi di output JSON](#json-output) di un hook Setup, come `systemMessage`, `continue`, e `hookSpecificOutput.additionalContext`. Con `-p`, lo stdout, stderr e il codice di uscita di un hook Setup appaiono nell'output dell'esecuzione solo come [`hook_response` events](/docs/it/headless#read-session-metadata) quando avvii con `--output-format stream-json --verbose`.1356Gli hook Setup non possono bloccare; l'esecuzione continua con qualsiasi codice di uscita. Con ogni codice di uscita, Claude Code scarta i [campi di output JSON](#json-output) di un hook Setup, come `systemMessage`, `continue` e `hookSpecificOutput.additionalContext`. Con `-p`, lo stdout, lo stderr e il codice di uscita di un hook Setup compaiono nell'output dell'esecuzione solo come [eventi `hook_response`](/docs/it/headless#read-session-metadata) quando avvii con `--output-format stream-json --verbose`.

1357 1357 

1358Gli hook Setup hanno accesso a `CLAUDE_ENV_FILE`. Le variabili scritte in quel file persistono nei comandi Bash successivi per la sessione, proprio come negli [hook SessionStart](#persist-environment-variables). Solo gli hook `type: "command"` si eseguono su `Setup`. Un hook `type: "mcp_tool"` su `Setup` viene sempre saltato, come descritto sotto [MCP tool hook fields](#mcp-tool-hook-fields).1358Gli hook Setup hanno accesso a `CLAUDE_ENV_FILE`. Le variabili scritte in quel file persistono nei successivi comandi Bash della sessione, esattamente come negli [hook SessionStart](#persist-environment-variables). Su `Setup` vengono eseguiti solo gli hook `type: "command"`. Un hook `type: "mcp_tool"` su `Setup` viene sempre saltato, come descritto in [Campi degli hook per strumenti MCP](#mcp-tool-hook-fields).

1359 1359 

1360<h3 id="instructionsloaded">1360<h3 id="instructionsloaded">

1361 InstructionsLoaded1361 InstructionsLoaded

1362</h3>1362</h3>

1363 1363 

1364Si esegue quando un file `CLAUDE.md` o `.claude/rules/*.md` viene caricato nel contesto. Questo evento si esegue all'avvio della sessione per i file caricati con entusiasmo e di nuovo più tardi quando i file vengono caricati pigrizia, ad esempio quando Claude accede a una sottodirectory che contiene un `CLAUDE.md` annidato o quando le regole condizionali con frontmatter `paths:` corrispondono. L'hook non supporta il blocco o il controllo decisionale. Si esegue in modo asincrono per scopi di osservabilità.1364Si attiva quando un file `CLAUDE.md` o `.claude/rules/*.md` viene caricato nel contesto. Questo evento si attiva all'avvio della sessione per i file caricati subito e di nuovo in seguito quando i file vengono caricati in modo differito, ad esempio quando Claude accede a una sottodirectory che contiene un `CLAUDE.md` annidato o quando corrispondono regole condizionali con frontmatter `paths:`. L'hook non supporta il blocco né il controllo delle decisioni. Viene eseguito in modo asincrono a scopo di osservabilità.

1365 1365 

1366Questo evento non si esegue quando Claude [legge `AGENTS.md` direttamente](/docs/it/memory#agents-md) tramite l'impostazione **Project instructions**. Si esegue quando un `CLAUDE.md` importa il tuo `AGENTS.md`, con `load_reason` impostato su `include` come per qualsiasi altro file importato, e quando `CLAUDE.md` è un symlink ad esso, come un caricamento `CLAUDE.md` normale.1366Questo evento non si attiva quando Claude [legge direttamente `AGENTS.md`](/docs/it/memory#agents-md) tramite l'impostazione **Project instructions**. Si attiva invece quando un `CLAUDE.md` importa il tuo `AGENTS.md`, con `load_reason` impostato su `include` come per qualsiasi altro file importato, e quando `CLAUDE.md` è un collegamento simbolico ad esso, come un normale caricamento di `CLAUDE.md`.

1367 1367 

1368Il matcher viene eseguito su `load_reason`. Ad esempio, usa `"matcher": "session_start"` per eseguire solo per i file caricati all'avvio della sessione, o `"matcher": "path_glob_match|nested_traversal"` per eseguire solo per i caricamenti pigri.1368Il matcher viene confrontato con `load_reason`. Ad esempio, usa `"matcher": "session_start"` per attivarlo solo per i file caricati all'avvio della sessione, oppure `"matcher": "path_glob_match|nested_traversal"` per attivarlo solo per i caricamenti differiti.

1369 1369 

1370<h4 id="instructionsloaded-input">1370<h4 id="instructionsloaded-input">

1371 Input InstructionsLoaded1371 Input di InstructionsLoaded

1372</h4>1372</h4>

1373 1373 

1374Oltre ai [campi di input comuni](#common-input-fields), gli hook InstructionsLoaded ricevono questi campi:1374Oltre ai [campi di input comuni](#common-input-fields), gli hook InstructionsLoaded ricevono questi campi:

1375 1375 

1376| Campo | Descrizione |1376| Campo | Descrizione |

1377| :- | :- |1377| :- | :- |

1378| `file_path` | Percorso assoluto al file di istruzioni che è stato caricato |1378| `file_path` | Percorso assoluto del file di istruzioni che è stato caricato |

1379| `memory_type` | Ambito del file: `"User"`, `"Project"`, `"Local"`, o `"Managed"` |1379| `memory_type` | Ambito del file: `"User"`, `"Project"`, `"Local"` o `"Managed"` |

1380| `load_reason` | Perché il file è stato caricato: `"session_start"`, `"nested_traversal"`, `"path_glob_match"`, `"include"`, o `"compact"`. Il valore `"compact"` si esegue quando i file di istruzioni vengono ricaricati dopo un evento di compattazione |1380| `load_reason` | Perché il file è stato caricato: `"session_start"`, `"nested_traversal"`, `"path_glob_match"`, `"include"` o `"compact"`. Il valore `"compact"` si attiva quando i file di istruzioni vengono ricaricati dopo un evento di compattazione |

1381| `globs` | Modelli di glob di percorso dal frontmatter `paths:` del file, se presenti. Presente solo per i caricamenti `path_glob_match` |1381| `globs` | Pattern glob di percorso dal frontmatter `paths:` del file, se presenti. Presente solo per i caricamenti `path_glob_match` |

1382| `trigger_file_path` | Percorso al file il cui accesso ha attivato questo caricamento, per i caricamenti pigri |1382| `trigger_file_path` | Percorso del file il cui accesso ha attivato questo caricamento, per i caricamenti differiti |

1383| `parent_file_path` | Percorso al file di istruzioni genitore che ha incluso questo, per i caricamenti `include` |1383| `parent_file_path` | Percorso del file di istruzioni padre che ha incluso questo, per i caricamenti `include` |

1384 1384 

1385```json theme={null}1385```json theme={null}

1386{1386{


1395```1395```

1396 1396 

1397<h4 id="instructionsloaded-decision-control">1397<h4 id="instructionsloaded-decision-control">

1398 Controllo decisionale InstructionsLoaded1398 Controllo delle decisioni di InstructionsLoaded

1399</h4>1399</h4>

1400 1400 

1401Gli hook InstructionsLoaded non hanno controllo decisionale. Non possono bloccare o modificare il caricamento delle istruzioni. Claude Code scarta i loro [campi di output JSON](#json-output), come `systemMessage` e `continue`. Usa questo evento per il logging di audit, il tracciamento della conformità, o l'osservabilità.1401Gli hook InstructionsLoaded non hanno controllo delle decisioni. Non possono bloccare né modificare il caricamento delle istruzioni. Claude Code scarta i loro [campi di output JSON](#json-output), come `systemMessage` e `continue`. Usa questo evento per log di audit, tracciamento della conformità o osservabilità.

1402 1402 

1403<h3 id="userpromptsubmit">1403<h3 id="userpromptsubmit">

1404 UserPromptSubmit1404 UserPromptSubmit

1405</h3>1405</h3>

1406 1406 

1407Si esegue quando l'utente invia un prompt, prima che Claude lo elabori. Questo ti consente di aggiungere contesto aggiuntivo basato sul prompt/conversazione, convalidare i prompt, o bloccare determinati tipi di prompt.1407Viene eseguito quando viene inviato un prompt, prima che Claude lo elabori. Questo ti consente

1408di aggiungere contesto in base al prompt o alla conversazione, convalidare i prompt o

1409bloccare determinati tipi di prompt.

1408 1410 

1409Gli hook `UserPromptSubmit` hanno un timeout predefinito di 30 secondi per i tipi `command`, `http`, e `mcp_tool`, più breve del default di 600 secondi per quei tipi sulla maggior parte degli altri eventi. Poiché questo hook si esegue prima di ogni prompt e blocca l'elaborazione del modello finché non completa, un hook bloccato blocca la sessione. Se il tuo hook ha bisogno di più tempo, imposta il campo `timeout` nella voce dell'hook.1411Gli hook `UserPromptSubmit` non vengono attivati solo sui prompt che digiti. Claude Code li esegue anche quando:

1410 1412 

1411A parte un hook di comando che esegui con [`async: true`](#run-hooks-in-the-background), un hook `UserPromptSubmit` di comando, HTTP, o MCP tool che raggiunge il suo timeout viene annullato e il suo output, incluso qualsiasi `additionalContext`, viene scartato. Il prompt raggiunge comunque Claude senza quel contesto. La trascrizione mostra un avviso che nomina l'hook, il timeout che si è attivato, e che l'output è stato scartato.1413* Viene attivata un'[attività pianificata](/docs/it/scheduled-tasks), inclusa un'iterazione di `/loop`

1414* Un [subagent in background](/docs/it/sub-agents#run-subagents-in-foreground-or-background) riferisce alla sessione che l'ha avviato

1415* Un [messaggio inviato da un'altra sessione](/docs/it/cross-session-messaging) arriva alla tua conversazione principale

1412 1416 

1413Un [hook di callback Agent SDK](/docs/it/agent-sdk/hooks) su `UserPromptSubmit` che raggiunge il suo timeout blocca il prompt con un messaggio che nomina l'hook e il timeout, perché un callback lì può agire come un gate di policy che non deve fallire aperto. La sessione continua. Prima della v2.1.208, un timeout di callback su quell'evento terminava il turno con un errore di esecuzione.1417Gli hook `UserPromptSubmit` hanno un timeout predefinito di 30 secondi per i tipi `command`, `http` e `mcp_tool`, più breve del valore predefinito di 600 secondi per quei tipi nella maggior parte degli altri eventi. Poiché questo hook viene eseguito prima di ogni prompt e blocca l'elaborazione del modello finché non termina, un hook bloccato blocca la sessione. Se il tuo hook ha bisogno di più tempo, imposta il campo `timeout` nella voce dell'hook.

1418 

1419Fatta eccezione per un hook di comando che esegui con [`async: true`](#run-hooks-in-the-background), un hook `UserPromptSubmit` di comando, HTTP o di strumento MCP che raggiunge il suo timeout viene annullato e il suo output, incluso qualsiasi `additionalContext`, viene scartato. Il prompt raggiunge comunque Claude senza quel contesto. La trascrizione mostra un avviso che indica l'hook, il timeout scattato e che l'output è stato scartato.

1420 

1421Un [hook di callback dell'Agent SDK](/docs/it/agent-sdk/hooks) su `UserPromptSubmit` che raggiunge il suo timeout blocca il prompt con un messaggio che indica l'hook e il timeout, perché un callback in quel punto può fungere da controllo di policy che non deve fallire in modo permissivo. La sessione continua. Prima della v2.1.208, un timeout di callback su quell'evento terminava il turno con un errore di esecuzione.

1414 1422 

1415<h4 id="userpromptsubmit-input">1423<h4 id="userpromptsubmit-input">

1416 Input UserPromptSubmit1424 Input di UserPromptSubmit

1417</h4>1425</h4>

1418 1426 

1419Oltre ai [campi di input comuni](#common-input-fields), gli hook UserPromptSubmit ricevono il campo `prompt` contenente il testo che l'utente ha inviato. Il contenuto incollato che è crollato in un segnaposto `[Pasted text #N]` arriva espanso al suo posto. Nelle sessioni in cui Claude Code [contrassegna il testo incollato per Claude](/docs/it/terminal-config#how-claude-treats-pasted-text), quel contenuto espanso si trova tra una riga `<pasted_content id="…">` e una riga `</pasted_content id="…">`, quindi tieni conto di quelle righe se il tuo hook analizza il prompt.1427Oltre ai [campi di input comuni](#common-input-fields), gli hook UserPromptSubmit ricevono il campo `prompt` contenente il testo inviato. Il contenuto incollato che è stato compresso in un segnaposto `[Pasted text #N]` arriva espanso sul posto. Nelle sessioni in cui Claude Code [contrassegna il testo incollato per Claude](/docs/it/terminal-config#how-claude-treats-pasted-text), quel contenuto espanso si trova tra una riga `<pasted_content id="…">` e una riga `</pasted_content id="…">`, quindi tieni conto di queste righe se il tuo hook analizza il prompt.

1420 1428 

1421Gli hook UserPromptSubmit ricevono anche `session_title` quando la sessione ha un titolo personalizzato, con lo stesso significato del [campo SessionStart `session_title`](#sessionstart-input).1429Gli hook UserPromptSubmit ricevono anche `session_title` quando la sessione ha un titolo personalizzato, con lo stesso significato del [campo `session_title` di SessionStart](#sessionstart-input).

1422 1430 

1423```json theme={null}1431```json theme={null}

1424{1432{


1432```1440```

1433 1441 

1434<h4 id="userpromptsubmit-decision-control">1442<h4 id="userpromptsubmit-decision-control">

1435 Controllo decisionale UserPromptSubmit1443 Controllo delle decisioni di UserPromptSubmit

1436</h4>1444</h4>

1437 1445 

1438Gli hook `UserPromptSubmit` possono controllare se un prompt utente viene elaborato e aggiungere contesto. Tutti i [campi di output JSON](#json-output) sono disponibili.1446Gli hook `UserPromptSubmit` possono controllare se un prompt inviato viene elaborato e aggiungere contesto. Sono disponibili tutti i [campi di output JSON](#json-output).

1439 1447 

1440Ci sono due modi per aggiungere contesto alla conversazione all'uscita del codice 0:1448Ci sono due modi per aggiungere contesto alla conversazione con codice di uscita 0:

1441 1449 

1442* **Stdout di testo semplice**: Claude Code aggiunge stdout che [tratta come testo semplice](#exit-code-0) al contesto di Claude1450* **Stdout in testo semplice**: Claude Code aggiunge al contesto di Claude lo stdout che [tratta come testo semplice](#exit-code-0)

1443* **JSON con `additionalContext`**: usa il formato JSON sottostante per più controllo. Il campo `additionalContext` viene aggiunto come contesto1451* **JSON con `additionalContext`**: usa il formato JSON seguente per un maggiore controllo. Il campo `additionalContext` viene aggiunto come contesto

1444 1452 

1445Nessuno dei due canali produce una voce di trascrizione visibile. Lo stdout semplice e il valore `additionalContext` vengono ciascuno iniettati come un promemoria di sistema che inizia con il nome dell'hook; Claude legge entrambi. Per confermare la consegna, controlla il [debug log](#debug-hooks).1453Nessuno dei due canali produce una voce visibile nella trascrizione. Lo stdout semplice e il valore di `additionalContext` vengono ciascuno inseriti come promemoria di sistema che inizia con il nome dell'hook; Claude li legge entrambi. Per verificare il recapito, controlla il [log di debug](#debug-hooks).

1446 1454 

1447Per bloccare un prompt, restituisci un oggetto JSON con `decision` impostato su `"block"`:1455Per bloccare un prompt, restituisci un oggetto JSON con `decision` impostato su `"block"`:

1448 1456 

1449| Campo | Descrizione |1457| Campo | Descrizione |

1450| :- | :- |1458| :- | :- |

1451| `decision` | `"block"` ferma il prompt prima che raggiunga Claude. Ometti per consentire al prompt di procedere |1459| `decision` | `"block"` ferma il prompt prima che raggiunga Claude. Omettilo per consentire al prompt di procedere |

1452| `reason` | Mostrato all'utente quando `decision` è `"block"`. Non aggiunto al contesto |1460| `reason` | Mostrato all'utente quando `decision` è `"block"`. Non viene aggiunto al contesto |

1453| `additionalContext` | Stringa aggiunta al contesto di Claude insieme al prompt inviato. Vedi [Aggiungi contesto per Claude](#add-context-for-claude) |1461| `additionalContext` | Stringa aggiunta al contesto di Claude insieme al prompt inviato. Consulta [Aggiungere contesto per Claude](#add-context-for-claude) |

1454| `sessionTitle` | Imposta il titolo della sessione. Usa per nominare le sessioni automaticamente in base al contenuto del prompt |1462| `sessionTitle` | Imposta il titolo della sessione. Usalo per dare automaticamente un nome alle sessioni in base al contenuto del prompt |

1455| `suppressOriginalPrompt` | Se `true` quando l'hook blocca il prompt, lascia il testo del prompt fuori dal messaggio di blocco. Vedi [Cosa lascia dietro un prompt bloccato](#what-a-blocked-prompt-leaves-behind) |1463| `suppressOriginalPrompt` | Se è `true` quando l'hook blocca il prompt, esclude il testo del prompt dal messaggio di blocco. Consulta [Cosa lascia un prompt bloccato](#what-a-blocked-prompt-leaves-behind) |

1456 1464 

1457Un hook che blocca uscendo con 2 si instrada allo stesso modo di `reason`: il messaggio di blocco mostra il testo stderr all'utente, e non viene aggiunto al contesto.1465Un hook che blocca terminando con 2 segue lo stesso percorso di `reason`: il messaggio di blocco mostra il testo di stderr all'utente e non viene aggiunto al contesto.

1458 1466 

1459```json theme={null}1467```json theme={null}

1460{1468{


1470```1478```

1471 1479 

1472<h4 id="what-a-blocked-prompt-leaves-behind">1480<h4 id="what-a-blocked-prompt-leaves-behind">

1473 Cosa lascia dietro un prompt bloccato1481 Cosa lascia un prompt bloccato

1474</h4>1482</h4>

1475 1483 

1476Un prompt bloccato non raggiunge mai Claude, ma il suo testo non viene rimosso ovunque. Per impostazione predefinita il messaggio di blocco mostrato all'utente termina con `Original prompt:` seguito dal testo inviato, e Claude Code scrive quel messaggio nel file di trascrizione della sessione su disco. Per lasciare il testo fuori dal messaggio, stampa JSON con `"suppressOriginalPrompt": true` dentro `hookSpecificOutput`. Questo funziona se l'hook blocca con `decision: "block"` o uscendo con 2. Un hook di uscita-2 che non stampa JSON ottiene sempre il testo del prompt nel suo messaggio di blocco.1484Un prompt bloccato non raggiunge mai Claude, ma il suo testo non viene rimosso ovunque. Per impostazione predefinita, il messaggio di blocco mostrato all'utente termina con `Original prompt:` seguito dal testo inviato, e Claude Code scrive quel messaggio nel file di trascrizione della sessione su disco. Per escludere il testo dal messaggio, stampa un JSON con `"suppressOriginalPrompt": true` all'interno di `hookSpecificOutput`. Funziona sia che l'hook blocchi con `decision: "block"` sia terminando con 2. Un hook con uscita 2 che non stampa JSON riceve sempre il testo del prompt nel suo messaggio di blocco.

1477 1485 

1478`suppressOriginalPrompt` cambia solo il messaggio di blocco. Il testo inviato può ancora apparire in file locali come la trascrizione della sessione e la tua cronologia dei prompt, quindi un hook di blocco non è un modo per mantenere un segreto fuori dal disco. Per limitare o rimuovere quei file, vedi [Plaintext storage](/docs/it/claude-directory#plaintext-storage) e [Clear local data](/docs/it/claude-directory#clear-local-data).1486`suppressOriginalPrompt` modifica solo il messaggio di blocco. Il testo inviato può comunque comparire in file locali come la trascrizione della sessione e la cronologia dei prompt, quindi un hook di blocco non è un modo per tenere un segreto fuori dal disco. Per limitare o rimuovere questi file, consulta [Archiviazione in testo semplice](/docs/it/claude-directory#plaintext-storage) e [Cancellare i dati locali](/docs/it/claude-directory#clear-local-data).

1479 1487 

1480<h3 id="userpromptexpansion">1488<h3 id="userpromptexpansion">

1481 UserPromptExpansion1489 UserPromptExpansion

1482</h3>1490</h3>

1483 1491 

1484Si esegue quando un comando digitato dall'utente si espande in un prompt prima di raggiungere Claude. Usa questo per bloccare comandi specifici dall'invocazione diretta, iniettare contesto per una skill particolare, o registrare quali comandi gli utenti invocano. Ad esempio, un hook che corrisponde a `deploy` può bloccare `/deploy` a meno che un file di approvazione non sia presente, o un hook che corrisponde a una skill di revisione può aggiungere la lista di controllo di revisione del team come `additionalContext`.1492Viene eseguito quando un comando digitato dall'utente si espande in un prompt prima di raggiungere Claude. Usalo per impedire l'invocazione diretta di comandi specifici, inserire contesto per una particolare skill o registrare quali comandi invocano gli utenti. Ad esempio, un hook che corrisponde a `deploy` può bloccare `/deploy` a meno che non sia presente un file di approvazione, oppure un hook che corrisponde a una skill di revisione può aggiungere la checklist di revisione del team come `additionalContext`.

1485 1493 

1486Questo evento copre il percorso che `PreToolUse` non copre: un hook `PreToolUse` che corrisponde allo strumento `Skill` si esegue solo quando Claude chiama lo strumento, ma digitare `/skillname` direttamente bypassa `PreToolUse`. `UserPromptExpansion` si esegue su quel percorso diretto.1494Questo evento copre il percorso che `PreToolUse` non copre: un hook `PreToolUse` che corrisponde allo strumento `Skill` si attiva solo quando Claude chiama lo strumento, ma digitare direttamente `/skillname` aggira `PreToolUse`. `UserPromptExpansion` si attiva su quel percorso diretto.

1487 1495 

1488Corrisponde su `command_name`. Lascia il matcher vuoto per eseguire su ogni comando di tipo prompt.1496Effettua la corrispondenza su `command_name`. Lascia vuoto il matcher per attivarlo su ogni comando di tipo prompt.

1489 1497 

1490<h4 id="userpromptexpansion-input">1498<h4 id="userpromptexpansion-input">

1491 Input UserPromptExpansion1499 Input di UserPromptExpansion

1492</h4>1500</h4>

1493 1501 

1494Oltre ai [campi di input comuni](#common-input-fields), gli hook UserPromptExpansion ricevono `expansion_type`, `command_name`, `command_args`, `command_source`, e la stringa `prompt` originale. Il campo `expansion_type` è `slash_command` per skill e comandi personalizzati, o `mcp_prompt` per i prompt del server MCP.1502Oltre ai [campi di input comuni](#common-input-fields), gli hook UserPromptExpansion ricevono `expansion_type`, `command_name`, `command_args`, `command_source` e la stringa `prompt` originale. Il campo `expansion_type` è `slash_command` per le skill e i comandi personalizzati, oppure `mcp_prompt` per i prompt dei server MCP.

1495 1503 

1496```json theme={null}1504```json theme={null}

1497{1505{


1509```1517```

1510 1518 

1511<h4 id="userpromptexpansion-decision-control">1519<h4 id="userpromptexpansion-decision-control">

1512 Controllo decisionale UserPromptExpansion1520 Controllo delle decisioni di UserPromptExpansion

1513</h4>1521</h4>

1514 1522 

1515Gli hook `UserPromptExpansion` possono bloccare l'espansione o aggiungere contesto. Tutti i [campi di output JSON](#json-output) sono disponibili.1523Gli hook `UserPromptExpansion` possono bloccare l'espansione o aggiungere contesto. Sono disponibili tutti i [campi di output JSON](#json-output).

1516 1524 

1517| Campo | Descrizione |1525| Campo | Descrizione |

1518| :- | :- |1526| :- | :- |

1519| `decision` | `"block"` impedisce al comando di espandersi. Ometti per consentirgli di procedere |1527| `decision` | `"block"` impedisce l'espansione del comando. Omettilo per consentirgli di procedere |

1520| `reason` | Mostrato all'utente quando `decision` è `"block"` |1528| `reason` | Mostrato all'utente quando `decision` è `"block"` |

1521| `additionalContext` | Stringa aggiunta al contesto di Claude insieme al prompt espanso. Vedi [Aggiungi contesto per Claude](#add-context-for-claude) |1529| `additionalContext` | Stringa aggiunta al contesto di Claude insieme al prompt espanso. Consulta [Aggiungere contesto per Claude](#add-context-for-claude) |

1522 1530 

1523Un hook che blocca uscendo con 2 si instrada allo stesso modo di `reason`: il messaggio di blocco mostra il testo stderr all'utente.1531Un hook che blocca terminando con 2 segue lo stesso percorso di `reason`: il messaggio di blocco mostra il testo di stderr all'utente.

1524 1532 

1525```json theme={null}1533```json theme={null}

1526{1534{


1537 MessageDisplay1545 MessageDisplay

1538</h3>1546</h3>

1539 1547 

1540Si esegue mentre un messaggio dell'assistente scorre sullo schermo. Claude Code visualizza il messaggio in incrementi: ogni volta che un batch di righe appena completate è pronto per il rendering, l'hook si esegue una volta con quelle righe e Claude Code esegue il rendering del testo di sostituzione dell'hook al loro posto. Un messaggio lungo produce diverse chiamate; un messaggio breve può produrne solo una.1548Viene eseguito mentre un messaggio dell'assistente viene trasmesso sullo schermo. Claude Code mostra il messaggio a incrementi: ogni volta che un gruppo di righe appena completate è pronto per essere visualizzato, l'hook viene eseguito una volta con quelle righe e Claude Code visualizza al loro posto il testo sostitutivo dell'hook. Un messaggio lungo produce diverse chiamate; un messaggio breve può produrne una sola.

1541 1549 

1542Usa MessageDisplay per:1550Usa MessageDisplay per:

1543 1551 

1544* rimuovere markdown per una visualizzazione minima1552* rimuovere il markdown per una visualizzazione minimale

1545* trasformare il testo che un'applicazione Agent SDK mostra ai suoi utenti1553* trasformare il testo che un'applicazione Agent SDK mostra ai suoi utenti

1546* redarre chiavi API o nomi host interni dalle risposte di Claude1554* oscurare chiavi API o nomi host interni dalle risposte di Claude

1547 1555 

1548Claude Code tiene ogni batch finché il tuo hook non ritorna, quindi mantieni l'hook veloce. Se l'hook fallisce o scade, Claude Code visualizza il testo originale. Il timeout predefinito per questo evento è 10 secondi; se il tuo hook ha bisogno di più tempo, imposta il campo `timeout` nella voce dell'hook.1556Claude Code trattiene ogni gruppo finché il tuo hook non restituisce, quindi mantieni l'hook veloce. Se l'hook fallisce o va in timeout, Claude Code mostra il testo originale. Il timeout predefinito per questo evento è di 10 secondi; se il tuo hook ha bisogno di più tempo, imposta il campo `timeout` nella voce dell'hook.

1549 1557 

1550MessageDisplay è solo visualizzazione: il testo di sostituzione cambia solo ciò che viene renderizzato sullo schermo. La trascrizione e ciò che Claude vede mantengono il testo originale, quindi Claude non vede mai la sostituzione, e la modalità verbose mostra l'originale. L'hook riceve solo il testo del messaggio dell'assistente, quindi i risultati degli strumenti e il testo che digiti vengono renderizzati invariati.1558MessageDisplay riguarda solo la visualizzazione: il testo sostitutivo cambia solo ciò che viene mostrato sullo schermo. La trascrizione e ciò che vede Claude mantengono il testo originale, quindi Claude non vede mai la sostituzione, e la modalità verbose mostra l'originale. L'hook riceve solo il testo dei messaggi dell'assistente, quindi i risultati degli strumenti e il testo che digiti vengono visualizzati senza modifiche.

1551 1559 

1552MessageDisplay non supporta i matcher e si esegue per ogni messaggio dell'assistente che scorre il testo; i messaggi senza testo, come le risposte solo di chiamate di strumenti, non lo attivano.1560MessageDisplay non supporta i matcher e si attiva per ogni messaggio dell'assistente che trasmette testo; i messaggi senza testo, come le risposte composte solo da chiamate agli strumenti, non lo attivano.

1553 1561 

1554Nelle esecuzioni non interattive, incluse le query Agent SDK e `claude -p`, MessageDisplay si esegue una volta per messaggio dell'assistente invece che una volta per batch di righe. La singola chiamata arriva dopo che il messaggio completa e porta il testo completo del messaggio: `index` è `0`, `final` è `true`, e `delta` contiene l'intero messaggio. Un hook che raccoglie il testo `delta` per ogni messaggio riceve lo stesso testo totale in entrambe le modalità.1562Nelle esecuzioni non interattive, incluse le query dell'Agent SDK e `claude -p`, MessageDisplay viene eseguito una volta per messaggio dell'assistente invece che una volta per gruppo di righe. La singola chiamata arriva dopo il completamento del messaggio e contiene il testo completo del messaggio: `index` è `0`, `final` è `true` e `delta` contiene l'intero messaggio. Un hook che raccoglie il testo `delta` di ogni messaggio riceve lo stesso testo totale in entrambe le modalità.

1555 1563 

1556<h4 id="messagedisplay-input">1564<h4 id="messagedisplay-input">

1557 Input MessageDisplay1565 Input di MessageDisplay

1558</h4>1566</h4>

1559 1567 

1560Oltre ai [campi di input comuni](#common-input-fields), gli hook MessageDisplay ricevono identificatori per il turno e il messaggio, la posizione di questa chiamata all'interno del messaggio, e il nuovo testo in `delta`. I confini dei batch dipendono da come il testo scorre, quindi usa `index` e `final` per tracciare il progresso attraverso un messaggio piuttosto che aspettarsi che le righe siano raggruppate in un modo particolare.1568Oltre ai [campi di input comuni](#common-input-fields), gli hook MessageDisplay ricevono gli identificatori del turno e del messaggio, la posizione di questa chiamata all'interno del messaggio e il nuovo testo in `delta`. I limiti dei gruppi dipendono da come viene trasmesso il testo, quindi usa `index` e `final` per seguire l'avanzamento in un messaggio invece di aspettarti che le righe siano raggruppate in un modo particolare.

1561 1569 

1562| Campo | Descrizione |1570| Campo | Descrizione |

1563| :- | :- |1571| :- | :- |

1564| `turn_id` | UUID del turno corrente |1572| `turn_id` | UUID del turno corrente |

1565| `message_id` | UUID del messaggio dell'assistente visualizzato. Stabile in ogni batch dello stesso messaggio. Questo non è l'ID API `msg_…`, quindi non può essere correlato con gli ID dei messaggi di trascrizione |1573| `message_id` | UUID del messaggio dell'assistente visualizzato. Stabile in tutti i gruppi dello stesso messaggio. Non è l'id API `msg_…`, quindi non può essere correlato con gli id dei messaggi della trascrizione |

1566| `index` | Indice a base zero di questo batch all'interno del messaggio |1574| `index` | Indice a base zero di questo gruppo all'interno del messaggio |

1567| `final` | `true` sul batch finale del messaggio. Ogni messaggio ha esattamente un batch finale |1575| `final` | `true` nell'ultimo gruppo del messaggio. Ogni messaggio ha esattamente un gruppo finale |

1568| `delta` | Le righe appena completate dalla batch precedente, incluse le newline finali. Sempre righe intere, tranne il batch finale che può terminare a metà riga. Nelle esecuzioni interattive, il delta del batch finale è vuoto quando il messaggio termina su una newline, quindi tratta `final`, non un delta non vuoto, come il segnale di fine messaggio. Nelle esecuzioni Agent SDK e `claude -p`, la singola chiamata porta l'intero messaggio |1576| `delta` | Le righe appena completate dal gruppo precedente, inclusi i caratteri di nuova riga finali. Sempre righe intere, tranne il gruppo finale che può terminare a metà riga. Nelle esecuzioni interattive, il delta del gruppo finale è vuoto quando il messaggio termina con una nuova riga, quindi considera `final`, e non un delta non vuoto, come segnale di fine messaggio. Nelle esecuzioni Agent SDK e `claude -p`, la singola chiamata contiene l'intero messaggio |

1569 1577 

1570```json theme={null}1578```json theme={null}

1571{1579{


1582```1590```

1583 1591 

1584<h4 id="messagedisplay-output">1592<h4 id="messagedisplay-output">

1585 Output MessageDisplay1593 Output di MessageDisplay

1586</h4>1594</h4>

1587 1595 

1588Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, gli hook MessageDisplay possono restituire `displayContent` per sostituire il delta sullo schermo:1596Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, gli hook MessageDisplay possono restituire `displayContent` per sostituire il delta sullo schermo:


1591| :- | :- |1599| :- | :- |

1592| `displayContent` | Testo visualizzato al posto del delta. Omettilo per visualizzare l'originale |1600| `displayContent` | Testo visualizzato al posto del delta. Omettilo per visualizzare l'originale |

1593 1601 

1594Gli hook MessageDisplay non hanno controllo decisionale. Non possono bloccare il messaggio o cambiare ciò che viene archiviato nella trascrizione o inviato a Claude. Claude Code agisce su `displayContent` dal loro output JSON e scarta `systemMessage` e `continue`.1602Gli hook MessageDisplay non hanno controllo delle decisioni. Non possono bloccare il messaggio né modificare ciò che viene archiviato nella trascrizione o inviato a Claude. Claude Code agisce su `displayContent` dal loro output JSON e scarta `systemMessage` e `continue`.

1595 1603 

1596Questo esempio rimuove la formattazione markdown dalle risposte di Claude per una visualizzazione di testo semplice. Lo script legge ogni batch da stdin, rimuove i marcatori di grassetto e i backtick di codice inline da `delta`, e restituisce il risultato come `displayContent`.1604Questo esempio rimuove la formattazione markdown dalle risposte di Claude per una visualizzazione in testo semplice. Lo script legge ogni gruppo da stdin, rimuove da `delta` i marcatori del grassetto e i backtick del codice inline, e restituisce il risultato come `displayContent`.

1597 1605 

1598<Tabs>1606<Tabs>

1599 <Tab title="macOS/Linux">1607 <Tab title="macOS/Linux">


1652 }1660 }

1653 ```1661 ```

1654 1662 

1655 Il flag `-NoProfile` salta il caricamento del tuo profilo PowerShell in modo che l'hook si avvii velocemente, e `-ExecutionPolicy Bypass` consente a PowerShell di eseguire il file di script locale.1663 Il flag `-NoProfile` salta il caricamento del tuo profilo PowerShell così l'hook si avvia rapidamente, e `-ExecutionPolicy Bypass` permette a PowerShell di eseguire il file di script locale.

1656 1664 

1657 Salva questo script in `.claude/hooks/plain-display.ps1` nel tuo progetto:1665 Salva questo script in `.claude/hooks/plain-display.ps1` nel tuo progetto:

1658 1666 


1669 </Tab>1677 </Tab>

1670</Tabs>1678</Tabs>

1671 1679 

1672I batch senza markdown passano invariati. Se lo script fallisce, ad esempio perché `jq` manca, Claude Code visualizza il testo originale e nota il fallimento solo nell'[output di debug](#debug-hooks), non nella sessione.1680I gruppi senza markdown passano invariati. Se lo script fallisce, ad esempio perché manca `jq`, Claude Code mostra il testo originale e segnala l'errore solo nell'[output di debug](#debug-hooks), non nella sessione.

1673 1681 

1674<h3 id="pretooluse">1682<h3 id="pretooluse">

1675 PreToolUse1683 PreToolUse

1676</h3>1684</h3>

1677 1685 

1678Si esegue dopo che Claude crea i parametri dello strumento e prima di elaborare la chiamata dello strumento. Corrisponde a qualsiasi nome di strumento tranne `EndConversation`: strumenti incorporati come `Bash`, `PowerShell`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `Workflow`, `WebFetch`, `WebSearch`, `AskUserQuestion`, e `ExitPlanMode`, e qualsiasi [nome di strumento MCP](#match-mcp-tools).1686Viene eseguito dopo che Claude ha creato i parametri dello strumento e prima di elaborare la chiamata allo strumento. Effettua la corrispondenza su qualsiasi nome di strumento tranne `EndConversation`: strumenti integrati come `Bash`, `PowerShell`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `Workflow`, `WebFetch`, `WebSearch`, `AskUserQuestion` e `ExitPlanMode`, e qualsiasi [nome di strumento MCP](#match-mcp-tools).

1679 1687 

1680Per eseguire un hook quando un file specifico cambia su disco, qualunque cosa lo abbia scritto, usa [FileChanged](#filechanged) invece di corrispondere ai file-editing tools per nome. A differenza di PreToolUse, Claude Code esegue gli hook FileChanged dopo il cambio, e non hanno controllo decisionale, quindi non possono bloccare la scrittura.1688Per eseguire un hook quando un file specifico cambia su disco, indipendentemente da chi l'ha scritto, usa [FileChanged](#filechanged) invece di far corrispondere per nome gli strumenti di modifica dei file. A differenza di PreToolUse, Claude Code esegue gli hook FileChanged dopo la modifica, e questi non hanno controllo delle decisioni, quindi non possono bloccare la scrittura.

1681 1689 

1682<Warning>1690<Warning>

1683 PreToolUse si esegue solo quando Claude chiama uno strumento. I file che [riferisci con `@` nel tuo prompt](/docs/it/common-workflows#reference-files-and-directories) vengono aggiunti senza alcuna chiamata di strumento: Claude Code inserisce i loro contenuti mentre costruisce il prompt, quindi nessun hook PreToolUse si esegue per loro, inclusi gli hook che corrispondono a `Read`. Per bloccare percorsi specifici dai riferimenti `@`, usa una [regola di negazione `Read`](/docs/it/permissions#read-and-edit) invece.1691 PreToolUse viene eseguito solo quando Claude chiama uno strumento. I file che [fai riferimento con `@` nel tuo prompt](/docs/it/common-workflows#reference-files-and-directories) vengono aggiunti senza alcuna chiamata a uno strumento: Claude Code ne inserisce il contenuto durante la costruzione del prompt, quindi nessun hook PreToolUse si attiva per essi, inclusi gli hook che corrispondono a `Read`. Per bloccare percorsi specifici dai riferimenti `@`, usa invece una [regola deny di `Read`](/docs/it/permissions#read-and-edit).

1684 1692 

1685 PreToolUse inoltre non si esegue per [`EndConversation`](/docs/it/tools-reference#endconversation-tool-behavior).1693 PreToolUse inoltre non si attiva per [`EndConversation`](/docs/it/tools-reference#endconversation-tool-behavior).

1686</Warning>1694</Warning>

1687 1695 

1688Usa [Controllo decisionale PreToolUse](#pretooluse-decision-control) per consentire, negare, chiedere, o differire la chiamata dello strumento.1696Usa il [controllo delle decisioni di PreToolUse](#pretooluse-decision-control) per consentire, negare, chiedere o differire la chiamata allo strumento.

1689 1697 

1690Un [hook di callback Agent SDK](/docs/it/agent-sdk/hooks) su `PreToolUse` che supera il suo timeout blocca la chiamata dello strumento, e Claude riceve un risultato di errore che nomina il timeout. Un'esplicita negazione restituita da un altro hook ha ancora la precedenza.1698Un [hook di callback dell'Agent SDK](/docs/it/agent-sdk/hooks) su `PreToolUse` che supera il suo timeout blocca la chiamata allo strumento, e Claude riceve un risultato di errore che indica il timeout. Un deny esplicito restituito da un altro hook ha comunque la precedenza.

1691 1699 

1692<h4 id="pretooluse-input">1700<h4 id="pretooluse-input">

1693 Input PreToolUse1701 Input di PreToolUse

1694</h4>1702</h4>

1695 1703 

1696Oltre ai [campi di input comuni](#common-input-fields), gli hook PreToolUse ricevono `tool_name`, `tool_input`, e `tool_use_id`.1704Oltre ai [campi di input comuni](#common-input-fields), gli hook PreToolUse ricevono `tool_name`, `tool_input` e `tool_use_id`.

1697 1705 

1698Per uno [strumento MCP](#match-mcp-tools), l'input porta anche `mcp_server`, un oggetto con il `name` del server e una `source` che dice da dove viene la definizione del server. I valori `source` includono `plugin`, `sdk`, e ambiti di configurazione come `user` e `project`. [`McpServerProvenance`](/docs/it/agent-sdk/typescript#mcpserverprovenance) nel riferimento Agent SDK li elenca tutti e dice come trattarne uno che non riconosci. Basa le decisioni di fiducia su `source` piuttosto che su `name` o il prefisso del nome dello strumento `mcp__<server>__`. Il campo `mcp_server` richiede Claude Code v2.1.274 o successivo.1706Per uno [strumento MCP](#match-mcp-tools), l'input contiene anche `mcp_server`, un oggetto con il `name` del server e un `source` che indica da dove proviene la definizione del server. I valori di `source` includono `plugin`, `sdk` e ambiti di configurazione come `user` e `project`. [`McpServerProvenance`](/docs/it/agent-sdk/typescript#mcpserverprovenance) nel riferimento dell'Agent SDK li elenca tutti e spiega come trattarne uno che non riconosci. Basa le decisioni di fiducia su `source` anziché su `name` o sul prefisso `mcp__<server>__` del nome dello strumento. Il campo `mcp_server` richiede Claude Code v2.1.274 o successiva.

1699 1707 

1700Per gli strumenti di file `Write`, `Edit`, e `Read`, `tool_input.file_path` è sempre assoluto:1708Per gli strumenti sui file `Write`, `Edit` e `Read`, `tool_input.file_path` è sempre assoluto:

1701 1709 

1702* Claude Code espande `~` e i percorsi relativi prima che gli hook si eseguano, quindi un hook che corrisponde ai percorsi non può essere bypassato tramite `~` o un'ortografia relativa dello stesso percorso1710* Claude Code espande `~` e i percorsi relativi prima che gli hook vengano eseguiti, quindi un hook che effettua la corrispondenza sui percorsi non può essere aggirato tramite `~` o una forma relativa dello stesso percorso

1703* Su Windows, il percorso arriva con separatori backslash, anche quando il tuo hook si esegue sotto Git Bash dove `$PWD` sembra `/c/project`1711* Su Windows, il percorso arriva con separatori backslash, anche quando il tuo hook viene eseguito in Git Bash dove `$PWD` appare come `/c/project`

1704* Un confronto scritto con barre in avanti, come un controllo `/src/`, non corrisponde mai a un percorso backslash, e la chiamata dello strumento procede come se l'hook non avesse nulla da bloccare1712* Un confronto scritto con slash, come un controllo `/src/`, non corrisponde mai a un percorso con backslash, e la chiamata allo strumento procede come se l'hook non avesse nulla da bloccare

1705* Normalizza i separatori prima di confrontare: `FILE_PATH="${FILE_PATH//\\//}"` in Bash, o `file_path.replace("\\", "/")` in Python, quindi corrisponde a un segmento di percorso come `/src/` piuttosto che ancorare con `^`, poiché il percorso è assoluto1713* Normalizza i separatori prima di confrontare: `FILE_PATH="${FILE_PATH//\\//}"` in Bash, o `file_path.replace("\\", "/")` in Python, poi fai corrispondere un segmento di percorso come `/src/` anziché ancorare con `^`, poiché il percorso è assoluto

1706 1714 

1707Una chiamata `Write` su Windows consegna:1715Una chiamata `Write` su Windows fornisce:

1708 1716 

1709```json theme={null}1717```json theme={null}

1710{1718{


1718}1726}

1719```1727```

1720 1728 

1721I campi `tool_input` dipendono dallo strumento:1729I campi di `tool_input` dipendono dallo strumento:

1722 1730 

1723<a id="bash" />1731<a id="bash" />

1724 1732 


1731| Campo | Tipo | Esempio | Descrizione |1739| Campo | Tipo | Esempio | Descrizione |

1732| :- | :- | :- | :- |1740| :- | :- | :- | :- |

1733| `command` | string | `"npm test"` | Il comando shell da eseguire |1741| `command` | string | `"npm test"` | Il comando shell da eseguire |

1734| `description` | string | `"Run test suite"` | Descrizione facoltativa di cosa fa il comando |1742| `description` | string | `"Run test suite"` | Descrizione facoltativa di ciò che fa il comando |

1735| `timeout` | number | `120000` | Timeout facoltativo in millisecondi. I valori superiori al [massimo](/docs/it/tools-reference#bash-tool-behavior) vengono ridotti al massimo piuttosto che rifiutati |1743| `timeout` | number | `120000` | Timeout facoltativo in millisecondi. I valori superiori al [massimo](/docs/it/tools-reference#bash-tool-behavior) vengono ridotti al massimo anziché rifiutati |

1736| `run_in_background` | boolean | `false` | Se eseguire il comando in background |1744| `run_in_background` | boolean | `false` | Se eseguire il comando in background |

1737 1745 

1738Quando un comando Bash cambia i file in un repository Git, Claude Code può registrare cosa è cambiato. Registra i cambiamenti in ogni modalità di permesso quando l'impostazione [`bashEditDiffEnabled`](/docs/it/settings-reference#basheditdiffenabled) attiva la registrazione; la voce di quell'impostazione dice quali file possono impostarla. Altrimenti la registra solo in modalità auto e modalità `bypassPermissions`, e solo quando Claude Code dirige Claude a modificare i file tramite Bash. Imposta `bashEditDiffEnabled` su `false` per disattivare la registrazione. I comandi di background e i comandi di sola lettura non portano alcun diff.1746Quando un comando Bash modifica file in un repository Git, Claude Code può registrare cosa è cambiato. Registra le modifiche in ogni modalità di permesso quando l'impostazione [`bashEditDiffEnabled`](/docs/it/settings-reference#basheditdiffenabled) attiva la registrazione; la voce di quell'impostazione indica quali file possono impostarla. Altrimenti le registra solo in modalità auto e in modalità `bypassPermissions`, e solo quando Claude Code indica a Claude di modificare i file tramite Bash. Imposta `bashEditDiffEnabled` su `false` per disattivare la registrazione. I comandi in background e i comandi di sola lettura non includono alcun diff.

1739 1747 

1740Il tuo [hook PostToolUse](#posttooluse) riceve quindi i file modificati in `tool_response.bashEditDiff`. L'elenco copre ciò che è cambiato sotto il repository mentre il comando era in esecuzione. I file che Git ignora e i file nei submoduli non sono elencati. Richiede Claude Code v2.1.269 o successivo.1748Il tuo [hook PostToolUse](#posttooluse) riceve quindi i file modificati in `tool_response.bashEditDiff`. L'elenco copre ciò che è cambiato nel repository durante l'esecuzione del comando. I file ignorati da Git e i file nei submodule non sono elencati. Richiede Claude Code v2.1.269 o successiva.

1741 1749 

1742<Note>1750<Note>

1743 L'elenco è best effort e in beta pubblica. Claude Code può perdere un cambio, includere un file che un altro processo ha cambiato nello stesso momento, o fermarsi ai suoi limiti di dimensione. La forma del campo può cambiare. Usa l'elenco per trovare cosa rivedere, non per applicare una policy.1751 L'elenco è fornito al meglio delle possibilità ed è in beta pubblica. Claude Code può perdere una modifica, includere un file che un altro processo ha modificato nello stesso momento o fermarsi ai suoi limiti di dimensione. La struttura del campo potrebbe cambiare. Usa l'elenco per trovare cosa revisionare, non per applicare una policy.

1744</Note>1752</Note>

1745 1753 

1746`changedFiles` e `files` elencano ciò che il comando ha cambiato; i campi rimanenti dicono quanto è completo e quanto è affidabile quell'elenco.1754`changedFiles` e `files` elencano ciò che il comando ha modificato; i campi rimanenti indicano quanto è completo e quanto è affidabile quell'elenco.

1747 1755 

1748| Campo | Tipo | Esempio | Descrizione |1756| Campo | Tipo | Esempio | Descrizione |

1749| :- | :- | :- | :- |1757| :- | :- | :- | :- |

1750| `changedFiles` | array | `["/path/to/src/app.ts"]` | Percorsi assoluti dei file che il comando ha cambiato, al massimo 200. Presente ogni volta che `files` contiene un diff o `moreFiles` è superiore a zero |1758| `changedFiles` | array | `["/path/to/src/app.ts"]` | Percorsi assoluti dei file modificati dal comando, al massimo 200. Presente ogni volta che `files` contiene un diff o `moreFiles` è maggiore di zero |

1751| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | Diff di fino a 5 file modificati, per la visualizzazione. `created` o `deleted` è `true` per un file che il comando ha aggiunto o rimosso |1759| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | Diff di un massimo di 5 file modificati, per la visualizzazione. `created` o `deleted` è `true` per un file che il comando ha aggiunto o rimosso |

1752| `moreFiles` | number | `2` | Conteggio dei file modificati senza diff in `files` |1760| `moreFiles` | number | `2` | Numero di file modificati senza diff in `files` |

1753| `unavailable` | boolean | `true` | Impostato quando il diff è incompleto o non poteva essere preso |1761| `unavailable` | boolean | `true` | Impostato quando il diff è incompleto o non è stato possibile ottenerlo |

1754| `skipped` | boolean | `true` | Impostato per un comando Git che sposta l'albero di lavoro, come `git checkout` o `git stash`, quindi Claude Code non prende alcun diff |1762| `skipped` | boolean | `true` | Impostato per un comando Git che sposta l'albero di lavoro, come `git checkout` o `git stash`, per cui Claude Code non calcola alcun diff |

1755| `shared` | boolean | `true` | Impostato quando un'altra chiamata di strumento Bash, come quella di un subagente, si è eseguita nello stesso repository nello stesso momento, quindi alcuni cambiamenti elencati possono essere di quel comando |1763| `shared` | boolean | `true` | Impostato quando un'altra chiamata allo strumento Bash, ad esempio di un subagent, è stata eseguita nello stesso repository nello stesso momento, per cui alcune modifiche elencate potrebbero appartenere a quel comando |

1756 1764 

1757<a id="powershell" />1765<a id="powershell" />

1758 1766 


1760 PowerShell1768 PowerShell

1761</h5>1769</h5>

1762 1770 

1763Esegue comandi PowerShell. Vedi lo [strumento PowerShell](/docs/it/tools-reference#powershell-tool) per la disponibilità per piattaforma.1771Esegue comandi PowerShell. Consulta lo [strumento PowerShell](/docs/it/tools-reference#powershell-tool) per la disponibilità per piattaforma.

1764 1772 

1765I campi corrispondono allo strumento Bash, con la stringa di comando in `command`:1773I campi corrispondono a quelli dello strumento Bash, con la stringa del comando in `command`:

1766 1774 

1767| Campo | Tipo | Esempio | Descrizione |1775| Campo | Tipo | Esempio | Descrizione |

1768| :- | :- | :- | :- |1776| :- | :- | :- | :- |

1769| `command` | string | `"Get-ChildItem -Recurse"` | Il comando PowerShell da eseguire |1777| `command` | string | `"Get-ChildItem -Recurse"` | Il comando PowerShell da eseguire |

1770| `description` | string | `"List files recursively"` | Descrizione facoltativa di cosa fa il comando |1778| `description` | string | `"List files recursively"` | Descrizione facoltativa di ciò che fa il comando |

1771| `timeout` | number | `120000` | Timeout facoltativo in millisecondi |1779| `timeout` | number | `120000` | Timeout facoltativo in millisecondi |

1772| `run_in_background` | boolean | `false` | Se eseguire il comando in background |1780| `run_in_background` | boolean | `false` | Se eseguire il comando in background |

1773 1781 

1774Corrisponde a `Bash|PowerShell` negli hook che ispezionano i comandi shell, quindi coprono entrambi gli strumenti:1782Usa `Bash|PowerShell` come corrispondenza negli hook che ispezionano i comandi shell, così coprono entrambi gli strumenti:

1775 1783 

1776* Su Windows, ovunque lo strumento PowerShell sia abilitato, Claude tratta PowerShell come la shell primaria e instrada i comandi shell attraverso di esso.1784* Su Windows, ovunque lo strumento PowerShell sia abilitato, Claude tratta PowerShell come shell principale e vi instrada i comandi shell.

1777* Su Windows senza Git Bash, lo strumento è abilitato automaticamente e Claude Code non registra affatto lo strumento Bash.1785* Su Windows senza Git Bash, lo strumento è abilitato automaticamente e Claude Code non registra affatto lo strumento Bash.

1778* Un hook che corrisponde solo a `Bash` non si esegue mai lì.1786* Un hook che corrisponde solo a `Bash` non si attiva mai in quel caso.

1779 1787 

1780<h5 id="write">1788<h5 id="write">

1781 Write1789 Write


1785 1793 

1786| Campo | Tipo | Esempio | Descrizione |1794| Campo | Tipo | Esempio | Descrizione |

1787| :- | :- | :- | :- |1795| :- | :- | :- | :- |

1788| `file_path` | string | `"/path/to/file.txt"` | Percorso assoluto al file da scrivere |1796| `file_path` | string | `"/path/to/file.txt"` | Percorso assoluto del file da scrivere |

1789| `content` | string | `"file content"` | Contenuto da scrivere nel file |1797| `content` | string | `"file content"` | Contenuto da scrivere nel file |

1790 1798 

1791<h5 id="edit">1799<h5 id="edit">


1796 1804 

1797| Campo | Tipo | Esempio | Descrizione |1805| Campo | Tipo | Esempio | Descrizione |

1798| :- | :- | :- | :- |1806| :- | :- | :- | :- |

1799| `file_path` | string | `"/path/to/file.txt"` | Percorso assoluto al file da modificare |1807| `file_path` | string | `"/path/to/file.txt"` | Percorso assoluto del file da modificare |

1800| `old_string` | string | `"original text"` | Testo da trovare e sostituire |1808| `old_string` | string | `"original text"` | Testo da trovare e sostituire |

1801| `new_string` | string | `"replacement text"` | Testo di sostituzione |1809| `new_string` | string | `"replacement text"` | Testo sostitutivo |

1802| `replace_all` | boolean | `false` | Se sostituire tutte le occorrenze |1810| `replace_all` | boolean | `false` | Se sostituire tutte le occorrenze |

1803 1811 

1804<h5 id="read">1812<h5 id="read">

1805 Read1813 Read

1806</h5>1814</h5>

1807 1815 

1808Legge i contenuti del file.1816Legge il contenuto dei file.

1809 1817 

1810| Campo | Tipo | Esempio | Descrizione |1818| Campo | Tipo | Esempio | Descrizione |

1811| :- | :- | :- | :- |1819| :- | :- | :- | :- |

1812| `file_path` | string | `"/path/to/file.txt"` | Percorso assoluto al file da leggere |1820| `file_path` | string | `"/path/to/file.txt"` | Percorso assoluto del file da leggere |

1813| `offset` | number | `10` | Numero di riga facoltativo da cui iniziare la lettura |1821| `offset` | number | `10` | Numero di riga facoltativo da cui iniziare la lettura |

1814| `limit` | number | `50` | Numero facoltativo di righe da leggere |1822| `limit` | number | `50` | Numero facoltativo di righe da leggere |

1815 1823 


1817 Glob1825 Glob

1818</h5>1826</h5>

1819 1827 

1820Trova file che corrispondono a un modello glob.1828Trova i file che corrispondono a un pattern glob.

1821 1829 

1822| Campo | Tipo | Esempio | Descrizione |1830| Campo | Tipo | Esempio | Descrizione |

1823| :- | :- | :- | :- |1831| :- | :- | :- | :- |

1824| `pattern` | string | `"**/*.ts"` | Modello glob per corrispondere ai file |1832| `pattern` | string | `"**/*.ts"` | Pattern glob con cui confrontare i file |

1825| `path` | string | `"/path/to/dir"` | Directory facoltativa da cercare. Predefinito alla directory di lavoro corrente |1833| `path` | string | `"/path/to/dir"` | Directory facoltativa in cui cercare. Il valore predefinito è la directory di lavoro corrente |

1826 1834 

1827<h5 id="grep">1835<h5 id="grep">

1828 Grep1836 Grep

1829</h5>1837</h5>

1830 1838 

1831Cerca i contenuti dei file con espressioni regolari.1839Cerca nel contenuto dei file con espressioni regolari.

1832 1840 

1833| Campo | Tipo | Esempio | Descrizione |1841| Campo | Tipo | Esempio | Descrizione |

1834| :- | :- | :- | :- |1842| :- | :- | :- | :- |

1835| `pattern` | string | `"TODO.*fix"` | Modello di espressione regolare da cercare |1843| `pattern` | string | `"TODO.*fix"` | Pattern di espressione regolare da cercare |

1836| `path` | string | `"/path/to/dir"` | File o directory facoltativo da cercare |1844| `path` | string | `"/path/to/dir"` | File o directory facoltativa in cui cercare |

1837| `glob` | string | `"*.ts"` | Modello glob facoltativo per filtrare i file |1845| `glob` | string | `"*.ts"` | Pattern glob facoltativo per filtrare i file |

1838| `output_mode` | string | `"content"` | `"content"`, `"files_with_matches"`, o `"count"`. Predefinito a `"files_with_matches"` |1846| `output_mode` | string | `"content"` | `"content"`, `"files_with_matches"` o `"count"`. Il valore predefinito è `"files_with_matches"` |

1839| `-i` | boolean | `true` | Ricerca senza distinzione tra maiuscole e minuscole |1847| `-i` | boolean | `true` | Ricerca senza distinzione tra maiuscole e minuscole |

1840| `multiline` | boolean | `false` | Abilita la corrispondenza multilinea |1848| `multiline` | boolean | `false` | Abilita la corrispondenza su più righe |

1841 1849 

1842<h5 id="webfetch">1850<h5 id="webfetch">

1843 WebFetch1851 WebFetch

1844</h5>1852</h5>

1845 1853 

1846Recupera ed elabora il contenuto web.1854Recupera ed elabora contenuti web.

1847 1855 

1848| Campo | Tipo | Esempio | Descrizione |1856| Campo | Tipo | Esempio | Descrizione |

1849| :- | :- | :- | :- |1857| :- | :- | :- | :- |


1854 WebSearch1862 WebSearch

1855</h5>1863</h5>

1856 1864 

1857Cerca il web.1865Esegue ricerche sul web.

1858 1866 

1859| Campo | Tipo | Esempio | Descrizione |1867| Campo | Tipo | Esempio | Descrizione |

1860| :- | :- | :- | :- |1868| :- | :- | :- | :- |

1861| `query` | string | `"react hooks best practices"` | Query di ricerca |1869| `query` | string | `"react hooks best practices"` | Query di ricerca |

1862| `allowed_domains` | array | `["docs.example.com"]` | Facoltativo: includi solo risultati da questi domini |1870| `allowed_domains` | array | `["docs.example.com"]` | Facoltativo: include solo i risultati da questi domini |

1863| `blocked_domains` | array | `["spam.example.com"]` | Facoltativo: escludi risultati da questi domini |1871| `blocked_domains` | array | `["spam.example.com"]` | Facoltativo: esclude i risultati da questi domini |

1864 1872 

1865<h5 id="agent">1873<h5 id="agent">

1866 Agent1874 Agent

1867</h5>1875</h5>

1868 1876 

1869Genera un [subagente](/docs/it/sub-agents).1877Avvia un [subagent](/docs/it/sub-agents).

1870 1878 

1871| Campo | Tipo | Esempio | Descrizione |1879| Campo | Tipo | Esempio | Descrizione |

1872| :- | :- | :- | :- |1880| :- | :- | :- | :- |

1873| `prompt` | string | `"Find all API endpoints"` | L'attività per l'agente da eseguire |1881| `prompt` | string | `"Find all API endpoints"` | L'attività che l'agente deve svolgere |

1874| `description` | string | `"Find API endpoints"` | Breve descrizione dell'attività |1882| `description` | string | `"Find API endpoints"` | Breve descrizione dell'attività |

1875| `subagent_type` | string | `"Explore"` | Tipo di agente specializzato da usare |1883| `subagent_type` | string | `"Explore"` | Tipo di agente specializzato da usare |

1876| `model` | string | `"sonnet"` | Alias di modello facoltativo per sovrascrivere il predefinito |1884| `model` | string | `"sonnet"` | Alias di modello facoltativo per sovrascrivere quello predefinito |

1877 1885 

1878Quando una chiamata Agent in primo piano completa, il tuo [hook PostToolUse](#posttooluse) riceve il risultato del subagente e la telemetria di esecuzione in `tool_response`. Leggi questi campi per ispezionare l'esecuzione; per i rollup di token e costo tra i subagenti, usa i [contatori di token e costo](/docs/it/monitoring-usage#token-counter) filtrati a `query_source` `"subagent"`, poiché `totalTokens` e `usage` coprono solo la richiesta finale:1886Quando una chiamata Agent in primo piano viene completata, il tuo [hook PostToolUse](#posttooluse) riceve il risultato del subagent e la telemetria dell'esecuzione in `tool_response`. Leggi questi campi per ispezionare l'esecuzione; per i totali di token e costi tra i subagent, usa i [contatori di token e costi](/docs/it/monitoring-usage#token-counter) filtrati per `query_source` `"subagent"`, poiché `totalTokens` e `usage` coprono solo la richiesta finale:

1879 1887 

1880| Campo | Tipo | Esempio | Descrizione |1888| Campo | Tipo | Esempio | Descrizione |

1881| :- | :- | :- | :- |1889| :- | :- | :- | :- |

1882| `status` | string | `"completed"` | `"completed"` per i subagent in primo piano, `"async_launched"` per i subagent in background. I subagent vengono eseguiti in background per impostazione predefinita, quindi anche una chiamata Agent che omette `run_in_background` produce `"async_launched"` |1890| `status` | string | `"completed"` | `"completed"` per i subagent in primo piano, `"async_launched"` per i subagent in background. I subagent vengono eseguiti in background per impostazione predefinita, quindi anche una chiamata Agent che omette `run_in_background` produce `"async_launched"` |

1883| `agentId` | string | `"a4d2c8f1e0b3a297"` | Identificatore per l'esecuzione del subagente |1891| `agentId` | string | `"a4d2c8f1e0b3a297"` | Identificatore dell'esecuzione del subagent |

1884| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | I blocchi di testo finali del subagente, o, per un subagente il cui rapporto passa attraverso `SubagentHandback`, una breve nota su quel hand-back al loro posto |1892| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | I blocchi di testo finali del subagent oppure, per un subagent il cui rapporto passa attraverso `SubagentHandback`, una breve nota su quella consegna al loro posto |

1885| `resolvedModel` | string | `"claude-sonnet-4-5"` | Modello su cui il subagente ha iniziato, che può differire dal modello richiesto |1893| `resolvedModel` | string | `"claude-sonnet-4-5"` | Modello con cui è partito il subagent, che può differire dal modello richiesto |

1886| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | Modelli usati in ordine, con ripetizioni consecutive collassate; impostato solo quando il modello è stato scambiato a metà esecuzione. Richiede Claude Code v2.1.212 o successivo |1894| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | Modelli usati in ordine, con le ripetizioni consecutive unite; impostato solo quando il modello è stato cambiato durante l'esecuzione. Richiede Claude Code v2.1.212 o successiva |

1887| `totalTokens` | number | `12450` | Conteggio dei token dalla richiesta API finale del subagente: token di input, output, e cache combinati. Questo non è un totale su tutta l'esecuzione |1895| `totalTokens` | number | `12450` | Conteggio dei token dalla richiesta API finale del subagent: token di input, output e cache combinati. Non è un totale sull'intera esecuzione |

1888| `totalDurationMs` | number | `48211` | Durata di tempo reale dell'esecuzione del subagente |1896| `totalDurationMs` | number | `48211` | Durata reale dell'esecuzione del subagent |

1889| `totalToolUseCount` | number | `7` | Conteggio delle chiamate di strumento che il subagente ha fatto |1897| `totalToolUseCount` | number | `7` | Numero di chiamate agli strumenti effettuate dal subagent |

1890| `usage` | object | `{"input_tokens": 8320, ...}` | Breakdown dei token per tipo della richiesta API finale: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |1898| `usage` | object | `{"input_tokens": 8320, ...}` | Suddivisione per tipo dei token della richiesta API finale: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |

1891 1899 

1892Su Claude Code v2.1.271 o successivo, un subagente che si esegue con lo strumento [`SubagentHandback`](/docs/it/tools-reference), che Claude Code fornisce in [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode), consegna il suo rapporto attraverso quello strumento piuttosto che restituirlo come testo. Il campo `content` del suo risultato `completed` porta quindi una breve nota su quel hand-back piuttosto che il rapporto stesso. Per leggere il rapporto, corrisponde a un hook `PreToolUse` o `PostToolUse` su `SubagentHandback` e leggi `tool_input.message`.1900Su Claude Code v2.1.271 o successiva, un subagent che viene eseguito con lo strumento [`SubagentHandback`](/docs/it/tools-reference), che Claude Code fornisce in [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode), consegna il suo rapporto tramite quello strumento anziché restituirlo come testo. Il campo `content` del suo risultato `completed` contiene quindi una breve nota su quella consegna anziché il rapporto stesso. Per leggere il rapporto, fai corrispondere un hook `PreToolUse` o `PostToolUse` a `SubagentHandback` e leggi `tool_input.message`.

1893 1901 

1894Per i subagenti di background, lo strumento ritorna quando l'attività si sposta in background, quindi `tool_response` non porta campi di utilizzo: un lancio di background ritorna immediatamente, e un'attività in primo piano che Claude Code sposta in background a metà esecuzione ritorna a quella transizione. Ha `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile`, e `resolvedModel`.1902Per i subagent in background, lo strumento restituisce quando l'attività passa in background, quindi `tool_response` non contiene campi di utilizzo: un avvio in background restituisce immediatamente, e un'attività in primo piano che Claude Code sposta in background durante l'esecuzione restituisce in quel momento di transizione. Ha `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile` e `resolvedModel`.

1895 1903 

1896Su una risposta `completed`, `resolvedModel` nomina il modello su cui il subagente ha iniziato, che può differire dal valore `model` in `tool_input`, come quando `availableModels` o un altro override si applica. Su una risposta `async_launched`, `resolvedModel` nomina il modello in uso quando l'agente si è spostato in background, quindi uno scambio che è accaduto prima dello spostamento in background si riflette lì. `modelsUsed` e il comportamento `resolvedModel` al momento dello spostamento in background richiedono Claude Code v2.1.212 o successivo.1904In una risposta `completed`, `resolvedModel` indica il modello con cui è partito il subagent, che può differire dal valore `model` in `tool_input`, ad esempio quando si applica `availableModels` o un altro override. In una risposta `async_launched`, `resolvedModel` indica il modello in uso quando l'agente è passato in background, quindi un cambio avvenuto prima del passaggio in background si riflette lì. `modelsUsed` e il comportamento di `resolvedModel` al momento del passaggio in background richiedono Claude Code v2.1.212 o successiva.

1897 1905 

1898<a id="askuserquestion" />1906<a id="askuserquestion" />

1899 1907 


1901 AskUserQuestion1909 AskUserQuestion

1902</h5>1910</h5>

1903 1911 

1904Chiede all'utente da una a quattro domande a scelta multipla.1912Pone all'utente da una a quattro domande a scelta multipla.

1905 1913 

1906| Campo | Tipo | Esempio | Descrizione |1914| Campo | Tipo | Esempio | Descrizione |

1907| :- | :- | :- | :- |1915| :- | :- | :- | :- |

1908| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | Domande da presentare, ciascuna con una stringa `question`, un breve `header`, un array `options`, e un flag `multiSelect` facoltativo |1916| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | Domande da presentare, ciascuna con una stringa `question`, un breve `header`, un array `options` e un flag `multiSelect` facoltativo |

1909| `answers` | object | `{"Which framework?": "React"}` | Facoltativo. Mappa il testo della domanda all'etichetta dell'opzione selezionata. Le risposte multi-selezione uniscono le etichette con virgole. Claude non imposta questo campo; forniscilo tramite `updatedInput` per rispondere programmaticamente |1917| `answers` | object | `{"Which framework?": "React"}` | Facoltativo. Associa il testo della domanda all'etichetta dell'opzione selezionata. Le risposte a selezione multipla uniscono le etichette con virgole. Claude non imposta questo campo; forniscilo tramite `updatedInput` per rispondere in modo programmatico |

1910 1918 

1911<h5 id="exitplanmode">1919<h5 id="exitplanmode">

1912 ExitPlanMode1920 ExitPlanMode

1913</h5>1921</h5>

1914 1922 

1915Presenta un piano e chiede all'utente di approvarlo prima che Claude lasci la [modalità piano](/docs/it/permission-modes#analyze-before-you-edit-with-plan-mode). Claude scrive il piano in un file su disco prima di chiamare lo strumento, quindi il `tool_input` letterale dal modello è tipicamente vuoto. Claude Code inietta il contenuto del piano e il percorso del file prima di passare l'input agli hook.1923Presenta un piano e chiede all'utente di approvarlo prima che Claude esca dal [plan mode](/docs/it/permission-modes#analyze-before-you-edit-with-plan-mode). Claude scrive il piano in un file su disco prima di chiamare lo strumento, quindi il `tool_input` letterale del modello è in genere vuoto. Claude Code inserisce il contenuto del piano e il percorso del file prima di passare l'input agli hook.

1916 1924 

1917| Campo | Tipo | Esempio | Descrizione |1925| Campo | Tipo | Esempio | Descrizione |

1918| :- | :- | :- | :- |1926| :- | :- | :- | :- |

1919| `plan` | string | `"## Refactor auth\n1. Extract..."` | Contenuto del piano in Markdown. Iniettato dal file del piano su disco |1927| `plan` | string | `"## Refactor auth\n1. Extract..."` | Contenuto del piano in Markdown. Inserito dal file del piano su disco |

1920| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | Percorso al file del piano. Iniettato |1928| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | Percorso del file del piano. Inserito |

1921| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | Deprecato. Claude Code accetta il campo ma lo ignora. Prima della v2.1.205, portava permessi basati su prompt che Claude ha richiesto di implementare il piano |1929| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | Deprecato. Claude Code accetta il campo ma lo ignora. Prima della v2.1.205, conteneva i permessi basati su prompt che Claude richiedeva per implementare il piano |

1922 1930 

1923In `PostToolUse`, `tool_response` è un oggetto con campi `plan` e `filePath` che contengono il piano approvato, più flag di stato interno. Leggi `tool_response.plan` per il contenuto del piano piuttosto che rileggere il file da disco.1931In `PostToolUse`, `tool_response` è un oggetto con i campi `plan` e `filePath` che contengono il piano approvato, oltre a flag di stato interni. Leggi `tool_response.plan` per il contenuto del piano anziché rileggere il file dal disco.

1924 1932 

1925<h4 id="pretooluse-decision-control">1933<h4 id="pretooluse-decision-control">

1926 Controllo decisionale PreToolUse1934 Controllo delle decisioni di PreToolUse

1927</h4>1935</h4>

1928 1936 

1929Gli hook `PreToolUse` possono controllare se una chiamata di strumento procede. A differenza di altri hook che usano un campo `decision` di livello superiore, PreToolUse restituisce la sua decisione dentro un oggetto `hookSpecificOutput`. Questo gli dà un controllo più ricco: quattro risultati (consenti, nega, chiedi, o differisci) più la capacità di modificare l'input dello strumento prima dell'esecuzione.1937Gli hook `PreToolUse` possono controllare se una chiamata a uno strumento procede. A differenza di altri hook che usano un campo `decision` di primo livello, PreToolUse restituisce la sua decisione all'interno di un oggetto `hookSpecificOutput`. Questo gli offre un controllo più ricco: quattro esiti (allow, deny, ask o defer) più la possibilità di modificare l'input dello strumento prima dell'esecuzione.

1930 1938 

1931| Campo | Descrizione |1939| Campo | Descrizione |

1932| :- | :- |1940| :- | :- |

1933| `permissionDecision` | `"allow"` salta il prompt di permesso, tranne per le [azioni che nessuna modalità auto-approva](/docs/it/permission-modes#actions-no-mode-auto-approves) e per `AskUserQuestion` e `ExitPlanMode`, che hanno bisogno di [`updatedInput` accoppiato con esso](#allow-with-updatedinput). `"deny"` impedisce la chiamata dello strumento. `"ask"` chiede all'utente di confermare. `"defer"` esce con grazia in modo che lo strumento possa essere ripreso in seguito. Le [regole di negazione e richiesta](/docs/it/permissions#manage-permissions) vengono comunque valutate indipendentemente da ciò che l'hook restituisce |1941| `permissionDecision` | `"allow"` salta la richiesta di permesso, tranne per le [azioni che nessuna modalità approva automaticamente](/docs/it/permission-modes#actions-no-mode-auto-approves) e per `AskUserQuestion` e `ExitPlanMode`, che richiedono [`updatedInput` abbinato](#allow-with-updatedinput). `"deny"` impedisce la chiamata allo strumento. `"ask"` chiede all'utente di confermare. `"defer"` esce in modo controllato così lo strumento può essere ripreso in seguito. Le [regole deny e ask](/docs/it/permissions#manage-permissions) vengono comunque valutate indipendentemente da ciò che restituisce l'hook |

1934| `permissionDecisionReason` | Per `"ask"`, mostrato all'utente ma non a Claude. Per `"deny"`, mostrato a Claude. Per `"allow"` e `"defer"`, scritto nel [debug log](#debug-hooks) solo |1942| `permissionDecisionReason` | Per `"ask"`, mostrato all'utente nella richiesta di permesso. Quando Claude Code [nega la chiamata](/docs/it/headless#turn-off-permission-prompts-in-unattended-runs) in un'esecuzione `-p` in cui nessuno può rispondere a quella richiesta, Claude legge invece il motivo nel risultato dello strumento. Per `"deny"`, mostrato a Claude. Per `"allow"` e `"defer"`, scritto solo nel [log di debug](#debug-hooks) |

1935| `updatedInput` | Modifica i parametri di input dello strumento prima dell'esecuzione. Sostituisce l'intero oggetto di input, quindi includi i campi invariati insieme a quelli modificati. Claude Code valuta le regole di permesso e l'idoneità [auto-background](/docs/it/tools-reference#background-commands) di un comando Bash rispetto all'input che il tuo hook restituisce, non l'input che Claude ha inviato. Combina con `"allow"` per auto-approvare, o `"ask"` per mostrare l'input modificato all'utente. Per `"defer"`, ignorato |1943| `updatedInput` | Modifica i parametri di input dello strumento prima dell'esecuzione. Sostituisce l'intero oggetto di input, quindi includi i campi invariati insieme a quelli modificati. Claude Code valuta le regole di permesso e l'[idoneità al passaggio automatico in background](/docs/it/tools-reference#foreground-commands-that-move-to-the-background) di un comando Bash sull'input restituito dal tuo hook, non sull'input inviato da Claude. Combinalo con `"allow"` per approvare automaticamente, o con `"ask"` per mostrare all'utente l'input modificato. Per `"defer"`, viene ignorato |

1936| `additionalContext` | Stringa aggiunta al contesto di Claude insieme al risultato dello strumento. Ignorato quando `permissionDecision` è `"defer"`. Vedi [Aggiungi contesto per Claude](#add-context-for-claude) |1944| `additionalContext` | Stringa aggiunta al contesto di Claude insieme al risultato dello strumento. Ignorata quando `permissionDecision` è `"defer"`. Consulta [Aggiungere contesto per Claude](#add-context-for-claude) |

1937 1945 

1938Quando più hook PreToolUse restituiscono decisioni diverse, la precedenza è `deny` > `defer` > `ask` > `allow`.1946Quando più hook PreToolUse restituiscono decisioni diverse, l'ordine di precedenza è `deny` > `defer` > `ask` > `allow`.

1939 1947 

1940Un hook che blocca uscendo con 2 si instrada allo stesso modo di `"deny"`: Claude vede il messaggio stderr come il motivo della negazione.1948Un hook che blocca terminando con 2 segue lo stesso percorso di `"deny"`: Claude vede il messaggio di stderr come motivo del rifiuto.

1941 1949 

1942Quando un hook restituisce `"ask"`, il prompt di permesso visualizzato all'utente include un'etichetta che identifica da dove viene l'hook: `[settings]` per un hook da qualsiasi file di impostazioni o dal frontmatter dell'agente, `[plugin:<name>]` per l'hook di un plugin, o `[skill]` per un hook dal frontmatter della skill. Questo aiuta gli utenti a capire quale fonte di configurazione sta richiedendo la conferma.1950Quando un hook restituisce `"ask"`, la richiesta di permesso mostrata all'utente include un'etichetta che identifica la provenienza dell'hook: `[settings]` per un hook da qualsiasi file di impostazioni o dal frontmatter di un agente, `[plugin:<name>]` per l'hook di un plugin, o `[skill]` per un hook dal frontmatter di una skill. Questo aiuta gli utenti a capire quale fonte di configurazione sta richiedendo la conferma.

1943 1951 

1944Un `"ask"` di un hook forza anche un prompt di permesso in [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode): il classificatore può ancora negare la chiamata dello strumento, ma non può approvare la chiamata silenziosamente. Prima della v2.1.211, il classificatore poteva approvare un comando Bash in esecuzione al di fuori della [sandbox](/docs/it/sandboxing) senza mostrare il prompt che l'hook ha richiesto; il classificatore ha comunque applicato le sue stesse regole di sicurezza a quel comando, e un `"deny"` di un hook è sempre stato onorato.1952Un `"ask"` di un hook forza una richiesta di permesso anche in [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode): il classificatore può comunque negare la chiamata allo strumento, ma non può approvarla silenziosamente. Prima della v2.1.211, il classificatore poteva approvare un comando Bash eseguito fuori dalla [sandbox](/docs/it/sandboxing) senza mostrare la richiesta voluta dall'hook; il classificatore applicava comunque le proprie regole di sicurezza a quel comando, e un `"deny"` di un hook veniva sempre rispettato.

1945 1953 

1946```json theme={null}1954```json theme={null}

1947{1955{


1959 1967 

1960<span id="allow-with-updatedinput" />1968<span id="allow-with-updatedinput" />

1961 1969 

1962In [modalità non interattiva](/docs/it/headless) con il flag `-p`, Claude Code offre `AskUserQuestion` e `ExitPlanMode` solo quando l'esecuzione ha un [permission host](/docs/it/headless#turn-off-permission-prompts-in-unattended-runs) per ricevere il prompt, come un callback `canUseTool` di Agent SDK. Questi strumenti richiedono l'interazione dell'utente. Restituire `permissionDecision: "allow"` insieme a `updatedInput` soddisfa quel requisito: l'hook legge l'input dello strumento da stdin, raccoglie la risposta attraverso la tua UI, e la restituisce in `updatedInput` in modo che lo strumento si esegua senza chiedere. Restituire `"allow"` da solo non è sufficiente per questi strumenti. Per `AskUserQuestion`, ripeti l'array `questions` originale e aggiungi un oggetto [`answers`](#askuserquestion) che mappa il testo di ogni domanda alla risposta scelta.1970In [modalità non interattiva](/docs/it/headless) con il flag `-p`, Claude Code offre `AskUserQuestion` e `ExitPlanMode` solo quando l'esecuzione ha un [host dei permessi](/docs/it/headless#turn-off-permission-prompts-in-unattended-runs) che riceva la richiesta, come un callback `canUseTool` dell'Agent SDK. Questi strumenti richiedono l'interazione dell'utente. Restituire `permissionDecision: "allow"` insieme a `updatedInput` soddisfa questo requisito: l'hook legge l'input dello strumento da stdin, raccoglie la risposta tramite la tua interfaccia e la restituisce in `updatedInput` così lo strumento viene eseguito senza chiedere. Restituire solo `"allow"` non è sufficiente per questi strumenti. Per `AskUserQuestion`, restituisci l'array `questions` originale e aggiungi un oggetto [`answers`](#askuserquestion) che associ il testo di ogni domanda alla risposta scelta.

1963 1971 

1964A partire dalla v2.1.199, uno strumento MCP il cui server lo contrassegna con [`_meta["anthropic/requiresUserInteraction"]`](/docs/it/mcp#require-approval-for-a-specific-tool) è più rigoroso: un hook non può saltare il suo prompt di approvazione con `"allow"`, con o senza `updatedInput`, perché Claude Code non può confermare che l'hook ha raccolto l'interazione di cui lo strumento ha bisogno.1972Uno strumento MCP che il suo server contrassegna con [`_meta["anthropic/requiresUserInteraction"]`](/docs/it/mcp#require-approval-for-a-specific-tool) è più restrittivo: un hook non può saltarne la richiesta di approvazione con `"allow"`, con o senza `updatedInput`, perché Claude Code non può verificare che l'hook abbia raccolto l'interazione di cui lo strumento ha bisogno.

1965 1973 

1966<Note>1974<Note>

1967 PreToolUse in precedenza usava campi `decision` e `reason` di livello superiore, ma questi sono deprecati per questo evento. Usa `hookSpecificOutput.permissionDecision` e `hookSpecificOutput.permissionDecisionReason` invece. I valori deprecati `"approve"` e `"block"` si mappano a `"allow"` e `"deny"` rispettivamente. Altri eventi come PostToolUse e Stop continuano a usare `decision` e `reason` di livello superiore come loro formato corrente.1975 PreToolUse in precedenza usava i campi di primo livello `decision` e `reason`, ma questi sono deprecati per questo evento. Usa invece `hookSpecificOutput.permissionDecision` e `hookSpecificOutput.permissionDecisionReason`. I valori deprecati `"approve"` e `"block"` corrispondono rispettivamente a `"allow"` e `"deny"`. Altri eventi come PostToolUse e Stop continuano a usare `decision` e `reason` di primo livello come formato attuale.

1968</Note>1976</Note>

1969 1977 

1970<h4 id="defer-a-tool-call-for-later">1978<h4 id="defer-a-tool-call-for-later">

1971 Differisci una chiamata di strumento per dopo1979 Differire una chiamata a uno strumento

1972</h4>1980</h4>

1973 1981 

1974`"defer"` è per le integrazioni che eseguono `claude -p` come un sottoprocesso e leggono il suo output JSON, come un'app Agent SDK o un'UI personalizzata costruita su Claude Code. Ti consente a quel processo di chiamata di mettere in pausa Claude a una chiamata di strumento, raccogliere l'input attraverso la sua interfaccia, e riprendere da dove si era fermato. Claude Code onora questo valore solo in [modalità non interattiva](/docs/it/headless) con il flag `-p`. Nelle sessioni interattive registra un avviso e ignora il risultato dell'hook.1982`"defer"` è pensato per le integrazioni che eseguono `claude -p` come sottoprocesso e ne leggono l'output JSON, come un'app Agent SDK o un'interfaccia personalizzata costruita su Claude Code. Permette a quel processo chiamante di mettere in pausa Claude a una chiamata a uno strumento, raccogliere input tramite la propria interfaccia e riprendere da dove si era interrotto. Claude Code rispetta questo valore solo in [modalità non interattiva](/docs/it/headless) con il flag `-p`. Nelle sessioni interattive registra un avviso e ignora il risultato dell'hook.

1975 1983 

1976Lo strumento `AskUserQuestion` è il caso tipico: Claude vuole chiedere qualcosa all'utente, ma non c'è terminale per rispondere. Un'esecuzione `-p` offre `AskUserQuestion` solo quando ha un [permission host](/docs/it/headless#turn-off-permission-prompts-in-unattended-runs), come uno strumento MCP che passi con `--permission-prompt-tool`, quindi avvia l'esecuzione con uno. Il round trip funziona così:1984Lo strumento `AskUserQuestion` è il caso tipico: Claude vuole chiedere qualcosa all'utente, ma non c'è un terminale in cui rispondere. Un'esecuzione `-p` offre `AskUserQuestion` solo quando ha un [host dei permessi](/docs/it/headless#turn-off-permission-prompts-in-unattended-runs), come uno strumento MCP che passi con `--permission-prompt-tool`, quindi avvia l'esecuzione con uno di essi. Il ciclo completo funziona così:

1977 1985 

19781. Claude chiama `AskUserQuestion`. L'hook `PreToolUse` si esegue.19861. Claude chiama `AskUserQuestion`. L'hook `PreToolUse` si attiva.

19792. L'hook restituisce `permissionDecision: "defer"`. Lo strumento non si esegue. Il processo esce con `stop_reason: "tool_deferred"` e la chiamata dello strumento in sospeso preservata nella trascrizione.19872. L'hook restituisce `permissionDecision: "defer"`. Lo strumento non viene eseguito. Il processo esce con `stop_reason: "tool_deferred"` e la chiamata allo strumento in sospeso conservata nella trascrizione.

19803. Il processo di chiamata legge `deferred_tool_use` dal risultato dell'SDK, visualizza la domanda nella sua UI, e attende una risposta.19883. Il processo chiamante legge `deferred_tool_use` dal risultato dell'SDK, presenta la domanda nella propria interfaccia e attende una risposta.

19814. Il processo di chiamata esegue `claude -p --resume <session-id>` con lo stesso permission host. La stessa chiamata dello strumento esegue `PreToolUse` di nuovo.19894. Il processo chiamante esegue `claude -p --resume <session-id>` con lo stesso host dei permessi. La stessa chiamata allo strumento attiva di nuovo `PreToolUse`.

19825. L'hook restituisce `permissionDecision: "allow"` con la risposta in `updatedInput`. Lo strumento si esegue e Claude continua.19905. L'hook restituisce `permissionDecision: "allow"` con la risposta in `updatedInput`. Lo strumento viene eseguito e Claude continua.

1983 1991 

1984Il campo `deferred_tool_use` porta l'`id` dello strumento, il `name`, e l'`input`. L'`input` è i parametri che Claude ha generato per la chiamata dello strumento, catturati prima dell'esecuzione:1992Il campo `deferred_tool_use` contiene `id`, `name` e `input` dello strumento. L'`input` è costituito dai parametri che Claude ha generato per la chiamata allo strumento, catturati prima dell'esecuzione:

1985 1993 

1986```json theme={null}1994```json theme={null}

1987{1995{


1997}2005}

1998```2006```

1999 2007 

2000Non c'è timeout o limite di tentativi. La sessione rimane su disco finché non la riprendi, soggetta alla spazzata di conservazione [`cleanupPeriodDays`](/docs/it/settings-reference#cleanupperioddays), che elimina i file di sessione dopo 30 giorni per impostazione predefinita, seguendo le [regole di spazzata di conservazione](/docs/it/claude-directory#cleaned-up-automatically). Se la risposta non è pronta quando riprendi, l'hook può restituire `"defer"` di nuovo e il processo esce allo stesso modo. Il processo di chiamata controlla quando interrompere il ciclo restituendo infine `"allow"` o `"deny"` dall'hook.2008Non c'è alcun timeout né limite di nuovi tentativi. La sessione rimane su disco finché non la riprendi, fatta salva la pulizia di conservazione [`cleanupPeriodDays`](/docs/it/settings-reference#cleanupperioddays), che elimina i file di sessione dopo 30 giorni per impostazione predefinita, secondo le [regole di pulizia di conservazione](/docs/it/claude-directory#cleaned-up-automatically). Se la risposta non è pronta quando riprendi, l'hook può restituire di nuovo `"defer"` e il processo esce allo stesso modo. Il processo chiamante controlla quando interrompere il ciclo restituendo infine `"allow"` o `"deny"` dall'hook.

2001 2009 

2002`"defer"` funziona solo quando Claude fa una singola chiamata di strumento nel turno. Se Claude fa diverse chiamate di strumento contemporaneamente, `"defer"` viene ignorato con un avviso e lo strumento procede attraverso il flusso di permesso normale. Il vincolo esiste perché la ripresa può solo ri-eseguire uno strumento: non c'è modo di differire una chiamata da un batch senza lasciare le altre irrisolte.2010`"defer"` funziona solo quando Claude effettua una singola chiamata a uno strumento nel turno. Se Claude effettua più chiamate agli strumenti contemporaneamente, `"defer"` viene ignorato con un avviso e lo strumento procede attraverso il normale flusso dei permessi. Il vincolo esiste perché la ripresa può rieseguire un solo strumento: non c'è modo di differire una chiamata di un gruppo senza lasciare irrisolte le altre.

2003 2011 

2004Se lo strumento differito non è più disponibile quando riprendi, il processo esce con `stop_reason: "tool_deferred_unavailable"` e `is_error: true` prima che l'hook si esegua. Questo accade quando un server MCP che ha fornito lo strumento non è connesso per la sessione ripresa. Il payload `deferred_tool_use` è ancora incluso in modo che tu possa identificare quale strumento è scomparso.2012Se lo strumento differito non è più disponibile quando riprendi, il processo esce con `stop_reason: "tool_deferred_unavailable"` e `is_error: true` prima che l'hook si attivi. Questo accade quando un server MCP che forniva lo strumento non è connesso per la sessione ripresa. Il payload `deferred_tool_use` viene comunque incluso così puoi identificare quale strumento è venuto a mancare.

2005 2013 

2006<Note>2014<Note>

2007 Per riprendere una sessione differita in modalità piano, passa [`--permission-prompt-tool`](/docs/it/cli-reference#cli-flags) insieme a `--resume` in modo che Claude Code possa presentare il piano per l'approvazione. Se passi certi altri flag di lancio, l'esecuzione ripresa non ritorna alla modalità piano; vedi [Riprendi in modalità piano con `-p`](/docs/it/sessions#resume-in-plan-mode-with-p). Richiede Claude Code v2.1.246 o successivo.2015 Per riprendere una sessione differita in plan mode, passa [`--permission-prompt-tool`](/docs/it/cli-reference#cli-flags) insieme a `--resume` così che Claude Code possa presentare il piano per l'approvazione. Se passi determinati altri flag di avvio, l'esecuzione ripresa non torna al plan mode; consulta [Riprendere in plan mode con `-p`](/docs/it/sessions#resume-in-plan-mode-with-p). Richiede Claude Code v2.1.246 o successiva.

2008 2016 

2009 Quando riprendi con `-p`, Claude Code non ripristina alcun'altra modalità di permesso archiviata. Avvia l'esecuzione nella modalità di permesso che una nuova esecuzione `claude -p` avvierebbe, quindi passa `--permission-mode` o `--dangerously-skip-permissions` di nuovo se la sessione differita ne ha usata una. Quando riprendi con `claude --resume <session-id>` senza `-p`, Claude Code ripristina la modalità di permesso archiviata, con le eccezioni elencate in [modalità di permesso alla ripresa](/docs/it/sessions#permission-mode-on-resume).2017 Quando riprendi con `-p`, Claude Code non ripristina nessun'altra modalità di permesso memorizzata. Avvia l'esecuzione nella modalità di permesso in cui si avvierebbe una nuova esecuzione `claude -p`, quindi passa di nuovo `--permission-mode` o `--dangerously-skip-permissions` se la sessione differita ne usava uno. Quando riprendi con `claude --resume <session-id>` senza `-p`, Claude Code ripristina la modalità di permesso memorizzata, con le eccezioni elencate in [modalità di permesso alla ripresa](/docs/it/sessions#permission-mode-on-resume).

2010</Note>2018</Note>

2011 2019 

2012<h3 id="permissionrequest">2020<h3 id="permissionrequest">

2013 PermissionRequest2021 PermissionRequest

2014</h3>2022</h3>

2015 2023 

2016Viene eseguito quando Claude Code sta per chiederti il permesso di usare uno strumento. Nelle sessioni che non possono mostrare una richiesta, come i subagent in background in [modalità non interattiva](/docs/it/headless), Claude Code esegue comunque questi hook e, se nessun hook restituisce una decisione, rifiuta la chiamata allo strumento. Per una chiamata che raggiunge un `--permission-prompt-tool` o la [callback `canUseTool`](/docs/it/agent-sdk/permissions) dell'Agent SDK, gli hook vengono eseguiti insieme al tuo host, e si applica la decisione di chi decide per primo.2024Viene eseguito quando Claude Code sta per chiederti il permesso di usare uno strumento. Nelle sessioni che non possono mostrare una richiesta, come i subagent in background in [modalità non interattiva](/docs/it/headless), Claude Code esegue comunque questi hook, e se nessun hook restituisce una decisione, nega la chiamata allo strumento. Per una chiamata che raggiunge un `--permission-prompt-tool` o il [callback `canUseTool`](/docs/it/agent-sdk/permissions) dell'Agent SDK, gli hook vengono eseguiti insieme al tuo host, e si applica chi decide per primo.

2017Usa il [controllo delle decisioni di PermissionRequest](#permissionrequest-decision-control) per consentire o rifiutare per conto dell'utente.2025Usa il [controllo delle decisioni di PermissionRequest](#permissionrequest-decision-control) per consentire o negare per conto dell'utente.

2018 2026 

2019Usa questo evento quando hai bisogno di un segnale nel momento in cui Claude chiede il permesso di usare uno strumento. Claude Code esegue un hook [Notification](#notification) con il tipo `permission_prompt` solo dopo che il prompt ha atteso circa sei secondi.2027Usa questo evento quando ti serve un segnale nel momento in cui Claude chiede il permesso di usare uno strumento. Claude Code esegue un hook [Notification](#notification) con il tipo `permission_prompt` solo dopo che la richiesta è rimasta in attesa per circa sei secondi.

2020 2028 

2021Claude Code non esegue hook PermissionRequest per la [richiesta di rete](/docs/it/sandboxing#network-isolation) di un comando sandboxed. Per ottenere un segnale per quel prompt, usa il tipo di notifica `permission_prompt`.2029Claude Code non esegue gli hook PermissionRequest per la [richiesta di rete](/docs/it/sandboxing#network-isolation) di un comando in sandbox. Per ottenere un segnale per quella richiesta, usa il tipo di notifica `permission_prompt`.

2022 2030 

2023Corrisponde al nome dello strumento, stessi valori di PreToolUse.2031Effettua la corrispondenza sul nome dello strumento, con gli stessi valori di PreToolUse.

2024 2032 

2025<h4 id="permissionrequest-input">2033<h4 id="permissionrequest-input">

2026 Input PermissionRequest2034 Input di PermissionRequest

2027</h4>2035</h4>

2028 2036 

2029Gli hook PermissionRequest ricevono i campi `tool_name` e `tool_input` come gli hook PreToolUse, ma senza `tool_use_id`. Per uno strumento MCP, ricevono anche l'oggetto [`mcp_server`](#pretooluse-input). Un array `permission_suggestions` facoltativo contiene gli [aggiornamenti di permesso](#permission-update-entries) che Claude Code suggerisce per questa richiesta, come aggiungere una regola di consentimento o cambiare la modalità di permesso.2037Gli hook PermissionRequest ricevono i campi `tool_name` e `tool_input` come gli hook PreToolUse, ma senza `tool_use_id`. Per uno strumento MCP, ricevono anche l'oggetto [`mcp_server`](#pretooluse-input). Un array facoltativo `permission_suggestions` contiene gli [aggiornamenti dei permessi](#permission-update-entries) che Claude Code suggerisce per questa richiesta, come l'aggiunta di una regola allow o il cambio della modalità di permesso.

2030 2038 

2031L'array `permission_suggestions` non è un elenco esatto delle opzioni che vedi, perché ogni dialogo di permesso costruisce le sue stesse opzioni. Alcuni dialoghi, come quello per le modifiche ai file, non leggono affatto l'array e derivano le loro opzioni dalla richiesta stessa. Un dialogo che lo legge può comunque trattenere un'opzione il cui suggerimento rimane nell'array, ad esempio quando [`allowManagedPermissionRulesOnly`](/docs/it/settings-reference#allowmanagedpermissionrulesonly) nasconde le opzioni di salvataggio delle regole. Può anche offrire opzioni che non hanno una voce di suggerimento, come [**Yes, and switch to auto mode**](/docs/it/permission-modes#switch-permission-modes), che cambia la modalità di permesso direttamente piuttosto che attraverso un aggiornamento di permesso.2039L'array `permission_suggestions` non è un elenco esatto delle opzioni che vedi, perché ogni finestra di dialogo dei permessi costruisce le proprie opzioni. Alcune finestre, come quella per le modifiche ai file, non leggono affatto l'array e ricavano le opzioni dalla richiesta stessa. Una finestra che lo legge può comunque nascondere un'opzione il cui suggerimento rimane nell'array, ad esempio quando [`allowManagedPermissionRulesOnly`](/docs/it/settings-reference#allowmanagedpermissionrulesonly) nasconde le opzioni di salvataggio delle regole. Può anche offrire opzioni che non hanno una voce di suggerimento, come [**Yes, and switch to auto mode**](/docs/it/permission-modes#switch-permission-modes), che cambia la modalità di permesso direttamente anziché tramite un aggiornamento dei permessi.

2032 2040 

2033Gli hook PreToolUse si eseguono prima di ogni chiamata di strumento, indipendentemente dal fatto che abbia bisogno di permesso. Gli hook PermissionRequest si eseguono solo quando Claude Code sta per chiederti il permesso, o quando altrimenti auto-negherebbe una chiamata che non può chiedere. Nessuno dei due eventi si esegue per [`EndConversation`](/docs/it/tools-reference#endconversation-tool-behavior).2041Gli hook PreToolUse vengono eseguiti prima di ogni chiamata a uno strumento, che richieda o meno un permesso. Gli hook PermissionRequest vengono eseguiti solo quando Claude Code sta per chiederti un permesso, o quando altrimenti negherebbe automaticamente una chiamata che non può mostrare una richiesta. Nessuno dei due eventi si attiva per [`EndConversation`](/docs/it/tools-reference#endconversation-tool-behavior).

2034 2042 

2035```json theme={null}2043```json theme={null}

2036{2044{


2056```2064```

2057 2065 

2058<h4 id="permissionrequest-decision-control">2066<h4 id="permissionrequest-decision-control">

2059 Controllo decisionale PermissionRequest2067 Controllo delle decisioni di PermissionRequest

2060</h4>2068</h4>

2061 2069 

2062Gli hook `PermissionRequest` possono consentire o negare le richieste di permesso. Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, il tuo script hook può restituire un oggetto `decision` con questi campi specifici dell'evento:2070Gli hook `PermissionRequest` possono consentire o negare le richieste di permesso. Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, il tuo script di hook può restituire un oggetto `decision` con questi campi specifici dell'evento:

2063 2071 

2064| Campo | Descrizione |2072| Campo | Descrizione |

2065| :- | :- |2073| :- | :- |

2066| `behavior` | `"allow"` concede il permesso, `"deny"` lo nega. Le [regole di negazione e richiesta](/docs/it/permissions#manage-permissions) vengono comunque valutate, quindi un hook che restituisce `"allow"` non sovrascrive una regola di negazione corrispondente |2074| `behavior` | `"allow"` concede il permesso, `"deny"` lo nega. Le [regole deny e ask](/docs/it/permissions#manage-permissions) vengono comunque valutate, quindi un hook che restituisce `"allow"` non sovrascrive una regola deny corrispondente |

2067| `updatedInput` | Per `"allow"` solo: modifica i parametri di input dello strumento prima dell'esecuzione. Sostituisce l'intero oggetto di input, quindi includi i campi invariati insieme a quelli modificati. L'input modificato viene rivalutato rispetto alle regole di negazione e richiesta |2075| `updatedInput` | Solo per `"allow"`: modifica i parametri di input dello strumento prima dell'esecuzione. Sostituisce l'intero oggetto di input, quindi includi i campi invariati insieme a quelli modificati. L'input modificato viene rivalutato rispetto alle regole deny e ask |

2068| `updatedPermissions` | Per `"allow"` solo: array di [voci di aggiornamento di permesso](#permission-update-entries) da applicare, come aggiungere una regola di consentimento o cambiare la modalità di permesso della sessione |2076| `updatedPermissions` | Solo per `"allow"`: array di [voci di aggiornamento dei permessi](#permission-update-entries) da applicare, come l'aggiunta di una regola allow o il cambio della modalità di permesso della sessione |

2069| `message` | Per `"deny"` solo: dice a Claude perché il permesso è stato negato |2077| `message` | Solo per `"deny"`: indica a Claude perché il permesso è stato negato |

2070| `interrupt` | Per `"deny"` solo: se `true`, ferma Claude |2078| `interrupt` | Solo per `"deny"`: se `true`, ferma Claude |

2071 2079 

2072Un hook che esce con 2 senza un oggetto `decision` lascia il flusso di permesso invariato, e il suo stderr viene scartato. Solo l'oggetto `decision` può concedere o negare la richiesta.2080Un hook che termina con 2 senza un oggetto `decision` lascia invariato il flusso dei permessi, e il suo stderr viene scartato. Solo l'oggetto `decision` può concedere o negare la richiesta.

2073 2081 

2074```json theme={null}2082```json theme={null}

2075{2083{


2086```2094```

2087 2095 

2088<h4 id="permission-update-entries">2096<h4 id="permission-update-entries">

2089 Voci di aggiornamento di permesso2097 Voci di aggiornamento dei permessi

2090</h4>2098</h4>

2091 2099 

2092Sia il campo di output `updatedPermissions` che il campo di input [`permission_suggestions`](#permissionrequest-input) usano lo stesso array di oggetti di voce. Ogni voce ha un `type` che determina i suoi altri campi, e una `destination` che controlla dove il cambio viene scritto.2100Il campo di output `updatedPermissions` e il [campo di input `permission_suggestions`](#permissionrequest-input) usano entrambi lo stesso array di oggetti voce. Ogni voce ha un `type` che determina gli altri campi e una `destination` che controlla dove viene scritta la modifica.

2093 2101 

2094| `type` | Campi | Effetto |2102| `type` | Campi | Effetto |

2095| :- | :- | :- |2103| :- | :- | :- |

2096| `addRules` | `rules`, `behavior`, `destination` | Aggiunge regole di permesso. `rules` è un array di oggetti `{toolName, ruleContent?}`. Ometti `ruleContent` per corrispondere all'intero strumento. `behavior` è `"allow"`, `"deny"`, o `"ask"` |2104| `addRules` | `rules`, `behavior`, `destination` | Aggiunge regole di permesso. `rules` è un array di oggetti `{toolName, ruleContent?}`. Ometti `ruleContent` per far corrispondere l'intero strumento. `behavior` è `"allow"`, `"deny"` o `"ask"` |

2097| `replaceRules` | `rules`, `behavior`, `destination` | Sostituisce tutte le regole del `behavior` dato alla `destination` con le `rules` fornite |2105| `replaceRules` | `rules`, `behavior`, `destination` | Sostituisce tutte le regole del `behavior` indicato nella `destination` con le `rules` fornite |

2098| `removeRules` | `rules`, `behavior`, `destination` | Rimuove le regole corrispondenti del `behavior` dato |2106| `removeRules` | `rules`, `behavior`, `destination` | Rimuove le regole corrispondenti del `behavior` indicato |

2099| `setMode` | `mode`, `destination` | Cambia la modalità di permesso. Le modalità valide sono `default`, `auto`, `acceptEdits`, `dontAsk`, `bypassPermissions`, `plan`, e `manual` come alias per `default`. L'alias `manual` richiede Claude Code v2.1.200 o successivo |2107| `setMode` | `mode`, `destination` | Cambia la modalità di permesso. Le modalità valide sono `default`, `auto`, `acceptEdits`, `dontAsk`, `bypassPermissions`, `plan` e `manual` come alias di `default`. L'alias `manual` richiede Claude Code v2.1.200 o successiva |

2100| `addDirectories` | `directories`, `destination` | Aggiunge directory di lavoro. `directories` è un array di stringhe di percorso |2108| `addDirectories` | `directories`, `destination` | Aggiunge directory di lavoro. `directories` è un array di stringhe di percorso |

2101| `removeDirectories` | `directories`, `destination` | Rimuove directory di lavoro |2109| `removeDirectories` | `directories`, `destination` | Rimuove directory di lavoro |

2102 2110 

2103<Note>2111<Note>

2104 `setMode` con `bypassPermissions` ha effetto solo se hai avviato la sessione con la modalità bypass già disponibile: `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions`, o `permissions.defaultMode: "bypassPermissions"` nelle [impostazioni utente, `--settings`, o gestite](/docs/it/settings-reference#permissions-defaultmode). Altrimenti l'aggiornamento è un no-op. L'aggiornamento è anche un no-op quando [`permissions.disableBypassPermissionsMode`](/docs/it/permissions#managed-settings) disabilita la modalità, o quando la sessione inizia in [modalità ristretta](/docs/it/cli-reference#cli-flags).2112 `setMode` con `bypassPermissions` ha effetto solo se hai avviato la sessione con la modalità bypass già disponibile: `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions` o `permissions.defaultMode: "bypassPermissions"` nelle [impostazioni utente, `--settings` o impostazioni gestite](/docs/it/settings-reference#permissions-defaultmode). Altrimenti l'aggiornamento non ha alcun effetto. L'aggiornamento non ha effetto anche quando [`permissions.disableBypassPermissionsMode`](/docs/it/permissions#managed-settings) disabilita la modalità, o quando la sessione si avvia in [modalità ristretta](/docs/it/cli-reference#cli-flags).

2105 2113 

2106 `bypassPermissions` non viene mai persistito come `defaultMode` indipendentemente da `destination`.2114 `bypassPermissions` non viene mai reso persistente come `defaultMode`, indipendentemente da `destination`.

2107</Note>2115</Note>

2108 2116 

2109Il campo `destination` su ogni voce determina se il cambio rimane in memoria o persiste in un file di impostazioni.2117Il campo `destination` di ogni voce determina se la modifica rimane in memoria o viene resa persistente in un file di impostazioni.

2110 2118 

2111| `destination` | Scrive in |2119| `destination` | Scrive in |

2112| :- | :- |2120| :- | :- |

2113| `session` | solo in memoria, scartato quando la sessione termina |2121| `session` | solo in memoria, scartata al termine della sessione |

2114| `localSettings` | `.claude/settings.local.json` |2122| `localSettings` | `.claude/settings.local.json` |

2115| `projectSettings` | `.claude/settings.json` |2123| `projectSettings` | `.claude/settings.json` |

2116| `userSettings` | `~/.claude/settings.json` |2124| `userSettings` | `~/.claude/settings.json` |

2117 2125 

2118Un hook può ripetere uno dei `permission_suggestions` che ha ricevuto come suo proprio output `updatedPermissions`.2126Un hook può restituire uno dei `permission_suggestions` ricevuti come proprio output `updatedPermissions`.

2119 2127 

2120<h3 id="posttooluse">2128<h3 id="posttooluse">

2121 PostToolUse2129 PostToolUse

2122</h3>2130</h3>

2123 2131 

2124Si esegue immediatamente dopo che uno strumento completa con successo.2132Viene eseguito subito dopo che uno strumento è stato completato con successo.

2125 2133 

2126Corrisponde al nome dello strumento, stessi valori di PreToolUse.2134Fa corrispondere il nome dello strumento, con gli stessi valori di PreToolUse.

2127 2135 

2128Corrisponde più ampiamente quando il nome dello strumento non è il filtro giusto:2136Usa una corrispondenza più ampia quando il nome dello strumento non è il filtro giusto:

2129 2137 

2130* Per eseguire un hook dopo che qualsiasi strumento completa con successo, ometti il `matcher` o impostalo su `"*"`. Il tuo hook può quindi scoprire cosa è cambiato da solo, ad esempio eseguendo `git status --porcelain`, che elenca anche i file non tracciati che `git diff` perde. Per le chiamate di strumento che falliscono, aggiungi lo stesso hook sotto [PostToolUseFailure](#posttoolusefailure).2138* Per eseguire un hook dopo che qualsiasi strumento è stato completato con successo, ometti il `matcher` o impostalo su `"*"`. Il tuo hook può quindi scoprire da solo cosa è cambiato, ad esempio eseguendo `git status --porcelain`, che elenca anche i file non tracciati che `git diff` non rileva. Per le chiamate agli strumenti che falliscono, aggiungi lo stesso hook sotto [PostToolUseFailure](#posttoolusefailure).

2131* Per eseguire un hook quando un file specifico cambia su disco, qualunque cosa lo abbia scritto, usa [FileChanged](#filechanged). Claude Code non esegue un hook `PostToolUse` che corrisponde a `Edit|Write` quando un comando `Bash` o un processo al di fuori di Claude Code riscrive lo stesso file.2139* Per eseguire un hook quando un file specifico cambia su disco, qualunque cosa lo abbia scritto, usa [FileChanged](#filechanged). Claude Code non esegue un hook `PostToolUse` che corrisponde a `Edit|Write` quando un comando `Bash` o un processo esterno a Claude Code riscrive lo stesso file.

2132 2140 

2133<h4 id="posttooluse-input">2141<h4 id="posttooluse-input">

2134 Input PostToolUse2142 Input di PostToolUse

2135</h4>2143</h4>

2136 2144 

2137Gli hook `PostToolUse` si eseguono dopo che uno strumento si è già eseguito con successo. L'input include sia `tool_input`, gli argomenti inviati allo strumento, che `tool_response`, il risultato che ha restituito. Lo schema esatto per entrambi dipende dallo strumento. I percorsi `tool_input` degli strumenti di file arrivano nello stesso formato di [PreToolUse](#pretooluse-input): sempre assoluti, con i separatori nativi della piattaforma, quindi backslash su Windows. Per uno strumento MCP, l'input porta anche l'oggetto [`mcp_server`](#pretooluse-input).2145Gli hook `PostToolUse` si attivano dopo che uno strumento è già stato eseguito con successo. L'input include sia `tool_input`, gli argomenti inviati allo strumento, sia `tool_response`, il risultato che ha restituito. Lo schema esatto di entrambi dipende dallo strumento. I percorsi in `tool_input` degli strumenti per i file arrivano nello stesso formato di [PreToolUse](#pretooluse-input): sempre assoluti, con i separatori nativi della piattaforma, quindi barre rovesciate su Windows. Per uno strumento MCP, l'input include anche l'oggetto [`mcp_server`](#pretooluse-input).

2138 2146 

2139```json theme={null}2147```json theme={null}

2140{2148{


2159 2167 

2160| Campo | Descrizione |2168| Campo | Descrizione |

2161| :- | :- |2169| :- | :- |

2162| `duration_ms` | Facoltativo. Tempo di esecuzione dello strumento in millisecondi. Esclude il tempo trascorso nei prompt di permesso e negli hook PreToolUse |2170| `duration_ms` | Facoltativo. Tempo di esecuzione dello strumento in millisecondi. Esclude il tempo trascorso nelle richieste di permesso e negli hook PreToolUse |

2163 2171 

2164<h4 id="posttooluse-decision-control">2172<h4 id="posttooluse-decision-control">

2165 Controllo decisionale PostToolUse2173 Controllo delle decisioni di PostToolUse

2166</h4>2174</h4>

2167 2175 

2168Gli hook `PostToolUse` possono fornire feedback a Claude dopo l'esecuzione dello strumento. Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, il tuo script hook può restituire questi campi specifici dell'evento:2176Gli hook `PostToolUse` possono fornire feedback a Claude dopo l'esecuzione dello strumento. Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, lo script del tuo hook può restituire questi campi specifici dell'evento:

2169 2177 

2170| Campo | Descrizione |2178| Campo | Descrizione |

2171| :- | :- |2179| :- | :- |

2172| `decision` | `"block"` aggiunge il `reason` accanto al risultato dello strumento. Claude vede comunque l'output originale; per sostituirlo, usa `updatedToolOutput` |2180| `decision` | `"block"` aggiunge il `reason` accanto al risultato dello strumento. Claude vede comunque l'output originale; per sostituirlo, usa `updatedToolOutput` |

2173| `reason` | Spiegazione mostrata a Claude quando `decision` è `"block"` |2181| `reason` | Spiegazione mostrata a Claude quando `decision` è `"block"` |

2174| `additionalContext` | Stringa aggiunta al contesto di Claude insieme al risultato dello strumento. Vedi [Aggiungi contesto per Claude](#add-context-for-claude) |2182| `additionalContext` | Stringa aggiunta al contesto di Claude insieme al risultato dello strumento. Consulta [Aggiungere contesto per Claude](#add-context-for-claude) |

2175| `classifierContext` | Breve nota su questo risultato della chiamata per il classificatore della [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode) piuttosto che per Claude. Vedi [Annota un risultato per il classificatore della modalità auto](#annotate-a-result-for-the-auto-mode-classifier). Richiede Claude Code v2.1.236 o successivo |2183| `classifierContext` | Breve nota sul risultato di questa chiamata destinata al classificatore della [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode) anziché a Claude. Consulta [Annotare un risultato per il classificatore della modalità auto](#annotate-a-result-for-the-auto-mode-classifier). Richiede Claude Code v2.1.236 o successiva |

2176| `updatedToolOutput` | Sostituisce l'output dello strumento con il valore fornito prima che venga inviato a Claude. Il valore deve corrispondere alla forma di output dello strumento |2184| `updatedToolOutput` | Sostituisce l'output dello strumento con il valore fornito prima che venga inviato a Claude. Il valore deve corrispondere alla forma dell'output dello strumento |

2177| `updatedMCPToolOutput` | Sostituisce l'output per gli [strumenti MCP](#match-mcp-tools) solo. Preferisci `updatedToolOutput`, che funziona per tutti gli strumenti |2185| `updatedMCPToolOutput` | Sostituisce l'output solo per gli [strumenti MCP](#match-mcp-tools). Preferisci `updatedToolOutput`, che funziona per tutti gli strumenti |

2178 2186 

2179L'esempio sottostante sostituisce l'output di una chiamata `Bash`. Il valore di sostituzione corrisponde alla forma di output dello strumento `Bash`:2187L'esempio seguente sostituisce l'output di una chiamata `Bash`. Il valore sostitutivo corrisponde alla forma dell'output dello strumento `Bash`:

2180 2188 

2181```json theme={null}2189```json theme={null}

2182{2190{


2194```2202```

2195 2203 

2196<Warning>2204<Warning>

2197 `updatedToolOutput` cambia solo ciò che Claude vede. Lo strumento si è già eseguito nel momento in cui l'hook si esegue, quindi qualsiasi file scritto, comando eseguito, o richiesta di rete inviata ha già avuto effetto. La telemetria come gli span di strumenti OpenTelemetry e gli eventi di analitiche catturano anche l'output originale prima che l'hook si esegua. Per prevenire o modificare una chiamata di strumento prima che si esegua, usa un hook [PreToolUse](#pretooluse) invece.2205 `updatedToolOutput` modifica solo ciò che Claude vede. Lo strumento è già stato eseguito quando l'hook si attiva, quindi eventuali file scritti, comandi eseguiti o richieste di rete inviate hanno già avuto effetto. Anche la telemetria, come gli span OpenTelemetry degli strumenti e gli eventi di analisi, acquisisce l'output originale prima che l'hook venga eseguito. Per impedire o modificare una chiamata a uno strumento prima che venga eseguita, usa invece un hook [PreToolUse](#pretooluse).

2198 2206 

2199 Il valore di sostituzione deve corrispondere alla forma di output dello strumento. Gli strumenti incorporati restituiscono oggetti strutturati piuttosto che stringhe semplici. Ad esempio, `Bash` restituisce un oggetto con campi `stdout`, `stderr`, `interrupted`, e `isImage`. Per gli strumenti incorporati, un valore che non corrisponde allo schema di output dello strumento viene ignorato e viene usato l'output originale. L'output dello strumento MCP viene passato senza convalida dello schema. Rimuovere i dettagli di errore di cui Claude ha bisogno può causargli di procedere su un'assunzione falsa.2207 Il valore sostitutivo deve corrispondere alla forma dell'output dello strumento. Gli strumenti integrati restituiscono oggetti strutturati anziché semplici stringhe. Ad esempio, `Bash` restituisce un oggetto con i campi `stdout`, `stderr`, `interrupted` e `isImage`. Per gli strumenti integrati, un valore che non corrisponde allo schema di output dello strumento viene ignorato e viene usato l'output originale. L'output degli strumenti MCP viene passato senza convalida dello schema. Rimuovere dettagli di errore di cui Claude ha bisogno può portarlo a procedere sulla base di un presupposto errato.

2200</Warning>2208</Warning>

2201 2209 

2202<h4 id="annotate-a-result-for-the-auto-mode-classifier">2210<h4 id="annotate-a-result-for-the-auto-mode-classifier">

2203 Annota un risultato per il classificatore della modalità auto2211 Annotare un risultato per il classificatore della modalità auto

2204</h4>2212</h4>

2205 2213 

2206Restituisci `classifierContext` per inviare una breve nota sul risultato della chiamata dello strumento al classificatore della [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode) piuttosto che a Claude. Il classificatore [non riceve mai i risultati degli strumenti stessi](/docs/it/permission-modes#how-the-classifier-evaluates-actions), quindi questo campo è il modo supportato per dirgli qualcosa su ciò che una chiamata ha restituito prima che riveda le azioni successive. Il campo richiede Claude Code v2.1.236 o successivo.2214Restituisci `classifierContext` per inviare una breve nota sul risultato della chiamata allo strumento al classificatore della [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode) anziché a Claude. Il classificatore [non riceve mai i risultati degli strumenti in sé](/docs/it/permission-modes#how-the-classifier-evaluates-actions), quindi questo campo è il modo supportato per comunicargli qualcosa su ciò che una chiamata ha restituito prima che esamini le azioni successive. Il campo richiede Claude Code v2.1.236 o successiva.

2207 2215 

2208L'esempio sottostante dice al classificatore da dove proviene l'output di una query:2216L'esempio seguente indica al classificatore da dove proviene l'output di una query:

2209 2217 

2210```json theme={null}2218```json theme={null}

2211{2219{


2216}2224}

2217```2225```

2218 2226 

2219Quanto peso il classificatore dà alla nota dipende da dove hai configurato l'hook:2227Il peso che il classificatore attribuisce alla nota dipende da dove hai configurato l'hook:

2220 2228 

2221* **Hook configurati in Claude Code**: per gli hook dai file di impostazioni, dai plugin, dalle skill, e dal frontmatter dell'agente, il classificatore tratta la nota come contesto non verificato fornito dall'applicazione. La nota non stabilisce mai l'intento dell'utente, e se afferma che hai approvato o richiesto qualcosa, il classificatore controlla quell'affermazione rispetto ai tuoi stessi messaggi nella conversazione2229* **Hook configurati in Claude Code**: per gli hook provenienti da file di impostazioni, plugin, skill e frontmatter degli agenti, il classificatore tratta la nota come contesto non verificato fornito dall'applicazione. La nota non stabilisce mai l'intento dell'utente e, se afferma che hai approvato o richiesto qualcosa, il classificatore verifica tale affermazione confrontandola con i tuoi messaggi nella conversazione

2222* **Callback Agent SDK in-process**: quando un'applicazione che incorpora Claude Code registra l'hook come un [callback SDK TypeScript](/docs/it/agent-sdk/hooks) e restituisce la nota durante la sessione dal vivo, il classificatore può pesare un'affermazione dell'utente trasmessa nella nota come intento dell'utente. Tale affermazione può soddisfare un requisito di consenso che il classificatore accetterebbe da un messaggio che invii, ma non solleva mai un blocco che il tuo stesso messaggio non potrebbe sollevare neanche. Dopo che una sessione riprende, Claude Code tratta le note ripristinate come contesto non verificato. Quando gli hook di entrambi i gruppi annotano la stessa chiamata, il classificatore tratta la nota combinata come non verificata2230* **Callback in-process dell'Agent SDK**: quando un'applicazione che incorpora Claude Code registra l'hook come [callback dell'SDK TypeScript](/docs/it/agent-sdk/hooks) e restituisce la nota durante la sessione attiva, il classificatore può considerare come intento dell'utente una dichiarazione dell'utente riportata nella nota. Tale dichiarazione può soddisfare un requisito di consenso che il classificatore accetterebbe da un messaggio inviato da te, ma non rimuove mai un blocco che nemmeno un tuo messaggio potrebbe rimuovere. Dopo la ripresa di una sessione, Claude Code tratta le note ripristinate come contesto non verificato. Quando hook di entrambi i gruppi annotano la stessa chiamata, il classificatore tratta la nota combinata come non verificata

2223 2231 

2224Claude Code applica questi limiti quando consegna la nota:2232Claude Code applica questi limiti quando consegna la nota:

2225 2233 

2226* **Lunghezza**: Claude Code limita le note per una chiamata di strumento a 2.000 caratteri e tronca il resto. Il limite è condiviso tra ogni hook che risponde a quella chiamata2234* **Lunghezza**: Claude Code limita le note per una singola chiamata a uno strumento a 2.000 caratteri e tronca il resto. Il limite è condiviso tra tutti gli hook che rispondono a quella chiamata

2227* **Solo risposte sincrone**: Claude Code ignora il campo nella risposta di un hook che [si esegue in background](#run-hooks-in-the-background), perché quella risposta arriva dopo che Claude Code registra il risultato dello strumento2235* **Solo risposte sincrone**: Claude Code ignora il campo nella risposta di un hook che [viene eseguito in background](#run-hooks-in-the-background), perché quella risposta arriva dopo che Claude Code ha registrato il risultato dello strumento

2228* **Chiamate che il classificatore non registra**: la trascrizione del classificatore omette le ricerche di sola lettura come le letture di file e le ricerche. Claude Code scarta una nota allegata a una di quelle chiamate2236* **Chiamate che il classificatore non registra**: la trascrizione del classificatore omette le consultazioni di sola lettura come letture di file e ricerche. Claude Code scarta una nota associata a una di queste chiamate

2229* **Interazione con le riscritture**: quando la nota descrive l'output che stai sostituendo con `updatedToolOutput`, restituisci entrambi i campi nella stessa risposta dell'hook. Claude Code scarta la nota se quella riscrittura viene rifiutata o la riscrittura di un altro hook la sostituisce. Claude Code consegna una nota che restituisci senza una riscrittura anche quando un altro hook riscrive l'output2237* **Interazione con le riscritture**: quando la nota descrive un output che stai sostituendo con `updatedToolOutput`, restituisci entrambi i campi nella stessa risposta dell'hook. Claude Code scarta la nota se quella riscrittura viene rifiutata o se la riscrittura di un altro hook la sostituisce. Claude Code consegna una nota restituita senza riscrittura anche quando un altro hook riscrive l'output

2230 2238 

2231<Warning>2239<Warning>

2232 Il classificatore legge il contenuto che metti in `classifierContext` come informazioni dall'applicazione che ospita la sessione, quindi non copiare l'output dello strumento non attendibile o il testo di terze parti in esso. Mantieni la nota a una breve affermazione su questa una chiamata, come un fatto sulla sua origine o un'affermazione dell'utente su di essa; non usare il campo per consegnare messaggi non correlati o un flusso di eventi.2240 Il classificatore legge il contenuto che inserisci in `classifierContext` come informazione proveniente dall'applicazione che ospita la sessione, quindi non copiarvi output di strumenti non attendibili o testo di terze parti. Limita la nota a una breve affermazione su questa singola chiamata, ad esempio un fatto sulla sua origine o una dichiarazione dell'utente al riguardo; non usare il campo per consegnare messaggi non correlati o un flusso di eventi.

2233</Warning>2241</Warning>

2234 2242 

2235<h3 id="posttoolusefailure">2243<h3 id="posttoolusefailure">

2236 PostToolUseFailure2244 PostToolUseFailure

2237</h3>2245</h3>

2238 2246 

2239Si esegue quando uno strumento che ha iniziato a eseguirsi fallisce: lo strumento ha lanciato un errore, o uno strumento MCP ha restituito un risultato di errore. Usa questo per registrare i fallimenti, inviare avvisi, o fornire feedback correttivo a Claude.2247Viene eseguito quando uno strumento che ha iniziato l'esecuzione fallisce: lo strumento ha generato un errore o uno strumento MCP ha restituito un risultato di errore. Usalo per registrare i fallimenti, inviare avvisi o fornire feedback correttivo a Claude.

2240 2248 

2241Corrisponde al nome dello strumento, stessi valori di PreToolUse.2249Fa corrispondere il nome dello strumento, con gli stessi valori di PreToolUse.

2242 2250 

2243<Note>2251<Note>

2244 Questo evento non si esegue per le chiamate di strumento rifiutate prima dell'esecuzione: un nome di strumento sconosciuto, input che fallisce la convalida dello schema o specifica dello strumento, o una negazione di permesso. I rifiuti di convalida vengono restituiti come risultati `tool_use_error` e accadono prima che gli hook si eseguano, quindi non eseguono né `PreToolUse` né `PostToolUseFailure`. Le negazioni di permesso eseguono `PreToolUse` ma non questo evento; vedi [PermissionDenied](#permissiondenied).2252 Questo evento non si attiva per le chiamate agli strumenti rifiutate prima dell'esecuzione: un nome di strumento sconosciuto, un input che non supera la convalida dello schema o quella specifica dello strumento, o un permesso negato. I rifiuti di convalida vengono restituiti come risultati `tool_use_error` e avvengono prima dell'esecuzione degli hook, quindi non attivano né `PreToolUse` né `PostToolUseFailure`. I permessi negati attivano `PreToolUse` ma non questo evento; consulta [PermissionDenied](#permissiondenied).

2245</Note>2253</Note>

2246 2254 

2247<h4 id="posttoolusefailure-input">2255<h4 id="posttoolusefailure-input">

2248 Input PostToolUseFailure2256 Input di PostToolUseFailure

2249</h4>2257</h4>

2250 2258 

2251Gli hook PostToolUseFailure ricevono gli stessi campi `tool_name` e `tool_input` di PostToolUse, insieme alle informazioni di errore come campi di livello superiore. Per uno strumento MCP, ricevono anche l'oggetto [`mcp_server`](#pretooluse-input). Ad esempio, un comando `npm test` fallito potrebbe consegnare:2259Gli hook PostToolUseFailure ricevono gli stessi campi `tool_name` e `tool_input` di PostToolUse, insieme alle informazioni sull'errore come campi di primo livello. Per uno strumento MCP, ricevono anche l'oggetto [`mcp_server`](#pretooluse-input). Ad esempio, un comando `npm test` fallito potrebbe restituire:

2252 2260 

2253```json theme={null}2261```json theme={null}

2254{2262{


2271 2279 

2272| Campo | Descrizione |2280| Campo | Descrizione |

2273| :- | :- |2281| :- | :- |

2274| `error` | Stringa che descrive cosa è andato male. Il formato dipende dallo strumento che ha fallito |2282| `error` | Stringa che descrive cosa è andato storto. Il formato dipende dallo strumento che ha fallito |

2275| `is_interrupt` | Booleano facoltativo. True quando il fallimento ha raggiunto Claude Code come un'interruzione piuttosto che come un errore che lo strumento ha segnalato. L'annullamento di uno strumento in esecuzione non esegue questo hook; il risultato dello strumento porta il messaggio di interruzione invece |2283| `is_interrupt` | Booleano facoltativo. True quando il fallimento ha raggiunto Claude Code come interruzione anziché come errore segnalato dallo strumento. L'annullamento di uno strumento in esecuzione non attiva questo hook; il risultato dello strumento contiene invece il messaggio di interruzione |

2276| `duration_ms` | Facoltativo. Tempo di esecuzione dello strumento in millisecondi. Esclude il tempo trascorso nei prompt di permesso e negli hook PreToolUse |2284| `duration_ms` | Facoltativo. Tempo di esecuzione dello strumento in millisecondi. Esclude il tempo trascorso nelle richieste di permesso e negli hook PreToolUse |

2277 2285 

2278La stringa `error` è generalmente lo stesso testo che Claude riceve come risultato dello strumento fallito. Il suo formato varia per strumento e fallimento. Chiavi il tuo hook su `tool_name`, `is_interrupt`, e la prima riga `Exit code N`; tratta il resto della stringa come testo di visualizzazione, non un formato stabile.2286La stringa `error` è generalmente lo stesso testo che Claude riceve come risultato dello strumento fallito. Il suo formato varia in base allo strumento e al tipo di fallimento. Basa il tuo hook su `tool_name`, `is_interrupt` e sulla prima riga `Exit code N`; tratta il resto della stringa come testo di visualizzazione, non come un formato stabile.

2279 2287 

2280* Per Bash e PowerShell, un comando che si è eseguito e ha uscito produce una prima riga `Exit code N`, quindi qualsiasi output che il comando ha prodotto come un blocco con stdout e stderr intercalati2288* Per Bash e PowerShell, un comando eseguito e terminato produce una prima riga `Exit code N`, seguita da qualsiasi output prodotto dal comando come un unico blocco con stdout e stderr intercalati

2281* Un payload può anche portare un messaggio di fallimento nudo senza una riga di codice di uscita, quando Claude Code non poteva avviare il processo shell stesso2289* Un payload può anche contenere un semplice messaggio di errore senza riga del codice di uscita, quando Claude Code non è riuscito ad avviare il processo della shell stesso

2282* Claude Code tronca nel mezzo le stringhe lunghe intorno a un marcatore `... [N characters truncated] ...`, e può inserire righe proprie, come `Command timed out after 2m 0s`2290* Claude Code tronca al centro le stringhe lunghe attorno a un indicatore `... [N characters truncated] ...` e può inserire righe proprie, come `Command timed out after 2m 0s`

2283 2291 

2284<h4 id="posttoolusefailure-decision-control">2292<h4 id="posttoolusefailure-decision-control">

2285 Controllo decisionale PostToolUseFailure2293 Controllo delle decisioni di PostToolUseFailure

2286</h4>2294</h4>

2287 2295 

2288Gli hook `PostToolUseFailure` possono fornire contesto a Claude dopo un fallimento dello strumento. Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, il tuo script hook può restituire questi campi specifici dell'evento:2296Gli hook `PostToolUseFailure` possono fornire contesto a Claude dopo il fallimento di uno strumento. Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, lo script del tuo hook può restituire questi campi specifici dell'evento:

2289 2297 

2290| Campo | Descrizione |2298| Campo | Descrizione |

2291| :- | :- |2299| :- | :- |

2292| `additionalContext` | Stringa aggiunta al contesto di Claude insieme all'errore. Vedi [Aggiungi contesto per Claude](#add-context-for-claude) |2300| `additionalContext` | Stringa aggiunta al contesto di Claude insieme all'errore. Consulta [Aggiungere contesto per Claude](#add-context-for-claude) |

2293 2301 

2294```json theme={null}2302```json theme={null}

2295{2303{


2304 PostToolBatch2312 PostToolBatch

2305</h3>2313</h3>

2306 2314 

2307Si esegue una volta dopo che ogni chiamata di strumento in un batch si è risolta, prima che Claude Code invii la richiesta successiva al modello. `PostToolUse` si esegue una volta per strumento, il che significa che si esegue contemporaneamente quando Claude fa chiamate di strumento parallele. `PostToolBatch` si esegue esattamente una volta con il batch completo, quindi è il posto giusto per iniettare contesto che dipende dall'insieme di strumenti che si sono eseguiti piuttosto che da qualsiasi singolo strumento. Non c'è matcher per questo evento.2315Viene eseguito una volta dopo che ogni chiamata a uno strumento in un batch è stata risolta, prima che Claude Code invii la richiesta successiva al modello. `PostToolUse` si attiva una volta per strumento, il che significa che si attiva in modo concorrente quando Claude effettua chiamate agli strumenti in parallelo. `PostToolBatch` si attiva esattamente una volta con l'intero batch, quindi è il punto giusto per iniettare contesto che dipende dall'insieme degli strumenti eseguiti anziché da un singolo strumento. Non esiste un matcher per questo evento.

2308 2316 

2309<h4 id="posttoolbatch-input">2317<h4 id="posttoolbatch-input">

2310 Input PostToolBatch2318 Input di PostToolBatch

2311</h4>2319</h4>

2312 2320 

2313Oltre ai [campi di input comuni](#common-input-fields), gli hook PostToolBatch ricevono `tool_calls`, un array che descrive ogni chiamata di strumento nel batch:2321Oltre ai [campi di input comuni](#common-input-fields), gli hook PostToolBatch ricevono `tool_calls`, un array che descrive ogni chiamata a uno strumento nel batch:

2314 2322 

2315```json theme={null}2323```json theme={null}

2316{2324{


2336}2344}

2337```2345```

2338 2346 

2339`tool_response` contiene lo stesso contenuto che il modello riceve nel blocco `tool_result` corrispondente. Il valore è una stringa serializzata o un array di blocchi di contenuto, esattamente come lo strumento l'ha emesso. Per `Read`, questo significa testo con prefisso numero di riga piuttosto che contenuti di file grezzi. Le risposte possono essere grandi, quindi analizza solo i campi di cui hai bisogno.2347`tool_response` contiene lo stesso contenuto che il modello riceve nel blocco `tool_result` corrispondente. Il valore è una stringa serializzata o un array di blocchi di contenuto, esattamente come lo strumento l'ha emesso. Per `Read`, ciò significa testo con prefisso del numero di riga anziché il contenuto grezzo del file. Le risposte possono essere di grandi dimensioni, quindi analizza solo i campi di cui hai bisogno.

2340 2348 

2341<Note>2349<Note>

2342 La forma `tool_response` differisce da quella di `PostToolUse`. `PostToolUse` passa l'oggetto `Output` strutturato dello strumento, come `{filePath: "...", type: "create"}` per `Write`; `PostToolBatch` passa il contenuto `tool_result` serializzato che il modello vede.2350 La forma di `tool_response` è diversa da quella di `PostToolUse`. `PostToolUse` passa l'oggetto `Output` strutturato dello strumento, come `{filePath: "...", type: "create"}` per `Write`; `PostToolBatch` passa il contenuto `tool_result` serializzato che vede il modello.

2343</Note>2351</Note>

2344 2352 

2345<h4 id="posttoolbatch-decision-control">2353<h4 id="posttoolbatch-decision-control">

2346 Controllo decisionale PostToolBatch2354 Controllo delle decisioni di PostToolBatch

2347</h4>2355</h4>

2348 2356 

2349Gli hook `PostToolBatch` possono iniettare contesto per Claude. Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, il tuo script hook può restituire questi campi specifici dell'evento:2357Gli hook `PostToolBatch` possono iniettare contesto per Claude. Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, lo script del tuo hook può restituire questi campi specifici dell'evento:

2350 2358 

2351| Campo | Descrizione |2359| Campo | Descrizione |

2352| :- | :- |2360| :- | :- |

2353| `additionalContext` | Stringa di contesto iniettata una volta prima della richiesta del modello successivo. Vedi [Aggiungi contesto per Claude](#add-context-for-claude) per i dettagli di consegna, cosa metterci, e come le sessioni riprese gestiscono i valori passati |2361| `additionalContext` | Stringa di contesto iniettata una volta prima della chiamata successiva al modello. Consulta [Aggiungere contesto per Claude](#add-context-for-claude) per i dettagli di consegna, cosa inserirvi e come le sessioni riprese gestiscono i valori passati |

2354 2362 

2355```json theme={null}2363```json theme={null}

2356{2364{


2361}2369}

2362```2370```

2363 2371 

2364Restituire `decision: "block"` o `continue: false` ferma il loop agentivo prima della richiesta del modello successivo. Il messaggio di blocco viene dal JSON `reason` o `stopReason`, o da stderr all'uscita 2. Lo vedi come un avviso nella trascrizione, e rimane nella conversazione, quindi Claude lo vede quando la conversazione continua.2372Restituire `decision: "block"` o `continue: false` interrompe il ciclo agentico prima della chiamata successiva al modello. Il messaggio di blocco proviene dal `reason` o dallo `stopReason` del JSON, oppure da stderr con uscita 2. Lo vedi come avviso nella trascrizione e rimane nella conversazione, quindi Claude lo vede quando la conversazione prosegue.

2365 2373 

2366<h3 id="permissiondenied">2374<h3 id="permissiondenied">

2367 PermissionDenied2375 PermissionDenied

2368</h3>2376</h3>

2369 2377 

2370Si esegue quando la [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode) nega una chiamata di strumento, incluso quando nega senza un verdetto del classificatore perché [un controllo di sicurezza separato dalla modalità auto ha rifiutato la richiesta del classificatore stesso](/docs/it/errors#auto-mode-cannot-determine-the-safety-of-an-action) o la sua risposta non ha analizzato. Questo hook si esegue solo in modalità auto: non si esegue quando neghi manualmente un dialogo di permesso, quando un hook `PreToolUse` blocca una chiamata, o quando una regola `deny` corrisponde. Usalo per registrare le negazioni, regolare la configurazione, o dire al modello che può ritentare la chiamata dello strumento.2378Viene eseguito quando la [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode) nega una chiamata a uno strumento, anche quando la nega senza un verdetto del classificatore perché [un controllo di sicurezza separato dalla modalità auto ha rifiutato la richiesta del classificatore stesso](/docs/it/errors#auto-mode-cannot-determine-the-safety-of-an-action) o la sua risposta non è stata analizzata correttamente. Questo hook si attiva solo in modalità auto: non viene eseguito quando neghi manualmente una finestra di dialogo dei permessi, quando un hook `PreToolUse` blocca una chiamata o quando corrisponde una regola `deny`. Usalo per registrare i dinieghi, modificare la configurazione o dire al modello che può riprovare la chiamata allo strumento.

2371 2379 

2372Corrisponde al nome dello strumento, stessi valori di PreToolUse.2380Fa corrispondere il nome dello strumento, con gli stessi valori di PreToolUse.

2373 2381 

2374<h4 id="permissiondenied-input">2382<h4 id="permissiondenied-input">

2375 Input PermissionDenied2383 Input di PermissionDenied

2376</h4>2384</h4>

2377 2385 

2378Oltre ai [campi di input comuni](#common-input-fields), gli hook PermissionDenied ricevono `tool_name`, `tool_input`, `tool_use_id`, e `reason`. Per uno strumento MCP, ricevono anche l'oggetto [`mcp_server`](#pretooluse-input).2386Oltre ai [campi di input comuni](#common-input-fields), gli hook PermissionDenied ricevono `tool_name`, `tool_input`, `tool_use_id` e `reason`. Per uno strumento MCP, ricevono anche l'oggetto [`mcp_server`](#pretooluse-input).

2379 2387 

2380```json theme={null}2388```json theme={null}

2381{2389{


2396 2404 

2397| Campo | Descrizione |2405| Campo | Descrizione |

2398| :- | :- |2406| :- | :- |

2399| `reason` | Il motivo della negazione. Per un verdetto del classificatore, nella maggior parte delle sessioni nomina la regola corrispondente tra parentesi quadre, come `[Data Exfiltration]`; vedi [Rivedi le negazioni](/docs/it/auto-mode-config#review-denials) per le altre forme. Per una [negazione senza verdetto](#permissiondenied-decision-control), inizia con `Auto mode could not evaluate this action and is blocking it for safety`. Per una negazione perché il modello del classificatore non era disponibile, è il testo fisso `Classifier unavailable` |2407| `reason` | Il motivo del diniego. Per un verdetto del classificatore, nella maggior parte delle sessioni indica la regola corrispondente tra parentesi quadre, come `[Data Exfiltration]`; consulta [Esaminare i dinieghi](/docs/it/auto-mode-config#review-denials) per le altre forme. Per un [diniego senza verdetto](#permissiondenied-decision-control), inizia con `Auto mode could not evaluate this action and is blocking it for safety`. Per un diniego dovuto al fatto che il modello del classificatore non era disponibile, è il testo fisso `Classifier unavailable` |

2400 2408 

2401<h4 id="permissiondenied-decision-control">2409<h4 id="permissiondenied-decision-control">

2402 Controllo decisionale PermissionDenied2410 Controllo delle decisioni di PermissionDenied

2403</h4>2411</h4>

2404 2412 

2405Gli hook PermissionDenied possono dire al modello che può ritentare la chiamata dello strumento negata. Restituisci un oggetto JSON con `hookSpecificOutput.retry` impostato su `true`:2413Gli hook PermissionDenied possono dire al modello che può riprovare la chiamata allo strumento negata. Restituisci un oggetto JSON con `hookSpecificOutput.retry` impostato su `true`:

2406 2414 

2407```json theme={null}2415```json theme={null}

2408{2416{


2413}2421}

2414```2422```

2415 2423 

2416Quando `retry` è `true`, Claude Code aggiunge un messaggio alla conversazione dicendo al modello che può ritentare la chiamata dello strumento. Claude Code non inverte la negazione stessa. Se il tuo hook non restituisce JSON, o restituisce `retry: false`, la negazione rimane e il modello riceve il messaggio di rifiuto originale.2424Quando `retry` è `true`, Claude Code aggiunge un messaggio alla conversazione che dice al modello che può riprovare la chiamata allo strumento. Claude Code non annulla il diniego stesso. Se il tuo hook non restituisce JSON o restituisce `retry: false`, il diniego resta valido e il modello riceve il messaggio di rifiuto originale.

2417 2425 

2418Claude Code ignora `retry: true` quando il classificatore ha prodotto [nessun verdetto sull'azione](/docs/it/errors#auto-mode-cannot-determine-the-safety-of-an-action): la sua risposta non ha analizzato, o un controllo di sicurezza separato dalla modalità auto ha rifiutato la richiesta del classificatore. Per quelle negazioni, Claude Code già dice al modello nel messaggio di rifiuto se ritentare più tardi o procedere.2426Claude Code ignora `retry: true` quando il classificatore non ha prodotto [alcun verdetto sull'azione](/docs/it/errors#auto-mode-cannot-determine-the-safety-of-an-action): la sua risposta non è stata analizzata correttamente, oppure un controllo di sicurezza separato dalla modalità auto ha rifiutato la richiesta del classificatore stesso. Per questi dinieghi, Claude Code indica già al modello nel messaggio di rifiuto se riprovare più tardi o andare avanti.

2419 2427 

2420<h3 id="notification">2428<h3 id="notification">

2421 Notification2429 Notification

2422</h3>2430</h3>

2423 2431 

2424Si esegue quando Claude Code invia notifiche. Corrisponde al tipo di notifica. Ometti il matcher per eseguire gli hook per tutti i tipi di notifica.2432Viene eseguito quando Claude Code invia notifiche. Fa corrispondere il tipo di notifica. Ometti il matcher per eseguire gli hook per tutti i tipi di notifica.

2425 2433 

2426Ricevi questi eventi hook anche con le notifiche desktop disattivate: l'impostazione `preferredNotifChannel`, incluso `notifications_disabled`, cambia solo come sei avvisato, non se il tuo hook si esegue.2434Ricevi questi eventi hook anche con le notifiche desktop disattivate: l'impostazione `preferredNotifChannel`, incluso `notifications_disabled`, cambia solo il modo in cui vieni avvisato, non se il tuo hook viene eseguito.

2427 2435 

2428| Matcher | Quando si attiva |2436| Matcher | Quando si attiva |

2429| :- | :- |2437| :- | :- |

2430| `permission_prompt` | Claude ha bisogno della tua approvazione per usare uno strumento o la [richiesta di rete](/docs/it/sandboxing#network-isolation) di un comando sandboxed, e il prompt ha atteso circa sei secondi |2438| `permission_prompt` | Claude ha bisogno che tu approvi l'uso di uno strumento o la [richiesta di rete](/docs/it/sandboxing#network-isolation) di un comando in sandbox, e la richiesta è in attesa da circa sei secondi |

2431| `idle_prompt` | Claude ha finito di rispondere circa 60 secondi fa e non hai digitato da allora |2439| `idle_prompt` | Claude ha finito di rispondere circa 60 secondi fa e da allora non hai digitato nulla |

2432| `auth_success` | L'autenticazione completa |2440| `auth_success` | L'autenticazione viene completata |

2433| `elicitation_dialog` | Un server MCP apre un modulo di elicitazione e non hai digitato per circa sei secondi |2441| `elicitation_dialog` | Un server MCP apre un modulo di elicitazione e non digiti da circa sei secondi |

2434| `elicitation_url_dialog` | Un server MCP ti chiede di aprire un URL del browser e non hai digitato per circa sei secondi |2442| `elicitation_url_dialog` | Un server MCP ti chiede di aprire un URL nel browser e non digiti da circa sei secondi |

2435| `elicitation_complete` | Un server MCP segnala che un'[elicitazione in modalità URL](#elicitation-input) è completa |2443| `elicitation_complete` | Un server MCP segnala che un'[elicitazione in modalità URL](#elicitation-input) è completa |

2436| `elicitation_response` | Una risposta di elicitazione MCP viene inviata di nuovo al server |2444| `elicitation_response` | Una risposta di elicitazione MCP viene inviata al server |

2437| `agent_needs_input` | Una sessione di background inizia ad aspettare il tuo input mentre la [vista agente](/docs/it/agent-view) è aperta in un terminale. Si esegue anche quando una sessione di terminale ti mostra una [domanda di configurazione del terminale del compagno di squadra dell'agente](/docs/it/agent-teams#choose-a-display-mode) o l'avviso della modalità auto sui [costi di richiesta del classificatore](/docs/it/auto-mode-classifier-billing) e non hai digitato per circa sei secondi |2445| `agent_needs_input` | Una sessione in background inizia ad attendere un tuo input mentre la [vista agenti](/docs/it/agent-view) è aperta in un terminale. Si attiva anche quando una sessione nel terminale ti mostra la [domanda di configurazione del terminale di un compagno di un team di agenti](/docs/it/agent-teams#choose-a-display-mode) o l'avviso della modalità auto sugli [addebiti per le richieste del classificatore](/docs/it/auto-mode-classifier-billing) e non digiti da circa sei secondi |

2438| `agent_completed` | Una sessione di background finisce o fallisce. Si esegue solo mentre la [vista agente](/docs/it/agent-view) è aperta in un terminale |2446| `agent_completed` | Una sessione in background termina o fallisce. Si attiva solo mentre la [vista agenti](/docs/it/agent-view) è aperta in un terminale |

2439| `quota_auto_resume_fired` | Claude Code continua il tuo compito dopo che un limite di utilizzo di claude.ai lo ha messo in pausa: al reset, o prima quando qualcosa che fai in Claude Code durante l'attesa, come aggiungere crediti di utilizzo, aggiornare il tuo piano, o cambiare modelli, rende l'utilizzo disponibile di nuovo, con l'[eccezione dell'impostazione del modello](/docs/it/interactive-mode#wait-for-a-usage-limit-to-reset) |2447| `quota_auto_resume_fired` | Claude Code prosegue il tuo task dopo che un limite di utilizzo di claude.ai lo aveva messo in pausa: al reset, o prima quando qualcosa che fai in Claude Code durante l'attesa, come aggiungere crediti di utilizzo, effettuare l'upgrade del piano o cambiare modello, rende di nuovo disponibile l'utilizzo, con l'[eccezione relativa all'impostazione del modello](/docs/it/interactive-mode#wait-for-a-usage-limit-to-reset) |

2440| `quota_auto_resume_stale` | Un limite di utilizzo di claude.ai si è resettato mentre il tuo computer dormiva per più di circa 30 minuti. Claude Code attende che tu prema `Enter` invece di continuare. Dopo un sonno più breve continua e esegue `quota_auto_resume_fired` invece |2448| `quota_auto_resume_stale` | Un limite di utilizzo di claude.ai è stato reimpostato mentre il tuo computer era in sospensione per più di circa 30 minuti. Claude Code attende che tu prema `Enter` invece di proseguire. Dopo una sospensione più breve prosegue e attiva invece `quota_auto_resume_fired` |

2441| `quota_auto_resume_disabled` | Claude Code termina la sua attesa per un limite di utilizzo di claude.ai senza continuare il tuo compito: [`autoContinueAtUsageLimit`](/docs/it/settings-reference#autocontinueatusagelimit) è stato disattivato o il reset si è spostato più di 24 ore lontano durante un'attesa che Claude Code ha avviato da solo, il compito continuato ha continuato a colpire il limite, o la continuazione è stata bloccata prima di raggiungere il modello. Non si esegue quando premi `Esc` o `Ctrl+C`, o scegli **Don't continue automatically** |2449| `quota_auto_resume_disabled` | Claude Code termina l'attesa per un limite di utilizzo di claude.ai senza proseguire il tuo task: [`autoContinueAtUsageLimit`](/docs/it/settings-reference#autocontinueatusagelimit) è stato disattivato o il reset si è spostato a più di 24 ore di distanza durante un'attesa avviata autonomamente da Claude Code, il task proseguito ha continuato a raggiungere il limite, oppure la prosecuzione è stata bloccata prima di raggiungere il modello. Non si attiva quando premi `Esc` o `Ctrl+C`, o scegli **Don't continue automatically** |

2442 2450 

2443I tipi `quota_auto_resume_fired`, `quota_auto_resume_stale`, e `quota_auto_resume_disabled` richiedono Claude Code v2.1.234 o successivo.2451I tipi `quota_auto_resume_fired`, `quota_auto_resume_stale` e `quota_auto_resume_disabled` richiedono Claude Code v2.1.234 o successiva.

2444 2452 

2445Nelle sessioni di terminale, `permission_prompt` per la richiesta di rete di un comando sandboxed richiede Claude Code v2.1.246 o successivo.2453Nelle sessioni nel terminale, `permission_prompt` per la richiesta di rete di un comando in sandbox richiede Claude Code v2.1.246 o successiva.

2446 2454 

2447`agent_needs_input` per una domanda di configurazione del terminale del compagno di squadra richiede Claude Code v2.1.248 o successivo.2455`agent_needs_input` per la domanda di configurazione del terminale di un compagno di team richiede Claude Code v2.1.248 o successiva.

2448 2456 

2449<Note>2457<Note>

2450 I tipi `permission_prompt`, `idle_prompt`, `elicitation_dialog`, e `elicitation_url_dialog` condividono il loro timing con le notifiche desktop, quindi nelle sessioni di terminale li vedi solo quando sembri essere lontano dal terminale:2458 I tipi `permission_prompt`, `idle_prompt`, `elicitation_dialog` ed `elicitation_url_dialog` condividono le tempistiche con le notifiche desktop, quindi nelle sessioni nel terminale li vedi solo quando sembri essere lontano dal terminale:

2451 2459 

2452 * Aspettati `permission_prompt` una volta che non hai digitato per circa sei secondi. Il timer inizia quando il prompt di permesso appare, e ogni pressione di tasto lo rinvia. Per eseguire un hook immediatamente quando Claude chiede il permesso di usare uno strumento, usa [PermissionRequest](#permissionrequest) invece.2460 * Aspettati `permission_prompt` quando non digiti da circa sei secondi. Il timer parte quando appare la richiesta di permesso e ogni pressione di tasto lo posticipa. Per eseguire un hook immediatamente quando Claude chiede il permesso di usare uno strumento, usa invece [PermissionRequest](#permissionrequest).

2453 * Aspettati `idle_prompt` circa 60 secondi dopo che Claude finisce di rispondere, e solo se non hai digitato da allora. Claude Code non invia `idle_prompt` mentre attende che un limite di utilizzo di claude.ai si resetti. Quando l'attesa termina da sola, uno dei tipi `quota_auto_resume_*` si esegue invece.2461 * Aspettati `idle_prompt` circa 60 secondi dopo che Claude ha finito di rispondere, e solo se da allora non hai digitato nulla e nessun agente in background, come un [subagent](/docs/it/sub-agents) in background, è ancora in esecuzione. Claude Code non invia `idle_prompt` mentre attende il reset di un limite di utilizzo di claude.ai. Quando l'attesa termina da sola, si attiva invece uno dei tipi `quota_auto_resume_*`.

2454 * Aspettati `elicitation_dialog` per un modulo di elicitazione, o `elicitation_url_dialog` per una richiesta di URL del browser, una volta che non hai digitato per circa sei secondi. Entrambi condividono lo stesso gate di sei secondi di `permission_prompt`: il timer inizia quando il dialogo appare, e ogni pressione di tasto lo rinvia.2462 * Aspettati `elicitation_dialog` per un modulo di elicitazione, o `elicitation_url_dialog` per una richiesta di URL nel browser, quando non digiti da circa sei secondi. Entrambi condividono la stessa soglia di sei secondi di `permission_prompt`: il timer parte quando appare la finestra di dialogo e ogni pressione di tasto lo posticipa.

2455 2463 

2456 Una richiesta di permesso o elicitazione che arriva mentre un altro dialogo è sullo schermo mantiene lo stesso gate di sei secondi, cronometrato da quando la richiesta arriva. La sua notifica può raggiungerti mentre la richiesta attende ancora dietro il dialogo aperto.2464 Una richiesta di permesso o un'elicitazione che arriva mentre un'altra finestra di dialogo è sullo schermo mantiene la stessa soglia di sei secondi, calcolata dal momento in cui arriva la richiesta. La sua notifica può raggiungerti mentre la richiesta è ancora in attesa dietro la finestra di dialogo aperta.

2457</Note>2465</Note>

2458 2466 

2459Claude Code cronometra `permission_prompt` diversamente nelle sessioni in cui invia richieste di permesso al callback [`canUseTool`](/docs/it/agent-sdk/user-input) dell'Agent SDK, che è come Claude Desktop e l'estensione VS Code ospitano Claude Code:2467Claude Code calcola i tempi di `permission_prompt` in modo diverso nelle sessioni in cui invia le richieste di permesso alla [callback `canUseTool`](/docs/it/agent-sdk/user-input) dell'Agent SDK, che è il modo in cui Claude Desktop e l'estensione VS Code ospitano Claude Code:

2460 2468 

2461* Aspettati `permission_prompt` circa sei secondi dopo che Claude chiede il permesso. Claude Code non lo rinvia mentre digiti.2469* Aspettati `permission_prompt` circa sei secondi dopo che Claude chiede il permesso. Claude Code non lo posticipa mentre digiti.

2462* Se tu o un hook [PermissionRequest](#permissionrequest) rispondete prima, Claude Code non esegue `permission_prompt`.2470* Se tu o un hook [PermissionRequest](#permissionrequest) rispondete prima, Claude Code non esegue `permission_prompt`.

2463* Imposta [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/it/env-vars) su `1` per disattivare `permission_prompt` in queste sessioni.2471* Imposta [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/it/env-vars) su `1` per disattivare `permission_prompt` in queste sessioni.

2464 2472 

2465Prima della v2.1.233, `permission_prompt` non si eseguiva in queste sessioni.2473Prima della v2.1.233, `permission_prompt` non si attivava in queste sessioni.

2466 2474 

2467Usa matcher separati per eseguire diversi handler a seconda del tipo di notifica. Questa configurazione attiva uno script di avviso specifico per il permesso quando Claude ha bisogno dell'approvazione del permesso e una notifica diversa quando Claude è stato inattivo:2475Usa matcher separati per eseguire gestori diversi a seconda del tipo di notifica. Questa configurazione attiva uno script di avviso specifico per i permessi quando Claude ha bisogno di un'approvazione dei permessi e una notifica diversa quando Claude è inattivo:

2468 2476 

2469```json theme={null}2477```json theme={null}

2470{2478{


2494```2502```

2495 2503 

2496<h4 id="notification-input">2504<h4 id="notification-input">

2497 Input Notification2505 Input di Notification

2498</h4>2506</h4>

2499 2507 

2500Oltre ai [campi di input comuni](#common-input-fields), gli hook Notification ricevono `message` con il testo della notifica, un `title` facoltativo, e `notification_type` che indica quale tipo si è eseguito.2508Oltre ai [campi di input comuni](#common-input-fields), gli hook Notification ricevono `message` con il testo della notifica, un `title` facoltativo e `notification_type` che indica quale tipo si è attivato.

2501 2509 

2502```json theme={null}2510```json theme={null}

2503{2511{


2511}2519}

2512```2520```

2513 2521 

2514Gli hook Notification non possono bloccare o modificare le notifiche. Claude Code scarta i loro campi `systemMessage` e `continue` ma emette comunque [`terminalSequence`](#emit-terminal-notifications), su cui si basa l'esempio di notifica desktop. Gli hook Notification sono destinati agli effetti collaterali come l'inoltro della notifica a un servizio esterno.2522Gli hook Notification non possono bloccare né modificare le notifiche. Claude Code scarta i loro campi `systemMessage` e `continue` ma emette comunque [`terminalSequence`](#emit-terminal-notifications), su cui si basa l'esempio di notifica desktop. Gli hook Notification sono pensati per effetti collaterali come l'inoltro della notifica a un servizio esterno.

2515 2523 

2516<h3 id="subagentstart">2524<h3 id="subagentstart">

2517 SubagentStart2525 SubagentStart

2518</h3>2526</h3>

2519 2527 

2520Si esegue quando Claude genera un subagente con lo strumento Agent, quando Claude [riprende un subagente](/docs/it/sub-agents#resume-subagents), e ogni volta che un compagno di squadra dell'[agente team](/docs/it/agent-teams) in-process gestisce un nuovo messaggio. Supporta i matcher per filtrare per nome del tipo di agente. Per gli agenti incorporati, questo è il nome dell'agente come `general-purpose`, `Explore`, o `Plan`. Per i [subagenti personalizzati](/docs/it/sub-agents), questo è il campo `name` dal frontmatter dell'agente, non il nome del file.2528Viene eseguito quando Claude genera un subagent con lo strumento Agent, quando Claude [riprende un subagent](/docs/it/sub-agents#resume-subagents) e ogni volta che un compagno in-process di un [team di agenti](/docs/it/agent-teams) gestisce un nuovo messaggio. Supporta i matcher per filtrare in base al nome del tipo di agente. Per gli agenti integrati, si tratta del nome dell'agente come `general-purpose`, `Explore` o `Plan`. Per i [subagent personalizzati](/docs/it/sub-agents), si tratta del campo `name` del frontmatter dell'agente, non del nome del file.

2521 2529 

2522Per i subagenti forniti da un [plugin](/docs/it/plugins/overview), il tipo di agente è l'identificatore con ambito del plugin come `my-plugin:reviewer`, non il nome del frontmatter nudo. I due punti mettono un nome con ambito del plugin sul percorso dell'espressione regolare, quindi ancora il matcher con `^` e `$` per una corrispondenza esatta: `^my-plugin:reviewer$`.2530Per i subagent forniti da un [plugin](/docs/it/plugins/overview), il tipo di agente è l'identificatore con ambito del plugin come `my-plugin:reviewer`, non il semplice nome del frontmatter. I due punti fanno sì che un nome con ambito del plugin venga trattato come espressione regolare, quindi ancora il matcher con `^` e `$` per una corrispondenza esatta: `^my-plugin:reviewer$`.

2523 2531 

2524<h4 id="subagentstart-input">2532<h4 id="subagentstart-input">

2525 Input SubagentStart2533 Input di SubagentStart

2526</h4>2534</h4>

2527 2535 

2528Oltre ai [campi di input comuni](#common-input-fields), gli hook SubagentStart ricevono `agent_id` con l'identificatore univoco per il subagente e `agent_type` con il nome dell'agente su cui il matcher filtra.2536Oltre ai [campi di input comuni](#common-input-fields), gli hook SubagentStart ricevono `agent_id` con l'identificatore univoco del subagent e `agent_type` con il nome dell'agente su cui filtra il matcher.

2529 2537 

2530```json theme={null}2538```json theme={null}

2531{2539{


2538}2546}

2539```2547```

2540 2548 

2541Gli hook SubagentStart non possono bloccare la creazione del subagente, ma possono iniettare contesto nel subagente. Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, puoi restituire:2549Gli hook SubagentStart non possono bloccare la creazione del subagent, ma possono iniettare contesto nel subagent. Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, puoi restituire:

2542 2550 

2543| Campo | Descrizione |2551| Campo | Descrizione |

2544| :- | :- |2552| :- | :- |

2545| `additionalContext` | Stringa aggiunta al contesto del subagente all'inizio della sua conversazione, prima del suo primo prompt. Vedi [Aggiungi contesto per Claude](#add-context-for-claude) |2553| `additionalContext` | Stringa aggiunta al contesto del subagent all'inizio della sua conversazione, prima del suo primo prompt. Consulta [Aggiungere contesto per Claude](#add-context-for-claude) |

2546 2554 

2547```json theme={null}2555```json theme={null}

2548{2556{


2553}2561}

2554```2562```

2555 2563 

2556Quando l'hook si esegue di nuovo per lo stesso subagente, Claude Code inietta il contesto restituito solo quando il contesto del subagente non contiene già la copia da un'esecuzione precedente. La copia iniettata al lancio rimane al suo posto, lasciando la [cache del prompt](/docs/it/prompt-caching#subagents-and-the-cache) del subagente intatta. Dopo che la [compattazione automatica](/docs/it/sub-agents#auto-compaction) scarta quella copia, Claude Code inietta il contesto dell'esecuzione successiva di nuovo.2564Quando l'hook viene eseguito di nuovo per lo stesso subagent, Claude Code inietta il contesto restituito solo se il contesto del subagent non contiene già la copia di un'esecuzione precedente. La copia iniettata all'avvio rimane al suo posto, lasciando intatta la [cache del prompt](/docs/it/prompt-caching#subagents-and-the-cache) del subagent. Dopo che la [compattazione automatica](/docs/it/sub-agents#auto-compaction) scarta quella copia, Claude Code inietta di nuovo il contesto dell'esecuzione successiva.

2557 2565 

2558<h3 id="subagentstop">2566<h3 id="subagentstop">

2559 SubagentStop2567 SubagentStop

2560</h3>2568</h3>

2561 2569 

2562Si esegue quando un subagente di Claude Code ha finito di rispondere. Corrisponde al tipo di agente, stessi valori di SubagentStart.2570Viene eseguito quando un subagent di Claude Code ha finito di rispondere. Fa corrispondere il tipo di agente, con gli stessi valori di SubagentStart.

2563 2571 

2564<h4 id="subagentstop-input">2572<h4 id="subagentstop-input">

2565 Input SubagentStop2573 Input di SubagentStop

2566</h4>2574</h4>

2567 2575 

2568Oltre ai [campi di input comuni](#common-input-fields), gli hook SubagentStop ricevono `stop_hook_active`, `agent_id`, `agent_type`, `agent_transcript_path`, e `last_assistant_message`. Il campo `agent_type` è il valore usato per il filtraggio del matcher. Il `transcript_path` è la trascrizione della sessione principale, mentre `agent_transcript_path` è la trascrizione propria del subagente archiviata in una cartella `subagents/` annidato. Il campo `last_assistant_message` contiene il contenuto di testo della risposta finale del subagente, quindi gli hook possono accedervi senza analizzare il file di trascrizione.2576Oltre ai [campi di input comuni](#common-input-fields), gli hook SubagentStop ricevono `stop_hook_active`, `agent_id`, `agent_type`, `agent_transcript_path` e `last_assistant_message`. Il campo `agent_type` è il valore usato per il filtro del matcher. `transcript_path` è la trascrizione della sessione principale, mentre `agent_transcript_path` è la trascrizione del subagent stesso, archiviata in una cartella annidata `subagents/`. Il campo `last_assistant_message` contiene il contenuto testuale della risposta finale del subagent, quindi gli hook possono accedervi senza analizzare il file della trascrizione.

2569 2577 

2570Non ogni evento SubagentStop viene da un subagente che Claude ha generato. Claude Code esegue anche agenti interni per alcune delle sue stesse funzionalità, come i [suggerimenti di prompt](/docs/it/interactive-mode#prompt-suggestions) e le [domande laterali `/btw`](/docs/it/interactive-mode#side-questions-with-%2Fbtw), e SubagentStop si esegue quando uno di quelli finisce anche. Per quegli eventi, `agent_type` è il nome dell'agente che la sessione stessa esegue, come uno impostato con [`--agent`](/docs/it/cli-reference#cli-flags) o l'impostazione [`agent`](/docs/it/settings-reference#agent), e una stringa vuota quando la sessione si esegue senza uno.2578Non tutti gli eventi SubagentStop provengono da un subagent generato da Claude. Claude Code esegue anche agenti interni per alcune delle sue funzionalità, come i [suggerimenti di prompt](/docs/it/interactive-mode#prompt-suggestions) e le [domande laterali con `/btw`](/docs/it/interactive-mode#side-questions-with-%2Fbtw), e SubagentStop si attiva anche quando uno di questi termina. Per questi eventi, `agent_type` è il nome dell'agente con cui viene eseguita la sessione stessa, ad esempio quello impostato con [`--agent`](/docs/it/cli-reference#cli-flags) o con l'[impostazione `agent`](/docs/it/settings-reference#agent), e una stringa vuota quando la sessione viene eseguita senza.

2571 2579 

2572Un `matcher` che nomina i tipi di agente non corrisponde a un `agent_type` vuoto. Un hook il cui matcher è omesso, `""`, o `"*"`, o è un'espressione regolare che corrisponde a una stringa vuota, si esegue per gli eventi con un `agent_type` vuoto anche.2580Un `matcher` che nomina tipi di agente non corrisponde a un `agent_type` vuoto. Un hook il cui matcher è omesso, `""` o `"*"`, oppure è un'espressione regolare che corrisponde a una stringa vuota, viene eseguito anche per gli eventi con un `agent_type` vuoto.

2573 2581 

2574Su Claude Code v2.1.271 o successivo, un subagente che si esegue con lo strumento [`SubagentHandback`](/docs/it/tools-reference) consegna il suo rapporto attraverso quello strumento prima che si fermi. Il campo `last_assistant_message` contiene il testo di chiusura del subagente, se presente, che non è il rapporto consegnato. Il rapporto è l'input `message` di quella chiamata, che un hook `PreToolUse` o `PostToolUse` che corrisponde a `SubagentHandback` riceve come `tool_input.message`.2582Su Claude Code v2.1.271 o successiva, un subagent che viene eseguito con lo strumento [`SubagentHandback`](/docs/it/tools-reference) consegna il proprio resoconto tramite quello strumento prima di fermarsi. Il campo `last_assistant_message` contiene quindi l'eventuale testo conclusivo del subagent, che non è il resoconto consegnato. Il resoconto è l'input `message` di quella chiamata, che un hook `PreToolUse` o `PostToolUse` con matcher su `SubagentHandback` riceve come `tool_input.message`.

2575 2583 

2576Gli hook SubagentStop ricevono anche gli array `background_tasks` e `session_crons` descritti sotto [Input Stop](#stop-input). Entrambi gli array sono limitati alla sessione genitore, non al subagente.2584Gli hook SubagentStop ricevono anche gli array `background_tasks` e `session_crons` descritti in [Input di Stop](#stop-input). Entrambi gli array hanno come ambito la sessione padre, non il subagent.

2577 2585 

2578```json theme={null}2586```json theme={null}

2579{2587{


2592}2600}

2593```2601```

2594 2602 

2595Gli hook SubagentStop usano lo stesso formato di controllo decisionale degli [hook Stop](#stop-decision-control), incluso `hookSpecificOutput.additionalContext` con `hookEventName` impostato su `"SubagentStop"`, per il feedback non di errore che mantiene il subagente in esecuzione. Restituire `decision: "block"` con un `reason` mantiene il subagente in esecuzione e consegna `reason` al subagente come sua istruzione successiva. Un hook che blocca uscendo con 2 consegna il suo messaggio stderr allo stesso modo. Per iniettare contesto nella sessione genitore dopo che un subagente ritorna, usa un hook [`PostToolUse`](#posttooluse) sullo strumento `Agent` invece.2603Gli hook SubagentStop usano lo stesso formato di controllo delle decisioni degli [hook Stop](#stop-decision-control), incluso `hookSpecificOutput.additionalContext` con `hookEventName` impostato su `"SubagentStop"`, per un feedback non di errore che mantiene il subagent in esecuzione. Restituire `decision: "block"` con un `reason` mantiene il subagent in esecuzione e consegna `reason` al subagent come sua istruzione successiva. Un hook che blocca uscendo con codice 2 consegna il proprio messaggio stderr allo stesso modo. Per iniettare contesto nella sessione padre dopo che un subagent ha restituito il risultato, usa invece un hook [`PostToolUse`](#posttooluse) sullo strumento `Agent`.

2596 2604 

2597<h3 id="taskcreated">2605<h3 id="taskcreated">

2598 TaskCreated2606 TaskCreated

2599</h3>2607</h3>

2600 2608 

2601Si esegue quando un'attività viene creata tramite lo strumento `TaskCreate`. Usalo per applicare convenzioni di denominazione, richiedere descrizioni di attività, o prevenire la creazione di determinate attività. In una [sessione senza gli strumenti Task](/docs/it/tools-reference#task-tool-availability), questo evento non si esegue.2609Viene eseguito quando un task viene creato tramite lo strumento `TaskCreate`. Usalo per imporre convenzioni di denominazione, richiedere descrizioni dei task o impedire la creazione di determinati task. In una [sessione senza gli strumenti Task](/docs/it/tools-reference#task-tool-availability), questo evento non si attiva.

2602 2610 

2603Gli hook TaskCreated non supportano i matcher e si eseguono su ogni occorrenza.2611Gli hook TaskCreated non supportano i matcher e si attivano a ogni occorrenza.

2604 2612 

2605<h4 id="taskcreated-input">2613<h4 id="taskcreated-input">

2606 Input TaskCreated2614 Input di TaskCreated

2607</h4>2615</h4>

2608 2616 

2609Oltre ai [campi di input comuni](#common-input-fields), gli hook TaskCreated ricevono `task_id`, `task_subject`, e facoltativamente `task_description`, `teammate_name`, e `team_name`.2617Oltre ai [campi di input comuni](#common-input-fields), gli hook TaskCreated ricevono `task_id`, `task_subject` e, facoltativamente, `task_description`, `teammate_name` e `team_name`.

2610 2618 

2611```json theme={null}2619```json theme={null}

2612{2620{


2624 2632 

2625| Campo | Descrizione |2633| Campo | Descrizione |

2626| :- | :- |2634| :- | :- |

2627| `task_id` | Identificatore dell'attività in fase di creazione |2635| `task_id` | Identificatore del task in fase di creazione |

2628| `task_subject` | Titolo dell'attività |2636| `task_subject` | Titolo del task |

2629| `task_description` | Descrizione dettagliata dell'attività. Può essere assente |2637| `task_description` | Descrizione dettagliata del task. Può essere assente |

2630| `teammate_name` | Nome del compagno di squadra che crea l'attività. Può essere assente |2638| `teammate_name` | Nome del compagno di team che crea il task. Può essere assente |

2631| `team_name` | Deprecato. Nome del team derivato dalla sessione; verrà rimosso in una versione futura |2639| `team_name` | Deprecato. Nome del team derivato dalla sessione; verrà rimosso in una versione futura |

2632 2640 

2633<h4 id="taskcreated-decision-control">2641<h4 id="taskcreated-decision-control">

2634 Controllo decisionale TaskCreated2642 Controllo delle decisioni di TaskCreated

2635</h4>2643</h4>

2636 2644 

2637Un hook TaskCreated può bloccare la creazione in due modi. In entrambi i casi, Claude Code elimina l'attività e restituisce il tuo messaggio a Claude come errore dello strumento. Claude Code ignora `continue: false` da questo evento e Claude continua a lavorare.2645Un hook TaskCreated può bloccare la creazione in due modi. In entrambi i casi, Claude Code elimina il task e restituisce il tuo messaggio a Claude come errore dello strumento. Claude Code ignora `continue: false` da questo evento e Claude continua a lavorare.

2638 2646 

2639* **Codice di uscita 2**: Claude Code restituisce il testo stderr come messaggio.2647* **Codice di uscita 2**: Claude Code restituisce il testo di stderr come messaggio.

2640* **JSON `{"decision": "block", "reason": "..."}`**: Claude Code restituisce `reason` come messaggio.2648* **JSON `{"decision": "block", "reason": "..."}`**: Claude Code restituisce `reason` come messaggio.

2641 2649 

2642Questo esempio blocca le attività i cui soggetti non seguono il formato richiesto:2650Questo esempio blocca i task i cui oggetti non seguono il formato richiesto:

2643 2651 

2644```bash theme={null}2652```bash theme={null}

2645#!/bin/bash2653#!/bin/bash


2658 TaskCompleted2666 TaskCompleted

2659</h3>2667</h3>

2660 2668 

2661Si esegue quando un'attività viene contrassegnata come completata. Questo si esegue in due situazioni: quando qualsiasi agente contrassegna esplicitamente un'attività come completata tramite lo strumento TaskUpdate, o quando un compagno di squadra dell'[agente team](/docs/it/agent-teams) finisce il suo turno con attività in corso. Usalo per applicare criteri di completamento come il passaggio dei test o dei controlli lint prima che un'attività possa chiudersi.2669Viene eseguito quando un task viene contrassegnato come completato. Si attiva in due situazioni: quando un qualsiasi agente contrassegna esplicitamente un task come completato tramite lo strumento TaskUpdate, o quando un compagno di un [team di agenti](/docs/it/agent-teams) termina il proprio turno con task in corso. Usalo per imporre criteri di completamento, come il superamento dei test o dei controlli di lint, prima che un task possa essere chiuso.

2662 2670 

2663Gli hook TaskCompleted non supportano i matcher e si eseguono su ogni occorrenza.2671Gli hook TaskCompleted non supportano i matcher e si attivano a ogni occorrenza.

2664 2672 

2665<h4 id="taskcompleted-input">2673<h4 id="taskcompleted-input">

2666 Input TaskCompleted2674 Input di TaskCompleted

2667</h4>2675</h4>

2668 2676 

2669Oltre ai [campi di input comuni](#common-input-fields), gli hook TaskCompleted ricevono `task_id`, `task_subject`, e facoltativamente `task_description`, `teammate_name`, e `team_name`.2677Oltre ai [campi di input comuni](#common-input-fields), gli hook TaskCompleted ricevono `task_id`, `task_subject` e, facoltativamente, `task_description`, `teammate_name` e `team_name`.

2670 2678 

2671```json theme={null}2679```json theme={null}

2672{2680{


2685 2693 

2686| Campo | Descrizione |2694| Campo | Descrizione |

2687| :- | :- |2695| :- | :- |

2688| `task_id` | Identificatore dell'attività in fase di completamento |2696| `task_id` | Identificatore del task in fase di completamento |

2689| `task_subject` | Titolo dell'attività |2697| `task_subject` | Titolo del task |

2690| `task_description` | Descrizione dettagliata dell'attività. Può essere assente |2698| `task_description` | Descrizione dettagliata del task. Può essere assente |

2691| `teammate_name` | Nome del compagno di squadra che completa l'attività. Può essere assente |2699| `teammate_name` | Nome del compagno di team che completa il task. Può essere assente |

2692| `team_name` | Deprecato. Nome del team derivato dalla sessione; verrà rimosso in una versione futura |2700| `team_name` | Deprecato. Nome del team derivato dalla sessione; verrà rimosso in una versione futura |

2693 2701 

2694<h4 id="taskcompleted-decision-control">2702<h4 id="taskcompleted-decision-control">

2695 Controllo decisionale TaskCompleted2703 Controllo delle decisioni di TaskCompleted

2696</h4>2704</h4>

2697 2705 

2698Gli hook TaskCompleted supportano due modi per controllare il completamento dell'attività:2706Gli hook TaskCompleted supportano due modi per controllare il completamento dei task:

2699 2707 

2700* **Codice di uscita 2**: l'attività non viene contrassegnata come completata e il messaggio stderr viene restituito al modello come feedback.2708* **Codice di uscita 2**: il task non viene contrassegnato come completato e il messaggio stderr viene restituito al modello come feedback.

2701* **JSON `{"continue": false, "stopReason": "..."}`**: quando un compagno di squadra che finisce il suo turno ha attivato l'evento, ferma completamente il compagno di squadra, corrispondendo al comportamento dell'hook `Stop`. Il `stopReason` viene mostrato all'utente. Quando lo strumento `TaskUpdate` ha attivato l'evento, Claude Code ignora `continue: false`; il codice di uscita 2 blocca comunque il completamento.2709* **JSON `{"continue": false, "stopReason": "..."}`**: quando l'evento è stato attivato da un compagno di team che termina il proprio turno, ferma completamente il compagno di team, in modo analogo al comportamento dell'hook `Stop`. Lo `stopReason` viene mostrato all'utente. Quando l'evento è stato attivato dallo strumento `TaskUpdate`, Claude Code ignora `continue: false`; il codice di uscita 2 blocca comunque il completamento.

2702 2710 

2703Questo esempio esegue i test e blocca il completamento dell'attività se falliscono:2711Questo esempio esegue i test e blocca il completamento del task se falliscono:

2704 2712 

2705```bash theme={null}2713```bash theme={null}

2706#!/bin/bash2714#!/bin/bash


2720 Stop2728 Stop

2721</h3>2729</h3>

2722 2730 

2723Si esegue quando l'agente Claude Code principale ha finito di rispondere. Non si esegue se l'arresto è av venuto a causa di un'interruzione dell'utente. Gli errori API eseguono [StopFailure](#stopfailure) invece.2731Viene eseguito quando l'agente principale di Claude Code ha finito di rispondere. Non viene eseguito se

2732l'arresto è avvenuto a causa di un'interruzione da parte dell'utente. Gli errori API attivano

2733invece [StopFailure](#stopfailure).

2724 2734 

2725<Tip>2735<Tip>

2726 Il comando [`/goal`](/docs/it/goal) è un collegamento incorporato per un hook Stop con ambito di sessione basato su prompt. Usalo quando vuoi che Claude continui a lavorare verso una condizione senza scrivere la configurazione dell'hook.2736 Il comando [`/goal`](/docs/it/goal) è una scorciatoia integrata per un hook Stop basato su prompt con ambito di sessione. Usalo quando vuoi che Claude continui a lavorare verso una condizione senza scrivere la configurazione dell'hook.

2727</Tip>2737</Tip>

2728 2738 

2729<h4 id="stop-input">2739<h4 id="stop-input">

2730 Input Stop2740 Input di Stop

2731</h4>2741</h4>

2732 2742 

2733Oltre ai [campi di input comuni](#common-input-fields), gli hook Stop ricevono `stop_hook_active`, `last_assistant_message`, `background_tasks`, e `session_crons`. Il campo `stop_hook_active` è `true` quando Claude Code sta già continuando come risultato di un hook stop. Controlla questo valore o elabora la trascrizione per evitare di bloccarsi su una condizione che non si risolverà mai. Claude Code applica un limite di 8 continuazioni consecutive: dopo che gli hook stop hanno continuato il turno otto volte di fila, Claude Code sovrascrive il blocco successivo e termina il turno. Per aumentare il limite, imposta [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/it/env-vars).2743Oltre ai [campi di input comuni](#common-input-fields), gli hook Stop ricevono `stop_hook_active`, `last_assistant_message`, `background_tasks` e `session_crons`. Il campo `stop_hook_active` è `true` quando Claude Code sta già proseguendo a seguito di uno stop hook. Controlla questo valore o elabora la trascrizione per evitare di bloccare su una condizione che non si risolverà mai. Claude Code applica un limite di 8 prosecuzioni consecutive: dopo che gli stop hook hanno fatto proseguire il turno otto volte di fila, Claude Code sovrascrive il blocco successivo e termina il turno. Per aumentare il limite, imposta [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/it/env-vars).

2734 2744 

2735Il campo `last_assistant_message` contiene il contenuto di testo della risposta finale di Claude, quindi gli hook possono accedervi senza analizzare il file di trascrizione. Per gli hook che agiscono sul turno appena completato, come gli hook di lettura ad alta voce o notifica, usa questo campo piuttosto che leggere `transcript_path`: il file di trascrizione non è garantito di includere il messaggio finale al momento di Stop su tutte le versioni.2745Il campo `last_assistant_message` contiene il contenuto testuale della risposta finale di Claude, quindi gli hook possono accedervi senza analizzare il file della trascrizione. Per gli hook che agiscono sul turno appena completato, come gli hook di lettura ad alta voce o di notifica, usa questo campo anziché leggere `transcript_path`: non è garantito che il file della trascrizione includa il messaggio finale al momento di Stop in tutte le versioni.

2736 2746 

2737Gli array `background_tasks` e `session_crons` consentono agli hook di distinguere "la sessione è finita" da "la sessione è in pausa in attesa che il lavoro di background la risvegli di nuovo". Entrambi gli array sono presenti quando il registro delle attività è raggiungibile e sono vuoti quando nulla è in volo o programmato.2747Gli array `background_tasks` e `session_crons` consentono agli hook di distinguere tra "la sessione è terminata" e "la sessione è in pausa in attesa che un lavoro in background la riattivi". Entrambi gli array sono presenti quando il registro dei task è raggiungibile e sono vuoti quando non c'è nulla in corso o pianificato.

2738 2748 

2739Ogni voce in `background_tasks` descrive un'attività in volo e usa questi campi:2749Ogni voce in `background_tasks` descrive un task in corso e usa questi campi:

2740 2750 

2741| Campo | Descrizione |2751| Campo | Descrizione |

2742| :- | :- |2752| :- | :- |

2743| `id` | Identificatore dell'attività |2753| `id` | Identificatore del task |

2744| `type` | Etichetta del tipo di attività amichevole come `shell`, `subagent`, `monitor`, `workflow`, `teammate`, `cloud session`, o `MCP task`. Ogni etichetta identifica quale funzionalità di Claude Code ha creato l'attività. Ritorna al discriminante grezzo per i tipi non riconosciuti |2754| `type` | Etichetta descrittiva del tipo di task, come `shell`, `subagent`, `monitor`, `workflow`, `teammate`, `cloud session` o `MCP task`. Ogni etichetta identifica quale funzionalità di Claude Code ha creato il task. Per i tipi non riconosciuti ricade sul discriminante grezzo |

2745| `status` | Stato dell'attività corrente |2755| `status` | Stato attuale del task |

2746| `description` | Descrizione in testo libero, limitata a 1000 caratteri con un marcatore `… [+N chars]` in-stringa quando ritagliato |2756| `description` | Descrizione in testo libero, limitata a 1000 caratteri con un indicatore `… [+N chars]` all'interno della stringa quando viene troncata |

2747| `command` | Riga di comando shell, limitata a 1000 caratteri. Presente solo per le attività `shell` |2757| `command` | Riga di comando della shell, limitata a 1000 caratteri. Presente solo per i task `shell` |

2748| `agent_type` | Nome del tipo di subagente. Presente solo per le attività `subagent` |2758| `agent_type` | Nome del tipo di subagent. Presente solo per i task `subagent` |

2749| `server` | Nome del server MCP. Presente solo per le attività `monitor` e `MCP task` |2759| `server` | Nome del server MCP. Presente solo per i task `monitor` e `MCP task` |

2750| `tool` | Nome dello strumento MCP. Presente solo per le attività `monitor` e `MCP task` |2760| `tool` | Nome dello strumento MCP. Presente solo per i task `monitor` e `MCP task` |

2751| `name` | Nome del workflow. Presente solo per le attività `workflow` |2761| `name` | Nome del workflow. Presente solo per i task `workflow` |

2752 2762 

2753Ogni voce in `session_crons` descrive un risveglio programmato con ambito di sessione, proveniente da `CronCreate`, `ScheduleWakeup`, e `/loop`:2763Ogni voce in `session_crons` descrive una riattivazione pianificata con ambito di sessione, proveniente da `CronCreate`, `ScheduleWakeup` e `/loop`:

2754 2764 

2755| Campo | Descrizione |2765| Campo | Descrizione |

2756| :- | :- |2766| :- | :- |

2757| `id` | Identificatore dell'attività cron |2767| `id` | Identificatore del task cron |

2758| `schedule` | Espressione cron, ad esempio `0 9 * * 1-5` |2768| `schedule` | Espressione cron, ad esempio `0 9 * * 1-5` |

2759| `recurring` | `false` per i risvegli una tantum il cui programma codifica un singolo tempo di attivazione, `true` per le attività che si riattivano su ogni corrispondenza |2769| `recurring` | `false` per le riattivazioni una tantum la cui pianificazione codifica un unico orario di attivazione, `true` per i task che si riattivano a ogni corrispondenza |

2760| `prompt` | Prompt inviato quando il cron si attiva, limitato a 1000 caratteri con lo stesso marcatore `… [+N chars]` |2770| `prompt` | Prompt inviato quando il cron si attiva, limitato a 1000 caratteri con lo stesso indicatore `… [+N chars]` |

2761 2771 

2762Questo esempio mostra un input Stop con un'attività shell in volo e un cron ricorrente:2772Questo esempio mostra un input di Stop con un task shell in corso e un cron ricorrente:

2763 2773 

2764```json theme={null}2774```json theme={null}

2765{2775{


2791```2801```

2792 2802 

2793<h4 id="stop-decision-control">2803<h4 id="stop-decision-control">

2794 Controllo decisionale Stop2804 Controllo delle decisioni di Stop

2795</h4>2805</h4>

2796 2806 

2797Gli hook `Stop` e `SubagentStop` possono controllare se Claude continua. Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, il tuo script hook può restituire questi campi specifici dell'evento:2807Gli hook `Stop` e `SubagentStop` possono controllare se Claude prosegue. Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, lo script del tuo hook può restituire questi campi specifici dell'evento:

2798 2808 

2799| Campo | Descrizione |2809| Campo | Descrizione |

2800| :- | :- |2810| :- | :- |

2801| `decision` | `"block"` impedisce a Claude di fermarsi. Ometti per consentire a Claude di fermarsi |2811| `decision` | `"block"` impedisce a Claude di fermarsi. Omettilo per consentire a Claude di fermarsi |

2802| `reason` | Richiesto quando `decision` è `"block"`. Dice a Claude perché dovrebbe continuare |2812| `reason` | Obbligatorio quando `decision` è `"block"`. Indica a Claude perché deve proseguire |

2803| `hookSpecificOutput.additionalContext` | Feedback non di errore per Claude. La conversazione continua in modo che Claude possa agire su di esso, ma a differenza di `decision: "block"` viene mostrato nella trascrizione come feedback dell'hook piuttosto che un errore dell'hook |2813| `hookSpecificOutput.additionalContext` | Feedback non di errore per Claude. La conversazione prosegue affinché Claude possa agire di conseguenza, ma a differenza di `decision: "block"` viene mostrato nella trascrizione come feedback dell'hook anziché come errore dell'hook |

2804 2814 

2805Un hook che blocca uscendo con 2 si instrada allo stesso modo di `reason`: Claude riceve il messaggio stderr come la spiegazione del perché dovrebbe continuare.2815Un hook che blocca uscendo con codice 2 viene instradato allo stesso modo di `reason`: Claude riceve il messaggio stderr come spiegazione del motivo per cui deve proseguire.

2806 2816 

2807```json theme={null}2817```json theme={null}

2808{2818{


2811}2821}

2812```2822```

2813 2823 

2814Usa `additionalContext` quando l'hook funziona come progettato e dà a Claude una guida, come "esegui la suite di test prima di finire". Mantiene la conversazione attraverso gli stessi loop protections di `decision: "block"`, vale a dire l'input `stop_hook_active` e il limite di 8 continuazioni consecutive, ma la trascrizione lo etichetta come `Stop hook feedback` e nessuna notifica di errore dell'hook viene mostrata:2824Usa `additionalContext` quando l'hook funziona come previsto e fornisce indicazioni a Claude, come "esegui la suite di test prima di terminare". Mantiene attiva la conversazione attraverso le stesse protezioni dai cicli di `decision: "block"`, ovvero l'input `stop_hook_active` e il limite di 8 prosecuzioni consecutive, ma la trascrizione lo etichetta come `Stop hook feedback` e non viene mostrata alcuna notifica di errore dell'hook:

2815 2825 

2816```json theme={null}2826```json theme={null}

2817{2827{


2826 StopFailure2836 StopFailure

2827</h3>2837</h3>

2828 2838 

2829Si esegue invece di [Stop](#stop) quando il turno termina a causa di un errore API. Claude Code ignora l'output e il codice di uscita dell'hook, a parte [`terminalSequence`](#emit-terminal-notifications). Usalo per registrare i fallimenti, inviare avvisi, o intraprendere azioni di recupero quando Claude non può completare una risposta a causa di limiti di velocità, problemi di autenticazione, o altri errori API.2839Viene eseguito al posto di [Stop](#stop) quando il turno termina a causa di un errore API. Claude Code ignora l'output e il codice di uscita dell'hook, a parte [`terminalSequence`](#emit-terminal-notifications). Usalo per registrare i fallimenti, inviare avvisi o intraprendere azioni di ripristino quando Claude non riesce a completare una risposta a causa di rate limit, problemi di autenticazione o altri errori API.

2830 2840 

2831<h4 id="stopfailure-input">2841<h4 id="stopfailure-input">

2832 Input StopFailure2842 Input di StopFailure

2833</h4>2843</h4>

2834 2844 

2835Oltre ai [campi di input comuni](#common-input-fields), gli hook StopFailure ricevono `error`, `error_details` facoltativo, e `last_assistant_message` facoltativo. Il campo `error` identifica il tipo di errore ed è usato per il filtraggio del matcher.2845Oltre ai [campi di input comuni](#common-input-fields), gli hook StopFailure ricevono `error`, `error_details` facoltativo e `last_assistant_message` facoltativo. Il campo `error` identifica il tipo di errore ed è usato per il filtro del matcher.

2836 2846 

2837| Campo | Descrizione |2847| Campo | Descrizione |

2838| :- | :- |2848| :- | :- |

2839| `error` | Tipo di errore: `rate_limit`, `overloaded`, `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `cloud_credential_error`, o `unknown` |2849| `error` | Tipo di errore: `rate_limit`, `overloaded`, `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `cloud_credential_error` o `unknown` |

2840| `error_details` | Dettagli aggiuntivi sull'errore, quando disponibili |2850| `error_details` | Dettagli aggiuntivi sull'errore, quando disponibili |

2841| `last_assistant_message` | Il testo di errore renderizzato mostrato nella conversazione. A differenza di `Stop` e `SubagentStop`, dove questo campo contiene l'output conversazionale di Claude, per `StopFailure` contiene la stringa di errore API stessa, come `"API Error: Rate limit reached"` |2851| `last_assistant_message` | Il testo dell'errore visualizzato nella conversazione. A differenza di `Stop` e `SubagentStop`, dove questo campo contiene l'output conversazionale di Claude, per `StopFailure` contiene la stringa dell'errore API stessa, come `"API Error: Rate limit reached"` |

2842 2852 

2843```json theme={null}2853```json theme={null}

2844{2854{


2852}2862}

2853```2863```

2854 2864 

2855Gli hook StopFailure non hanno controllo decisionale. Si eseguono solo per scopi di notifica e logging.2865Gli hook StopFailure non hanno controllo delle decisioni. Vengono eseguiti solo a scopo di notifica e di log.

2856 2866 

2857<h3 id="teammateidle">2867<h3 id="teammateidle">

2858 TeammateIdle2868 TeammateIdle

2859</h3>2869</h3>

2860 2870 

2861Si esegue quando un compagno di squadra dell'[agente team](/docs/it/agent-teams) sta per andare inattivo dopo aver finito il suo turno. Usalo per applicare gate di qualità prima che un compagno di squadra smetta di lavorare, come richiedere il passaggio dei controlli lint o verificare che i file di output esistano.2871Viene eseguito quando un compagno di un [team di agenti](/docs/it/agent-teams) sta per diventare inattivo dopo aver terminato il proprio turno. Usalo per imporre controlli di qualità prima che un compagno di team smetta di lavorare, ad esempio richiedendo il superamento dei controlli di lint o verificando che i file di output esistano.

2862 2872 

2863Gli hook TeammateIdle non supportano i matcher e si eseguono su ogni occorrenza.2873Gli hook TeammateIdle non supportano i matcher e si attivano a ogni occorrenza.

2864 2874 

2865<h4 id="teammateidle-input">2875<h4 id="teammateidle-input">

2866 Input TeammateIdle2876 Input di TeammateIdle

2867</h4>2877</h4>

2868 2878 

2869Oltre ai [campi di input comuni](#common-input-fields), gli hook TeammateIdle ricevono `teammate_name` e `team_name`.2879Oltre ai [campi di input comuni](#common-input-fields), gli hook TeammateIdle ricevono `teammate_name` e `team_name`.


2882 2892 

2883| Campo | Descrizione |2893| Campo | Descrizione |

2884| :- | :- |2894| :- | :- |

2885| `teammate_name` | Nome del compagno di squadra che sta per andare inattivo |2895| `teammate_name` | Nome del compagno di team che sta per diventare inattivo |

2886| `team_name` | Deprecato. Nome del team derivato dalla sessione; verrà rimosso in una versione futura |2896| `team_name` | Deprecato. Nome del team derivato dalla sessione; verrà rimosso in una versione futura |

2887 2897 

2888<h4 id="teammateidle-decision-control">2898<h4 id="teammateidle-decision-control">

2889 Controllo decisionale TeammateIdle2899 Controllo delle decisioni di TeammateIdle

2890</h4>2900</h4>

2891 2901 

2892Gli hook TeammateIdle supportano due modi per controllare il comportamento del compagno di squadra:2902Gli hook TeammateIdle supportano due modi per controllare il comportamento dei compagni di team:

2893 2903 

2894* **Codice di uscita 2**: il compagno di squadra riceve il messaggio stderr come feedback e continua a lavorare invece di andare inattivo.2904* **Codice di uscita 2**: il compagno di team riceve il messaggio stderr come feedback e continua a lavorare invece di diventare inattivo.

2895* **JSON `{"continue": false, "stopReason": "..."}`**: ferma completamente il compagno di squadra, corrispondendo al comportamento dell'hook `Stop`. Il `stopReason` viene mostrato all'utente.2905* **JSON `{"continue": false, "stopReason": "..."}`**: ferma completamente il compagno di team, in modo analogo al comportamento dell'hook `Stop`. Lo `stopReason` viene mostrato all'utente.

2896 2906 

2897Questo esempio controlla che un artefatto di build esista prima di consentire a un compagno di squadra di andare inattivo:2907Questo esempio verifica che un artefatto di build esista prima di consentire a un compagno di team di diventare inattivo:

2898 2908 

2899```bash theme={null}2909```bash theme={null}

2900#!/bin/bash2910#!/bin/bash


2911 ConfigChange2921 ConfigChange

2912</h3>2922</h3>

2913 2923 

2914Si esegue quando un file di configurazione cambia durante una sessione. Usalo per controllare i cambiamenti delle impostazioni, applicare policy di sicurezza, o bloccare modifiche non autorizzate ai file di configurazione.2924Viene eseguito quando un file di configurazione cambia durante una sessione. Usalo per verificare le modifiche alle impostazioni, applicare criteri di sicurezza o bloccare modifiche non autorizzate ai file di configurazione.

2915 2925 

2916Claude Code esegue gli hook ConfigChange quando un file di impostazioni, un file di policy gestito, o un file di skill cambia. Per la policy gestita, li esegue solo quando `managed-settings.json` o un file in `managed-settings.d/` cambia. Applica le [impostazioni gestite dal server](/docs/it/server-managed-settings) e i cambiamenti alle preferenze gestite di macOS o alla policy del registro di Windows senza eseguirli. Su WSL con [`wslInheritsWindowsSettings`](/docs/it/settings-reference#wslinheritswindowssettings), applica anche un file di impostazioni gestite di Windows modificato sul suo sondaggio di policy senza eseguirli.2926Claude Code esegue gli hook ConfigChange quando cambia un file di impostazioni, un file di criteri gestiti o un file di skill. Per i criteri gestiti, li esegue solo quando cambia `managed-settings.json` o un file in `managed-settings.d/`. Applica le [impostazioni gestite dal server](/docs/it/server-managed-settings) e le modifiche alle preferenze gestite di macOS o ai criteri del registro di Windows senza eseguirli. Su WSL con [`wslInheritsWindowsSettings`](/docs/it/settings-reference#wslinheritswindowssettings), applica inoltre un file di impostazioni gestite lato Windows modificato durante il suo controllo periodico dei criteri senza eseguirli.

2917 2927 

2918Il matcher filtra sulla fonte di configurazione:2928Il matcher filtra in base all'origine della configurazione:

2919 2929 

2920| Matcher | Quando si attiva |2930| Matcher | Quando si attiva |

2921| :- | :- |2931| :- | :- |

2922| `user_settings` | `~/.claude/settings.json` cambia |2932| `user_settings` | Cambia `~/.claude/settings.json` |

2923| `project_settings` | `.claude/settings.json` cambia |2933| `project_settings` | Cambia `.claude/settings.json` |

2924| `local_settings` | `.claude/settings.local.json` cambia |2934| `local_settings` | Cambia `.claude/settings.local.json` |

2925| `policy_settings` | `managed-settings.json` o un file in `managed-settings.d/` cambia |2935| `policy_settings` | Cambia `managed-settings.json` o un file in `managed-settings.d/` |

2926| `skills` | Un file di skill in `.claude/skills/` cambia |2936| `skills` | Cambia un file di skill in `.claude/skills/` |

2927 2937 

2928Questo esempio registra tutti i cambiamenti di configurazione per il controllo di sicurezza:2938Questo esempio registra tutte le modifiche alla configurazione per la verifica della sicurezza:

2929 2939 

2930```json theme={null}2940```json theme={null}

2931{2941{


2946```2956```

2947 2957 

2948<h4 id="configchange-input">2958<h4 id="configchange-input">

2949 Input ConfigChange2959 Input di ConfigChange

2950</h4>2960</h4>

2951 2961 

2952Oltre ai [campi di input comuni](#common-input-fields), gli hook ConfigChange ricevono `source` e facoltativamente `file_path`. Il campo `source` indica quale tipo di configurazione è cambiato, e `file_path` fornisce il percorso al file specifico che è stato modificato.2962Oltre ai [campi di input comuni](#common-input-fields), gli hook ConfigChange ricevono `source` e, facoltativamente, `file_path`. Il campo `source` indica quale tipo di configurazione è cambiato e `file_path` fornisce il percorso del file specifico che è stato modificato.

2953 2963 

2954```json theme={null}2964```json theme={null}

2955{2965{


2963```2973```

2964 2974 

2965<h4 id="configchange-decision-control">2975<h4 id="configchange-decision-control">

2966 Controllo decisionale ConfigChange2976 Controllo delle decisioni di ConfigChange

2967</h4>2977</h4>

2968 2978 

2969Gli hook ConfigChange possono bloccare i cambiamenti di configurazione dal prendere effetto. Usa il codice di uscita 2 o un JSON `decision` per prevenire il cambio. Quando bloccato, le nuove impostazioni non vengono applicate alla sessione in esecuzione.2979Gli hook ConfigChange possono impedire che le modifiche alla configurazione abbiano effetto. Usa il codice di uscita 2 o una `decision` JSON per impedire la modifica. Quando viene bloccata, le nuove impostazioni non vengono applicate alla sessione in esecuzione.

2970 2980 

2971| Campo | Descrizione |2981| Campo | Descrizione |

2972| :- | :- |2982| :- | :- |

2973| `decision` | `"block"` impedisce l'applicazione del cambio di configurazione. Ometti per consentire il cambio |2983| `decision` | `"block"` impedisce che la modifica alla configurazione venga applicata. Omettilo per consentire la modifica |

2974| `reason` | Accettato ma mai mostrato |2984| `reason` | Accettato ma mai mostrato |

2975 2985 

2976```json theme={null}2986```json theme={null}


2980}2990}

2981```2991```

2982 2992 

2983I cambiamenti di `policy_settings` non possono essere bloccati. Gli hook si eseguono comunque per le fonti `policy_settings` quando un file di impostazioni gestite sulla macchina cambia, quindi puoi usarli per registrare quelle modifiche, ma qualsiasi decisione di blocco viene ignorata. Questo assicura che le impostazioni gestite dall'azienda abbiano sempre effetto. Claude Code non esegue gli hook `ConfigChange` quando le [impostazioni gestite dal server](/docs/it/server-managed-settings) arrivano o si aggiornano.2993Le modifiche `policy_settings` non possono essere bloccate. Gli hook si attivano comunque per le origini `policy_settings` quando cambia un file di impostazioni gestite sulla macchina, quindi puoi usarli per registrare tali modifiche, ma qualsiasi decisione di blocco viene ignorata. Questo garantisce che le impostazioni gestite dall'azienda abbiano sempre effetto. Claude Code non esegue gli hook `ConfigChange` quando le [impostazioni gestite dal server](/docs/it/server-managed-settings) arrivano o vengono aggiornate.

2984 2994 

2985Claude Code agisce sulla decisione di blocco dall'output JSON di un hook ConfigChange e scarta `systemMessage` e `continue`. Un cambio bloccato non mostra alcun messaggio a te o a Claude, indipendentemente dal fatto che blocchi con `reason` o con stderr all'uscita 2. Claude Code scrive solo una riga nel debug log.2995Claude Code agisce sulla decisione di blocco dall'output JSON di un hook ConfigChange e scarta `systemMessage` e `continue`. Una modifica bloccata non mostra alcun messaggio né a te né a Claude, sia che tu blocchi con `reason` sia con stderr con uscita 2. Claude Code scrive solo una riga nel log di debug.

2986 2996 

2987<h3 id="cwdchanged">2997<h3 id="cwdchanged">

2988 CwdChanged2998 CwdChanged

2989</h3>2999</h3>

2990 3000 

2991Si esegue quando un comando shell nella conversazione principale cambia la directory di lavoro, ad esempio quando Claude esegue un comando `cd`. Usalo per reagire ai cambiamenti di directory: ricaricare le variabili di ambiente, attivare toolchain specifiche del progetto, o eseguire script di configurazione automaticamente. Si accoppia con [FileChanged](#filechanged) per strumenti come [direnv](https://direnv.net/) che gestiscono l'ambiente per directory.3001Viene eseguito quando un comando della shell nella conversazione principale cambia la directory di lavoro, ad esempio quando Claude esegue un comando `cd`. Usalo per reagire ai cambi di directory: ricaricare le variabili d'ambiente, attivare toolchain specifiche del progetto o eseguire automaticamente script di configurazione. Si abbina a [FileChanged](#filechanged) per strumenti come [direnv](https://direnv.net/) che gestiscono l'ambiente per directory.

2992 3002 

2993Gli hook CwdChanged hanno accesso a [`CLAUDE_ENV_FILE`](#persist-environment-variables). Le variabili scritte in quel file persistono nei comandi Bash successivi finché il prossimo evento CwdChanged, quando Claude Code le cancella.3003Gli hook CwdChanged hanno accesso a [`CLAUDE_ENV_FILE`](#persist-environment-variables). Le variabili scritte in quel file persistono nei comandi Bash successivi fino al successivo evento CwdChanged, quando Claude Code le cancella.

2994 3004 

2995CwdChanged non supporta i matcher e si esegue su ogni occorrenza.3005CwdChanged non supporta i matcher e si attiva a ogni occorrenza.

2996 3006 

2997<h4 id="cwdchanged-input">3007<h4 id="cwdchanged-input">

2998 Input CwdChanged3008 Input di CwdChanged

2999</h4>3009</h4>

3000 3010 

3001Oltre ai [campi di input comuni](#common-input-fields), gli hook CwdChanged ricevono `old_cwd` e `new_cwd`.3011Oltre ai [campi di input comuni](#common-input-fields), gli hook CwdChanged ricevono `old_cwd` e `new_cwd`.


3012```3022```

3013 3023 

3014<h4 id="cwdchanged-output">3024<h4 id="cwdchanged-output">

3015 Output CwdChanged3025 Output di CwdChanged

3016</h4>3026</h4>

3017 3027 

3018Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, gli hook CwdChanged possono restituire `watchPaths` per impostare dinamicamente quali percorsi di file [FileChanged](#filechanged) osserva:3028Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, gli hook CwdChanged possono restituire `watchPaths` per impostare dinamicamente quali percorsi di file [FileChanged](#filechanged) monitora:

3019 3029 

3020| Campo | Descrizione |3030| Campo | Descrizione |

3021| :- | :- |3031| :- | :- |

3022| `watchPaths` | Array di percorsi assoluti. Sostituisce l'elenco di osservazione dinamico corrente. I percorsi dalla tua configurazione `matcher` vengono sempre osservati. Restituire un array vuoto cancella l'elenco dinamico, che è tipico quando si entra in una nuova directory |3032| `watchPaths` | Array di percorsi assoluti. Sostituisce l'attuale elenco dinamico di monitoraggio. I percorsi della configurazione del tuo `matcher` sono sempre monitorati. Restituire un array vuoto svuota l'elenco dinamico, cosa tipica quando si entra in una nuova directory |

3023 3033 

3024Gli hook CwdChanged non hanno controllo decisionale. Non possono bloccare il cambio di directory.3034Gli hook CwdChanged non hanno controllo delle decisioni. Non possono bloccare il cambio di directory.

3025 3035 

3026Claude Code legge `watchPaths` e `systemMessage` dal loro output JSON e scarta `continue`. Nelle sessioni interattive, mostra il `systemMessage` come una breve notifica di terminale. Il messaggio non raggiunge il flusso di messaggi dell'SDK.3036Claude Code legge `watchPaths` e `systemMessage` dal loro output JSON e scarta `continue`. Nelle sessioni interattive, mostra il `systemMessage` come breve notifica nel terminale. Il messaggio non raggiunge il flusso di messaggi dell'SDK.

3027 3037 

3028<h3 id="directoryadded">3038<h3 id="directoryadded">

3029 DirectoryAdded3039 DirectoryAdded

3030</h3>3040</h3>

3031 3041 

3032Si esegue dopo che aggiungi una directory di lavoro a metà sessione con il comando `/add-dir`, o dopo che un client SDK ne aggiunge una con la richiesta di controllo `register_repo_root`. Usalo per preparare un repository appena aggiunto, ad esempio installando le sue dipendenze.3042Viene eseguito dopo che aggiungi una directory di lavoro a sessione in corso con il comando `/add-dir`, o dopo che un client SDK ne aggiunge una con la richiesta di controllo `register_repo_root`. Usalo per preparare un repository appena aggiunto, ad esempio installandone le dipendenze.

3033 3043 

3034Claude Code non esegue questo evento quando:3044Claude Code non attiva questo evento quando:

3035 3045 

3036* Passi una directory con il flag di avvio `--add-dir`; [SessionStart](#sessionstart) copre quelle directory3046* Passi una directory con il flag di avvio `--add-dir`; [SessionStart](#sessionstart) copre quelle directory

3037* Aggiungi una directory sulla scheda Workspace `/permissions`3047* Aggiungi una directory nella scheda Workspace di `/permissions`

3038* Aggiungi una directory che è già una directory di lavoro o dentro una3048* Aggiungi una directory che è già una directory di lavoro o che si trova all'interno di una

3039 3049 

3040Claude Code esegue DirectoryAdded dopo aver aggiornato lo stato della sandbox e del permesso, quindi gli strumenti sandboxed vedono già la nuova directory quando il tuo hook si esegue. I comandi dell'hook stessi si eseguono non sandboxed.3050Claude Code attiva DirectoryAdded dopo aver aggiornato lo stato della sandbox e dei permessi, quindi gli strumenti in sandbox vedono già la nuova directory quando il tuo hook viene eseguito. I comandi degli hook stessi vengono eseguiti fuori dalla sandbox.

3041 3051 

3042Claude Code non attende l'hook: l'aggiunta completa immediatamente, e l'hook si esegue in background con il timeout predefinito di 600 secondi.3052Claude Code non attende l'hook: l'aggiunta viene completata immediatamente e l'hook viene eseguito in background con il timeout predefinito di 600 secondi.

3043 3053 

3044Il matcher filtra su come la directory è stata aggiunta:3054Il matcher filtra in base a come è stata aggiunta la directory:

3045 3055 

3046| Matcher | Quando si attiva |3056| Matcher | Quando si attiva |

3047| :- | :- |3057| :- | :- |


3049| `register_repo_root` | Un client SDK aggiunge una directory con la richiesta di controllo `register_repo_root` |3059| `register_repo_root` | Un client SDK aggiunge una directory con la richiesta di controllo `register_repo_root` |

3050 3060 

3051<h4 id="directoryadded-input">3061<h4 id="directoryadded-input">

3052 Input DirectoryAdded3062 Input di DirectoryAdded

3053</h4>3063</h4>

3054 3064 

3055Oltre ai [campi di input comuni](#common-input-fields), gli hook DirectoryAdded ricevono `directory` e `source`.3065Oltre ai [campi di input comuni](#common-input-fields), gli hook DirectoryAdded ricevono `directory` e `source`.

3056 3066 

3057| Campo | Descrizione |3067| Campo | Descrizione |

3058| :- | :- |3068| :- | :- |

3059| `directory` | Percorso assoluto della directory che è stata aggiunta |3069| `directory` | Percorso assoluto della directory aggiunta |

3060| `source` | Come la directory è stata aggiunta, `"slash_command"` per `/add-dir` o `"register_repo_root"` per la richiesta di controllo dell'SDK |3070| `source` | Come è stata aggiunta la directory, `"slash_command"` per `/add-dir` o `"register_repo_root"` per la richiesta di controllo dell'SDK |

3061 3071 

3062```json theme={null}3072```json theme={null}

3063{3073{


3070}3080}

3071```3081```

3072 3082 

3073Gli hook DirectoryAdded non hanno controllo decisionale. Non possono bloccare l'aggiunta, che si è già completata quando l'hook si esegue. Claude Code scarta il campo `continue` dal loro output JSON e visualizza il resto diversamente per fonte:3083Gli hook DirectoryAdded non hanno controllo delle decisioni. Non possono bloccare l'aggiunta, che è già stata completata quando l'hook viene eseguito. Claude Code scarta il campo `continue` dal loro output JSON e gestisce il resto in modo diverso in base all'origine:

3074 3084 

3075* `slash_command`: Claude Code consegna il `systemMessage` dell'hook a Claude come contesto sul turno di conversazione successivo, piuttosto che mostrartelo. Un conteggio degli hook falliti appare nella trascrizione. L'output di fallimento completo va nel debug log3085* `slash_command`: Claude Code consegna il `systemMessage` dell'hook a Claude come contesto nel turno successivo della conversazione, anziché mostrarlo a te. Nella trascrizione appare un conteggio degli hook falliti. L'output completo dei fallimenti va nel log di debug

3076* `register_repo_root`: Claude Code scrive l'output `systemMessage` e l'output di fallimento nel debug log solo3086* `register_repo_root`: Claude Code scrive l'output di `systemMessage` e l'output dei fallimenti solo nel log di debug

3077 3087 

3078<h3 id="filechanged">3088<h3 id="filechanged">

3079 FileChanged3089 FileChanged

3080</h3>3090</h3>

3081 3091 

3082Si esegue quando un file osservato cambia su disco. Claude Code rileva i cambiamenti con un osservatore del file system, non ispezionando le chiamate di strumento, quindi esegue l'hook indipendentemente da cosa ha cambiato il file: una chiamata di strumento `Edit` o `Write`, uno script che Claude esegue con `Bash`, o un processo al di fuori di Claude Code interamente. Un uso comune è ricaricare le variabili di ambiente quando i file di configurazione del progetto cambiano.3092Viene eseguito quando un file monitorato cambia su disco. Claude Code rileva le modifiche con un watcher del filesystem, non ispezionando le chiamate agli strumenti, quindi esegue l'hook indipendentemente da cosa abbia modificato il file: una chiamata allo strumento `Edit` o `Write`, uno script che Claude esegue con `Bash` o un processo completamente esterno a Claude Code. Un uso comune è ricaricare le variabili d'ambiente quando cambiano i file di configurazione del progetto.

3083 3093 

3084Il `matcher` per questo evento serve due ruoli:3094Il `matcher` per questo evento svolge due ruoli:

3085 3095 

3086* **Costruisci l'elenco di osservazione**: il valore viene diviso su `|` e ogni segmento viene registrato come un nome di file letterale nella directory di lavoro, quindi `".envrc|.env"` osserva esattamente quei due file. I modelli regex non sono utili qui: un valore come `^\.env` osserverebbe un file letteralmente denominato `^\.env`.3096* **Costruire l'elenco di monitoraggio**: il valore viene suddiviso su `|` e ogni segmento viene registrato come nome di file letterale nella directory di lavoro, quindi `".envrc|.env"` monitora esattamente quei due file. I pattern regex non sono utili qui: un valore come `^\.env` monitorerebbe un file chiamato letteralmente `^\.env`.

3087* **Filtra quali hook si eseguono**: quando un file osservato cambia, lo stesso valore filtra quali gruppi di hook si eseguono usando le [regole di matcher](#matcher-patterns) standard rispetto al basename del file modificato.3097* **Filtrare quali hook vengono eseguiti**: quando un file monitorato cambia, lo stesso valore filtra quali gruppi di hook vengono eseguiti usando le [regole standard dei matcher](#matcher-patterns) sul nome base del file modificato.

3088 3098 

3089Questo esempio normalizza le terminazioni di riga in `data.csv` dopo qualsiasi cambio, incluso un comando `Bash` o uno script esterno che riscrive il file:3099Questo esempio normalizza i caratteri di fine riga in `data.csv` dopo qualsiasi modifica, inclusa la riscrittura del file da parte di un comando `Bash` o di uno script esterno:

3090 3100 

3091```json theme={null}3101```json theme={null}

3092{3102{


3106}3116}

3107```3117```

3108 3118 

3109L'hook legge il percorso assoluto del file modificato dal campo `file_path` dell'[input JSON](#filechanged-input) su stdin. La sua guardia `grep` testa la stessa cosa che `perl` rimuove, un CR alla fine di una riga, quindi l'esecuzione dopo una normalizzazione esce senza toccare il file. Una guardia più sciolta si cicla per sempre, perché `perl -i` riscrive il file anche quando non sostituisce nulla e Claude Code esegue l'hook di nuovo dopo ogni riscrittura. Salva questo script in `/path/to/normalize-line-endings.sh` e rendilo eseguibile:3119L'hook legge il percorso assoluto del file modificato dal campo `file_path` dell'[input JSON](#filechanged-input) su stdin. Il suo controllo `grep` verifica la stessa cosa che `perl` rimuove, un CR alla fine di una riga, quindi l'esecuzione successiva a una normalizzazione termina senza toccare il file. Un controllo meno rigoroso genera un ciclo infinito, perché `perl -i` riscrive il file anche quando non sostituisce nulla e Claude Code esegue di nuovo l'hook dopo ogni riscrittura. Salva questo script in `/path/to/normalize-line-endings.sh` e rendilo eseguibile:

3110 3120 

3111```bash theme={null}3121```bash theme={null}

3112#!/bin/bash3122#!/bin/bash


3116fi3126fi

3117```3127```

3118 3128 

3119Per confermare che l'hook funziona, chiedi a Claude di aggiungere una riga CRLF a `data.csv` con un comando `Bash`. Claude Code esegue l'hook e il file finisce con terminazioni LF.3129Per verificare che l'hook funzioni, chiedi a Claude di aggiungere una riga CRLF a `data.csv` con un comando `Bash`. Claude Code esegue l'hook e il file termina con fine riga LF.

3120 3130 

3121Per osservare i file che non puoi nominare in anticipo, restituisci [`watchPaths`](#filechanged-output) da un hook per aggiornare l'elenco di osservazione dinamicamente. Claude Code avvia l'osservatore solo quando qualcosa nomina un file da osservare, quindi semina l'elenco con un gruppo FileChanged il cui matcher nomina almeno un file, o con un hook [SessionStart](#sessionstart-decision-control) o [CwdChanged](#cwdchanged-output) che restituisce `watchPaths`. Il matcher filtra comunque quali gruppi di hook si eseguono quando un file osservato cambia, quindi dai al gruppo che gestisce i percorsi dinamici un matcher omesso, che corrisponde a ogni file osservato e non aggiunge nulla all'elenco di osservazione. Un matcher `"*"` corrisponde anche a ogni file, ma Claude Code lo registra nell'elenco di osservazione come qualsiasi altro valore, come un file letterale denominato `*`.3131Per monitorare file che non puoi nominare in anticipo, restituisci [`watchPaths`](#filechanged-output) da un hook per aggiornare dinamicamente l'elenco di monitoraggio. Claude Code avvia il watcher solo quando qualcosa nomina un file da monitorare, quindi inizializza l'elenco con un gruppo FileChanged il cui matcher nomina almeno un file, oppure con un hook [SessionStart](#sessionstart-decision-control) o [CwdChanged](#cwdchanged) che restituisce `watchPaths`. Il matcher filtra comunque quali gruppi di hook vengono eseguiti quando un file monitorato cambia, quindi assegna al gruppo che gestisce i percorsi dinamici un matcher omesso, che corrisponde a ogni file monitorato e non aggiunge nulla all'elenco di monitoraggio. Anche un matcher `"*"` corrisponde a ogni file, ma Claude Code lo registra nell'elenco di monitoraggio come qualsiasi altro valore, ovvero come un file chiamato letteralmente `*`.

3122 3132 

3123Gli hook FileChanged hanno accesso a [`CLAUDE_ENV_FILE`](#persist-environment-variables). Le variabili scritte in quel file persistono nei comandi Bash successivi finché il prossimo evento [CwdChanged](#cwdchanged), quando Claude Code le cancella.3133Gli hook FileChanged hanno accesso a [`CLAUDE_ENV_FILE`](#persist-environment-variables). Le variabili scritte in quel file persistono nei comandi Bash successivi fino al successivo evento [CwdChanged](#cwdchanged), quando Claude Code le cancella.

3124 3134 

3125<h4 id="filechanged-input">3135<h4 id="filechanged-input">

3126 Input FileChanged3136 Input di FileChanged

3127</h4>3137</h4>

3128 3138 

3129Oltre ai [campi di input comuni](#common-input-fields), gli hook FileChanged ricevono `file_path` e `event`.3139Oltre ai [campi di input comuni](#common-input-fields), gli hook FileChanged ricevono `file_path` ed `event`.

3130 3140 

3131| Campo | Descrizione |3141| Campo | Descrizione |

3132| :- | :- |3142| :- | :- |

3133| `file_path` | Percorso assoluto al file che è cambiato |3143| `file_path` | Percorso assoluto del file modificato |

3134| `event` | Cosa è accaduto: `"change"` per un file modificato, `"add"` per un file creato, o `"unlink"` per un file eliminato |3144| `event` | Cosa è successo: `"change"` per un file modificato, `"add"` per un file creato o `"unlink"` per un file eliminato |

3135 3145 

3136```json theme={null}3146```json theme={null}

3137{3147{


3145```3155```

3146 3156 

3147<h4 id="filechanged-output">3157<h4 id="filechanged-output">

3148 Output FileChanged3158 Output di FileChanged

3149</h4>3159</h4>

3150 3160 

3151Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, gli hook FileChanged possono restituire `watchPaths` per aggiornare dinamicamente quali percorsi di file vengono osservati:3161Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, gli hook FileChanged possono restituire `watchPaths` per aggiornare dinamicamente quali percorsi di file vengono monitorati:

3152 3162 

3153| Campo | Descrizione |3163| Campo | Descrizione |

3154| :- | :- |3164| :- | :- |

3155| `watchPaths` | Array di percorsi assoluti. Sostituisce l'elenco di osservazione dinamico corrente. I percorsi dalla tua configurazione `matcher` vengono sempre osservati. Usalo quando il tuo script hook scopre file aggiuntivi da osservare in base al file modificato |3165| `watchPaths` | Array di percorsi assoluti. Sostituisce l'attuale elenco dinamico di monitoraggio. I percorsi della configurazione del tuo `matcher` sono sempre monitorati. Usalo quando lo script del tuo hook individua file aggiuntivi da monitorare in base al file modificato |

3156 3166 

3157Gli hook FileChanged non hanno controllo decisionale. Non possono bloccare il cambio del file dal verificarsi.3167Gli hook FileChanged non hanno controllo delle decisioni. Non possono impedire che la modifica del file avvenga.

3158 3168 

3159Claude Code legge `watchPaths` e `systemMessage` dal loro output JSON e scarta `continue`. Nelle sessioni interattive, mostra il `systemMessage` come una breve notifica di terminale. Il messaggio non raggiunge il flusso di messaggi dell'SDK.3169Claude Code legge `watchPaths` e `systemMessage` dal loro output JSON e scarta `continue`. Nelle sessioni interattive, mostra il `systemMessage` come breve notifica nel terminale. Il messaggio non raggiunge il flusso di messaggi dell'SDK.

3160 3170 

3161<h3 id="worktreecreate">3171<h3 id="worktreecreate">

3162 WorktreeCreate3172 WorktreeCreate

3163</h3>3173</h3>

3164 3174 

3165Si esegue quando un worktree viene creato, sia da `claude --worktree`, da un [subagente che usa `isolation: "worktree"`](/docs/it/sub-agents#choose-the-subagent-scope), o per una [sessione di background](/docs/it/agent-view#how-file-edits-are-isolated) che Claude Code isola nel suo proprio worktree. Per impostazione predefinita Claude Code crea la copia di lavoro isolata con `git worktree`. Configurare un hook WorktreeCreate sostituisce quel comportamento git predefinito, permettendoti di usare un sistema di controllo della versione diverso come SVN, Perforce, o Mercurial.3175Viene eseguito quando viene creato un worktree, che sia da `claude --worktree`, da un [subagent che usa `isolation: "worktree"`](/docs/it/sub-agents#choose-the-subagent-scope) o per una [sessione in background](/docs/it/agent-view#how-file-edits-are-isolated) che Claude Code isola nel proprio worktree. Per impostazione predefinita, Claude Code crea la copia di lavoro isolata con `git worktree`. Configurare un hook WorktreeCreate sostituisce quel comportamento git predefinito, consentendoti di usare un diverso sistema di controllo di versione come SVN, Perforce o Mercurial.

3166 3176 

3167Poiché l'hook sostituisce completamente il comportamento predefinito, [`.worktreeinclude`](/docs/it/worktrees#copy-gitignored-files-into-worktrees) non viene elaborato. Se hai bisogno di copiare file di configurazione locali come `.env` nel nuovo worktree, fallo dentro il tuo script hook.3177Poiché l'hook sostituisce interamente il comportamento predefinito, [`.worktreeinclude`](/docs/it/worktrees#copy-gitignored-files-into-worktrees) non viene elaborato. Se devi copiare file di configurazione locali come `.env` nel nuovo worktree, fallo all'interno dello script del tuo hook.

3168 3178 

3169L'hook deve restituire il percorso alla directory del worktree creato. Claude Code usa questo percorso come directory di lavoro per la sessione isolata. Vedi [Output WorktreeCreate](#worktreecreate-output) per come ogni tipo di hook restituisce il percorso.3179L'hook deve restituire il percorso della directory del worktree creato. Claude Code usa questo percorso come directory di lavoro per la sessione isolata. Consulta [Output di WorktreeCreate](#worktreecreate-output) per come ciascun tipo di hook restituisce il percorso.

3170 3180 

3171Claude Code agisce sul successo dell'hook e sul percorso restituito, e scarta `systemMessage` e `continue`.3181Claude Code agisce sull'esito positivo dell'hook e sul percorso restituito, e scarta `systemMessage` e `continue`.

3172 3182 

3173Questo esempio crea una copia di lavoro SVN e stampa il percorso per Claude Code da usare. Sostituisci l'URL del repository con il tuo:3183Questo esempio crea una copia di lavoro SVN e stampa il percorso che Claude Code deve usare. Sostituisci l'URL del repository con il tuo:

3174 3184 

3175```json theme={null}3185```json theme={null}

3176{3186{


3189}3199}

3190```3200```

3191 3201 

3192L'hook legge il `name` del worktree dall'input JSON su stdin, controlla una copia fresca in una nuova directory, e stampa il percorso della directory. L'`echo` sull'ultima riga è ciò che Claude Code legge come il percorso del worktree. Reindirizza qualsiasi altro output a stderr in modo che non interferisca con il percorso.3202L'hook legge il `name` del worktree dall'input JSON su stdin, effettua il checkout di una copia nuova in una nuova directory e stampa il percorso della directory. L'`echo` sull'ultima riga è ciò che Claude Code legge come percorso del worktree. Reindirizza qualsiasi altro output su stderr in modo che non interferisca con il percorso.

3193 3203 

3194<h4 id="worktreecreate-input">3204<h4 id="worktreecreate-input">

3195 Input WorktreeCreate3205 Input di WorktreeCreate

3196</h4>3206</h4>

3197 3207 

3198Oltre ai [campi di input comuni](#common-input-fields), gli hook WorktreeCreate ricevono il campo `name`. Questo è un identificatore slug per il nuovo worktree, specificato dall'utente o auto-generato, ad esempio `bold-oak-a3f2`.3208Oltre ai [campi di input comuni](#common-input-fields), gli hook WorktreeCreate ricevono il campo `name`. Si tratta di un identificatore slug per il nuovo worktree, specificato dall'utente o generato automaticamente, ad esempio `bold-oak-a3f2`.

3199 3209 

3200```json theme={null}3210```json theme={null}

3201{3211{


3208```3218```

3209 3219 

3210<h4 id="worktreecreate-output">3220<h4 id="worktreecreate-output">

3211 Output WorktreeCreate3221 Output di WorktreeCreate

3212</h4>3222</h4>

3213 3223 

3214Gli hook WorktreeCreate non usano il modello di decisione standard consenti/blocca. Invece, il successo o il fallimento dell'hook determina il risultato. L'hook deve restituire il percorso alla directory del worktree creato:3224Gli hook WorktreeCreate non usano il modello decisionale standard di consenso/blocco. L'esito è invece determinato dal successo o dal fallimento dell'hook. L'hook deve restituire il percorso della directory del worktree creato:

3215 3225 

3216* **Hook di comando** (`type: "command"`): stampa il percorso come l'ultima riga non vuota di stdout. Claude Code rimuove i codici di escape ANSI prima di leggere quella riga, quindi i banner di avvio della shell stampati prima del tuo `echo` vengono ignorati. Reindirizza qualsiasi altro output dell'hook a stderr.3226* **Hook di comando** (`type: "command"`): stampa il percorso come ultima riga non vuota di stdout. Claude Code rimuove i codici di escape ANSI prima di leggere quella riga, quindi i banner di avvio della shell stampati prima del tuo `echo` vengono ignorati. Reindirizza qualsiasi altro output dell'hook su stderr.

3217* **Hook HTTP** (`type: "http"`): restituisci `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }` nel corpo della risposta.3227* **Hook HTTP** (`type: "http"`): restituisci `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }` nel corpo della risposta.

3218 3228 

3219Se l'hook fallisce o non produce alcun percorso, la creazione del worktree fallisce con un errore.3229Se l'hook fallisce o non produce alcun percorso, la creazione del worktree fallisce con un errore.

3220 3230 

3221Claude Code risolve un percorso relativo rispetto alla directory in cui l'hook si è eseguito, collassando qualsiasi segmento `.` o `..` in esso. Se il percorso risultante non è una directory in cui Claude Code può entrare, la sessione stampa un errore che nomina il percorso ed esce con codice 1.3231Claude Code risolve un percorso relativo rispetto alla directory in cui è stato eseguito l'hook, comprimendo eventuali segmenti `.` o `..` al suo interno. Se il percorso risultante non è una directory in cui Claude Code può entrare, la sessione stampa un errore che indica il percorso ed esce con codice 1.

3222 3232 

3223Claude Code rifiuta un percorso assoluto che contiene segmenti `.` o `..`, e qualsiasi percorso che passa attraverso un symlink sotto la radice del repository, perché un symlink committato nel repository potrebbe reindirizzare il worktree al di fuori di esso. L'errore nomina il componente rifiutato. Restituisci un percorso normalizzato che non passa attraverso un symlink dentro il repository. Prima della v2.1.216, la creazione del worktree seguiva il percorso dell'hook senza questo screening.3233Claude Code rifiuta un percorso assoluto che contiene segmenti `.` o `..`, e qualsiasi percorso che attraversa un collegamento simbolico sotto la radice del repository, perché un collegamento simbolico sottoposto a commit nel repository potrebbe reindirizzare il worktree al di fuori di esso. L'errore indica il componente rifiutato. Restituisci un percorso normalizzato che non attraversi un collegamento simbolico all'interno del repository. Prima della v2.1.216, la creazione del worktree seguiva il percorso dell'hook senza questo controllo.

3224 3234 

3225<h3 id="worktreeremove">3235<h3 id="worktreeremove">

3226 WorktreeRemove3236 WorktreeRemove

3227</h3>3237</h3>

3228 3238 

3229Si esegue quando un worktree viene rimosso. Questo è il contrapparte di pulizia di [WorktreeCreate](#worktreecreate). L'evento si esegue quando:3239Viene eseguito quando un worktree sta per essere rimosso. È la controparte di pulizia di [WorktreeCreate](#worktreecreate). L'evento si attiva quando:

3230 3240 

3231* esci da una sessione `--worktree` e scegli di rimuoverla3241* esci da una sessione `--worktree` e scegli di rimuoverlo

3232* un subagente con `isolation: "worktree"` finisce3242* un subagent con `isolation: "worktree"` termina

3233* elimini una [sessione di background](/docs/it/agent-view#what-deleting-a-session-removes) il cui worktree l'hook ha creato3243* elimini una [sessione in background](/docs/it/agent-view#what-deleting-a-session-removes) il cui worktree è stato creato dall'hook

3234 3244 

3235Per i worktree basati su git, Claude Code gestisce la pulizia automaticamente con `git worktree remove`. Se hai configurato un hook WorktreeCreate, accoppialo con un hook WorktreeRemove per controllare la pulizia dei worktree che crea:3245Per i worktree basati su git, Claude Code gestisce la pulizia automaticamente con `git worktree remove`. Se hai configurato un hook WorktreeCreate, abbinalo a un hook WorktreeRemove per controllare la pulizia dei worktree che crea:

3236 3246 

3237* **Nessun hook WorktreeRemove**: quando esci da una sessione `--worktree` e scegli la rimozione, Claude Code ritorna a `git worktree remove --force` sul percorso che il tuo hook WorktreeCreate ha restituito, quindi un worktree che git riconosce viene rimosso. Un worktree che git non riconosce, ad esempio uno che il tuo hook ha creato con un sistema di controllo della versione non git, rimane su disco. Per cosa elimina una [sessione di background](/docs/it/agent-view#what-deleting-a-session-removes), vedi le regole di eliminazione della vista agente.3247* **Nessun hook WorktreeRemove**: quando esci da una sessione `--worktree` e scegli la rimozione, Claude Code ripiega su `git worktree remove --force` sul percorso restituito dal tuo hook WorktreeCreate, quindi un worktree riconosciuto da git viene rimosso. Un worktree che git non riconosce, per esempio uno creato dal tuo hook con un sistema di controllo versione diverso da git, rimane su disco. Per sapere cosa fa l'eliminazione di una [sessione in background](/docs/it/agent-view#what-deleting-a-session-removes) con un worktree creato da un hook, consulta le regole di eliminazione della vista agenti.

3238* **L'hook esce con 0**: il worktree conta come rimosso. Claude Code non legge nient'altro dall'hook, quindi assicurati che il tuo hook abbia eliminato la directory.3248* **L'hook esce con 0**: il worktree viene considerato rimosso. Claude Code non legge nient'altro dall'hook, quindi assicurati che il tuo hook abbia eliminato la directory.

3239* **L'hook esce con non-zero**: la rimozione fallisce se la directory in `worktree_path` esiste ancora dopo, e il worktree rimane su disco senza fallback git. Un hook che ha eliminato la directory prima di uscire con non-zero conta come rimosso. Per come il fallimento viene segnalato, vedi [Input WorktreeRemove](#worktreeremove-input).3249* **L'hook esce con un valore diverso da zero**: la rimozione fallisce se la directory in `worktree_path` esiste ancora in seguito, e il worktree rimane su disco senza fallback su git. Un hook che ha eliminato la directory prima di uscire con un valore diverso da zero viene considerato come rimozione riuscita. Per sapere come viene segnalato l'errore, consulta [Input di WorktreeRemove](#worktreeremove-input).

3240 3250 

3241Claude Code non elimina mai un ramo appartenente a un worktree creato da hook, perché conosce solo il percorso che il tuo hook WorktreeCreate ha restituito. Se il tuo hook WorktreeCreate crea un ramo, eliminalo nel tuo hook WorktreeRemove.3251Claude Code non elimina mai un branch appartenente a un worktree creato da un hook, perché conosce solo il percorso restituito dal tuo hook WorktreeCreate. Se il tuo hook WorktreeCreate crea un branch, eliminalo nel tuo hook WorktreeRemove.

3242 3252 

3243Claude Code scarta i [campi di output JSON](#json-output) di un hook WorktreeRemove, come `systemMessage` e `continue`.3253Claude Code scarta i [campi di output JSON](#json-output) di un hook WorktreeRemove, come `systemMessage` e `continue`.

3244 3254 

3245Per un'eliminazione di sessione di background, Claude Code verifica il percorso del worktree archiviato prima di eseguire l'hook e rifiuta un percorso che è un symlink o passa attraverso uno sotto la radice del repository. L'hook si esegue per un worktree che contiene ancora file solo quando confermi l'eliminazione nella [vista agente](/docs/it/agent-view#what-deleting-a-session-removes); per tale worktree, [`claude rm`](/docs/it/agent-view#manage-sessions-from-the-shell) mantiene la sessione e il worktree invece. Prima della v2.1.216, l'hook si eseguiva sul percorso archiviato senza questi controlli.3255Per l'eliminazione di una sessione in background, Claude Code verifica il percorso del worktree memorizzato prima di eseguire l'hook e rifiuta un percorso che sia un collegamento simbolico o che ne attraversi uno sotto la radice del repository. L'hook viene eseguito per un worktree che contiene ancora file solo quando confermi l'eliminazione nella [vista agenti](/docs/it/agent-view#what-deleting-a-session-removes); per un worktree di questo tipo, [`claude rm`](/docs/it/agent-view#manage-sessions-from-the-shell) mantiene invece la sessione e il worktree. Prima della v2.1.216, l'hook veniva eseguito sul percorso memorizzato senza questi controlli.

3246 3256 

3247Claude Code passa il percorso restituito da WorktreeCreate come `worktree_path` nell'input dell'hook. Questo esempio legge quel percorso e rimuove la directory:3257Claude Code passa il percorso restituito da WorktreeCreate come `worktree_path` nell'input dell'hook. Questo esempio legge quel percorso e rimuove la directory:

3248 3258 


3264```3274```

3265 3275 

3266<h4 id="worktreeremove-input">3276<h4 id="worktreeremove-input">

3267 Input WorktreeRemove3277 Input di WorktreeRemove

3268</h4>3278</h4>

3269 3279 

3270Oltre ai [campi di input comuni](#common-input-fields), gli hook WorktreeRemove ricevono il campo `worktree_path`, che è il percorso assoluto al worktree in fase di rimozione.3280Oltre ai [campi di input comuni](#common-input-fields), gli hook WorktreeRemove ricevono il campo `worktree_path`, che è il percorso assoluto del worktree in fase di rimozione.

3271 3281 

3272```json theme={null}3282```json theme={null}

3273{3283{


3279}3289}

3280```3290```

3281 3291 

3282Il codice di uscita di un hook WorktreeRemove decide il risultato. Quando un hook esce con non-zero e la directory in `worktree_path` esiste ancora dopo, la rimozione fallisce:3292Il codice di uscita di un hook WorktreeRemove determina l'esito. Quando un hook esce con un valore diverso da zero e la directory in `worktree_path` esiste ancora in seguito, la rimozione fallisce:

3283 3293 

3284* Il worktree rimane su disco, e il comando dell'hook e stderr vanno nel [debug log](#debug-hooks).3294* Il worktree rimane su disco, e il comando e lo stderr dell'hook vanno nel [log di debug](#debug-hooks).

3285* Se stavi eliminando una sessione di background, la sessione rimane anche. Il messaggio di rifiuto nella [vista agente](/docs/it/agent-view#what-deleting-a-session-removes) segnala come l'hook è terminato, come `exited 1`, cita l'inizio del suo stderr, e dice se eliminare la sessione di nuovo rimuove comunque la directory.3295* Se stavi eliminando una sessione in background, anche la sessione rimane. Il messaggio di rifiuto nella [vista agenti](/docs/it/agent-view#what-deleting-a-session-removes) riporta come è terminato l'hook, ad esempio `exited 1`, cita l'inizio del suo stderr e indica se eliminare di nuovo la sessione rimuove comunque la directory.

3286 3296 

3287<h3 id="precompact">3297<h3 id="precompact">

3288 PreCompact3298 PreCompact

3289</h3>3299</h3>

3290 3300 

3291Si esegue prima che Claude Code stia per eseguire un'operazione di compattazione.3301Viene eseguito prima che Claude Code stia per eseguire un'operazione di compattazione.

3292 3302 

3293Il valore del matcher indica se la compattazione è stata attivata manualmente o automaticamente:3303Il valore del matcher indica se la compattazione è stata attivata manualmente o automaticamente:

3294 3304 


3299 3309 

3300Esci con codice 2 per bloccare la compattazione. Per un `/compact` manuale, il messaggio stderr viene mostrato all'utente. Puoi anche bloccare restituendo JSON con `"decision": "block"`.3310Esci con codice 2 per bloccare la compattazione. Per un `/compact` manuale, il messaggio stderr viene mostrato all'utente. Puoi anche bloccare restituendo JSON con `"decision": "block"`.

3301 3311 

3302Bloccare la compattazione automatica ha effetti diversi a seconda di quando si esegue. Se la compattazione è stata attivata in modo proattivo prima del limite di contesto, Claude Code la salta e la conversazione continua non compattata. Se la compattazione è stata attivata per recuperare da un errore di limite di contesto già restituito dall'API, l'errore sottostante emerge e la richiesta corrente fallisce.3312Bloccare la compattazione automatica ha effetti diversi a seconda di quando si attiva. Se la compattazione è stata attivata in modo proattivo prima del limite di contesto, Claude Code la salta e la conversazione continua senza compattazione. Se la compattazione è stata attivata per recuperare da un errore di limite di contesto già restituito dall'API, l'errore sottostante emerge e la richiesta corrente fallisce.

3303 3313 

3304Claude Code scarta i campi `systemMessage` e `continue` di un hook PreCompact.3314Claude Code scarta i campi `systemMessage` e `continue` di un hook PreCompact.

3305 3315 

3306<h4 id="precompact-input">3316<h4 id="precompact-input">

3307 Input PreCompact3317 Input di PreCompact

3308</h4>3318</h4>

3309 3319 

3310Oltre ai [campi di input comuni](#common-input-fields), gli hook PreCompact ricevono `trigger` e `custom_instructions`. Per `manual`, `custom_instructions` contiene ciò che l'utente passa in `/compact` ed è `null` quando non passa nulla. Per `auto`, `custom_instructions` è `null`.3320Oltre ai [campi di input comuni](#common-input-fields), gli hook PreCompact ricevono `trigger` e `custom_instructions`. Per `manual`, `custom_instructions` contiene ciò che l'utente passa a `/compact` ed è `null` quando non passa nulla. Per `auto`, `custom_instructions` è `null`.

3311 3321 

3312```json theme={null}3322```json theme={null}

3313{3323{


3324 PostCompact3334 PostCompact

3325</h3>3335</h3>

3326 3336 

3327Si esegue dopo che Claude Code completa un'operazione di compattazione. Usalo per reagire al nuovo stato compattato, ad esempio per registrare il riepilogo generato o aggiornare lo stato esterno. Claude Code scarta i campi `systemMessage` e `continue` di un hook PostCompact.3337Viene eseguito dopo che Claude Code completa un'operazione di compattazione. Usa questo evento per reagire al nuovo stato compattato, ad esempio per registrare il riepilogo generato o aggiornare uno stato esterno. Claude Code scarta i campi `systemMessage` e `continue` di un hook PostCompact.

3328 3338 

3329Gli stessi valori di matcher si applicano come per `PreCompact`:3339Si applicano gli stessi valori del matcher di `PreCompact`:

3330 3340 

3331| Matcher | Quando si attiva |3341| Matcher | Quando si attiva |

3332| :- | :- |3342| :- | :- |


3334| `auto` | Dopo la compattazione automatica quando la conversazione raggiunge la [finestra di compattazione automatica](/docs/it/model-config#set-the-auto-compact-window) |3344| `auto` | Dopo la compattazione automatica quando la conversazione raggiunge la [finestra di compattazione automatica](/docs/it/model-config#set-the-auto-compact-window) |

3335 3345 

3336<h4 id="postcompact-input">3346<h4 id="postcompact-input">

3337 Input PostCompact3347 Input di PostCompact

3338</h4>3348</h4>

3339 3349 

3340Oltre ai [campi di input comuni](#common-input-fields), gli hook PostCompact ricevono `trigger` e `compact_summary`. Il campo `compact_summary` contiene il riepilogo della conversazione generato dall'operazione di compattazione.3350Oltre ai [campi di input comuni](#common-input-fields), gli hook PostCompact ricevono `trigger` e `compact_summary`. Il campo `compact_summary` contiene il riepilogo della conversazione generato dall'operazione di compattazione.


3350}3360}

3351```3361```

3352 3362 

3353Gli hook PostCompact non hanno controllo decisionale. Non possono influenzare il risultato della compattazione ma possono eseguire attività di follow-up.3363Gli hook PostCompact non hanno controllo decisionale. Non possono influenzare il risultato della compattazione ma possono eseguire attività successive.

3354 3364 

3355<h3 id="premodelswitch">3365<h3 id="premodelswitch">

3356 PreModelSwitch3366 PreModelSwitch

3357</h3>3367</h3>

3358 3368 

3359Si esegue prima che Claude Code applichi un cambio di modello che hai richiesto tu o un client. Usalo per bloccare un cambio, richiedere conferma, o mostrare quale costo avrà il cambio prima che accada.3369Viene eseguito prima che Claude Code applichi un cambio di modello richiesto da te o da un client. Usalo per bloccare un cambio, richiedere una conferma o mostrare quanto costerà il cambio prima che avvenga.

3360 3370 

3361PreModelSwitch richiede Claude Code v2.1.251 o successivo. Claude Code lo esegue per queste richieste:3371PreModelSwitch richiede Claude Code v2.1.251 o successivo. Claude Code lo esegue per queste richieste:

3362 3372 

3363* `/model <name>` e il picker `/model`3373* `/model <name>` e il selettore di `/model`

3364* Il picker del modello `Option+P` o `Alt+P`3374* Il selettore di modello `Option+P` o `Alt+P`

3365* L'impostazione Model in `/config`3375* L'impostazione Model in `/config`

3366* Attivare la [modalità veloce](/docs/it/fast-mode) quando questo cambia il modello della sessione3376* L'attivazione della [modalità veloce](/docs/it/fast-mode) quando questa cambia il modello della sessione

3367* Una richiesta `set_model`, o un cambio di modello in una richiesta `apply_flag_settings`, da un host [Agent SDK](/docs/it/agent-sdk/typescript#query-object) o [Remote Control](/docs/it/remote-control)3377* Una richiesta `set_model`, o un cambio di modello in una richiesta `apply_flag_settings`, da un host dell'[Agent SDK](/docs/it/agent-sdk/typescript#query-object) o da [Remote Control](/docs/it/remote-control)

3368 3378 

3369Claude Code non esegue gli hook PreModelSwitch per i cambi che fa da solo, come un [fallback di modello automatico](/docs/it/model-config#automatic-model-fallback) o il ripristino del modello quando riprendi una sessione. Quei cambi raggiungono [PostModelSwitch](#postmodelswitch) solo.3379Claude Code non esegue gli hook PreModelSwitch per i cambi che effettua autonomamente, come un [fallback automatico del modello](/docs/it/model-config#automatic-model-fallback) o il ripristino del modello quando riprendi una sessione. Questi cambi raggiungono solo [PostModelSwitch](#postmodelswitch).

3370 3380 

3371Claude Code confronta il matcher rispetto al nome canonico del modello a cui la sessione sta passando, ignorando qualsiasi suffisso `[1m]`. Un alias come `opus`, un ID di modello datato, e un ID specifico del provider come un ID di modello Amazon Bedrock corrispondono tutti al nome canonico unico a cui si risolvono, quindi `claude-opus-5` copre ogni ortografia di Opus 5.3381Claude Code confronta il matcher con il nome canonico del modello verso cui la sessione sta passando, ignorando qualsiasi suffisso `[1m]`. Un alias come `opus`, un ID di modello con data e un ID specifico del provider, come un ID di modello di Amazon Bedrock, corrispondono tutti all'unico nome canonico a cui si risolvono, quindi `claude-opus-5` copre ogni variante di scrittura di Opus 5.

3372 3382 

3373Quando Claude Code non può determinare un nome canonico per il target, ad esempio un ID di modello personalizzato che solo il tuo [gateway LLM](/docs/it/llm-gateway) conosce, esegue ogni hook PreModelSwitch indipendentemente dal matcher. Un hook che blocca dovrebbe quindi controllare `to_model` dal suo input piuttosto che fare affidamento solo sul matcher.3383Quando Claude Code non riesce a determinare un nome canonico per la destinazione, ad esempio un ID di modello personalizzato noto solo al tuo [gateway LLM](/docs/it/llm-gateway), esegue ogni hook PreModelSwitch indipendentemente dal matcher. Un hook che blocca dovrebbe quindi controllare `to_model` dal suo input anziché affidarsi al solo matcher.

3374 3384 

3375Scrivi il matcher come un nome esatto, un elenco separato da `|` come `claude-opus-4-6|claude-opus-5`, o un'espressione regolare come `.*opus.*`. Questo esempio usa un matcher di nome esatto e controlla anche `to_model` dall'input dell'hook, quindi rifiuta un cambio a Opus 4.6 uscendo con codice 2 e consente qualsiasi altro target:3385Scrivi il matcher come nome esatto, come elenco separato da `|` come `claude-opus-4-6|claude-opus-5`, o come espressione regolare come `.*opus.*`. Questo esempio usa un matcher con nome esatto e controlla anche `to_model` dall'input dell'hook, quindi rifiuta un passaggio a Opus 4.6 uscendo con codice 2 e lascia passare qualsiasi altra destinazione:

3376 3386 

3377<Tabs>3387<Tabs>

3378 <Tab title="macOS/Linux">3388 <Tab title="macOS/Linux">


3438 </Tab>3448 </Tab>

3439</Tabs>3449</Tabs>

3440 3450 

3441Per confermare che l'hook funziona, esegui `/model claude-opus-4-6` da una sessione che esegue un modello diverso. Claude Code mantiene il modello corrente e segnala che un hook PreModelSwitch ha bloccato il cambio, con il tuo messaggio come motivo.3451Per verificare che l'hook funzioni, esegui `/model claude-opus-4-6` da una sessione che usa un modello diverso. Claude Code mantiene il modello corrente e segnala che un hook PreModelSwitch ha bloccato il cambio, con il tuo messaggio come motivo.

3442 3452 

3443<h4 id="premodelswitch-input">3453<h4 id="premodelswitch-input">

3444 Input PreModelSwitch3454 Input di PreModelSwitch

3445</h4>3455</h4>

3446 3456 

3447Oltre ai [campi di input comuni](#common-input-fields), gli hook PreModelSwitch ricevono i campi in questa tabella. Gli ultimi cinque descrivono quale costo ha il reinvio della conversazione al nuovo modello, quindi un hook può mostrare quella cifra prima che il cambio accada.3457Oltre ai [campi di input comuni](#common-input-fields), gli hook PreModelSwitch ricevono i campi di questa tabella. Gli ultimi cinque descrivono quanto costa reinviare la conversazione al nuovo modello, così un hook può mostrare quella cifra prima che avvenga il cambio.

3448 3458 

3449| Campo | Tipo | Descrizione |3459| Campo | Tipo | Descrizione |

3450| :- | :- | :- |3460| :- | :- | :- |

3451| `from_model` | string | ID del modello da cui il cambio cambia |3461| `from_model` | string | ID del modello da cui avviene il cambio |

3452| `to_model` | string | ID del modello a cui il cambio cambia. Il matcher confronta rispetto al nome canonico di questo modello |3462| `to_model` | string | ID del modello verso cui avviene il cambio. Il matcher viene confrontato con il nome canonico di questo modello |

3453| `requested_model` | string o `null` | Il modello che la richiesta ha nominato: un alias come `opus`, un ID di modello completo, o `null` quando la richiesta era per il modello predefinito |3463| `requested_model` | string o `null` | Il modello indicato nella richiesta: un alias come `opus`, un ID di modello completo, oppure `null` quando la richiesta riguardava il modello predefinito |

3454| `source` | string | Da dove viene la richiesta: `"command"` per `/model <name>`, l'impostazione Model in `/config`, o l'attivazione della modalità veloce; `"picker"` per un picker di modello; `"sdk"` per una richiesta `set_model`, o un cambio di modello in una richiesta `apply_flag_settings`, da un host Agent SDK o Remote Control |3464| `source` | string | Da dove proviene la richiesta: `"command"` per `/model <name>`, l'impostazione Model in `/config` o l'attivazione della modalità veloce; `"picker"` per un selettore di modello; `"sdk"` per una richiesta `set_model`, o un cambio di modello in una richiesta `apply_flag_settings`, da un host dell'Agent SDK o da Remote Control |

3455| `context_tokens` | number | Token che la richiesta successiva invia di nuovo come suo prompt: i token di input, lettura della cache, creazione della cache, e output dell'ultima risposta nella conversazione principale, combinati. `0` prima della prima risposta |3465| `context_tokens` | number | Token che la richiesta successiva reinvia come prompt: i token di input, di lettura dalla cache, di creazione della cache e di output dell'ultima risposta nella conversazione principale, sommati. `0` prima della prima risposta |

3456| `prompt_cache_warm` | boolean | Se la cache del prompt del modello corrente è probabilmente ancora calda, il che significa che il cambio la perde |3466| `prompt_cache_warm` | boolean | Se la cache del prompt del modello corrente è probabilmente ancora attiva, il che significa che il cambio la fa perdere |

3457| `cache_ttl` | string | [Durata della cache del prompt](/docs/it/prompt-caching#cache-lifetime) che Claude Code richiede per questa sessione: `"5m"` o `"1h"` |3467| `cache_ttl` | string | [Durata della cache del prompt](/docs/it/prompt-caching#cache-lifetime) che Claude Code richiede per questa sessione: `"5m"` o `"1h"` |

3458| `estimated_cache_write_usd` | number | Costo stimato in dollari USA della scrittura di `context_tokens` nella cache del prompt su `to_model` al tasso `cache_ttl`, escludendo la richiesta successiva. Il server potrebbe non aver bisogno di ri-memorizzare l'intero contesto, quindi trattalo come una stima |3468| `estimated_cache_write_usd` | number | Costo stimato in dollari USA della scrittura di `context_tokens` nella cache del prompt su `to_model` alla tariffa di `cache_ttl`, esclusa la risposta successiva. Il server potrebbe non dover rimemorizzare nella cache l'intero contesto, quindi consideralo una stima |

3459| `pricing` | string | Come Claude Code ha prezzato `estimated_cache_write_usd`: `"configured"` ai tuoi tassi organizzativi quando li ha configurati, `"catalog"` al prezzo di listino, o `"default"` quando `to_model` non ha un prezzo noto e Claude Code ha assunto un tasso predefinito |3469| `pricing` | string | Come Claude Code ha calcolato il prezzo di `estimated_cache_write_usd`: `"configured"` alle tariffe della tua organizzazione quando le ha configurate, `"catalog"` al prezzo di listino, oppure `"default"` quando `to_model` non ha un prezzo noto e Claude Code ha assunto una tariffa predefinita |

3460 3470 

3461Questo esempio mostra l'input per `/model opus` in una sessione che esegue Sonnet 5:3471Questo esempio mostra l'input per `/model opus` in una sessione che usa Sonnet 5:

3462 3472 

3463```json theme={null}3473```json theme={null}

3464{3474{


3479```3489```

3480 3490 

3481<h4 id="premodelswitch-decision-control">3491<h4 id="premodelswitch-decision-control">

3482 Controllo decisionale PreModelSwitch3492 Controllo decisionale di PreModelSwitch

3483</h4>3493</h4>

3484 3494 

3485Gli hook `PreModelSwitch` possono annullare il cambio, chiedere all'utente di confermarlo, o consentirgli di procedere. Il codice di uscita 2 o un `decision: "block"` di livello superiore annulla il cambio.3495Gli hook `PreModelSwitch` possono annullare il cambio, chiedere all'utente di confermarlo o lasciarlo procedere. Il codice di uscita 2 o un `decision: "block"` di primo livello annulla il cambio.

3486 3496 

3487Per un controllo più fine, restituisci `permissionDecision` e `permissionDecisionReason` in un oggetto `hookSpecificOutput`, come su [PreToolUse](#pretooluse-decision-control). `PreModelSwitch` accetta `"allow"`, `"deny"`, e `"ask"`. Non accetta `"defer"`, `updatedInput`, o `additionalContext`. La tabella sottostante descrive entrambi i campi:3497Per un controllo più preciso, restituisci `permissionDecision` e `permissionDecisionReason` in un oggetto `hookSpecificOutput`, come per [PreToolUse](#pretooluse-decision-control). `PreModelSwitch` accetta `"allow"`, `"deny"` e `"ask"`. Non accetta `"defer"`, `updatedInput` o `additionalContext`. La tabella seguente descrive entrambi i campi:

3488 3498 

3489| Campo | Descrizione |3499| Campo | Descrizione |

3490| :- | :- |3500| :- | :- |

3491| `permissionDecision` | `"allow"` procede e salta la [conferma che Claude Code mostra mentre la cache del prompt è calda](/docs/it/prompt-caching#switching-models). `"deny"` annulla il cambio. `"ask"` chiede all'utente di confermarlo |3501| `permissionDecision` | `"allow"` procede e salta la [conferma che Claude Code mostra mentre la cache del prompt è attiva](/docs/it/prompt-caching#switching-models). `"deny"` annulla il cambio. `"ask"` chiede all'utente di confermarlo |

3492| `permissionDecisionReason` | Per `"deny"`, mostrato all'utente come il motivo per cui il cambio è stato bloccato, o restituito come errore per una richiesta `set_model`. Per `"ask"`, mostrato nel prompt di conferma. Ignorato per `"allow"` |3502| `permissionDecisionReason` | Per `"deny"`, mostrato all'utente come motivo del blocco del cambio, o restituito come errore per una richiesta `set_model`. Per `"ask"`, mostrato nella richiesta di conferma. Ignorato per `"allow"` |

3493 3503 

3494Solo `/model` in una sessione interattiva può mostrare il prompt `"ask"`. Su ogni altra superficie, inclusa la modalità non interattiva con il flag `-p`, `/config`, e le richieste `set_model`, Claude Code tratta `"ask"` come un rifiuto.3504Solo `/model` in una sessione interattiva può mostrare la richiesta di conferma di `"ask"`. Su ogni altra superficie, inclusa la modalità non interattiva con il flag `-p`, `/config` e le richieste `set_model`, Claude Code tratta `"ask"` come un rifiuto.

3495 3505 

3496Questo esempio chiede all'utente di confermare e cita il conteggio dei token da `context_tokens`:3506Questo esempio chiede all'utente di confermare e cita il numero di token da `context_tokens`:

3497 3507 

3498```json theme={null}3508```json theme={null}

3499{3509{


3505}3515}

3506```3516```

3507 3517 

3508Quando più hook PreModelSwitch restituiscono decisioni diverse, la precedenza è `deny` > `ask` > `allow`.3518Quando più hook PreModelSwitch restituiscono decisioni diverse, l'ordine di precedenza è `deny` > `ask` > `allow`.

3509 3519 

3510Claude Code mostra all'utente qualsiasi `systemMessage` che il tuo hook restituisce indipendentemente dalla decisione, quindi un hook di rapporto dei costi può restituire `{"systemMessage": "..."}` e uscire con 0.3520Claude Code mostra all'utente qualsiasi `systemMessage` restituito dal tuo hook indipendentemente dalla decisione, quindi un hook di report dei costi può restituire `{"systemMessage": "..."}` e uscire con 0.

3511 3521 

3512Un hook PreModelSwitch che non risponde prima del suo timeout blocca il cambio. Su [PreToolUse](#timeouts), al contrario, un hook di comando che scade lascia che la chiamata dello strumento continui. Il timeout predefinito per questo evento è 30 secondi. `PreModelSwitch` esegue solo gli hook `command`, `http`, e `mcp_tool`, quindi i default `prompt` e `agent` non si applicano.3522Un hook PreModelSwitch che non risponde prima del suo timeout blocca il cambio. Al contrario, su [PreToolUse](#timeouts), un hook di comando andato in timeout lascia proseguire la chiamata allo strumento. Il timeout predefinito per questo evento è di 30 secondi. `PreModelSwitch` esegue solo hook `command`, `http` e `mcp_tool`, quindi i valori predefiniti di `prompt` e `agent` non si applicano.

3513 3523 

3514Un hook che esce con un codice diverso da 0 o 2 e non stampa alcuna decisione JSON non blocca: Claude Code mostra il suo stderr e applica il cambio, come descritto sotto [Codici di uscita diversi](#other-exit-codes).3524Un hook che esce con un codice diverso da 0 o 2 e non stampa alcuna decisione JSON non blocca: Claude Code mostra il suo stderr e applica il cambio, come descritto in [Altri codici di uscita](#other-exit-codes).

3515 3525 

3516<h3 id="postmodelswitch">3526<h3 id="postmodelswitch">

3517 PostModelSwitch3527 PostModelSwitch

3518</h3>3528</h3>

3519 3529 

3520Si esegue dopo che il modello della sessione cambia. Usalo per dare a Claude una guida specifica del modello senza modificare ogni CLAUDE.md, ad esempio un'istruzione a livello di organizzazione che si applica su determinati modelli.3530Viene eseguito dopo che il modello della sessione cambia. Usalo per fornire a Claude indicazioni specifiche per il modello senza modificare ogni CLAUDE.md, ad esempio un'istruzione valida per tutta l'organizzazione che si applica a determinati modelli.

3521 3531 

3522PostModelSwitch richiede Claude Code v2.1.251 o successivo. Non può bloccare, perché il modello è già cambiato. Claude Code esegue gli hook PostModelSwitch dopo uno qualsiasi di questi cambi:3532PostModelSwitch richiede Claude Code v2.1.251 o successivo. Non può bloccare, perché il modello è già cambiato. Claude Code esegue gli hook PostModelSwitch dopo uno qualsiasi di questi cambi:

3523 3533 

3524* Un cambio che hai richiesto tu o un client3534* Un cambio richiesto da te o da un client

3525* Un [fallback di modello automatico](/docs/it/model-config#automatic-model-fallback), che cambia il modello della sessione3535* Un [fallback automatico del modello](/docs/it/model-config#automatic-model-fallback), che cambia il modello della sessione

3526* Un'impostazione come [`opusplan`](/docs/it/model-config#opusplan-model-setting) che entra o esce dalla modalità piano3536* Un'impostazione come [`opusplan`](/docs/it/model-config#opusplan-model-setting) che entra o esce dal plan mode

3527* Claude Code che ripristina il modello quando riprendi una sessione3537* Claude Code che ripristina il modello quando riprendi una sessione

3528 3538 

3529Claude Code non esegue gli hook PostModelSwitch quando un modello da una [catena di modelli di fallback](/docs/it/model-config#fallback-model-chains) serve un turno, perché quella sostituzione dura un turno e lascia il modello della sessione invariato.3539Claude Code non esegue gli hook PostModelSwitch quando un modello di una [catena di modelli di fallback](/docs/it/model-config#fallback-model-chains) gestisce un turno, perché quella sostituzione dura un solo turno e lascia invariato il modello della sessione.

3530 3540 

3531Il matcher segue le stesse regole di [PreModelSwitch](#premodelswitch): Claude Code lo confronta rispetto al nome canonico del modello a cui la sessione è passata.3541Il matcher segue le stesse regole di [PreModelSwitch](#premodelswitch): Claude Code lo confronta con il nome canonico del modello verso cui la sessione è passata.

3532 3542 

3533Questo esempio aggiunge una guida ogni volta che il modello della sessione cambia a qualsiasi modello Opus:3543Questo esempio aggiunge indicazioni ogni volta che il modello della sessione passa a un qualsiasi modello Opus:

3534 3544 

3535```json theme={null}3545```json theme={null}

3536{3546{


3550}3560}

3551```3561```

3552 3562 

3553Per confermare che l'hook funziona, cambia a un modello Opus da una sessione che esegue un modello diverso, ad esempio esegui `/model opus` da una sessione Sonnet, quindi chiedi a Claude quale guida ha sul modello corrente.3563Per verificare che l'hook funzioni, passa a un modello Opus da una sessione che usa un modello diverso, ad esempio esegui `/model opus` da una sessione Sonnet, poi chiedi a Claude quali indicazioni ha sul modello corrente.

3554 3564 

3555<h4 id="postmodelswitch-input">3565<h4 id="postmodelswitch-input">

3556 Input PostModelSwitch3566 Input di PostModelSwitch

3557</h4>3567</h4>

3558 3568 

3559Gli hook PostModelSwitch ricevono gli stessi campi di [PreModelSwitch](#premodelswitch-input), con `hook_event_name` impostato su `"PostModelSwitch"` e due valori `source` aggiuntivi: `"auto"` per un fallback automatico o un altro cambio che Claude Code ha fatto da solo, e `"resume"` per il modello ripristinato quando riprendi una sessione.3569Gli hook PostModelSwitch ricevono gli stessi campi di [PreModelSwitch](#premodelswitch-input), con `hook_event_name` impostato su `"PostModelSwitch"` e due valori aggiuntivi di `source`: `"auto"` per un fallback automatico o un altro cambio effettuato autonomamente da Claude Code, e `"resume"` per il modello ripristinato quando riprendi una sessione.

3560 3570 

3561`requested_model` è `null` quando `source` è `"auto"`. Quando `source` è `"resume"`, è l'impostazione del modello salvato che Claude Code ha ripristinato.3571`requested_model` è `null` quando `source` è `"auto"`. Quando `source` è `"resume"`, è l'impostazione del modello salvata che Claude Code ha ripristinato.

3562 3572 

3563<h4 id="postmodelswitch-decision-control">3573<h4 id="postmodelswitch-decision-control">

3564 Controllo decisionale PostModelSwitch3574 Controllo decisionale di PostModelSwitch

3565</h4>3575</h4>

3566 3576 

3567Claude Code prende il tuo stdout di [testo semplice](#exit-code-0) dell'hook all'uscita 0, o `additionalContext` dall'output JSON, e lo consegna a Claude con la richiesta successiva dopo il cambio. Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, puoi restituire:3577Claude Code prende lo [stdout in testo semplice](#exit-code-0) del tuo hook all'uscita con 0, o `additionalContext` dall'output JSON, e lo consegna a Claude con la richiesta successiva al cambio. Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, puoi restituire:

3568 3578 

3569| Campo | Descrizione |3579| Campo | Descrizione |

3570| :- | :- |3580| :- | :- |

3571| `additionalContext` | Stringa aggiunta al contesto di Claude con la richiesta successiva. Vedi [Aggiungi contesto per Claude](#add-context-for-claude) |3581| `additionalContext` | Stringa aggiunta al contesto di Claude con la richiesta successiva. Consulta [Aggiungere contesto per Claude](#add-context-for-claude) |

3572 3582 

3573Se l'hook non finisce entro cinque secondi dopo che invii la richiesta successiva, Claude Code invia quella richiesta senza l'output e lo allega alla richiesta successiva. Se il modello cambia più volte prima della richiesta successiva, Claude Code consegna solo l'output per il cambio del modello target finale.3583Se l'hook non ha terminato entro cinque secondi dall'invio del prompt successivo, Claude Code invia quella richiesta senza l'output e lo allega invece alla richiesta seguente. Se il modello cambia più volte prima della richiesta successiva, Claude Code consegna solo l'output relativo al modello di destinazione dell'ultimo cambio.

3574 3584 

3575<h3 id="sessionend">3585<h3 id="sessionend">

3576 SessionEnd3586 SessionEnd

3577</h3>3587</h3>

3578 3588 

3579Si esegue quando una sessione di Claude Code termina. Utile per attività di pulizia, registrazione delle statistiche della sessione, o salvataggio dello stato della sessione. Supporta i matcher per filtrare per motivo di uscita.3589Viene eseguito quando una sessione di Claude Code termina. Utile per attività di pulizia, registrazione delle

3590statistiche della sessione o salvataggio dello stato della sessione. Supporta i matcher per filtrare in base al motivo di uscita.

3580 3591 

3581Il campo `reason` nell'input dell'hook indica perché la sessione è terminata:3592Il campo `reason` nell'input dell'hook indica perché la sessione è terminata:

3582 3593 


3584| :- | :- |3595| :- | :- |

3585| `clear` | Sessione cancellata con il comando `/clear` |3596| `clear` | Sessione cancellata con il comando `/clear` |

3586| `resume` | Sessione cambiata tramite `/resume` interattivo |3597| `resume` | Sessione cambiata tramite `/resume` interattivo |

3587| `logout` | L'utente ha effettuato il logout |3598| `logout` | L'utente è uscito dall'account |

3588| `prompt_input_exit` | L'utente è uscito mentre l'input del prompt era visibile |3599| `prompt_input_exit` | L'utente è uscito mentre l'input del prompt era visibile |

3589| `other` | Altri motivi di uscita |3600| `other` | Altri motivi di uscita |

3590| `bypass_permissions_disabled` | Rimosso nella v2.1.234; Claude Code non lo invia. Eliminalo dai tuoi matcher `SessionEnd` |3601| `bypass_permissions_disabled` | Rimosso nella v2.1.234; Claude Code non lo invia. Rimuovilo dai tuoi matcher `SessionEnd` |

3591 3602 

3592<h4 id="sessionend-input">3603<h4 id="sessionend-input">

3593 Input SessionEnd3604 Input di SessionEnd

3594</h4>3605</h4>

3595 3606 

3596Oltre ai [campi di input comuni](#common-input-fields), gli hook SessionEnd ricevono un campo `reason` che indica perché la sessione è terminata. Vedi la [tabella dei motivi](#sessionend) sopra per tutti i valori.3607Oltre ai [campi di input comuni](#common-input-fields), gli hook SessionEnd ricevono un campo `reason` che indica perché la sessione è terminata. Consulta la [tabella dei motivi](#sessionend) sopra per tutti i valori.

3597 3608 

3598```json theme={null}3609```json theme={null}

3599{3610{


3605}3616}

3606```3617```

3607 3618 

3608Gli hook SessionEnd non hanno controllo decisionale. Non possono bloccare la terminazione della sessione ma possono eseguire attività di pulizia. Claude Code scarta i loro [campi di output JSON](#json-output), come `systemMessage`.3619Gli hook SessionEnd non hanno controllo decisionale. Non possono bloccare la chiusura della sessione ma possono eseguire attività di pulizia. Claude Code scarta i loro [campi di output JSON](#json-output), come `systemMessage`.

3609 3620 

3610Gli hook SessionEnd hanno un timeout predefinito di 1,5 secondi. Si applica quando esci, esegui `/clear`, o cambi sessioni con `/resume` interattivo. Puoi dare a un hook più tempo in due modi:3621Gli hook SessionEnd hanno un timeout predefinito di 1,5 secondi. Si applica quando esci, esegui `/clear` o cambi sessione con `/resume` interattivo. Puoi concedere più tempo a un hook in due modi:

3611 3622 

3612* **`timeout` per hook**: imposta `timeout` nella configurazione di quell'hook. Il budget complessivo aumenta automaticamente per corrispondere al `timeout` per hook più alto nei tuoi file di impostazioni, fino a 60 secondi. Se aumenti il budget in questo modo, un hook senza il suo `timeout` mantiene comunque il default. I timeout impostati su hook forniti da plugin non aumentano il budget.3623* **`timeout` per singolo hook**: imposta `timeout` nella configurazione di quell'hook. Il budget complessivo aumenta automaticamente fino a corrispondere al `timeout` per singolo hook più alto nei tuoi file di impostazioni, fino a 60 secondi. Se aumenti il budget in questo modo, un hook senza un proprio `timeout` mantiene comunque il valore predefinito. I timeout impostati sugli hook forniti dai plugin non aumentano il budget.

3613* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**: imposta questa variabile di ambiente in millisecondi per sovrascrivere il budget esplicitamente. Il valore che imposti diventa anche il timeout per ogni hook senza il suo `timeout`.3624* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**: imposta questa variabile d'ambiente in millisecondi per sovrascrivere esplicitamente il budget. Il valore che imposti diventa anche il timeout per ogni hook senza un proprio `timeout`.

3614 3625 

3615Questo esempio imposta il budget a 5 secondi:3626Questo esempio imposta il budget a 5 secondi:

3616 3627 


3618CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=5000 claude3629CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=5000 claude

3619```3630```

3620 3631 

3621Prima della v2.1.268, `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` aumentava solo il budget complessivo, e un hook senza il suo `timeout` veniva comunque annullato dopo 1,5 secondi.3632Prima della v2.1.268, `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` aumentava solo il budget complessivo, e un hook senza un proprio `timeout` veniva comunque annullato dopo 1,5 secondi.

3622 3633 

3623<h3 id="elicitation">3634<h3 id="elicitation">

3624 Elicitation3635 Elicitation

3625</h3>3636</h3>

3626 3637 

3627Si esegue quando un server MCP richiede l'input dell'utente a metà attività. Per impostazione predefinita, Claude Code mostra un dialogo interattivo per l'utente per rispondere. Gli hook possono intercettare questa richiesta e rispondere programmaticamente, saltando completamente il dialogo.3638Viene eseguito quando un server MCP richiede un input dell'utente durante un'attività. Per impostazione predefinita, Claude Code mostra una finestra di dialogo interattiva a cui l'utente può rispondere. Gli hook possono intercettare questa richiesta e rispondere in modo programmatico, saltando completamente la finestra di dialogo.

3628 3639 

3629Il campo matcher corrisponde al nome del server MCP.3640Il campo matcher viene confrontato con il nome del server MCP.

3630 3641 

3631<h4 id="elicitation-input">3642<h4 id="elicitation-input">

3632 Input Elicitation3643 Input di Elicitation

3633</h4>3644</h4>

3634 3645 

3635Oltre ai [campi di input comuni](#common-input-fields), gli hook Elicitation ricevono `mcp_server_name`, `message`, e campi facoltativi `mode`, `url`, `elicitation_id`, e `requested_schema`.3646Oltre ai [campi di input comuni](#common-input-fields), gli hook Elicitation ricevono `mcp_server_name`, `message` e i campi facoltativi `mode`, `url`, `elicitation_id` e `requested_schema`.

3636 3647 

3637Per l'elicitazione in modalità modulo, il caso più comune:3648Per l'elicitation in modalità form, il caso più comune:

3638 3649 

3639```json theme={null}3650```json theme={null}

3640{3651{


3654}3665}

3655```3666```

3656 3667 

3657Per l'elicitazione in modalità URL, usata per l'autenticazione basata su browser:3668Per l'elicitation in modalità URL, usata per l'autenticazione basata su browser:

3658 3669 

3659```json theme={null}3670```json theme={null}

3660{3671{


3670```3681```

3671 3682 

3672<h4 id="elicitation-output">3683<h4 id="elicitation-output">

3673 Output Elicitation3684 Output di Elicitation

3674</h4>3685</h4>

3675 3686 

3676Per rispondere programmaticamente senza mostrare il dialogo, restituisci un oggetto JSON con `hookSpecificOutput`:3687Per rispondere in modo programmatico senza mostrare la finestra di dialogo, restituisci un oggetto JSON con `hookSpecificOutput`:

3677 3688 

3678```json theme={null}3689```json theme={null}

3679{3690{


3689 3700 

3690| Campo | Valori | Descrizione |3701| Campo | Valori | Descrizione |

3691| :- | :- | :- |3702| :- | :- | :- |

3692| `action` | `accept`, `decline`, `cancel` | Se accettare, rifiutare, o annullare la richiesta |3703| `action` | `accept`, `decline`, `cancel` | Se accettare, rifiutare o annullare la richiesta |

3693| `content` | object | Valori dei campi del modulo da inviare. Usato solo quando `action` è `accept` |3704| `content` | object | Valori dei campi del form da inviare. Usato solo quando `action` è `accept` |

3694 3705 

3695L'uscita con codice 2 nega l'elicitazione. Claude Code non mostra il tuo messaggio stderr da nessuna parte.3706Il codice di uscita 2 nega l'elicitation. Claude Code non mostra il tuo messaggio stderr da nessuna parte.

3696 3707 

3697Claude Code agisce su `hookSpecificOutput` dall'output JSON di un hook Elicitation e scarta `systemMessage` e `continue`.3708Claude Code agisce su `hookSpecificOutput` dall'output JSON di un hook Elicitation e scarta `systemMessage` e `continue`.

3698 3709 


3700 ElicitationResult3711 ElicitationResult

3701</h3>3712</h3>

3702 3713 

3703Si esegue dopo che un utente risponde a un'elicitazione MCP. Gli hook possono osservare, modificare, o bloccare la risposta prima che venga inviata di nuovo al server MCP.3714Viene eseguito dopo che un utente risponde a un'elicitation MCP. Gli hook possono osservare, modificare o bloccare la risposta prima che venga rinviata al server MCP.

3704 3715 

3705Il campo matcher corrisponde al nome del server MCP.3716Il campo matcher viene confrontato con il nome del server MCP.

3706 3717 

3707<h4 id="elicitationresult-input">3718<h4 id="elicitationresult-input">

3708 Input ElicitationResult3719 Input di ElicitationResult

3709</h4>3720</h4>

3710 3721 

3711Oltre ai [campi di input comuni](#common-input-fields), gli hook ElicitationResult ricevono `mcp_server_name`, `action`, e campi facoltativi `mode`, `elicitation_id`, e `content`.3722Oltre ai [campi di input comuni](#common-input-fields), gli hook ElicitationResult ricevono `mcp_server_name`, `action` e i campi facoltativi `mode`, `elicitation_id` e `content`.

3712 3723 

3713```json theme={null}3724```json theme={null}

3714{3725{


3725```3736```

3726 3737 

3727<h4 id="elicitationresult-output">3738<h4 id="elicitationresult-output">

3728 Output ElicitationResult3739 Output di ElicitationResult

3729</h4>3740</h4>

3730 3741 

3731Per sovrascrivere la risposta dell'utente, restituisci un oggetto JSON con `hookSpecificOutput`:3742Per sovrascrivere la risposta dell'utente, restituisci un oggetto JSON con `hookSpecificOutput`:


3743| Campo | Valori | Descrizione |3754| Campo | Valori | Descrizione |

3744| :- | :- | :- |3755| :- | :- | :- |

3745| `action` | `accept`, `decline`, `cancel` | Sovrascrive l'azione dell'utente |3756| `action` | `accept`, `decline`, `cancel` | Sovrascrive l'azione dell'utente |

3746| `content` | object | Sovrascrive i valori dei campi del modulo. Significativo solo quando `action` è `accept` |3757| `content` | object | Sovrascrive i valori dei campi del form. Significativo solo quando `action` è `accept` |

3747 3758 

3748L'uscita con codice 2 blocca la risposta, cambiando l'azione effettiva a `decline`. Claude Code non mostra il tuo messaggio stderr da nessuna parte.3759Il codice di uscita 2 blocca la risposta, cambiando l'azione effettiva in `decline`. Claude Code non mostra il tuo messaggio stderr da nessuna parte.

3749 3760 

3750Claude Code agisce su `hookSpecificOutput` dall'output JSON di un hook ElicitationResult e scarta `systemMessage` e `continue`.3761Claude Code agisce su `hookSpecificOutput` dall'output JSON di un hook ElicitationResult e scarta `systemMessage` e `continue`.

3751 3762 

hooks-guide.md +1 −1

Details

503| :- | :- |503| :- | :- |

504| `SessionStart` | Quando una sessione inizia o riprende |504| `SessionStart` | Quando una sessione inizia o riprende |

505| `Setup` | Quando avvii Claude Code con `--init-only`, o con `--init` o `--maintenance` in modalità `-p`. Per la preparazione una tantum in CI o script |505| `Setup` | Quando avvii Claude Code con `--init-only`, o con `--init` o `--maintenance` in modalità `-p`. Per la preparazione una tantum in CI o script |

506| `UserPromptSubmit` | Quando invii un prompt, prima che Claude lo elabori |506| `UserPromptSubmit` | Quando viene inviato un prompt, prima che Claude lo elabori. Si attiva anche nei [turni che Claude Code avvia autonomamente](/docs/it/hooks#userpromptsubmit) |

507| `UserPromptExpansion` | Quando un comando digitato dall'utente si espande in un prompt, prima che raggiunga Claude. Può bloccare l'espansione |507| `UserPromptExpansion` | Quando un comando digitato dall'utente si espande in un prompt, prima che raggiunga Claude. Può bloccare l'espansione |

508| `PreToolUse` | Prima che una chiamata a uno strumento si esegua. Può bloccarla |508| `PreToolUse` | Prima che una chiamata a uno strumento si esegua. Può bloccarla |

509| `PermissionRequest` | Quando una chiamata a uno strumento necessita di una decisione di autorizzazione |509| `PermissionRequest` | Quando una chiamata a uno strumento necessita di una decisione di autorizzazione |

keybindings.md +27 −1

Details

68| `EffortSlider` | Cursore di sforzo aperto da `/effort` |68| `EffortSlider` | Cursore di sforzo aperto da `/effort` |

69| `Select` | Componenti generici di selezione/elenco |69| `Select` | Componenti generici di selezione/elenco |

70| `Plugin` | Dialogo dei plugin (sfoglia, scopri, gestisci) |70| `Plugin` | Dialogo dei plugin (sfoglia, scopri, gestisci) |

71| `Pane` | Un riquadro disegnato da un [mod](/docs/it/plugins/mods/interface#know-which-keys-your-mod-can-receive) ha il focus della tastiera |

72| `PaneField` | Un campo di input o una selezione nel riquadro di un mod ha il focus della tastiera |

71| `Agents` | [Visualizzazione agente](/docs/it/agent-view) (`claude agents`) |73| `Agents` | [Visualizzazione agente](/docs/it/agent-view) (`claude agents`) |

72| `Scroll` | Scorrimento della conversazione e selezione del testo in modalità a schermo intero |74| `Scroll` | Scorrimento della conversazione e selezione del testo in modalità a schermo intero |

73 75 


596 598 

597Questo funziona anche per i binding degli accordi. Annullare l'associazione di ogni accordo che condivide un prefisso libera quel prefisso per l'uso come binding a tasto singolo. Un accordo in qualsiasi contesto attivo mantiene il suo prefisso riservato, quindi è necessario annullare l'associazione di ogni accordo nel contesto che lo definisce.599Questo funziona anche per i binding degli accordi. Annullare l'associazione di ogni accordo che condivide un prefisso libera quel prefisso per l'uso come binding a tasto singolo. Un accordo in qualsiasi contesto attivo mantiene il suo prefisso riservato, quindi è necessario annullare l'associazione di ogni accordo nel contesto che lo definisce.

598 600 

599Claude Code associa questi accordi predefiniti sul prefisso `ctrl+x`: `ctrl+x ctrl+k`, `ctrl+x ctrl+e`, `ctrl+x enter`, `ctrl+x ctrl+a`, `ctrl+x ctrl+s`, e `ctrl+x tab` in `Chat`, `ctrl+x ctrl+b` in `Task`, e `ctrl+x b` in `DiffPanel`. L'accordo `ctrl+x enter` richiede v2.1.247 o successivo, `ctrl+x b`, `ctrl+x ctrl+a`, e `ctrl+x tab` richiedono v2.1.260 o successivo, e `ctrl+x ctrl+s` richiede v2.1.275 o successivo.601Claude Code associa questi accordi predefiniti sul prefisso `ctrl+x`, per contesto:

602 

603* `Chat`: `ctrl+x ctrl+k`, `ctrl+x ctrl+e`, `ctrl+x enter`, `ctrl+x ctrl+a`, `ctrl+x ctrl+s` e `ctrl+x tab`

604* `Task`: `ctrl+x ctrl+b`

605* `DiffPanel`: `ctrl+x b`

606* `Pane`: `ctrl+x left`, `ctrl+x right`, `ctrl+x up`, `ctrl+x down` e `ctrl+x x`

607* `PaneField`: `ctrl+x x`

608 

609L'accordo `ctrl+x enter` richiede v2.1.247 o successivo, `ctrl+x b`, `ctrl+x ctrl+a` e `ctrl+x tab` richiedono v2.1.260 o successivo, e `ctrl+x ctrl+s` richiede v2.1.275 o successivo.

600 610 

601Per reclamare `ctrl+x` stesso come binding a tasto singolo, annullare l'associazione di tutti loro:611Per reclamare `ctrl+x` stesso come binding a tasto singolo, annullare l'associazione di tutti loro:

602 612 


615 "ctrl+x b": null625 "ctrl+x b": null

616 }626 }

617 },627 },

628 {

629 "context": "Pane",

630 "bindings": {

631 "ctrl+x left": null,

632 "ctrl+x right": null,

633 "ctrl+x up": null,

634 "ctrl+x down": null,

635 "ctrl+x x": null

636 }

637 },

638 {

639 "context": "PaneField",

640 "bindings": {

641 "ctrl+x x": null

642 }

643 },

618 {644 {

619 "context": "Chat",645 "context": "Chat",

620 "bindings": {646 "bindings": {

Details

245| [Gestione del contesto](https://platform.claude.com/docs/en/build-with-claude/context-editing) | L'intestazione beta di gestione del contesto si associa al campo del corpo `context_management` | `400` con `Extra inputs are not permitted`. Comune quando un gateway accetta richieste in formato Anthropic ma le inoltra ad Amazon Bedrock | Inoltrare entrambi, oppure [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |245| [Gestione del contesto](https://platform.claude.com/docs/en/build-with-claude/context-editing) | L'intestazione beta di gestione del contesto si associa al campo del corpo `context_management` | `400` con `Extra inputs are not permitted`. Comune quando un gateway accetta richieste in formato Anthropic ma le inoltra ad Amazon Bedrock | Inoltrare entrambi, oppure [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |

246| [Contesto esteso](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) e [pensiero interleaved](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | Solo intestazioni beta, nessun campo del corpo | Silenziosamente non disponibile quando l'intestazione viene rimossa; l'upstream non vede mai la richiesta di capacità | Inoltrare `anthropic-beta` verbatim |246| [Contesto esteso](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) e [pensiero interleaved](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | Solo intestazioni beta, nessun campo del corpo | Silenziosamente non disponibile quando l'intestazione viene rimossa; l'upstream non vede mai la richiesta di capacità | Inoltrare `anthropic-beta` verbatim |

247| Beta [tool fields](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) | Le intestazioni beta relative agli strumenti si associano ai campi dello schema dello strumento come `strict` e `defer_loading` | `400` che nomina il campo dello schema dello strumento non riconosciuto quando il corpo passa attraverso senza la sua intestazione | Inoltrare entrambi, o [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |247| Beta [tool fields](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) | Le intestazioni beta relative agli strumenti si associano ai campi dello schema dello strumento come `strict` e `defer_loading` | `400` che nomina il campo dello schema dello strumento non riconosciuto quando il corpo passa attraverso senza la sua intestazione | Inoltrare entrambi, o [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |

248| [Sforzo](https://platform.claude.com/docs/en/build-with-claude/effort) e [output strutturati](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | Il campo del corpo `output_config` contiene le impostazioni di sforzo, formato di output strutturato e budget dei compiti; ciascuna si associa alla propria intestazione beta | `400` che nomina `output_config`, spesso `Extra inputs are not permitted`, su upstream Amazon Bedrock e Google Cloud's Agent Platform | Inoltrare il campo e le sue intestazioni insieme, oppure chiedere agli sviluppatori di impostare [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities), che rimuove le impostazioni di formato e budget dei compiti ma non lo sforzo |248| [Sforzo](https://platform.claude.com/docs/en/build-with-claude/effort) e [output strutturati](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | Il campo del corpo `output_config` contiene le impostazioni di sforzo, formato di output strutturato e budget dei compiti; ciascuna si associa alla propria intestazione beta | `400` che nomina `output_config`, spesso `Extra inputs are not permitted`, su upstream Amazon Bedrock e Google Cloud's Agent Platform | Inoltrare il campo e le sue intestazioni insieme, oppure chiedere agli sviluppatori di impostare [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities), che rimuove le impostazioni di formato e budget dei compiti ma non lo sforzo. Per rimuovere solo il formato, possono invece impostare [`CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS=1`](/docs/it/env-vars), che richiede la v2.1.288 o successiva |

249| [Prompt caching](/docs/it/prompt-caching) | Nessun accoppiamento beta. Claude Code allega marcatori `cache_control` ai blocchi `system` e alle voci `messages`, incluse le voci `role: "system"` aggiunte a metà conversazione | Nessun errore: la conversazione viene fatturata come input non memorizzato in cache ad ogni turno, visibile come `input_tokens` elevati con poca o nessuna attività di cache in `usage` | Inoltrare `cache_control` invariato ovunque appaia, e non convertire il contenuto del blocco `system` o del messaggio in stringhe semplici |249| [Prompt caching](/docs/it/prompt-caching) | Nessun accoppiamento beta. Claude Code allega marcatori `cache_control` ai blocchi `system` e alle voci `messages`, incluse le voci `role: "system"` aggiunte a metà conversazione | Nessun errore: la conversazione viene fatturata come input non memorizzato in cache ad ogni turno, visibile come `input_tokens` elevati con poca o nessuna attività di cache in `usage` | Inoltrare `cache_control` invariato ovunque appaia, e non convertire il contenuto del blocco `system` o del messaggio in stringhe semplici |

250| [Conteggio dei token](https://platform.claude.com/docs/en/build-with-claude/token-counting) | Nessun accoppiamento beta; utilizza l'endpoint `count_tokens` | Nessun errore: Claude Code ricade a una stima basata su caratteri, quindi `/context` mostra conteggi approssimativi | Esporre l'endpoint per conteggi di token esatti |250| [Conteggio dei token](https://platform.claude.com/docs/en/build-with-claude/token-counting) | Nessun accoppiamento beta; utilizza l'endpoint `count_tokens` | Nessun errore: Claude Code ricade a una stima basata su caratteri, quindi `/context` mostra conteggi approssimativi | Esporre l'endpoint per conteggi di token esatti |

251 251 


362Un ID scoperto non ottiene la sua propria riga quando corrisponde a una riga già nel selettore:362Un ID scoperto non ottiene la sua propria riga quando corrisponde a una riga già nel selettore:

363 363 

364* Stesso ID: l'ID scoperto corrisponde esattamente all'ID di una riga esistente, oppure i due ID sono ortografie della stessa versione [Fable](/docs/it/model-config#work-with-fable).364* Stesso ID: l'ID scoperto corrisponde esattamente all'ID di una riga esistente, oppure i due ID sono ortografie della stessa versione [Fable](/docs/it/model-config#work-with-fable).

365* Stesso modello di un alias integrato: quando un ID esplicito scoperto nomina il modello a cui un alias integrato attualmente si risolve, il selettore mostra solo la riga dell'alias. Ad esempio, mentre `sonnet` si risolve in `claude-sonnet-5-5`, un `claude-sonnet-5-5` scoperto si comprime nella riga `sonnet`, e un `claude-sonnet-5` scoperto ottiene comunque la sua propria riga. Prima della v2.1.197, Claude Code non piegava questi ID nelle righe integrate, quindi l'ID a cui un alias si risolveva otteneva anche la sua propria riga "From gateway".365* Stesso modello di un alias integrato: quando un ID esplicito scoperto nomina il modello a cui un alias integrato attualmente si risolve, il selettore mostra solo la riga dell'alias. Ad esempio, mentre `sonnet` si risolve in `claude-sonnet-5-5`, un `claude-sonnet-5-5` scoperto si comprime nella riga `sonnet`, e un `claude-sonnet-5` scoperto ottiene comunque la sua propria riga.

366 366 

367I risultati vengono memorizzati nella cache in `~/.claude/cache/gateway-models.json`, o `%USERPROFILE%\.claude\cache\gateway-models.json` su Windows, e aggiornati ad ogni avvio. Se impostate [`CLAUDE_CONFIG_DIR`](/docs/it/env-vars), la cache si trova invece in quella directory. Se la richiesta fallisce o il gateway non implementa `/v1/models`, il selettore ricade all'elenco memorizzato nella cache dall'avvio precedente o all'elenco dei modelli integrati. Se il vostro gateway serve modelli Claude con alias che non corrispondono al filtro di scoperta, gli sviluppatori possono aggiungere quegli alias manualmente con le [variabili di configurazione del modello](/docs/it/model-config).367I risultati vengono memorizzati nella cache in `~/.claude/cache/gateway-models.json`, o `%USERPROFILE%\.claude\cache\gateway-models.json` su Windows, e aggiornati ad ogni avvio. Se impostate [`CLAUDE_CONFIG_DIR`](/docs/it/env-vars), la cache si trova invece in quella directory. Se la richiesta fallisce o il gateway non implementa `/v1/models`, il selettore ricade all'elenco memorizzato nella cache dall'avvio precedente o all'elenco dei modelli integrati. Se il vostro gateway serve modelli Claude con alias che non corrispondono al filtro di scoperta, gli sviluppatori possono aggiungere quegli alias manualmente con le [variabili di configurazione del modello](/docs/it/model-config).

368 368 

mcp.md +13 −13

Details

371 371 

372Su v2, Claude Code inoltre:372Su v2, Claude Code inoltre:

373 373 

374* Chiede ai server HTTP se supportano la revisione più recente, e la utilizza con quelli che la supportano. Lo chiede anche ai server dei connettori claude.ai nelle sessioni in cui recupera i feature flag. Per fargli porre la domanda ai server stdio, o ai server dei connettori in ogni sessione, imposta [`MCP_PROTOCOL_NEGOTIATION`](/docs/it/env-vars) su `auto`. Si connette a ogni altro server come fa v1.374* Chiede ai server HTTP se supportano la revisione più recente, e la utilizza con quelli che la supportano. Nelle sessioni in cui recupera i feature flag, lo chiede anche ai server dei connettori claude.ai, e su Claude Code v2.1.285 o successivo lo chiede ai server stdio man mano che Anthropic distribuisce questa modifica. Per fargli porre la domanda ai server dei connettori e ai server stdio in ogni sessione, imposta [`MCP_PROTOCOL_NEGOTIATION`](/docs/it/env-vars) su `auto`. Si connette a ogni altro server come fa v1.

375* Riceve le notifiche `list_changed` dai server sulla revisione più recente tramite un [flusso che mantiene aperto](#notification-streams-on-the-v2-runtime).375* Riceve le notifiche `list_changed` dai server sulla revisione più recente tramite un [flusso che mantiene aperto](#notification-streams-on-the-v2-runtime).

376* Non registra un server [canale](#push-messages-with-channels) che si connette sulla revisione più recente, perché quella revisione non può trasportare messaggi di canale.376* Non registra un server [canale](#push-messages-with-channels) che si connette sulla revisione più recente, perché quella revisione non può trasportare messaggi di canale.

377* Fa fallire un [accesso OAuth MCP](#authenticate-with-remote-mcp-servers) la cui risposta di autorizzazione indica un emittente inatteso.377* Fa fallire un [accesso OAuth MCP](#authenticate-with-remote-mcp-servers) la cui risposta di autorizzazione indica un emittente inatteso.


456 456 

457Un server MCP può anche inviare messaggi direttamente nella tua sessione in modo che Claude possa reagire a eventi esterni come risultati CI, avvisi di monitoraggio o messaggi di chat. Per abilitare questa funzione, il tuo server dichiara la capacità `claude/channel` e tu lo abiliti con il flag `--channels` all'avvio. Consulta [Canali](/docs/it/channels) per utilizzare un canale ufficialmente supportato, o [Riferimento dei canali](/docs/it/channels-reference) per crearne uno tuo.457Un server MCP può anche inviare messaggi direttamente nella tua sessione in modo che Claude possa reagire a eventi esterni come risultati CI, avvisi di monitoraggio o messaggi di chat. Per abilitare questa funzione, il tuo server dichiara la capacità `claude/channel` e tu lo abiliti con il flag `--channels` all'avvio. Consulta [Canali](/docs/it/channels) per utilizzare un canale ufficialmente supportato, o [Riferimento dei canali](/docs/it/channels-reference) per crearne uno tuo.

458 458 

459Sul [runtime v2](#mcp-client-runtimes), se imposti [`MCP_PROTOCOL_NEGOTIATION`](/docs/it/env-vars) su `auto` e un server di canale negozia la revisione del protocollo MCP 2026-07-28, non può consegnare messaggi di canale, quindi Claude Code non lo registra come canale. Lasciare la variabile non impostata, o impostarla su `legacy`, mantiene i server stdio sull'handshake precedente.459Sul [runtime v2](#mcp-client-runtimes), un server di canale che negozia la revisione del protocollo MCP 2026-07-28 non può consegnare messaggi di canale, quindi Claude Code non lo registra come canale. Un server di canale che non supporta quella revisione si connette con l'handshake precedente e si registra come prima.

460 

461Claude Code chiede quella revisione ai server stdio quando imposti [`MCP_PROTOCOL_NEGOTIATION`](/docs/it/env-vars) su `auto`. Anthropic sta inoltre attivando questo comportamento per impostazione predefinita, per Claude Code v2.1.285 o successivo, nelle sessioni in cui Claude Code [recupera i feature flag](/docs/it/env-vars#features-that-need-feature-flag-fetching). Per mantenere un server di canale stdio sull'handshake precedente, imposta `MCP_PROTOCOL_NEGOTIATION` su `legacy`, che mantiene ogni server su di esso.

460 462 

461<Tip>463<Tip>

462 Suggerimenti:464 Suggerimenti:


1478La [gestione del combinatore a livello di root](#tool-input-schemas-with-a-root-level-combinator) è separata e mantiene il suo comportamento quando il recupero dei flag è disattivato o i flag non sono mai arrivati.1480La [gestione del combinatore a livello di root](#tool-input-schemas-with-a-root-level-combinator) è separata e mantiene il suo comportamento quando il recupero dei flag è disattivato o i flag non sono mai arrivati.

1479 1481 

1480<h2 id="require-approval-for-a-specific-tool">1482<h2 id="require-approval-for-a-specific-tool">

1481 Richiedere approvazione per uno strumento specifico1483 Richiedere l'approvazione per uno strumento specifico

1482</h2>1484</h2>

1483 1485 

1484Se state creando un server MCP, potete contrassegnare uno strumento come richiedente approvazione esplicita ad ogni chiamata impostando `_meta["anthropic/requiresUserInteraction"]` a `true` nella voce di risposta `tools/list` dello strumento. Il valore deve essere il booleano JSON `true`; qualsiasi altro valore viene ignorato.1486Se stai creando un server MCP, puoi contrassegnare uno strumento come soggetto ad approvazione esplicita a ogni chiamata impostando `_meta["anthropic/requiresUserInteraction"]` a `true` nella voce dello strumento all'interno della risposta `tools/list`. Il valore deve essere il booleano JSON `true`; qualsiasi altro valore viene ignorato.

1485 1487 

1486Claude Code mostra il prompt di autorizzazione di quello strumento ad ogni chiamata, anche in modalità di autorizzazione `acceptEdits`, `auto` e `bypassPermissions` [permission modes](/docs/it/permissions#permission-modes), e non offre un'opzione "non chiedere di nuovo" per esso. Le [Allow rules](/docs/it/permissions#permission-rule-syntax) che corrispondono allo strumento non saltano il prompt neanche. In modalità `dontAsk`, che non chiede mai, Claude Code nega la chiamata.1488Claude Code mostra la richiesta di permesso di quello strumento a ogni chiamata, anche nelle [modalità di permesso](/docs/it/permissions#permission-modes) `acceptEdits`, `auto` e `bypassPermissions`, e non offre per esso un'opzione "non chiedere più". Nemmeno le [regole allow](/docs/it/permissions#permission-rule-syntax) che corrispondono allo strumento permettono di saltare la richiesta. In modalità `dontAsk`, che non chiede mai nulla, Claude Code invece nega la chiamata.

1487 1489 

1488Il prompt deve raggiungere una persona. In modalità non interattiva con [`--permission-prompt-tool`](/docs/it/cli-reference#cli-flags), un risultato `allow` dal tool di prompt per uno strumento contrassegnato viene convertito in un rifiuto con il messaggio `MCP tool requires user interaction; not supported via --permission-prompt-tool`. Il callback [`canUseTool`](/docs/it/agent-sdk/permissions) dell'Agent SDK riceve effettivamente queste chiamate e può approvarle, perché la vostra applicazione SDK è prevista che le mostri a un utente.1490La richiesta deve raggiungere una persona. In modalità non interattiva con [`--permission-prompt-tool`](/docs/it/cli-reference#cli-flags), un risultato `allow` restituito dallo strumento di prompt per uno strumento contrassegnato viene convertito in un rifiuto con il messaggio `MCP tool requires user interaction; not supported via --permission-prompt-tool`. Il [callback `canUseTool`](/docs/it/agent-sdk/permissions) dell'Agent SDK invece riceve queste chiamate e può approvarle, perché ci si aspetta che la tua applicazione SDK le mostri a un utente.

1489 1491 

1490Utilizzate questa funzione per strumenti il cui prompt di autorizzazione è esso stesso il punto, come un passaggio di consenso o concessione di accesso dove l'approvazione automatica significherebbe che nessun essere umano ha mai acconsentito. Gli altri strumenti dello stesso server mantengono il loro comportamento di autorizzazione normale.1492Usa questa funzionalità per gli strumenti la cui richiesta di permesso è proprio lo scopo, come un passaggio di consenso o di concessione dell'accesso in cui l'approvazione automatica significherebbe che nessun essere umano ha mai dato il proprio consenso. Gli altri strumenti dello stesso server mantengono il normale comportamento dei permessi.

1491 1493 

1492La seguente voce `tools/list` contrassegna uno strumento come sempre richiedente approvazione.1494La seguente voce `tools/list` contrassegna uno strumento come sempre soggetto ad approvazione.

1493 1495 

1494```json theme={null}1496```json theme={null}

1495{1497{


1501}1503}

1502```1504```

1503 1505 

1504L'annotazione `anthropic/requiresUserInteraction` richiede Claude Code v2.1.199 o successivo. Le versioni precedenti la ignorano e applicano il flusso di autorizzazione standard.1506Alcune superfici, come [Remote Control](/docs/it/remote-control) e le applicazioni create con l'[Agent SDK](/docs/it/agent-sdk/overview), normalmente ti permettono di approvare le chiamate agli strumenti con un solo tocco. Per uno strumento contrassegnato con questa annotazione, Claude Code non offre l'azione a un tocco e mostra invece la richiesta di permesso completa dello strumento, così l'approvazione arriva comunque da una persona che risponde alla richiesta anziché da un tocco.

1505 

1506Alcune superfici, come [Remote Control](/docs/it/remote-control) e applicazioni costruite su [Agent SDK](/docs/it/agent-sdk/overview), normalmente vi permettono di approvare le chiamate di strumenti con un tocco. Per uno strumento contrassegnato con questa annotazione, Claude Code trattiene l'azione a un tocco e mostra il prompt di autorizzazione completo dello strumento, così l'approvazione viene ancora da una persona che risponde al prompt piuttosto che da un tocco.

1507 1507 

1508Claude Code trattiene l'approvazione a un tocco allo stesso modo per qualsiasi richiesta di autorizzazione che solo il dialogo del terminale può rendere completamente, come una che porta un avviso di sicurezza o un'opzione di sempre-consenti che la superficie remota non può mostrare. Rispondete a quella richiesta nel dialogo del terminale piuttosto che da Remote Control. Richiede Claude Code v2.1.214 o successivo.1508Claude Code non offre l'approvazione a un tocco, allo stesso modo, per qualsiasi richiesta di permesso che solo la finestra di dialogo del terminale può visualizzare per intero, come una che include un avviso di sicurezza o un'opzione "consenti sempre" che la superficie remota non può mostrare. Rispondi a quella richiesta nella finestra di dialogo del terminale anziché da Remote Control. Richiede Claude Code v2.1.214 o successivo.

1509 1509 

1510<h2 id="respond-to-mcp-elicitation-requests">1510<h2 id="respond-to-mcp-elicitation-requests">

1511 Rispondere alle richieste di elicitazione MCP1511 Rispondere alle richieste di elicitazione MCP


1516I server possono richiedere input in due modi:1516I server possono richiedere input in due modi:

1517 1517 

1518* **Modalità modulo**: Claude Code mostra una finestra di dialogo con campi modulo definiti dal server (ad esempio, un prompt di nome utente e password). Compilate i campi e inviate.1518* **Modalità modulo**: Claude Code mostra una finestra di dialogo con campi modulo definiti dal server (ad esempio, un prompt di nome utente e password). Compilate i campi e inviate.

1519* **Modalità URL**: Claude Code chiede se aprire un collegamento nel vostro browser e lo apre quando accettate. I server utilizzano questa modalità per un flusso che si conclude al di fuori del terminale, come l'accesso.1519* **Modalità URL**: Claude Code chiede se aprire un collegamento nel tuo browser. I server utilizzano questa modalità per un flusso che si conclude al di fuori del terminale, come l'accesso.

1520 1520 

1521In modalità URL, Claude Code trasmette l'URL come argomento della riga di comando al gestore URL del vostro sistema e limita la lunghezza di tale argomento. Quando l'URL, una volta sottoposto a escape per la riga di comando, supera tale limite, potete solo rifiutare la richiesta. Ogni carattere che necessita di escape, come `%` o `&`, conta quattro volte verso il limite: il suo carattere più tre caratteri di escape. Un URL senza nessuno di essi raggiunge il limite a circa 8.000 caratteri. Un URL costruito principalmente con escape percentuali, dove ogni terzo carattere è un `%`, lo raggiunge a circa 4.000.1521In modalità URL, Claude Code trasmette l'URL come argomento della riga di comando al gestore URL del vostro sistema e limita la lunghezza di tale argomento. Quando l'URL, una volta sottoposto a escape per la riga di comando, supera tale limite, potete solo rifiutare la richiesta. Ogni carattere che necessita di escape, come `%` o `&`, conta quattro volte verso il limite: il suo carattere più tre caratteri di escape. Un URL senza nessuno di essi raggiunge il limite a circa 8.000 caratteri. Un URL costruito principalmente con escape percentuali, dove ogni terzo carattere è un `%`, lo raggiunge a circa 4.000.

1522 1522 

model-config.md +4 −3

Details

794 794 

795<span id="context-window-behind-a-gateway" />795<span id="context-window-behind-a-gateway" />

796 796 

797Se imposti `ANTHROPIC_BASE_URL` a un [gateway LLM](/docs/it/llm-gateway) o un altro proxy, Claude Code assegna a ogni modello che riconosce la stessa finestra di contesto che il modello ha su Anthropic API. Fable 5.1, Fable 5, Sonnet 5 e successivi, e Opus 4.7 e successivi ottengono la finestra 1M senza variante `[1m]` da selezionare, e un modello che raggiunge 1M solo attraverso la sua variante `[1m]`, come Opus 4.6, viene eseguito a 200K senza di essa. Claude Code non può rilevare un limite inferiore che il gateway o il server dietro di esso applica. Se il tuo gateway rifiuta le richieste sopra 200K token, esegui [`/autocompact 200k`](#set-the-auto-compact-window) in modo che le sessioni si compattino a quel confine.797Se imposti `ANTHROPIC_BASE_URL` su un [gateway LLM](/docs/it/llm-gateway) o un altro proxy, Claude Code assegna a ogni modello che riconosce la stessa finestra di contesto che il modello ha su Anthropic API. Fable 5.1, Fable 5, Sonnet 5 e successivi, e Opus 4.7 e successivi ottengono la finestra 1M senza una variante `[1m]` da selezionare, e un modello che raggiunge 1M solo tramite la sua variante `[1m]`, come Opus 4.6, viene eseguito a 200K senza di essa. Claude Code non può rilevare un limite inferiore applicato dal gateway o dal server che si trova dietro di esso. Se il tuo gateway rifiuta le richieste sopra i 200K token, imposta [`CLAUDE_CODE_AUTO_COMPACT_WINDOW=200000`](/docs/it/env-vars) nell'ambiente che avvia Claude Code, in modo che le sessioni su ogni modello [si compattino a quel limite](#set-the-auto-compact-window).

798 798 

799Per disattivare il contesto 1M, imposta `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`. Claude Code rimuove le varianti di modello 1M dal selettore di modelli. Su modelli con una finestra 1M nativa, come Sonnet 5 e i modelli Fable, tratta anche il modello come avente una finestra di contesto di 200K:799Per disattivare il contesto 1M, imposta `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`. Claude Code rimuove le varianti di modello 1M dal selettore di modelli. Su modelli con una finestra 1M nativa, come Sonnet 5 e i modelli Fable, tratta anche il modello come avente una finestra di contesto di 200K:

800 800 


840 Impostare la finestra auto-compact840 Impostare la finestra auto-compact

841</h3>841</h3>

842 842 

843È possibile impostare la finestra auto-compact in tre posizioni:843Puoi impostare la finestra di compattazione automatica in queste posizioni:

844 844 

845* **Per questa sessione e quelle successive**: eseguire `/autocompact` con un valore, come `/autocompact 500k`. Claude Code lo salva nelle impostazioni utente come [`autoCompactWindow`](/docs/it/settings-reference#autocompactwindow) e lo applica alla sessione corrente; se un [ambito di impostazioni](/docs/it/settings#settings-precedence) con priorità più alta, come le impostazioni gestite, imposta la chiave, il comando salva il valore ma la sessione mantiene la finestra di tale ambito, e il comando lo comunica. Eseguire `/autocompact auto` per tornare alla finestra ottimizzata per il modello.845* **Per il modello corrente, in questa sessione e in quelle successive**: esegui `/autocompact` con un valore, come `/autocompact 500k`. Claude Code lo salva nelle tue impostazioni utente sotto il modello corrente in [`modelSettings`](/docs/it/settings-reference#modelsettings) e lo applica alla sessione corrente. Se un [ambito di impostazioni](/docs/it/settings#settings-precedence) con priorità più alta, come le impostazioni gestite, imposta una propria finestra per quel modello o per tutti i modelli, il comando salva il tuo valore ma la sessione mantiene la finestra di tale ambito, e il comando lo comunica. Esegui `/autocompact auto` per tornare alla finestra ottimizzata per il tuo modello. Prima della v2.1.288, il comando salvava un'unica finestra per tutti i modelli, come `autoCompactWindow` di primo livello.

846* **Per tutti i modelli**: imposta [`autoCompactWindow`](/docs/it/settings-reference#autocompactwindow) in un file di impostazioni, ad esempio `"autoCompactWindow": 200000` in `~/.claude/settings.json`. Una finestra che hai salvato per un modello con `/autocompact` ha la precedenza su questa chiave nello stesso file per quel modello.

846* **Per un singolo avvio**: passare [`--autocompact`](/docs/it/cli-reference#cli-flags) all'avvio di Claude Code. Il flag sostituisce l'impostazione salvata per tale avvio senza modificarla, e `claude --autocompact auto` esegue la sessione alla finestra ottimizzata anche se l'impostazione salvata ha un valore. A differenza di `/autocompact`, il flag non è prevenuto da un ambito di impostazioni con priorità più alta, come le impostazioni gestite.847* **Per un singolo avvio**: passare [`--autocompact`](/docs/it/cli-reference#cli-flags) all'avvio di Claude Code. Il flag sostituisce l'impostazione salvata per tale avvio senza modificarla, e `claude --autocompact auto` esegue la sessione alla finestra ottimizzata anche se l'impostazione salvata ha un valore. A differenza di `/autocompact`, il flag non è prevenuto da un ambito di impostazioni con priorità più alta, come le impostazioni gestite.

847* **In script e ambienti cloud**: impostare [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/it/env-vars). Mentre è impostato, ha precedenza sul comando, sul flag e sull'impostazione, e `/autocompact` segnala l'override invece di modificare la finestra.848* **In script e ambienti cloud**: impostare [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/it/env-vars). Mentre è impostato, ha precedenza sul comando, sul flag e sull'impostazione, e `/autocompact` segnala l'override invece di modificare la finestra.

848 849 

Details

785 Evento di prompt dell'utente785 Evento di prompt dell'utente

786</h4>786</h4>

787 787 

788Registrato quando un utente invia un prompt.788Registrato quando viene inviato un prompt, inclusi i turni che Claude Code avvia autonomamente.

789 789 

790**Nome evento**: `claude_code.user_prompt`790**Nome evento**: `claude_code.user_prompt`

791 791 

Details

578 578 

579Se imposti la modalità `dontAsk`, Claude Code nega automaticamente ogni chiamata di strumento che altrimenti richiederebbe una richiesta. Claude esegue ancora azioni che non richiedono approvazione in modalità Manual, come le letture di file all'interno delle tue directory di lavoro e i [comandi Bash di sola lettura](/docs/it/permissions#read-only-commands), più le azioni che corrispondono alle tue regole `permissions.allow` e le chiamate approvate da un [hook PreToolUse](/docs/it/permissions#extend-permissions-with-hooks). Utilizza questa modalità per pipeline CI o ambienti limitati in cui pre-definisci cosa Claude può fare; la sessione non attende mai input. La barra di stato mostra `⏵⏵ don't ask on` mentre questa modalità è attiva.579Se imposti la modalità `dontAsk`, Claude Code nega automaticamente ogni chiamata di strumento che altrimenti richiederebbe una richiesta. Claude esegue ancora azioni che non richiedono approvazione in modalità Manual, come le letture di file all'interno delle tue directory di lavoro e i [comandi Bash di sola lettura](/docs/it/permissions#read-only-commands), più le azioni che corrispondono alle tue regole `permissions.allow` e le chiamate approvate da un [hook PreToolUse](/docs/it/permissions#extend-permissions-with-hooks). Utilizza questa modalità per pipeline CI o ambienti limitati in cui pre-definisci cosa Claude può fare; la sessione non attende mai input. La barra di stato mostra `⏵⏵ don't ask on` mentre questa modalità è attiva.

580 580 

581Claude Code nega le chiamate che corrispondono alle tue regole [`ask`](/docs/it/permissions#manage-permissions) esplicite piuttosto che richiedere una conferma. Nega anche lo strumento integrato `AskUserQuestion` anche se le tue regole di autorizzazione lo corrispondono, e fa lo stesso agli strumenti connector [che la tua organizzazione ha impostato su `ask`](/docs/it/mcp#organization-controls-on-connector-tools) in sessioni dove quella impostazione raggiunge Claude Code. Nega gli strumenti MCP contrassegnati [`_meta["anthropic/requiresUserInteraction"]`](/docs/it/mcp#require-approval-for-a-specific-tool) allo stesso modo, perché la loro scheda di approvazione necessita di una risposta che questa modalità non raccoglie mai; questo richiede Claude Code v2.1.199 o successivo.581Claude Code nega le chiamate che corrispondono alle tue regole [`ask`](/docs/it/permissions#manage-permissions) esplicite piuttosto che richiedere una conferma. Nega anche lo strumento integrato `AskUserQuestion` anche se corrisponde alle tue regole allow, e fa lo stesso con gli strumenti dei connettori [che la tua organizzazione ha impostato su `ask`](/docs/it/mcp#organization-controls-on-connector-tools) nelle sessioni in cui quell'impostazione raggiunge Claude Code. Nega allo stesso modo gli strumenti MCP contrassegnati con [`_meta["anthropic/requiresUserInteraction"]`](/docs/it/mcp#require-approval-for-a-specific-tool), perché la loro scheda di approvazione necessita di una risposta che questa modalità non raccoglie mai.

582 582 

583Le rimozioni `rm` e `rmdir` che prendono di mira un [percorso critico](#critical-paths), come `rm -rf /` e `rm -rf ~`, vengono negate anche quando una regola allow le corrisponde o un hook `PreToolUse` le approva.583Le rimozioni `rm` e `rmdir` che prendono di mira un [percorso critico](#critical-paths), come `rm -rf /` e `rm -rf ~`, vengono negate anche quando una regola allow le corrisponde o un hook `PreToolUse` le approva.

584 584 

Details

371| `workspaceFolder` | No | Percorso della cartella di lavoro per il server |371| `workspaceFolder` | No | Percorso della cartella di lavoro per il server |

372| `startupTimeout` | No | Millisecondi da attendere per l'avvio, un intero positivo |372| `startupTimeout` | No | Millisecondi da attendere per l'avvio, un intero positivo |

373| `shutdownTimeout` | No | Millisecondi da attendere per un arresto elegante, un intero positivo. Quando il timeout scade, Claude Code termina il processo del server. Quando non impostato, non si applica alcun timeout |373| `shutdownTimeout` | No | Millisecondi da attendere per un arresto elegante, un intero positivo. Quando il timeout scade, Claude Code termina il processo del server. Quando non impostato, non si applica alcun timeout |

374| `requestTimeout` | No | Millisecondi da attendere perché il server risponda a una richiesta, un intero positivo. Predefinito a `60000`, quindi una richiesta a cui il server non risponde mai fallisce dopo 60 secondi. Richiede v2.1.288 o successiva |

374| `restartOnCrash` | No | Se riavviare il server dopo che si arresta in modo anomalo. Predefinito a `true`. Impostate a `false` per lasciare un server arrestato in modo anomalo fermo invece di riavviarlo |375| `restartOnCrash` | No | Se riavviare il server dopo che si arresta in modo anomalo. Predefinito a `true`. Impostate a `false` per lasciare un server arrestato in modo anomalo fermo invece di riavviarlo |

375| `maxRestarts` | No | Tentativi di riavvio prima di rinunciare, zero o più |376| `maxRestarts` | No | Tentativi di riavvio prima di rinunciare, zero o più |

376| `diagnostics` | No | Se spingere la diagnostica nel contesto dopo le modifiche. Predefinito a `true` |377| `diagnostics` | No | Se spingere la diagnostica nel contesto dopo le modifiche. Predefinito a `true` |

Details

63 63 

64| Field | Type | Description |64| Field | Type | Description |

65| :- | :- | :- |65| :- | :- | :- |

66| `name` | string | Identificatore del marketplace: lettere, cifre, `.`, `_` e `-`, che iniziano con una lettera o una cifra, e nessun `..`. Forma la metà dopo `@` di ogni [plugin id](/docs/it/plugins/loading#find-where-a-plugin-came-from) installato dal marketplace, quindi `claude plugin validate` non riesce con altri nomi. Vedere [Reserved names](#reserved-names) |66| `name` | string | Identificatore del marketplace: lettere, cifre, `.`, `_` e `-`, che iniziano con una lettera o una cifra, e nessun `..`. `claude plugin validate` non riesce con qualsiasi altro nome, perché Claude Code non può installare plugin da un marketplace che ne usa uno. Gli utenti digitano il nome dopo `@` in un [plugin id](/docs/it/plugins/loading#find-where-a-plugin-came-from) come `my-plugin@my-marketplace` quando installano un plugin. Consulta [Reserved names](#reserved-names) |

67| `owner` | object | Informazioni del manutentore. `name` è obbligatorio; `email` e `url` sono facoltativi |67| `owner` | object | Informazioni del manutentore. `name` è obbligatorio; `email` e `url` sono facoltativi |

68| `plugins` | array | [Plugin entries](#plugin-entries). Ogni voce è convalidata da sola, quindi una voce non valida non fa fallire il marketplace |68| `plugins` | array | [Plugin entries](#plugin-entries). Ogni voce è convalidata da sola, quindi una voce non valida non fa fallire il marketplace |

69| `$schema` | string | URL dello schema JSON per l'autocompletamento dell'editor. Ignorato al momento del caricamento |69| `$schema` | string | URL dello schema JSON per l'autocompletamento dell'editor. Ignorato al momento del caricamento |

Details

377 Condividi il tuo mod377 Condividi il tuo mod

378</h2>378</h2>

379 379 

380Un mod è un plugin, quindi ne gestisci la versione nel manifest e le persone lo installano e lo aggiornano con i comandi `/plugin`. Per renderlo disponibile ad altre persone, [aggiungilo a un marketplace](/docs/it/plugins/publish).380Un mod è un plugin, quindi ne gestisci la versione nel manifest e le persone lo installano e lo aggiornano con i comandi `/plugin`. Il modo in cui lo condividi dipende da chi lo userà:

381 

382* **Poche persone**: invia loro la directory del plugin o un file `.zip` che la contiene. Consulta [Condividere un plugin senza un marketplace](/docs/it/plugins/publish#share-a-plugin-without-a-marketplace)

383* **Il tuo team**: elencalo nel [tuo marketplace](/docs/it/plugins/publish#publish-through-your-own-marketplace), ad esempio un repository privato con una directory per ogni plugin. Per aggiungere quel marketplace per tutti coloro che lavorano in un repository, [registralo nelle impostazioni del repository](/docs/it/plugins/host-marketplace#register-the-marketplace-for-everyone-in-a-repository)

384* **L'intera organizzazione**: un amministratore può [installare i mod della tua organizzazione](/docs/it/plugins/mods/admin#install-your-organizations-mods) tramite le impostazioni gestite

385* **Chiunque**: rendi pubblico il repository del tuo marketplace, oppure [invia il plugin alla directory di Anthropic](/docs/it/plugins/publish#submit-to-anthropics-directory)

381 386 

382Prima di farlo, controlla il `name` del plugin: `claude plugin validate` rifiuta un nome che [sembra uno di quelli di Anthropic](/docs/it/plugins/manifest-reference#name), come uno che inizia con `claude-`. Gli eventi e i metodi possono cambiare tra una release e l'altra, quindi il tuo README è il posto giusto per indicare con quale versione di Claude Code l'hai testato.387Prima di farlo, controlla il `name` del plugin: `claude plugin validate` rifiuta un nome che [sembra uno di quelli di Anthropic](/docs/it/plugins/manifest-reference#name), come uno che inizia con `claude-`. Gli eventi e i metodi possono cambiare tra una release e l'altra, quindi il tuo README è il posto giusto per indicare con quale versione di Claude Code l'hai testato.

383 388 

Details

531| Su e Giù | Spostano tra i controlli finché il tuo disegno entra nello spazio disponibile. Quando il pannello o la banda ha più righe di quante ne possa mostrare, lo fanno scorrere. |531| Su e Giù | Spostano tra i controlli finché il tuo disegno entra nello spazio disponibile. Quando il pannello o la banda ha più righe di quante ne possa mostrare, lo fanno scorrere. |

532| Invio | Preme il `Button` con il focus, invia l'`Input` con il focus o effettua la scelta in un `Select` |532| Invio | Preme il `Button` con il focus, invia l'`Input` con il focus o effettua la scelta in un `Select` |

533| Il tasto di scelta rapida di un pulsante | Preme quel pulsante. Mentre un `Input` ha il focus, ogni tasto stampabile va al campo. |533| Il tasto di scelta rapida di un pulsante | Preme quel pulsante. Mentre un `Input` ha il focus, ogni tasto stampabile va al campo. |

534| Pagina su, Pagina giù, Home e Fine | Fanno scorrere il tuo pannello o la tua banda quando ha più righe di quante ne possa mostrare |

535| Ctrl+X e poi un tasto freccia | Ridimensiona il tuo pannello. Sinistra o Su gli dà più spazio, e Destra o Giù restituisce lo spazio. |

536| Ctrl+X e poi X | Chiude il tuo pannello, anche mentre uno dei suoi campi ha il focus |

534| Esc | Restituisce il focus della tastiera al prompt. Con `closeOnEscape: true`, chiude anche il pannello. |537| Esc | Restituisce il focus della tastiera al prompt. Con `closeOnEscape: true`, chiude anche il pannello. |

535 538 

536Un mod non può associare Tab o i tasti freccia a nient'altro, quindi un gioco si controlla con `w`, `a`, `s` e `d`.539Un mod non può associare Tab o i tasti freccia a nient'altro, quindi un gioco si controlla con `w`, `a`, `s` e `d`.

Details

63| :- | :- | :- |63| :- | :- | :- |

64| [`tool.call`](/docs/it/plugins/mods/events#guard-or-change-a-tool-call) | Uno strumento sta per essere eseguito | `next(e)`, `{ deny: reason }` oppure `{ result }` |64| [`tool.call`](/docs/it/plugins/mods/events#guard-or-change-a-tool-call) | Uno strumento sta per essere eseguito | `next(e)`, `{ deny: reason }` oppure `{ result }` |

65| [`tool.check`](/docs/it/plugins/mods/events#where-settings-hooks-run-in-the-order) | Claude Code decide se una chiamata a uno strumento può essere eseguita, dopo gli hook `tool.call` e `PreToolUse`. `next(e)` si risolve nella decisione raggiunta dalle regole, dalla modalità di permesso e da quegli hook. | `{ decision }`, che è `allow`, `ask` o `deny` |65| [`tool.check`](/docs/it/plugins/mods/events#where-settings-hooks-run-in-the-order) | Claude Code decide se una chiamata a uno strumento può essere eseguita, dopo gli hook `tool.call` e `PreToolUse`. `next(e)` si risolve nella decisione raggiunta dalle regole, dalla modalità di permesso e da quegli hook. | `{ decision }`, che è `allow`, `ask` o `deny` |

66| `tool.describe` | Una volta per ogni strumento, quando la sua descrizione viene inviata per la prima volta a Claude | `{ description }` |66| `tool.describe` | Una volta per ogni strumento, quando la sua descrizione viene inviata per la prima volta a Claude | `{ description }`, facoltativamente con `isDeferred` impostato su `true` per mettere lo strumento dietro la [ricerca degli strumenti](/docs/it/mcp#scale-with-mcp-tool-search) o su `false` per caricarlo subito |

67 67 

68<h3 id="prompts-and-what-claude-reads">68<h3 id="prompts-and-what-claude-reads">

69 Prompt e ciò che Claude legge69 Prompt e ciò che Claude legge

plugins/publish.md +26 −11

Details

145 Invia alla directory di Anthropic145 Invia alla directory di Anthropic

146</h2>146</h2>

147 147 

148La directory di Anthropic è il catalogo che le persone sfogliano su claude.ai e in Cowork per aggiungere plugin e connettori. Un'inserzione lì raggiunge le persone su claude.ai, in Cowork e in Claude Code. Invii dal portale degli sviluppatori su [claude.ai/directory/manage](https://claude.ai/directory/manage); [Prepara per la revisione](https://claude.com/docs/directory/publish#prepare-for-review) su claude.com descrive cosa accade a ogni versione prima che sia pubblicata.148La [directory di Anthropic](https://claude.ai/directory) è il catalogo che le persone sfogliano su claude.ai e in Cowork per aggiungere plugin e connettori. Un'inserzione lì raggiunge le persone su claude.ai, in Cowork e in Claude Code. Invii dal portale degli sviluppatori su [claude.ai/directory/manage](https://claude.ai/directory/manage), e [Invia un plugin](https://claude.com/docs/plugins/submit#submit-a-plugin) su claude.com illustra il portale passo dopo passo.

149 149 

150L'invio richiede un piano claude.ai a pagamento. Su Pro e Max invii dal tuo account personale. Su Team e Enterprise, un Proprietario può inviare, e su Enterprise un Proprietario può anche concedere l'autorizzazione **Directory** ad altri membri attraverso un ruolo personalizzato in **Impostazioni organizzazione > Ruoli**. Vedi [Conferma che puoi inviare alla directory](https://claude.com/docs/directory/publish#confirm-you-can-submit-to-the-directory).150Il marketplace ufficiale di Anthropic, `claude-plugins-official`, non accetta invii attraverso il portale della directory. Se lavori con un contatto partner di Anthropic, chiedi loro informazioni su un'inserzione nel marketplace ufficiale.

151 151 

152I passaggi di invio, i controlli che ogni versione deve superare e cosa accade dopo la pubblicazione sono documentati su claude.com, perché sono gli stessi indipendentemente da quale superficie i tuoi utenti utilizzano:152Per inviare un plugin:

153 153 

154* [Pubblica nella directory](https://claude.com/docs/directory/publish#before-you-submit-to-the-directory): cosa puoi inviare e chi può inviarlo154<Steps>

155* [Invia un plugin](https://claude.com/docs/plugins/submit#submit-a-plugin): i passaggi del portale e [aggiornamento di un plugin pubblicato](https://claude.com/docs/plugins/submit#update-a-published-plugin)155 <Step title="Conferma che puoi inviare">

156* [Checklist di pre-invio del plugin](https://claude.com/docs/plugins/pre-submission-checklist#run-the-checks-before-you-submit): i controlli da eseguire e correggere prima di inviare156 L'invio richiede un piano claude.ai a pagamento. Su Pro e Max invii dal tuo account personale. Su Team e Enterprise, un Proprietario può inviare, e su Enterprise un Proprietario può anche concedere il permesso **Directory** ad altri membri attraverso un ruolo personalizzato in **Impostazioni organizzazione > Ruoli**. Vedi [Conferma che puoi inviare alla directory](https://claude.com/docs/directory/publish#confirm-you-can-submit-to-the-directory).

157* [Sposta un invio precedente al portale degli sviluppatori](https://claude.com/docs/directory/publish#move-an-earlier-submission-to-the-developer-portal): cosa fare se hai inviato un plugin attraverso uno dei moduli di invio precedenti, prima che il portale esistesse157 </Step>

158 158 

159Prima di aprire il portale, convalida localmente e controlla quali dei tuoi componenti si caricano al di fuori di Claude Code:159 <Step title="Convalida il plugin localmente">

160 Esegui `claude plugin validate ./your-plugin --strict` nella tua shell. Sostituisci `./your-plugin` con il percorso della tua directory plugin. Il comando cattura gli errori del manifest localmente; [plugin validate](/docs/it/plugins/cli-reference#plugin-validate) elenca quali file ogni esecuzione legge. Il portale applica regole di directory aggiuntive che la CLI non controlla, quindi un'esecuzione locale pulita non garantisce una convalida del portale pulita.

160 161 

161* **Esegui `claude plugin validate ./your-plugin --strict` nel tuo shell**: sostituisci `./your-plugin` con il percorso della tua directory plugin. Il comando cattura gli errori del manifest localmente; [plugin validate](/docs/it/plugins/cli-reference#plugin-validate) elenca quali file ogni esecuzione legge. Il portale applica regole di directory aggiuntive che la CLI non controlla, quindi un'esecuzione locale pulita non garantisce una convalida del portale pulita.162 La [checklist di pre-invio del plugin](https://claude.com/docs/plugins/pre-submission-checklist#run-the-checks-before-you-submit) su claude.com contiene i controlli da eseguire e correggere prima di inviare.

162* **Controlla cosa si carica dove**: alcuni componenti del plugin sono solo Claude Code e non si caricano su claude.ai o in Cowork. La [tabella di supporto dei componenti](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app) elenca ogni componente per app, così sai cosa riceveranno gli utenti al di fuori di Claude Code.163 </Step>

163 164 

164Il marketplace ufficiale di Anthropic, `claude-plugins-official`, non accetta invii attraverso il portale della directory. Se lavori con un contatto partner di Anthropic, chiedi loro informazioni su un'inserzione nel marketplace ufficiale.165 <Step title="Controlla cosa si carica dove">

166 Alcuni componenti del plugin sono solo Claude Code e non si caricano su claude.ai o in Cowork. La [tabella di supporto dei componenti](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app) elenca ogni componente per app, così sai cosa riceveranno gli utenti al di fuori di Claude Code.

167 </Step>

168 

169 <Step title="Invia nel portale degli sviluppatori">

170 Apri il portale degli sviluppatori su [claude.ai/directory/manage](https://claude.ai/directory/manage) e segui [Invia un plugin](https://claude.com/docs/plugins/submit#submit-a-plugin) su claude.com.

171 </Step>

172</Steps>

173 

174Il resto del processo è documentato su claude.com:

175 

176* [Prepara per la revisione](https://claude.com/docs/directory/publish#prepare-for-review): cosa accade a ogni versione prima che sia pubblicata

177* [Aggiorna un plugin pubblicato](https://claude.com/docs/plugins/submit#update-a-published-plugin): come una nuova versione raggiunge le persone che hanno il tuo plugin

178* [Invia il tuo plugin, e il tuo server MCP come connettore](https://claude.com/docs/directory/publish#submit-your-plugin-and-your-mcp-server-as-a-connector): cosa puoi inviare

179* [Sposta un invio precedente al portale degli sviluppatori](https://claude.com/docs/directory/publish#move-an-earlier-submission-to-the-developer-portal): cosa fare se hai inviato un plugin attraverso uno dei moduli di invio precedenti, prima che il portale esistesse

165 180 

166<h3 id="how-a-listed-plugin-reaches-claude-code-users">181<h3 id="how-a-listed-plugin-reaches-claude-code-users">

167 Come un plugin elencato raggiunge gli utenti di Claude Code182 Come un plugin elencato raggiunge gli utenti di Claude Code

routines.md +2 −2

Details

402 Passare il mouse sull'ambiente nell'elenco e fare clic sull'icona delle impostazioni che appare a destra.402 Passare il mouse sull'ambiente nell'elenco e fare clic sull'icona delle impostazioni che appare a destra.

403 </Step>403 </Step>

404 404 

405 <Step title="Modificare il livello di accesso alla rete">405 <Step title="Modifica il livello di accesso alla rete">

406 Nella finestra di dialogo **Edit cloud environment**, modificare **Network access** in **Custom** e immettere i domini in **Allowed domains**. Selezionare **Also include default list of common package managers** per mantenere l'[elenco di autorizzazione predefinito](/docs/it/cloud-environments#default-allowed-domains) insieme ai domini personalizzati. Selezionare invece **Full** per un accesso senza restrizioni.406 Nella finestra di dialogo **Edit environment**, imposta **Network access** su **Custom** e inserisci i tuoi domini in **Allowed domains**. Seleziona **Also include default list of common package managers** per mantenere l'[allowlist predefinita](/docs/it/cloud-environments#default-allowed-domains) insieme ai tuoi domini personalizzati. Seleziona invece **Full** per un accesso senza restrizioni.

407 </Step>407 </Step>

408 408 

409 <Step title="Salvare">409 <Step title="Salvare">

sandboxing.md +2 −4

Details

459 Mascherare le credenziali459 Mascherare le credenziali

460</h3>460</h3>

461 461 

462Quando mascheri una credenziale, Claude Code mostra ai comandi in sandbox un segnaposto valido per la sessione, chiamato sentinella, e il [proxy della sandbox](#network-isolation) sostituisce il valore reale nelle richieste in uscita verso gli host che consenti. Una voce `deny` descritta in [Proteggere le credenziali](#protect-credentials) blocca invece la credenziale. Per i file su macOS, Claude Code [blocca il file](#mask-credential-files) invece di mascherarlo.462Quando mascheri una credenziale, Claude Code mostra ai comandi in sandbox un segnaposto valido per la sessione, chiamato sentinella, e il [proxy della sandbox](#network-isolation) sostituisce il valore reale nelle richieste in uscita verso gli host che consenti. Una voce `deny` descritta in [Proteggere le credenziali](#protect-credentials) blocca invece la credenziale. Per i file su macOS, Claude Code [blocca il file](#mask-credential-files) invece di mascherarlo. Il riferimento di [`sandbox.credentials`](/docs/it/settings-reference#sandbox-credentials) elenca tutti i campi.

463 

464Il mascheramento delle variabili d'ambiente richiede Claude Code v2.1.199 o successivo. Il riferimento di [`sandbox.credentials`](/docs/it/settings-reference#sandbox-credentials) elenca tutti i campi.

465 463 

466Il mascheramento richiede quanto segue:464Il mascheramento richiede quanto segue:

467 465 


620In una regola `WebFetch(domain:...)`, la sandbox rispetta due forme di carattere jolly: un `*.` iniziale, come `*.example.com`, e un `*` da solo. La forma `*` da solo richiede Claude Code v2.1.186 o successivo. Un carattere jolly in qualsiasi altra posizione, come `WebFetch(domain:example.*)`, corrisponde comunque ai fetch ma non ha alcun effetto sui comandi in sandbox.618In una regola `WebFetch(domain:...)`, la sandbox rispetta due forme di carattere jolly: un `*.` iniziale, come `*.example.com`, e un `*` da solo. La forma `*` da solo richiede Claude Code v2.1.186 o successivo. Un carattere jolly in qualsiasi altra posizione, come `WebFetch(domain:example.*)`, corrisponde comunque ai fetch ma non ha alcun effetto sui comandi in sandbox.

621 619 

622<Note>620<Note>

623 Il proxy integrato applica l'allowlist in base al nome host richiesto e, per impostazione predefinita, non termina né ispeziona il traffico TLS. L'impostazione sperimentale [`network.tlsTerminate`](/docs/it/settings-reference#sandbox-network-tlsterminate), disponibile in Claude Code v2.1.199 e successivi, fa sì che il proxy integrato termini esso stesso il TLS, cosa richiesta dalle [voci di credenziali `mask`](#mask-credentials). Consulta [Limitazioni di sicurezza](#security-limitations) per le implicazioni del comportamento predefinito e [Configurazione del proxy personalizzato](#custom-proxy-configuration) se il tuo modello di minaccia richiede l'ispezione TLS.621 Il proxy integrato applica l'allowlist in base al nome host richiesto e, per impostazione predefinita, non termina né ispeziona il traffico TLS. L'impostazione sperimentale [`network.tlsTerminate`](/docs/it/settings-reference#sandbox-network-tlsterminate) fa sì che il proxy integrato termini esso stesso il TLS, cosa richiesta dalle [voci di credenziali `mask`](#mask-credentials). Consulta [Limitazioni di sicurezza](#security-limitations) per le implicazioni del comportamento predefinito e [Configurazione del proxy personalizzato](#custom-proxy-configuration) se il tuo modello di minaccia richiede l'ispezione TLS.

624</Note>622</Note>

625 623 

626<h4 id="hosts-outside-your-allowed-domains">624<h4 id="hosts-outside-your-allowed-domains">

sessions.md +1 −1

Details

299 Eliminare i dati della sessione299 Eliminare i dati della sessione

300</h3>300</h3>

301 301 

302I trascritti invecchiano secondo le [regole di pulizia della conservazione](/docs/it/claude-directory#cleaned-up-automatically). Per eliminare i trascritti di un progetto e lo stato correlato più rapidamente, esegui [`claude project purge`](/docs/it/claude-directory#clear-local-data). Se elimini una [sessione in background](/docs/it/agent-view) con [`claude rm <id>`](/docs/it/agent-view#what-deleting-a-session-removes), il suo trascritto rimane su disco e rimane disponibile tramite `claude --resume`.302Le trascrizioni scadono secondo le [regole di pulizia della conservazione](/docs/it/claude-directory#cleaned-up-automatically). Per eliminare le trascrizioni di un progetto e lo stato correlato più rapidamente, esegui [`claude purge`](/docs/it/claude-directory#clear-local-data). Se elimini una [sessione in background](/docs/it/agent-view) con [`claude rm <id>`](/docs/it/agent-view#what-deleting-a-session-removes), la sua trascrizione rimane su disco e resta disponibile tramite `claude --resume`.

303 303 

304<h3 id="name-the-project-directory-yourself">304<h3 id="name-the-project-directory-yourself">

305 Assegna un nome alla directory del progetto tu stesso305 Assegna un nome alla directory del progetto tu stesso

Details

708| [`modelOverrides`](#modeloverrides) | [Mappa gli ID dei modelli](/docs/it/model-config#override-model-ids-per-version) agli ID del tuo provider, come gli ARN di Bedrock | Modello e risposte | Any file |708| [`modelOverrides`](#modeloverrides) | [Mappa gli ID dei modelli](/docs/it/model-config#override-model-ids-per-version) agli ID del tuo provider, come gli ARN di Bedrock | Modello e risposte | Any file |

709| [`modelPicker`](#modelpicker) | Scegli quali modelli elenca il [selettore `/model`](/docs/it/model-config#available-models), nel tuo ordine e con le tue etichette | Modello e risposte | User or managed |709| [`modelPicker`](#modelpicker) | Scegli quali modelli elenca il [selettore `/model`](/docs/it/model-config#available-models), nel tuo ordine e con le tue etichette | Modello e risposte | User or managed |

710| [`modelPricing`](#modelpricing) | Riporta la spesa alle tariffe contrattuali della tua organizzazione invece che al prezzo di listino | Modello e risposte | Managed |710| [`modelPricing`](#modelpricing) | Riporta la spesa alle tariffe contrattuali della tua organizzazione invece che al prezzo di listino | Modello e risposte | Managed |

711| [`modelSettings`](#modelsettings) | Mantieni un [livello di sforzo](/docs/it/model-config#adjust-effort-level) salvato per ogni modello, o limita lo sforzo di un modello | Modello e risposte | Any file |711| [`modelSettings`](#modelsettings) | Mantieni un [livello di sforzo](/docs/it/model-config#adjust-effort-level) o una [finestra di compattazione automatica](/docs/it/model-config#set-the-auto-compact-window) salvati per ogni modello, o limita lo sforzo di un modello | Modello e risposte | Any file |

712| [`otelHeadersHelper`](#otelheadershelper) | Genera intestazioni [OpenTelemetry](/docs/it/monitoring-usage#dynamic-headers) a rotazione con un tuo comando | Autenticazione e provider | Any file |712| [`otelHeadersHelper`](#otelheadershelper) | Genera intestazioni [OpenTelemetry](/docs/it/monitoring-usage#dynamic-headers) a rotazione con un tuo comando | Autenticazione e provider | Any file |

713| [`outputStyle`](#outputstyle) | Cambia il ruolo, il tono e il formato di output di Claude con uno [stile di output](/docs/it/output-styles) | Modello e risposte | Any file |713| [`outputStyle`](#outputstyle) | Cambia il ruolo, il tono e il formato di output di Claude con uno [stile di output](/docs/it/output-styles) | Modello e risposte | Any file |

714| [`parentSettingsBehavior`](#parentsettingsbehavior) | Applica o ignora le restrizioni che un [host SDK o IDE](/docs/it/managed-settings#let-an-embedding-host-add-policy) passa quando distribuisci [impostazioni gestite](/docs/it/managed-settings) | Impostazioni aziendali e gestite | Managed |714| [`parentSettingsBehavior`](#parentsettingsbehavior) | Applica o ignora le restrizioni che un [host SDK o IDE](/docs/it/managed-settings#let-an-embedding-host-add-policy) passa quando distribuisci [impostazioni gestite](/docs/it/managed-settings) | Impostazioni aziendali e gestite | Managed |


1282Per limitare l'effort di un modello piuttosto che impostare il suo livello, aggiungi un campo [`maxEffortLevel`](#maxeffortlevel) alla voce di quel modello. Il campo richiede Claude Code v2.1.267 o successivo.1282Per limitare l'effort di un modello piuttosto che impostare il suo livello, aggiungi un campo [`maxEffortLevel`](#maxeffortlevel) alla voce di quel modello. Il campo richiede Claude Code v2.1.267 o successivo.

1283 1283 

1284* **Scope**: [`Any file`](#scopes)1284* **Scope**: [`Any file`](#scopes)

1285* **Type**: object che mappa un nome di modello a un object con un campo `effortLevel`, uno di `"low"`, `"medium"`, `"high"`, o `"xhigh"`, un campo [`maxEffortLevel`](#maxeffortlevel), o entrambi1285* **Type**: object che mappa un nome di modello a un object con uno qualsiasi di questi campi:

1286 * `effortLevel`: uno di `"low"`, `"medium"`, `"high"`, o `"xhigh"`

1287 * [`maxEffortLevel`](#maxeffortlevel): il livello di sforzo più alto a cui il modello può funzionare

1288 * `autoCompactWindow`: un numero di token da `100000` a `1000000`, o `"auto"` per la finestra ottimizzata per il modello. [`/autocompact`](/docs/it/model-config#set-the-auto-compact-window) salva qui. Per quel modello, il valore ha la precedenza su un [`autoCompactWindow`](#autocompactwindow) di livello superiore nello stesso file di impostazioni. Richiede Claude Code v2.1.288 o successivo

1286* **Default**: non impostato1289* **Default**: non impostato

1287 1290 

1288Claude Code scrive ogni voce sotto il nome canonico del modello, come `claude-opus-5-5`, e corrisponde all'alias di quel modello, datato, `[1m]`, e ID specifici del provider riconosciuti alla stessa voce.1291Claude Code scrive ogni voce sotto il nome canonico del modello, come `claude-opus-5-5`, e corrisponde all'alias di quel modello, datato, `[1m]`, e ID specifici del provider riconosciuti alla stessa voce.


2478 `sandbox.credentials.envVars`2481 `sandbox.credentials.envVars`

2479</h3>2482</h3>

2480 2483 

2481Proteggi le variabili d'ambiente dai comandi in sandbox. Con `"mode": "deny"`, Claude Code rimuove la variabile dall'ambiente dei comandi in sandbox. Con `"mode": "mask"`, i comandi in sandbox vedono un valore sentinella per sessione, e il proxy della sandbox sostituisce il valore reale sulle richieste in uscita verso gli `injectHosts` di quella voce, quindi gli strumenti come `gh` e `npm` continuano ad autenticarsi senza mai detenere la credenziale reale. `"mode": "mask"` richiede Claude Code v2.1.199 o successivo.2484Proteggi le variabili d'ambiente dai comandi in sandbox. Con `"mode": "deny"`, Claude Code rimuove la variabile dall'ambiente dei comandi in sandbox. Con `"mode": "mask"`, i comandi in sandbox vedono un valore sentinella per sessione, e il proxy della sandbox sostituisce il valore reale sulle richieste in uscita verso gli `injectHosts` di quella voce, quindi gli strumenti come `gh` e `npm` continuano ad autenticarsi senza mai detenere la credenziale reale.

2482 2485 

2483* **Scope**: [`Any file`](#scopes). Claude Code scarta le voci `mask` da `.claude/settings.json` del progetto e da `.claude/settings.local.json` locale.2486* **Scope**: [`Any file`](#scopes). Claude Code scarta le voci `mask` da `.claude/settings.json` del progetto e da `.claude/settings.local.json` locale.

2484* **Type**: array di object, ognuno con `name` e una `mode` di `"deny"` o `"mask"`, più i [campi mask opzionali per le variabili d'ambiente](#mask-fields-for-environment-variables)2487* **Type**: array di object, ognuno con `name` e una `mode` di `"deny"` o `"mask"`, più i [campi mask opzionali per le variabili d'ambiente](#mask-fields-for-environment-variables)


2499}2502}

2500```2503```

2501 2504 

2502Il `name` deve iniziare con una lettera o un underscore e contenere solo lettere, cifre e underscore. Claude Code esegue il merge degli array da ogni ambito di impostazioni che la sessione carica, e applica `deny` quando la stessa variabile appare con entrambe le modalità. [Protect credentials](/docs/it/sandboxing#protect-credentials) copre cosa si applica ancora dalle fonti che escludi con `--setting-sources`. Le voci `mask` richiedono Claude Code v2.1.199 o successivo.2505Il `name` deve iniziare con una lettera o un underscore e contenere solo lettere, cifre e underscore. Claude Code esegue il merge degli array da ogni ambito di impostazioni che la sessione carica, e applica `deny` quando la stessa variabile appare con entrambe le modalità. [Protect credentials](/docs/it/sandboxing#protect-credentials) copre cosa si applica ancora dalle fonti che escludi con `--setting-sources`.

2503 2506 

2504La sostituzione `mask` viene eseguita solo attraverso il proxy della sandbox, quindi imposta [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate), o [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) per le reti di test HTTP semplice; vedi [Mask credentials](/docs/it/sandboxing#mask-credentials). Claude Code accetta ma ignora i campi `mask` su una voce `deny`.2507La sostituzione `mask` viene eseguita solo attraverso il proxy della sandbox, quindi imposta [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate), o [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) per le reti di test HTTP semplice; vedi [Mask credentials](/docs/it/sandboxing#mask-credentials). Claude Code accetta ma ignora i campi `mask` su una voce `deny`.

2505 2508 


2525| `onExtractNoMatch` | `"warn"`, `"deny"` o `"error"`; predefinito `"warn"`. Su una voce con `decode`, è accettato solo `"warn"` | Cosa succede quando `extract` non corrisponde a nulla. `warn` lascia passare la variabile senza mascherarla, `deny` la rimuove all'interno della sandbox, e `error` ferma la configurazione della sandbox finché non correggi la configurazione. Richiede v2.1.224 o successivo |2528| `onExtractNoMatch` | `"warn"`, `"deny"` o `"error"`; predefinito `"warn"`. Su una voce con `decode`, è accettato solo `"warn"` | Cosa succede quando `extract` non corrisponde a nulla. `warn` lascia passare la variabile senza mascherarla, `deny` la rimuove all'interno della sandbox, e `error` ferma la configurazione della sandbox finché non correggi la configurazione. Richiede v2.1.224 o successivo |

2526| `decode` | la string `"jwt"` | Verifica che l'intero valore sia un JWT e sostituiscilo con un token falso strutturalmente valido, quindi il codice all'interno della sandbox che decodifica il token continua a funzionare; il proxy sostituisce l'intero token reale in uscita. Un valore che non supera la verifica passa senza essere mascherato, con un avviso. Richiede v2.1.224 o successivo |2529| `decode` | la string `"jwt"` | Verifica che l'intero valore sia un JWT e sostituiscilo con un token falso strutturalmente valido, quindi il codice all'interno della sandbox che decodifica il token continua a funzionare; il proxy sostituisce l'intero token reale in uscita. Un valore che non supera la verifica passa senza essere mascherato, con un avviso. Richiede v2.1.224 o successivo |

2527| `maskClaims` | array di stringhe, almeno un nome di claim; richiede `decode` | Maschera solo i claim di payload di primo livello denominati all'interno del JWT decodificato e ricostruisci il token attorno al payload modificato, quindi gli altri claim rimangono leggibili. Quando nessun claim denominato corrisponde, la variabile passa senza essere mascherata, con un avviso. Richiede v2.1.224 o successivo |2530| `maskClaims` | array di stringhe, almeno un nome di claim; richiede `decode` | Maschera solo i claim di payload di primo livello denominati all'interno del JWT decodificato e ricostruisci il token attorno al payload modificato, quindi gli altri claim rimangono leggibili. Quando nessun claim denominato corrisponde, la variabile passa senza essere mascherata, con un avviso. Richiede v2.1.224 o successivo |

2528| `injectHosts` | array di stringhe, ognuna un host che anche [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) ammette | Restringi gli host dove il proxy della sandbox sostituisce il valore reale. Quando non impostato, il proxy lo sostituisce sulle richieste a ogni host in `sandbox.network.allowedDomains`. Scrivi una destinazione IPv6 come indirizzo compresso semplice, come `"::1"`, non nella forma tra parentesi quadre; vedi [IPv6 destinations in `injectHosts`](/docs/it/sandboxing#ipv6-destinations-in-injecthosts). Richiede v2.1.199 o successivo |2531| `injectHosts` | array di stringhe, ognuna un host che anche [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) ammette | Restringi gli host dove il proxy della sandbox sostituisce il valore reale. Quando non impostato, il proxy lo sostituisce sulle richieste a ogni host in `sandbox.network.allowedDomains`. Scrivi una destinazione IPv6 come indirizzo compresso semplice, come `"::1"`, non nella forma tra parentesi quadre; vedi [IPv6 destinations in `injectHosts`](/docs/it/sandboxing#ipv6-destinations-in-injecthosts) |

2529 2532 

2530Questo maschera solo la password all'interno di `DATABASE_URL`, rimuove la variabile se il pattern non corrisponde a nulla, e maschera un JWT in `SERVICE_JWT` lasciando leggibile ogni claim tranne `api_key`:2533Questo maschera solo la password all'interno di `DATABASE_URL`, rimuove la variabile se il pattern non corrisponde a nulla, e maschera un JWT in `SERVICE_JWT` lasciando leggibile ogni claim tranne `api_key`:

2531 2534 


2556 `sandbox.credentials.allowPlaintextInject`2559 `sandbox.credentials.allowPlaintextInject`

2557</h3>2560</h3>

2558 2561 

2559Consenti la sostituzione `mask` sulle richieste HTTP semplice oltre che su HTTPS con terminazione TLS. Su HTTP semplice l'identità upstream non è verificata e la credenziale viaggia in chiaro, quindi lascia questa opzione disattivata al di fuori delle reti di test attendibili. Richiede Claude Code v2.1.199 o successivo.2562Consenti la sostituzione `mask` sulle richieste HTTP semplice oltre che su HTTPS con terminazione TLS. Su HTTP semplice l'identità upstream non è verificata e la credenziale viaggia in chiaro, quindi lascia questa opzione disattivata al di fuori delle reti di test attendibili.

2560 2563 

2561* **Scope**: [`User or managed`](#scopes)2564* **Scope**: [`User or managed`](#scopes)

2562* **Type**: Boolean2565* **Type**: Boolean


2574}2577}

2575```2578```

2576 2579 

2577Richiede Claude Code v2.1.199 o successivo.

2578 

2579<h3 id="sandbox-credentials-awspairs">2580<h3 id="sandbox-credentials-awspairs">

2580 `sandbox.credentials.awsPairs`2581 `sandbox.credentials.awsPairs`

2581</h3>2582</h3>


2919}2920}

2920```2921```

2921 2922 

2922Quando più di una fonte onorata lo imposta, Claude Code usa il valore dalla fonte con la precedenza più alta: impostazioni gestite, quindi il flag `--settings`, quindi impostazioni utente. Richiede Claude Code v2.1.199 o successivo.2923Quando più di una fonte onorata lo imposta, Claude Code usa il valore dalla fonte con la precedenza più alta: impostazioni gestite, quindi il flag `--settings`, quindi impostazioni utente.

2923 2924 

2924<span id="context-and-memory" />2925<span id="context-and-memory" />

2925 2926 


2967}2968}

2968```2969```

2969 2970 

2970Impostala con il comando [`/autocompact`](/docs/it/commands#all-commands), che scrive questa chiave nelle tue impostazioni utente. [Impostare la finestra di compattazione automatica](/docs/it/model-config#set-the-auto-compact-window) spiega come interagiscono comando, flag, variabile e impostazione.2971Il comando [`/autocompact`](/docs/it/commands#all-commands) salva una finestra per il modello corrente in [`modelSettings`](#modelsettings), che per quel modello ha la precedenza su questa chiave nello stesso file. [Impostare la finestra di compattazione automatica](/docs/it/model-config#set-the-auto-compact-window) spiega come interagiscono comando, flag, variabile e impostazione.

2971 2972 

2972<h3 id="automemorydirectory">2973<h3 id="automemorydirectory">

2973 `autoMemoryDirectory`2974 `autoMemoryDirectory`

setup.md +5 −5

Details

45 <Tab title="Installazione nativa (consigliata)">45 <Tab title="Installazione nativa (consigliata)">

46 **macOS, Linux, WSL:**46 **macOS, Linux, WSL:**

47 47 

48 ```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}48 ```bash theme={null}

49 curl -fsSL https://claude.ai/install.sh | bash49 curl -fsSL https://claude.ai/install.sh | bash

50 ```50 ```

51 51 

52 **Windows PowerShell:**52 **Windows PowerShell:**

53 53 

54 ```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}54 ```powershell theme={null}

55 irm https://claude.ai/install.ps1 | iex55 irm https://claude.ai/install.ps1 | iex

56 ```56 ```

57 57 

58 **Windows CMD:**58 **Windows CMD:**

59 59 

60 ```batch theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}60 ```batch theme={null}

61 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd61 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

62 ```62 ```

63 63 


75 </Tab>75 </Tab>

76 76 

77 <Tab title="Homebrew">77 <Tab title="Homebrew">

78 ```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}78 ```bash theme={null}

79 brew install --cask claude-code79 brew install --cask claude-code

80 ```80 ```

81 81 


87 </Tab>87 </Tab>

88 88 

89 <Tab title="WinGet">89 <Tab title="WinGet">

90 ```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}90 ```powershell theme={null}

91 winget install Anthropic.ClaudeCode91 winget install Anthropic.ClaudeCode

92 ```92 ```

93 93 

skills.md +5 −4

Details

198 Risolvere le skill con lo stesso nome198 Risolvere le skill con lo stesso nome

199</h3>199</h3>

200 200 

201Quando due skill condividono un nome di directory o di file, la provenienza di ciascuna determina quale esegue `/name`. Per un nome impostato dal campo `name` del frontmatter, consulta [Come una skill ottiene il suo nome di comando](#how-a-skill-gets-its-command-name). La tabella copre le posizioni enterprise, personale, di progetto, annidata, plugin e claude.ai, le skill incluse e i file di comando:201Quando due skill condividono un nome di directory o di file, la provenienza di ciascuna determina quale esegue `/name`. Per un nome impostato dal campo `name` del frontmatter, consulta [Come una skill ottiene il suo nome di comando](#how-a-skill-gets-its-command-name). La tabella copre le posizioni enterprise, personale, di progetto, annidata, plugin e claude.ai, le skill incluse, i comandi integrati e i file di comando:

202 202 

203| Stesso nome in | Quale viene eseguita |203| Stesso nome in | Quale viene eseguita |

204| :- | :- |204| :- | :- |

205| Due tra enterprise, personale e progetto | Enterprise prevale su personale, e personale prevale su progetto. Con `deploy` sia in `~/.claude/skills/` sia in `.claude/skills/` del progetto, `/deploy` esegue quella personale |205| Due tra enterprise, personale e progetto | Enterprise prevale su personale, e personale prevale su progetto. Con `deploy` sia in `~/.claude/skills/` sia in `.claude/skills/` del progetto, `/deploy` esegue quella personale |

206| Una qualsiasi di queste posizioni e una [skill inclusa](#bundled-skills) | La tua skill sostituisce il comando incluso, ma non i suoi alias. Una skill di progetto `code-review` sostituisce `/code-review`, e l'alias incluso `/review` non esegue mai la tua skill |206| Una qualsiasi di queste posizioni e una [skill inclusa](#bundled-skills) | La tua skill sostituisce il comando incluso, ma non i suoi alias. Una skill di progetto `code-review` sostituisce `/code-review`, e l'alias incluso `/review` non esegue mai la tua skill |

207| Una qualsiasi di queste posizioni e un [comando integrato](/docs/it/commands) | In una sessione del terminale locale, la tua skill sostituisce il comando integrato, ma non i suoi alias. Una skill di progetto `usage` sostituisce `/usage`, e l'alias integrato `/cost` esegue ancora il comando integrato |

207| Una skill e un file in `.claude/commands/` | La skill |208| Una skill e un file in `.claude/commands/` | La skill |

208| Una skill nella radice del progetto e una skill annidata | Vengono caricate entrambe. Consulta [monorepo e sottodirectory](#discovery-from-parent-and-nested-directories) |209| Una skill nella radice del progetto e una skill annidata | Vengono caricate entrambe. Consulta [monorepo e sottodirectory](#discovery-from-parent-and-nested-directories) |

209| Una skill di plugin e una skill in una qualsiasi delle posizioni precedenti | Vengono caricate entrambe, perché le skill dei plugin hanno lo spazio dei nomi `/plugin-name:skill-name` |210| Una skill di plugin e una skill in una qualsiasi delle posizioni precedenti | Vengono caricate entrambe, perché le skill dei plugin hanno lo spazio dei nomi `/plugin-name:skill-name` |


416| `allowed-tools` | No | Strumenti che Claude può usare senza chiedere permesso durante il turno che invoca questa skill. La concessione si cancella quando invii il tuo prossimo messaggio. Accetta una stringa separata da spazi o virgole, o un elenco YAML. Vedi [Pre-approvare strumenti per una skill](#pre-approve-tools-for-a-skill). |417| `allowed-tools` | No | Strumenti che Claude può usare senza chiedere permesso durante il turno che invoca questa skill. La concessione si cancella quando invii il tuo prossimo messaggio. Accetta una stringa separata da spazi o virgole, o un elenco YAML. Vedi [Pre-approvare strumenti per una skill](#pre-approve-tools-for-a-skill). |

417| `disallowed-tools` | No | Strumenti rimossi dal pool disponibile di Claude mentre questa skill è attiva. Usa per skills autonome che non dovrebbero mai chiamare determinati strumenti, come `AskUserQuestion` per un loop di background. Accetta una stringa separata da spazi o virgole, o un elenco YAML. La restrizione si cancella quando invii il tuo prossimo messaggio. Come le regole di negazione, il campo non può rimuovere [`EndConversation`](/docs/it/tools-reference#endconversation-tool-behavior) mentre rimane qualsiasi altro strumento. |418| `disallowed-tools` | No | Strumenti rimossi dal pool disponibile di Claude mentre questa skill è attiva. Usa per skills autonome che non dovrebbero mai chiamare determinati strumenti, come `AskUserQuestion` per un loop di background. Accetta una stringa separata da spazi o virgole, o un elenco YAML. La restrizione si cancella quando invii il tuo prossimo messaggio. Come le regole di negazione, il campo non può rimuovere [`EndConversation`](/docs/it/tools-reference#endconversation-tool-behavior) mentre rimane qualsiasi altro strumento. |

418| `model` | No | Modello da usare quando questa skill è attiva. L'override si applica per il resto del turno attuale e non viene salvato nelle impostazioni. Il modello della sessione riprende quando invii il tuo prossimo prompt. Accetta gli stessi valori di [`/model`](/docs/it/model-config), o `inherit` per mantenere il modello attivo. Un valore escluso dalla lista di consentiti [`availableModels`](/docs/it/model-config#restrict-model-selection) della tua organizzazione non viene usato, e la sessione mantiene il suo modello attuale. In [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode), e in [modalità piano mentre il classificatore esamina i comandi](/docs/it/permission-modes#analyze-before-you-edit-with-plan-mode), un modello che la modalità auto non supporta non viene usato, e la sessione mantiene il suo modello attuale. Con `context: fork`, il valore imposta il [modello del subagent biforcato](#run-skills-in-a-subagent) invece, e un valore escluso segue le [stesse regole di un override del modello del subagent](/docs/it/model-config#restrict-model-selection). |419| `model` | No | Modello da usare quando questa skill è attiva. L'override si applica per il resto del turno attuale e non viene salvato nelle impostazioni. Il modello della sessione riprende quando invii il tuo prossimo prompt. Accetta gli stessi valori di [`/model`](/docs/it/model-config), o `inherit` per mantenere il modello attivo. Un valore escluso dalla lista di consentiti [`availableModels`](/docs/it/model-config#restrict-model-selection) della tua organizzazione non viene usato, e la sessione mantiene il suo modello attuale. In [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode), e in [modalità piano mentre il classificatore esamina i comandi](/docs/it/permission-modes#analyze-before-you-edit-with-plan-mode), un modello che la modalità auto non supporta non viene usato, e la sessione mantiene il suo modello attuale. Con `context: fork`, il valore imposta il [modello del subagent biforcato](#run-skills-in-a-subagent) invece, e un valore escluso segue le [stesse regole di un override del modello del subagent](/docs/it/model-config#restrict-model-selection). |

419| `effort` | No | [Livello di sforzo](/docs/it/model-config#adjust-effort-level) quando questa skill è attiva. Sostituisce il livello di sforzo della sessione. Predefinito: eredita dalla sessione. Opzioni: `low`, `medium`, `high`, `xhigh`, `max`; i livelli disponibili dipendono dal modello. |420| `effort` | No | [Livello di sforzo](/docs/it/model-config#adjust-effort-level) quando questa skill è attiva. Sovrascrive il livello di sforzo della sessione. Se lo ometti, il livello deriva dall'[ordine di risoluzione dello sforzo](/docs/it/model-config#adjust-effort-level). Opzioni: `low`, `medium`, `high`, `xhigh`, `max`; i livelli disponibili dipendono dal modello. |

420| `context` | No | Impostato su `fork` per eseguire in un contesto di subagent biforcato. Vedi [Eseguire skills in un subagent](#run-skills-in-a-subagent). |421| `context` | No | Impostato su `fork` per eseguire in un contesto di subagent biforcato. Vedi [Eseguire skills in un subagent](#run-skills-in-a-subagent). |

421| `agent` | No | Quale tipo di subagent usare quando `context: fork` è impostato. |422| `agent` | No | Quale tipo di subagent usare quando `context: fork` è impostato. |

422| `background` | No | Si applica solo con `context: fork`. Impostato su `false` per attendere il risultato del subagent biforcato nel turno che ha invocato la skill, invece di [eseguirla in background](#run-skills-in-a-subagent). Predefinito: `true`. Richiede Claude Code v2.1.218 o successivo. |423| `background` | No | Si applica solo con `context: fork`. Impostato su `false` per attendere il risultato del subagent biforcato nel turno che ha invocato la skill, invece di [eseguirla in background](#run-skills-in-a-subagent). Predefinito: `true`. Richiede Claude Code v2.1.218 o successivo. |


664 665 

665Se invochi una skill con argomenti ma nessun placeholder nel contenuto della skill riceve uno, Claude Code aggiunge `ARGUMENTS: <your input>` alla fine del contenuto della skill in modo che Claude veda comunque quello che hai digitato. Un placeholder è `$ARGUMENTS`, una forma indicizzata come `$1`, o un argomento denominato. Un placeholder indicizzato senza argomento alla sua posizione rimane come testo letterale e non conta come ricevente uno. Un placeholder denominato conta anche quando la sua posizione non ha argomento, perché si espande a una stringa vuota.666Se invochi una skill con argomenti ma nessun placeholder nel contenuto della skill riceve uno, Claude Code aggiunge `ARGUMENTS: <your input>` alla fine del contenuto della skill in modo che Claude veda comunque quello che hai digitato. Un placeholder è `$ARGUMENTS`, una forma indicizzata come `$1`, o un argomento denominato. Un placeholder indicizzato senza argomento alla sua posizione rimane come testo letterale e non conta come ricevente uno. Un placeholder denominato conta anche quando la sua posizione non ha argomento, perché si espande a una stringa vuota.

666 667 

667Puoi anche impilare diverse skills all'inizio di un messaggio. Digitando `/write-tests /fix-issue 123` carichi entrambe le skills e passi il testo finale `123` come `$ARGUMENTS` a ciascuna di esse. Prima della v2.1.199, solo la prima skill si caricava e riceveva `/fix-issue 123` come testo di argomento letterale.668Puoi anche impilare diverse skill all'inizio di un messaggio. Digitando `/write-tests /fix-issue 123` carichi entrambe le skill e passi il testo finale `123` come `$ARGUMENTS` a ciascuna di esse.

668 669 

669Claude Code espande la prima skill più fino a cinque altre impilate dopo di essa. L'espansione si ferma al primo token che non è una skill invocabile dall'utente inline, quindi una skill che viene eseguita come [subagent biforcato](#run-skills-in-a-subagent), come [`/code-review`](/docs/it/code-review#review-a-diff-locally), o una i cui argomenti potrebbero essi stessi iniziare con un comando slash, come `/loop`, termina anche lì. Quel token e tutto ciò che segue diventa il testo di argomento per ogni skill espansa. `/code-review` viene eseguito come subagent biforcato dalla v2.1.218; nelle versioni precedenti veniva eseguito inline e impilato.670Claude Code espande la prima skill più fino a cinque altre impilate dopo di essa. L'espansione si ferma al primo token che non è una skill invocabile dall'utente inline, quindi una skill che viene eseguita come [subagent biforcato](#run-skills-in-a-subagent), come [`/code-review`](/docs/it/code-review#review-a-diff-locally), o una i cui argomenti potrebbero essi stessi iniziare con un comando slash, come `/loop`, termina anche lì. Quel token e tutto ciò che segue diventa il testo di argomento per ogni skill espansa. `/code-review` viene eseguito come subagent biforcato dalla v2.1.218; nelle versioni precedenti veniva eseguito inline e impilato.

670 671 


923 924 

924Il menu `/skills` etichetta lo stato `"user-invocable-only"` come `user-only`.925Il menu `/skills` etichetta lo stato `"user-invocable-only"` come `user-only`.

925 926 

926A partire dalla v2.1.199, `"off"` nasconde anche la skill dagli elenchi di comandi pubblicizzati ai client [Remote Control](/docs/it/remote-control) e ai chiamanti [Agent SDK](/docs/it/agent-sdk/skills#discover-available-commands), oltre al menu `/` del terminale. Invocare una skill nascosta per il suo nome completo restituisce comunque l'errore `skillOverrides` invece di eseguirla.927`"off"` nasconde anche la skill dagli elenchi di comandi pubblicizzati ai client [Remote Control](/docs/it/remote-control) e ai chiamanti [Agent SDK](/docs/it/agent-sdk/skills#discover-available-commands), oltre al menu `/` del terminale. Invocare una skill nascosta per il suo nome completo restituisce l'errore `skillOverrides` invece di eseguirla.

927 928 

928Una skill assente da `skillOverrides` viene trattata come `"on"`. L'esempio seguente comprime una skill al suo nome e disattiva completamente un'altra:929Una skill assente da `skillOverrides` viene trattata come `"on"`. L'esempio seguente comprime una skill al suo nome e disattiva completamente un'altra:

929 930 

sub-agents.md +2 −2

Details

986 986 

987Quando qualcosa [interrompe la risposta di un subagent durante lo streaming](/docs/it/errors#the-response-above-may-be-incomplete) e la risposta parziale contiene testo ma nessuna chiamata a uno strumento, Claude Code chiede al subagent di continuare invece di terminare l'esecuzione. Questo avviene anche nelle sessioni interattive. L'esecuzione termina con l'errore solo quando queste continuazioni sono esaurite.987Quando qualcosa [interrompe la risposta di un subagent durante lo streaming](/docs/it/errors#the-response-above-may-be-incomplete) e la risposta parziale contiene testo ma nessuna chiamata a uno strumento, Claude Code chiede al subagent di continuare invece di terminare l'esecuzione. Questo avviene anche nelle sessioni interattive. L'esecuzione termina con l'errore solo quando queste continuazioni sono esaurite.

988 988 

989A partire dalla v2.1.199, un subagent la cui esecuzione termina con un errore API, come un limite di utilizzo o un errore del server ripetuto, segnala quel fallimento a Claude invece di restituire il testo dell'errore come se fossero i risultati del subagent. Ciò che Claude riceve dipende da dove è stato eseguito il subagent:989Un subagent la cui esecuzione termina con un errore API, come un limite di utilizzo o un errore del server ripetuto, segnala quel fallimento a Claude. Ciò che Claude riceve dipende da dove è stato eseguito il subagent:

990 990 

991* **Primo piano**: se un rate limit, un sovraccarico o un errore del server interrompe un subagent che ha già prodotto output testuale, lo strumento Agent restituisce quell'output parziale con una nota che indica che il subagent è stato interrotto e non ha completato la sua attività. Un subagent che non ha prodotto nulla, o il cui unico output erano chiamate agli strumenti, fallisce con [`Agent terminated early due to an API error`](/docs/it/errors#agent-terminated-early-due-to-an-api-error), seguito dal dettaglio dell'errore. Nella v2.1.199, un rate limit, un sovraccarico o un errore del server che interrompeva un output composto solo da chiamate agli strumenti restituiva invece un risultato parziale vuoto contenente solo la nota di interruzione.991* **Primo piano**: se un rate limit, un sovraccarico o un errore del server interrompe un subagent che ha già prodotto output testuale, lo strumento Agent restituisce quell'output parziale con una nota che indica che il subagent è stato interrotto e non ha completato la sua attività. Un subagent che non ha prodotto nulla, o il cui unico output erano chiamate agli strumenti, fallisce con [`Agent terminated early due to an API error`](/docs/it/errors#agent-terminated-early-due-to-an-api-error), seguito dal dettaglio dell'errore. Nella v2.1.199, un rate limit, un sovraccarico o un errore del server che interrompeva un output composto solo da chiamate agli strumenti restituiva invece un risultato parziale vuoto contenente solo la nota di interruzione.

992* **Background**: il subagent viene contrassegnato come non riuscito, e il messaggio che Claude riceve quando termina indica l'errore API e include l'ultimo output del subagent, così il lavoro parziale non va perso.992* **Background**: il subagent viene contrassegnato come non riuscito, e il messaggio che Claude riceve quando termina indica l'errore API e include l'ultimo output del subagent, così il lavoro parziale non va perso.


1188 1188 

1189La ripresa avvia una nuova esecuzione dell'agente con lo stesso ID, quindi un subagent che era già fallito o completato risulta di nuovo in esecuzione nell'elenco delle attività e negli eventi delle attività dell'Agent SDK. Prima della v2.1.205, continuava a mostrare il precedente stato di fallito o completato mentre l'esecuzione ripresa era in corso.1189La ripresa avvia una nuova esecuzione dell'agente con lo stesso ID, quindi un subagent che era già fallito o completato risulta di nuovo in esecuzione nell'elenco delle attività e negli eventi delle attività dell'Agent SDK. Prima della v2.1.205, continuava a mostrare il precedente stato di fallito o completato mentre l'esecuzione ripresa era in corso.

1190 1190 

1191A partire dalla v2.1.199, `SendMessage` verifica che un nome si riferisca ancora allo stesso agente raggiunto in precedenza nella conversazione. Se un agente più recente ha preso quel nome, come un agente in background riavviato che lo ha riutilizzato, Claude Code rifiuta l'invio invece di consegnarlo all'agente sbagliato, e l'errore indica quale agente raggiunge ora quel nome, così Claude può cambiare destinatario. Per raggiungere l'agente precedente mentre è ancora in esecuzione, Claude lo indirizza tramite l'ID agente ricevuto quando lo ha avviato. Il controllo è limitato alla conversazione corrente e si azzera con `/clear`.1191`SendMessage` verifica che un nome si riferisca ancora allo stesso agente raggiunto in precedenza nella conversazione. Se un agente più recente ha preso quel nome, come un agente in background riavviato che lo ha riutilizzato, Claude Code rifiuta l'invio invece di consegnarlo all'agente sbagliato, e l'errore indica quale agente raggiunge ora quel nome, così Claude può cambiare destinatario. Per raggiungere l'agente precedente mentre è ancora in esecuzione, Claude lo indirizza tramite l'ID agente ricevuto quando lo ha avviato. Il controllo è limitato alla conversazione corrente e si azzera con `/clear`.

1192 1192 

1193Un subagent tratta i messaggi dell'agente che lo ha avviato come normali indicazioni sull'attività, incluse le correzioni di rotta a metà lavoro, e agisce di conseguenza nei limiti delle proprie impostazioni dei permessi. Due limiti valgono indipendentemente da chi ha inviato il messaggio: nessun messaggio di alcun agente vale come tua approvazione per una richiesta di permesso in sospeso, e nessun messaggio di un agente può modificare le impostazioni dei permessi, il `CLAUDE.md` o la configurazione di un subagent. Solo il sistema dei permessi o i tuoi messaggi possono concedere l'approvazione.1193Un subagent tratta i messaggi dell'agente che lo ha avviato come normali indicazioni sull'attività, incluse le correzioni di rotta a metà lavoro, e agisce di conseguenza nei limiti delle proprie impostazioni dei permessi. Due limiti valgono indipendentemente da chi ha inviato il messaggio: nessun messaggio di alcun agente vale come tua approvazione per una richiesta di permesso in sospeso, e nessun messaggio di un agente può modificare le impostazioni dei permessi, il `CLAUDE.md` o la configurazione di un subagent. Solo il sistema dei permessi o i tuoi messaggi possono concedere l'approvazione.

1194 1194 

ultrareview.md +1 −5

Details

134| - | - | - |134| - | - | - |

135| Pro | 3 run gratuiti | fatturato come [utilizzo extra](https://support.claude.com/it/articles/12429409-extra-usage-for-paid-claude-plans) |135| Pro | 3 run gratuiti | fatturato come [utilizzo extra](https://support.claude.com/it/articles/12429409-extra-usage-for-paid-claude-plans) |

136| Max | 3 run gratuiti | fatturato come [utilizzo extra](https://support.claude.com/it/articles/12429409-extra-usage-for-paid-claude-plans) |136| Max | 3 run gratuiti | fatturato come [utilizzo extra](https://support.claude.com/it/articles/12429409-extra-usage-for-paid-claude-plans) |

137| Team e Enterprise | nessuno | fatturato come [utilizzo extra](https://support.claude.com/it/articles/12429409-extra-usage-for-paid-claude-plans) |

138 137 

139* **Run gratuiti**: i tre run Pro e Max sono un'allocazione una tantum per account e non si rinnovano.138* **Run gratuiti**: i tre run Pro e Max sono un'allocazione una tantum per account e non si rinnovano.

140* **Costo per revisione**: dopo aver utilizzato i run gratuiti, in genere da \$5 a \$25 in crediti di utilizzo a seconda della dimensione della modifica, corrispondente alla stima che la finestra di dialogo di avvio mostra prima di ogni run.139* **Costo per revisione**: dopo aver utilizzato i run gratuiti, in genere da \$5 a \$25 in crediti di utilizzo a seconda della dimensione della modifica, corrispondente alla stima che la finestra di dialogo di avvio mostra prima di ogni run.

141* **Quando un run viene conteggiato**: una volta che la sessione cloud inizia. Una revisione che interrompete anticipatamente o che non riesce a completarsi utilizza comunque un run gratuito; una revisione a pagamento viene fatturata solo per la parte che è stata eseguita.140* **Quando un run viene conteggiato**: una volta che la sessione cloud inizia. Una revisione che interrompete anticipatamente o che non riesce a completarsi utilizza comunque un run gratuito; una revisione a pagamento viene fatturata solo per la parte che è stata eseguita.

142 141 

143Poiché ultrareview viene sempre fatturato come crediti di utilizzo al di fuori dei run gratuiti, il vostro account o la vostra organizzazione deve avere i crediti di utilizzo abilitati prima di poter avviare una revisione a pagamento. Se i crediti di utilizzo non sono abilitati, Claude Code blocca l'avvio e come attivarli dipende dal vostro accesso alla fatturazione:142Poiché ultrareview viene sempre fatturato come crediti di utilizzo al di fuori dei run gratuiti, il tuo account o la tua organizzazione deve avere i crediti di utilizzo attivati prima di poter avviare una revisione a pagamento. Se i crediti di utilizzo non sono attivati, Claude Code blocca l'avvio. Se puoi gestire la fatturazione per il tuo account, Claude Code ti collega alle impostazioni di fatturazione dove puoi attivare i crediti di utilizzo.

144 

145* Se potete gestire la fatturazione per il vostro account, Claude Code vi collega alle impostazioni di fatturazione dove potete attivare i crediti di utilizzo.

146* Nei piani Team e Enterprise, i membri senza accesso alla fatturazione inviano una richiesta dalla CLI chiedendo al loro amministratore di attivare i crediti di utilizzo.

147 143 

148Potete anche eseguire `/usage-credits` per controllare o modificare l'impostazione dei crediti di utilizzo.144Potete anche eseguire `/usage-credits` per controllare o modificare l'impostazione dei crediti di utilizzo.

149 145 

Details

184 184 

185Problemi comuni quando la dettatura vocale non si attiva o non registra:185Problemi comuni quando la dettatura vocale non si attiva o non registra:

186 186 

187* **`Voice mode requires a Claude.ai account`**: sei autenticato con una chiave API o un provider di terze parti. Esegui `/login` per accedere con un account Claude.ai.187* **`Unknown command: /voice`**: `/voice` è disponibile solo quando il tuo accesso attivo è un account claude.ai. Se non hai effettuato l'accesso con un account di questo tipo, esegui `/login`. Se è in uso `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, un'impostazione `apiKeyHelper` o un [provider di terze parti](#requirements), questo ha la precedenza sull'accesso claude.ai, quindi rimuovilo e riavvia Claude Code.

188* **`Voice mode requires a Claude.ai account`**: Claude Code non ha trovato un accesso claude.ai utilizzabile quando hai eseguito `/voice` o hai avviato la registrazione. Esegui `/login` per accedere di nuovo.

188* **`Voice mode is disabled by your organization's policy`**: una configurazione di conformità della tua organizzazione disabilita la dettatura vocale. Contatta l'amministratore della tua organizzazione per confermare se la dettatura vocale è disponibile per la tua organizzazione.189* **`Voice mode is disabled by your organization's policy`**: una configurazione di conformità della tua organizzazione disabilita la dettatura vocale. Contatta l'amministratore della tua organizzazione per confermare se la dettatura vocale è disponibile per la tua organizzazione.

189* **`Microphone access is denied`**: concedi l'autorizzazione del microfono al tuo terminale nelle impostazioni di sistema. Su macOS, vai a Impostazioni di sistema → Privacy e sicurezza → Microfono e abilita la tua app terminale, quindi esegui `/voice` di nuovo. Su Windows, vai a Impostazioni → Privacy e sicurezza → Microfono e attiva l'accesso al microfono per le app desktop, quindi esegui `/voice` di nuovo. Se il tuo terminale non è elencato nelle impostazioni macOS, consulta [Terminale non elencato nelle impostazioni del microfono di macOS](#terminal-not-listed-in-macos-microphone-settings).190* **`Microphone access is denied`**: concedi l'autorizzazione del microfono al tuo terminale nelle impostazioni di sistema. Su macOS, vai a Impostazioni di sistema → Privacy e sicurezza → Microfono e abilita la tua app terminale, quindi esegui `/voice` di nuovo. Su Windows, vai a Impostazioni → Privacy e sicurezza → Microfono e attiva l'accesso al microfono per le app desktop, quindi esegui `/voice` di nuovo. Se il tuo terminale non è elencato nelle impostazioni macOS, consulta [Terminale non elencato nelle impostazioni del microfono di macOS](#terminal-not-listed-in-macos-microphone-settings).

190* **`Voice mode requires SoX for audio recording` su Linux**: il modulo audio nativo non ha potuto caricarsi e nessun fallback è installato. Installa SoX con il comando mostrato nel messaggio di errore, ad esempio `sudo apt-get install sox`.191* **`Voice mode requires SoX for audio recording` su Linux**: il modulo audio nativo non ha potuto caricarsi e nessun fallback è installato. Installa SoX con il comando mostrato nel messaggio di errore, ad esempio `sudo apt-get install sox`.