SpyBara
Go Premium

Documentation 2026-11-12 23:02 UTC to 2026-11-13 23:02 UTC

66 files changed +692 −351. View all changes and history on the product overview
2026
Sat 14 03:01 Fri 13 23:02 Thu 12 23:02 Wed 11 22:59 Tue 10 21:57 Mon 9 23:02 Sun 8 22:58 Sat 7 23:58 Fri 6 23:01 Thu 5 23:03 Wed 4 23:59 Tue 3 23:58 Mon 2 23:57 Sun 1 23:57
Details

117 --network none \117 --network none \

118 --memory 2g \118 --memory 2g \

119 --cpus 2 \119 --cpus 2 \

120 --pids-limit 100 \120 --pids-limit 600 \

121 --user 1000:1000 \121 --user 1000:1000 \

122 -v /path/to/code:/workspace:ro \122 -v /path/to/code:/workspace:ro \

123 -v /var/run/proxy.sock:/var/run/proxy.sock:ro \123 -v /var/run/proxy.sock:/var/run/proxy.sock:ro \


135| `--tmpfs /tmp:...` | Fornisce una directory temporanea scrivibile che viene cancellata quando il container si ferma |135| `--tmpfs /tmp:...` | Fornisce una directory temporanea scrivibile che viene cancellata quando il container si ferma |

136| `--network none` | Isola il container dalle reti esterne |136| `--network none` | Isola il container dalle reti esterne |

137| `--memory 2g` | Limita l'utilizzo della memoria per prevenire l'esaurimento delle risorse |137| `--memory 2g` | Limita l'utilizzo della memoria per prevenire l'esaurimento delle risorse |

138| `--pids-limit 100` | Limita il conteggio dei processi per prevenire fork bomb |138| `--pids-limit 600` | Limita processi e thread per prevenire fork bomb |

139| `--user 1000:1000` | Viene eseguito come utente non root |139| `--user 1000:1000` | Viene eseguito come utente non root |

140| `-v ...:/workspace:ro` | Monta il codice in sola lettura in modo che l'agente possa analizzarlo ma non modificarlo. **Evitate di montare directory host sensibili come `~/.ssh`, `~/.aws` o `~/.config`** |140| `-v ...:/workspace:ro` | Monta il codice in sola lettura in modo che l'agente possa analizzarlo ma non modificarlo. **Evitate di montare directory host sensibili come `~/.ssh`, `~/.aws` o `~/.config`** |

141| `-v .../proxy.sock:...` | Monta un socket Unix connesso a un proxy in esecuzione al di fuori del container (vedi sotto) |141| `-v .../proxy.sock:...` | Monta un socket Unix connesso a un proxy in esecuzione al di fuori del container (vedi sotto) |

Details

104| `options` | [`Options`](#options) | Oggetto di configurazione opzionale. Uguale al parametro `options` di `query()` |104| `options` | [`Options`](#options) | Oggetto di configurazione opzionale. Uguale al parametro `options` di `query()` |

105| `initializeTimeoutMs` | `number` | Tempo massimo in millisecondi per attendere l'inizializzazione del subprocess. Predefinito a `60000`. Se l'inizializzazione non si completa in tempo, la promessa viene rifiutata con un errore di timeout |105| `initializeTimeoutMs` | `number` | Tempo massimo in millisecondi per attendere l'inizializzazione del subprocess. Predefinito a `60000`. Se l'inizializzazione non si completa in tempo, la promessa viene rifiutata con un errore di timeout |

106 106 

107Gli [hook di comando](https://code.claude.com/docs/it/hooks.md#command-hook-fields) [SessionStart](https://code.claude.com/docs/it/hooks.md#sessionstart) e [Setup](https://code.claude.com/docs/it/hooks.md#setup) lenti ottengono tempo aggiuntivo solo quando `initializeTimeoutMs` non è impostato:

108 

109* **Se non lo imposti:** il tempo che questi hook impiegano in esecuzione non viene conteggiato nel valore predefinito di 60 secondi, fino a 10 minuti in totale, quindi l'inizializzazione può durare al massimo 11 minuti.

110* **Se imposti un valore, incluso `60000`:** quel valore è il limite, anche mentre un hook è in esecuzione.

111 

112Il tempo aggiuntivo richiede TypeScript Agent SDK v0.3.304 o successivo.

113 

107#### Restituisce114#### Restituisce

108 115 

109Restituisce una `Promise<`[`WarmQuery`](#warmquery)`>` che si risolve una volta che il subprocess è stato generato e ha completato il suo handshake di inizializzazione.116Restituisce una `Promise<`[`WarmQuery`](#warmquery)`>` che si risolve una volta che il subprocess è stato generato e ha completato il suo handshake di inizializzazione.


128 135 

129### `prewarm()`136### `prewarm()`

130 137 

131*Alpha.* Avvia un processo Claude Code come riserva prima di sapere quale sessione servirà, così potrai associarlo a una sessione in seguito con [`claim()`](#spareprocess). Utilizzalo in un'applicazione che si avvia prima che l'utente scelga una cartella. Richiede TypeScript Agent SDK v0.3.282 o successivo.138*Alpha.* Avvia un processo Claude Code come riserva prima di sapere quale sessione servirà, così potrai associarlo a una sessione in seguito con [`claim()`](#spareprocess). Richiede TypeScript Agent SDK v0.3.282 o successivo.

132 139 

133`prewarm()` completa lo stesso handshake di inizializzazione di [`startup()`](#startup), con il processo in attesa in `options.cwd` quando lo imposti e altrimenti in una directory temporanea privata sotto la tua directory di configurazione di Claude Code. La directory di lavoro della sessione, i suoi hook `SessionStart`, i suoi server MCP stdio, e il suo contesto CLAUDE.md e git attendono il claim. Una riserva mantiene approssimativamente da 230 a 260 MB di memoria mentre attende. Se il tuo [`spawnClaudeCodeProcess`](#options) esegue Claude Code su un'altra macchina o in un contenitore, imposta `options.cwd` a una directory che esiste lì affinché la riserva attenda.140Utilizza `prewarm()` quando la tua applicazione si avvia prima che l'utente scelga una cartella.

134 141 

135```typescript theme={null}142```typescript theme={null}

136function prewarm(params?: {143function prewarm(params?: {


139}): Promise<SpareProcess>;146}): Promise<SpareProcess>;

140```147```

141 148 

142`options` e `initializeTimeoutMs` significano lo stesso che per `startup()`, tranne che `options.cwd` imposta solo la directory in cui la riserva attende. La promessa si risolve con un [`SpareProcess`](#spareprocess) una volta che il processo ha completato il suo handshake di inizializzazione. `prewarm()` genera un'eccezione se `options` imposta `resume`, `continue`, o `forkSession`, perché una riserva non ha ancora una sessione. Tutto ciò che un claim non può impostare, come `mcpServers`, `hooks`, `canUseTool`, `settingSources`, `systemPrompt`, e `plugins`, è fisso per la vita della riserva, quindi mantieni una riserva per ogni set distinto di quelle opzioni e prewarm di nuovo quando cambiano.149#### Parametri

150 

151| Parametro | Tipo | Descrizione |

152| :- | :- | :- |

153| `options` | [`Options`](#options) | Oggetto di configurazione opzionale, lo stesso tipo accettato da `startup()` |

154| `initializeTimeoutMs` | `number` | Tempo massimo in millisecondi per attendere l'inizializzazione della riserva. Predefinito a `60000`. Se l'inizializzazione non si completa in tempo, la promessa viene rifiutata con un errore di timeout |

155 

156`prewarm()` conteggia il tempo trascorso negli hook [Setup](https://code.claude.com/docs/it/hooks.md#setup) in `initializeTimeoutMs`, anche quando non lo imposti. Per dare più tempo agli hook Setup lenti, imposta un valore più lungo.

157 

158#### Restituisce

159 

160Restituisce una `Promise<`[`SpareProcess`](#spareprocess)`>` che si risolve una volta che la riserva è pronta per il claim.

161 

162La promessa viene rifiutata se richiedi `resume`, `continue` o `forkSession` in `options`, perché una riserva non ha ancora una sessione.

163 

164#### Come funziona una riserva

165 

166* **Dove attende una riserva:** in una directory temporanea privata sotto la tua directory di configurazione di Claude Code, oppure in `options.cwd` se lo imposti in `prewarm()`.

167* **Se il tuo [`spawnClaudeCodeProcess`](#options) esegue Claude Code su un'altra macchina o in un contenitore:** passa a `prewarm()` un `options.cwd` che esiste lì, perché la directory temporanea predefinita viene creata sulla tua macchina.

168* **Memoria:** ogni riserva utilizza approssimativamente da 230 a 260 MB mentre attende.

169* **Cosa non avviene finché non chiami `claim()`:**

170 * Lo spostamento nella directory di lavoro che passi a `claim()`

171 * L'esecuzione degli hook SessionStart

172 * L'avvio dei server MCP stdio

173 * Il caricamento di CLAUDE.md e del contesto git

174* **Cosa un claim non può modificare:** opzioni come `mcpServers`, `hooks`, `canUseTool`, `settingSources` e `plugins` mantengono i valori impostati in `prewarm()`. [`SpareProcess`](#spareprocess) elenca cosa può impostare un claim.

175* **Se le sessioni richiedono valori diversi per queste opzioni:** mantieni una riserva separata per ogni set di valori.

143 176 

144#### Esempio177#### Esempio

145 178 

agent-view.md +5 −3

Details

8 8 

9Agent view, aperto con `claude agents`, è una sola schermata per tutte le tue sessioni in background: cosa sta girando, cosa ha bisogno del tuo input e cosa è fatto. Invia nuove sessioni, osserva il loro stato a colpo d'occhio invece di scorrere i transcript, e intervieni solo quando uno ne ha bisogno. Ogni sessione in background è una conversazione completa di Claude Code che continua a girare senza un terminale collegato, quindi puoi aprirla, rispondere e andare via quando vuoi.9Agent view, aperto con `claude agents`, è una sola schermata per tutte le tue sessioni in background: cosa sta girando, cosa ha bisogno del tuo input e cosa è fatto. Invia nuove sessioni, osserva il loro stato a colpo d'occhio invece di scorrere i transcript, e intervieni solo quando uno ne ha bisogno. Ogni sessione in background è una conversazione completa di Claude Code che continua a girare senza un terminale collegato, quindi puoi aprirla, rispondere e andare via quando vuoi.

10 10 

11![Agent view in a terminal. A line at the top counts the sessions awaiting input, working, and completed. Four sessions are grouped under Needs input, Working, and Completed. Each row shows the session's name, its latest status or question, and a time. At the bottom are an input for describing a new task and a row of keyboard hints.](https://mintcdn.com/claude-code/HDAmBwgbrZVk0pOt/images/agent-view-light.png?fit=max\&auto=format\&n=HDAmBwgbrZVk0pOt\&q=85\&s=d6905012bee31f3e6b3920b09c05dd02)11![Agent view in a terminal. A line at the top counts the sessions awaiting input, working, and completed. Four sessions are grouped under Needs input, Working, and Completed. Each row shows the session's name, its latest status or question, and a time. At the bottom are an input for describing a new task and a row of keyboard hints.](https://mintcdn.com/claude-code/v_J840yKc6uuKDX_/images/agent-view-light.png?fit=max\&auto=format\&n=v_J840yKc6uuKDX_\&q=85\&s=bd95fda83ea66ca8b2e0e7b68f8cb29e)

12 12 

13Usa agent view quando hai diversi compiti indipendenti su cui Claude può lavorare senza che tu guardi ogni passo. Invia una correzione di bug, una revisione di pull request e un'investigazione di test instabile come tre righe, continua a lavorare in un'altra finestra e controlla quando una riga mostra che ha bisogno di te o ha un risultato.13Usa agent view quando hai diversi compiti indipendenti su cui Claude può lavorare senza che tu guardi ogni passo. Invia una correzione di bug, una revisione di pull request e un'investigazione di test instabile come tre righe, continua a lavorare in un'altra finestra e controlla quando una riga mostra che ha bisogno di te o ha un risultato.

14 14 


628 628 

629* La vista agente lo rimuove, incluse le modifiche non sottoposte a commit, quindi esegui prima il commit di ciò che vuoi mantenere.629* La vista agente lo rimuove, incluse le modifiche non sottoposte a commit, quindi esegui prima il commit di ciò che vuoi mantenere.

630* `claude rm` lo mantiene, insieme alla riga della sessione, quando ha modifiche non sottoposte a commit.630* `claude rm` lo mantiene, insieme alla riga della sessione, quando ha modifiche non sottoposte a commit.

631* Né la vista agente né `claude rm` rimuovono un worktree che un'altra sessione in esecuzione sta usando o ha bloccato, ed eliminare di nuovo non cambia questo. Claude Code mantiene il worktree e la sessione, e indica la directory mantenuta e il motivo; nella vista agente, la riga della sessione mostra `not deleted`. Chiudi l'altra sessione, quindi elimina di nuovo.631* Né la vista agente né `claude rm` rimuovono un worktree che un'altra sessione in esecuzione sta usando o ha bloccato, ed eliminare di nuovo non cambia questo. Claude Code mantiene il worktree e la sessione, e indica la directory mantenuta e il motivo; nella vista agente, la riga della sessione mostra `not removed`. Chiudi l'altra sessione, quindi elimina di nuovo.

632* Quando elimini una sessione il cui worktree ha commit che Claude Code non può confermare siano salvati altrove, Claude Code mantiene il worktree e la sessione, e il messaggio indica il branch del worktree e quanti commit non sono stati sottoposti a push. Il messaggio offre anche i due modi per procedere: fare il push dei commit, o eliminare di nuovo per scartarli.632* Quando elimini una sessione il cui worktree ha commit che Claude Code non può confermare siano salvati altrove, Claude Code mantiene il worktree e la sessione, e il messaggio indica il branch del worktree e quanti commit non sono stati sottoposti a push. Il messaggio offre anche i due modi per procedere: fare il push dei commit, o eliminare di nuovo per scartarli.

633 633 

634 I commit su un remote non bloccano l'eliminazione. Nemmeno i commit sulla copia locale del branch predefinito del tuo remote `origin`, purché quel branch sia estratto nel tuo checkout principale, cioè la directory del repository stessa anziché un worktree.634 I commit su un remote non bloccano l'eliminazione. Nemmeno i commit sulla copia locale del branch predefinito del tuo remote `origin`, purché quel branch sia estratto nel tuo checkout principale, cioè la directory del repository stessa anziché un worktree.


935Spegnere o riavviare la macchina interrompe le sessioni in background in esecuzione. Una sessione che era in attesa di un tuo input rimane sotto `Needs input` quando torni. Per qualsiasi altra sessione in esecuzione, ciò che la vista agenti mostra dipende da quanto tempo fa ha fatto progressi l'ultima volta:935Spegnere o riavviare la macchina interrompe le sessioni in background in esecuzione. Una sessione che era in attesa di un tuo input rimane sotto `Needs input` quando torni. Per qualsiasi altra sessione in esecuzione, ciò che la vista agenti mostra dipende da quanto tempo fa ha fatto progressi l'ultima volta:

936 936 

937* Entro 48 ore, la sessione risulta fallita. Collegati a essa o rispondile e riparte dalla conversazione salvata. Per riprendere il lavoro interrotto, inviale una risposta chiedendole di continuare.937* Entro 48 ore, la sessione risulta fallita. Collegati a essa o rispondile e riparte dalla conversazione salvata. Per riprendere il lavoro interrotto, inviale una risposta chiedendole di continuare.

938* Oltre 48 ore, ad esempio dopo che la macchina è rimasta spenta per giorni, la sessione risulta interrotta con `ended while the background service was off`. Premi `Enter` sulla riga e il piè di pagina mostra `Press enter again to resume this session (it ended while the background service was off), or ctrl+x to delete it.` Premi di nuovo `Enter` sulla stessa riga per riprendere la conversazione salvata. Una risposta, oppure `claude attach <id>`, la riprende senza quel messaggio nel piè di pagina.938* Oltre 48 ore, ad esempio dopo che la macchina è rimasta spenta per giorni, la sessione risulta interrotta con `ended while the background service was off`.

939 

940 Premi `Enter` sulla riga e il piè di pagina mostra `Press enter again to resume this session (it ended while the background service was off), or ctrl+x to remove it.` Premi di nuovo `Enter` sulla stessa riga per riprendere la conversazione salvata. Una risposta, oppure `claude attach <id>`, la riprende senza quel messaggio nel piè di pagina.

939 941 

940Quando la [pulizia delle trascrizioni](https://code.claude.com/docs/it/settings-reference.md#cleanupperioddays) ha rimosso la conversazione salvata di una sessione interrotta, Claude Code si rifiuta di aprire la riga: il messaggio indica che non c'è nulla da riprendere. `claude rm <id>` elimina la riga, tranne nei [casi di conservazione](#what-deleting-a-session-removes) descritti sopra, e `claude respawn <id>` esegue di nuovo il suo prompt originale. Consulta [This session's saved conversation is no longer on disk](https://code.claude.com/docs/it/errors.md#this-sessions-saved-conversation-is-no-longer-on-disk).942Quando la [pulizia delle trascrizioni](https://code.claude.com/docs/it/settings-reference.md#cleanupperioddays) ha rimosso la conversazione salvata di una sessione interrotta, Claude Code si rifiuta di aprire la riga: il messaggio indica che non c'è nulla da riprendere. `claude rm <id>` elimina la riga, tranne nei [casi di conservazione](#what-deleting-a-session-removes) descritti sopra, e `claude respawn <id>` esegue di nuovo il suo prompt originale. Consulta [This session's saved conversation is no longer on disk](https://code.claude.com/docs/it/errors.md#this-sessions-saved-conversation-is-no-longer-on-disk).

941 943 

Details

349 349 

350### Quando un modello viene disabilitato durante la sessione350### Quando un modello viene disabilitato durante la sessione

351 351 

352Se il tuo account perde l'accesso al modello su cui è in esecuzione la sessione, ad esempio perché un amministratore lo disabilita nel tuo account Amazon Bedrock, Claude Code passa la sessione a un altro modello invece di far fallire ogni richiesta, e mostra `Switched to <fallback> because <model> is not available`. Prova gli stessi modelli del fallback all'avvio: prima le versioni precedenti dello stesso livello e, per una sessione Opus senza alcuna versione Opus disponibile, il modello Sonnet predefinito.352Quando Amazon Bedrock rifiuta il modello della tua sessione perché non disponibile per il tuo account, Claude Code passa la sessione a un altro modello e puoi continuare a lavorare. Vedi un messaggio che inizia con `Switched to <fallback> because <model> is not available`. Questo accade, ad esempio, quando un amministratore disabilita il modello o il modello più recente non è ancora disponibile per il tuo account.

353 353 

354Il passaggio si applica solo a un livello che non hai fissato, la stessa condizione del fallback all'avvio. Una sessione su una versione specifica che hai scelto, o su un [ARN del profilo di inferenza dell'applicazione](#map-each-model-version-to-an-inference-profile), mantiene il suo modello e, senza una catena di modelli di fallback, la richiesta invece fallisce. In [modalità auto](https://code.claude.com/docs/it/permission-modes.md#enable-auto-mode-on-bedrock-agent-platform-or-foundry), Claude Code passa solo a un modello che la modalità auto supporta su Amazon Bedrock. Se nemmeno nessuno di questi modelli è disponibile, la richiesta fallisce con [AWS authentication failed](https://code.claude.com/docs/it/errors.md#aws-authentication-failed) e un suggerimento per abilitare il modello.354Se hai configurato una [catena di modelli di fallback](https://code.claude.com/docs/it/model-config.md#fallback-model-chains), Claude Code passa invece al fallback che hai configurato. Senza una catena, la richiesta fallisce in casi come questi:

355 355 

356Una [catena di modelli di fallback](https://code.claude.com/docs/it/model-config.md#fallback-model-chains) che configuri sostituisce il passaggio di livello: su questi rifiuti Claude Code passa invece al fallback che hai configurato. Per fare in modo che le richieste rifiutate falliscano piuttosto che passare a un altro modello, imposta [`CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK=1`](https://code.claude.com/docs/it/env-vars). Una catena di fallback che hai configurato continua comunque a passare su questi rifiuti; rimuovi anche la catena se vuoi che ogni richiesta rifiutata fallisca.356* La tua sessione è su un modello fissato, su una versione specifica che hai scelto o su un [ARN del profilo di inferenza dell'applicazione](#map-each-model-version-to-an-inference-profile)

357* Nessuno dei [modelli che Claude Code prova](#startup-model-checks) è disponibile. In [modalità auto](https://code.claude.com/docs/it/permission-modes.md#enable-auto-mode-on-bedrock-agent-platform-or-foundry), Claude Code passa solo a un modello che la modalità auto supporta su Amazon Bedrock.

358 

359Per continuare a lavorare, esegui `/model` nella sessione e premi `s` su un modello che il tuo account può usare: in questo modo il tuo valore predefinito resta invariato. Un `403` viene mostrato come [AWS authentication failed](https://code.claude.com/docs/it/errors.md#aws-authentication-failed).

360 

361Per fare in modo che le richieste rifiutate falliscano invece di passare a un altro modello, imposta [`CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK=1`](https://code.claude.com/docs/it/env-vars). Se hai configurato una catena di modelli di fallback, rimuovi anche quella, perché Claude Code passa comunque a quel fallback.

357 362 

358## Prefissi del profilo di inferenza tra regioni363## Prefissi del profilo di inferenza tra regioni

359 364 

Details

222 222 

223Ognuno è un array di descrizioni in prosa, lette come regole in linguaggio naturale. Per i blocchi duri basati su pattern di strumenti che vengono eseguiti prima del classificatore, utilizza [`permissions.deny`](https://code.claude.com/docs/it/permissions).223Ognuno è un array di descrizioni in prosa, lette come regole in linguaggio naturale. Per i blocchi duri basati su pattern di strumenti che vengono eseguiti prima del classificatore, utilizza [`permissions.deny`](https://code.claude.com/docs/it/permissions).

224 224 

225> [!NOTE]

226>

227> In una sessione [Code Mode](https://code.claude.com/docs/it/code-mode.md#permission-checks), il classificatore applica `hard_deny` e `soft_deny` quando esamina il codice di Claude, e non a ogni chiamata a uno strumento effettuata dal codice. Le regole `permissions.deny` si applicano a ogni chiamata.

228 

225All'interno del classificatore, la precedenza funziona in quattro livelli:229All'interno del classificatore, la precedenza funziona in quattro livelli:

226 230 

227* Le regole `hard_deny` bloccano incondizionatamente. L'intento dell'utente e le eccezioni `allow` non si applicano.231* Le regole `hard_deny` bloccano incondizionatamente. L'intento dell'utente e le eccezioni `allow` non si applicano.


283 287 

284Per impostazione predefinita, le regole di autorizzazione Bash e PowerShell strette come `Bash(npm test)` rimangono in vigore in modalità auto. Claude Code le risolve prima che il classificatore venga eseguito, a meno che il comando non contenga [domini consentiti per comando](https://code.claude.com/docs/it/sandboxing.md#per-command-allowed-domains-in-auto-mode). Claude Code sospende solo le regole ampie che concedono l'esecuzione di codice arbitrario, come `Bash(*)` o interpreti con caratteri jolly, insieme a ogni regola che nomina [`Monitor`](https://code.claude.com/docs/it/tools-reference#monitor-tool), perché i comandi Monitor vengono eseguiti attraverso la shell. Ciò significa che una regola stretta può comunque far passare un argomento distruttivo senza che il classificatore lo veda, ad esempio un percorso di script o un flag che il prefisso della regola non ha anticipato.288Per impostazione predefinita, le regole di autorizzazione Bash e PowerShell strette come `Bash(npm test)` rimangono in vigore in modalità auto. Claude Code le risolve prima che il classificatore venga eseguito, a meno che il comando non contenga [domini consentiti per comando](https://code.claude.com/docs/it/sandboxing.md#per-command-allowed-domains-in-auto-mode). Claude Code sospende solo le regole ampie che concedono l'esecuzione di codice arbitrario, come `Bash(*)` o interpreti con caratteri jolly, insieme a ogni regola che nomina [`Monitor`](https://code.claude.com/docs/it/tools-reference#monitor-tool), perché i comandi Monitor vengono eseguiti attraverso la shell. Ciò significa che una regola stretta può comunque far passare un argomento distruttivo senza che il classificatore lo veda, ad esempio un percorso di script o un flag che il prefisso della regola non ha anticipato.

285 289 

286Imposta `autoMode.classifyAllShell` su `true` per sospendere ogni regola di autorizzazione Bash e PowerShell mentre la modalità auto è attiva, in modo che il classificatore valuti ogni comando shell indipendentemente dal tuo elenco di autorizzazioni, ad eccezione delle [rimozioni di percorsi critici](https://code.claude.com/docs/it/permission-modes.md#critical-paths).290Imposta `autoMode.classifyAllShell` su `true` per sospendere ogni regola di autorizzazione Bash e PowerShell mentre la modalità auto è attiva, in modo che il classificatore valuti ogni comando shell indipendentemente dal tuo elenco di autorizzazioni, ad eccezione delle [rimozioni di percorsi critici](https://code.claude.com/docs/it/permission-modes.md#critical-paths). In una sessione [Code Mode](https://code.claude.com/docs/it/code-mode.md#permission-checks), il classificatore esamina il codice che esegue i comandi, anche con questa impostazione attiva.

287 291 

288```json theme={null}292```json theme={null}

289{293{

Details

315 {315 {

316 "matcher": "Edit|Write",316 "matcher": "Edit|Write",

317 "hooks": [317 "hooks": [

318 { "type": "command", "command": "npx prettier --write --ignore-unknown \"$(jq -r '.tool_input.file_path')\"" }318 { "type": "command", "command": "f=$(jq -r '.tool_input.file_path') && npx prettier --write --ignore-unknown \"$f\"" }

319 ]319 ]

320 }320 }

321 ]321 ]

Details

74| PostgreSQL 11 o successivo | Supporta il flusso di accesso del dispositivo e i contatori dei rate limit. Funziona anche un servizio PostgreSQL gestito, incluso il tier più piccolo; consulta [quali database sono supportati](https://code.claude.com/docs/it/claude-apps-gateway-deploy.md#postgres). Con i [limiti di spesa](https://code.claude.com/docs/it/claude-apps-gateway-spend-limits.md), contiene anche tabelle durevoli di spesa, audit e identità di cui è opportuno eseguire il backup. Si consiglia TLS tramite `?sslmode=require`. PostgreSQL 11, 12 e 13 richiedono Claude Code v2.1.290 o successivo sul server del gateway. Il progetto PostgreSQL non mantiene più quelle versioni, quindi usane una più recente quando possibile. |74| PostgreSQL 11 o successivo | Supporta il flusso di accesso del dispositivo e i contatori dei rate limit. Funziona anche un servizio PostgreSQL gestito, incluso il tier più piccolo; consulta [quali database sono supportati](https://code.claude.com/docs/it/claude-apps-gateway-deploy.md#postgres). Con i [limiti di spesa](https://code.claude.com/docs/it/claude-apps-gateway-spend-limits.md), contiene anche tabelle durevoli di spesa, audit e identità di cui è opportuno eseguire il backup. Si consiglia TLS tramite `?sslmode=require`. PostgreSQL 11, 12 e 13 richiedono Claude Code v2.1.290 o successivo sul server del gateway. Il progetto PostgreSQL non mantiene più quelle versioni, quindi usane una più recente quando possibile. |

75| Upstream del modello | Credenziali Amazon Bedrock, credenziali Claude Platform on AWS, credenziali Google Cloud, una risorsa Microsoft Foundry o una chiave API Anthropic. Sono supportati più upstream con failover. |75| Upstream del modello | Credenziali Amazon Bedrock, credenziali Claude Platform on AWS, credenziali Google Cloud, una risorsa Microsoft Foundry o una chiave API Anthropic. Sono supportati più upstream con failover. |

76| HTTPS | Il gateway deve essere raggiungibile tramite `https://` dai laptop degli sviluppatori e da qualsiasi browser usato per l'accesso; il gateway serve la pagina di verifica del dispositivo sullo stesso listener. Fornisci un certificato TLS tramite `listen.tls` oppure esegui il gateway dietro un ingress che termina TLS, e in entrambi i casi imposta `listen.public_url` sull'origine esterna. Con `/login`, Claude Code accetta un'origine `http://` semplice solo quando l'host del gateway è di loopback: `localhost`, `127.0.0.1` o `::1`. |76| HTTPS | Il gateway deve essere raggiungibile tramite `https://` dai laptop degli sviluppatori e da qualsiasi browser usato per l'accesso; il gateway serve la pagina di verifica del dispositivo sullo stesso listener. Fornisci un certificato TLS tramite `listen.tls` oppure esegui il gateway dietro un ingress che termina TLS, e in entrambi i casi imposta `listen.public_url` sull'origine esterna. Con `/login`, Claude Code accetta un'origine `http://` semplice solo quando l'host del gateway è di loopback: `localhost`, `127.0.0.1` o `::1`. |

77| Indirizzo di rete privata | Con `/login`, Claude Code richiede che l'hostname o l'indirizzo IP del gateway si risolva solo in indirizzi privati: RFC 1918, link-local, CGNAT `100.64.0.0/10`, IPv6 ULA `fc00::/7` o loopback. Per un gateway che ospiti tu, qualsiasi indirizzo pubblico al di fuori di un blocco che dichiari viene rifiutato; consulta il [modello delle minacce](https://code.claude.com/docs/it/claude-apps-gateway-deploy.md#threat-model-summary) nella guida al deploy. Se le macchine degli sviluppatori instradano HTTPS attraverso un proxy aziendale, l'accesso richiede anche che l'host del proxy si risolva in indirizzi privati; in caso contrario, aggiungi l'host del gateway a `NO_PROXY` in modo che la CLI si connetta direttamente. Se la tua rete interna è numerata con spazio IPv4 pubblico di proprietà della tua organizzazione, [dichiara quei blocchi](#allow-a-gateway-on-public-address-space-you-own) in modo che `/login` accetti un gateway lì. |77| Indirizzo di rete privata | Con `/login`, Claude Code richiede che l'hostname o l'indirizzo IP del gateway si risolva solo in indirizzi privati: intervalli RFC 1918 e link-local, CGNAT `100.64.0.0/10`, IPv6 ULA `fc00::/7` e loopback. Consulta il [modello delle minacce](https://code.claude.com/docs/it/claude-apps-gateway-deploy.md#threat-model-summary). Se la tua rete interna è numerata con spazio IPv4 pubblico di proprietà della tua organizzazione, [dichiara quei blocchi](#allow-a-gateway-on-public-address-space-you-own) in modo che `/login` accetti un gateway lì. |

78| Runtime Linux | Il server del gateway funziona solo con il binario nativo per Linux. macOS funziona per lo sviluppo locale. Windows non è supportato come piattaforma server. |78| Runtime Linux | Il server del gateway funziona solo con il binario nativo per Linux. macOS funziona per lo sviluppo locale. Windows non è supportato come piattaforma server. |

79 79 

80Quando `HTTPS_PROXY` o `HTTP_PROXY` si applica all'host del gateway, l'accesso richiede anche un proxy il cui hostname si risolva in indirizzi privati oppure l'host del gateway in `NO_PROXY` sulle macchine degli sviluppatori. Se quelle macchine impostano anche `no_proxy`, aggiungi l'host del gateway anche lì, altrimenti le richieste ai modelli passano comunque attraverso il proxy.

81 

80### Passaggi82### Passaggi

81 83 

82**1. Registra un client OAuth nel tuo IdP**84**1. Registra un client OAuth nel tuo IdP**

Details

16 16 

17## Struttura dei file17## Struttura dei file

18 18 

19Cinque sezioni sono [obbligatorie](#required-sections). Ogni altra sezione è [facoltativa](#optional-sections), e una sezione omessa assume i suoi valori predefiniti. Le chiavi sconosciute causano un errore di avvio, quindi un errore di battitura emerge come errore denominato piuttosto che come impostazione ignorata silenziosamente.19Cinque sezioni sono [obbligatorie](#required-sections). Ogni altra sezione è [facoltativa](#optional-sections), e una sezione omessa assume i suoi valori predefiniti.

20 20 

21**Sezioni obbligatorie:**21**Sezioni obbligatorie:**

22 22 


519 519 

520Richiede un gateway che esegue Claude Code v2.1.281 o successivo. [Attribuzione dei costi su AWS](https://code.claude.com/docs/it/claude-apps-gateway-on-aws.md#cost-attribution) descrive il ruolo IAM e dove la fatturazione AWS mostra le sessioni.520Richiede un gateway che esegue Claude Code v2.1.281 o successivo. [Attribuzione dei costi su AWS](https://code.claude.com/docs/it/claude-apps-gateway-on-aws.md#cost-attribution) descrive il ruolo IAM e dove la fatturazione AWS mostra le sessioni.

521 521 

522> [!NOTE]

523>

524> Per l'attribuzione per sviluppatore, imposta `assume_role` con `session_name` su ogni upstream `bedrock` e [`mantle`](#amazon-bedrock-mantle-endpoint) tranne quelli che usano `aws_bearer_token`. Questi [non possono accettare `assume_role`](#bedrock-in-another-aws-account), quindi le loro richieste restano sotto un unico principal.

525 

522```yaml theme={null}526```yaml theme={null}

523upstreams:527upstreams:

524 - provider: bedrock528 - provider: bedrock


535 539 

536Il gateway effettua anche una chiamata propria su questo ruolo: il conteggio dei token per una richiesta abbandonata dal client, in modo che i [limiti di spesa](https://code.claude.com/docs/it/claude-apps-gateway-spend-limits.md) rimangano accurati. Quel conteggio e la relativa [richiesta di fallback da un token](#amazon-bedrock) sono firmati dalla sessione condivisa `claude-apps-gateway`, quindi AWS attribuisce il fallback a `claude-apps-gateway` anziché allo sviluppatore.540Il gateway effettua anche una chiamata propria su questo ruolo: il conteggio dei token per una richiesta abbandonata dal client, in modo che i [limiti di spesa](https://code.claude.com/docs/it/claude-apps-gateway-spend-limits.md) rimangano accurati. Quel conteggio e la relativa [richiesta di fallback da un token](#amazon-bedrock) sono firmati dalla sessione condivisa `claude-apps-gateway`, quindi AWS attribuisce il fallback a `claude-apps-gateway` anziché allo sviluppatore.

537 541 

538Per un'attribuzione rigorosa per sviluppatore, imposta `assume_role` con `session_name` su ogni upstream Bedrock che elenchi. Un upstream senza di esso firma le richieste che serve con le proprie credenziali.

539 

540#### Endpoint Mantle di Amazon Bedrock542#### Endpoint Mantle di Amazon Bedrock

541 543 

542Il provider `mantle` invia l'inferenza all'[endpoint Mantle](https://code.claude.com/docs/it/amazon-bedrock.md#use-the-mantle-endpoint) di Amazon Bedrock. Richiede Claude Code v2.1.283 o successivo sul server del gateway. Le versioni precedenti del gateway lo rifiutano all'avvio, quindi aggiorna ogni replica prima di aggiungerlo.544Il provider `mantle` invia l'inferenza all'[endpoint Mantle](https://code.claude.com/docs/it/amazon-bedrock.md#use-the-mantle-endpoint) di Amazon Bedrock. Richiede Claude Code v2.1.283 o successivo sul server del gateway. Le versioni precedenti del gateway lo rifiutano all'avvio, quindi aggiorna ogni replica prima di aggiungerlo.


656 658 

657| Configurazione | Come |659| Configurazione | Come |

658| - | - |660| - | - |

659| RBAC | Concedi all'identità del gateway `Azure AI User` o `Cognitive Services User` sulla risorsa Microsoft Foundry |661| RBAC | Concedi all'identità del gateway il ruolo `Foundry User` o `Cognitive Services User` sulla risorsa Microsoft Foundry |

660| Deployment | Microsoft Foundry usa nomi di deployment scelti dall'amministratore, non ID modello canonici. Aggiungi un blocco [`models:`](#models) che mappa ogni ID canonico al nome del tuo deployment. |662| Deployment | Microsoft Foundry usa nomi di deployment scelti dall'amministratore, non ID modello canonici. Aggiungi un blocco [`models:`](#models) che mappa ogni ID canonico al nome del tuo deployment. |

661| AKS (workload identity) | Federa una User-Assigned Managed Identity con l'emittente OIDC del cluster e associala all'account di servizio del gateway. `use_azure_ad: true` la rileva tramite `WorkloadIdentityCredential`. |663| AKS (workload identity) | Federa una User-Assigned Managed Identity con l'emittente OIDC del cluster e associala all'account di servizio del gateway. `use_azure_ad: true` la rileva tramite `WorkloadIdentityCredential`. |

662| ACI / App Service | Abilita l'identità gestita assegnata dal sistema o dall'utente sulla risorsa. `use_azure_ad: true` la rileva. |664| ACI / App Service | Abilita l'identità gestita assegnata dal sistema o dall'utente sulla risorsa. `use_azure_ad: true` la rileva. |


1001 1003 

1002Ogni chiave sotto `upstream_model` deve corrispondere al `name` di un upstream configurato, che per impostazione predefinita è il nome del provider. Una chiave che non corrisponde a nessun upstream fa fallire l'avvio, quindi ometti le righe per i provider che non usi.1004Ogni chiave sotto `upstream_model` deve corrispondere al `name` di un upstream configurato, che per impostazione predefinita è il nome del provider. Una chiave che non corrisponde a nessun upstream fa fallire l'avvio, quindi ometti le righe per i provider che non usi.

1003 1005 

1006Per consentire agli sviluppatori di usare l'alias `fable` con `auto_include_builtin_models: false`, aggiungi una voce `claude-fable-5` a `models`. È l'ID in cui l'[alias `fable`](https://code.claude.com/docs/it/model-config#fable-alias-resolution) si risolve per gli sviluppatori che hanno effettuato l'accesso al gateway. Senza di essa, i loro messaggi falliscono con un errore che inizia con `API Error: 400 model claude-fable-5 is not in the operator's model allowlist`.

1007 

1004### `managed`1008### `managed`

1005 1009 

1006Il blocco `managed` definisce policy di accesso basate sui ruoli, indicizzate per gruppi dell'IdP o dominio email. Le policy vengono valutate in ordine; per impostazione predefinita viene selezionata la prima corrispondenza, su cui poi viene fatto il merge con la base catch-all `match: {}`. Un utente che corrisponde a due policy di ruolo riceve solo la prima, quindi le regole di negazione della seconda policy non si applicano a meno che tu non [applichi ogni policy corrispondente](#apply-every-matching-policy). Le policy vengono servite per utente su `GET /managed/settings` con caching ETag/304.1010Il blocco `managed` definisce policy di accesso basate sui ruoli, indicizzate per gruppi dell'IdP o dominio email. Le policy vengono valutate in ordine; per impostazione predefinita viene selezionata la prima corrispondenza, su cui poi viene fatto il merge con la base catch-all `match: {}`. Un utente che corrisponde a due policy di ruolo riceve solo la prima, quindi le regole di negazione della seconda policy non si applicano a meno che tu non [applichi ogni policy corrispondente](#apply-every-matching-policy). Le policy vengono servite per utente su `GET /managed/settings` con caching ETag/304.


1025Un catch-all `match: {}`, convenzionalmente elencato per ultimo, viene trattato come un livello base. Ogni altra policy eredita dal catch-all qualsiasi chiave che non imposta, quindi le voci per ruolo devono solo elencare ciò che differisce dal valore predefinito dell'organizzazione. Le regole di merge dipendono dal tipo di chiave:1029Un catch-all `match: {}`, convenzionalmente elencato per ultimo, viene trattato come un livello base. Ogni altra policy eredita dal catch-all qualsiasi chiave che non imposta, quindi le voci per ruolo devono solo elencare ciò che differisce dal valore predefinito dell'organizzazione. Le regole di merge dipendono dal tipo di chiave:

1026 1030 

1027* **Allowlist**: `availableModels` e `permissions.allow`. L'elenco di una policy specifica sostituisce completamente quello della base.1031* **Allowlist**: `availableModels` e `permissions.allow`. L'elenco di una policy specifica sostituisce completamente quello della base.

1028* **Deny-list e array di hook**: `permissions.deny`, `permissions.ask`, `disabledMcpjsonServers`, `deniedMcpServers`, `blockedMarketplaces`, `deniedModels` e ogni array di tipo evento di `hooks`. Questi prendono l'unione della base e della policy, così un deny o un hook di audit a livello di organizzazione non può essere eliminato accidentalmente da un override per ruolo.1032* **Elenchi di negazione e array di hook**: questi prendono l'unione di base e policy:

1033 * `permissions.deny` e `permissions.ask`

1034 * `disabledMcpjsonServers` e `deniedMcpServers`

1035 * `blockedMarketplaces` e `deniedModels`

1036 * Gli array per tipo di evento di `hooks`

1029* **Chiavi di tipo record**: `env`, `modelOverrides` e `skillOverrides`. Per queste si esegue un merge superficiale, quindi un blocco `env` per ruolo sovrascrive le chiavi che imposta ed eredita il resto dalla base.1037* **Chiavi di tipo record**: `env`, `modelOverrides` e `skillOverrides`. Per queste si esegue un merge superficiale, quindi un blocco `env` per ruolo sovrascrive le chiavi che imposta ed eredita il resto dalla base.

1030 1038 

1031`availableModels` viene anche applicato lato server su `/v1/messages`, quindi un modello negato restituisce `400` indipendentemente da quello che il client invia. Un elenco vuoto nega ogni modello. Il controllo copre anche il modello su cui si avvia una sessione prima che lo sviluppatore ne scelga uno, quindi [avvia le sessioni su un modello consentito dalla policy](#start-sessions-on-a-model-the-policy-allows).1039`availableModels` viene anche applicato lato server su `/v1/messages`, quindi un modello negato restituisce `400` indipendentemente da quello che il client invia. Un elenco vuoto nega ogni modello. Il controllo copre anche il modello su cui si avvia una sessione prima che lo sviluppatore ne scelga uno, quindi [avvia le sessioni su un modello consentito dalla policy](#start-sessions-on-a-model-the-policy-allows).


1277 1285 

1278Per disattivare invece il contesto 1M, imposta [`CLAUDE_CODE_DISABLE_1M_CONTEXT: "1"`](https://code.claude.com/docs/it/model-config#extended-context) nello stesso blocco `env`. Claude Code tratta quindi ogni modello come dotato di una finestra da 200K. Nelle sessioni interattive, ogni sviluppatore approva questa variabile nella [finestra di dialogo di approvazione](#what-goes-in-cli) prima che abbia effetto.1286Per disattivare invece il contesto 1M, imposta [`CLAUDE_CODE_DISABLE_1M_CONTEXT: "1"`](https://code.claude.com/docs/it/model-config#extended-context) nello stesso blocco `env`. Claude Code tratta quindi ogni modello come dotato di una finestra da 200K. Nelle sessioni interattive, ogni sviluppatore approva questa variabile nella [finestra di dialogo di approvazione](#what-goes-in-cli) prima che abbia effetto.

1279 1287 

1288> [!NOTE]

1289>

1290> Claude Code non legge l'`upstream_model` di un alias per dimensionarne la finestra di contesto. Per assegnare la finestra del relativo modello a un alias in `models` che Claude Code non riconosce, consulta [Correggere la finestra per un ID di modello del gateway o personalizzato](https://code.claude.com/docs/it/model-config.md#correct-the-window-for-a-gateway-or-custom-model-id).

1291 

1280#### Cache del prompt di un'ora1292#### Cache del prompt di un'ora

1281 1293 

1282Per richiedere il [TTL della cache del prompt](https://code.claude.com/docs/it/prompt-caching.md#cache-lifetime) di un'ora invece dei cinque minuti predefiniti, aggiungi queste chiavi al [blocco `code`, `cli` o `settings`](#choose-cli-or-code) esistente di una policy e riavvia il gateway. Le chiavi richiedono Claude Code v2.1.242 o successiva sul server del gateway e sui client.1294Per richiedere il [TTL della cache del prompt](https://code.claude.com/docs/it/prompt-caching.md#cache-lifetime) di un'ora invece dei cinque minuti predefiniti, aggiungi queste chiavi al [blocco `code`, `cli` o `settings`](#choose-cli-or-code) esistente di una policy e riavvia il gateway. Le chiavi richiedono Claude Code v2.1.242 o successiva sul server del gateway e sui client.


1379 1391 

1380##### Cosa rifiuta il gateway all'avvio1392##### Cosa rifiuta il gateway all'avvio

1381 1393 

1382Il gateway convalida ogni blocco `desktop` all'avvio rispetto allo schema di configurazione che Claude Desktop stesso usa, quindi un errore emerge all'avvio del gateway come un errore che nomina la chiave anziché raggiungere ogni desktop connesso. Il gateway fallisce all'avvio quando un blocco contiene:1394Il gateway fallisce all'avvio quando un blocco `desktop` contiene:

1383 1395 

1384* Una chiave sconosciuta1396* Una chiave riconosciuta il cui valore Claude Desktop rifiuterebbe o scarterebbe silenziosamente, come un valore vuoto.

1385* Una chiave riconosciuta il cui valore Claude Desktop rifiuterebbe o scarterebbe silenziosamente, come un valore vuoto o una sotto-chiave scritta in modo errato all'interno di una voce annidata. Prima di v2.1.260, il gateway scartava silenziosamente un campo scritto in modo errato all'interno di un oggetto annidato di una voce `managedMcpServers` o `orgPluginSettings` invece di fallire all'avvio.

1386* Una chiave che il gateway calcola da solo: la connessione di inferenza, l'elenco dei modelli e l'inoltro OTLP. Configurali tramite [`upstreams`](#upstreams), [`models`](#models) e il `forward_to` della sezione [`telemetry`](#telemetry).1397* Una chiave che il gateway calcola da solo: la connessione di inferenza, l'elenco dei modelli e l'inoltro OTLP. Configurali tramite [`upstreams`](#upstreams), [`models`](#models) e il `forward_to` della sezione [`telemetry`](#telemetry).

1387* Un alias legacy di una chiave attuale. Nell'errore di avvio, il gateway nomina la chiave canonica da scrivere.1398* Un alias legacy di una chiave attuale. Nell'errore di avvio, il gateway nomina la chiave canonica da scrivere.

1399* Da v2.1.300, qualsiasi chiave il cui nome inizia con `selfHosted`, come le chiavi per un host di sessioni self-hosted. Rimuovi queste chiavi prima di aggiornare il gateway a v2.1.300 o successiva.

1388 1400 

1389Se usi un valore o una forma di voce deprecati, come una voce `managedMcpServers` senza `transport`, il gateway si avvia e registra un avviso che nomina la sostituzione.1401Se usi un valore o una forma di voce deprecati, come una voce `managedMcpServers` senza `transport`, il gateway si avvia e registra un avviso che nomina la sostituzione.

1390 1402 

1391Prima di v2.1.232, il gateway accettava un elenco fisso di 11 chiavi di feature gate, come `chatTabEnabled` e `disableAutoUpdates`, e rifiutava ogni altra chiave all'avvio. Prima di v2.1.227, il gateway rifiutava all'avvio anche `chatTabEnabled` e `chatAdvancedFileAnalysisEnabled`.1403Prima di v2.1.232, il gateway accettava un elenco fisso di 11 chiavi di feature gate, come `chatTabEnabled` e `disableAutoUpdates`, e rifiutava ogni altra chiave all'avvio. Prima di v2.1.227, il gateway rifiutava all'avvio anche `chatTabEnabled` e `chatAdvancedFileAnalysisEnabled`.

1392 1404 

1405##### Chiavi che il gateway non conosce

1406 

1407Su un gateway che esegue Claude Code v2.1.295 o successiva, la maggior parte delle chiavi di una versione più recente di Claude Desktop non richiede un aggiornamento del gateway. Su v2.1.321 o successiva, non lo richiede nemmeno la maggior parte delle nuove sottochiavi all'interno di una chiave nota.

1408 

1409Alcune chiavi e valori falliscono comunque all'avvio, come questi:

1410 

1411* Una nuova scelta nell'elenco fisso di valori di una chiave nota.

1412* Un probabile errore di battitura di una chiave che puoi impostare in un blocco `desktop`, come `disable_auto_updates` per `disableAutoUpdates`. L'errore suggerisce un nome.

1413 

1414In ogni caso, se il nome o il valore esiste davvero in una versione più recente di Claude Desktop, [aggiorna il gateway](https://code.claude.com/docs/it/claude-apps-gateway-deploy.md#upgrades) all'ultima versione. Altrimenti correggilo o rimuovilo. Per scoprirlo prima del deploy, [testa la policy](#test-a-policy-before-deployment).

1415 

1393##### Chiavi che richiedono una versione più recente del gateway o di Claude Desktop1416##### Chiavi che richiedono una versione più recente del gateway o di Claude Desktop

1394 1417 

1395Il gateway convalida un blocco `desktop` rispetto allo schema incluso nella sua versione installata, come fa con il blocco `cli`. Per consegnare un'impostazione introdotta da una versione più recente di Claude Desktop, aggiorna prima il gateway. Ad esempio, `userPluginMarketplacesEnabled` e `userPluginUploadsEnabled` hanno bisogno di Claude Code v2.1.260 o successivo sul server del gateway e di Claude Desktop 1.37937.0 o successivo sulle macchine dei membri.1418`userPluginMarketplacesEnabled` e `userPluginUploadsEnabled` richiedono Claude Code v2.1.260 o successiva sul server del gateway e Claude Desktop 1.37937.0 o successiva sulle macchine dei membri.

1396 1419 

1397`blockReadsOutsideWorkingDirectories`, `disableBypassPermissionsMode`, `configRecheckIntervalMinutes` e `sshClientPath` hanno bisogno di Claude Code v2.1.281 o successivo sul server del gateway. Lo stesso vale per il valore `required` di `microsoftAuthBroker` e per il campo `continuousAccessEvaluation` di una voce `managedMcpServers` di Microsoft 365. Le versioni di Claude Desktop precedenti al valore `required` lo leggono come `disabled`, quindi imposta `required` solo dopo che il Claude Desktop di ogni membro lo supporta. Il [riferimento della configurazione gestita](https://claude.com/docs/third-party/claude-desktop/configuration) di Claude Desktop elenca la versione che per prima legge ciascuna chiave.1420`blockReadsOutsideWorkingDirectories`, `disableBypassPermissionsMode`, `configRecheckIntervalMinutes` e `sshClientPath` hanno bisogno di Claude Code v2.1.281 o successivo sul server del gateway. Lo stesso vale per il valore `required` di `microsoftAuthBroker` e per il campo `continuousAccessEvaluation` di una voce `managedMcpServers` di Microsoft 365. Le versioni di Claude Desktop precedenti al valore `required` lo leggono come `disabled`, quindi imposta `required` solo dopo che il Claude Desktop di ogni membro lo supporta. Il [riferimento della configurazione gestita](https://claude.com/docs/third-party/claude-desktop/configuration) di Claude Desktop elenca la versione che per prima legge ciascuna chiave.

1398 1421 

Details

92 92 

93Oltre al binario, l'immagine ha bisogno di:93Oltre al binario, l'immagine ha bisogno di:

94 94 

95* **Un'immagine basata su glibc**: la build glibc ha solo dipendenze dinamiche dalle librerie glibc. Le immagini basate su Musl hanno bisogno della build `linux-x64-musl` o `linux-arm64-musl` più pacchetti aggiuntivi; consulta [Configurazione di Alpine Linux](https://code.claude.com/docs/it/setup.md#alpine-linux-and-musl-based-distributions).95* **Un'immagine basata su glibc**: la build glibc ha solo dipendenze dinamiche dalle librerie glibc. Le immagini basate su Musl hanno bisogno della build `linux-x64-musl` o `linux-arm64-musl`, la cui unica dipendenza dinamica è musl.

96* **Una directory di stato scrivibile**: il gateway funziona come qualsiasi utente, ma le immagini minime non hanno home scrivibile. Imposta `CLAUDE_CONFIG_DIR` a un percorso scrivibile come `/tmp/.claude`.96* **Una directory di stato scrivibile**: il gateway funziona come qualsiasi utente, ma le immagini minime non hanno home scrivibile. Imposta `CLAUDE_CONFIG_DIR` a un percorso scrivibile come `/tmp/.claude`.

97* **Il comando del container**: `claude gateway --config /etc/claude/gateway.yaml`, con il file di configurazione montato in sola lettura e i segreti forniti come variabili di ambiente; il gateway ascolta su `listen.port`, predefinito `8080`.97* **Il comando del container**: `claude gateway --config /etc/claude/gateway.yaml`, con il file di configurazione montato in sola lettura e i segreti forniti come variabili di ambiente; il gateway ascolta su `listen.port`, predefinito `8080`.

98 98 

Details

189 189 

190```190```

191Sent to cloud session.191Sent to cloud session.

192Session ID: session_01DiUkqY2kzbUbDmW1w96rfi192Session ID: session_01HJKLMNOPQRSTUVWXYZ

193View: https://claude.ai/code/session_01DiUkqY2kzbUbDmW1w96rfi?from=cli&m=0193View: https://claude.ai/code/session_01HJKLMNOPQRSTUVWXYZ?from=cli&m=0

194```194```

195 195 

196Passa `--output-format json` per un risultato leggibile da macchina: `{ok, session_id, url}` al successo, o `{ok: false, session_id, error}` quando l'invio fallisce, ad esempio quando la sessione è mancante o archiviata. Gli errori di configurazione, come un provider non supportato o una politica organizzativa disabilitata, vengono stampati su stderr senza JSON. `--output-format stream-json` non è supportato con `--cloud <session-id>`.196Passa `--output-format json` per un risultato leggibile da macchina: `{ok, session_id, url}` al successo, o `{ok: false, session_id, error}` quando l'invio fallisce, ad esempio quando la sessione è mancante o archiviata. Gli errori di configurazione, come un provider non supportato o una politica organizzativa disabilitata, vengono stampati su stderr senza JSON. `--output-format stream-json` non è supportato con `--cloud <session-id>`.

Details

274 274 

275Il thread viene eseguito in [auto mode](https://code.claude.com/docs/it/permission-modes.md#eliminate-prompts-with-auto-mode), quindi Claude esegue comandi e modifica file in quella cartella senza chiederti ogni volta. Se auto mode non è disponibile o è disattivato nel Claude Code di quel computer, il thread viene eseguito senza di esso, e qualsiasi prompt di autorizzazione che solleva aspetta la tua risposta nel thread, come [Sblocca un thread in attesa di approvazione](#unblock-a-thread-waiting-on-approval) descrive.275Il thread viene eseguito in [auto mode](https://code.claude.com/docs/it/permission-modes.md#eliminate-prompts-with-auto-mode), quindi Claude esegue comandi e modifica file in quella cartella senza chiederti ogni volta. Se auto mode non è disponibile o è disattivato nel Claude Code di quel computer, il thread viene eseguito senza di esso, e qualsiasi prompt di autorizzazione che solleva aspetta la tua risposta nel thread, come [Sblocca un thread in attesa di approvazione](#unblock-a-thread-waiting-on-approval) descrive.

276 276 

277Per eseguire il thread in un'altra modalità, avvia `claude remote-control` con [`--settings`](https://code.claude.com/docs/it/remote-control#start-a-remote-control-session). Quindi [`permissions.defaultMode`](https://code.claude.com/docs/it/permission-modes#start-in-a-different-mode), in quel file o nelle impostazioni di quel computer, può scegliere un'altra modalità.

278 

277Mentre il thread è in esecuzione, un'icona del laptop nel suo header mostra se il tuo computer è connesso. Fai clic su di essa per vedere quale cartella il thread sta usando o per disattivare la connessione. Il thread si mette in pausa mentre quel computer è in sospensione, e si ferma se l'app desktop o `claude remote-control` si chiude.279Mentre il thread è in esecuzione, un'icona del laptop nel suo header mostra se il tuo computer è connesso. Fai clic su di essa per vedere quale cartella il thread sta usando o per disattivare la connessione. Il thread si mette in pausa mentre quel computer è in sospensione, e si ferma se l'app desktop o `claude remote-control` si chiude.

278 280 

279* **Per far ripartire il thread**: consulta [Perso il contatto con la tua cartella](#lost-contact-with-your-folder)281* **Per far ripartire il thread**: consulta [Perso il contatto con la tua cartella](#lost-contact-with-your-folder)

code-mode.md +224 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Esegui chiamate agli strumenti dal codice con Code Mode

6 

7> Prova Code Mode, una funzionalità sperimentale in cui Claude scrive JavaScript che effettua diverse chiamate agli strumenti in un unico passaggio.

8 

9Code Mode cambia il modo in cui Claude usa i suoi [strumenti](https://code.claude.com/docs/it/tools-reference.md). Senza Code Mode, Claude richiede direttamente chiamate agli strumenti come Bash, Read o Edit e legge ogni risultato prima di decidere cosa fare dopo. Con Code Mode, Claude scrive un frammento di JavaScript che effettua le chiamate agli strumenti, e Claude Code esegue quel codice nella tua sessione.

10 

11> [!NOTE]

12>

13> Code Mode è sperimentale e disattivato per impostazione predefinita. Potrebbe cambiare o essere rimosso in qualsiasi release. Per condividere un feedback, esegui `/feedback`.

14 

15## Come funziona Code Mode

16 

17In una sessione Code Mode descrivi comunque la tua attività in un prompt, e Claude scrive JavaScript per portarla a termine. Un singolo frammento di codice può eseguire comandi in parallelo, usare un risultato nella chiamata successiva e restituire la parte dell'output che Claude deve leggere.

18 

19Ad esempio, se chiedi a Claude di aumentare un limite di nuovi tentativi, Claude potrebbe scrivere questo codice per trovare il file, modificarlo ed eseguire i test. L'ultima riga restituisce a Claude il percorso del file e l'output dei test:

20 

21```javascript theme={null}

22const files = await $`rg -l "function retryPolicy" src`.text();

23const target = files.trim().split("\n")[0];

24await edit(target, "maxAttempts: 3", "maxAttempts: 5");

25({ edited: target, tests: $`npm test -- retryPolicy`.nothrow() });

26```

27 

28Nella conversazione vedi le chiamate agli strumenti, come il diff della modifica, e non il codice. Per leggere il codice, premi `Ctrl+O` per aprire il [visualizzatore della trascrizione](https://code.claude.com/docs/it/interactive-mode.md#transcript-viewer). Ogni frammento di codice vi appare come una riga **Code** compressa, con un suggerimento su come espanderla.

29 

30### Quando usare Code Mode

31 

32Prova Code Mode su attività che richiedono molte chiamate agli strumenti correlate, come:

33 

34* Una modifica che si ripete in molti file

35* Una ricerca i cui risultati devono essere filtrati prima che Claude li legga

36* Diversi comandi indipendenti che possono essere eseguiti contemporaneamente

37 

38### Limitazioni di Code Mode

39 

40Prima di attivare Code Mode, verifica di poter accettare questi limiti:

41 

42* **Ripresa**: puoi riprendere una sessione Code Mode solo nel terminale, con Code Mode attivo

43* **Modalità auto**: il classificatore della modalità auto [esamina il codice, non ogni chiamata a uno strumento](#permission-checks)

44* **Codice di lunga durata**: tranne quando [il codice può essere eseguito in background](#long-running-code), devi attendere che finisca, e si interrompe dopo dieci minuti

45* **Hook**: puoi vedere [chiamate agli strumenti rifiutate](#tool-call-refused-by-a-hook) quando un hook `PreToolUse` non può essere eseguito o va in timeout, e [output del codice bloccato](#code-output-withheld-by-a-hook) da un hook `UserPromptSubmit`

46* **Funzionalità non disponibili**: non puoi usare [Remote Control](https://code.claude.com/docs/it/remote-control.md), [Claude in Chrome](https://code.claude.com/docs/it/chrome.md) o [computer use](https://code.claude.com/docs/it/computer-use.md)

47* **Spostamento della sessione**: non puoi spostare la sessione nell'app Desktop né trasformarla in una [sessione in background](https://code.claude.com/docs/it/agent-view.md), e `/fork` non può avviare una copia in background

48 

49## Requisiti

50 

51* **Versione**: Claude Code v2.1.323 o successiva, su uno qualsiasi dei due [canali di release](https://code.claude.com/docs/it/setup.md#configure-release-channel). Una versione precedente si avvia senza Code Mode, con o senza il motivo `it isn't open to your account yet`

52* **Account**: un abbonamento Claude o un account Console. Non puoi usare Code Mode tramite un gateway, Amazon Bedrock, Claude Platform on AWS, Agent Platform di Google Cloud o Microsoft Foundry

53* **Organizzazione**: la tua organizzazione non usa la [configurazione HIPAA](https://code.claude.com/docs/it/hipaa-setup.md) né la [conservazione zero dei dati](https://code.claude.com/docs/it/zero-data-retention.md)

54* **Modello**: Claude Opus 5.5, Sonnet 5.5, Haiku 5.5 o Fable 5.2

55* **Superficie**: una sessione `claude` interattiva in un terminale. Code Mode non funziona con `-p`, l'Agent SDK, il pannello di VS Code, l'app Desktop o le sessioni cloud

56* **Installazione**: la [build nativa](https://code.claude.com/docs/it/setup.md) di Claude Code

57* **Windows**: [Git for Windows](https://git-scm.com/downloads/win) è installato

58 

59Inoltre, non puoi avviare Code Mode con alcune impostazioni attive, come un helper per la chiave API, i team di agenti, l'esportazione OpenTelemetry o `DISABLE_TELEMETRY`. Per la soluzione relativa a ciascuna, consulta [Code Mode non si avvia](#code-mode-doesnt-start).

60 

61## Prova Code Mode

62 

63Attiva Code Mode, assegna un'attività a Claude e guarda il codice che Claude ha scritto.

64 

65**1. Controlla la tua versione**

66 

67Esegui `claude --version`. Se la versione è precedente alla v2.1.323, esegui `claude update`. Se sei sul canale `stable` e l'aggiornamento non raggiunge la v2.1.323, attendi che `stable` si allinei oppure [passa a `latest`](https://code.claude.com/docs/it/setup#configure-release-channel).

68 

69**2. Avvia Claude Code con Code Mode attivo**

70 

71Imposta la variabile d'ambiente [`CLAUDE_CODE_EXPERIMENTAL_CODE_MODE`](https://code.claude.com/docs/it/env-vars#variables) su `1`. Per provare Code Mode, impostala nella tua shell. Per attivare Code Mode per ogni nuova sessione, impostala nelle tue impostazioni utente.

72 

73> [tab] macOS, Linux, WSL

74>

75> ```bash theme={null}

76> CLAUDE_CODE_EXPERIMENTAL_CODE_MODE=1 claude

77> ```

78 

79> [tab] Windows PowerShell

80>

81> ```powershell theme={null}

82> $env:CLAUDE_CODE_EXPERIMENTAL_CODE_MODE = "1"

83> claude

84> ```

85 

86> [tab] settings.json

87>

88> Salva questo blocco `env` in `~/.claude/settings.json` e avvia `claude`:

89>

90> ```json theme={null}

91> {

92> "env": {

93> "CLAUDE_CODE_EXPERIMENTAL_CODE_MODE": "1"

94> }

95> }

96> ```

97>

98> Claude Code [ignora questa variabile nei file di impostazioni di un progetto](https://code.claude.com/docs/it/settings-reference.md#variables-claude-code-ignores-in-env), quindi un repository che cloni non può attivare Code Mode al posto tuo.

99 

100**3. Conferma che vuoi Code Mode**

101 

102Claude Code ti chiede di confermare prima della tua prima sessione Code Mode. Seleziona **Yes, turn on Code Mode**. Claude Code si riavvia e mostra questa riga vicino all'inizio della sessione:

103 

104```text theme={null}

105Code Mode (experimental) is on · this session can be resumed only with Code Mode on

106```

107 

108Se vedi una riga diversa o nessuna riga, consulta [Code Mode non si avvia](#code-mode-doesnt-start).

109 

110**4. Assegna a Claude un'attività con molte chiamate agli strumenti**

111 

112In un progetto che conosci, invia un prompt come questo:

113 

114```text theme={null}

115Read every Markdown file in this project and list the links that point to local files that don't exist.

116```

117 

118**5. Leggi il codice che Claude ha scritto**

119 

120Premi `Ctrl+O` ed espandi una riga **Code** per vedere il JavaScript dietro le chiamate agli strumenti. Premi di nuovo `Ctrl+O` per tornare alla conversazione.

121 

122> [!WARNING]

123>

124> Per riprendere in seguito una sessione Code Mode, mantieni `CLAUDE_CODE_EXPERIMENTAL_CODE_MODE` impostata su `1` quando esegui `claude --continue` o `claude --resume`. Con Code Mode disattivato, Claude Code si rifiuta di riprendere la sessione. Le sessioni che hai avviato senza Code Mode riprendono senza Code Mode, anche con la variabile impostata.

125 

126### Disattiva Code Mode

127 

128Rimuovi `CLAUDE_CODE_EXPERIMENTAL_CODE_MODE` dalla tua shell e da `~/.claude/settings.json`, quindi avvia una nuova sessione. Puoi anche mantenere la variabile e cambiarne il valore in `0` in uno dei due posti. Con uno `0` in un posto, Code Mode resta disattivato anche se imposti `1` nell'altro.

129 

130### Blocca Code Mode per la tua organizzazione

131 

132Aggiungi `CLAUDE_CODE_EXPERIMENTAL_CODE_MODE` con il valore `0` alle tue [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md) in modo che nessuno nella tua organizzazione possa usare Code Mode:

133 

134```json theme={null}

135{

136 "env": {

137 "CLAUDE_CODE_EXPERIMENTAL_CODE_MODE": "0"

138 }

139}

140```

141 

142Gli utenti che si trovano in una sessione Code Mode vi rimangono finché non escono o riavviano Claude Code. Dopodiché, i tuoi utenti si avviano senza Code Mode e non possono riprendere le loro sessioni Code Mode finché lo `0` è in vigore. Non puoi attivare Code Mode per i tuoi utenti dalle impostazioni gestite.

143 

144## Permessi e codice di lunga durata

145 

146La tua modalità di permesso determina come viene controllato il codice di Claude e se puoi parlare con Claude mentre il codice è in esecuzione.

147 

148### Controlli dei permessi

149 

150Ogni chiamata a uno strumento effettuata dal codice di Claude passa attraverso le tue [regole di permesso](https://code.claude.com/docs/it/permissions.md) `deny` e `ask` e i tuoi [hook `PreToolUse`](https://code.claude.com/docs/it/hooks#pretooluse). Non devi modificare una regola o un matcher per uno strumento come `Bash`. Oltre a regole e hook, in modalità auto un classificatore esamina il codice, e nelle modalità che chiedono conferma rispondi alle richieste di permesso:

151 

152* **[Modalità auto](https://code.claude.com/docs/it/permission-modes.md#eliminate-prompts-with-auto-mode)**: il classificatore esamina ogni frammento di codice prima che venga eseguito, non ogni chiamata a uno strumento. Non vede i valori calcolati in fase di esecuzione, come un percorso preso dall'output di una ricerca, quindi mantieni regole o hook per le chiamate che devi controllare. Ti può comunque essere [chiesta conferma quando nuovo codice si avvia mentre è in esecuzione codice precedente](#permission-prompt-with-a-countdown)

153* **Altre [modalità di permesso](https://code.claude.com/docs/it/permission-modes.md)**: il codice si avvia senza revisione, e ti viene chiesta conferma per ogni chiamata a uno strumento per cui te la chiederebbe quella modalità

154 

155Per controllare il codice stesso, scrivi un hook `PreToolUse` che corrisponda a `REPL`, lo strumento che esegue il codice di Claude, e leggi il JavaScript da `tool_input.code`.

156 

157> [!WARNING]

158>

159> Le regole Bash corrispondono al testo dei comandi, quindi Claude può eseguire un comando negato [in una forma a cui la regola non corrisponde](https://code.claude.com/docs/it/permissions.md#bash-rule-limits), con o senza Code Mode. Per limiti che non dipendono dal testo dei comandi, consulta [sandboxing](https://code.claude.com/docs/it/sandboxing.md).

160 

161### Codice di lunga durata

162 

163Mentre il codice esegue una build o un test lunghi, Claude lo attende oppure lo lascia proseguire in background:

164 

165* **Attesa**: Claude risponde dopo che il codice è terminato, e il codice si interrompe dopo dieci minuti, incluso il tempo che passi sulle richieste di permesso

166* **Background**: puoi continuare a parlare con Claude, e il codice può essere eseguito per un massimo di due ore

167 

168Per il codice in background, avvia la sessione in modalità auto o `bypassPermissions`. Se Claude continua ad attendere, controlla la modalità corrente e come hai avviato la sessione:

169 

170* **Sei passato a un'altra modalità**: premi `Shift+Tab` finché non torni alla modalità in cui hai iniziato

171* **Hai iniziato in un'altra modalità, oppure hai scelto la sessione dall'elenco di `claude --resume`**: se la [modalità auto è disponibile](https://code.claude.com/docs/it/permission-modes.md#eliminate-prompts-with-auto-mode) per te, esci, quindi esegui `claude --continue --permission-mode auto` con Code Mode attivo

172* **Hai passato nomi di strumenti a `--tools`**: riavvia in modalità auto senza quel flag

173 

174## Risoluzione dei problemi

175 

176### Code Mode non si avvia

177 

178`Code Mode (experimental) isn't available` vicino all'inizio della sessione significa che Claude Code si è avviato senza Code Mode. Il motivo segue sulla stessa riga, e viene mostrato anche da `/status`. Trova il motivo in questa tabella, apporta la modifica e avvia una nuova sessione. Per un motivo non elencato, controlla i [requisiti](#requirements).

179 

180| Il motivo include | Cosa fare |

181| :- | :- |

182| `it isn't open to your account yet` | Se la tua versione è precedente alla v2.1.323, [aggiorna](#try-code-mode). Altrimenti, controlla la connessione di rete e riavvia. Se il motivo persiste, riprova un altro giorno |

183| `it only works with the Anthropic API` | Rimuovi le impostazioni che instradano le richieste tramite un provider cloud, un gateway o un `ANTHROPIC_BASE_URL` personalizzato |

184| `it doesn't work with an API key helper` | Rimuovi `apiKeyHelper`, `ANTHROPIC_AUTH_TOKEN` e qualsiasi header `Authorization` o `X-Api-Key` in `ANTHROPIC_CUSTOM_HEADERS`. Quindi accedi o imposta `ANTHROPIC_API_KEY` |

185| `it only works with Opus 5.5, Sonnet 5.5 and later models` | Avvia con un [modello supportato](#requirements), ad esempio con `--model opus`. Funzionano anche Haiku 5.5 e Fable 5.2 |

186| `it doesn't work in background jobs` | Avvia in primo piano, senza `--remote-control` |

187| `it needs settings that Claude Code downloads from Anthropic` | Rimuovi la variabile che [disattiva il recupero dei feature flag](https://code.claude.com/docs/it/env-vars.md#features-that-need-feature-flag-fetching), come `DISABLE_TELEMETRY` |

188| `OpenTelemetry is on` | Rimuovi `CLAUDE_CODE_ENABLE_TELEMETRY` e `ENABLE_BETA_TRACING_DETAILED` se puoi lavorare senza l'[esportazione OpenTelemetry](https://code.claude.com/docs/it/monitoring-usage.md) |

189| `it doesn't yet work with an installed mod` | Disattiva il [mod](https://code.claude.com/docs/it/plugins/mods/overview.md) che controlla le chiamate agli strumenti |

190| `it can't be used together with agent teams yet` | Rimuovi `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` |

191| `this launch's tool options` | Avvia senza `--restricted`, aggiungi `REPL` a `--tools` e rimuovi `REPL` da `--disallowedTools` e dalle tue regole `deny` |

192| `couldn't save your answer` | Rendi `~/.claude.json` scrivibile |

193| `your organization's settings don't allow it` | Chiedi al tuo amministratore dell'[impostazione gestita](#block-code-mode-for-your-organization) |

194 

195Se non vedi alcuna riga relativa a Code Mode, esegui `claude --version`. Se la tua versione è precedente alla v2.1.323, aggiorna. Quindi verifica che `CLAUDE_CODE_EXPERIMENTAL_CODE_MODE` sia `1` nella tua shell o nelle impostazioni utente, e rimuovi qualsiasi `0` da queste e da qualsiasi file `--settings`.

196 

197### Richiesta di permesso con un conto alla rovescia

198 

199Quando Claude avvia altro codice in modalità auto mentre del codice precedente è ancora in esecuzione, il codice precedente perde la revisione del classificatore. Claude Code ti chiede quindi conferma per le chiamate rimanenti del codice precedente che richiederebbero una revisione. Senza alcun IDE connesso, la richiesta mostra un conto alla rovescia:

200 

201```text theme={null}

202Claude Code will automatically block this request in 1:59, to avoid holding up an unattended session

203```

204 

205Rispondi prima che il conto alla rovescia termini. Altrimenti quella chiamata viene rifiutata, e le chiamate successive che mostrerebbero un conto alla rovescia vengono rifiutate senza richiesta. Per vedere di nuovo le richieste, invia un messaggio a Claude.

206 

207### Chiamata a uno strumento rifiutata da un hook

208 

209Se Claude segnala una chiamata a uno strumento rifiutata, chiedigli il testo dell'errore. Questi errori indicano che un hook `PreToolUse` non ha fornito una decisione, il che rifiuta la chiamata anche quando [`onFailure`](https://code.claude.com/docs/it/hooks#block-the-action-when-a-hook-fails) non è impostato:

210 

211* **`the hook failed`**: su una chiamata dal codice di Claude, il tuo hook non è riuscito ad avviarsi, è stato terminato, è uscito con 126, 127 o un codice superiore a 128, oppure ha restituito un errore HTTP o un output non valido. Correggi l'hook

212* **`the hook did not finish`**: il tuo hook è andato in timeout su una chiamata dal codice di Claude, oppure su qualsiasi altra chiamata a uno strumento dopo che Claude ha eseguito codice nella sessione. Aumenta il [`timeout`](https://code.claude.com/docs/it/hooks#common-fields) dell'hook

213 

214Per consentire alle chiamate di procedere quando un hook `command` o `http` fallisce o va in timeout, imposta `"onFailure": "continue"` su di esso. Se un hook `command` esce con un codice ordinario come 1, la chiamata procede a meno che tu non imposti `"onFailure": "block"`.

215 

216### Output del codice trattenuto da un hook

217 

218Se Claude riporta il motivo di blocco di un hook dove ti aspettavi l'output del codice di Claude, controlla i tuoi hook [`UserPromptSubmit`](https://code.claude.com/docs/it/hooks#userpromptsubmit). Quando [il codice può essere eseguito in background](#long-running-code), gli hook `command`, `http` e `mcp_tool` su quell'evento vengono eseguiti anche sull'output del codice. Per lasciar passare l'output, modifica l'hook in modo che non blocchi quando `source` nel suo input è `poll_event`.

219 

220## Risorse correlate

221 

222* [Modalità di permesso](https://code.claude.com/docs/it/permission-modes.md): confronta la modalità auto con le modalità che ti chiedono conferma

223* [Riferimento degli hook](https://code.claude.com/docs/it/hooks.md): scrivi hook `PreToolUse` e `UserPromptSubmit`

224* [Impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md): applica un'unica configurazione a un'intera organizzazione

commands.md +3 −5

Details

35La tabella seguente elenca tutti i comandi inclusi in Claude Code. La maggior parte sono comandi integrati il cui comportamento è codificato nella CLI. Due tipi di voci sono contrassegnati:35La tabella seguente elenca tutti i comandi inclusi in Claude Code. La maggior parte sono comandi integrati il cui comportamento è codificato nella CLI. Due tipi di voci sono contrassegnati:

36 36 

37* **[Skill](https://code.claude.com/docs/it/skills.md#bundled-skills)**: una skill inclusa. Funziona come le skill che scrivi tu: un prompt passato a Claude.37* **[Skill](https://code.claude.com/docs/it/skills.md#bundled-skills)**: una skill inclusa. Funziona come le skill che scrivi tu: un prompt passato a Claude.

38 * `/verify` viene eseguita solo quando la invochi.

39* **[Workflow](https://code.claude.com/docs/it/workflows.md#bundled-workflows)**: un [workflow dinamico](https://code.claude.com/docs/it/workflows.md) incluso che distribuisce il lavoro su molti subagent e viene eseguito in background.38* **[Workflow](https://code.claude.com/docs/it/workflows.md#bundled-workflows)**: un [workflow dinamico](https://code.claude.com/docs/it/workflows.md) incluso che distribuisce il lavoro su molti subagent e viene eseguito in background.

40 * `/deep-research` viene eseguito solo quando lo invochi.

41 39 

42Per aggiungere i tuoi comandi, consulta [skill](https://code.claude.com/docs/it/skills.md).40Per aggiungere i tuoi comandi, consulta [skill](https://code.claude.com/docs/it/skills.md).

43 41 


149| `/stats` | Alias di `/usage`. Si apre sulla scheda Stats |147| `/stats` | Alias di `/usage`. Si apre sulla scheda Stats |

150| `/status` | Apre l'interfaccia delle Impostazioni sulla scheda Status, che mostra versione, modello, account e connettività. Una riga `Session kind` riporta `background job · attached` o `background job · unattended` in una [sessione in background](https://code.claude.com/docs/it/agent-view.md), a seconda che un terminale sia collegato, e `interactive` in qualsiasi altra sessione. Prima della v2.1.221, `/status` non mostrava questa riga. Funziona mentre Claude sta rispondendo |148| `/status` | Apre l'interfaccia delle Impostazioni sulla scheda Status, che mostra versione, modello, account e connettività. Una riga `Session kind` riporta `background job · attached` o `background job · unattended` in una [sessione in background](https://code.claude.com/docs/it/agent-view.md), a seconda che un terminale sia collegato, e `interactive` in qualsiasi altra sessione. Prima della v2.1.221, `/status` non mostrava questa riga. Funziona mentre Claude sta rispondendo |

151| `/statusline` | Configura la [riga di stato](https://code.claude.com/docs/it/statusline.md) di Claude Code. Descrivi cosa desideri, oppure eseguilo senza argomenti per la configurazione automatica a partire dal prompt della tua shell |149| `/statusline` | Configura la [riga di stato](https://code.claude.com/docs/it/statusline.md) di Claude Code. Descrivi cosa desideri, oppure eseguilo senza argomenti per la configurazione automatica a partire dal prompt della tua shell |

152| `/stickers` | Ordina gli adesivi di Claude Code |150| `/stickers` | Verifica la disponibilità degli adesivi di Claude Code |

153| `/stop` | Arresta la [sessione in background](https://code.claude.com/docs/it/agent-view.md) a cui sei collegato, o quella a cui lo invii come [risposta in anteprima](https://code.claude.com/docs/it/agent-view.md#peek-and-reply); la trascrizione e l'eventuale worktree vengono conservati. Per scollegarti senza arrestarla, usa `/exit` o premi `←` |151| `/stop` | Arresta la [sessione in background](https://code.claude.com/docs/it/agent-view.md) a cui sei collegato, o quella a cui lo invii come [risposta in anteprima](https://code.claude.com/docs/it/agent-view.md#peek-and-reply); la trascrizione e l'eventuale worktree vengono conservati. Per scollegarti senza arrestarla, usa `/exit` o premi `←` |

154| `/subtask <task>` | Avvia un [subagent biforcato](https://code.claude.com/docs/it/sub-agents.md#fork-the-current-conversation): un subagent in background che eredita l'intera conversazione e lavora sull'attività mentre tu continui a lavorare. Il suo risultato torna in questa conversazione al termine. Per copiare invece la conversazione in una sessione in background separata, usa `/fork`. Quando la [vista agenti è disattivata](https://code.claude.com/docs/it/agent-view.md#turn-off-agent-view), `/subtask` non è disponibile e `/fork` avvia invece il subagent biforcato |152| `/subtask <task>` | Avvia un [subagent biforcato](https://code.claude.com/docs/it/sub-agents.md#fork-the-current-conversation): un subagent in background che eredita l'intera conversazione e lavora sull'attività mentre tu continui a lavorare. Il suo risultato torna in questa conversazione al termine. Per copiare invece la conversazione in una sessione in background separata, usa `/fork`. Quando la [vista agenti è disattivata](https://code.claude.com/docs/it/agent-view.md#turn-off-agent-view), `/subtask` non è disponibile e `/fork` avvia invece il subagent biforcato |

155| `/tasks` | Visualizza e gestisce il lavoro in background nella sessione corrente, inclusi i subagent che hanno terminato. Disponibile anche come `/bashes` |153| `/tasks` | Visualizza e gestisce il lavoro in background nella sessione corrente, inclusi i subagent che hanno terminato. Disponibile anche come `/bashes` |


161| `/ultraplan <prompt>` | Rimosso. Usa invece il [plan mode](https://code.claude.com/docs/it/permission-modes.md#analyze-before-you-edit-with-plan-mode). In precedenza inviava un'attività di pianificazione a una [sessione cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md) per la revisione nel browser |159| `/ultraplan <prompt>` | Rimosso. Usa invece il [plan mode](https://code.claude.com/docs/it/permission-modes.md#analyze-before-you-edit-with-plan-mode). In precedenza inviava un'attività di pianificazione a una [sessione cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md) per la revisione nel browser |

162| `/ultrareview [PR or branch]` | Esegue una code review approfondita e multi-agente in una sandbox cloud con [ultrareview](https://code.claude.com/docs/it/ultrareview.md). Passa un riferimento a una PR per esaminare quella pull request, oppure un branch base o un commit per cambiare la base di confronto. L'invocazione preferita è `/code-review ultra`, e `/ultrareview` è un alias. Include 3 esecuzioni gratuite sui piani Pro, Max e Ultra, poi richiede [crediti di utilizzo](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |160| `/ultrareview [PR or branch]` | Esegue una code review approfondita e multi-agente in una sandbox cloud con [ultrareview](https://code.claude.com/docs/it/ultrareview.md). Passa un riferimento a una PR per esaminare quella pull request, oppure un branch base o un commit per cambiare la base di confronto. L'invocazione preferita è `/code-review ultra`, e `/ultrareview` è un alias. Include 3 esecuzioni gratuite sui piani Pro, Max e Ultra, poi richiede [crediti di utilizzo](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |

163| `/update-config [request]` | **[Skill](https://code.claude.com/docs/it/skills.md#bundled-skills).** Descrivi una modifica alle impostazioni, come consentire un comando, impostare una variabile d'ambiente o aggiungere un [hook](https://code.claude.com/docs/it/hooks.md), e Claude modifica il file [`settings.json`](https://code.claude.com/docs/it/settings) corrispondente. Per opzioni come tema e modello, usa invece `/config` |161| `/update-config [request]` | **[Skill](https://code.claude.com/docs/it/skills.md#bundled-skills).** Descrivi una modifica alle impostazioni, come consentire un comando, impostare una variabile d'ambiente o aggiungere un [hook](https://code.claude.com/docs/it/hooks.md), e Claude modifica il file [`settings.json`](https://code.claude.com/docs/it/settings) corrispondente. Per opzioni come tema e modello, usa invece `/config` |

164| `/upgrade` | Apre la pagina di upgrade nel browser per passare a un piano di livello superiore. Quando il browser non si apre, il comando mostra una richiesta di accesso senza stampare l'URL |162| `/upgrade` | Apre la pagina di upgrade nel browser per passare a un piano di livello superiore. Quando nessun browser può aprire la pagina, ad esempio tramite SSH, il comando stampa l'URL della pagina sopra la richiesta di accesso. La stampa dell'URL richiede Claude Code v2.1.323 o successiva |

165| `/usage` | Mostra il costo della sessione, i limiti di utilizzo del piano e le statistiche di attività. Su un piano Pro, Max, Ultra, Team o Enterprise, include un [dettaglio di ciò che conta ai fini dei limiti del piano](https://code.claude.com/docs/it/costs.md#plan-usage-breakdown). Dietro un gateway Claude apps che tiene traccia della spesa, mostra [la tua spesa tramite il gateway](https://code.claude.com/docs/it/claude-apps-gateway-spend-limits.md#usage-warnings-in-claude-code). `/cost` e `/stats` sono alias |163| `/usage` | Mostra il costo della sessione, i limiti di utilizzo del piano e le statistiche di attività. Su un piano Pro, Max, Ultra, Team o Enterprise, include un [dettaglio di ciò che conta ai fini dei limiti del piano](https://code.claude.com/docs/it/costs.md#plan-usage-breakdown). Dietro un gateway Claude apps che tiene traccia della spesa, mostra [la tua spesa tramite il gateway](https://code.claude.com/docs/it/claude-apps-gateway-spend-limits.md#usage-warnings-in-claude-code). `/cost` e `/stats` sono alias |

166| `/usage-credits` | Configura i crediti di utilizzo, o li richiede al tuo amministratore, quando raggiungi un limite. Apre le [impostazioni di fatturazione dei crediti di utilizzo](https://code.claude.com/docs/it/costs.md#add-usage-credits-to-your-subscription) nel browser, tranne per i membri Team ed Enterprise senza accesso alla fatturazione, che invece inviano dalla CLI una richiesta di crediti di utilizzo al proprio amministratore, dopo aver confermato in una finestra di dialogo che la richiesta invia una notifica ai loro amministratori. Quando nessun browser può aprire la pagina di fatturazione, ad esempio tramite SSH, il comando stampa invece l'URL da visitare; questo richiede Claude Code v2.1.205 o successiva, e le versioni precedenti non mostravano nulla in quel caso. In precedenza `/extra-usage` |164| `/usage-credits` | Configura i crediti di utilizzo, o li richiede al tuo amministratore, quando raggiungi un limite. Apre le [impostazioni di fatturazione dei crediti di utilizzo](https://code.claude.com/docs/it/costs.md#add-usage-credits-to-your-subscription) nel browser. I membri Team ed Enterprise senza accesso alla fatturazione inviano invece dalla CLI una richiesta di crediti di utilizzo al proprio amministratore. In un terminale in cui nessun browser può aprire la pagina, ad esempio tramite SSH, il comando stampa l'URL. La stampa dell'URL richiede Claude Code v2.1.205 o successiva. In precedenza `/extra-usage` |

167| `/verify` | **[Skill](https://code.claude.com/docs/it/skills.md#bundled-skills).** Conferma che una modifica al codice faccia ciò che deve eseguendo la build dell'app del tuo progetto, avviandola e osservando il risultato, invece di affidarsi a test o controlli dei tipi. Consulta [Eseguire e verificare la tua app](https://code.claude.com/docs/it/skills.md#run-and-verify-your-app) |165| `/verify` | **[Skill](https://code.claude.com/docs/it/skills.md#bundled-skills).** Conferma che una modifica al codice faccia ciò che deve eseguendo la build dell'app del tuo progetto, avviandola e osservando il risultato, invece di affidarsi a test o controlli dei tipi. Consulta [Eseguire e verificare la tua app](https://code.claude.com/docs/it/skills.md#run-and-verify-your-app) |

168| `/vim` | Rimosso nella v2.1.92. Per passare dalla modalità di modifica Vim a quella Normal e viceversa, usa `/config` → Editor mode |166| `/vim` | Rimosso nella v2.1.92. Per passare dalla modalità di modifica Vim a quella Normal e viceversa, usa `/config` → Editor mode |

169| `/voice [hold\|tap\|off]` | Attiva o disattiva la [dettatura vocale](https://code.claude.com/docs/it/voice-dictation.md), oppure la abilita in una modalità specifica. Richiede un account Claude.ai |167| `/voice [hold\|tap\|off]` | Attiva o disattiva la [dettatura vocale](https://code.claude.com/docs/it/voice-dictation.md), oppure la abilita in una modalità specifica. Richiede un account Claude.ai |

desktop.md +0 −4

Details

2261 2261 

2262L'app Desktop carica i server MCP da `claude_desktop_config.json` nelle sessioni locali della scheda Code, insieme ai server da `~/.claude.json` e `.mcp.json`. Un server definito in `claude_desktop_config.json` è disponibile sia nella superficie desktop chat sia nelle sessioni locali della scheda Code.2262L'app Desktop carica i server MCP da `claude_desktop_config.json` nelle sessioni locali della scheda Code, insieme ai server da `~/.claude.json` e `.mcp.json`. Un server definito in `claude_desktop_config.json` è disponibile sia nella superficie desktop chat sia nelle sessioni locali della scheda Code.

2263 2263 

2264Se definisci lo stesso nome di server in `claude_desktop_config.json` e in `~/.claude.json` o `.mcp.json`, la scheda Code nelle sessioni locali si connette una volta e utilizza la definizione di `claude_desktop_config.json`.

2265 

2266L'app inoltre ri-consegna i server stdio da `~/.claude.json` alla CLI incorporata nelle sessioni locali. Quando il livello superiore di `~/.claude.json` (ambito utente) e `.mcp.json` definiscono lo stesso nome di server stdio, la scheda Code utilizza la definizione di `~/.claude.json`, divergendo dalla [gerarchia di ambito](https://code.claude.com/docs/it/mcp.md#scope-hierarchy-and-precedence) della CLI.

2267 

2268> [!NOTE]2264> [!NOTE]

2269>2265>

2270> La CLI standalone non legge `claude_desktop_config.json`. Su macOS e WSL, esegui `claude mcp add-from-claude-desktop` per copiare questi server in `~/.claude.json`. Vedi [Importa server MCP da Claude Desktop](https://code.claude.com/docs/it/mcp.md#import-mcp-servers-from-claude-desktop) per il flusso di importazione e le opzioni di ambito.2266> La CLI standalone non legge `claude_desktop_config.json`. Su macOS e WSL, esegui `claude mcp add-from-claude-desktop` per copiare questi server in `~/.claude.json`. Vedi [Importa server MCP da Claude Desktop](https://code.claude.com/docs/it/mcp.md#import-mcp-servers-from-claude-desktop) per il flusso di importazione e le opzioni di ambito.

Details

71 71 

72Avvia **Claude** dal tuo launcher di applicazioni, oppure esegui `claude-desktop` da un terminale, e accedi con il tuo account Anthropic.72Avvia **Claude** dal tuo launcher di applicazioni, oppure esegui `claude-desktop` da un terminale, e accedi con il tuo account Anthropic.

73 73 

74L'app Linux accede allo stesso modo di macOS e Windows: con un abbonamento a claude.ai, oppure tramite l'SSO della tua organizzazione. Per l'autenticazione tramite chiave API, utilizza la [CLI](https://code.claude.com/docs/it/quickstart.md). Per utilizzare invece Desktop con Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry o un gateway LLM, consulta [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview). Per i server proxy e le autorità di certificazione personalizzate in questi deploy, consulta la [configurazione di rete](https://code.claude.com/docs/it/network-config.md).74L'app Linux accede allo stesso modo di macOS e Windows: con un abbonamento a claude.ai, oppure tramite l'SSO della tua organizzazione. Per utilizzare invece Desktop con una chiave API di Claude, Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry o un gateway LLM, consulta [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview). Per i server proxy e le autorità di certificazione personalizzate in questi deploy, consulta la [configurazione di rete](https://code.claude.com/docs/it/network-config.md).

75 75 

76### Installa da un file scaricato76### Installa da un file scaricato

77 77 

Details

83 83 

84**8. Scegli la modalità di permesso e il modello**84**8. Scegli la modalità di permesso e il modello**

85 85 

86Nella barra degli strumenti della casella delle istruzioni, seleziona una [modalità di permesso](#permissions-for-scheduled-tasks) e un modello. Se li lasci invariati, le esecuzioni utilizzano le tue impostazioni di Claude Code e il modello predefinito.86Nella barra degli strumenti della casella delle istruzioni, seleziona una [modalità di permesso](#permissions-for-scheduled-tasks) e un modello.

87 

88* **Modalità di permesso**: se la lasci invariata, le esecuzioni utilizzano le tue impostazioni di Claude Code.

89* **Modello**: se il menu del modello indica **Default · Set by admin** e non scegli un altro modello, le esecuzioni utilizzano il modello che la tua organizzazione ha impostato nelle [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md). Un'[esecuzione di recupero](#missed-runs) che si avvia all'apertura dell'app può invece utilizzare il [valore predefinito di runtime per il tuo account](https://code.claude.com/docs/it/model-config.md#default-model-setting).

87 90 

88**9. Crea l'attività**91**9. Crea l'attività**

89 92 

90Fai clic su **Create**. Se non hai ancora considerato attendibile la cartella, Desktop ti chiede di considerarla attendibile a questo punto. Si apre la pagina dei dettagli dell'attività.93Fai clic su **Create**. Se non hai ancora considerato attendibile la cartella, Desktop ti chiede di considerarla attendibile a questo punto. Si apre la pagina dei dettagli dell'attività.

91 94 

95Per vedere a quale modello corrisponde **Default · Set by admin**, fai clic su **Run now** nella pagina dei dettagli per eseguire subito l'attività. Poi [apri la sessione dell'esecuzione](#find-a-runs-session), dove la riga sotto la casella del prompt mostra il nome del modello.

96 

92Nella pagina dei dettagli, fai clic sull'icona a forma di matita per aprire il [modulo **Edit**](#manage-scheduled-tasks). Lì puoi modificare la **Description** che Desktop ha compilato a partire dalle tue istruzioni, selezionare **Worktree** o impostare la pianificazione su **Manual** o **Custom**.97Nella pagina dei dettagli, fai clic sull'icona a forma di matita per aprire il [modulo **Edit**](#manage-scheduled-tasks). Lì puoi modificare la **Description** che Desktop ha compilato a partire dalle tue istruzioni, selezionare **Worktree** o impostare la pianificazione su **Manual** o **Custom**.

93 98 

94Puoi anche creare un'attività descrivendo quello che vuoi in qualsiasi sessione. Ad esempio, "configura una revisione del codice giornaliera che viene eseguita ogni mattina alle 9" crea un'attività ricorrente. Una richiesta come "ricordami alle 15 domani di controllare il deploy" crea un'attività una tantum che si disabilita dopo che si attiva.99Puoi anche creare un'attività descrivendo quello che vuoi in qualsiasi sessione. Ad esempio, "configura una revisione del codice giornaliera che viene eseguita ogni mattina alle 9" crea un'attività ricorrente. Una richiesta come "ricordami alle 15 domani di controllare il deploy" crea un'attività una tantum che si disabilita dopo che si attiva.


181 186 

182Per consentire a un'attività di modificare la propria pianificazione o il proprio prompt con lo strumento MCP `update_scheduled_task`, fai clic su **Run now** e approva la chiamata ogni volta.187Per consentire a un'attività di modificare la propria pianificazione o il proprio prompt con lo strumento MCP `update_scheduled_task`, fai clic su **Run now** e approva la chiamata ogni volta.

183 188 

184Per modificare il prompt di un'attività su disco, apri `~/.claude/scheduled-tasks/<task-name>/SKILL.md` (o sotto [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/it/env-vars) se impostato). Il file utilizza frontmatter YAML per `name` e `description`, con il prompt come corpo. Le modifiche hanno effetto alla prossima esecuzione. La pianificazione, la cartella, il modello e lo stato abilitato non sono in questo file: modificali tramite il modulo Edit o chiedi a Claude.189Per modificare il prompt di un'attività su disco, apri `~/.claude/scheduled-tasks/<task-name>/SKILL.md` (o sotto [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/it/env-vars) se impostato). Il file utilizza frontmatter YAML per `name` e `description`, con il prompt come corpo. Le modifiche hanno effetto alla prossima esecuzione. La pianificazione, la cartella e lo stato abilitato non sono in questo file: modificali tramite il modulo Edit o chiedi a Claude.

185 190 

186## Risorse correlate191## Risorse correlate

187 192 

env-vars.md +7 −3

Details

211| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Sovrascrive la [connessione IDE](https://code.claude.com/docs/it/vs-code.md) 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`](https://code.claude.com/docs/it/settings-reference#autoconnectide) |211| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Sovrascrive la [connessione IDE](https://code.claude.com/docs/it/vs-code.md) 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`](https://code.claude.com/docs/it/settings-reference#autoconnectide) |

212| `CLAUDE_CODE_AUTO_MODE_MODEL` | Imposta il modello per le richieste al classificatore che Claude Code invia in [modalità auto](https://code.claude.com/docs/it/permission-modes.md#eliminate-prompts-with-auto-mode). Usa un ID di modello completo come `claude-sonnet-4-6`. Per i casi in cui Claude Code la ignora, consulta [Scegliere il modello del classificatore](https://code.claude.com/docs/it/permission-modes.md#choose-the-classifier-model). Richiede Claude Code v2.1.302 o successiva |212| `CLAUDE_CODE_AUTO_MODE_MODEL` | Imposta il modello per le richieste al classificatore che Claude Code invia in [modalità auto](https://code.claude.com/docs/it/permission-modes.md#eliminate-prompts-with-auto-mode). Usa un ID di modello completo come `claude-sonnet-4-6`. Per i casi in cui Claude Code la ignora, consulta [Scegliere il modello del classificatore](https://code.claude.com/docs/it/permission-modes.md#choose-the-classifier-model). Richiede Claude Code v2.1.302 o successiva |

213| `CLAUDE_CODE_AUTO_MODE_SERVER` | Controlla se Claude Code chiede al server di [esaminare le azioni della modalità auto](https://code.claude.com/docs/it/permission-modes.md#server-side-classifier-review). Imposta su `0` per usare invece le richieste al classificatore proprie di Claude Code. Su una connessione diretta all'API Anthropic, richiede la v2.1.281 o versioni successive. 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 versioni successive |213| `CLAUDE_CODE_AUTO_MODE_SERVER` | Controlla se Claude Code chiede al server di [esaminare le azioni della modalità auto](https://code.claude.com/docs/it/permission-modes.md#server-side-classifier-review). Imposta su `0` per usare invece le richieste al classificatore proprie di Claude Code. Su una connessione diretta all'API Anthropic, richiede la v2.1.281 o versioni successive. 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 versioni successive |

214| `CLAUDE_CODE_AUTOMOUNT_ROOTS` | Cartelle radice di automount che Claude Code deve saltare quando cerca, nelle cartelle sopra la tua directory di lavoro, file come `CLAUDE.md`, skill e `.mcp.json`. Impostala quando queste ricerche restano in attesa del tuo automounter. Separa più percorsi con `:` su Unix o `;` su Windows, e indica ciascuno come percorso assoluto privo di collegamenti simbolici. Richiede Claude Code v2.1.323 o successiva |

214| `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`](https://code.claude.com/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 su Amazon Bedrock, [Claude Platform on AWS](https://code.claude.com/docs/it/claude-platform-on-aws.md) e sull'[endpoint Mantle](https://code.claude.com/docs/it/amazon-bedrock.md#use-the-mantle-endpoint). Consulta [memorizzazione nella cache delle credenziali e timeout di risoluzione](https://code.claude.com/docs/it/amazon-bedrock.md#credential-caching-and-resolution-timeout). Richiede Claude Code v2.1.207 o versioni successive |215| `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`](https://code.claude.com/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 su Amazon Bedrock, [Claude Platform on AWS](https://code.claude.com/docs/it/claude-platform-on-aws.md) e sull'[endpoint Mantle](https://code.claude.com/docs/it/amazon-bedrock.md#use-the-mantle-endpoint). Consulta [memorizzazione nella cache delle credenziali e timeout di risoluzione](https://code.claude.com/docs/it/amazon-bedrock.md#credential-caching-and-resolution-timeout). Richiede Claude Code v2.1.207 o versioni successive |

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

216| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | Imposta su `0` per fare in modo che una sessione non interattiva riporti al proprio host uno stato inattivo alla fine di ogni turno, anche mentre è ancora in esecuzione del lavoro in background. Per impostazione predefinita, la sessione continua a riportare uno stato di esecuzione oltre la fine del turno mentre è ancora attivo del lavoro in background, come un agente in background o un'esecuzione di un [workflow](https://code.claude.com/docs/it/workflows.md). 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à del 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 versioni successive; nelle versioni precedenti, imposta `1` per mantenere lo stato di esecuzione |217| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | Imposta su `0` per fare in modo che una sessione non interattiva riporti al proprio host uno stato inattivo alla fine di ogni turno, anche mentre è ancora in esecuzione del lavoro in background. Per impostazione predefinita, la sessione continua a riportare uno stato di esecuzione oltre la fine del turno mentre è ancora attivo del lavoro in background, come un agente in background o un'esecuzione di un [workflow](https://code.claude.com/docs/it/workflows.md). 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à del 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 versioni successive; nelle versioni precedenti, imposta `1` per mantenere lo stato di esecuzione |


298| `CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS` | Imposta su `1` per [eseguire comandi `rm` pericolosi senza alcuna richiesta di conferma](https://code.claude.com/docs/it/permission-modes#turn-off-the-critical-path-removal-prompt-in-bypasspermissions-mode) in modalità `bypassPermissions`, il che rimuove una richiesta di conferma di sicurezza per le eliminazioni distruttive. La sezione collegata elenca i casi in cui non ha effetto. [Impostala nell'ambiente che avvia Claude Code](#set-variables-in-your-shell), perché Claude Code [la ignora in un blocco `env` delle impostazioni](https://code.claude.com/docs/it/settings-reference#variables-claude-code-ignores-in-env). Richiede Claude Code v2.1.311 o successivo |299| `CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS` | Imposta su `1` per [eseguire comandi `rm` pericolosi senza alcuna richiesta di conferma](https://code.claude.com/docs/it/permission-modes#turn-off-the-critical-path-removal-prompt-in-bypasspermissions-mode) in modalità `bypassPermissions`, il che rimuove una richiesta di conferma di sicurezza per le eliminazioni distruttive. La sezione collegata elenca i casi in cui non ha effetto. [Impostala nell'ambiente che avvia Claude Code](#set-variables-in-your-shell), perché Claude Code [la ignora in un blocco `env` delle impostazioni](https://code.claude.com/docs/it/settings-reference#variables-claude-code-ignores-in-env). Richiede Claude Code v2.1.311 o successivo |

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 |300| `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 |

300| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Imposta su `1` per abilitare i [team di agenti](https://code.claude.com/docs/it/agent-teams.md). I team di agenti sono sperimentali e disabilitati per impostazione predefinita |301| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Imposta su `1` per abilitare i [team di agenti](https://code.claude.com/docs/it/agent-teams.md). I team di agenti sono sperimentali e disabilitati per impostazione predefinita |

302| `CLAUDE_CODE_EXPERIMENTAL_CODE_MODE` | Imposta su `1` per avviare le sessioni in [Code Mode](https://code.claude.com/docs/it/code-mode.md), una funzionalità sperimentale. Imposta su `0` per mantenerla disattivata, oppure nelle impostazioni gestite per [bloccarla per un'organizzazione](https://code.claude.com/docs/it/code-mode.md#block-code-mode-for-your-organization). La variabile [non viene considerata in ogni file di impostazioni](https://code.claude.com/docs/it/settings-reference.md#variables-claude-code-ignores-in-env). Consulta i [requisiti di versione e di account](https://code.claude.com/docs/it/code-mode.md#requirements) |

301| `CLAUDE_CODE_EXTRA_BODY` | Oggetto JSON da unire al livello superiore dei body delle richieste al modello, tranne che in alcune richieste esterne alla conversazione, come i controlli di `/model`. 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](https://code.claude.com/docs/it/agent-view.md) che avvii con `claude agents` o `--bg`. Prima della v2.1.206, le sessioni in background ignoravano un valore esportato nella shell e usavano la copia ereditata dal processo supervisore in background |303| `CLAUDE_CODE_EXTRA_BODY` | Oggetto JSON da unire al livello superiore dei body delle richieste al modello, tranne che in alcune richieste esterne alla conversazione, come i controlli di `/model`. 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](https://code.claude.com/docs/it/agent-view.md) che avvii con `claude agents` o `--bg`. Prima della v2.1.206, le sessioni in background ignoravano un valore esportato nella shell e usavano la copia ereditata dal processo supervisore in background |

302| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Sovrascrive il limite predefinito di token per le [letture di file](https://code.claude.com/docs/it/tools-reference.md#large-files), pari a 25.000 token. Utile quando devi leggere per intero file più grandi. Una lettura che Claude effettua con il parametro `allow_large` può superare questo limite quando la finestra di contesto ha spazio |304| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Sovrascrive il limite predefinito di token per le [letture di file](https://code.claude.com/docs/it/tools-reference.md#large-files), pari a 25.000 token. Utile quando devi leggere per intero file più grandi. Una lettura che Claude effettua con il parametro `allow_large` può superare questo limite quando la finestra di contesto ha spazio |

303| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | Imposta su `1` per forzare la persistenza delle trascrizioni, 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 ereditato di `CLAUDE_CODE_CHILD_SESSION`, ad esempio da una sessione `screen` o da un launcher in background avviato per la prima volta dallo strumento Bash di Claude Code, fa sì che una vera sessione di primo livello venga erroneamente classificata come annidata. A partire 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 nella v2.1.170 e nella v2.1.171, in cui il rilevamento delle sessioni annidate che sovrascrive era stato rimosso |305| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | Imposta su `1` per forzare la persistenza delle trascrizioni, 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 ereditato di `CLAUDE_CODE_CHILD_SESSION`, ad esempio da una sessione `screen` o da un launcher in background avviato per la prima volta dallo strumento Bash di Claude Code, fa sì che una vera sessione di primo livello venga erroneamente classificata come annidata. A partire 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 nella v2.1.170 e nella v2.1.171, in cui il rilevamento delle sessioni annidate che sovrascrive era stato rimosso |


348| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | Timeout in millisecondi per lo svuotamento degli span OpenTelemetry in sospeso (predefinito: 5000). Consulta [Monitoraggio](https://code.claude.com/docs/it/monitoring-usage.md) |350| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | Timeout in millisecondi per lo svuotamento degli span OpenTelemetry in sospeso (predefinito: 5000). Consulta [Monitoraggio](https://code.claude.com/docs/it/monitoring-usage.md) |

349| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Intervallo in millisecondi per l'aggiornamento degli header OpenTelemetry dinamici (predefinito: 1740000 / 29 minuti). Consulta [Header dinamici](https://code.claude.com/docs/it/monitoring-usage.md#dynamic-headers) |351| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Intervallo in millisecondi per l'aggiornamento degli header OpenTelemetry dinamici (predefinito: 1740000 / 29 minuti). Consulta [Header dinamici](https://code.claude.com/docs/it/monitoring-usage.md#dynamic-headers) |

350| `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](https://code.claude.com/docs/it/monitoring-usage.md) |352| `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](https://code.claude.com/docs/it/monitoring-usage.md) |

351| `CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS` | Ritardo iniziale in millisecondi, al posto del valore predefinito 500, del backoff esponenziale tra i [nuovi tentativi automatici](https://code.claude.com/docs/it/errors.md#tune-retry-behavior) di una richiesta che l'API rifiuta con un errore `529` di sovraccarico. Aumentalo per distribuire i nuovi tentativi su un intervallo più lungo quando l'API è al limite della capacità. Indica millisecondi interi da 500 a 32000 in cifre semplici; Claude Code tratta qualsiasi altro valore come non impostato. Non ha effetto quando `CLAUDE_CODE_RETRY_WATCHDOG` è impostata su `1`, o quando la richiesta rifiutata è stata inviata in [modalità veloce](https://code.claude.com/docs/it/fast-mode.md#handle-rate-limits). Richiede Claude Code v2.1.292 o successiva |353| `CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS` | Ritardo iniziale in millisecondi del backoff tra i nuovi tentativi di una richiesta che l'API rifiuta con un errore `529` di sovraccarico (predefinito: 500). Aumentalo per distribuire i nuovi tentativi su un intervallo più lungo quando l'API è al limite della capacità. Indica millisecondi interi da 500 a 32000 in cifre semplici; Claude Code tratta qualsiasi altro valore come non impostato. Consulta [quando non ha effetto](https://code.claude.com/docs/it/errors.md#tune-retry-behavior). Richiede Claude Code v2.1.292 o successivo |

352| `CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS` | Limite massimo in millisecondi, al posto del valore predefinito di 32000, del backoff esponenziale tra i [nuovi tentativi automatici](https://code.claude.com/docs/it/errors.md#tune-retry-behavior) di una richiesta che l'API rifiuta con un errore `529` di sovraccarico. Aumentalo affinché i tentativi successivi continuino a distanziarsi quando l'API è al limite della capacità. Specifica millisecondi interi da 32000 a 64000 con cifre semplici; Claude Code tratta qualsiasi altro valore come non impostato. Non ha effetto quando `CLAUDE_CODE_RETRY_WATCHDOG` è impostata su `1`, o quando la richiesta rifiutata è stata inviata in [modalità veloce](https://code.claude.com/docs/it/fast-mode.md#handle-rate-limits). Richiede Claude Code v2.1.296 o versioni successive |354| `CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS` | Limite massimo in millisecondi del backoff tra i nuovi tentativi di una richiesta che l'API rifiuta con un errore `529` di sovraccarico (predefinito: 32000). Aumentalo affinché i tentativi successivi continuino a distanziarsi. Indica millisecondi interi da 32000 a 300000 in cifre semplici; Claude Code tratta qualsiasi altro valore come non impostato. I valori superiori a 64000 richiedono la v2.1.323 o successiva. Consulta [quando non ha effetto](https://code.claude.com/docs/it/errors.md#tune-retry-behavior). Richiede Claude Code v2.1.296 o successivo |

353| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | Imposta su `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. Consulta [Aggiornamenti automatici](https://code.claude.com/docs/it/setup.md#auto-updates) |355| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | Imposta su `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. Consulta [Aggiornamenti automatici](https://code.claude.com/docs/it/setup.md#auto-updates) |

354| `CLAUDE_CODE_PERFORCE_MODE` | Imposta su `1` per abilitare la protezione da scrittura compatibile con Perforce. Quando è impostata, Edit, Write e NotebookEdit non riescono e mostrano 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 |356| `CLAUDE_CODE_PERFORCE_MODE` | Imposta su `1` per abilitare la protezione da scrittura compatibile con Perforce. Quando è impostata, Edit, Write e NotebookEdit non riescono e mostrano 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 |

355| `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` |357| `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` |


370| `CLAUDE_CODE_REMOTE` | Impostata automaticamente su `true` quando Claude Code viene eseguito come [sessione cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md). Leggila da un hook o da uno script di configurazione per rilevare se ti trovi in una sessione cloud |372| `CLAUDE_CODE_REMOTE` | Impostata automaticamente su `true` quando Claude Code viene eseguito come [sessione cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md). Leggila da un hook o da uno script di configurazione per rilevare se ti trovi in una sessione cloud |

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

372| `CLAUDE_CODE_RESTRICTED` | Imposta su `1` per avviare la sessione in modalità con restrizioni, come passando [`--restricted`](https://code.claude.com/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 |374| `CLAUDE_CODE_RESTRICTED` | Imposta su `1` per avviare la sessione in modalità con restrizioni, come passando [`--restricted`](https://code.claude.com/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 |

375| `CLAUDE_CODE_RESUME_HINT_COMMAND` | In uno script wrapper che avvia Claude Code, impostala sul nome che digiti per eseguire il wrapper, come `mytool`. Una sessione locale stampa quindi `mytool --resume <session-id>` all'uscita al posto di `claude --resume <session-id>`. Claude Code ignora un nome che non corrisponde a `^\w[\w-]*$`. Ignora inoltre la variabile nel blocco `env` di un file di impostazioni. Richiede Claude Code v2.1.323 o successivo |

373| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Imposta su `1` per riprendere automaticamente se la sessione precedente è terminata a metà turno. Usata in modalità SDK in modo che 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 chat di VS Code, consulta [Continuare le conversazioni dopo un ricaricamento](https://code.claude.com/docs/it/vs-code.md#continue-conversations-after-a-reload) |376| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Imposta su `1` per riprendere automaticamente se la sessione precedente è terminata a metà turno. Usata in modalità SDK in modo che 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 chat di VS Code, consulta [Continuare le conversazioni dopo un ricaricamento](https://code.claude.com/docs/it/vs-code.md#continue-conversations-after-a-reload) |

374| `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 così che tu possa continuare esplicitamente. Se non impostata o impostata su `0`, non c'è alcun limite, tranne per il fatto che alcuni turni vengono ripresi solo entro sei ore dal loro ultimo messaggio, ad esempio uno terminato con un errore API. Un valore positivo limita ogni turno, compresi quelli; un valore negativo o non numerico applica un limite di un'ora. Gli script di avvio per agenti a lunga esecuzione 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](https://code.claude.com/docs/it/agent-view.md) andata in crash che ha ereditato la conversazione da una sessione interattiva. Richiede Claude Code v2.1.211 o successiva |377| `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 così che tu possa continuare esplicitamente. Se non impostata o impostata su `0`, non c'è alcun limite, tranne per il fatto che alcuni turni vengono ripresi solo entro sei ore dal loro ultimo messaggio, ad esempio uno terminato con un errore API. Un valore positivo limita ogni turno, compresi quelli; un valore negativo o non numerico applica un limite di un'ora. Gli script di avvio per agenti a lunga esecuzione 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](https://code.claude.com/docs/it/agent-view.md) andata in crash che ha ereditato la conversazione da una sessione interattiva. Richiede Claude Code v2.1.211 o successiva |

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


405| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Imposta su `1` per rimuovere le credenziali dagli ambienti dei sottoprocessi avviati da Claude Code, come comandi Bash, hook e server MCP stdio. La pulizia riconosce una credenziale dal nome della variabile o dal suo valore, e lascia invariati i token GitHub e le impostazioni del proxy. Consulta [Cosa rimuove la pulizia dell'ambiente dei sottoprocessi](#what-the-subprocess-environment-scrub-removes). `claude-code-action` la imposta automaticamente quando è configurato `allowed_non_write_users` |408| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Imposta su `1` per rimuovere le credenziali dagli ambienti dei sottoprocessi avviati da Claude Code, come comandi Bash, hook e server MCP stdio. La pulizia riconosce una credenziale dal nome della variabile o dal suo valore, e lascia invariati i token GitHub e le impostazioni del proxy. Consulta [Cosa rimuove la pulizia dell'ambiente dei sottoprocessi](#what-the-subprocess-environment-scrub-removes). `claude-code-action` la imposta automaticamente quando è configurato `allowed_non_write_users` |

406| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | Imposta su `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 |409| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | Imposta su `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 |

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

408| `CLAUDE_CODE_SYNC_SKILLS` | Imposta su `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. Richiede l'autenticazione claude.ai. Le sessioni nel terminale in cui accedi con il tuo account claude.ai [sincronizzano queste skill](https://code.claude.com/docs/it/skills.md#where-synced-skills-load) senza questa variabile, quindi impostala solo quando un'esecuzione `-p` ha bisogno delle tue skill attuali alla prima query |411| `CLAUDE_CODE_SYNC_SKILLS` | Imposta a `1` affinché Claude Code scarichi le skill abilitate per il tuo account claude.ai. In modalità non interattiva con il flag `-p`, Claude Code attende inoltre fino a `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` l'elenco delle skill prima di eseguire la prima query. Richiede l'autenticazione claude.ai. Le sessioni del terminale in cui accedi con il tuo account claude.ai [sincronizzano queste skill](https://code.claude.com/docs/it/skills.md#where-synced-skills-load) senza questa variabile. In una sessione interattiva, la variabile richiede la v2.1.323 o successiva |

409| `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](https://code.claude.com/docs/it/agent-sdk/typescript.md#query-object) ricarica le skill (predefinito: 30000). Se viene superato, il ricaricamento prosegue con le skill già arrivate e i download rimanenti terminano in background |412| `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](https://code.claude.com/docs/it/agent-sdk/typescript.md#query-object) ricarica le skill (predefinito: 30000). Se viene superato, il ricaricamento prosegue con le skill già arrivate e i download rimanenti terminano in background |

410| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Timeout in millisecondi per cui la prima query attende l'elenco iniziale delle skill quando è impostata `CLAUDE_CODE_SYNC_SKILLS` (predefinito: 5000). Se 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 |413| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Timeout in millisecondi per cui la prima query attende l'elenco iniziale delle skill quando è impostata `CLAUDE_CODE_SYNC_SKILLS` (predefinito: 5000). Se 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 |

411| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Imposta su `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`](https://code.claude.com/docs/it/settings-reference#syntaxhighlightingdisabled) |414| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Imposta su `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`](https://code.claude.com/docs/it/settings-reference#syntaxhighlightingdisabled) |


585* Attivare il [mod You should know](https://code.claude.com/docs/it/interactive-mode.md#you-should-know-suggestions)588* Attivare il [mod You should know](https://code.claude.com/docs/it/interactive-mode.md#you-should-know-suggestions)

586* Usare [lo strumento advisor](https://code.claude.com/docs/it/advisor.md#requirements), tranne su Claude Platform on AWS con Claude Code v2.1.300 o versioni successive589* Usare [lo strumento advisor](https://code.claude.com/docs/it/advisor.md#requirements), tranne su Claude Platform on AWS con Claude Code v2.1.300 o versioni successive

587* Usare i [task MCP](https://code.claude.com/docs/it/mcp.md#mcp-tasks-that-run-on-the-server)590* Usare i [task MCP](https://code.claude.com/docs/it/mcp.md#mcp-tasks-that-run-on-the-server)

591* Attivare la [Code Mode](https://code.claude.com/docs/it/code-mode.md#requirements)

588* Leggere o rispondere ai [commenti su un artefatto](https://code.claude.com/docs/it/artifacts.md#collect-comments-on-an-artifact)592* Leggere o rispondere ai [commenti su un artefatto](https://code.claude.com/docs/it/artifacts.md#collect-comments-on-an-artifact)

589* Far leggere a Claude [l'artefatto pubblico di un'altra organizzazione](https://code.claude.com/docs/it/artifacts.md#read-an-artifact-shared-with-you)593* Far leggere a Claude [l'artefatto pubblico di un'altra organizzazione](https://code.claude.com/docs/it/artifacts.md#read-an-artifact-shared-with-you)

590* Ottenere lo [strumento PowerShell](https://code.claude.com/docs/it/tools-reference.md#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 tramite Git Bash a meno che tu non imposti `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`. Su Windows senza Git Bash, lo strumento resta attivo594* Ottenere lo [strumento PowerShell](https://code.claude.com/docs/it/tools-reference.md#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 tramite Git Bash a meno che tu non imposti `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`. Su Windows senza Git Bash, lo strumento resta attivo

errors.md +99 −14

Details

122| `A request to MCP server "<name>" was sent without your stored credentials` | [Autenticazione](#couldnt-read-the-stored-credentials-for-mcp-server) |122| `A request to MCP server "<name>" was sent without your stored credentials` | [Autenticazione](#couldnt-read-the-stored-credentials-for-mcp-server) |

123| `This server's URL is missing or not a valid URL, so sign-in can't start` | [Autenticazione](#mcp-server-url-is-missing-or-not-a-valid-url) |123| `This server's URL is missing or not a valid URL, so sign-in can't start` | [Autenticazione](#mcp-server-url-is-missing-or-not-a-valid-url) |

124| `Issuer mismatch in authorization response (RFC 9207)` | [Autenticazione](#issuer-mismatch-in-authorization-response) |124| `Issuer mismatch in authorization response (RFC 9207)` | [Autenticazione](#issuer-mismatch-in-authorization-response) |

125| `Stopped an OAuth request` | [Autenticazione](#stopped-an-oauth-request) |

125| `Refusing to send credentials to non-https token endpoint` / `<short-name> from the MCP SDK for <server-url>` | [Autenticazione](#refusing-to-send-credentials-to-non-https-token-endpoint) |126| `Refusing to send credentials to non-https token endpoint` / `<short-name> from the MCP SDK for <server-url>` | [Autenticazione](#refusing-to-send-credentials-to-non-https-token-endpoint) |

126| `Cloud gateway session expired — run /login to reconnect.` | [Autenticazione](#cloud-gateway-session-expired) |127| `Cloud gateway session expired — run /login to reconnect.` | [Autenticazione](#cloud-gateway-session-expired) |

127| `Cloud gateway <url> no longer accepts this session` | [Autenticazione](#cloud-gateway-session-expired) |128| `Cloud gateway <url> no longer accepts this session` | [Autenticazione](#cloud-gateway-session-expired) |


153| `403` with `GitHub GraphQL is not available from Claude Code sessions` in a cloud session | [GitHub proxy](https://code.claude.com/docs/it/cloud-environments.md#github-proxy) |154| `403` with `GitHub GraphQL is not available from Claude Code sessions` in a cloud session | [GitHub proxy](https://code.claude.com/docs/it/cloud-environments.md#github-proxy) |

154| `The cloud environments service returned an empty response` / `The cloud environments service returned a response in an unexpected format` | [Rete](#the-cloud-environments-service-returned-an-empty-or-unexpected-response) |155| `The cloud environments service returned an empty response` / `The cloud environments service returned a response in an unexpected format` | [Rete](#the-cloud-environments-service-returned-an-empty-or-unexpected-response) |

155| `Failed to fetch session from Sessions API: Failed to fetch session logs` | [Rete](#failed-to-fetch-session-from-sessions-api) |156| `Failed to fetch session from Sessions API: Failed to fetch session logs` | [Rete](#failed-to-fetch-session-from-sessions-api) |

157| `Couldn't load the history of cloud session` | [Rete](#couldnt-load-the-history-of-cloud-session) |

156| `Couldn't reconnect to your Remote Control session` | [Rete](#couldnt-reconnect-to-your-remote-control-session) |158| `Couldn't reconnect to your Remote Control session` | [Rete](#couldnt-reconnect-to-your-remote-control-session) |

157| `N sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.` | [Rete](#sessions-ended-while-this-machine-was-offline) |159| `N sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.` | [Rete](#sessions-ended-while-this-machine-was-offline) |

158| `Couldn't share the transcript.` | [Rete](#couldnt-share-the-transcript) |160| `Couldn't share the transcript.` | [Rete](#couldnt-share-the-transcript) |


180| `PDF too large` / `PDF is password protected` / `pdftoppm is not installed` | [Errori di richiesta](#pdf-errors) |182| `PDF too large` / `PDF is password protected` / `pdftoppm is not installed` | [Errori di richiesta](#pdf-errors) |

181| `Extra inputs are not permitted` | [Errori di richiesta](#extra-inputs-are-not-permitted) |183| `Extra inputs are not permitted` | [Errori di richiesta](#extra-inputs-are-not-permitted) |

182| `API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid` / `Property keys should match pattern` | [Errori di richiesta](#tool-input-schema-is-invalid) |184| `API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid` / `Property keys should match pattern` | [Errori di richiesta](#tool-input-schema-is-invalid) |

185| `N tools left out` accanto a un server in `/mcp` / `Claude wasn't given N tools because the Anthropic API would reject their input schemas` | [Strumenti con schemi di input non validi](https://code.claude.com/docs/it/mcp.md#tools-with-invalid-input-schemas) |

183| `Tool "mcp__<server>__<tool>" is not sent to Claude: its name has <N> characters and the API accepts at most 128` | [Errori di richiesta](#mcp-tool-name-over-128-characters) |186| `Tool "mcp__<server>__<tool>" is not sent to Claude: its name has <N> characters and the API accepts at most 128` | [Errori di richiesta](#mcp-tool-name-over-128-characters) |

184| `tools.N.custom.name: String should have at most 128 characters` | [Errori di richiesta](#mcp-tool-name-over-128-characters) |187| `tools.N.custom.name: String should have at most 128 characters` | [Errori di richiesta](#mcp-tool-name-over-128-characters) |

185| `tool_use.name: String should have at most 200 characters` | [Errori di richiesta](#tool-use-name-over-200-characters) |188| `tool_use.name: String should have at most 200 characters` | [Errori di richiesta](#tool-use-name-over-200-characters) |


251| `Ultrareview did not start` | [Errori della riga di comando](#ultrareview-did-not-start) |254| `Ultrareview did not start` | [Errori della riga di comando](#ultrareview-did-not-start) |

252| `Remote Control did not start: "<question>" got no answer` | [Errori della riga di comando](#remote-control-did-not-start-got-no-answer) |255| `Remote Control did not start: "<question>" got no answer` | [Errori della riga di comando](#remote-control-did-not-start-got-no-answer) |

253| `` `<flag>` before `remote-control` is not carried over to the sessions Remote Control starts `` | [Errori della riga di comando](#not-carried-over-to-the-sessions-remote-control-starts) |256| `` `<flag>` before `remote-control` is not carried over to the sessions Remote Control starts `` | [Errori della riga di comando](#not-carried-over-to-the-sessions-remote-control-starts) |

257| `Remote Control did not start, because sessions would skip part or all of the --settings file` | [Errori della riga di comando](#remote-control-did-not-start-because-of-the-settings-file) |

258| `The settings file <file> has changed since Remote Control started, so this session did not start` | [Errori della riga di comando](#settings-file-changed-since-remote-control-started) |

254| `--sandbox is not supported by claude remote-control` / `--no-sandbox is not supported by claude remote-control` | [Errori della riga di comando](#sandbox-is-not-supported-by-claude-remote-control) |259| `--sandbox is not supported by claude remote-control` / `--no-sandbox is not supported by claude remote-control` | [Errori della riga di comando](#sandbox-is-not-supported-by-claude-remote-control) |

255| `` `claude import` is not yet available in this build `` | [Errori della riga di comando](#claude-import-is-not-yet-available-in-this-build) |260| `` `claude import` is not yet available in this build `` | [Errori della riga di comando](#claude-import-is-not-yet-available-in-this-build) |

256| `Could not read Claude Code config` | [Errori della riga di comando](#could-not-read-claude-code-config) |261| `Could not read Claude Code config` | [Errori della riga di comando](#could-not-read-claude-code-config) |


268| `No available ports for OAuth redirect` | [Errori della riga di comando](#no-available-ports-for-oauth-redirect) |273| `No available ports for OAuth redirect` | [Errori della riga di comando](#no-available-ports-for-oauth-redirect) |

269| `Shell command failed for pattern "..."`, from `/security-review` or any skill that injects dynamic context | [Errori della riga di comando](#security-review-fails-without-origin-head) |274| `Shell command failed for pattern "..."`, from `/security-review` or any skill that injects dynamic context | [Errori della riga di comando](#security-review-fails-without-origin-head) |

270| `Shell command permission check failed for pattern "..."`, from a skill that injects dynamic context | [Errori della riga di comando](#security-review-fails-without-origin-head) |275| `Shell command permission check failed for pattern "..."`, from a skill that injects dynamic context | [Errori della riga di comando](#security-review-fails-without-origin-head) |

276| ``Couldn't run `<command>` for <name>. A file named HEAD or .git in this folder or one above it may not be yours``, da una skill che inietta contesto dinamico | [Controlli dei permessi sui comandi iniettati](https://code.claude.com/docs/it/skills.md#permission-checks-on-injected-commands) |

271| ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found`` | [Errori della riga di comando](#security-review-fails-without-origin-head) |277| ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found`` | [Errori della riga di comando](#security-review-fails-without-origin-head) |

272| `No shell command in <name> was run, because the <tool> tool does not accept one of them` | [Errori della riga di comando](#no-shell-command-was-run) |278| `No shell command in <name> was run, because the <tool> tool does not accept one of them` | [Errori della riga di comando](#no-shell-command-was-run) |

273| `Input must be provided either through stdin or as a prompt argument when using --print` | [Errori della riga di comando](#input-must-be-provided-when-using-print) |279| `Input must be provided either through stdin or as a prompt argument when using --print` | [Errori della riga di comando](#input-must-be-provided-when-using-print) |


425| `Workspace not trusted.` when starting or restarting a background session | [Errori della sessione in background](#workspace-not-trusted-when-dispatching-a-background-session) |431| `Workspace not trusted.` when starting or restarting a background session | [Errori della sessione in background](#workspace-not-trusted-when-dispatching-a-background-session) |

426| `Claude Code is being updated by npm on this machine (still not runnable after 2 min, ...)` | [Errori della sessione in background](#eacces-when-starting-a-background-session) |432| `Claude Code is being updated by npm on this machine (still not runnable after 2 min, ...)` | [Errori della sessione in background](#eacces-when-starting-a-background-session) |

427| `Claude Code process exited with code N` | [Errori del wrapper e dell'IDE](#claude-code-process-exited-with-code-n) |433| `Claude Code process exited with code N` | [Errori del wrapper e dell'IDE](#claude-code-process-exited-with-code-n) |

434| `Subprocess initialization did not complete within 60000ms` | [Errori di wrapper e IDE](#subprocess-initialization-did-not-complete-within-60000ms) |

435| `Claude Code did not finish starting` | [Errori di wrapper e IDE](#subprocess-initialization-did-not-complete-within-60000ms) |

428| `The connection to Claude Code ended before this message completed` | [Errori del wrapper e dell'IDE](#the-connection-to-claude-code-ended-before-this-message-completed) |436| `The connection to Claude Code ended before this message completed` | [Errori del wrapper e dell'IDE](#the-connection-to-claude-code-ended-before-this-message-completed) |

429| `Could not locate the Claude CLI on PATH` | [Errori del wrapper e dell'IDE](#could-not-locate-the-claude-cli-on-path) |437| `Could not locate the Claude CLI on PATH` | [Errori del wrapper e dell'IDE](#could-not-locate-the-claude-cli-on-path) |

430| `The Claude Code program for this computer, the <build> build, could not be found` | [Errori di wrapper e IDE](#the-claude-code-program-for-this-computer-could-not-be-found) |438| `The Claude Code program for this computer, the <build> build, could not be found` | [Errori di wrapper e IDE](#the-claude-code-program-for-this-computer-could-not-be-found) |


560| `CLAUDE_CODE_RETRY_WATCHDOG_MAX_USAGE_LIMIT_WAIT_MS` | nessun limite | Con `CLAUDE_CODE_RETRY_WATCHDOG` impostato, il tempo massimo in millisecondi che una singola richiesta attende il ripristino del [limite di utilizzo](#youve-hit-your-session-limit) del tuo piano, come il limite di sessione o settimanale. Quando il ripristino è più lontano di questo tetto, la richiesta fallisce subito, a meno che i crediti di utilizzo abbiano ancora margine o l'API non sia riuscita a verificarli. In questi casi viene ritentata, e fallisce se il tetto viene superato prima che abbia successo. Richiede Claude Code v2.1.301 o successivo. |568| `CLAUDE_CODE_RETRY_WATCHDOG_MAX_USAGE_LIMIT_WAIT_MS` | nessun limite | Con `CLAUDE_CODE_RETRY_WATCHDOG` impostato, il tempo massimo in millisecondi che una singola richiesta attende il ripristino del [limite di utilizzo](#youve-hit-your-session-limit) del tuo piano, come il limite di sessione o settimanale. Quando il ripristino è più lontano di questo tetto, la richiesta fallisce subito, a meno che i crediti di utilizzo abbiano ancora margine o l'API non sia riuscita a verificarli. In questi casi viene ritentata, e fallisce se il tetto viene superato prima che abbia successo. Richiede Claude Code v2.1.301 o successivo. |

561| [`CLAUDE_CODE_RETRY_WATCHDOG_USAGE_LIMIT_RECHECK_MS`](https://code.claude.com/docs/it/env-vars) | unset | Intervallo minimo in millisecondi tra i controlli che verificano se un [limite di utilizzo](#youve-hit-your-session-limit) è già stato rimosso, mentre una richiesta attende il ripristino di quel limite con `CLAUDE_CODE_RETRY_WATCHDOG` impostato. Quando un controllo rileva che il limite è stato rimosso, la richiesta parte subito. Indica solo cifre da `60000` a `10800000`. Se non è impostato o è fuori da quell'intervallo, non viene effettuato alcun controllo. Per sapere quando Claude Code salta questi controlli, consulta il [riferimento delle variabili d'ambiente](https://code.claude.com/docs/it/env-vars.md). Richiede Claude Code v2.1.305 o successivo. |569| [`CLAUDE_CODE_RETRY_WATCHDOG_USAGE_LIMIT_RECHECK_MS`](https://code.claude.com/docs/it/env-vars) | unset | Intervallo minimo in millisecondi tra i controlli che verificano se un [limite di utilizzo](#youve-hit-your-session-limit) è già stato rimosso, mentre una richiesta attende il ripristino di quel limite con `CLAUDE_CODE_RETRY_WATCHDOG` impostato. Quando un controllo rileva che il limite è stato rimosso, la richiesta parte subito. Indica solo cifre da `60000` a `10800000`. Se non è impostato o è fuori da quell'intervallo, non viene effettuato alcun controllo. Per sapere quando Claude Code salta questi controlli, consulta il [riferimento delle variabili d'ambiente](https://code.claude.com/docs/it/env-vars.md). Richiede Claude Code v2.1.305 o successivo. |

562| [`CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS`](https://code.claude.com/docs/it/env-vars) | 500 | Ritardo iniziale in millisecondi del backoff tra i nuovi tentativi di una richiesta che l'API rifiuta con un errore di sovraccarico `529`. Aumentalo, fino a 32000, per distribuire i nuovi tentativi su un intervallo più lungo quando l'API è al limite della capacità. Non ha effetto quando `CLAUDE_CODE_RETRY_WATCHDOG` è impostato su `1`, o quando la richiesta rifiutata è stata inviata in [modalità veloce](https://code.claude.com/docs/it/fast-mode.md#handle-rate-limits). Richiede Claude Code v2.1.292 o successivo. |570| [`CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS`](https://code.claude.com/docs/it/env-vars) | 500 | Ritardo iniziale in millisecondi del backoff tra i nuovi tentativi di una richiesta che l'API rifiuta con un errore di sovraccarico `529`. Aumentalo, fino a 32000, per distribuire i nuovi tentativi su un intervallo più lungo quando l'API è al limite della capacità. Non ha effetto quando `CLAUDE_CODE_RETRY_WATCHDOG` è impostato su `1`, o quando la richiesta rifiutata è stata inviata in [modalità veloce](https://code.claude.com/docs/it/fast-mode.md#handle-rate-limits). Richiede Claude Code v2.1.292 o successivo. |

563| [`CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS`](https://code.claude.com/docs/it/env-vars) | 32000 | Limite massimo in millisecondi del backoff tra i nuovi tentativi di una richiesta che l'API rifiuta con un errore di sovraccarico `529`. Aumentalo, fino a 64000, in modo che i nuovi tentativi successivi continuino a distanziarsi quando l'API è al limite della capacità. Non ha effetto quando `CLAUDE_CODE_RETRY_WATCHDOG` è impostato su `1`, o quando la richiesta rifiutata è stata inviata in [modalità veloce](https://code.claude.com/docs/it/fast-mode.md#handle-rate-limits). Richiede Claude Code v2.1.296 o successivo. |571| [`CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS`](https://code.claude.com/docs/it/env-vars) | 32000 | Limite massimo in millisecondi del backoff tra i nuovi tentativi di una richiesta che l'API rifiuta con un errore di sovraccarico `529`. Aumentalo, fino a 300000, in modo che i nuovi tentativi successivi continuino a distanziarsi quando l'API è al limite della capacità. I valori superiori a 64000 richiedono la v2.1.323 o successiva. Non ha effetto negli stessi casi di `CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS`. Richiede Claude Code v2.1.296 o successivo. |

564| [`API_TIMEOUT_MS`](https://code.claude.com/docs/it/env-vars) | 600000 | Tempo in millisecondi entro cui ogni tentativo di richiesta deve ricevere le intestazioni di risposta. Non limita quanto a lungo prosegue una risposta in streaming dopo quel momento. Aumentalo per reti lente o proxy. Per come limita la scadenza del primo byte, vedi [No response from API](#no-response-from-api). |572| [`API_TIMEOUT_MS`](https://code.claude.com/docs/it/env-vars) | 600000 | Tempo in millisecondi entro cui ogni tentativo di richiesta deve ricevere le intestazioni di risposta. Non limita quanto a lungo prosegue una risposta in streaming dopo quel momento. Aumentalo per reti lente o proxy. Per come limita la scadenza del primo byte, vedi [No response from API](#no-response-from-api). |

565| [`CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES`](https://code.claude.com/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. Per il timeout di ogni tentativo, vedi [Quanto attende un tentativo non in streaming](#how-long-a-non-streaming-attempt-waits). Richiede Claude Code v2.1.285 o successivo. |573| [`CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES`](https://code.claude.com/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. Per il timeout di ogni tentativo, vedi [Quanto attende un tentativo non in streaming](#how-long-a-non-streaming-attempt-waits). Richiede Claude Code v2.1.285 o successivo. |

566| [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](https://code.claude.com/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). |574| [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](https://code.claude.com/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). |


825Le chiamate successive nella stessa risposta di Claude possono essere negate con questo motivo:833Le chiamate successive nella stessa risposta di Claude possono essere negate con questo motivo:

826 834 

827```text theme={null}835```text theme={null}

828another call in this response was changed by a hook after auto mode reviewed it, or could not be confirmed unchanged836another call in this response was changed after auto mode reviewed it, or could not be confirmed unchanged

829```837```

830 838 

831Claude può quindi inviare di nuovo ogni chiamata negata in modo che il server la revisioni. Se si apre una richiesta di permesso, rispondi. Non devi fare nient'altro, a meno che Claude non dica nella sua risposta che la modalità auto non è riuscita a controllare la chiamata. In quel caso, interrompi la modifica o approva tu stesso la chiamata, e chiedi a Claude di riprovare la chiamata:839Claude può quindi inviare di nuovo ogni chiamata negata in modo che il server la revisioni. Se si apre una richiesta di permesso, rispondi. Non devi fare nient'altro, a meno che Claude non dica nella sua risposta che la modalità auto non è riuscita a controllare la chiamata. In quel caso, interrompi la modifica o approva tu stesso la chiamata, e chiedi a Claude di riprovare la chiamata:


978 986 

979### You've hit your monthly spend limit987### You've hit your monthly spend limit

980 988 

981L'utilizzo incluso nel tuo piano non può coprire questa richiesta, e i [crediti di utilizzo](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) che altrimenti la pagherebbero hanno raggiunto un limite di spesa. Ciò accade quando una delle finestre di utilizzo del tuo piano si è esaurita, o quando la richiesta è una che solo i crediti di utilizzo pagano, come una richiesta a un modello che [fattura ai crediti di utilizzo](https://code.claude.com/docs/it/model-config.md#fable-and-usage-credits). Il messaggio nomina il limite che ti ha bloccato. Il testo dopo il `·` dice come aumentare quel limite, e varia in base al tuo piano e se gestisci la fatturazione:989L'utilizzo incluso nel tuo piano non può coprire questa richiesta, e i [crediti di utilizzo](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) che altrimenti la pagherebbero hanno raggiunto un limite di spesa. Il tuo piano non può coprire una richiesta quando una delle sue finestre di utilizzo si è esaurita, o quando solo i crediti di utilizzo pagano la richiesta. Un esempio è una richiesta a un modello che [fattura ai crediti di utilizzo](https://code.claude.com/docs/it/model-config.md#fable-and-usage-credits).

990 

991Le parole prima del `·` nominano il limite che ti ha bloccato, come il limite di spesa mensile della tua organizzazione, e il testo dopo di esso dice come far aumentare quel limite. In una sessione cloud o con [Remote Control](https://code.claude.com/docs/it/remote-control.md), quel testo non fornisce alcun URL, e un messaggio sul tuo `monthly spend limit` non dice come aumentarlo. Le altre sessioni mostrano forme come queste:

982 992 

983```text theme={null}993```text theme={null}

984You've hit your monthly spend limit · raise it at https://claude.ai/settings/usage?from=cc_cli_limit_message994You've hit your monthly spend limit · raise it at https://claude.ai/settings/usage?from=cc_cli_limit_message


1822 1832 

1823Prima della v2.1.232, Claude Code usava il runtime v2 solo in un rilascio graduale oppure quando impostavi `MCP_SDK_GENERATION=v2`.1833Prima della v2.1.232, Claude Code usava il runtime v2 solo in un rilascio graduale oppure quando impostavi `MCP_SDK_GENERATION=v2`.

1824 1834 

1835### Stopped an OAuth request

1836 

1837Questo messaggio significa che Claude Code ha interrotto una [richiesta OAuth per un server MCP](https://code.claude.com/docs/it/mcp.md#authenticate-with-remote-mcp-servers) perché un endpoint OAuth l'ha reindirizzata. In entrambe le forme del messaggio, il primo indirizzo è quello che ha inviato il reindirizzamento:

1838 

1839```text theme={null}

1840Stopped an OAuth request, which can hold secrets: https://auth.example.com redirected it to https://other.example.com. Ask the owner of https://auth.example.com to remove that redirect.

1841Stopped an OAuth request: https://auth.example.com redirected it more than 5 times. Ask the owner of https://auth.example.com to fix those redirects.

1842```

1843 

1844**Cosa fare:**

1845 

1846* Chiedi a chi gestisce il primo indirizzo, ad esempio l'operatore del server MCP, di rimuovere o correggere il reindirizzamento. Poi riprova da `/mcp`.

1847 

1825### Refusing to send credentials to non-https token endpoint1848### Refusing to send credentials to non-https token endpoint

1826 1849 

1827Sul [runtime v2](https://code.claude.com/docs/it/mcp.md#mcp-client-runtimes), Claude Code invia una richiesta di token [MCP OAuth](https://code.claude.com/docs/it/mcp.md#authenticate-with-remote-mcp-servers) solo a un endpoint del token servito tramite HTTPS o su `localhost`, `127.0.0.1` o `::1`. Questo messaggio significa che l'endpoint del token del server non rientra in nessuno dei due casi, quindi Claude Code si è fermato prima di inviare la richiesta. Ciò accade dopo l'accesso tramite browser, quindi il passaggio nel browser riesce prima, e di nuovo ogni volta che Claude Code aggiorna il token del server.1850Sul [runtime v2](https://code.claude.com/docs/it/mcp.md#mcp-client-runtimes), Claude Code invia una richiesta di token [MCP OAuth](https://code.claude.com/docs/it/mcp.md#authenticate-with-remote-mcp-servers) solo a un endpoint del token servito tramite HTTPS o su `localhost`, `127.0.0.1` o `::1`. Questo messaggio significa che l'endpoint del token del server non rientra in nessuno dei due casi, quindi Claude Code si è fermato prima di inviare la richiesta. Ciò accade dopo l'accesso tramite browser, quindi il passaggio nel browser riesce prima, e di nuovo ogni volta che Claude Code aggiorna il token del server.


2207 2230 

2208### Host not allowed in a cloud session2231### Host not allowed in a cloud session

2209 2232 

2210Una richiesta HTTP in uscita da una sessione cloud o da un'attività pianificata cloud è stata bloccata dalla politica di rete dell'ambiente.2233In una sessione cloud o in un'attività pianificata cloud, un `403` o un errore DNS come `ENOTFOUND` può significare che l'host richiesto non è nell'[allowlist dell'ambiente cloud](https://code.claude.com/docs/it/cloud-environments.md#access-levels). Per confermarlo, confronta l'host con quell'elenco. Un `403` con questa intestazione conferma il blocco, ma non tutti i `403` delle richieste bloccate la includono:

2211 2234 

2212```text theme={null}2235```text theme={null}

2213HTTP 4032236HTTP 403


2290 2313 

2291Prima della v2.1.296, Claude Code non ritentava una lettura fallita e, dopo una lettura fallita, poteva aprire la sessione con una conversazione vuota e segnalare il successo invece di stampare questo messaggio.2314Prima della v2.1.296, Claude Code non ritentava una lettura fallita e, dopo una lettura fallita, poteva aprire la sessione con una conversazione vuota e segnalare il successo invece di stampare questo messaggio.

2292 2315 

2316### Couldn't load the history of cloud session

2317 

2318Questo messaggio significa che Claude Code ha trovato la [sessione cloud che hai chiesto di portare nel tuo terminale](https://code.claude.com/docs/it/claude-code-on-the-web.md#from-cloud-to-terminal), ma la richiesta della sua cronologia della conversazione ha restituito un risultato "non trovato":

2319 

2320```text theme={null}

2321Couldn't load the history of cloud session session_01HJKLMNOPQRSTUVWXYZ. Check it at https://claude.ai/code/session_01HJKLMNOPQRSTUVWXYZ?from=cli

2322```

2323 

2324**Cosa fare:**

2325 

2326* Apri il link nel messaggio per controllare la sessione nel tuo browser. Se lì si apre e lo stesso teleport fallisce di nuovo in questo modo, [segnala il problema](#report-an-error).

2327 

2293### Couldn't reconnect to your Remote Control session2328### Couldn't reconnect to your Remote Control session

2294 2329 

2295```text theme={null}2330```text theme={null}


2565 2600 

2566Claude Code normalmente ridimensiona automaticamente le immagini di grandi dimensioni. Questi errori significano che l'immagine non poteva essere decodificata o ridimensionata per rientrare nei limiti dell'API.2601Claude Code normalmente ridimensiona automaticamente le immagini di grandi dimensioni. Questi errori significano che l'immagine non poteva essere decodificata o ridimensionata per rientrare nei limiti dell'API.

2567 2602 

2603L'errore che vedi può indicare un limite in pixel diverso, ad esempio `2576x2576px` dove questi esempi riportano `2000x2000px`.

2604 

2568**Cosa fare:**2605**Cosa fare:**

2569 2606 

2570* Se il messaggio ti chiede di convertire l'immagine, convertila in PNG, JPEG, GIF o WebP e allegala di nuovo. Claude Code può verificare le dimensioni per questi formati dall'intestazione del file, senza decodificare l'immagine.2607* Se il messaggio ti chiede di convertire l'immagine, convertila in PNG, JPEG, GIF o WebP e allegala di nuovo. Claude Code può verificare le dimensioni per questi formati dall'intestazione del file, senza decodificare l'immagine.


2873* **Una ragione che un hook ha scritto**: un hook PreModelSwitch ha fornito quella ragione quando ha [negato il cambio o chiesto conferma](https://code.claude.com/docs/it/hooks.md#premodelswitch-decision-control). Affronta ciò che chiede, o seleziona un modello che i tuoi hook consentono.2910* **Una ragione che un hook ha scritto**: un hook PreModelSwitch ha fornito quella ragione quando ha [negato il cambio o chiesto conferma](https://code.claude.com/docs/it/hooks.md#premodelswitch-decision-control). Affronta ciò che chiede, o seleziona un modello che i tuoi hook consentono.

2874* **`PreModelSwitch hook <name> did not respond before its timeout`**: un hook che non risponde prima del suo [timeout](https://code.claude.com/docs/it/hooks.md#timeouts) blocca il cambio. Correggi il comando sospeso o aumenta il `timeout` di quell'hook, quindi cambia di nuovo.2911* **`PreModelSwitch hook <name> did not respond before its timeout`**: un hook che non risponde prima del suo [timeout](https://code.claude.com/docs/it/hooks.md#timeouts) blocca il cambio. Correggi il comando sospeso o aumenta il `timeout` di quell'hook, quindi cambia di nuovo.

2875* **`confirmation required, and this session cannot ask`**: un hook ha risposto `ask` senza una ragione, e una richiesta di controllo non ha modo di mostrare la richiesta di conferma. Un comando `/model` in un'esecuzione [`-p`](https://code.claude.com/docs/it/headless) segnala la stessa condizione con `(run /model interactively to confirm)` dopo la ragione. Effettua il cambio da una sessione interattiva, o cambia la decisione dell'hook per questo modello.2912* **`confirmation required, and this session cannot ask`**: un hook ha risposto `ask` senza una ragione, e una richiesta di controllo non ha modo di mostrare la richiesta di conferma. Un comando `/model` in un'esecuzione [`-p`](https://code.claude.com/docs/it/headless) segnala la stessa condizione con `(run /model interactively to confirm)` dopo la ragione. Effettua il cambio da una sessione interattiva, o cambia la decisione dell'hook per questo modello.

2876* **`so organization-managed PreModelSwitch hooks could not be checked`**: Claude Code non ha potuto dire quali hook PreModelSwitch i [plugin gestiti](https://code.claude.com/docs/it/settings-reference.md#enabledplugins) della tua organizzazione forniscono, ad esempio perché un plugin gestito non è riuscito a caricarsi. Uno di quegli hook potrebbe bloccare il cambio, quindi Claude Code rifiuta piuttosto che applicare il cambio senza controllo. L'inizio della ragione nomina cosa ha fallito. Claude Code ricontrolla ad ogni tentativo di cambio, quindi un fallimento che da allora si è chiarito smette di bloccare; se continua a fallire, esegui `claude --debug` e cambia di nuovo per catturare i dettagli, quindi correggi il plugin o chiedi al tuo amministratore di correggerlo.2913* **`so organization-managed PreModelSwitch hooks could not be checked`**: Claude Code prima della v2.1.323 rifiuta quando non riesce a determinare quali hook PreModelSwitch forniscono i tuoi [plugin gestiti](https://code.claude.com/docs/it/settings-reference.md#enabledplugins). Il testo prima di questa frase indica cosa è fallito. Per interrompere il rifiuto, aggiorna Claude Code. Per far funzionare anche gli hook di un plugin fallito, correggi il plugin o chiedi al tuo amministratore. Per i dettagli, avvia `claude --debug` nella tua shell e cambia modello, poi leggi il [log di debug](https://code.claude.com/docs/it/hooks.md#debug-hooks).

2877* **`a PreModelSwitch hook failed before answering`** o **`PreModelSwitch hooks were cancelled (the control stream closed) before answering`**: l'esecuzione dell'hook è terminata senza un verdetto, e Claude Code non lo tratta come approvazione. Esegui `claude --debug` per vedere cosa ha fallito, quindi cambia di nuovo.2914* **`a PreModelSwitch hook failed before answering`** o **`PreModelSwitch hooks were cancelled (the control stream closed) before answering`**: l'esecuzione dell'hook è terminata senza un verdetto, e Claude Code non lo tratta come approvazione. Esegui `claude --debug` per vedere cosa ha fallito, quindi cambia di nuovo.

2878 2915 

2879Prima 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.2916Prima 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.


3499* **`Error: Workspace not trusted. <folder> is your home directory`**: poiché la fiducia per la tua directory home non viene mai salvata, eseguire prima `claude` lì non può aiutare. Esegui invece `claude ultrareview` da una directory di progetto, dopo aver eseguito `claude` lì una volta per accettare la finestra di dialogo di fiducia, oppure aggiungi `--trust-workspace`.3536* **`Error: Workspace not trusted. <folder> is your home directory`**: poiché la fiducia per la tua directory home non viene mai salvata, eseguire prima `claude` lì non può aiutare. Esegui invece `claude ultrareview` da una directory di progetto, dopo aver eseguito `claude` lì una volta per accettare la finestra di dialogo di fiducia, oppure aggiungi `--trust-workspace`.

3500* **`No answer in time.` seguito da `Error: Workspace not trusted`**: la domanda `Trust <folder>? [y/N]` è rimasta senza risposta per 5 minuti. Esegui di nuovo `claude ultrareview` e rispondi.3537* **`No answer in time.` seguito da `Error: Workspace not trusted`**: la domanda `Trust <folder>? [y/N]` è rimasta senza risposta per 5 minuti. Esegui di nuovo `claude ultrareview` e rispondi.

3501* **`Ultrareview did not start: <folder> is not trusted`**: hai rifiutato alla domanda `Trust <folder>? [y/N]`, ad esempio rispondendo `n` o premendo Enter. Per avviare la revisione, esegui di nuovo `claude ultrareview` e rispondi `y`.3538* **`Ultrareview did not start: <folder> is not trusted`**: hai rifiutato alla domanda `Trust <folder>? [y/N]`, ad esempio rispondendo `n` o premendo Enter. Per avviare la revisione, esegui di nuovo `claude ultrareview` e rispondi `y`.

3502* **``Ultrareview did not start: `--trust-workspace` takes no value``**: dopo `--trust-workspace` segue qualcosa che non è un flag, come un numero di PR o `false`. Se non ti fidi della cartella, ometti il flag. Per considerarla attendibile per questa esecuzione, metti il numero di PR o il branch di base prima del flag: `claude ultrareview 1234 --trust-workspace`.3539* **``Ultrareview did not start: `--trust-workspace` takes no value``**: qualcosa che non è un flag segue `--trust-workspace`, come un numero di PR o `false`. Se non consideri attendibile la cartella, ometti il flag. Per considerarla attendibile per questa esecuzione, metti il numero di PR o il branch di base prima del flag: `claude ultrareview 1234 --trust-workspace`.

3503 3540 

3504Prima della v2.1.309, `claude ultrareview` non accettava `--trust-workspace`.3541Prima della v2.1.309, `claude ultrareview` non accettava `--trust-workspace`.

3505 3542 


3522Hai avviato [Remote Control](https://code.claude.com/docs/it/remote-control.md) con un flag globale di `claude` prima del verbo `remote-control`, uno che limiterebbe o configurerebbe le sessioni avviate da Remote Control, come `--settings`, `--setting-sources`, `--permission-mode`, `--disallowed-tools` o `--mcp-config`. Un flag posto prima del verbo non raggiunge mai quelle sessioni. Claude Code si rifiuta invece di avviarsi, nominando il flag:3559Hai avviato [Remote Control](https://code.claude.com/docs/it/remote-control.md) con un flag globale di `claude` prima del verbo `remote-control`, uno che limiterebbe o configurerebbe le sessioni avviate da Remote Control, come `--settings`, `--setting-sources`, `--permission-mode`, `--disallowed-tools` o `--mcp-config`. Un flag posto prima del verbo non raggiunge mai quelle sessioni. Claude Code si rifiuta invece di avviarsi, nominando il flag:

3523 3560 

3524```text theme={null}3561```text theme={null}

3525Error: `--settings` before `remote-control` is not carried over to the sessions Remote Control starts, so Remote Control refuses to start rather than drop it — remove it, and give Remote Control's own options after the verb (see `claude remote-control --help`).3562Error: `--settings` before `remote-control` is not carried over to the sessions Remote Control starts, so Remote Control refuses to start rather than drop it — remove it, and give Remote Control's own options after the verb (see `claude remote-control --help`). Pass settings with `claude remote-control --settings <file>`.

3526```3563```

3527 3564 

3528Claude Code non rifiuta i flag globali che si possono scartare senza conseguenze, come `--verbose`, `--model`, o un `--session-id` o `--plugin-dir` inserito da un wrapper: li ignora e Remote Control si avvia.3565Claude Code non rifiuta i flag globali che si possono scartare senza conseguenze, come `--verbose`, `--model`, o un `--session-id` o `--plugin-dir` inserito da un wrapper: li ignora e Remote Control si avvia.


3536 3573 

3537Prima della v2.1.248, `claude remote-control` non accettava i propri flag quando veniva prima un flag globale, e il comando falliva con un errore `unknown option`.3574Prima della v2.1.248, `claude remote-control` non accettava i propri flag quando veniva prima un flag globale, e il comando falliva con un errore `unknown option`.

3538 3575 

3576### Remote Control non è stato avviato a causa del file `--settings`

3577 

3578Il file che hai passato a [`claude remote-control --settings`](https://code.claude.com/docs/it/remote-control#start-a-remote-control-session) presenta un problema:

3579 

3580```text theme={null}

3581Error: Remote Control did not start, because sessions would skip part or all of the --settings file ./rc-settings.json: Invalid or malformed JSON

3582```

3583 

3584**Cosa fare:**

3585 

3586* Correggi il problema indicato dal messaggio, quindi esegui di nuovo il tuo comando `claude remote-control`

3587 

3588### The settings file has changed since Remote Control started

3589 

3590Questo messaggio nel terminale in cui è in esecuzione `claude remote-control` indica che le sessioni non verranno avviate dal file che hai passato a [`--settings`](https://code.claude.com/docs/it/remote-control#start-a-remote-control-session) nel suo stato attuale:

3591 

3592```text theme={null}

3593Session failed: Error: The settings file /path/to/settings.json has changed since Remote Control started, so this session did not start. Restart `claude remote-control` to use it as it is now.

3594```

3595 

3596**Cosa fare:**

3597 

3598* Per usare il file nel suo stato attuale, arresta `claude remote-control` ed esegui di nuovo lo stesso comando. Per ripristinare le sessioni che stava servendo, consulta [Riprendere le sessioni dopo aver arrestato il server](https://code.claude.com/docs/it/remote-control.md#resume-sessions-after-stopping-the-server).

3599* Per mantenere le impostazioni con cui è stato avviato Remote Control, ripristina il contenuto del file com'era, quindi esegui di nuovo il comando se `claude remote-control` è terminato

3600 

3539### `--sandbox` or `--no-sandbox` is not supported by claude remote-control3601### `--sandbox` or `--no-sandbox` is not supported by claude remote-control

3540 3602 

3541Questo errore indica che il comando che avvia il tuo server [Remote Control](https://code.claude.com/docs/it/remote-control.md) passa `--sandbox` o `--no-sandbox` dopo `remote-control`, e `claude remote-control` non accetta nessuno dei due flag. Il server esce con codice 1 invece di avviarsi:3603Questo errore indica che il comando che avvia il tuo server [Remote Control](https://code.claude.com/docs/it/remote-control.md) passa `--sandbox` o `--no-sandbox` dopo `remote-control`, e `claude remote-control` non accetta nessuno dei due flag. Il server esce con codice 1 invece di avviarsi:


3806 3868 

3807Stringhe analoghe compaiono prima ancora che il comando venga eseguito:3869Stringhe analoghe compaiono prima ancora che il comando venga eseguito:

3808 3870 

3809* `Shell command permission check failed for pattern "..."`: il controllo dei permessi del comando non lo ha consentito. [Controlli dei permessi sui comandi iniettati](https://code.claude.com/docs/it/skills.md#permission-checks-on-injected-commands) spiega quali risultati interrompono l'invocazione in ciascuna modalità di permesso e come pre-approvare un comando con `allowed-tools`3871* `Shell command permission check failed for pattern "..."`: il controllo dei permessi del comando non lo ha consentito. Consulta [Controlli dei permessi sui comandi inseriti](https://code.claude.com/docs/it/skills.md#permission-checks-on-injected-commands) per sapere quali risultati causano l'interruzione in ciascuna modalità di permesso e quando `allowed-tools` pre-approva un comando

3810* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: il frontmatter della skill richiede bash su una macchina che non ce l'ha. Installa Git for Windows o modifica il frontmatter in `shell: powershell`. Consulta [Come vengono eseguiti i comandi iniettati](https://code.claude.com/docs/it/skills.md#how-injected-commands-run)3872* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: il frontmatter della skill richiede bash su una macchina che non lo ha. Installa Git for Windows o modifica il frontmatter in `shell: powershell`. Consulta [Come vengono eseguiti i comandi inseriti](https://code.claude.com/docs/it/skills.md#how-injected-commands-run)

3811 3873 

3812**Cosa fare:**3874**Cosa fare:**

3813 3875 


4490commands path escapes plugin directory: ./commands/deploy.md — it resolves to /home/user/shared/deploy.md, outside the plugin directory4552commands path escapes plugin directory: ./commands/deploy.md — it resolves to /home/user/shared/deploy.md, outside the plugin directory

4491```4553```

4492 4554 

4493Un messaggio che riporta il percorso completo di uno dei file propri di un plugin del marketplace, come `hooks/hooks.json`, significa che Claude Code ha saltato quel file. Questo accade quando Claude Code non riesce a confermare che il file si trovi all'interno del plugin o, per un plugin in un [marketplace locale](https://code.claude.com/docs/it/plugins/loading.md#in-place-and-copied-plugins), all'interno di quel marketplace. Il messaggio segnala ciascuno di questi file sotto il nome del componente indicato:4555Un messaggio che riporta il percorso completo di uno dei file propri di un plugin del marketplace, come `hooks/hooks.json`, significa che Claude Code ha saltato quel file. Quando Claude Code non riesce a confermare che il file si trovi all'interno del plugin o, per un plugin in un [marketplace locale](https://code.claude.com/docs/it/plugins/loading.md#in-place-and-copied-plugins), all'interno del suo marketplace, salta il file. Il messaggio segnala questi file sotto il nome del componente indicato:

4494 4556 

4495* `hooks/hooks.json`: `hooks`4557* `hooks/hooks.json`: `hooks`

4496* `monitors/monitors.json`: `monitors`4558* `monitors/monitors.json`: `monitors`

4497* `settings.json`: `settings`

4498* `SKILL.md` alla radice del plugin: `skills`4559* `SKILL.md` alla radice del plugin: `skills`

4499 4560 

4500Ad esempio, questo messaggio riguarda un `hooks/hooks.json` che si risolve al di fuori sia del plugin sia del suo marketplace locale:4561Ad esempio, questo messaggio riguarda un `hooks/hooks.json` che si risolve al di fuori sia del plugin sia del suo marketplace locale:


5481Hai aperto una [sessione in background](https://code.claude.com/docs/it/agent-view.md) che è terminata mentre il servizio in background era spento, e la [pulizia della trascrizione](https://code.claude.com/docs/it/settings-reference.md#cleanupperioddays) ha da allora rimosso la sua conversazione salvata, ad esempio dopo che la macchina è stata spenta per settimane. Aprire una tale riga normalmente [riprende la sua conversazione salvata](https://code.claude.com/docs/it/agent-view.md#sessions-show-as-failed-after-shutdown). Non avendo nulla da riprendere, Claude Code rifiuta piuttosto che rieseguire il prompt originale della sessione senza chiedere:5542Hai aperto una [sessione in background](https://code.claude.com/docs/it/agent-view.md) che è terminata mentre il servizio in background era spento, e la [pulizia della trascrizione](https://code.claude.com/docs/it/settings-reference.md#cleanupperioddays) ha da allora rimosso la sua conversazione salvata, ad esempio dopo che la macchina è stata spenta per settimane. Aprire una tale riga normalmente [riprende la sua conversazione salvata](https://code.claude.com/docs/it/agent-view.md#sessions-show-as-failed-after-shutdown). Non avendo nulla da riprendere, Claude Code rifiuta piuttosto che rieseguire il prompt originale della sessione senza chiedere:

5482 5543 

5483```text theme={null}5544```text theme={null}

5484This session's saved conversation is no longer on disk (it ended while the background service was off, and old transcripts are cleaned up), so there is nothing to resume. `claude rm 7c5dcf5d` deletes the row; `claude respawn 7c5dcf5d` runs its original prompt again instead.5545This session's saved conversation is no longer on disk (it ended while the background service was off, and old transcripts are cleaned up), so there is nothing to resume. `claude rm 7c5dcf5d` removes the row; `claude respawn 7c5dcf5d` runs its original prompt again instead.

5485```5546```

5486 5547 

5487`claude attach <id>` stampa questo testo. Nella vista agente, il piè di pagina è più breve e termina con `ctrl+x deletes the row`.5548`claude attach <id>` stampa questo testo. Nella vista agente, il piè di pagina è più breve e termina con `ctrl+x removes the row`.

5488 5549 

5489**Cosa fare:**5550**Cosa fare:**

5490 5551 


5503 push them and run 'claude rm 7c5dcf5d' again, or discard the worktree and its commits: claude rm 7c5dcf5d --discard-unpushed a1b2c3d000000000000000000000000000000000@0123456789abcdef0123456789abcdef5564 push them and run 'claude rm 7c5dcf5d' again, or discard the worktree and its commits: claude rm 7c5dcf5d --discard-unpushed a1b2c3d000000000000000000000000000000000@0123456789abcdef0123456789abcdef

5504```5565```

5505 5566 

5506Quando Claude Code non può riassumere i commit, la riga di dettaglio riporta invece `The worktree has unpushed commits`. Nella [vista agente](https://code.claude.com/docs/it/agent-view.md), la riga della sessione mostra `not deleted` con lo stesso motivo.5567Quando Claude Code non può riassumere i commit, la riga di dettaglio riporta invece `The worktree has unpushed commits`. Nella [vista agente](https://code.claude.com/docs/it/agent-view.md), la riga della sessione mostra `not removed` con lo stesso motivo.

5507 5568 

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

5509 5570 


5780 5841 

5781Questi errori provengono dal programma che ha avviato Claude Code per voi, come un'estensione IDE o un'applicazione [Agent SDK](https://code.claude.com/docs/it/agent-sdk/overview.md), piuttosto che da Claude Code stesso.5842Questi errori provengono dal programma che ha avviato Claude Code per voi, come un'estensione IDE o un'applicazione [Agent SDK](https://code.claude.com/docs/it/agent-sdk/overview.md), piuttosto che da Claude Code stesso.

5782 5843 

5844### Subprocess initialization did not complete within 60000ms

5845 

5846Questo errore indica che un processo Claude Code avviato dall'[estensione VS Code](https://code.claude.com/docs/it/vs-code.md) o da un'applicazione Agent SDK non ha segnalato in tempo di essere pronto. L'estensione o l'applicazione lo ha quindi arrestato. In una conversazione VS Code l'errore inizia con `Claude Code did not finish starting`, ad esempio:

5847 

5848```text theme={null}

5849Claude Code did not finish starting: it did not answer in time. The output logs ("View output logs") show how far it got. Slow plugins, MCP servers, hooks, disks or network can each cause this.

5850```

5851 

5852Nei log di output dell'estensione, nella sua schermata di accesso e in un'applicazione Agent SDK, l'errore è formulato diversamente. Inizia con `Subprocess initialization did not complete within` e il limite di tempo, quindi riporta ciò che Claude Code ha segnalato, ad esempio:

5853 

5854```text theme={null}

5855Subprocess initialization did not complete within 60000ms. Claude Code did not answer the initialize request and reported no SessionStart or Setup hook running. Slow plugins, MCP servers, hooks that Claude Code does not report, disks or network can each cause this.

5856```

5857 

5858**Cosa fare:**

5859 

5860* Per riprovare in VS Code, invia un messaggio. Se l'errore è apparso mentre stavi effettuando l'accesso, seleziona invece di nuovo il metodo di accesso.

5861* Per vedere fin dove è arrivato Claude Code, fai clic su **View output logs** sotto l'errore di una conversazione, oppure esegui **Claude Code: Show Logs** dal Command Palette. Includi le voci attorno alla riga `Subprocess initialization` quando [segnali il problema](https://github.com/anthropics/claude-code/issues).

5862* Per verificare la tua rete, consulta [Configurazione di rete](https://code.claude.com/docs/it/network-config.md). Se il messaggio ti dice di controllare l'accesso o l'autenticazione, consulta [Accesso e autenticazione](https://code.claude.com/docs/it/troubleshoot-install.md#login-and-authentication).

5863* Se il messaggio indica che gli hook [SessionStart](https://code.claude.com/docs/it/hooks.md#sessionstart) o [Setup](https://code.claude.com/docs/it/hooks.md#setup) non avevano terminato, [verifica quanto durano i tuoi](https://code.claude.com/docs/it/hooks.md#debug-hooks). In VS Code, i primi 10 minuti in cui Claude Code segnala questi hook in esecuzione non contano ai fini del limite di 60 secondi. Fai terminare prima un hook lento, riduci il [`timeout`](https://code.claude.com/docs/it/hooks#common-fields) di un hook non asincrono oppure [rimuovi l'hook](https://code.claude.com/docs/it/hooks.md#disable-or-remove-hooks).

5864* Se la tua applicazione Agent SDK chiama [`startup()`](https://code.claude.com/docs/it/agent-sdk/typescript#startup), imposta `initializeTimeoutMs` su un valore abbastanza lungo per l'intero avvio, oppure lascialo non impostato in modo che fino a 10 minuti di tempo degli hook segnalato non vengano conteggiati.

5865 

5866Prima dell'estensione VS Code v2.1.304 e dell'Agent SDK TypeScript v0.3.304, tutto il tempo degli hook veniva conteggiato ai fini del limite. Con il limite predefinito, il messaggio conteneva `Subprocess initialization did not complete within 60000ms — check authentication and network connectivity`. Se vedi questa formulazione, aggiorna l'estensione o l'SDK.

5867 

5783### Il processo Claude Code è uscito con codice N5868### Il processo Claude Code è uscito con codice N

5784 5869 

5785Il processo `claude` sottostante è uscito con un codice diverso da zero. Il codice di uscita da solo non dice cosa è fallito: l'errore reale si trova nell'output del processo stesso, che il wrapper allega quando lo ha catturato e altrimenti mantiene nei suoi log.5870Il processo `claude` sottostante è uscito con un codice diverso da zero. Il codice di uscita da solo non dice cosa è fallito: l'errore reale si trova nell'output del processo stesso, che il wrapper allega quando lo ha catturato e altrimenti mantiene nei suoi log.

Details

117 <td>✗</td>117 <td>✗</td>

118 </tr>118 </tr>

119 119 

120 <tr>

121 <td>[Code Mode](https://code.claude.com/docs/it/code-mode.md)</td>

122 <td>✓ (sperimentale, [si applicano requisiti](https://code.claude.com/docs/it/code-mode.md#requirements))</td>

123 <td>✓ (sperimentale, [si applicano requisiti](https://code.claude.com/docs/it/code-mode.md#requirements))</td>

124 <td>✗</td>

125 <td>✗</td>

126 <td>✗</td>

127 <td>✗</td>

128 </tr>

129 

120 <tr>130 <tr>

121 <td>[Cross-session messaging](https://code.claude.com/docs/it/cross-session-messaging.md)</td>131 <td>[Cross-session messaging](https://code.claude.com/docs/it/cross-session-messaging.md)</td>

122 <td>✓ <sup>[5](#fn5)</sup></td>132 <td>✓ <sup>[5](#fn5)</sup></td>


231 241 

232> [tab] Amazon Bedrock242> [tab] Amazon Bedrock

233>243>

234> **Non disponibile:** tutte le [funzionalità che richiedono un abbonamento Claude](#features-that-require-a-claude-subscription), più [web search](https://code.claude.com/docs/it/tools-reference.md#websearch-tool-behavior), [fast mode](https://code.claude.com/docs/it/fast-mode.md), [Advisor](https://code.claude.com/docs/it/advisor.md), [Channels](https://code.claude.com/docs/it/channels.md), il [dashboard analytics](https://code.claude.com/docs/it/analytics.md), [server-managed settings](https://code.claude.com/docs/it/server-managed-settings.md) e i [comandi `/design-sync` e `/import`](https://code.claude.com/docs/it/commands#all-commands).244> **Non disponibile:** tutte le [funzionalità che richiedono un abbonamento Claude](#features-that-require-a-claude-subscription), più [web search](https://code.claude.com/docs/it/tools-reference.md#websearch-tool-behavior), [fast mode](https://code.claude.com/docs/it/fast-mode.md), [Advisor](https://code.claude.com/docs/it/advisor.md), [Channels](https://code.claude.com/docs/it/channels.md), [Code Mode](https://code.claude.com/docs/it/code-mode.md), il [dashboard analytics](https://code.claude.com/docs/it/analytics.md), [server-managed settings](https://code.claude.com/docs/it/server-managed-settings.md) e i [comandi `/design-sync` e `/import`](https://code.claude.com/docs/it/commands#all-commands).

235>245>

236> **Supporto parziale:**246> **Supporto parziale:**

237>247>


244 254 

245> [tab] Claude Platform on AWS255> [tab] Claude Platform on AWS

246>256>

247> **Non disponibile:** tutte le [funzionalità che richiedono un abbonamento Claude](#features-that-require-a-claude-subscription), più [fast mode](https://code.claude.com/docs/it/fast-mode.md), [Channels](https://code.claude.com/docs/it/channels.md), [GitHub Actions](https://code.claude.com/docs/it/github-actions.md), il [dashboard analytics](https://code.claude.com/docs/it/analytics.md), [server-managed settings](https://code.claude.com/docs/it/server-managed-settings.md) e i [comandi `/design-sync` e `/import`](https://code.claude.com/docs/it/commands#all-commands).257> **Non disponibile:** tutte le [funzionalità che richiedono un abbonamento Claude](#features-that-require-a-claude-subscription), più [fast mode](https://code.claude.com/docs/it/fast-mode.md), [Channels](https://code.claude.com/docs/it/channels.md), [GitHub Actions](https://code.claude.com/docs/it/github-actions.md), [Code Mode](https://code.claude.com/docs/it/code-mode.md), il [dashboard analytics](https://code.claude.com/docs/it/analytics.md), [server-managed settings](https://code.claude.com/docs/it/server-managed-settings.md) e i [comandi `/design-sync` e `/import`](https://code.claude.com/docs/it/commands#all-commands).

248>258>

249> **Disponibile qui, non su Amazon Bedrock:** [web search](https://code.claude.com/docs/it/tools-reference.md#websearch-tool-behavior), più l'[Advisor](https://code.claude.com/docs/it/advisor.md) in Claude Code v2.1.300 o successivo.259> **Disponibile qui, non su Amazon Bedrock:** [web search](https://code.claude.com/docs/it/tools-reference.md#websearch-tool-behavior), più l'[Advisor](https://code.claude.com/docs/it/advisor.md) in Claude Code v2.1.300 o successivo.

250>260>


256 266 

257> [tab] Google Cloud's Agent Platform267> [tab] Google Cloud's Agent Platform

258>268>

259> **Non disponibile:** tutte le [funzionalità che richiedono un abbonamento Claude](#features-that-require-a-claude-subscription), più [Advisor](https://code.claude.com/docs/it/advisor.md), [Channels](https://code.claude.com/docs/it/channels.md), il [dashboard analytics](https://code.claude.com/docs/it/analytics.md), [server-managed settings](https://code.claude.com/docs/it/server-managed-settings.md) e i [comandi `/design-sync` e `/import`](https://code.claude.com/docs/it/commands#all-commands).269> **Non disponibile:** tutte le [funzionalità che richiedono un abbonamento Claude](#features-that-require-a-claude-subscription), più [Advisor](https://code.claude.com/docs/it/advisor.md), [Channels](https://code.claude.com/docs/it/channels.md), [Code Mode](https://code.claude.com/docs/it/code-mode.md), il [dashboard analytics](https://code.claude.com/docs/it/analytics.md), [server-managed settings](https://code.claude.com/docs/it/server-managed-settings.md) e i [comandi `/design-sync` e `/import`](https://code.claude.com/docs/it/commands#all-commands).

260>270>

261> **Supporto parziale:**271> **Supporto parziale:**

262>272>


271 281 

272> [tab] Microsoft Foundry282> [tab] Microsoft Foundry

273>283>

274> **Non disponibile:** tutte le [funzionalità che richiedono un abbonamento Claude](#features-that-require-a-claude-subscription), più [fast mode](https://code.claude.com/docs/it/fast-mode.md), [Advisor](https://code.claude.com/docs/it/advisor.md), [Channels](https://code.claude.com/docs/it/channels.md), [GitLab CI/CD](https://code.claude.com/docs/it/gitlab-ci-cd.md), il [dashboard analytics](https://code.claude.com/docs/it/analytics.md), [server-managed settings](https://code.claude.com/docs/it/server-managed-settings.md) e i [comandi `/design-sync` e `/import`](https://code.claude.com/docs/it/commands#all-commands).284> **Non disponibile:** tutte le [funzionalità che richiedono un abbonamento Claude](#features-that-require-a-claude-subscription), più [fast mode](https://code.claude.com/docs/it/fast-mode.md), [Advisor](https://code.claude.com/docs/it/advisor.md), [Channels](https://code.claude.com/docs/it/channels.md), [GitLab CI/CD](https://code.claude.com/docs/it/gitlab-ci-cd.md), [Code Mode](https://code.claude.com/docs/it/code-mode.md), il [dashboard analytics](https://code.claude.com/docs/it/analytics.md), [server-managed settings](https://code.claude.com/docs/it/server-managed-settings.md) e i [comandi `/design-sync` e `/import`](https://code.claude.com/docs/it/commands#all-commands).

275>285>

276> **Supporto parziale:**286> **Supporto parziale:**

277>287>

gateways.md +1 −1

Details

63* **Telemetria del client**: Claude Code disabilita la sua analittica client legata ad Anthropic quando una sessione accede a un Claude apps gateway. Per mantenere disattivata anche l'analittica di avvio pre-accesso, fornisci [`DISABLE_TELEMETRY`](https://code.claude.com/docs/it/managed-settings#turn-telemetry-off-for-your-organization) nelle [impostazioni gestite lato client](https://code.claude.com/docs/it/claude-apps-gateway-config.md#client-side-managed-settings) su ogni dispositivo.63* **Telemetria del client**: Claude Code disabilita la sua analittica client legata ad Anthropic quando una sessione accede a un Claude apps gateway. Per mantenere disattivata anche l'analittica di avvio pre-accesso, fornisci [`DISABLE_TELEMETRY`](https://code.claude.com/docs/it/managed-settings#turn-telemetry-off-for-your-organization) nelle [impostazioni gestite lato client](https://code.claude.com/docs/it/claude-apps-gateway-config.md#client-side-managed-settings) su ogni dispositivo.

64* **Telemetria del client su altri gateway**: se Claude Code invia il flusso di telemetria client opzionale dipende dal tuo provider, e la [tabella dei valori predefiniti di telemetria](https://code.claude.com/docs/it/data-usage.md#default-behaviors-by-api-provider) copre ogni caso.64* **Telemetria del client su altri gateway**: se Claude Code invia il flusso di telemetria client opzionale dipende dal tuo provider, e la [tabella dei valori predefiniti di telemetria](https://code.claude.com/docs/it/data-usage.md#default-behaviors-by-api-provider) copre ogni caso.

65* **Destinazioni di telemetria**: dove Claude Code invia la telemetria di una sessione gateway dipende da come la sessione ha effettuato l'accesso, e [What's enforced on developers](https://code.claude.com/docs/it/claude-apps-gateway#whats-enforced-on-developers) dice dove vanno le esportazioni di ogni tipo di sessione.65* **Destinazioni di telemetria**: dove Claude Code invia la telemetria di una sessione gateway dipende da come la sessione ha effettuato l'accesso, e [What's enforced on developers](https://code.claude.com/docs/it/claude-apps-gateway#whats-enforced-on-developers) dice dove vanno le esportazioni di ogni tipo di sessione.

66* **Proxy HTTP aziendali**: un `HTTPS_PROXY` si posiziona tra Claude Code e ogni server con cui comunica, incluso il gateway. Se la tua rete ne richiede uno, [configura il proxy](https://code.claude.com/docs/it/network-config.md) in aggiunta al gateway. Per un Claude apps gateway che ospiti, [l'accesso verifica che l'host proxy sia anche su una rete privata](https://code.claude.com/docs/it/claude-apps-gateway#prerequisites); se non lo è, aggiungi l'host gateway a `NO_PROXY` in modo che la CLI si connetta ad esso direttamente.66* **Proxy HTTP aziendali**: Claude Code invia le sue richieste, incluse quelle al gateway, tramite il proxy in `HTTPS_PROXY`. Se la tua rete richiede un proxy, [configuralo](https://code.claude.com/docs/it/network-config.md). Se il proxy si applica a un Claude apps gateway che ospiti, [l'accesso](https://code.claude.com/docs/it/claude-apps-gateway#prerequisites) richiede che il nome host del proxy si risolva in indirizzi privati, oppure che l'host del gateway sia in `NO_PROXY`.

67 67 

68## Passaggi successivi68## Passaggi successivi

69 69 

Details

129| Administration | Lettura |129| Administration | Lettura |

130| Checks | Lettura e scrittura |130| Checks | Lettura e scrittura |

131| Contents | Lettura e scrittura |131| Contents | Lettura e scrittura |

132| Dependabot alerts | Lettura |

132| Discussions | Lettura e scrittura |133| Discussions | Lettura e scrittura |

133| Issues | Lettura e scrittura |134| Issues | Lettura e scrittura |

134| Members | Lettura |135| Members | Lettura |

Details

84> Crea un'applicazione Microsoft Entra con una credenziale federata per il tuo repository, seguendo [la guida di Microsoft per l'autenticazione da GitHub Actions](https://learn.microsoft.com/en-us/azure/developer/github/connect-from-azure-openid-connect):84> Crea un'applicazione Microsoft Entra con una credenziale federata per il tuo repository, seguendo [la guida di Microsoft per l'autenticazione da GitHub Actions](https://learn.microsoft.com/en-us/azure/developer/github/connect-from-azure-openid-connect):

85>85>

86> * Registra un'applicazione Microsoft Entra e aggiungi una credenziale di identità federata che si fida dei token che GitHub emette al tuo repository. Un'identità gestita assegnata dall'utente funziona al posto di un'applicazione. Entrambe hanno l'ID client che annoti di seguito86> * Registra un'applicazione Microsoft Entra e aggiungi una credenziale di identità federata che si fida dei token che GitHub emette al tuo repository. Un'identità gestita assegnata dall'utente funziona al posto di un'applicazione. Entrambe hanno l'ID client che annoti di seguito

87> * Assegna all'applicazione il ruolo `Azure AI User` sulla tua risorsa Foundry. Vedi [configurazione RBAC di Azure](https://code.claude.com/docs/it/microsoft-foundry.md#azure-rbac-configuration) per un ruolo personalizzato più ristretto87> * Assegna all'applicazione il ruolo `Foundry User` sulla tua risorsa Foundry. Vedi [configurazione RBAC di Azure](https://code.claude.com/docs/it/microsoft-foundry.md#azure-rbac-configuration) per l'altro ruolo predefinito e per i ruoli personalizzati

88>88>

89> Annota l'ID client dell'applicazione, il tuo ID tenant e il tuo ID sottoscrizione. Li aggiungerai come segreti nel passaggio successivo.89> Annota l'ID client dell'applicazione, il tuo ID tenant e il tuo ID sottoscrizione. Li aggiungerai come segreti nel passaggio successivo.

90 90 

Details

228 228 

229### Quando un modello è disabilitato durante la sessione229### Quando un modello è disabilitato durante la sessione

230 230 

231Se il tuo progetto perde l'accesso al modello su cui è in esecuzione la tua sessione, ad esempio perché un amministratore lo disabilita in [Model Garden](https://console.cloud.google.com/vertex-ai/model-garden), Claude Code passa la sessione a un altro modello invece di fallire in ogni richiesta, e mostra `Switched to <fallback> because <model> is not available`. Prova gli stessi modelli del fallback all'avvio: versioni precedenti dello stesso livello per primo e, per una sessione Opus senza versione Opus disponibile, il modello Sonnet predefinito.231Quando Agent Platform rifiuta il modello della tua sessione perché non disponibile nel tuo progetto o nella tua regione, Claude Code passa la sessione a un altro modello e puoi continuare a lavorare. Vedi un messaggio che inizia con `Switched to <fallback> because <model> is not available`. Questo accade, ad esempio, quando un amministratore disabilita il modello in [Model Garden](https://console.cloud.google.com/vertex-ai/model-garden) o quando il modello non è servito nella tua regione.

232 232 

233Lo switch si applica solo a un livello che non hai fissato, la stessa condizione del fallback all'avvio. Una sessione su una versione specifica che hai scelto mantiene il suo modello e, senza una catena di modelli di fallback, la richiesta fallisce invece. In [modalità auto](https://code.claude.com/docs/it/permission-modes.md#enable-auto-mode-on-bedrock-agent-platform-or-foundry), Claude Code passa solo a un modello che la modalità auto supporta su Agent Platform. Se nessuno di questi modelli è disponibile, la richiesta fallisce.233Se hai configurato una [catena di modelli di fallback](https://code.claude.com/docs/it/model-config.md#fallback-model-chains), Claude Code passa invece al fallback che hai configurato. Senza una catena, la richiesta fallisce in casi come questi:

234 234 

235Una [catena di modelli di fallback](https://code.claude.com/docs/it/model-config.md#fallback-model-chains) che configuri sostituisce lo switch di livello: su questi rifiuti Claude Code passa al tuo fallback configurato invece. Per fare in modo che le richieste rifiutate falliscano piuttosto che passare, imposta [`CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK=1`](https://code.claude.com/docs/it/env-vars). Una catena di fallback che hai configurato continua comunque a passare su questi rifiuti; rimuovi anche la catena se vuoi che ogni richiesta rifiutata fallisca.235* La tua sessione è su un modello fissato o su una versione specifica che hai scelto

236* Nessuno dei [modelli che Claude Code prova](#startup-model-checks) è disponibile. In [modalità auto](https://code.claude.com/docs/it/permission-modes.md#enable-auto-mode-on-bedrock-agent-platform-or-foundry), Claude Code passa solo a un modello che la modalità auto supporta su Agent Platform.

237 

238Per continuare a lavorare, esegui `/model` nella sessione e premi `s` su un modello disponibile nel tuo progetto e nella tua regione; in questo modo il tuo valore predefinito resta invariato.

239 

240Per fare in modo che le richieste rifiutate falliscano invece di passare a un altro modello, imposta [`CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK=1`](https://code.claude.com/docs/it/env-vars). Se hai configurato una catena di modelli di fallback, rimuovi anche quella, perché Claude Code passa comunque a quel fallback.

236 241 

237## Configurazione IAM242## Configurazione IAM

238 243 

hooks.md +22 −7

Details

257Gli amministratori possono utilizzare [`allowManagedHooksOnly`](https://code.claude.com/docs/it/settings-reference#allowmanagedhooksonly) nelle [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md) per limitare quali hook vengono eseguiti:257Gli amministratori possono utilizzare [`allowManagedHooksOnly`](https://code.claude.com/docs/it/settings-reference#allowmanagedhooksonly) nelle [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md) per limitare quali hook vengono eseguiti:

258 258 

259* I tuoi hook utente, progetto, locale e plugin sono bloccati. Gli hook dai plugin forzatamente abilitati nelle impostazioni gestite `enabledPlugins` sono esenti259* I tuoi hook utente, progetto, locale e plugin sono bloccati. Gli hook dai plugin forzatamente abilitati nelle impostazioni gestite `enabledPlugins` sono esenti

260* Claude Code restringe anche le tue impostazioni [`statusLine`](https://code.claude.com/docs/it/statusline), [`fileSuggestion`](https://code.claude.com/docs/it/settings-reference#filesuggestion), e [`subagentStatusLine`](https://code.claude.com/docs/it/statusline#subagent-status-lines) alle impostazioni gestite260* Claude Code restringe anche le tue impostazioni [`statusLine`](https://code.claude.com/docs/it/statusline) e [`fileSuggestion`](https://code.claude.com/docs/it/settings-reference#filesuggestion) alle impostazioni gestite

261* Claude Code disabilita anche i plugin con una [`command` source](https://code.claude.com/docs/it/plugins/marketplace-reference#command-plugin-source), inclusi i plugin forzatamente abilitati nelle impostazioni gestite `enabledPlugins`, a meno che [`disableCommandPluginSources`](https://code.claude.com/docs/it/settings-reference#disablecommandpluginsources) non sia esplicitamente impostato su `false`. Le `command` sources richiedono Claude Code v2.1.229 o successivo261* Claude Code disabilita anche i plugin con una [`command` source](https://code.claude.com/docs/it/plugins/marketplace-reference#command-plugin-source), inclusi i plugin forzatamente abilitati nelle impostazioni gestite `enabledPlugins`, a meno che [`disableCommandPluginSources`](https://code.claude.com/docs/it/settings-reference#disablecommandpluginsources) non sia esplicitamente impostato su `false`. Le `command` sources richiedono Claude Code v2.1.229 o successivo

262* Claude Code blocca anche i comandi [`headersHelper`](https://code.claude.com/docs/it/plugins/host-marketplace#authenticate-archive-downloads) del marketplace a meno che [`disableCommandPluginSources`](https://code.claude.com/docs/it/settings-reference#disablecommandpluginsources) non sia esplicitamente impostato su `false`, tranne per un marketplace che le impostazioni gestite stesse dichiarano262* Claude Code blocca anche i comandi [`headersHelper`](https://code.claude.com/docs/it/plugins/host-marketplace#authenticate-archive-downloads) del marketplace a meno che [`disableCommandPluginSources`](https://code.claude.com/docs/it/settings-reference#disablecommandpluginsources) non sia esplicitamente impostato su `false`, tranne per un marketplace che le impostazioni gestite stesse dichiarano

263 263 


505| `url` | sì | URL a cui inviare la richiesta POST |505| `url` | sì | URL a cui inviare la richiesta POST |

506| `headers` | no | Header HTTP aggiuntivi come coppie chiave-valore. I valori supportano l'interpolazione delle variabili di ambiente utilizzando la sintassi `$VAR_NAME` o `${VAR_NAME}`. Solo le variabili elencate in `allowedEnvVars` vengono risolte |506| `headers` | no | Header HTTP aggiuntivi come coppie chiave-valore. I valori supportano l'interpolazione delle variabili di ambiente utilizzando la sintassi `$VAR_NAME` o `${VAR_NAME}`. Solo le variabili elencate in `allowedEnvVars` vengono risolte |

507| `allowedEnvVars` | no | Lista di nomi di variabili di ambiente che possono essere interpolate nei valori degli header. I riferimenti alle variabili non elencate vengono sostituiti con stringhe vuote. Obbligatorio affinché avvenga qualsiasi interpolazione di variabili di ambiente |507| `allowedEnvVars` | no | Lista di nomi di variabili di ambiente che possono essere interpolate nei valori degli header. I riferimenti alle variabili non elencate vengono sostituiti con stringhe vuote. Obbligatorio affinché avvenga qualsiasi interpolazione di variabili di ambiente |

508| `onFailure` | no | Cosa succede all'azione quando l'hook fallisce: `"continue"`, il valore predefinito, o `"block"`. Vedi [Blocca l'azione quando un hook fallisce](#block-the-action-when-a-hook-fails). Richiede Claude Code v2.1.295 o successivo |508| `onFailure` | no | Se l'azione che ha attivato l'hook procede quando l'hook fallisce: `"continue"` o `"block"`. Vedi [Blocca l'azione quando un hook fallisce](#block-the-action-when-a-hook-fails) per `"block"` e per il caso in cui il campo non sia impostato. Richiede Claude Code v2.1.295 o successivo |

509 509 

510Claude Code invia l'[input JSON](#hook-input-and-output) dell'hook come corpo della richiesta POST con `Content-Type: application/json`. Il corpo della risposta utilizza lo stesso [formato di output JSON](#json-output) degli hook di comando.510Claude Code invia l'[input JSON](#hook-input-and-output) dell'hook come corpo della richiesta POST con `Content-Type: application/json`. Il corpo della risposta utilizza lo stesso [formato di output JSON](#json-output) degli hook di comando.

511 511 


901 901 

902Su `PreToolUse`, un hook `command`, `http` o `mcp_tool` scaduto non blocca la chiamata allo strumento, tranne che per gli hook [il cui fallimento blocca l'azione](#block-the-action-when-a-hook-fails). La chiamata continua attraverso il normale [flusso dei permessi](https://code.claude.com/docs/it/permissions.md), quindi non contare su un hook bloccato perché agisca da controllo. Per bloccare la chiamata quando un hook `command` o `http` va in timeout, imposta [`onFailure: "block"`](#block-the-action-when-a-hook-fails). Un [hook di callback dell'Agent SDK](https://code.claude.com/docs/it/agent-sdk/hooks.md) che supera il suo timeout [blocca la chiamata allo strumento](#pretooluse).902Su `PreToolUse`, un hook `command`, `http` o `mcp_tool` scaduto non blocca la chiamata allo strumento, tranne che per gli hook [il cui fallimento blocca l'azione](#block-the-action-when-a-hook-fails). La chiamata continua attraverso il normale [flusso dei permessi](https://code.claude.com/docs/it/permissions.md), quindi non contare su un hook bloccato perché agisca da controllo. Per bloccare la chiamata quando un hook `command` o `http` va in timeout, imposta [`onFailure: "block"`](#block-the-action-when-a-hook-fails). Un [hook di callback dell'Agent SDK](https://code.claude.com/docs/it/agent-sdk/hooks.md) che supera il suo timeout [blocca la chiamata allo strumento](#pretooluse).

903 903 

904> [!NOTE]

905>

906> Se usi Code Mode, i timeout su `PreToolUse` funzionano in modo diverso. Consulta [Tool call refused by a hook](https://code.claude.com/docs/it/code-mode.md#tool-call-refused-by-a-hook).

907 

904#### Hook che avviano un processo in background908#### Hook che avviano un processo in background

905 909 

906Un hook può avviare un programma di lunga durata, come un server di sviluppo, e lasciarlo in esecuzione mentre la sessione continua. Nello script dell'hook o nel comando in [forma shell](#exec-form-and-shell-form):910Un hook può avviare un programma di lunga durata, come un server di sviluppo, e lasciarlo in esecuzione mentre la sessione continua. Nello script dell'hook o nel comando in [forma shell](#exec-form-and-shell-form):


981* **Hook `Stop`, `SubagentStop`, `TaskCompleted` e `TeammateIdle`**: il codice di uscita 2 su questi eventi rimanda Claude a continuare a lavorare, e Claude non può riparare un hook che non viene eseguito985* **Hook `Stop`, `SubagentStop`, `TaskCompleted` e `TeammateIdle`**: il codice di uscita 2 su questi eventi rimanda Claude a continuare a lavorare, e Claude non può riparare un hook che non viene eseguito

982* **Command hook in background**: i command hook che impostano [`async` o `asyncRewake`](#run-hooks-in-the-background)986* **Command hook in background**: i command hook che impostano [`async` o `asyncRewake`](#run-hooks-in-the-background)

983 987 

988> [!NOTE]

989>

990> Se usi Code Mode, i fallimenti su `PreToolUse` funzionano in modo diverso. Consulta [Tool call refused by a hook](https://code.claude.com/docs/it/code-mode.md#tool-call-refused-by-a-hook).

991 

984#### Hook falliti su Windows senza Git Bash992#### Hook falliti su Windows senza Git Bash

985 993 

986Se l'errore di una chiamata a uno strumento bloccata include questo testo, un command hook `PreToolUse` o `PermissionRequest` è fallito o è andato in timeout e ha bloccato la chiamata:994Se l'errore di una chiamata a uno strumento bloccata include questo testo, un command hook `PreToolUse` o `PermissionRequest` è fallito o è andato in timeout e ha bloccato la chiamata:


1512* Viene attivata un'[attività pianificata limitata alla sessione](https://code.claude.com/docs/it/scheduled-tasks.md), inclusa un'iterazione di `/loop`1520* Viene attivata un'[attività pianificata limitata alla sessione](https://code.claude.com/docs/it/scheduled-tasks.md), inclusa un'iterazione di `/loop`

1513* Un [subagent in background](https://code.claude.com/docs/it/sub-agents.md#run-subagents-in-foreground-or-background) riferisce alla sessione che lo ha avviato1521* Un [subagent in background](https://code.claude.com/docs/it/sub-agents.md#run-subagents-in-foreground-or-background) riferisce alla sessione che lo ha avviato

1514* Un [messaggio inviato da un'altra sessione](https://code.claude.com/docs/it/cross-session-messaging.md) arriva alla tua conversazione principale1522* Un [messaggio inviato da un'altra sessione](https://code.claude.com/docs/it/cross-session-messaging.md) arriva alla tua conversazione principale

1523* L'output del codice di Claude in una sessione [Code Mode](https://code.claude.com/docs/it/code-mode.md#code-output-withheld-by-a-hook), per gli hook `command`, `http` e `mcp_tool`, quando il codice può essere eseguito in background

1515 1524 

1516Gli 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.1525Gli 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.

1517 1526 


1560| Campo | Descrizione |1569| Campo | Descrizione |

1561| :- | :- |1570| :- | :- |

1562| `decision` | `"block"` ferma il prompt prima che raggiunga Claude. Omettilo per consentire al prompt di procedere |1571| `decision` | `"block"` ferma il prompt prima che raggiunga Claude. Omettilo per consentire al prompt di procedere |

1563| `reason` | Mostrato all'utente quando `decision` è `"block"`. Non viene aggiunto al contesto |1572| `reason` | Mostrato all'utente quando `decision` è `"block"`. Non viene aggiunto al contesto, tranne quando l'hook blocca l'[output di Code Mode](https://code.claude.com/docs/it/code-mode.md#code-output-withheld-by-a-hook) |

1564| `additionalContext` | Stringa aggiunta al contesto di Claude insieme al prompt inviato. Consulta [Aggiungere contesto per Claude](#add-context-for-claude) |1573| `additionalContext` | Stringa aggiunta al contesto di Claude insieme al prompt inviato. Consulta [Aggiungere contesto per Claude](#add-context-for-claude) |

1565| `sessionTitle` | Imposta il titolo della sessione. Usalo per assegnare automaticamente un nome alle sessioni in base al contenuto del prompt |1574| `sessionTitle` | Imposta il titolo della sessione. Usalo per assegnare automaticamente un nome alle sessioni in base al contenuto del prompt |

1566| `suppressOriginalPrompt` | Se è `true` quando l'hook blocca il prompt, omette il testo del prompt dal messaggio di blocco. Consulta [Cosa lascia dietro di sé un prompt bloccato](#what-a-blocked-prompt-leaves-behind) |1575| `suppressOriginalPrompt` | Se è `true` quando l'hook blocca il prompt, omette il testo del prompt dal messaggio di blocco. Consulta [Cosa lascia dietro di sé un prompt bloccato](#what-a-blocked-prompt-leaves-behind) |

1567 1576 

1568Un hook che blocca uscendo con 2 viene instradato allo stesso modo di `reason`: il messaggio di blocco mostra all'utente il testo di stderr, che non viene aggiunto al contesto.1577Se il tuo hook blocca uscendo con 2, il suo testo stderr viene trattato allo stesso modo di `reason`.

1569 1578 

1570```json theme={null}1579```json theme={null}

1571{1580{


3000 3009 

3001Viene eseguito quando un file di configurazione cambia durante una sessione. Usalo per verificare le modifiche alle impostazioni, applicare policy di sicurezza o bloccare modifiche non autorizzate ai file di configurazione.3010Viene eseguito quando un file di configurazione cambia durante una sessione. Usalo per verificare le modifiche alle impostazioni, applicare policy di sicurezza o bloccare modifiche non autorizzate ai file di configurazione.

3002 3011 

3003Claude Code esegue gli hook ConfigChange quando cambia un file di impostazioni, un file di policy gestita o un file di skill. Per la policy gestita, li esegue solo quando cambia `managed-settings.json` o un file in `managed-settings.d/`. Applica le [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md) e le modifiche alle preferenze gestite di macOS o alle policy del registro di Windows senza eseguirli. Su WSL con [`wslInheritsWindowsSettings`](https://code.claude.com/docs/it/settings-reference#wslinheritswindowssettings), applica anche un file di impostazioni gestite lato Windows modificato durante il proprio polling delle policy, senza eseguirli.3012Claude Code esegue gli hook ConfigChange quando cambia un file di impostazioni, un file di policy gestita o un file di skill. Per le policy gestite, li esegue solo quando cambia `managed-settings.json` o un file in `managed-settings.d/`.

3004 3013 

3005Il matcher filtra in base all'origine della configurazione:3014Il matcher filtra in base all'origine della configurazione:

3006 3015 


3012| `policy_settings` | Cambia `managed-settings.json` o un file in `managed-settings.d/` |3021| `policy_settings` | Cambia `managed-settings.json` o un file in `managed-settings.d/` |

3013| `skills` | Cambia un file di skill in `.claude/skills/` |3022| `skills` | Cambia un file di skill in `.claude/skills/` |

3014 3023 

3015Questo esempio registra tutte le modifiche alla configurazione per la verifica della sicurezza:3024Modifiche come queste hanno effetto senza eseguire gli hook:

3025 

3026* Regole e impostazioni che salvi con **Yes, and don't ask again**, `/permissions` o `/model`, nella sessione da cui le hai salvate. Se un'altra sessione aperta carica lo stesso file, gli hook vengono eseguiti lì.

3027* Aggiornamenti alle [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md), alle preferenze gestite di macOS o ai criteri del registro di Windows

3028* Su WSL con [`wslInheritsWindowsSettings`](https://code.claude.com/docs/it/settings-reference#wslinheritswindowssettings), un file di impostazioni gestite lato Windows modificato, che Claude Code rileva durante il suo polling dei criteri

3029 

3030Questo esempio registra le modifiche alla configurazione per il controllo di sicurezza:

3016 3031 

3017```json theme={null}3032```json theme={null}

3018{3033{


3335 "hooks": [3350 "hooks": [

3336 {3351 {

3337 "type": "command",3352 "type": "command",

3338 "command": "bash -c 'jq -r .worktree_path | xargs rm -rf'"3353 "command": "bash -c 'p=$(jq -er .worktree_path) && rm -rf -- \"$p\"'"

3339 }3354 }

3340 ]3355 ]

3341 }3356 }

hooks-guide.md +4 −4

Details

50 "PostToolUse": [50 "PostToolUse": [

51 {51 {

52 "matcher": "Edit|Write",52 "matcher": "Edit|Write",

53 "hooks": [{ "type": "command", "command": "jq -r '.tool_input.file_path' | xargs npx prettier --write" }]53 "hooks": [{ "type": "command", "command": "f=$(jq -r '.tool_input.file_path') && npx prettier --write --ignore-unknown \"$f\"" }]

54 }54 }

55 ],55 ],

56 "Notification": [56 "Notification": [


221 "hooks": [221 "hooks": [

222 {222 {

223 "type": "command",223 "type": "command",

224 "command": "jq -r '.tool_input.file_path' | xargs npx prettier --write"224 "command": "f=$(jq -r '.tool_input.file_path') && npx prettier --write --ignore-unknown \"$f\""

225 }225 }

226 ]226 ]

227 }227 }


336 336 

337Tracciate quando i file di impostazioni o skills cambiano durante una sessione. L'evento `ConfigChange` si attiva quando un processo esterno o un editor modifica un file di configurazione, in modo da poter registrare le modifiche per la conformità o bloccare le modifiche non autorizzate.337Tracciate quando i file di impostazioni o skills cambiano durante una sessione. L'evento `ConfigChange` si attiva quando un processo esterno o un editor modifica un file di configurazione, in modo da poter registrare le modifiche per la conformità o bloccare le modifiche non autorizzate.

338 338 

339Questo esempio aggiunge ogni modifica a un registro di controllo. Aggiungete questo a `~/.claude/settings.json`:339Questo esempio aggiunge ogni evento a un log di audit. Aggiungi questo a `~/.claude/settings.json`:

340 340 

341```json theme={null}341```json theme={null}

342{342{


925Il tuo endpoint risponde con un corpo JSON nello stesso [formato di output](https://code.claude.com/docs/it/hooks.md#json-output) degli hook di comando, e Claude Code controlla anche lo stato della risposta:925Il tuo endpoint risponde con un corpo JSON nello stesso [formato di output](https://code.claude.com/docs/it/hooks.md#json-output) degli hook di comando, e Claude Code controlla anche lo stato della risposta:

926 926 

927* **Stato 2xx**: per bloccare una chiamata a uno strumento, restituisci i campi `hookSpecificOutput` appropriati nel corpo.927* **Stato 2xx**: per bloccare una chiamata a uno strumento, restituisci i campi `hookSpecificOutput` appropriati nel corpo.

928* **Qualsiasi altro stato, o la richiesta non riesce**: Claude Code segnala un [errore non bloccante](https://code.claude.com/docs/it/hooks.md#exit-code-output) e lascia proseguire l'azione. Per fare in modo che un endpoint non riuscito blocchi l'azione, imposta [`onFailure: "block"`](https://code.claude.com/docs/it/hooks#block-the-action-when-a-hook-fails) sull'hook.928* **Qualsiasi altro stato, o la richiesta non riesce**: Claude Code segnala un [errore non bloccante](https://code.claude.com/docs/it/hooks.md#exit-code-output) e lascia proseguire l'azione, tranne quando l'hook è uno di quelli [il cui errore blocca l'azione](https://code.claude.com/docs/it/hooks.md#block-the-action-when-a-hook-fails). Per fare in modo che un endpoint non riuscito blocchi l'azione, imposta [`onFailure: "block"`](https://code.claude.com/docs/it/hooks#block-the-action-when-a-hook-fails) sull'hook.

929 929 

930I valori dell'intestazione supportano l'interpolazione delle variabili di ambiente utilizzando la sintassi `$VAR_NAME` o `${VAR_NAME}`. Solo le variabili elencate nell'array `allowedEnvVars` vengono risolte; tutti gli altri riferimenti `$VAR` rimangono vuoti.930I valori dell'intestazione supportano l'interpolazione delle variabili di ambiente utilizzando la sintassi `$VAR_NAME` o `${VAR_NAME}`. Solo le variabili elencate nell'array `allowedEnvVars` vengono risolte; tutti gli altri riferimenti `$VAR` rimangono vuoti.

931 931 

Details

32| `Ctrl+Z` | Sospendi Claude Code | Solo Unix. Sospende il processo alla tua shell; esegui `fg` per riprendere |32| `Ctrl+Z` | Sospendi Claude Code | Solo Unix. Sospende il processo alla tua shell; esegui `fg` per riprendere |

33| `Frecce sinistra/destra` | Cicla attraverso le schede della finestra di dialogo | Naviga tra le schede nelle finestre di dialogo dei permessi e nei menu. In una finestra di dialogo con schede, i tasti cambiano le schede mentre la riga delle schede ha il focus. Vedi [Azioni delle schede](https://code.claude.com/docs/it/keybindings.md#tabs-actions) per come si muove il focus |33| `Frecce sinistra/destra` | Cicla attraverso le schede della finestra di dialogo | Naviga tra le schede nelle finestre di dialogo dei permessi e nei menu. In una finestra di dialogo con schede, i tasti cambiano le schede mentre la riga delle schede ha il focus. Vedi [Azioni delle schede](https://code.claude.com/docs/it/keybindings.md#tabs-actions) per come si muove il focus |

34| `Tab` | Accetta un suggerimento di completamento automatico, o aggiungi un commento a una risposta di permesso | Mentre i suggerimenti di completamento automatico vengono visualizzati nell'input del prompt, accetta il suggerimento selezionato. Sulla maggior parte dei prompt di permesso, con **Sì** o **No** focalizzato, apre un campo di commento su quell'opzione e premendolo di nuovo chiude il campo. Vedi [aggiungi un commento quando rispondi a un prompt di permesso](https://code.claude.com/docs/it/permissions.md#add-a-comment-when-you-answer-a-permission-prompt) |34| `Tab` | Accetta un suggerimento di completamento automatico, o aggiungi un commento a una risposta di permesso | Mentre i suggerimenti di completamento automatico vengono visualizzati nell'input del prompt, accetta il suggerimento selezionato. Sulla maggior parte dei prompt di permesso, con **Sì** o **No** focalizzato, apre un campo di commento su quell'opzione e premendolo di nuovo chiude il campo. Vedi [aggiungi un commento quando rispondi a un prompt di permesso](https://code.claude.com/docs/it/permissions.md#add-a-comment-when-you-answer-a-permission-prompt) |

35| `Frecce su/giù` o `Ctrl+P`/`Ctrl+N` | Sposta il cursore o naviga nella cronologia dei comandi | Quando l'input si estende su più di una riga visiva, sia avvolta che multilinea, prima sposta il cursore all'interno del prompt. Una volta che il cursore è sulla prima o ultima riga visiva, premendo di nuovo naviga nella cronologia dei comandi. Mentre hai messaggi in coda, `Su` dalla prima riga invece [li riporta indietro](#take-back-what-you-queued) |35| `Frecce su/giù` o `Ctrl+P`/`Ctrl+N` | Sposta il cursore o naviga nella cronologia dei comandi | Quando l'input si estende su più di una riga visiva, sia avvolta che multilinea, prima sposta il cursore all'interno del prompt. Una volta che il cursore è sulla prima o ultima riga visiva, premendo di nuovo naviga nella cronologia dei comandi. Mentre hai messaggi in coda, `Up` dalla prima riga invece [li riporta indietro](#take-back-what-you-queued) |

36| `Esc` | Interrompi Claude, o chiudi una finestra di dialogo | Arresta la risposta corrente o la chiamata dello strumento a metà turno in modo da poter reindirizzare. Claude mantiene il lavoro svolto finora. Se hai [messaggi in coda](#queue-messages-while-claude-works), Claude Code li invia dopo. Quando una finestra di dialogo è aperta, `Esc` chiude la finestra di dialogo. Mentre un elemento del footer è selezionato, come una riga nel [pannello subagent](https://code.claude.com/docs/it/sub-agents.md#run-subagents-in-foreground-or-background) sotto il prompt, `Esc` [lo deseleziona](https://code.claude.com/docs/it/keybindings.md#footer-actions) invece di interrompere. Su un prompt di permesso, `Esc` rifiuta l'azione, lo stesso di [**No** senza un commento](https://code.claude.com/docs/it/permissions.md#add-a-comment-when-you-answer-a-permission-prompt) |36| `Esc` | Interrompi Claude, o chiudi una finestra di dialogo | Arresta la risposta corrente o la chiamata dello strumento a metà turno in modo da poter reindirizzare. Claude mantiene il lavoro svolto finora. Se hai [messaggi in coda](#queue-messages-while-claude-works), Claude Code li invia dopo. Quando una finestra di dialogo è aperta, `Esc` chiude la finestra di dialogo. Mentre un elemento del footer è selezionato, come una riga nel [pannello subagent](https://code.claude.com/docs/it/sub-agents.md#run-subagents-in-foreground-or-background) sotto il prompt, `Esc` [lo deseleziona](https://code.claude.com/docs/it/keybindings.md#footer-actions) invece di interrompere. Su un prompt di permesso, `Esc` rifiuta l'azione, lo stesso di [**No** senza un commento](https://code.claude.com/docs/it/permissions.md#add-a-comment-when-you-answer-a-permission-prompt) |

37| `Esc` + `Esc` | Cancella la bozza di input, o riavvolgi | Quando l'input del prompt contiene testo, doppio `Esc` lo cancella e salva la bozza nella cronologia in modo che `Su` la richiami. Quando l'input è vuoto, doppio `Esc` apre il [menu di riavvolgimento](https://code.claude.com/docs/it/checkpointing.md) per ripristinare o riassumere il codice e la conversazione da un punto precedente |37| `Esc` + `Esc` | Cancella la bozza di input, o riavvolgi | Quando l'input del prompt contiene testo, doppio `Esc` lo cancella e salva la bozza nella cronologia in modo che `Up` la richiami. Quando l'input è vuoto, doppio `Esc` apre il [menu di riavvolgimento](https://code.claude.com/docs/it/checkpointing.md) per ripristinare o riassumere il codice e la conversazione da un punto precedente |

38| `Ctrl+Enter` o `Ctrl+X Ctrl+S` | Invia i messaggi in coda adesso | Invia i tuoi [messaggi in coda](#queue-messages-while-claude-works), e la tua bozza con loro, subito. [Quando Claude Code invia quello che hai messo in coda](#when-claude-code-sends-what-you-queued) copre cosa succede al turno su cui Claude sta lavorando. Nella [modalità shell](#shell-mode-with-prefix), il tasto mette in coda il tuo comando. Nei terminali che non segnalano tasti estesi, `Ctrl+Enter` arriva come semplice `Enter`; `Ctrl+X Ctrl+S` funziona in qualsiasi terminale. Richiede Claude Code v2.1.275 o versione successiva |38| `Ctrl+Enter` o `Ctrl+X Ctrl+S` | Invia i messaggi in coda adesso | Invia i tuoi [messaggi in coda](#queue-messages-while-claude-works), e la tua bozza con loro, subito. [Quando Claude Code invia quello che hai messo in coda](#when-claude-code-sends-what-you-queued) copre cosa succede al turno su cui Claude sta lavorando. Nella [modalità shell](#shell-mode-with-prefix), il tasto mette in coda il tuo comando. Nei terminali che non segnalano tasti estesi, `Ctrl+Enter` arriva come semplice `Enter`; `Ctrl+X Ctrl+S` funziona in qualsiasi terminale. Richiede Claude Code v2.1.275 o versione successiva |

39| `Shift+Tab`, o `Alt+M` su Windows quando il runtime Node o Bun non abilita la modalità di input VT | Cicla le modalità di permesso | Cicla attraverso `default` (etichettato Manual nell'indicatore di modalità), `acceptEdits`, `plan`, e, quando disponibile, `bypassPermissions` e poi `auto`. Da `auto`, il primo pressione passa a `default`. Vedi [modalità di permesso](https://code.claude.com/docs/it/permission-modes.md). Su un prompt di permesso del file, la stessa chiave chiude un [campo di commento](https://code.claude.com/docs/it/permissions.md#add-a-comment-when-you-answer-a-permission-prompt) aperto. Senza campo aperto, seleziona l'opzione che consente l'azione per il resto della sessione, quando il prompt offre quell'opzione |39| `Shift+Tab`, o `Alt+M` su Windows quando il runtime Node o Bun non abilita la modalità di input VT | Cicla le modalità di permesso | Cicla attraverso `default` (etichettato Manual nell'indicatore di modalità), `acceptEdits` e `plan`, poi `bypassPermissions` e `auto` dove disponibili. Vedi [modalità di permesso](https://code.claude.com/docs/it/permission-modes.md). Su una richiesta di permesso per un file, lo stesso tasto chiude un [campo di commento](https://code.claude.com/docs/it/permissions.md#add-a-comment-when-you-answer-a-permission-prompt) aperto. Senza campo aperto, seleziona l'opzione che consente l'azione per il resto della sessione, quando la richiesta offre quell'opzione. Alla richiesta di approvazione del piano, approva il piano |

40| `Option+P` (macOS) o `Alt+P` (Windows/Linux) | Cambia modello | Cambia modelli senza cancellare il tuo prompt |40| `Option+P` (macOS) o `Alt+P` (Windows/Linux) | Cambia modello | Cambia modelli senza cancellare il tuo prompt |

41| `Option+T` (macOS) o `Alt+T` (Windows/Linux) | Attiva/disattiva il ragionamento esteso | Abilita o disabilita la modalità di ragionamento esteso. Non ha effetto su Opus 5.5, Sonnet 5.5, Haiku 5.5 o i modelli Fable, che utilizzano sempre il ragionamento esteso. Funziona su macOS senza configurare Option come Meta |41| `Option+T` (macOS) o `Alt+T` (Windows/Linux) | Attiva/disattiva il ragionamento esteso | Abilita o disabilita la modalità di ragionamento esteso. Non ha effetto su Opus 5.5, Sonnet 5.5, Haiku 5.5 o i modelli Fable, che utilizzano sempre il ragionamento esteso. Funziona su macOS senza configurare Option come Meta |

42| `Option+O` (macOS) o `Alt+O` (Windows/Linux) | Attiva/disattiva la modalità veloce | Abilita o disabilita la [modalità veloce](https://code.claude.com/docs/it/fast-mode.md) |42| `Option+O` (macOS) o `Alt+O` (Windows/Linux) | Attiva/disattiva la modalità veloce | Abilita o disabilita la [modalità veloce](https://code.claude.com/docs/it/fast-mode.md) |


81| :- | :- | :- |81| :- | :- | :- |

82| Escape rapido | `\` + `Enter` | Funziona in tutti i terminali |82| Escape rapido | `\` + `Enter` | Funziona in tutti i terminali |

83| Tasto Option | `Option+Enter` | Dopo aver abilitato [Option come Meta](https://code.claude.com/docs/it/terminal-config.md#enable-option-key-shortcuts-on-macos) su macOS |83| Tasto Option | `Option+Enter` | Dopo aver abilitato [Option come Meta](https://code.claude.com/docs/it/terminal-config.md#enable-option-key-shortcuts-on-macos) su macOS |

84| Shift+Enter | `Shift+Enter` | Nativo in iTerm2, WezTerm, Ghostty, Kitty, Warp, Apple Terminal, Windows Terminal. Per altri terminali, vedi [Inserisci prompt multilinea](https://code.claude.com/docs/it/terminal-config.md#enter-multiline-prompts) |84| Shift+Enter | `Shift+Enter` | Nativo in iTerm2, WezTerm, Ghostty, Kitty, Warp, Windows Terminal. Per altri terminali, vedi [Inserisci prompt multilinea](https://code.claude.com/docs/it/terminal-config.md#enter-multiline-prompts) |

85| Sequenza di controllo | `Ctrl+J` | Funziona in qualsiasi terminale senza configurazione |85| Sequenza di controllo | `Ctrl+J` | Funziona in qualsiasi terminale senza configurazione |

86| Modalità incolla | Incolla direttamente | Per blocchi di codice, log |86| Modalità incolla | Incolla direttamente | Per blocchi di codice, log |

87 87 


137 137 

138Abilita la modifica in stile vim tramite `/config` → Editor mode.138Abilita la modifica in stile vim tramite `/config` → Editor mode.

139 139 

140Claude Code mantiene la modalità vim e la posizione del cursore quando attivi il [visualizzatore di trascrizioni](#transcript-viewer) con `Ctrl+O` o apri e chiudi un pannello come `/config`. Se lasci il prompt in modalità NORMAL, rimane in modalità NORMAL quando ritorni, con il cursore dove l'hai lasciato.

141 

142### Cambio di modalità140### Cambio di modalità

143 141 

144| Comando | Azione | Dalla modalità |142| Comando | Azione | Dalla modalità |


302 * Premi `Ctrl+C` per annullare e ripristinare l'input originale300 * Premi `Ctrl+C` per annullare e ripristinare l'input originale

303 * Premi `Backspace` con la ricerca vuota per annullare301 * Premi `Backspace` con la ricerca vuota per annullare

304 302 

305Accettare una corrispondenza o annullare la ricerca ha effetto immediato, anche mentre Claude Code sta ancora caricando la cronologia.

306 

307Per trovare un prompt precedente quando tutto ciò che ricordi è qualcosa di lungo che ci hai incollato, come un log di errore, premi `Ctrl+R` e digita una parola del testo incollato. Richiede Claude Code v2.1.314 o successivo.303Per trovare un prompt precedente quando tutto ciò che ricordi è qualcosa di lungo che ci hai incollato, come un log di errore, premi `Ctrl+R` e digita una parola del testo incollato. Richiede Claude Code v2.1.314 o successivo.

308 304 

309## Comandi Bash in background305## Comandi Bash in background


600 596 

601### Cosa sottolinea Claude Code597### Cosa sottolinea Claude Code

602 598 

603Poco dopo che smetti di digitare, Claude Code sottolinea le parole che il dizionario non conosce. Lascia sola la parola che stai ancora digitando finché non la superi, e non cambia mai il tuo testo. Salta anche il testo che sembra codice:599Poco dopo che smetti di digitare, Claude Code sottolinea le parole che il dizionario non conosce. Lascia stare la parola che stai ancora digitando finché non la superi. Salta anche il testo che sembra codice:

604 600 

605* Comandi come `/help`, menzioni `@`, URL, percorsi di file e flag come `--verbose`601* Comandi come `/help`, menzioni `@`, URL, percorsi di file e flag come `--verbose`

606* Parole con cifre, trattini bassi, o una lettera maiuscola dopo la prima, e testo tra backtick602* Parole con cifre, trattini bassi, o una lettera maiuscola dopo la prima, e testo tra backtick

keybindings.md +7 −2

Details

581 581 

582Claude Code associa questi accordi predefiniti sul prefisso `ctrl+x`, per contesto:582Claude Code associa questi accordi predefiniti sul prefisso `ctrl+x`, per contesto:

583 583 

584* `Chat`: `ctrl+x ctrl+k`, `ctrl+x ctrl+e`, `ctrl+x enter`, `ctrl+x ctrl+a`, `ctrl+x ctrl+s` e `ctrl+x tab`584* `Chat`: `ctrl+x ctrl+k`, `ctrl+x ctrl+e`, `ctrl+x enter`, `ctrl+x ctrl+a`, `ctrl+x ctrl+s`, `ctrl+x tab`, `ctrl+x ctrl+=`, `ctrl+x ctrl+-`, `ctrl+x ctrl+_`, `ctrl+x =` e `ctrl+x -`

585* `Task`: `ctrl+x ctrl+b`585* `Task`: `ctrl+x ctrl+b`

586* `DiffPanel`: `ctrl+x b`586* `DiffPanel`: `ctrl+x b`

587* `Pane`: `ctrl+x left`, `ctrl+x right`, `ctrl+x up`, `ctrl+x down` e `ctrl+x x`587* `Pane`: `ctrl+x left`, `ctrl+x right`, `ctrl+x up`, `ctrl+x down` e `ctrl+x x`


631 "ctrl+x ctrl+a": null,631 "ctrl+x ctrl+a": null,

632 "ctrl+x ctrl+s": null,632 "ctrl+x ctrl+s": null,

633 "ctrl+x tab": null,633 "ctrl+x tab": null,

634 "ctrl+x ctrl+=": null,

635 "ctrl+x ctrl+-": null,

636 "ctrl+x ctrl+_": null,

637 "ctrl+x =": null,

638 "ctrl+x -": null,

634 "ctrl+x": "chat:newline"639 "ctrl+x": "chat:newline"

635 }640 }

636 }641 }


716Claude Code convalida i tuoi scorciatoie da tastiera e scrive un avviso nel log di debug per:721Claude Code convalida i tuoi scorciatoie da tastiera e scrive un avviso nel log di debug per:

717 722 

718* Errori di analisi (JSON non valido o struttura non valida)723* Errori di analisi (JSON non valido o struttura non valida)

719* Modificatori scritti male, come `ctl+k`. Claude Code elimina la parte che non riconosce e applica il binding al tasto rimanente, `k` in questo esempio.724* Modificatori scritti male, come `ctl+k`. Claude Code ignora l'intero binding. Correggi il modificatore, in `ctrl+k` in questo esempio.

720* Uno spazio accanto a `+` in una stringa di tasti, come `ctrl+ k`. Claude Code legge la stringa come un [accordo](#chords) di `ctrl+` seguito da `k`. Nessuna pressione di tasto corrisponde a `ctrl+` da solo, quindi il binding non si attiva mai. Rimuovi lo spazio.725* Uno spazio accanto a `+` in una stringa di tasti, come `ctrl+ k`. Claude Code legge la stringa come un [accordo](#chords) di `ctrl+` seguito da `k`. Nessuna pressione di tasto corrisponde a `ctrl+` da solo, quindi il binding non si attiva mai. Rimuovi lo spazio.

721* Nomi di contesto non validi726* Nomi di contesto non validi

722* Valori di azione non validi, come un'azione che non è una stringa o `null`727* Valori di azione non validi, come un'azione che non è una stringa o `null`

llm-gateway.md +4 −0

Details

43 43 

44Per fare in modo che un gateway raggiunto attraverso `ANTHROPIC_BASE_URL` sia l'unica destinazione che una macchina gestita può utilizzare, imposta [`allowedProviders`](https://code.claude.com/docs/it/settings-reference#allowedproviders) a `["customEndpoint"]` nello stesso file di impostazioni gestite e inserisci l'`ANTHROPIC_BASE_URL` del gateway nel blocco `env` di quel file. Claude Code quindi rifiuta una sessione indirizzata altrove, incluso direttamente ad Anthropic o al proxy personale di uno sviluppatore, e accetta `ANTHROPIC_BASE_URL` solo con il valore che hai impostato lì. Per un gateway raggiunto attraverso una variabile di endpoint specifica del provider come `ANTHROPIC_BEDROCK_BASE_URL`, la voce `allowedProviders` dice quale variabile fissare. Richiede Claude Code v2.1.285 o successivo.44Per fare in modo che un gateway raggiunto attraverso `ANTHROPIC_BASE_URL` sia l'unica destinazione che una macchina gestita può utilizzare, imposta [`allowedProviders`](https://code.claude.com/docs/it/settings-reference#allowedproviders) a `["customEndpoint"]` nello stesso file di impostazioni gestite e inserisci l'`ANTHROPIC_BASE_URL` del gateway nel blocco `env` di quel file. Claude Code quindi rifiuta una sessione indirizzata altrove, incluso direttamente ad Anthropic o al proxy personale di uno sviluppatore, e accetta `ANTHROPIC_BASE_URL` solo con il valore che hai impostato lì. Per un gateway raggiunto attraverso una variabile di endpoint specifica del provider come `ANTHROPIC_BEDROCK_BASE_URL`, la voce `allowedProviders` dice quale variabile fissare. Richiede Claude Code v2.1.285 o successivo.

45 45 

46> [!NOTE]

47>

48> Con Desktop connesso a claude.ai, una sessione Cowork sulla macchina dell'utente conta come [`"anthropic"`](https://code.claude.com/docs/it/settings-reference#allowedproviders). Se lo escludi da questo elenco in una policy MDM o in un file di impostazioni gestite, quella sessione viene rifiutata. Se lo includi, anche le sessioni inviate direttamente ad Anthropic superano questo elenco.

49 

46## Abbonamenti e gateway50## Abbonamenti e gateway

47 51 

48Mentre una [variabile di credenziale del gateway](https://code.claude.com/docs/it/llm-gateway-connect.md#set-the-credential-variable) o `apiKeyHelper` è attiva, le richieste portano quella credenziale al posto dell'accesso all'abbonamento claude.ai di uno sviluppatore, e i limiti di utilizzo dell'abbonamento non si applicano a loro. Claude Code mantiene un accesso claude.ai salvato sulla macchina ma non lo invia con quelle richieste. Quel traffico viene fatturato per token a chiunque possieda la credenziale che il gateway inoltra, come l'account Anthropic Console della tua organizzazione, o il tuo account Amazon Bedrock, Google Cloud's Agent Platform, o Microsoft Foundry quando il gateway instrada lì.52Mentre una [variabile di credenziale del gateway](https://code.claude.com/docs/it/llm-gateway-connect.md#set-the-credential-variable) o `apiKeyHelper` è attiva, le richieste portano quella credenziale al posto dell'accesso all'abbonamento claude.ai di uno sviluppatore, e i limiti di utilizzo dell'abbonamento non si applicano a loro. Claude Code mantiene un accesso claude.ai salvato sulla macchina ma non lo invia con quelle richieste. Quel traffico viene fatturato per token a chiunque possieda la credenziale che il gateway inoltra, come l'account Anthropic Console della tua organizzazione, o il tuo account Amazon Bedrock, Google Cloud's Agent Platform, o Microsoft Foundry quando il gateway instrada lì.

Details

156 156 

157### Conflitti con un accesso esistente157### Conflitti con un accesso esistente

158 158 

159Una variabile di credenziale del gateway ha la precedenza su un accesso claude.ai salvato o una chiave Console. Con `ANTHROPIC_AUTH_TOKEN`, la variabile ha la precedenza immediatamente. Con `ANTHROPIC_API_KEY`, ti viene chiesto una volta in modalità interattiva di approvare la chiave prima che prenda il controllo.159Le tue richieste usano una variabile di credenziale del gateway anziché un accesso claude.ai salvato. Con `ANTHROPIC_AUTH_TOKEN`, la variabile ha la precedenza immediatamente. Con `ANTHROPIC_API_KEY`, ti viene chiesto una volta in modalità interattiva di approvare la chiave prima che prenda il controllo.

160 160 

161Esegui `/status` per confermare quale fonte di credenziale è attiva. Se l'avvio mostra un avviso di conflitto di autenticazione che nomina due fonti, vedi la prima riga della [tabella di risoluzione dei problemi](#troubleshoot-gateway-errors) per quale eliminare. Per cancellare un accesso salvato in modo che rimanga solo la credenziale del gateway, esegui `/logout`.161Esegui `/status` per confermare quale fonte di credenziale è attiva. Se l'avvio mostra un avviso di conflitto di autenticazione che nomina due fonti, vedi la prima riga della [tabella di risoluzione dei problemi](#troubleshoot-gateway-errors) per quale eliminare. Per cancellare un accesso salvato in modo che rimanga solo la credenziale del gateway, esegui `/logout`.

162 162 


506 506 

507| Errore | Causa | Correzione |507| Errore | Causa | Correzione |

508| :- | :- | :- |508| :- | :- | :- |

509| Un avviso di avvio che nomina due fonti di credenziali e termina con `auth may not work as expected`. Le versioni precedenti mostrano invece `Auth conflict: Both a token (SOURCE) and an API key (SOURCE) are set` | Una credenziale del gateway e un accesso salvato sono entrambi attivi; la variabile viene utilizzata per le richieste, ma l'accesso obsoleto può causare un comportamento di autenticazione inaspettato | Annulla l'impostazione della variabile per utilizzare l'accesso salvato, oppure esegui `/logout` per utilizzare la credenziale del gateway |509| Un avviso di avvio che nomina due fonti di credenziali e termina con `auth may not work as expected`. Le versioni precedenti mostrano invece `Auth conflict: Both a token (SOURCE) and an API key (SOURCE) are set`. | Una credenziale del gateway e un accesso salvato sono entrambi attivi | Annulla l'impostazione della variabile per utilizzare l'accesso salvato, oppure esegui `/logout` per utilizzare la credenziale del gateway |

510| Errori `401` che nominano un token non valido o non riconosciuto | La credenziale non è una che il gateway ha emesso, oppure si trova in un'intestazione che il gateway non legge | Conferma che la variabile corrisponda al tuo tipo di credenziale nella [tabella delle credenziali](#set-the-credential-variable), e rigenera la chiave al gateway se è stata revocata |510| Errori `401` che nominano un token non valido o non riconosciuto | La credenziale non è una che il gateway ha emesso, oppure si trova in un'intestazione che il gateway non legge | Conferma che la variabile corrisponda al tuo tipo di credenziale nella [tabella delle credenziali](#set-the-credential-variable), e rigenera la chiave al gateway se è stata revocata |

511| `Your apiKeyHelper script is failing`, oppure `apiKeyHelper failed:` su stderr in modalità non interattiva | Il comando nell'impostazione [`apiKeyHelper`](https://code.claude.com/docs/it/settings-reference#apikeyhelper) non ha prodotto una chiave utilizzabile, quindi le richieste portano una chiave segnaposto | Esegui il comando direttamente per vedere perché non riesce, e autentica di nuovo con il tuo provider di credenziali se segnala una sessione scaduta; vedi [il riferimento degli errori](https://code.claude.com/docs/it/errors.md#your-apikeyhelper-script-is-failing) |511| `Your apiKeyHelper script is failing`, oppure `apiKeyHelper failed:` su stderr in modalità non interattiva | Il comando nell'impostazione [`apiKeyHelper`](https://code.claude.com/docs/it/settings-reference#apikeyhelper) non ha prodotto una chiave utilizzabile, quindi le richieste portano una chiave segnaposto | Esegui il comando direttamente per vedere perché non riesce, e autentica di nuovo con il tuo provider di credenziali se segnala una sessione scaduta; vedi [il riferimento degli errori](https://code.claude.com/docs/it/errors.md#your-apikeyhelper-script-is-failing) |

512| `Connection refused — a firewall or proxy may be blocking it (ConnectionRefused)` quando nulla risponde all'indirizzo, oppure `Can't reach the API server — check your internet or DNS (ENOTFOUND)` quando il nome host non si risolve, spesso dopo una pausa silenziosa mentre Claude Code [ritenta con backoff](https://code.claude.com/docs/it/errors.md#automatic-retries). Il codice tra parentesi varia; [Unable to connect to API](https://code.claude.com/docs/it/errors.md#unable-to-connect-to-api) copre i codici e la formulazione precedente | Nulla ha risposto all'URL di base: l'indirizzo è sbagliato, oppure una VPN o un firewall blocca il percorso verso il gateway | Esegui il [test curl sopra](#verify-the-connection), che non riesce immediatamente con la stessa causa, e conferma l'URL e il percorso di rete con il tuo team del gateway |512| `Connection refused — a firewall or proxy may be blocking it (ConnectionRefused)` quando nulla risponde all'indirizzo, oppure `Can't reach the API server — check your internet or DNS (ENOTFOUND)` quando il nome host non si risolve, spesso dopo una pausa silenziosa mentre Claude Code [ritenta con backoff](https://code.claude.com/docs/it/errors.md#automatic-retries). Il codice tra parentesi varia; [Unable to connect to API](https://code.claude.com/docs/it/errors.md#unable-to-connect-to-api) copre i codici e la formulazione precedente | Nulla ha risposto all'URL di base: l'indirizzo è sbagliato, oppure una VPN o un firewall blocca il percorso verso il gateway | Esegui il [test curl sopra](#verify-the-connection), che non riesce immediatamente con la stessa causa, e conferma l'URL e il percorso di rete con il tuo team del gateway |


520| `/fast` segnala `Fast mode unavailable due to network connectivity issues` mentre le richieste di inferenza funzionano | Il controllo della disponibilità della [modalità veloce](https://code.claude.com/docs/it/fast-mode.md) va direttamente a `api.anthropic.com` e non segue `ANTHROPIC_BASE_URL`, quindi l'uscita diretta bloccata fa fallire il controllo | Aggiungi `api.anthropic.com` all'allowlist se l'uscita è bloccata, oppure imposta una variabile di skip. Vedi [usa la modalità veloce dietro proxy e gateway LLM](https://code.claude.com/docs/it/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) |520| `/fast` segnala `Fast mode unavailable due to network connectivity issues` mentre le richieste di inferenza funzionano | Il controllo della disponibilità della [modalità veloce](https://code.claude.com/docs/it/fast-mode.md) va direttamente a `api.anthropic.com` e non segue `ANTHROPIC_BASE_URL`, quindi l'uscita diretta bloccata fa fallire il controllo | Aggiungi `api.anthropic.com` all'allowlist se l'uscita è bloccata, oppure imposta una variabile di skip. Vedi [usa la modalità veloce dietro proxy e gateway LLM](https://code.claude.com/docs/it/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) |

521| `/fast` segnala `Fast mode is currently unavailable` in una sessione che si autentica con una chiave emessa dal gateway in `ANTHROPIC_API_KEY` | Mentre `ANTHROPIC_BASE_URL` punta al tuo gateway e la chiave non è nel formato di una chiave API Anthropic, Claude Code non invia il controllo della disponibilità della [modalità veloce](https://code.claude.com/docs/it/fast-mode.md). Senza un precedente controllo riuscito memorizzato nella cache, tratta la modalità veloce come non disponibile | Imposta `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS=1`; vedi [usa la modalità veloce dietro proxy e gateway LLM](https://code.claude.com/docs/it/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) |521| `/fast` segnala `Fast mode is currently unavailable` in una sessione che si autentica con una chiave emessa dal gateway in `ANTHROPIC_API_KEY` | Mentre `ANTHROPIC_BASE_URL` punta al tuo gateway e la chiave non è nel formato di una chiave API Anthropic, Claude Code non invia il controllo della disponibilità della [modalità veloce](https://code.claude.com/docs/it/fast-mode.md). Senza un precedente controllo riuscito memorizzato nella cache, tratta la modalità veloce come non disponibile | Imposta `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS=1`; vedi [usa la modalità veloce dietro proxy e gateway LLM](https://code.claude.com/docs/it/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) |

522| `/fast` segnala `Fast mode has been disabled by your organization` in una sessione autenticata con `ANTHROPIC_AUTH_TOKEN`, anche se l'organizzazione ha la modalità veloce abilitata | Il controllo della disponibilità richiede un accesso a claude.ai o una chiave API; con solo un token bearer, Claude Code tratta la modalità veloce come disabilitata senza inviare il controllo | Imposta `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1`; vedi [usa la modalità veloce dietro proxy e gateway LLM](https://code.claude.com/docs/it/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) |522| `/fast` segnala `Fast mode has been disabled by your organization` in una sessione autenticata con `ANTHROPIC_AUTH_TOKEN`, anche se l'organizzazione ha la modalità veloce abilitata | Il controllo della disponibilità richiede un accesso a claude.ai o una chiave API; con solo un token bearer, Claude Code tratta la modalità veloce come disabilitata senza inviare il controllo | Imposta `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1`; vedi [usa la modalità veloce dietro proxy e gateway LLM](https://code.claude.com/docs/it/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) |

523| `/feedback` salva un file locale in una sessione che usa `ANTHROPIC_BASE_URL` | Dietro un gateway, `ANTHROPIC_AUTH_TOKEN` e una chiave che non è nel formato di una chiave API Anthropic non sono credenziali Anthropic. Senza una credenziale Anthropic, Claude Code scrive il report in un archivio locale sotto `~/.claude/feedback-bundles/` invece di inviarlo | Invia il file al tuo referente dell'account Anthropic oppure allegalo a una richiesta di supporto. Vedi [servizi di telemetria](https://code.claude.com/docs/it/data-usage.md#telemetry-services) |

523| Claude Code ti chiede di accedere anche se il [test curl](#verify-the-connection) ha successo | La CLI non ha una credenziale propria: un URL di base raggiungibile non è uno, e in una sessione interattiva un blocco `env` nel `.claude/settings.json` o `.claude/settings.local.json` di un progetto si applica solo dopo la procedura guidata di primo avvio e il [prompt di fiducia](https://code.claude.com/docs/it/permissions.md#what-runs-before-you-trust-a-folder) | Imposta `ANTHROPIC_AUTH_TOKEN` da qualche parte che Claude Code legge prima della configurazione di primo avvio: un'esportazione shell, il blocco `env` in `~/.claude/settings.json`, o impostazioni gestite |524| Claude Code ti chiede di accedere anche se il [test curl](#verify-the-connection) ha successo | La CLI non ha una credenziale propria: un URL di base raggiungibile non è uno, e in una sessione interattiva un blocco `env` nel `.claude/settings.json` o `.claude/settings.local.json` di un progetto si applica solo dopo la procedura guidata di primo avvio e il [prompt di fiducia](https://code.claude.com/docs/it/permissions.md#what-runs-before-you-trust-a-folder) | Imposta `ANTHROPIC_AUTH_TOKEN` da qualche parte che Claude Code legge prima della configurazione di primo avvio: un'esportazione shell, il blocco `env` in `~/.claude/settings.json`, o impostazioni gestite |

524| `ANTHROPIC_API_KEY` è impostato ma ignorato, senza prompt | La chiave ha bisogno di un'approvazione una tantum nelle sessioni interattive, e una chiave precedentemente rifiutata viene ignorata senza chiedere di nuovo | Abilitala sotto `/config` con l'opzione `Use custom API key` |525| `ANTHROPIC_API_KEY` è impostato ma ignorato, senza prompt | La chiave ha bisogno di un'approvazione una tantum nelle sessioni interattive, e una chiave precedentemente rifiutata viene ignorata senza chiedere di nuovo | Abilitala sotto `/config` con l'opzione `Use custom API key` |

525| `This machine's managed settings require a first-party login`, oppure [`Administrator policy requires a Cloud gateway sign-in`](https://code.claude.com/docs/it/errors#administrator-policy-requires-a-cloud-gateway-sign-in) quando le impostazioni gestite impostano `forceLoginMethod` a `"gateway"` o impostano anche `forceLoginGatewayUrl` | Le impostazioni gestite includono `forceLoginMethod` o `forceLoginOrgUUID`, che non possono coesistere con `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, o `apiKeyHelper` | Il tuo amministratore deve rimuovere `forceLoginMethod`, `forceLoginOrgUUID`, e `forceLoginGatewayUrl` dalle impostazioni gestite per utilizzare le credenziali del gateway, oppure rimuovere la credenziale del gateway e utilizzare l'accesso che le impostazioni gestite richiedono. I due non possono essere combinati |526| `This machine's managed settings require a first-party login`, oppure [`Administrator policy requires a Cloud gateway sign-in`](https://code.claude.com/docs/it/errors#administrator-policy-requires-a-cloud-gateway-sign-in) quando le impostazioni gestite impostano `forceLoginMethod` a `"gateway"` o impostano anche `forceLoginGatewayUrl` | Le impostazioni gestite includono `forceLoginMethod` o `forceLoginOrgUUID`, che non possono coesistere con `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, o `apiKeyHelper` | Il tuo amministratore deve rimuovere `forceLoginMethod`, `forceLoginOrgUUID`, e `forceLoginGatewayUrl` dalle impostazioni gestite per utilizzare le credenziali del gateway, oppure rimuovere la credenziale del gateway e utilizzare l'accesso che le impostazioni gestite richiedono. I due non possono essere combinati |

Details

142claude -p "Reply with one word: connected"142claude -p "Reply with one word: connected"

143```143```

144 144 

145**Checkpoint**: il prompt restituisce una risposta e la richiesta appare nel log del gateway come un `POST` al percorso `/v1/messages` con stato `200`. Claude Code aggiunge una stringa di query come `?beta=true`, quindi abbinate il percorso, non l'URL completo. Due messaggi di errore puntano in direzioni diverse:145**Checkpoint**: il prompt restituisce una risposta e la richiesta appare nel log del gateway come un `POST` al percorso `/v1/messages` con stato `200`. Claude Code aggiunge una stringa di query come `?beta=true`, quindi confronta il percorso, non l'URL completo. Controlla il messaggio di errore:

146 146 

147* `Not logged in`: controllate il log del gateway per distinguere le due cause. Se è vuoto, nessuna credenziale ha raggiunto la sessione e nessuna richiesta ha lasciato la macchina; rieseguite le esportazioni nella shell da cui state testando. Se mostra una richiesta rifiutata con `x-api-key` nel corpo `401`, il gateway si aspetta chiavi in quell'intestazione invece; passate a `ANTHROPIC_API_KEY`147* `Not logged in`: controlla il log del gateway. Se è vuoto, nessuna credenziale ha raggiunto la sessione e nessuna richiesta ha lasciato la macchina; riesegui le esportazioni nella shell da cui stai testando. Se mostra un `401` dal gateway che nomina `x-api-key`, il gateway si aspetta invece le chiavi in quell'intestazione; passa a `ANTHROPIC_API_KEY`. Se mostra un `401` da `api.anthropic.com` o dall'endpoint del tuo provider, correggi la credenziale del provider che il gateway detiene

148* `Failed to authenticate. API Error: 401` significa che una credenziale è stata inviata e rifiutata, e il log del gateway dice dove: un `401` che nomina `api.anthropic.com` o l'endpoint del vostro provider significa che il gateway ha raggiunto l'upstream ma la sua credenziale del provider è stata rifiutata, quindi la chiave dello sviluppatore ha funzionato e la credenziale del provider che il gateway detiene è sbagliata o un segnaposto148* `Failed to authenticate. API Error: 401` significa che una credenziale è stata inviata e rifiutata, e il log del gateway dice dove: un `401` che nomina `api.anthropic.com` o l'endpoint del vostro provider significa che il gateway ha raggiunto l'upstream ma la sua credenziale del provider è stata rifiutata, quindi la chiave dello sviluppatore ha funzionato e la credenziale del provider che il gateway detiene è sbagliata o un segnaposto

149 149 

150Un URL di base sbagliato o irraggiungibile produce un sintomo diverso: Claude Code [ritenta la connessione con backoff](https://code.claude.com/docs/it/errors.md#automatic-retries) e può stare senza output per diversi minuti prima di segnalare un errore. Se il comando sembra bloccarsi, controllate il log del gateway invece di aspettare; nessuna richiesta in arrivo significa che `ANTHROPIC_BASE_URL` non punta al gateway.150Un URL di base sbagliato o irraggiungibile produce un sintomo diverso: Claude Code [ritenta la connessione con backoff](https://code.claude.com/docs/it/errors.md#automatic-retries) e può stare senza output per diversi minuti prima di segnalare un errore. Se il comando sembra bloccarsi, controllate il log del gateway invece di aspettare; nessuna richiesta in arrivo significa che `ANTHROPIC_BASE_URL` non punta al gateway.


247 247 

248Dovreste vedere le righe `data:` arrivare in modo incrementale. L'intera risposta che arriva in una volta dopo una pausa significa che il gateway sta memorizzando nel buffer, il che blocca Claude Code; un `404` significa che il nome del modello non è instradato. Ripetete per nome di modello.248Dovreste vedere le righe `data:` arrivare in modo incrementale. L'intera risposta che arriva in una volta dopo una pausa significa che il gateway sta memorizzando nel buffer, il che blocca Claude Code; un `404` significa che il nome del modello non è instradato. Ripetete per nome di modello.

249 249 

250Quindi avviate `claude` e inviate un messaggio. Ogni sintomo in questo passaggio ha una causa:250Quindi avvia `claude`, invia un messaggio e confronta ciò che vedi:

251 251 

252* Un prompt di accesso significa un divario di credenziale. Eseguite `/status` e aprite la scheda **Status**: quando la riga `Setting sources` non include impostazioni gestite, la distribuzione non ha raggiunto la macchina; quando lo fa, la credenziale dello sviluppatore non è stata consegnata, quindi impostate `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper`252* Una schermata di accesso, o `Not logged in` senza nulla di nuovo nel log del gateway, indica una credenziale mancante. Esegui `/status` e apri la scheda **Status**: quando la riga `Setting sources` non include le impostazioni gestite, la distribuzione non ha raggiunto la macchina; quando le include, la credenziale dello sviluppatore non è stata consegnata, quindi imposta `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper`

253* Gli errori `Failed to authenticate` significano che il gateway sta rifiutando le richieste; il suo log dice quale credenziale ha fallito. Un rifiuto che il gateway registra stesso nomina la chiave dello sviluppatore, mentre un `401` da `api.anthropic.com` o dall'endpoint del vostro provider significa che la credenziale del provider che il gateway detiene è stata rifiutata253* `Please run /login · API Error: 401`, `Not logged in` o `Invalid API key` con un `401` nel log del gateway: verifica chi ha generato il `401`. Correggi la chiave dello sviluppatore o la sua intestazione se l'ha generato il gateway, oppure la credenziale del provider che il gateway detiene se proviene da `api.anthropic.com` o dall'endpoint del tuo provider

254* Una richiesta di approvazione una tantum per la chiave è prevista al primo utilizzo quando il gateway si aspetta le chiavi nell'intestazione `x-api-key`, impostata come `ANTHROPIC_API_KEY`254* Una richiesta di approvazione una tantum per la chiave è prevista al primo utilizzo quando il gateway si aspetta le chiavi nell'intestazione `x-api-key`, impostata come `ANTHROPIC_API_KEY`

255 255 

256Se la vostra organizzazione usa [fast mode](https://code.claude.com/docs/it/fast-mode.md), eseguite `/fast` qui anche: il controllo di disponibilità chiama `api.anthropic.com` direttamente piuttosto che seguire l'URL di base del gateway, quindi una sessione instradata dal gateway può segnalare fast mode come non disponibile o disabilitato anche se l'inferenza funziona. [Usare fast mode dietro proxy e gateway LLM](https://code.claude.com/docs/it/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) mappa ogni messaggio alla variabile che lo ripristina, distribuita con [il resto della configurazione](#distribute-the-configuration).256Se la vostra organizzazione usa [fast mode](https://code.claude.com/docs/it/fast-mode.md), eseguite `/fast` qui anche: il controllo di disponibilità chiama `api.anthropic.com` direttamente piuttosto che seguire l'URL di base del gateway, quindi una sessione instradata dal gateway può segnalare fast mode come non disponibile o disabilitato anche se l'inferenza funziona. [Usare fast mode dietro proxy e gateway LLM](https://code.claude.com/docs/it/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) mappa ogni messaggio alla variabile che lo ripristina, distribuita con [il resto della configurazione](#distribute-the-configuration).

mcp.md +0 −2

Details

835 835 

836Un server che la tua organizzazione fornisce tramite l'impostazione gestita [`managedMcpServers`](https://code.claude.com/docs/it/managed-mcp#provide-servers-through-managed-settings) si classifica al di sopra di tutti questi, quindi quando uno di loro lo duplica, Claude Code si connette alla definizione dell'organizzazione. Richiede Claude Code v2.1.259 o successivo.836Un server che la tua organizzazione fornisce tramite l'impostazione gestita [`managedMcpServers`](https://code.claude.com/docs/it/managed-mcp#provide-servers-through-managed-settings) si classifica al di sopra di tutti questi, quindi quando uno di loro lo duplica, Claude Code si connette alla definizione dell'organizzazione. Richiede Claude Code v2.1.259 o successivo.

837 837 

838Se apri una sessione locale nella [scheda Code dell'app Desktop](https://code.claude.com/docs/it/desktop.md#mcp-servers-from-the-claude-desktop-chat-app) con lo stesso nome di server stdio al livello superiore di `~/.claude.json` (ambito utente) e in `.mcp.json`, la scheda Code utilizza la definizione `~/.claude.json`.

839 

840### Espansione delle variabili di ambiente in `.mcp.json`838### Espansione delle variabili di ambiente in `.mcp.json`

841 839 

842Claude Code supporta l'espansione delle variabili di ambiente nei file `.mcp.json`, consentendo ai team di condividere configurazioni mantenendo flessibilità per i percorsi specifici della macchina e i valori sensibili come le chiavi API.840Claude Code supporta l'espansione delle variabili di ambiente nei file `.mcp.json`, consentendo ai team di condividere configurazioni mantenendo flessibilità per i percorsi specifici della macchina e i valori sensibili come le chiavi API.

Details

147 147 

148## Configurazione RBAC di Azure148## Configurazione RBAC di Azure

149 149 

150I ruoli predefiniti `Azure AI User` e `Cognitive Services User` includono tutte le autorizzazioni necessarie per invocare i modelli Claude.150Se ti autentichi con Microsoft Entra ID o con un bearer token da esso emesso, assegna alla tua identità il ruolo `Foundry User` o `Cognitive Services User` sulla tua risorsa Foundry. Potresti ancora vedere `Foundry User` con il suo nome precedente, `Azure AI User`.

151 151 

152Per autorizzazioni più restrittive, crea un ruolo personalizzato con quanto segue:152Se questi ruoli non soddisfano le tue esigenze, consulta la [documentazione RBAC di Microsoft Foundry](https://learn.microsoft.com/en-us/azure/foundry/concepts/rbac-foundry) per i ruoli personalizzati.

153 

154```json theme={null}

155{

156 "permissions": [

157 {

158 "dataActions": [

159 "Microsoft.CognitiveServices/accounts/providers/*"

160 ]

161 }

162 ]

163}

164```

165 

166Per i dettagli, vedi [Documentazione RBAC di Microsoft Foundry](https://learn.microsoft.com/en-us/azure/ai-foundry/concepts/rbac-azure-ai-foundry).

167 153 

168## Finestra di contesto da 1M token154## Finestra di contesto da 1M token

169 155 

model-config.md +5 −3

Details

157 157 

158Quando il modello attivo all'avvio proviene dalle impostazioni di progetto o gestite anziché dalla tua selezione, l'intestazione di avvio mostra quale file di impostazioni lo ha impostato. Esegui `/model` per sovrascriverlo; l'impostazione di progetto o gestita viene riapplicata al prossimo avvio. Sulle piattaforme che incorporano Claude Code e impostano [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/it/env-vars), la configurazione del modello dell'host ha la precedenza sulle impostazioni del modello gestite, mentre un'allowlist `availableModels` gestita rimane in vigore a meno che l'host non ne fornisca una propria; [Eccezioni alla precedenza delle impostazioni gestite](https://code.claude.com/docs/it/settings.md#exceptions-to-managed-settings-precedence) indica quali chiavi e variabili l'host sovrascrive.158Quando il modello attivo all'avvio proviene dalle impostazioni di progetto o gestite anziché dalla tua selezione, l'intestazione di avvio mostra quale file di impostazioni lo ha impostato. Esegui `/model` per sovrascriverlo; l'impostazione di progetto o gestita viene riapplicata al prossimo avvio. Sulle piattaforme che incorporano Claude Code e impostano [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/it/env-vars), la configurazione del modello dell'host ha la precedenza sulle impostazioni del modello gestite, mentre un'allowlist `availableModels` gestita rimane in vigore a meno che l'host non ne fornisca una propria; [Eccezioni alla precedenza delle impostazioni gestite](https://code.claude.com/docs/it/settings.md#exceptions-to-managed-settings-precedence) indica quali chiavi e variabili l'host sovrascrive.

159 159 

160Se tu o la tua organizzazione configurate [hook PreModelSwitch](https://code.claude.com/docs/it/hooks.md#premodelswitch), questi vengono eseguiti prima che un cambio richiesto venga applicato e possono bloccarlo o chiederti di confermare.160Se tu o la tua organizzazione configurate [hook PreModelSwitch](https://code.claude.com/docs/it/hooks.md#premodelswitch), questi vengono eseguiti prima che un cambio richiesto venga applicato e possono bloccarlo o chiederti di confermare. Per scoprire perché un hook ha bloccato un cambio e cosa fare, consulta [Model switch was blocked by a PreModelSwitch hook](https://code.claude.com/docs/it/errors.md#model-switch-was-blocked-by-a-premodelswitch-hook).

161 161 

162Quando Claude Code non riesce a determinare quali hook PreModelSwitch forniscono i [plugin gestiti](https://code.claude.com/docs/it/settings-reference.md#enabledplugins) della tua organizzazione, ad esempio perché un plugin gestito non è stato caricato, rifiuta il cambio anziché applicarlo senza controllo, e ricontrolla a ogni nuovo tentativo. Consulta [Model switch was blocked by a PreModelSwitch hook](https://code.claude.com/docs/it/errors.md#model-switch-was-blocked-by-a-premodelswitch-hook) per il messaggio e il ripristino.162Se un [plugin gestito](https://code.claude.com/docs/it/settings-reference.md#enabledplugins) o i suoi hook non vengono caricati, puoi comunque cambiare modello. Gli hook PreModelSwitch del plugin non vengono eseguiti, quindi un cambio che uno di essi avrebbe bloccato può procedere. Gli altri hook PreModelSwitch che sono stati caricati vengono comunque eseguiti e possono bloccarlo. Se Claude Code in una versione precedente alla v2.1.323 rifiuta il cambio con `so organization-managed PreModelSwitch hooks could not be checked`, aggiorna Claude Code.

163 

164Per vedere cosa non è riuscito, esegui `/plugin` nella tua sessione e apri la [scheda **Errors**](https://code.claude.com/docs/it/plugins/troubleshooting.md#failed-to-load-hooks-from-and-hooks-that-dont-fire). Se lì non è elencato nulla, avvia una nuova sessione con `claude --debug` dalla tua shell e passa a un modello diverso, poi leggi il [log di debug](https://code.claude.com/docs/it/hooks.md#debug-hooks). Dopo aver corretto il plugin, o quando un [aggiornamento del plugin](https://code.claude.com/docs/it/plugins/install.md#keep-plugins-updated) porta sulla tua macchina la correzione del tuo amministratore, esegui `/reload-plugins` nella tua sessione per far funzionare i suoi hook.

163 165 

164Quando cambi modello tramite il metodo `setModel()` dell'[Agent SDK](https://code.claude.com/docs/it/agent-sdk/overview.md), tramite un'app come l'[app Desktop](https://code.claude.com/docs/it/desktop.md) o da un dispositivo connesso tramite [Remote Control](https://code.claude.com/docs/it/remote-control.md), Claude Code controlla il valore al momento del cambio:166Quando cambi modello tramite il metodo `setModel()` dell'[Agent SDK](https://code.claude.com/docs/it/agent-sdk/overview.md), tramite un'app come l'[app Desktop](https://code.claude.com/docs/it/desktop.md) o da un dispositivo connesso tramite [Remote Control](https://code.claude.com/docs/it/remote-control.md), Claude Code controlla il valore al momento del cambio:

165 167 


903 905 

904### Correggere la finestra per un gateway o un ID modello personalizzato906### Correggere la finestra per un gateway o un ID modello personalizzato

905 907 

906Uno qualsiasi di questi avvisi di avvio significa che Claude Code non riconosce l'ID modello della tua sessione, quindi non può determinare la finestra di contesto del modello e assume 200K token:908Uno qualsiasi di questi avvisi significa che Claude Code non riconosce l'ID modello della tua sessione, quindi non può determinare la finestra di contesto del modello e assume 200K token:

907 909 

908```text theme={null}910```text theme={null}

909⚠ Model "my-gateway-opus" isn't recognized · context assumed to be 200k tokens · ...911⚠ Model "my-gateway-opus" isn't recognized · context assumed to be 200k tokens · ...

Details

110| `CLAUDE_CODE_ENABLE_TELEMETRY` | Abilita la raccolta della telemetria (obbligatoria) | `1` |110| `CLAUDE_CODE_ENABLE_TELEMETRY` | Abilita la raccolta della telemetria (obbligatoria) | `1` |

111| `OTEL_METRICS_EXPORTER` | Tipi di exporter delle metriche, separati da virgole. Usa `none` per disabilitare | `console`, `otlp`, `prometheus`, `none` |111| `OTEL_METRICS_EXPORTER` | Tipi di exporter delle metriche, separati da virgole. Usa `none` per disabilitare | `console`, `otlp`, `prometheus`, `none` |

112| `OTEL_LOGS_EXPORTER` | Tipi di exporter di log/eventi, separati da virgole. Usa `none` per disabilitare | `console`, `otlp`, `none` |112| `OTEL_LOGS_EXPORTER` | Tipi di exporter di log/eventi, separati da virgole. Usa `none` per disabilitare | `console`, `otlp`, `none` |

113| `OTEL_EXPORTER_OTLP_PROTOCOL` | Protocollo per l'exporter OTLP, si applica a tutti i segnali. Claude Code non ha un protocollo predefinito, quindi imposta questa variabile o la variabile di protocollo specifica per segnale per ogni exporter `otlp` che abiliti | `grpc`, `http/json`, `http/protobuf` |113| `OTEL_EXPORTER_OTLP_PROTOCOL` | Protocollo per l'exporter OTLP, si applica a tutti i segnali. Il valore predefinito è `http/protobuf` per un endpoint `http://` o `https://` valido. Per un endpoint gRPC come `http://localhost:4317`, imposta questa variabile su `grpc`. Il valore predefinito richiede Claude Code v2.1.323 o successiva | `grpc`, `http/json`, `http/protobuf` |

114| `OTEL_EXPORTER_OTLP_ENDPOINT` | Endpoint del collector OTLP per tutti i segnali | `http://localhost:4317` |114| `OTEL_EXPORTER_OTLP_ENDPOINT` | Endpoint del collector OTLP per tutti i segnali | `http://localhost:4317` |

115| `OTEL_EXPORTER_OTLP_METRICS_PROTOCOL` | Protocollo per le metriche, sovrascrive l'impostazione generale | `grpc`, `http/json`, `http/protobuf` |115| `OTEL_EXPORTER_OTLP_METRICS_PROTOCOL` | Protocollo per le metriche, sovrascrive l'impostazione generale | `grpc`, `http/json`, `http/protobuf` |

116| `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` | Endpoint OTLP per le metriche, sovrascrive l'impostazione generale | `http://localhost:4318/v1/metrics` |116| `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` | Endpoint OTLP per le metriche, sovrascrive l'impostazione generale | `http://localhost:4318/v1/metrics` |


431> * **Nessuno spazio consentito**: i valori non possono contenere spazi. Ad esempio, `user.organizationName=My Company` non è valido431> * **Nessuno spazio consentito**: i valori non possono contenere spazi. Ad esempio, `user.organizationName=My Company` non è valido

432> * **Formato**: deve essere composta da coppie key=value separate da virgole: `key1=value1,key2=value2`432> * **Formato**: deve essere composta da coppie key=value separate da virgole: `key1=value1,key2=value2`

433> * **Caratteri consentiti**: solo caratteri US-ASCII esclusi i caratteri di controllo, gli spazi bianchi, le virgolette doppie, le virgole, i punti e virgola e le barre rovesciate433> * **Caratteri consentiti**: solo caratteri US-ASCII esclusi i caratteri di controllo, gli spazi bianchi, le virgolette doppie, le virgole, i punti e virgola e le barre rovesciate

434> * **Caratteri speciali**: i caratteri al di fuori dell'intervallo consentito devono essere codificati con percent-encoding434> * **Caratteri speciali**: i caratteri al di fuori dell'intervallo consentito devono essere codificati con percent-encoding, e un `=` all'interno di un valore deve essere scritto come `%3D`

435>435>

436> Per un valore che richiederebbe uno spazio, usa invece underscore o camelCase. Gli esempi seguenti impostano `org.name` con ciascuna forma:436> Per un valore che richiederebbe uno spazio, usa invece underscore o camelCase. Gli esempi seguenti impostano `org.name` con ciascuna forma:

437>437>


475 475 

476* **L'hai impostato sul computer che esegue Desktop**: Desktop non passa alla sessione SSH un valore impostato lì476* **L'hai impostato sul computer che esegue Desktop**: Desktop non passa alla sessione SSH un valore impostato lì

477* **L'hai esportato in `/etc/profile` o in un altro file letto solo dalle shell di login**: il nome arriva quando esegui `claude` da una shell di login, ma non in una sessione SSH di Desktop. Desktop non avvia Claude Code tramite una shell di login. Imposta invece la variabile sotto `env` nel [file delle impostazioni gestite](https://code.claude.com/docs/it/desktop.md#managed-settings) sulla macchina remota.477* **L'hai esportato in `/etc/profile` o in un altro file letto solo dalle shell di login**: il nome arriva quando esegui `claude` da una shell di login, ma non in una sessione SSH di Desktop. Desktop non avvia Claude Code tramite una shell di login. Imposta invece la variabile sotto `env` nel [file delle impostazioni gestite](https://code.claude.com/docs/it/desktop.md#managed-settings) sulla macchina remota.

478* **Un valore contiene uno spazio**: in questo caso Claude Code non copia nessuna delle chiavi su eventi o datapoint e non segnala alcun errore. [Rimuovi lo spazio dal valore](#multi-team-organization-support).478* **Un valore contiene uno spazio**: in questo caso Claude Code non copia nessuna delle chiavi su eventi o datapoint. Per vedere quale valore contiene lo spazio, esegui `/status` in una sessione sulla macchina remota. [Rimuovi lo spazio dal valore](#multi-team-organization-support).

479* **Qualcos'altro imposta già la variabile**: in una sessione avviata dall'app desktop, una variabile già impostata nell'ambiente di avvio [ha la precedenza sui file delle impostazioni](https://code.claude.com/docs/it/settings-reference.md#how-env-values-interact-with-your-shell). Il [log di debug](https://code.claude.com/docs/it/debug-your-config.md) indica ogni variabile ignorata. Quando un deploy di Desktop di terze parti [specifica un endpoint OTLP](#how-managed-settings-lock-the-otlp-destination) nell'ambiente che fornisce, quell'ambiente include il proprio `OTEL_RESOURCE_ATTRIBUTES` di Desktop.479* **Qualcos'altro imposta già la variabile**: in una sessione avviata dall'app desktop, una variabile già impostata nell'ambiente di avvio [ha la precedenza sui file delle impostazioni](https://code.claude.com/docs/it/settings-reference.md#how-env-values-interact-with-your-shell). Il [log di debug](https://code.claude.com/docs/it/debug-your-config.md) indica ogni variabile ignorata. Quando un deploy di Desktop di terze parti [specifica un endpoint OTLP](#how-managed-settings-lock-the-otlp-destination) nell'ambiente che fornisce, quell'ambiente include il proprio `OTEL_RESOURCE_ATTRIBUTES` di Desktop.

480 480 

481### Configurazioni di esempio481### Configurazioni di esempio

Details

304claude --permission-mode plan304claude --permission-mode plan

305```305```

306 306 

307Premi di nuovo `Shift+Tab` per uscire dal plan mode senza approvare un piano.307Quando non è aperta alcuna richiesta di approvazione, premi di nuovo `Shift+Tab` per uscire dal plan mode. Nella richiesta di approvazione, premi prima `Esc`, perché lì premere `Shift+Tab` approva il piano.

308 308 

309### Rivedi e approva un piano309### Rivedi e approva un piano

310 310 


593> * Quando Claude legge un [artefatto creato da qualcun altro](https://code.claude.com/docs/it/artifacts.md#read-an-artifact-shared-with-you), si applicano i casi di approvazione elencati in quella sezione593> * Quando Claude legge un [artefatto creato da qualcun altro](https://code.claude.com/docs/it/artifacts.md#read-an-artifact-shared-with-you), si applicano i casi di approvazione elencati in quella sezione

594> * Una lettura da un [percorso di rete](https://code.claude.com/docs/it/permissions.md#network-paths) ti chiede conferma594> * Una lettura da un [percorso di rete](https://code.claude.com/docs/it/permissions.md#network-paths) ti chiede conferma

595> 3. Tutto il resto va al classificatore, ad eccezione delle [rimozioni di percorsi critici](#critical-paths) con la loro gestione predefinita. Nemmeno gli strumenti dei connettori e gli strumenti MCP con `requiresUserInteraction` che ti chiedono conferma direttamente nel passaggio 1 raggiungono mai il classificatore, quindi né un'approvazione richiesta dall'organizzazione né un passaggio di consenso vengono approvati automaticamente595> 3. Tutto il resto va al classificatore, ad eccezione delle [rimozioni di percorsi critici](#critical-paths) con la loro gestione predefinita. Nemmeno gli strumenti dei connettori e gli strumenti MCP con `requiresUserInteraction` che ti chiedono conferma direttamente nel passaggio 1 raggiungono mai il classificatore, quindi né un'approvazione richiesta dall'organizzazione né un passaggio di consenso vengono approvati automaticamente

596> * Con [Code Mode](https://code.claude.com/docs/it/code-mode.md#permission-checks) attivo, il codice di Claude va al classificatore una sola volta prima di essere eseguito, mentre le chiamate agli strumenti al suo interno no. Puoi comunque bloccare una chiamata con una regola `deny` o imporre una richiesta di permesso con una regola `ask`, ma Claude può eseguire comandi Bash in [forme a cui le regole non corrispondono](https://code.claude.com/docs/it/permissions.md#bash-rule-limits)

596> 4. Se il classificatore blocca, Claude riceve il motivo. Nella maggior parte delle sessioni il motivo indica la regola a cui il classificatore ha fatto corrispondere l'azione, come `[Data Exfiltration]`, anziché fornire una spiegazione scritta; consulta [Rivedi le negazioni](https://code.claude.com/docs/it/auto-mode-config.md#review-denials)597> 4. Se il classificatore blocca, Claude riceve il motivo. Nella maggior parte delle sessioni il motivo indica la regola a cui il classificatore ha fatto corrispondere l'azione, come `[Data Exfiltration]`, anziché fornire una spiegazione scritta; consulta [Rivedi le negazioni](https://code.claude.com/docs/it/auto-mode-config.md#review-denials)

597>598>

598> Anche un [mod](https://code.claude.com/docs/it/plugins/mods/overview.md) che installi e che gestisce `tool.check` può approvare un'azione. Per i casi in cui la sua approvazione non supera le tue regole e i tuoi hook, vedi [Estendi i permessi con gli hook](https://code.claude.com/docs/it/permissions.md#precedence-among-rules-hooks-and-mods).599> Anche un [mod](https://code.claude.com/docs/it/plugins/mods/overview.md) che installi e che gestisce `tool.check` può approvare un'azione. Per i casi in cui la sua approvazione non supera le tue regole e i tuoi hook, vedi [Estendi i permessi con gli hook](https://code.claude.com/docs/it/permissions.md#precedence-among-rules-hooks-and-mods).

permissions.md +1 −1

Details

784* Al di fuori di un repository, Claude Code associa il trust alla directory da cui lo hai avviato, e il trust copre qualsiasi subdirectory di quella directory a parte un repository git annidato al suo interno, come un clone. Ogni subdirectory coperta conta quindi come una cartella della cui cartella genitore ti sei fidato.784* Al di fuori di un repository, Claude Code associa il trust alla directory da cui lo hai avviato, e il trust copre qualsiasi subdirectory di quella directory a parte un repository git annidato al suo interno, come un clone. Ogni subdirectory coperta conta quindi come una cartella della cui cartella genitore ti sei fidato.

785* Quando avvii dalla tua directory home, Claude Code mantiene il trust solo per la sessione corrente e non lo scrive su disco; consulta la nota sulle [misure di sicurezza aggiuntive](https://code.claude.com/docs/it/security.md#additional-safeguards).785* Quando avvii dalla tua directory home, Claude Code mantiene il trust solo per la sessione corrente e non lo scrive su disco; consulta la nota sulle [misure di sicurezza aggiuntive](https://code.claude.com/docs/it/security.md#additional-safeguards).

786 786 

787Claude Code mostra la finestra di dialogo di trust solo nelle sessioni interattive. Un'esecuzione `claude -p` o una sessione SDK non la mostra mai, e fidarsi di una cartella genitore non conta per queste regole, quindi [Cosa viene eseguito prima che ti fidi di una cartella](#what-runs-before-you-trust-a-folder) indica quale contenuto del repository Claude Code utilizza comunque in ognuna di quelle due situazioni.787L'estensione VS Code chiede lo stesso trust, in una finestra di dialogo intitolata `Trust this folder in Claude Code?`, prima di avviare una sessione. Claude Code mostra la finestra di dialogo di trust nelle sessioni interattive del terminale, ma non nelle sessioni `claude -p` o SDK. Fidarsi di una cartella genitore non conta per queste regole. [Cosa viene eseguito prima che ti fidi di una cartella](#what-runs-before-you-trust-a-folder) indica quale contenuto del repository Claude Code utilizza comunque in ciascun caso.

788 788 

789Prima di avviare o riavviare una [sessione in background](https://code.claude.com/docs/it/agent-view.md), Claude Code controlla anche il trust del workspace per la directory in cui viene eseguita la sessione. Se esegui `claude --bg` da un terminale in una directory di cui non ti sei fidato, la finestra di dialogo di trust appare prima e la sessione si avvia una volta che la accetti. Dove nessuna finestra di dialogo può apparire, come in uno script, il comando termina invece con un errore [`Workspace not trusted`](https://code.claude.com/docs/it/errors#workspace-not-trusted-when-dispatching-a-background-session).789Prima di avviare o riavviare una [sessione in background](https://code.claude.com/docs/it/agent-view.md), Claude Code controlla anche il trust del workspace per la directory in cui viene eseguita la sessione. Se esegui `claude --bg` da un terminale in una directory di cui non ti sei fidato, la finestra di dialogo di trust appare prima e la sessione si avvia una volta che la accetti. Dove nessuna finestra di dialogo può apparire, come in uno script, il comando termina invece con un errore [`Workspace not trusted`](https://code.claude.com/docs/it/errors#workspace-not-trusted-when-dispatching-a-background-session).

790 790 

Details

4 4 

5# Aggiungi componenti a un plugin5# Aggiungi componenti a un plugin

6 6 

7> Aggiungi skills, hooks, server MCP e ogni altro tipo di componente a un plugin Claude Code, con un esempio che convalida per ciascuno.7> Aggiungi skill, hook, server MCP e altri tipi di componenti a un plugin Claude Code, con un esempio che supera la convalida per ciascuno.

8 8 

9Un plugin Claude Code è costruito da componenti, come skills, agenti, hooks e server MCP. Ogni componente ha una cartella predefinita nel plugin, una chiave manifest opzionale in `.claude-plugin/plugin.json` che sostituisce o aggiunge a quella cartella, e un nome che l'utente vede. Per la tabella dei campi completa di ogni chiave, vedere il [riferimento manifest](https://code.claude.com/docs/it/plugins/manifest-reference.md#fields).9Un plugin Claude Code è costruito da componenti, come skills, agenti, hooks e server MCP. Ogni componente ha una cartella predefinita nel plugin, una chiave manifest opzionale in `.claude-plugin/plugin.json` che sostituisce o aggiunge a quella cartella, e un nome che l'utente vede. Per la tabella dei campi completa di ogni chiave, vedere il [riferimento manifest](https://code.claude.com/docs/it/plugins/manifest-reference.md#fields).

10 10 


22 22 

23## Esplora la directory dei plugin23## Esplora la directory dei plugin

24 24 

25L'explorer mostra un plugin di esempio, `my-plugin`, che ha uno di ogni tipo di componente nella sua posizione predefinita:25L'explorer mostra un plugin di esempio, `my-plugin`, che ha questi componenti nelle loro posizioni predefinite:

26 26 

27* Una skill di revisione e un comando `about`27* Una skill di revisione e un comando `about`

28* Un subagent di security-review28* Un subagent di security-review


31* Uno stile di output e un tema di colore31* Uno stile di output e un tema di colore

32* Un workflow route-audit32* Un workflow route-audit

33* Un eseguibile `hello-plugin`33* Un eseguibile `hello-plugin`

34* Impostazioni predefinite

35* Un server MCP locale e un language server Go34* Un server MCP locale e un language server Go

36 35 

37Ogni file è l'esempio valido più piccolo del suo formato, presente per mostrare la struttura piuttosto che per essere utile: una skill o un agent reale contiene istruzioni complete e spesso file di supporto, e un hook o monitor reale svolge un lavoro reale. Le sezioni dopo l'explorer utilizzano gli stessi file come esempi e collegano a versioni più complete. Seleziona un file o una cartella per leggere a cosa serve, vedere cosa va dentro e trovare la sezione che la copre.36Ogni file è l'esempio valido più piccolo del suo formato, presente per mostrare la struttura piuttosto che per essere utile: una skill o un agent reale contiene istruzioni complete e spesso file di supporto, e un hook o monitor reale svolge un lavoro reale. Le sezioni dopo l'explorer utilizzano gli stessi file come esempi e collegano a versioni più complete. Seleziona un file o una cartella per leggere a cosa serve, vedere cosa va dentro e trovare la sezione che la copre.

38 37 

39What goes in a plugin38What goes in a plugin

40 39 

41This example plugin, `my-plugin`, has one of every kind of component, each in its default location. Select a file or folder to read what it’s for and see what goes in it.40This example plugin, `my-plugin`, has the components listed here, each in its default location. Select a file or folder to read what it’s for and see what goes in it.

42 41 

43Plugin directory42Plugin directory

44 43 


178npx prettier --write .177npx prettier --write .

179```178```

180 179 

181Un `settings.json` alla radice del plugin contiene [impostazioni](https://code.claude.com/docs/it/settings-reference.md) che si applicano mentre il plugin è abilitato, quindi un plugin può cambiare il comportamento della sessione e non solo aggiungere componenti. Solo due chiavi hanno effetto da un plugin, [`agent`](https://code.claude.com/docs/it/settings-reference#agent) e [`subagentStatusLine`](https://code.claude.com/docs/it/settings-reference#subagentstatusline); ogni altra chiave viene scartata. Vedi [Impostazioni predefinite](#default-settings).

182 

183Questo imposta `agent`, che esegue il thread principale della sessione come l'agent `security-reviewer` del plugin, quindi il system prompt di quell'agent, le restrizioni degli strumenti e il modello si applicano all'intera sessione:

184 

185```json theme={null}

186{

187 "agent": "security-reviewer"

188}

189```

190 

191Un [server MCP](https://code.claude.com/docs/it/mcp.md) fornisce a Claude strumenti da un sistema esterno. Dichiaralo in `.mcp.json` alla radice del plugin. Questo avvia un server locale da uno script all'interno del plugin e appare in `/mcp` come `plugin:my-plugin:db`:180Un [server MCP](https://code.claude.com/docs/it/mcp.md) fornisce a Claude strumenti da un sistema esterno. Dichiaralo in `.mcp.json` alla radice del plugin. Questo avvia un server locale da uno script all'interno del plugin e appare in `/mcp` come `plugin:my-plugin:db`:

192 181 

193```json theme={null}182```json theme={null}


484 473 

485claude.ai e Cowork non installano un plugin che ha una directory `bin/` di livello superiore, incluso uno che [distribuisci attraverso le impostazioni dell'organizzazione claude.ai](https://claude.com/docs/plugins/org-sync#keep-executables-out-of-the-top-level-bin-directory).474claude.ai e Cowork non installano un plugin che ha una directory `bin/` di livello superiore, incluso uno che [distribuisci attraverso le impostazioni dell'organizzazione claude.ai](https://claude.com/docs/plugins/org-sync#keep-executables-out-of-the-top-level-bin-directory).

486 475 

487### Impostazioni predefinite

488 

489Per impostare i valori predefiniti che si applicano mentre il plugin è abilitato, aggiungi un `settings.json` alla radice del plugin, o metti lo stesso oggetto inline nella chiave manifest `settings`. Due chiavi hanno effetto, `agent` e `subagentStatusLine`, e ogni altra chiave viene eliminata.

490 

491Imposta `agent` per eseguire uno dei propri agenti del plugin come thread principale:

492 

493```json settings.json theme={null}

494{

495 "agent": "security-reviewer"

496}

497```

498 

499Carica il plugin e avvia una sessione. Claude quindi risponde nella conversazione principale con il prompt di sistema e il modello dell'agente `security-reviewer`.

500 

501Per tutto quello che la chiave controlla, vedere l'[impostazione `agent`](https://code.claude.com/docs/it/settings-reference#agent).

502 

503Quando la stessa chiave è impostata in più di un posto, queste regole decidono quale valore si applica:

504 

505* **File su manifest**: quando entrambi esistono e `settings.json` imposta almeno una chiave supportata, `settings.json` si applica e il `settings` del manifest viene ignorato

506* **Impostazioni utente su valori predefiniti del plugin**: tra le fonti di impostazioni, i valori predefiniti del plugin sono il livello più basso, quindi un `agent` proprio dell'utente in `~/.claude/settings.json` sostituisce il tuo

507* **Due plugin impostano la stessa chiave**: il valore dal plugin caricato per ultimo si applica, e `claude --debug` registra `overrides setting`

508 

509Per la forma `subagentStatusLine`, vedere [linee di stato del subagente](https://code.claude.com/docs/it/statusline.md#subagent-status-lines).

510 

511### Temi e stili di output476### Temi e stili di output

512 477 

513Un plugin può includere temi di colore e stili di output. Entrambi appaiono negli stessi picker dei propri dell'utente. Per uno qualsiasi, impostare la chiave manifest sostituisce la scansione della cartella.478Un plugin può includere temi di colore e stili di output. Entrambi appaiono negli stessi picker dei propri dell'utente. Per uno qualsiasi, impostare la chiave manifest sostituisce la scansione della cartella.

Details

72* **`version`**: opzionale. Impostarlo mantiene gli utenti su quella versione finché non la cambi; [Rilasciare una nuova versione](https://code.claude.com/docs/it/plugins/host-marketplace.md#release-a-new-version) dice quando impostarla o ometterla.72* **`version`**: opzionale. Impostarlo mantiene gli utenti su quella versione finché non la cambi; [Rilasciare una nuova versione](https://code.claude.com/docs/it/plugins/host-marketplace.md#release-a-new-version) dice quando impostarla o ometterla.

73* **`author`**: a chi attribuire il merito. `name` è obbligatorio al suo interno; `email` e `url` sono opzionali.73* **`author`**: a chi attribuire il merito. `name` è obbligatorio al suo interno; `email` e `url` sono opzionali.

74 74 

75Ogni altro campo è nel [riferimento del manifest](https://code.claude.com/docs/it/plugins/manifest-reference.md#fields).75Gli altri campi sono nel [riferimento del manifest](https://code.claude.com/docs/it/plugins/manifest-reference.md#fields).

76 76 

77Solo `plugin.json` va dentro `.claude-plugin/`. La skill che aggiungi dopo va direttamente sotto `my-first-plugin/`, accanto a quella cartella.77Solo `plugin.json` va dentro `.claude-plugin/`. La skill che aggiungi dopo va direttamente sotto `my-first-plugin/`, accanto a quella cartella.

78 78 


344 "PostToolUse": [344 "PostToolUse": [

345 {345 {

346 "matcher": "Write|Edit",346 "matcher": "Write|Edit",

347 "hooks": [{ "type": "command", "command": "jq -r '.tool_input.file_path' | xargs npm run lint:fix" }]347 "hooks": [{ "type": "command", "command": "f=$(jq -r '.tool_input.file_path') && npm run lint:fix -- \"$f\"" }]

348 }348 }

349 ]349 ]

350 }350 }

Details

4 4 

5# Riferimento del manifest del plugin5# Riferimento del manifest del plugin

6 6 

7> Riferimento completo per plugin.json: ogni campo con il suo tipo e valore predefinito, forme di percorso accettate, e gli schemi userConfig e variabili di ambiente.7> Riferimento completo per plugin.json: campi con tipi e valori predefiniti, forme di percorso accettate, e gli schemi userConfig e delle variabili d'ambiente.

8 8 

9Un manifest del plugin è il file `plugin.json` nella directory `.claude-plugin/` di un plugin. Contiene i metadati del plugin e i valori [`userConfig`](#user-configuration) che Claude Code richiede all'utente. Dichiara inoltre qualsiasi componente che definite inline o mantenete al di fuori della sua [posizione predefinita](#standard-layout).9Un manifest del plugin è il file `plugin.json` nella directory `.claude-plugin/` di un plugin. Contiene i metadati del plugin e i valori [`userConfig`](#user-configuration) che Claude Code richiede all'utente. Dichiara inoltre qualsiasi componente che definite inline o mantenete al di fuori della sua [posizione predefinita](#standard-layout).

10 10 


117 117 

118## Fields118## Fields

119 119 

120La tabella elenca le chiavi di primo livello in `plugin.json`. `name` è l'unica chiave obbligatoria. Dove un nome di campo è un link, la sezione collegata ha le sue regole complete.120La tabella elenca le chiavi di primo livello in `plugin.json`. `name` è l'unica chiave obbligatoria. Dove il nome di un campo è un link, la sezione collegata contiene le relative regole complete.

121 121 

122Per le chiavi di componente come `commands` e `hooks`, [Component path forms](#component-path-forms) mostra ogni forma accettata con un esempio, e ogni percorso segue le [path rules](#path-rules) per il prefisso `./`, le estensioni e il contenimento.122Per le chiavi di componente come `commands` e `hooks`, [Component path forms](#component-path-forms) mostra ogni forma accettata con un esempio, e ogni percorso segue le [path rules](#path-rules) per il prefisso `./`, le estensioni e il contenimento.

123 123 


141| [`termsOfServiceUrl`](#directory-listing-fields) | String | Link ai termini di servizio per la scheda del plugin nella directory di Anthropic. Claude Code non lo legge |141| [`termsOfServiceUrl`](#directory-listing-fields) | String | Link ai termini di servizio per la scheda del plugin nella directory di Anthropic. Claude Code non lo legge |

142| [`defaultEnabled`](#defaultenabled) | Boolean | Se il plugin inizia abilitato quando l'utente non lo ha impostato. Predefinito a `true` |142| [`defaultEnabled`](#defaultenabled) | Boolean | Se il plugin inizia abilitato quando l'utente non lo ha impostato. Predefinito a `true` |

143| [`dependencies`](#dependencies) | Array of strings or objects | Plugin che devono essere abilitati affinché questo funzioni |143| [`dependencies`](#dependencies) | Array of strings or objects | Plugin che devono essere abilitati affinché questo funzioni |

144| [`settings`](#settings) | Object | Impostazioni che Claude Code applica mentre il plugin è abilitato. Solo `agent` e `subagentStatusLine` hanno effetto |

145| [`userConfig`](#user-configuration) | Object | Valori che Claude Code richiede all'utente quando il plugin è abilitato |144| [`userConfig`](#user-configuration) | Object | Valori che Claude Code richiede all'utente quando il plugin è abilitato |

146| `types` | Path | Un file `.d.ts` che dichiara i valori `$.state` e i sostantivi `$` di un [mod](https://code.claude.com/docs/it/plugins/mods/reference.md#files) |145| `types` | Path | Un file `.d.ts` che dichiara i valori `$.state` e i sostantivi `$` di un [mod](https://code.claude.com/docs/it/plugins/mods/reference.md#files) |

147| [`channels`](#channels) | Array of objects | Canali di messaggi che il plugin fornisce, ciascuno associato a uno dei suoi server MCP |146| [`channels`](#channels) | Array of objects | Canali di messaggi che il plugin fornisce, ciascuno associato a uno dei suoi server MCP |


211 210 

212Plugin che devono essere abilitati affinché questo funzioni. Ogni voce è `"name"`, `"name@marketplace"`, o `{ "name": "...", "marketplace": "...", "version": "..." }`. I nomi nudi si risolvono rispetto al proprio marketplace del plugin. Vedere [dependency constraints](https://code.claude.com/docs/it/plugins/dependencies.md).211Plugin che devono essere abilitati affinché questo funzioni. Ogni voce è `"name"`, `"name@marketplace"`, o `{ "name": "...", "marketplace": "...", "version": "..." }`. I nomi nudi si risolvono rispetto al proprio marketplace del plugin. Vedere [dependency constraints](https://code.claude.com/docs/it/plugins/dependencies.md).

213 212 

214### `settings`

215 

216Impostazioni che Claude Code applica mentre il plugin è abilitato. Solo `agent` e `subagentStatusLine` hanno effetto; altre chiavi vengono eliminate al caricamento. Un `settings.json` alla radice del plugin ha la precedenza su questa chiave. Vedere [Default settings](https://code.claude.com/docs/it/plugins/components.md#default-settings).

217 

218## Component path forms213## Component path forms

219 214 

220Ogni chiave di componente accetta un percorso relativo alla radice del plugin. `hooks`, `mcpServers`, `lspServers` e `experimental.monitors` accettano anche configurazione inline, `commands` accetta anche una mappa di oggetti, e `mcpServers` accetta anche percorsi di bundle MCP e URL. Gli esempi che seguono mostrano ogni forma accettata una volta. Per cosa fa ogni componente al runtime, vedere [Plugin components](https://code.claude.com/docs/it/plugins/components.md).215Ogni chiave di componente accetta un percorso relativo alla radice del plugin. `hooks`, `mcpServers`, `lspServers` e `experimental.monitors` accettano anche configurazione inline, `commands` accetta anche una mappa di oggetti, e `mcpServers` accetta anche percorsi di bundle MCP e URL. Gli esempi che seguono mostrano ogni forma accettata una volta. Per cosa fa ogni componente al runtime, vedere [Plugin components](https://code.claude.com/docs/it/plugins/components.md).


626| Themes | `themes/` | File tema JSON |621| Themes | `themes/` | File tema JSON |

627| Monitors | `monitors/monitors.json` | L'array monitors |622| Monitors | `monitors/monitors.json` | L'array monitors |

628| Executables | `bin/` | I file qui sono sul `PATH` dello strumento Bash mentre il plugin è abilitato, quindi Claude li esegue come comandi nudi. claude.ai e Cowork non installano un plugin che ha questa directory, incluso uno che [distribuite attraverso le impostazioni dell'organizzazione claude.ai](https://claude.com/docs/plugins/org-sync#keep-executables-out-of-the-top-level-bin-directory) |623| Executables | `bin/` | I file qui sono sul `PATH` dello strumento Bash mentre il plugin è abilitato, quindi Claude li esegue come comandi nudi. claude.ai e Cowork non installano un plugin che ha questa directory, incluso uno che [distribuite attraverso le impostazioni dell'organizzazione claude.ai](https://claude.com/docs/plugins/org-sync#keep-executables-out-of-the-top-level-bin-directory) |

629| Settings | `settings.json` | Impostazioni predefinite `agent` e `subagentStatusLine` applicate mentre il plugin è abilitato |

630 624 

631Un plugin che usa ogni posizione predefinita, più una cartella `scripts/` che i suoi hook chiamano, è disposto così:625Un plugin che usa le posizioni predefinite, più una cartella `scripts/` che i suoi hook chiamano, è disposto così:

632 626 

633```text theme={null}627```text theme={null}

634deploy-tools/628deploy-tools/


655│ └── deploy-tool649│ └── deploy-tool

656├── scripts/650├── scripts/

657│ └── format.sh651│ └── format.sh

658├── settings.json

659├── .mcp.json652├── .mcp.json

660└── .lsp.json653└── .lsp.json

661```654```

Details

61 * La sessione viene eseguita con le [credenziali di `/login`](https://code.claude.com/docs/it/authentication#authentication-precedence) di un piano Team o Enterprise61 * La sessione viene eseguita con le [credenziali di `/login`](https://code.claude.com/docs/it/authentication#authentication-precedence) di un piano Team o Enterprise

62 62 

63 Un utente che si autentica con una chiave API, oppure tramite Amazon Bedrock, Agent Platform di Google Cloud o Microsoft Foundry, ottiene la protezione solo su una macchina che ha impostazioni gestite o `managed-mcp.json`. Nemmeno una sessione eseguita con un [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/it/authentication#generate-a-long-lived-token) di lunga durata conta come quell'accesso, anche quando sulla macchina è memorizzato un accesso Team o Enterprise.63 Un utente che si autentica con una chiave API, oppure tramite Amazon Bedrock, Agent Platform di Google Cloud o Microsoft Foundry, ottiene la protezione solo su una macchina che ha impostazioni gestite o `managed-mcp.json`. Nemmeno una sessione eseguita con un [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/it/authentication#generate-a-long-lived-token) di lunga durata conta come quell'accesso, anche quando sulla macchina è memorizzato un accesso Team o Enterprise.

64* **La protezione tutela ciò che gestisci.** Il mod di un utente non può modificare ciò che i tuoi hook gestiti ricevono o decidono, il prompt di sistema, il tuo `CLAUDE.md` gestito e le altre istruzioni gestite, ciò che qualsiasi mod legge come impostazioni, né gli strumenti e le descrizioni dei tuoi server MCP gestiti.64* **La protezione tutela ciò che gestisci.** Il mod di un utente non può modificare ciò che i tuoi hook gestiti ricevono o decidono, il prompt di sistema, né il tuo `CLAUDE.md` gestito e le altre istruzioni gestite. Non può nemmeno modificare ciò che qualsiasi mod legge come impostazioni, né gli strumenti e le descrizioni dei tuoi server MCP gestiti una volta che si sono connessi.

65* **Al di fuori di ciò che gestisci, il mod di un utente agisce come quell'utente.** Il mod mantiene i permessi di quell'utente: può comunque leggere e scrivere file, avviare processi ed effettuare richieste di rete. Può anche riscrivere chiamate agli strumenti e prompt, negare una chiamata a uno strumento e disegnare nell'interfaccia.65* **Dalla v2.1.323 in poi, il mod di un utente può impedire a un server MCP gestito di connettersi.** Nella sessione di quell'utente, `/mcp` elenca il server come bloccato da quel mod. Per evitarlo, [impedisci il caricamento dei mod installati dagli utenti](#stop-user-installed-mods-from-loading).

66* **Al di fuori di ciò che gestisci, il mod di un utente agisce come quell'utente.** Il mod mantiene i permessi di quell'utente: può comunque leggere e scrivere file, avviare processi ed effettuare richieste di rete. Può anche riscrivere chiamate agli strumenti e prompt, negare una chiamata a uno strumento, aggiungere o rimuovere strumenti e disegnare nell'interfaccia.

66* **Le regole di permesso e gli hook `PreToolUse` hanno la precedenza sul mod di un utente.** Con la protezione caricata, per impostazione predefinita il mod di un utente non può approvare una chiamata che una regola `deny` rifiuta o per cui una regola `ask` chiede conferma, qualunque sia il file di impostazioni che contiene la regola. Il mod non può nemmeno approvare una chiamata che un qualsiasi hook `PreToolUse` ha bloccato.67* **Le regole di permesso e gli hook `PreToolUse` hanno la precedenza sul mod di un utente.** Con la protezione caricata, per impostazione predefinita il mod di un utente non può approvare una chiamata che una regola `deny` rifiuta o per cui una regola `ask` chiede conferma, qualunque sia il file di impostazioni che contiene la regola. Il mod non può nemmeno approvare una chiamata che un qualsiasi hook `PreToolUse` ha bloccato.

67 68 

68 Le regole di permesso e gli hook `PreToolUse` si applicano alle chiamate agli strumenti di Claude, non alle [chiamate `$.fs` e `$.process`](https://code.claude.com/docs/it/plugins/mods/api#reach-files-processes-and-the-network) di un mod. Con `Read(.env)` negato, un mod può comunque leggere quel file con `$.fs.read` o avviare un programma che lo fa. Per limitare le chiamate `$.fs` e `$.process` del mod stesso, [impedisci il caricamento del mod](#stop-user-installed-mods-from-loading) oppure gestiscile in un [mod di criteri](#enforce-a-policy-with-a-mod-of-your-own).69 Le regole di permesso e gli hook `PreToolUse` si applicano alle chiamate agli strumenti di Claude, non alle [chiamate `$.fs` e `$.process`](https://code.claude.com/docs/it/plugins/mods/api#reach-files-processes-and-the-network) di un mod. Con `Read(.env)` negato, un mod può comunque leggere quel file con `$.fs.read` o avviare un programma che lo fa. Per limitare le chiamate `$.fs` e `$.process` del mod stesso, [impedisci il caricamento del mod](#stop-user-installed-mods-from-loading) oppure gestiscile in un [mod di criteri](#enforce-a-policy-with-a-mod-of-your-own).


159Le righe `hooks:` e `calls:` dell'output descrivono il codice del mod:160Le righe `hooks:` e `calls:` dell'output descrivono il codice del mod:

160 161 

161```text theme={null}162```text theme={null}

162 ❯ ./register.js hooks: session.start, tool.call, ui.render{component=Pane}163 ❯ ./register.js hooks: session.start, tool.call, ui.render{component=Pane} (default matcher key: plugin)

163 ❯ ./register.js calls: $.fs.read, $.http.fetch, $.store.set, $.ui.open164 ❯ ./register.js calls: $.fs.read, $.http.fetch, $.store.set, $.ui.open

164```165```

165 166 

166La riga `hooks:` elenca gli eventi che il mod riceve. La riga `calls:` elenca i metodi dell'API dei mod che il suo codice chiama. L'[API dei mod](https://code.claude.com/docs/it/plugins/mods/api.md), scritta `$` nel codice di un mod, è il modo in cui un mod accede a file, processi e rete. Claude Code si rifiuta di caricare un mod che usa l'API dei mod in un modo che questo comando non riesce a leggere.167* **`hooks:`**: gli eventi che il mod riceve. Una nota `default matcher key: plugin` indica che l'hook che la precede [salta i controlli e i disegni degli altri mod](https://code.claude.com/docs/it/plugins/mods/events.md#hook-other-mods-drawings-and-controls).

168* **`calls:`**: i metodi dell'API dei mod che il suo codice chiama

167 169 

168Cerca questi elementi nella riga `calls:`:170L'[API dei mod](https://code.claude.com/docs/it/plugins/mods/api.md), scritta `$` nel codice di un mod, è il modo in cui un mod accede a file, processi e rete. Claude Code si rifiuta di caricare un mod che usa l'API dei mod in un modo che questo comando non riesce a leggere.

171 

172Non approvare un mod per cui questo comando non riesce, perché alcuni errori non ne impediscono il caricamento. Esegui il comando su Claude Code v2.1.323 o successivo, dove un elenco lungo prosegue su più righe con la stessa etichetta, e leggi ogni riga `hooks:` e `calls:`. Nelle righe `calls:`, cerca questi elementi:

169 173 

170| Chiamata | Cosa significa |174| Chiamata | Cosa significa |

171| :- | :- |175| :- | :- |


174| `$.http.fetch` | Effettua richieste di rete |178| `$.http.fetch` | Effettua richieste di rete |

175| `$.env.get`, `$.settings.read` | Legge variabili d'ambiente e impostazioni, che possono contenere chiavi API. Una riga `env reads:` nell'output indica il nome di ciascuna variabile. |179| `$.env.get`, `$.settings.read` | Legge variabili d'ambiente e impostazioni, che possono contenere chiavi API. Una riga `env reads:` nell'output indica il nome di ciascuna variabile. |

176| `$.env.set` | Imposta una variabile d'ambiente per Claude Code e per ogni comando e server MCP che avvia successivamente, il che può cambiare ciò che quei programmi eseguono. Una riga `env writes:` indica il nome di ciascuna variabile. |180| `$.env.set` | Imposta una variabile d'ambiente per Claude Code e per ogni comando e server MCP che avvia successivamente, il che può cambiare ciò che quei programmi eseguono. Una riga `env writes:` indica il nome di ciascuna variabile. |

177| `$.mcp.call` | Chiama uno strumento su un server MCP connesso, secondo le regole di permesso della sessione |181| `$.mcp.call` | Chiama uno strumento su un server MCP connesso, senza alcuna richiesta di permesso. Claude Code rifiuta la chiamata in presenza di una regola deny o di una regola ask gestita. Rifiuta anche una chiamata a uno strumento contrassegnato come [`requiresUserInteraction`](https://code.claude.com/docs/it/mcp#require-approval-for-a-specific-tool), o a uno che la tua organizzazione [ha impostato su `ask`](https://code.claude.com/docs/it/mcp#organization-controls-on-connector-tools) dove tale impostazione raggiunge Claude Code. |

178| `$.model.complete` | Usa il piano o la chiave API dell'utente per le chiamate al modello |182| `$.model.complete` | Usa il piano o la chiave API dell'utente per le chiamate al modello |

179| `$.prompt.submit` | Invia un prompt e può inviarlo come se fossero parole dell'utente stesso |183| `$.prompt.submit` | Invia un prompt e può inviarlo come se fossero parole dell'utente stesso |

180| `$.session.send` | Invia un messaggio che viene letto dal Claude di un'altra sessione, di un subagent o di un [compagno di team](https://code.claude.com/docs/it/agent-teams.md) |184| `$.session.send` | Invia un messaggio che viene letto dal Claude di un'altra sessione, di un subagent o di un [compagno di team](https://code.claude.com/docs/it/agent-teams.md) |


316 320 

317Claude Code genera un evento ogni volta che sta per compiere un'azione, come eseguire uno strumento, e lo passa a ciascun mod a turno. Un mod che viene considerato tuo [viene eseguito prima dei mod degli utenti](https://code.claude.com/docs/it/plugins/mods/events.md#the-order-mods-run-in) anche se non lo elenchi da nessuna parte. Per impostarne la posizione, elenca il suo id in una delle due impostazioni. L'id è il nome del plugin, `@` e il nome del marketplace, ad esempio `acme-guard@acme-tools`.321Claude Code genera un evento ogni volta che sta per compiere un'azione, come eseguire uno strumento, e lo passa a ciascun mod a turno. Un mod che viene considerato tuo [viene eseguito prima dei mod degli utenti](https://code.claude.com/docs/it/plugins/mods/events.md#the-order-mods-run-in) anche se non lo elenchi da nessuna parte. Per impostarne la posizione, elenca il suo id in una delle due impostazioni. L'id è il nome del plugin, `@` e il nome del marketplace, ad esempio `acme-guard@acme-tools`.

318 322 

319* **`prependPlugins`**: il tuo mod vede ogni evento prima di qualsiasi mod degli utenti e ogni risultato dopo. Può modificare l'evento, rifiutarlo o saltare i mod degli utenti.323* **`prependPlugins`**: il tuo mod vede un evento prima di qualsiasi mod degli utenti e il risultato dell'evento dopo di essi. Può modificare l'evento, rifiutarlo o saltare i mod degli utenti. Dalla v2.1.323 in poi, verifica che i tuoi hook raggiungano ancora [i controlli e i disegni degli altri mod](https://code.claude.com/docs/it/plugins/mods/events.md#hook-other-mods-drawings-and-controls).

320* **`appendPlugins`**: il tuo mod viene eseguito dopo ogni mod degli utenti, quindi vede solo gli eventi che quei mod trasmettono, nella forma in cui li trasmettono324* **`appendPlugins`**: il tuo mod viene eseguito dopo ogni mod degli utenti, quindi vede solo gli eventi che quei mod trasmettono, nella forma in cui li trasmettono

321 325 

322Questo esempio dichiara il marketplace `acme-tools` in `/opt/acme/claude-plugins`, abilita `acme-guard` da esso ed esegue quel mod per primo, seguito dalla protezione integrata:326Questo esempio dichiara il marketplace `acme-tools` in `/opt/acme/claude-plugins`, abilita `acme-guard` da esso ed esegue quel mod per primo, seguito dalla protezione integrata:


359 363 

360Ogni volta che un altro mod sta per essere caricato, il tuo mod riceve l'elenco che `claude plugin validate` stampa, in un evento denominato [`plugin.register`](https://code.claude.com/docs/it/plugins/mods/reference#other-mods). Un mod in `prependPlugins` può leggere quell'elenco e rifiutare il mod. Può anche [gestire qualsiasi chiamata all'API dei mod per nome](https://code.claude.com/docs/it/plugins/mods/api.md#reach-files-processes-and-the-network) per registrare o rifiutare quella chiamata per ogni altro mod. Il nome è il metodo senza `$.`, quindi un hook su `fs.write` vede ogni chiamata `$.fs.write`.364Ogni volta che un altro mod sta per essere caricato, il tuo mod riceve l'elenco che `claude plugin validate` stampa, in un evento denominato [`plugin.register`](https://code.claude.com/docs/it/plugins/mods/reference#other-mods). Un mod in `prependPlugins` può leggere quell'elenco e rifiutare il mod. Può anche [gestire qualsiasi chiamata all'API dei mod per nome](https://code.claude.com/docs/it/plugins/mods/api.md#reach-files-processes-and-the-network) per registrare o rifiutare quella chiamata per ogni altro mod. Il nome è il metodo senza `$.`, quindi un hook su `fs.write` vede ogni chiamata `$.fs.write`.

361 365 

366> [!NOTE]

367>

368> Dalla v2.1.323 in poi, un hook `ui.focus` richiede un matcher più ampio per ricevere le chiamate `$.ui.focus` degli altri mod. Consulta [Aggancia i disegni e i controlli degli altri mod](https://code.claude.com/docs/it/plugins/mods/events.md#hook-other-mods-drawings-and-controls).

369 

362Questo mod di criteri rifiuta qualsiasi mod di un utente il cui codice chiama `$.process.run` o `$.process.spawn`. Mantiene anche un log di audit, scrivendo nel log di debug ogni chiamata a uno strumento e ogni file scritto da un mod. Poiché viene eseguito per primo, il log registra ciò che è stato richiesto, prima che qualsiasi mod degli utenti lo modifichi. Salvalo come `acme-guard/hooks/register.js`:370Questo mod di criteri rifiuta qualsiasi mod di un utente il cui codice chiama `$.process.run` o `$.process.spawn`. Mantiene anche un log di audit, scrivendo nel log di debug ogni chiamata a uno strumento e ogni file scritto da un mod. Poiché viene eseguito per primo, il log registra ciò che è stato richiesto, prima che qualsiasi mod degli utenti lo modifichi. Salvalo come `acme-guard/hooks/register.js`:

363 371 

364```javascript acme-guard/hooks/register.js theme={null}372```javascript acme-guard/hooks/register.js theme={null}


403* **`e.tier`**: dove verrebbe eseguito il mod, uno tra `prepend`, `user`, `append` o `builtin`. Ogni mod installato da una persona è `user`.411* **`e.tier`**: dove verrebbe eseguito il mod, uno tra `prepend`, `user`, `append` o `builtin`. Ogni mod installato da una persona è `user`.

404* **`e.uses.calls`**: i metodi dell'API dei mod che il mod chiama, ciascuno scritto come `namespace.method`, ad esempio `process.run`, senza il `$.` che `claude plugin validate` stampa412* **`e.uses.calls`**: i metodi dell'API dei mod che il mod chiama, ciascuno scritto come `namespace.method`, ad esempio `process.run`, senza il `$.` che `claude plugin validate` stampa

405 413 

406Quando un utente installa un mod che chiama `$.process.run`, il mod non viene caricato e il suo log di debug contiene una riga che termina con `refused by acme-guard:` seguita dal tuo motivo. Il rifiuto compare anche nella trascrizione in una [sessione che ricarica a caldo una directory di plugin](https://code.claude.com/docs/it/plugins/mods/troubleshoot.md#find-out-why-a-mod-does-nothing). Per bloccare una chiamata senza rifiutare l'intero mod, restituisci `{ deny: 'your reason' }` da un hook sul nome di quella chiamata.414Quando un utente installa un mod che chiama `$.process.run`, il mod non viene caricato e il suo log di debug contiene una riga che termina con `refused by acme-guard:` seguita dal tuo motivo. Il rifiuto compare anche nella trascrizione in una [sessione che ricarica a caldo una directory di plugin](https://code.claude.com/docs/it/plugins/mods/troubleshoot.md#find-out-why-a-mod-does-nothing).

415 

416Per bloccare una chiamata senza rifiutare l'intero mod, restituisci `{ deny: 'your reason' }` da un hook sul nome di quella chiamata, dopo aver [verificato chi ha effettuato la chiamata](https://code.claude.com/docs/it/plugins/mods/reference.md#mods-api-calls).

407 417 

408Per inviare le righe di audit in un posto diverso dal log di debug, chiama `$.http.fetch` dagli stessi hook.418Per inviare le righe di audit in un posto diverso dal log di debug, chiama `$.http.fetch` dagli stessi hook.

409 419 

Details

21 21 

22Descrivi il mod che desideri in una sessione interattiva di Claude Code e Claude lo scrive. Claude lavora a partire da una [skill](https://code.claude.com/docs/it/skills.md) integrata chiamata `plugin-authoring`, che gli indica dove scrivere il mod, quali eventi e metodi ha la tua versione e come viene caricato il mod. Claude può caricare la skill quando chiedi un mod, oppure puoi caricarla tu stesso eseguendo `/plugin-authoring` nel prompt di Claude Code.22Descrivi il mod che desideri in una sessione interattiva di Claude Code e Claude lo scrive. Claude lavora a partire da una [skill](https://code.claude.com/docs/it/skills.md) integrata chiamata `plugin-authoring`, che gli indica dove scrivere il mod, quali eventi e metodi ha la tua versione e come viene caricato il mod. Claude può caricare la skill quando chiedi un mod, oppure puoi caricarla tu stesso eseguendo `/plugin-authoring` nel prompt di Claude Code.

23 23 

24Nelle [modalità di permesso](https://code.claude.com/docs/it/permission-modes.md) `auto` e `bypassPermissions`, il mod può essere eseguito al termine del turno. Altrimenti, viene eseguito una volta che lo approvi, tranne nelle [sessioni in cui un mod scritto da Claude non può essere caricato](#sessions-that-skip-the-approval).24Nelle [modalità di permesso](https://code.claude.com/docs/it/permission-modes.md) `auto` e `bypassPermissions`, Claude Code [può caricare il mod senza chiedertelo](#sessions-that-skip-the-approval). Per ricevere prima la domanda, avvia una nuova sessione in modalità `default` o `acceptEdits`, oppure [passa](https://code.claude.com/docs/it/permission-modes.md#switch-permission-modes) a una delle due modalità prima di chiedere il primo mod della sessione. In [alcune sessioni](#sessions-that-cant-load), il mod non può essere caricato.

25 25 

26**1. Descrivi il mod**26**1. Descrivi il mod**

27 27 


33 33 

34**2. Approva il mod**34**2. Approva il mod**

35 35 

36Quando Claude salva il primo file, Claude Code chiede se abilitare il ricaricamento a caldo per la sessione. Il ricaricamento a caldo esegue i mod che Claude scrive in questa sessione e recepisce ogni modifica successiva. Se non compare alcuna domanda, salta questo passaggio.36Quando Claude salva il primo file, Claude Code chiede se abilitare il ricaricamento a caldo per la sessione. Il ricaricamento a caldo esegue i mod che Claude scrive in questa sessione e recepisce ogni modifica successiva. Non vedi questa domanda in una sessione che [carica i nuovi mod senza chiedere](#sessions-that-skip-the-approval) o che [non può caricarli](#sessions-that-cant-load).

37 37 

38Scegli una di queste risposte:38Scegli una di queste risposte:

39 39 


57* **In una sessione che avvii tu**: nella tua shell, esegui `claude --plugin-dir ~/mods/git-branch`57* **In una sessione che avvii tu**: nella tua shell, esegui `claude --plugin-dir ~/mods/git-branch`

58* **Per altre persone**: [aggiungilo a un marketplace](#share-your-mod) in modo che possano installarlo58* **Per altre persone**: [aggiungilo a un marketplace](#share-your-mod) in modo che possano installarlo

59 59 

60### Sessioni che caricano un mod senza chiedere

61 

62Claude Code può abilitare il ricaricamento a caldo senza chiedere nelle modalità `auto` e `bypassPermissions`, e i mod vengono caricati al termine del turno.

63 

64Quando riprendi una sessione, in modo interattivo o con `claude -p`, i mod già presenti nella sua cartella dei mod [possono essere caricati](#sessions-that-cant-load) senza chiedere. Per impedire che un mod venga caricato quando riprendi la sessione, elimina la sua directory.

65 

60### Sessioni in cui un mod scritto da Claude non può essere caricato66### Sessioni in cui un mod scritto da Claude non può essere caricato

61 67 

62Un mod scritto da Claude viene caricato in un workspace attendibile in cui i mod possono essere eseguiti, dopo che lo hai approvato nelle modalità che chiedono conferma. In queste sessioni non viene caricato:68Un mod scritto da Claude non viene caricato nei seguenti casi, e Claude Code non chiede di caricarlo:

63 69 

64* **Nessuno è presente per approvare**: la sessione non può mostrarti una richiesta di conferma, come in un'esecuzione `claude -p` al di fuori delle modalità `auto` e `bypassPermissions`, o in [modalità `dontAsk`](https://code.claude.com/docs/it/permission-modes)70* **Nessuno è presente per approvare**: la sessione è in [modalità `dontAsk`](https://code.claude.com/docs/it/permission-modes), oppure è l'esecuzione `claude -p` che scrive il mod, in modalità `default` o `acceptEdits`, che non può mostrarti la domanda sul ricaricamento a caldo.

65* **Il workspace non è attendibile**: non hai accettato la richiesta di attendibilità per la directory71* **Una sessione interattiva in cui il workspace non è attendibile**: non hai accettato la richiesta di attendibilità per la directory

66* **I mod sono disabilitati**: hai avviato con `--safe-mode` o `--bare`, hai impostato `disableAllHooks`, oppure le [impostazioni gestite della tua organizzazione lo bloccano](https://code.claude.com/docs/it/plugins/mods/admin.md#choose-how-much-to-allow)72* **I mod sono disabilitati**: hai avviato con `--safe-mode` o `--bare`, hai impostato `disableAllHooks`, oppure le [impostazioni gestite della tua organizzazione lo bloccano](https://code.claude.com/docs/it/plugins/mods/admin.md#choose-how-much-to-allow)

67 73 

68## Scrivi un mod da solo74## Scrivi un mod da solo


292 298 

293Controlla nella riga `hooks:` gli eventi a cui il tuo modulo si aggancia, ciascuno con il suo filtro tra parentesi graffe, e nella riga `calls:` ogni metodo dell'API dei mod che chiama. Se il tuo modulo legge o imposta variabili d'ambiente, cerca anche le righe `env reads:` e `env writes:`, e `state reads:` e `state writes:` se usa [`$.state`](https://code.claude.com/docs/it/plugins/mods/interface#keep-state). Vedi inoltre una riga per ogni hook che può rifiutare un'azione, ad esempio `gating hook without .catch: tool.call`, che indica se quell'hook ha un [gestore `.catch`](https://code.claude.com/docs/it/plugins/mods/events#handle-a-hook-that-fails).299Controlla nella riga `hooks:` gli eventi a cui il tuo modulo si aggancia, ciascuno con il suo filtro tra parentesi graffe, e nella riga `calls:` ogni metodo dell'API dei mod che chiama. Se il tuo modulo legge o imposta variabili d'ambiente, cerca anche le righe `env reads:` e `env writes:`, e `state reads:` e `state writes:` se usa [`$.state`](https://code.claude.com/docs/it/plugins/mods/interface#keep-state). Vedi inoltre una riga per ogni hook che può rifiutare un'azione, ad esempio `gating hook without .catch: tool.call`, che indica se quell'hook ha un [gestore `.catch`](https://code.claude.com/docs/it/plugins/mods/events#handle-a-hook-that-fails).

294 300 

295Se un evento che intendevi gestire manca dalla prima riga, nemmeno Claude Code chiamerà quell'hook. La causa più comune è un nome di evento scritto in modo errato, che il comando segnala con un errore come `"tool.calls" is not an event`.301Se un evento che intendevi gestire manca dalle righe `hooks:`, nemmeno Claude Code chiamerà quell'hook. La causa più comune è un nome di evento scritto in modo errato, che il comando segnala con un errore come `"tool.calls" is not an event`.

296 302 

297Segui queste regole affinché l'analisi statica possa trovare ogni hook e ogni chiamata:303Segui queste regole affinché l'analisi statica possa trovare ogni hook e ogni chiamata:

298 304 

Details

91 91 

92Registra ogni evento una sola volta per matcher. Se chiami `on` due volte per `session.start` senza matcher, il caricamento del modulo fallisce con `on("session.start") is registered twice without a matcher`. Inserisci tutto ciò che il tuo mod fa all'avvio della sessione in un unico hook.92Registra ogni evento una sola volta per matcher. Se chiami `on` due volte per `session.start` senza matcher, il caricamento del modulo fallisce con `on("session.start") is registered twice without a matcher`. Inserisci tutto ciò che il tuo mod fa all'avvio della sessione in un unico hook.

93 93 

94#### Agganciare i disegni e i controlli di altri mod

95 

96Per agganciare i controlli, i pannelli o la riga sopra il prompt di un altro mod, passa un matcher con `plugin`. Usa il nome del mod senza il suo marketplace, come in `{ plugin: 'other-mod' }`, oppure `{ plugin: '*' }` per tutti i mod. Senza `plugin`, un hook su `ui.press`, `ui.input`, `ui.select` o `ui.focus` non viene eseguito per i controlli di altri mod, e un hook `ui.render` salta i loro pannelli e le loro righe sopra il prompt.

97 

98Un hook su un carattere jolly senza matcher, come `on('*', hook)` o `on('ui.*', hook)`, viene comunque eseguito per tutti i mod. Un carattere jolly con un matcher richiede anch'esso `plugin`.

99 

100> [!NOTE]

101>

102> `{ plugin: '*' }` richiede Claude Code v2.1.323 o versioni successive. Prima della v2.1.323, un hook senza `plugin` veniva eseguito per tutti i mod, e un hook con `{ plugin: '*' }` non veniva eseguito. Per far corrispondere tutti i mod in entrambe le versioni, usa `{ plugin: /./ }` su `ui.press`, `ui.input` e `ui.select`. Per `ui.focus` e `ui.render`, usa `on('ui.*', hook)` e controlla il nome dell'evento in `next.event`, come in `if (next.event !== 'ui.focus') return next(e)`.

103 

94## Agganciarsi a ciò che Claude sta facendo104## Agganciarsi a ciò che Claude sta facendo

95 105 

96Gestisci questi eventi per vedere o modificare una chiamata a uno strumento, un prompt, un turno o una lettura delle impostazioni mentre avviene. Per ogni evento e per ciò che un hook può restituire, consulta il [riferimento degli eventi](https://code.claude.com/docs/it/plugins/mods/reference.md#events).106Gestisci questi eventi per vedere o modificare una chiamata a uno strumento, un prompt, un turno o una lettura delle impostazioni mentre avviene. Per ogni evento e per ciò che un hook può restituire, consulta il [riferimento degli eventi](https://code.claude.com/docs/it/plugins/mods/reference.md#events).

Details

177 177 

178## Scegli dove disegnare178## Scegli dove disegnare

179 179 

180Un hook `ui.render` viene eseguito per ogni punto di rendering, a meno che tu non lo limiti a quello in cui vuoi disegnare. Per scegliere il punto di rendering, passa un filtro, chiamato [matcher](https://code.claude.com/docs/it/plugins/mods/events.md#filter-which-events-a-hook-handles), come secondo argomento di `on`. `{ component: 'Pane' }` esegue l'hook solo per i pannelli. Nell'hook, `e.component` indica il punto, `e.surface` indica quale app sta disegnando e `e.props` contiene i dati propri del punto. Per un pannello, `e.requestId` è l'`id` con cui lo hai aperto.180Per scegliere il punto di rendering in cui disegna un hook `ui.render`, passa un filtro, chiamato [matcher](https://code.claude.com/docs/it/plugins/mods/events.md#filter-which-events-a-hook-handles), come secondo argomento di `on`. `{ component: 'Pane' }` esegue l'hook solo per i pannelli. Nell'hook, `e.component` indica il punto, `e.surface` indica quale app sta disegnando e `e.props` contiene i dati propri del punto. Per un pannello, `e.requestId` è l'`id` con cui lo hai aperto.

181 181 

182Il pannello e la fascia sono vuoti finché un mod non li riempie. Seleziona una scheda per vedere che cos'è ciascuno e come disegnarci dentro:182Il pannello e la fascia sono vuoti finché un mod non li riempie. Seleziona una scheda per vedere che cos'è ciascuno e come disegnarci dentro:

183 183 


191 191 

192> [tab] Fascia sopra il prompt192> [tab] Fascia sopra il prompt

193>193>

194> La fascia è una striscia direttamente sopra il campo di input del prompt. È sempre presente e tutti i mod la condividono.194> La fascia è una striscia direttamente sopra il campo di input del prompt. Ogni mod che vi disegna ha la propria riga, e le righe si impilano dall'alto nell'[ordine in cui vengono eseguiti i mod](https://code.claude.com/docs/it/plugins/mods/events.md#the-order-mods-run-in).

195>195>

196> Il tuo hook restituisce un albero per mostrare qualcosa nella fascia, oppure `next(e)` per non mostrare nulla. Un albero sostituisce ciò che i mod [dopo il tuo](https://code.claude.com/docs/it/plugins/mods/events.md#the-order-mods-run-in) disegnano lì. Per mantenere ciò che disegnano loro, inserisci il risultato di `await next(e)` tra i figli di un [`Box`](#build-a-tree-from-elements) nel tuo albero.196> Per disegnare la riga del tuo mod, filtra su `{ component: 'AbovePrompt' }` e restituisci un [albero](#build-a-tree-from-elements). Per non disegnare nulla, restituisci `next(e)`.

197>197>

198> Per disegnare nella fascia, filtra su `{ component: 'AbovePrompt' }`.198> Prima della v2.1.323, tutti i mod condividevano un unico disegno nella fascia, e il tuo albero sostituiva ciò che disegnavano i mod dopo il tuo. Per supportare anche quelle versioni, inserisci il risultato di `await next(e)` tra i figli di un [`Box` che resti valido](https://code.claude.com/docs/it/plugins/mods/troubleshoot#another-mods-band-shows-and-yours-doesnt). Dalla v2.1.323 in poi, quel figlio non disegna le righe degli altri mod.

199 199 

200Un mod può anche [inserire una propria riga nella trascrizione](#place-a-row-in-the-transcript).200Un mod può anche [inserire una propria riga nella trascrizione](#place-a-row-in-the-transcript).

201 201 


281 281 

282Mentre Claude lavora, lo spinner si anima come prima e `under the spinner` appare sotto di esso.282Mentre Claude lavora, lo spinner si anima come prima e `under the spinner` appare sotto di esso.

283 283 

284La richiesta di permesso non è un punto di rendering, quindi un mod non può modificare ciò che mostra. La finestra di dialogo delle domande, `AskUserQuestion`, lo è, quindi un mod può modificarla. Un albero per la finestra di dialogo deve contenere il riferimento esattamente una volta, con i tuoi elementi sopra di esso. In caso contrario, Claude Code disegna la propria finestra di dialogo.284La richiesta di permesso non è un punto di rendering, quindi un mod non può modificare ciò che mostra. La finestra di dialogo delle domande, `AskUserQuestion`, lo è, quindi un mod può modificare quella finestra di dialogo quando Claude pone una domanda. Un albero per la finestra di dialogo deve contenere il riferimento esattamente una volta, con i tuoi elementi sopra di esso. In caso contrario, Claude Code disegna la propria finestra di dialogo.

285 285 

286### Apri un pannello al momento giusto286### Apri un pannello al momento giusto

287 287 

288Un pannello appare solo quando il tuo mod lo apre. Il modo e il momento in cui lo apri determinano se riceve il focus della tastiera, quanto spazio richiede e se viene mostrato o meno in un terminale stretto.288Un pannello appare solo quando il tuo mod lo apre. Il modo e il momento in cui lo apri determinano se riceve il focus della tastiera, quanto spazio richiede e se viene mostrato o meno in un terminale stretto.

289 289 

290Per aprire un pannello, chiama [`$.ui.open`](https://code.claude.com/docs/it/plugins/mods/reference#mods-api-methods) con un `id` che scegli tu. L'`id` è il nome del pannello: il tuo hook `ui.render` lo verifica e lo passi di nuovo per chiudere il pannello.290Per aprire un pannello, chiama [`$.ui.open`](https://code.claude.com/docs/it/plugins/mods/reference#mods-api-methods) con un `id` che scegli tu. L'`id` è il nome del pannello: il tuo hook `ui.render` lo verifica e lo passi di nuovo per chiudere il pannello. Se un altro mod ha un pannello aperto con quell'`id`, la chiamata viene rifiutata.

291 291 

292```javascript theme={null}292```javascript theme={null}

293await $.ui.open({ id: 'hello-tabs', title: 'Hello tabs', focus: true })293await $.ui.open({ id: 'hello-tabs', title: 'Hello tabs', focus: true })


399 399 

400> [!NOTE]400> [!NOTE]

401>401>

402> `$.theme.set` e `$.theme.clear` sostituiscono `$.ui.backdrop`, che Claude Code v2.1.319 ha rimosso. Cambia `$.ui.backdrop({ id: 'your-backdrop' })` in `$.theme.set({ backdrop: { id: 'your-backdrop' } })` e `$.ui.backdrop(undefined)` in `$.theme.clear()`, che rimuove lo sfondo di qualsiasi mod.402> `$.theme.set` e `$.theme.clear` sostituiscono `$.ui.backdrop`, che Claude Code v2.1.319 ha rimosso. Cambia `$.ui.backdrop({ id: 'your-backdrop' })` in una chiamata a `$.theme.set` come quella nell'esempio di questa sezione, e `$.ui.backdrop(undefined)` in `$.theme.clear()`, che rimuove lo sfondo di qualsiasi mod.

403 403 

404Per mettere uno sfondo dietro la conversazione nell'app Desktop o nell'app mobile, chiama [`$.theme.set`](https://code.claude.com/docs/it/plugins/mods/reference#mods-api-methods) con un `backdrop`, quindi disegna lo sfondo nel punto di rendering [`Backdrop`](https://code.claude.com/docs/it/plugins/mods/reference#render-sites). Per togliere lo sfondo, chiama `$.theme.clear()`. Il terminale non disegna alcuno sfondo. `$.theme.set` e `$.theme.clear` richiedono Claude Code v2.1.319 o successiva.404Per mettere uno sfondo dietro la conversazione nell'app Desktop o nell'app mobile, chiama [`$.theme.set`](https://code.claude.com/docs/it/plugins/mods/reference#mods-api-methods) con un `backdrop`, quindi disegna lo sfondo nel punto di rendering [`Backdrop`](https://code.claude.com/docs/it/plugins/mods/reference#render-sites). Per togliere lo sfondo, chiama `$.theme.clear()`. Il terminale non disegna alcuno sfondo. `$.theme.set` e `$.theme.clear` richiedono Claude Code v2.1.319 o successiva.

405 405 

406Questo mod imposta uno sfondo all'avvio della sessione, disegna lo sfondo e aggiunge un comando `/plain` che lo toglie:406Questo esempio richiede Claude Code v2.1.323 o successiva, quindi [verifica prima la tua versione](https://code.claude.com/docs/it/plugins/mods/overview.md#turn-mods-on-or-off). Il mod imposta uno sfondo all'avvio della sessione, disegna lo sfondo e aggiunge un comando `/plain` che lo toglie:

407 407 

408```javascript theme={null}408```javascript theme={null}

409export function register(on) {409export function register(on) {

410 // Neither a reload of this mod nor --resume keeps the backdrop, so set it here410 // Neither a reload of this mod nor --resume keeps the backdrop, so set it here

411 on('session.start', async ($, e, next) => {411 on('session.start', async ($, e, next) => {

412 await $.theme.set({ backdrop: { id: 'night-sky', colorScheme: 'dark' } })412 await $.theme.set({ backdrop: { scene: 'night-sky' }, overrideColorScheme: 'dark' })

413 await $.command.register({ name: 'plain', description: 'Take the backdrop off' })413 await $.command.register({ name: 'plain', description: 'Take the backdrop off' })

414 return next(e)414 return next(e)

415 })415 })

416 416 

417 on('ui.render', { component: 'Backdrop' }, async ($, e, next) => {417 on('ui.render', { component: 'Backdrop' }, async ($, e, next) => {

418 // This hook runs for every mod's backdrop, and another mod can use the same id418 // This hook runs for every mod's backdrop, and another mod can use the same scene

419 if (e.props.plugin !== $.plugin.name || e.props.id !== 'night-sky') return next(e)419 if (e.props.plugin !== $.plugin.name || e.props.scene !== 'night-sky') return next(e)

420 const { Box, Text } = $.ui.resolve(e)420 const { Box, Text } = $.ui.resolve(e)

421 return Box({ backgroundColor: 'blue', children: [Text({ children: ['Night sky'] })] })421 return Box({ backgroundColor: 'blue', children: [Text({ children: ['Night sky'] })] })

422 })422 })


428}428}

429```429```

430 430 

431> [!NOTE]

432>

433> Prima della v2.1.323, scrivi `id` al posto di `scene` nella chiamata a `$.theme.set` e in `e.props`, e sposta `overrideColorScheme` dentro `backdrop` come `colorScheme`.

434 

431Per provare l'esempio, inserisci questo codice in un [mod](https://code.claude.com/docs/it/plugins/mods/create.md) e avvia una sessione nell'app Desktop o nell'app mobile. Per togliere lo sfondo, esegui `/plain` al prompt di Claude Code. La trascrizione mostra `the theme is cleared` dopo il nome del mod, come in `night-sky: the theme is cleared` per un mod chiamato `night-sky`.435Per provare l'esempio, inserisci questo codice in un [mod](https://code.claude.com/docs/it/plugins/mods/create.md) e avvia una sessione nell'app Desktop o nell'app mobile. Per togliere lo sfondo, esegui `/plain` al prompt di Claude Code. La trascrizione mostra `the theme is cleared` dopo il nome del mod, come in `night-sky: the theme is cleared` per un mod chiamato `night-sky`.

432 436 

433Verifica che cosa accetta `backdrop`, che cosa ti dice il risultato della chiamata e che cosa possono modificare gli altri mod:437Verifica che cosa accetta `backdrop`, che cosa ti dice il risultato della chiamata e che cosa possono modificare gli altri mod:

434 438 

435* **I campi di `backdrop`**: `id`, un [nome](https://code.claude.com/docs/it/plugins/mods/reference.md#limits) che scegli tu, è obbligatorio, mentre gli altri campi sono facoltativi. `colorScheme` è `'light'` o `'dark'` e indica se il tuo disegno è chiaro o scuro. Per `glass`, consulta [i tipi per la tua build](https://code.claude.com/docs/it/plugins/mods/create.md#get-the-types-for-your-build).439* **I campi di `backdrop`**: `scene` è un [nome](https://code.claude.com/docs/it/plugins/mods/reference.md#limits) che scegli tu per uno sfondo disegnato dal tuo hook. Per gli altri campi e per `overrideColorScheme`, consulta [i tipi per la tua build](https://code.claude.com/docs/it/plugins/mods/create.md#get-the-types-for-your-build).

436* **Se lo sfondo viene disegnato**: `$.theme.set` si risolve con `isDrawn: true` quando un'app Desktop o mobile connessa alla sessione dichiara di disegnare gli sfondi. Altrimenti `isDrawn` è `false` e `reason` ne indica il motivo.440* **Se lo sfondo viene disegnato**: `$.theme.set` si risolve con `isDrawn: true` quando un'app Desktop o mobile connessa alla sessione dichiara di disegnare gli sfondi. Altrimenti `isDrawn` è `false` e `reason` ne indica il motivo.

437* **Un solo sfondo per ogni sessione**: una chiamata a `$.theme.set` sostituisce lo sfondo della sessione e `$.theme.clear()` rimuove quello sfondo, indipendentemente da quale mod lo abbia impostato. Chiama `$.theme.clear()` solo quando l'utente lo richiede.441* **Un solo sfondo per ogni sessione**: una chiamata a `$.theme.set` sostituisce lo sfondo della sessione e `$.theme.clear()` rimuove quello sfondo, indipendentemente da quale mod lo abbia impostato. Chiama `$.theme.clear()` solo quando l'utente lo richiede.

438 442 


510>514>

511> Imposta `rows` a 2 o più per [un campo che contiene più righe](https://code.claude.com/docs/it/plugins/mods/gallery.md#input).515> Imposta `rows` a 2 o più per [un campo che contiene più righe](https://code.claude.com/docs/it/plugins/mods/gallery.md#input).

512 516 

513La [galleria dell'interfaccia](https://code.claude.com/docs/it/plugins/mods/gallery.md) contiene esempi e screenshot della maggior parte degli elementi. Questa tabella elenca tutti gli elementi:517La [galleria dell'interfaccia](https://code.claude.com/docs/it/plugins/mods/gallery.md) contiene esempi e screenshot della maggior parte degli elementi. Questa tabella elenca gli elementi principali:

514 518 

515| Elemento | Cosa disegna | Dove |519| Elemento | Cosa disegna | Dove |

516| :- | :- | :- |520| :- | :- | :- |


606I test e gli altri mod identificano un controllo tramite la sua chiave:610I test e gli altri mod identificano un controllo tramite la sua chiave:

607 611 

608* **Test**: un [test](https://code.claude.com/docs/it/plugins/mods/test.md#test-a-drawing) preme un controllo o vi digita tramite la sua chiave.612* **Test**: un [test](https://code.claude.com/docs/it/plugins/mods/test.md#test-a-drawing) preme un controllo o vi digita tramite la sua chiave.

609* **Altri mod**: Claude Code attiva [`ui.press`, `ui.input` o `ui.select`](https://code.claude.com/docs/it/plugins/mods/reference#interface) con la chiave del controllo in `e.element` prima di eseguire la callback del controllo. L'hook di un altro mod per quell'evento vede ciò che l'utente ha digitato nel tuo `Input` e può modificare quel testo o impedire l'esecuzione della tua callback. L'API dei mod non fornisce a quel mod alcun metodo per premere i tuoi pulsanti.613* **Altri mod**: Claude Code attiva [`ui.press`, `ui.input` o `ui.select`](https://code.claude.com/docs/it/plugins/mods/reference#interface) con la chiave del controllo in `e.element` prima di eseguire la callback del controllo. Anche l'hook di un altro mod può [essere eseguito per quell'evento](https://code.claude.com/docs/it/plugins/mods/events.md#hook-other-mods-drawings-and-controls). Quell'hook vede ciò che l'utente ha digitato nel tuo `Input` e può modificare quel testo o impedire l'esecuzione della tua callback. L'API dei mod non fornisce a quel mod alcun metodo per premere i tuoi pulsanti.

610 614 

611Se un messaggio dice `needs a key` o `is drawn twice`, [trova la causa in base a quel messaggio](https://code.claude.com/docs/it/plugins/mods/troubleshoot.md#needs-a-key).615Se un messaggio dice `needs a key` o `is drawn twice`, [trova la causa in base a quel messaggio](https://code.claude.com/docs/it/plugins/mods/troubleshoot.md#needs-a-key).

612 616 

Details

208 208 

209### Chiamate all'API dei mod209### Chiamate all'API dei mod

210 210 

211Ogni [metodo dell'API dei mod](#mods-api-methods) è anche un evento, denominato in base al suo namespace e al metodo, come `fs.read`, `model.complete` o `ui.open`. Un hook su uno di essi intercetta le chiamate provenienti dai mod eseguiti dopo di esso e può restituire `next(e)`, `{ deny: reason }` oppure `{ value }`.211Ogni [metodo dell'API dei mod](#mods-api-methods) è anche un evento, denominato in base al suo namespace e al metodo, come `fs.read`, `model.complete` o `ui.open`. Un hook su uno di essi può restituire `next(e)`, `{ deny: reason }` oppure `{ value }`.

212 

213Alcuni di questi eventi si attivano anche per le azioni di Claude Code stesso, quindi verifica se `next.origin.plugin` è `engine` prima di rifiutarne uno.

212 214 

213## Metodi dell'API dei mod215## Metodi dell'API dei mod

214 216 


249| :- | :- | :- | :- |251| :- | :- | :- | :- |

250| [`Pane`](https://code.claude.com/docs/it/plugins/mods/interface#pick-where-to-draw) | `title`, `isFocused`, `bodyColumns`, `placement`, `scroll`, `view` | L'`id` del pannello | Terminale, Desktop, VS Code |252| [`Pane`](https://code.claude.com/docs/it/plugins/mods/interface#pick-where-to-draw) | `title`, `isFocused`, `bodyColumns`, `placement`, `scroll`, `view` | L'`id` del pannello | Terminale, Desktop, VS Code |

251| [`AbovePrompt`](https://code.claude.com/docs/it/plugins/mods/interface#pick-where-to-draw) | `hasSurvey`, `isWorking`, `maxRows`, `bodyColumns`, `scroll`, `view` | Una sola istanza | Terminale, Desktop |253| [`AbovePrompt`](https://code.claude.com/docs/it/plugins/mods/interface#pick-where-to-draw) | `hasSurvey`, `isWorking`, `maxRows`, `bodyColumns`, `scroll`, `view` | Una sola istanza | Terminale, Desktop |

254| `AbovePromptList`, la pila di righe `AbovePrompt` | `rows`, un elenco con un `{ plugin, tree }` per la riga di ciascun mod, più le prop di `AbovePrompt` | Una sola istanza | Terminale, Desktop. Richiede Claude Code v2.1.323 o successiva. |

252| [`Placed`](https://code.claude.com/docs/it/plugins/mods/interface#place-a-row-in-the-transcript) | `id`, `plugin`, `onScreen` | Il `requestId` restituito da `$.ui.place` | Terminale |255| [`Placed`](https://code.claude.com/docs/it/plugins/mods/interface#place-a-row-in-the-transcript) | `id`, `plugin`, `onScreen` | Il `requestId` restituito da `$.ui.place` | Terminale |

253| [`Backdrop`](https://code.claude.com/docs/it/plugins/mods/interface#put-a-backdrop-behind-the-conversation) | `id`, `plugin`, `glass`, `colorScheme` | `backdrop` | Superfici `desktop` e `mobile`. Il tuo hook viene eseguito quando l'app Desktop o mobile chiede di disegnare uno sfondo. |256| [`Backdrop`](https://code.claude.com/docs/it/plugins/mods/interface#put-a-backdrop-behind-the-conversation) | `scene`, `plugin`, `glass`, `overrideColorScheme`. Prima della v2.1.323, `scene` era `id` e `overrideColorScheme` era `colorScheme`. | `backdrop` | Superfici `desktop` e `mobile`. Il tuo hook viene eseguito quando l'app Desktop o mobile chiede di disegnare uno sfondo. |

254| `UserMessage` | `text`, `origin`, `isExpanded` e `task` o `from` a seconda dell'origine | L'id della riga disegnata | Terminale, Desktop, VS Code |257| `UserMessage` | `text`, `origin`, `isExpanded` e `task` o `from` a seconda dell'origine | L'id della riga disegnata | Terminale, Desktop, VS Code |

255| `AssistantMessage` | Il testo della risposta | L'id della riga disegnata | Terminale, Desktop, VS Code |258| `AssistantMessage` | Il testo della risposta | L'id della riga disegnata | Terminale, Desktop, VS Code |

256| `ToolUse`, `ToolResult`, `ToolGroup` | Il nome, l'input e il risultato dello strumento | L'id della chiamata allo strumento | Terminale, Desktop, VS Code |259| `ToolUse`, `ToolResult`, `ToolGroup` | Il nome, l'input e il risultato dello strumento | L'id della chiamata allo strumento | Terminale, Desktop, VS Code |


297* **`action`**: indica una delle [scorciatoie da tastiera](https://code.claude.com/docs/it/keybindings.md) di Claude Code, e la combinazione assegnata dall'utente a quell'azione preme il pulsante quando si tratta di un accordo o di un tasto con modificatore300* **`action`**: indica una delle [scorciatoie da tastiera](https://code.claude.com/docs/it/keybindings.md) di Claude Code, e la combinazione assegnata dall'utente a quell'azione preme il pulsante quando si tratta di un accordo o di un tasto con modificatore

298* **Hotkey numerici nella banda**: un `hotkey` numerico su un pulsante nella banda si attiva anche quando l'utente digita solo quella cifra in un prompt vuoto e si ferma301* **Hotkey numerici nella banda**: un `hotkey` numerico su un pulsante nella banda si attiva anche quando l'utente digita solo quella cifra in un prompt vuoto e si ferma

299* **Una banda compressa**: mentre la banda è [compressa](https://code.claude.com/docs/it/plugins/mods/interface.md#when-the-user-collapses-the-band), né una combinazione `action` né un hotkey premono un pulsante al suo interno302* **Una banda compressa**: mentre la banda è [compressa](https://code.claude.com/docs/it/plugins/mods/interface.md#when-the-user-collapses-the-band), né una combinazione `action` né un hotkey premono un pulsante al suo interno

300* **Due pulsanti sullo stesso hotkey**: quando due pulsanti nello stesso disegno indicano lo stesso `hotkey`, lo ottiene quello successivo303* **Due pulsanti sullo stesso hotkey**: quando due dei tuoi pulsanti nello stesso disegno indicano lo stesso `hotkey`, lo ottiene quello successivo. Per il pulsante di un altro mod sullo stesso tasto, consulta [Gli hotkey non fanno nulla](https://code.claude.com/docs/it/plugins/mods/troubleshoot.md#hotkeys-do-nothing).

301* **`variant`**: `primary` o `secondary`, e qualsiasi altro valore genera un'eccezione. Nel terminale, un pulsante `primary` viene disegnato nel colore di accento, a meno che non sia `plain`.304* **`variant`**: `primary` o `secondary`, e qualsiasi altro valore genera un'eccezione. Nel terminale, un pulsante `primary` viene disegnato nel colore di accento, a meno che non sia `plain`.

302* **`role`**: `dismiss` contrassegna un pulsante di chiusura, e qualsiasi altro valore genera un'eccezione. Esegui la chiusura nel tuo `onPress`. In una banda che contiene testo e una riga di pulsanti, l'app Desktop può disegnare il primo pulsante `dismiss` della riga come un proprio controllo di chiusura. Il terminale disegna il pulsante come farebbe senza `role`.305* **`role`**: `dismiss` contrassegna un pulsante di chiusura, e qualsiasi altro valore genera un'eccezione. Esegui la chiusura nel tuo `onPress`. In una banda che contiene testo e una riga di pulsanti, l'app Desktop può disegnare il primo pulsante `dismiss` della riga come un proprio controllo di chiusura. Il terminale disegna il pulsante come farebbe senza `role`.

303 306 


401| Profondità di annidamento di un singolo albero | 32 livelli sotto l'elemento radice |404| Profondità di annidamento di un singolo albero | 32 livelli sotto l'elemento radice |

402| Elementi e figli di testo in un singolo albero | 20.000 |405| Elementi e figli di testo in un singolo albero | 20.000 |

403| Celle `Raster` in un singolo albero, ovvero le `columns` di ogni `Raster` moltiplicate per le sue `rows` | 262.144 |406| Celle `Raster` in un singolo albero, ovvero le `columns` di ogni `Raster` moltiplicate per le sue `rows` | 262.144 |

407| Le righe sopra il prompt, impilate | Elementi, celle `Raster` e byte di `Image` si sommano tra le righe, rispetto ai limiti di un singolo albero |

404| Byte PNG o RGBA di tutte le `Image` in un singolo albero | 2 MiB |408| Byte PNG o RGBA di tutte le `Image` in un singolo albero | 2 MiB |

405| `$.store` | 4 MiB di JSON in totale |409| `$.store` | 4 MiB di JSON in totale |

406| `$.session.messages()` | Le 4.096 voci più recenti |410| `$.session.messages()` | Le 4.096 voci più recenti |


412| Profondità di annidamento di un evento modificato passato a `next`, al di fuori degli [hook generatori asincroni](#events) come uno su `turn.step` | 28.000 livelli. Oltre questo limite, `next` viene rifiutato con un messaggio che termina con `nesting deeper than 28000 levels is not supported`. Richiede Claude Code v2.1.299 o versioni successive. |416| Profondità di annidamento di un evento modificato passato a `next`, al di fuori degli [hook generatori asincroni](#events) come uno su `turn.step` | 28.000 livelli. Oltre questo limite, `next` viene rifiutato con un messaggio che termina con `nesting deeper than 28000 levels is not supported`. Richiede Claude Code v2.1.299 o versioni successive. |

413| Profondità di annidamento del valore restituito da un hook, al di fuori di `ui.render`, `ui.resolve` e degli hook generatori asincroni | 28.000 livelli. Oltre questo limite, il risultato dell'hook viene rifiutato e [l'avviso che lo segnala](https://code.claude.com/docs/it/plugins/mods/troubleshoot.md#find-out-why-a-mod-does-nothing) include `nesting deeper than 28000 levels is not supported`. Richiede Claude Code v2.1.299 o versioni successive. |417| Profondità di annidamento del valore restituito da un hook, al di fuori di `ui.render`, `ui.resolve` e degli hook generatori asincroni | 28.000 livelli. Oltre questo limite, il risultato dell'hook viene rifiutato e [l'avviso che lo segnala](https://code.claude.com/docs/it/plugins/mods/troubleshoot.md#find-out-why-a-mod-does-nothing) include `nesting deeper than 28000 levels is not supported`. Richiede Claude Code v2.1.299 o versioni successive. |

414| Scope, come funzioni, blocchi e cicli, annidati l'uno dentro l'altro in un singolo file di un modulo degli hook | 2.000 |418| Scope, come funzioni, blocchi e cicli, annidati l'uno dentro l'altro in un singolo file di un modulo degli hook | 2.000 |

415| Nomi di comandi, strumenti, tipi di subagent e riquadri, e l'`id` di una riga posizionata o di uno sfondo | Lettere, cifre, `_` e `-`, fino a 64 caratteri |419| Nomi di comandi, strumenti, tipi di subagent e riquadri, l'`id` di una riga posizionata e la `scene` di uno sfondo | Lettere, cifre, `_` e `-`, fino a 64 caratteri |

416| Un singolo test di `claude plugin test` | 5 secondi, a meno che il test non imposti `timeoutMs` |420| Un singolo test di `claude plugin test` | 5 secondi, a meno che il test non imposti `timeoutMs` |

417 421 

418## Impostazioni e variabili d'ambiente422## Impostazioni e variabili d'ambiente

Details

139 on('ui.render', () => ({ type: 'Text', props: {}, children: ['drawn by Claude Code'] }))139 on('ui.render', () => ({ type: 'Text', props: {}, children: ['drawn by Claude Code'] }))

140 ```140 ```

141 141 

142 Con lo stub registrato, il montaggio riesce, e `ui.find({ type: 'Text' })` restituisce quell'elemento ogni volta che il tuo hook ha restituito `next(e)`.142 Con lo stub registrato, il montaggio riesce, e `ui.find({ type: 'Text' })` restituisce quell'elemento ogni volta che il tuo hook ha restituito `next(e)`. Dalla v2.1.323 in poi, per la band, passa il nome del tuo mod come secondo argomento di `on`, come in `{ plugin: 'my-mod' }`. Senza di esso, lo stub non risponde al tuo `next(e)`.

143 143 

144* **Uno stub per `turn.step` è un generatore asincrono**, e il test legge lo stream fino alla fine per ottenere il risultato:144* **Uno stub per `turn.step` è un generatore asincrono**, e il test legge lo stream fino alla fine per ottenere il risultato:

145 145 


192| `$.session.id`, `$.agent.list` | `() => ({ value: 'abc123' })`, `() => ({ value: [] })` |192| `$.session.id`, `$.agent.list` | `() => ({ value: 'abc123' })`, `() => ({ value: [] })` |

193| `session.send` | `() => ({ isDelivered: true })`. `e.to` arriva come stringa anche quando il tuo mod ha passato `{ sessionId }`. |193| `session.send` | `() => ({ isDelivered: true })`. `e.to` arriva come stringa anche quando il tuo mod ha passato `{ sessionId }`. |

194| `session.receive` | `($, e) => ({ text: e.text })`. Attivalo con `$.session.receive({ origin: { kind: 'peer-send-message' }, text })`. |194| `session.receive` | `($, e) => ({ text: e.text })`. Attivalo con `$.session.receive({ origin: { kind: 'peer-send-message' }, text })`. |

195| `ui.render` | `() => ({ type: 'Text', props: {}, children: ['...'] })` |195| `ui.render` | `() => ({ type: 'Text', props: {}, children: ['...'] })`. Per la band, consulta il matcher in [Seguire le regole del test kit](#follow-the-test-kit’s-rules). |

196 196 

197### Verificare un risultato con `expect`197### Verificare un risultato con `expect`

198 198 

199Il kit dispone di queste asserzioni, e quella che scegli va dopo il valore che stai verificando, come in `expect(answer.text).toBe('ok')`:199`expect` ha un proprio insieme di asserzioni, come `toEqual` e `toHaveLength`, che vanno dopo il valore che stai verificando, come in `expect(answer.text).toBe('ok')`. Per l'elenco completo, cerca `type Matchers` in `claude-code/index.d.ts` nei [tipi per la tua build](https://code.claude.com/docs/it/plugins/mods/create.md#get-the-types-for-your-build). Anteponi `.not` all'asserzione per verificare il contrario. Per verificare con cosa si conclude una promise, metti `.resolves` o `.rejects` subito dopo `expect(...)` e usa `await` sulla riga, come in `await expect(promise).rejects.toThrow()`.

200 

201* **Uguaglianza**: `toBe` per lo stesso valore o oggetto, `toEqual` per la struttura, `toStrictEqual` per la struttura più i campi `undefined` e il prototipo, e `toMatchObject` per i campi che indichi

202* **Testo**: `toMatch`, che accetta un'espressione regolare o una sottostringa, `toStartWith` e `toEndWith`

203* **Numeri**: `toBeGreaterThan`, `toBeGreaterThanOrEqual`, `toBeLessThan`, `toBeLessThanOrEqual`

204* **Contenuto**: `toContain` per una sottostringa o un membro, `toContainEqual` per un membro confrontato per struttura, `toHaveLength` e `toHaveProperty`

205* **Presenza e tipo**: `toBeDefined`, `toBeUndefined`, `toBeNull`, `toBeTruthy`, `toBeFalsy`, `toBeNaN`, `toBeInstanceOf`

206* **Eccezioni**: `toThrow`, per una funzione che `expect` chiama, o per una promise che verifichi con `.rejects`

207 

208Anteponi `.not` a un'asserzione per verificare il contrario, e `.resolves` o `.rejects` per verificare con cosa si conclude una promise.

209 200 

210Quando un `expect` fallisce all'interno di uno stub o di un hook che hai passato a `on` come funzione semplice anziché come generatore asincrono, il test fallisce. Il motore salta quell'hook, e l'output dell'errore lo indica per nome, ad esempio `in the test's store.set hook`.201Quando un `expect` fallisce all'interno di uno stub o di un hook che hai passato a `on` come funzione semplice anziché come generatore asincrono, il test fallisce. Il motore salta quell'hook, e l'output dell'errore lo indica per nome, ad esempio `in the test's store.set hook`.

211 202 

Details

223 223 

224### La banda di un altro mod è visibile e la tua no224### La banda di un altro mod è visibile e la tua no

225 225 

226C'è una sola banda sopra il prompt, e tutti i mod la condividono. Un mod che viene eseguito [prima del tuo](https://code.claude.com/docs/it/plugins/mods/events.md#the-order-mods-run-in) sostituisce la tua banda quando restituisce un albero che non contiene il risultato di `next(e)`. Per mostrare entrambe le bande, modifica l'hook di quel mod, oppure chiedi al suo autore di farlo:226Ogni mod che disegna sopra il prompt ha una propria riga, quindi quando la tua manca mentre quella di un altro mod è visibile, controlla queste cause:

227 227 

228* **Mantieni le bande successive**: inserisci il risultato di `await next(e)` tra i figli di un `Box` nel suo albero, come nella scheda Banda sopra il prompt di [Scegli dove disegnare](https://code.claude.com/docs/it/plugins/mods/interface.md#pick-where-to-draw)228* **Il tuo albero non supera la validazione**: [scrivi un log di debug](#read-the-debug-log), cerca al suo interno [`ui.render hook skipped`](#a-pane-or-band-is-empty) o [`does not validate`](#ui-render-refused) e correggi ciò che la riga indica.

229* **Mantieni l'albero valido**: non assegnare a quel `Box`, né a nessun `Box` che lo contiene, una prop `width`, `height`, `minWidth`, `minHeight`, `position`, `top`, `left`, `right`, `bottom`, `display` o `overflow`229* **Le righe insieme superano un limite**: [scrivi un log di debug](#read-the-debug-log) e cerca al suo interno `past the limits of the band`. Le righe [condividono i limiti di un unico albero](https://code.claude.com/docs/it/plugins/mods/reference.md#limits), quindi disegna un albero più piccolo, oppure chiedi agli autori degli altri mod di farlo.

230* **Un altro mod nasconde la tua riga o disegna sopra di essa**: se il log non contiene nessuna di queste righe, [disattiva](https://code.claude.com/docs/it/plugins/mods/overview.md#turn-mods-on-or-off) gli altri mod uno alla volta. Se la tua riga ricompare, chiedi all'autore di quel mod di modificarlo.

230 231 

231Per trovare quel mod, [scrivi un log di debug](#read-the-debug-log) e cerca al suo interno `answered ui.render without next()`. Una riga come `other-mod (user) answered ui.render without next()` indica un mod che ha restituito il suo albero senza chiamare `next(e)`. La riga non indica il [punto di rendering](https://code.claude.com/docs/it/plugins/mods/reference.md#render-sites), quindi può comparire anche un mod che disegna solo in un riquadro. Un mod che chiama `next(e)` e scarta il risultato non produce alcuna riga, quindi controlla anche gli hook che precedono il tuo.232Prima della v2.1.323, tutti i mod condividevano un unico disegno nella banda. Un mod eseguito [prima del tuo](https://code.claude.com/docs/it/plugins/mods/events.md#the-order-mods-run-in) sostituiva il tuo disegno quando restituiva un albero che non conteneva il risultato di `next(e)`. Aggiorna Claude Code, oppure chiedi all'autore di quel mod di apportare queste modifiche:

232 233 

233La banda di un mod manca anche quando l'albero restituito dal suo hook non supera la validazione, mentre le bande degli altri mod restano. Per scoprire quale mod e perché, [scrivi un log di debug](#read-the-debug-log) e cerca al suo interno [`ui.render hook skipped`](#a-pane-or-band-is-empty).234* **Mantieni i disegni dei mod successivi**: inserisci il risultato di `await next(e)` tra i figli di un `Box` nel suo albero

235* **Mantieni l'albero valido**: non assegnare a quel `Box`, né a nessun `Box` che lo contiene, una prop `width`, `height`, `minWidth`, `minHeight`, `position`, `top`, `left`, `right`, `bottom`, `display` o `overflow`

234 236 

235### Un riquadro o una banda è vuoto o mostra il contenuto abituale di Claude Code237### Un riquadro o una banda è vuoto o mostra il contenuto abituale di Claude Code

236 238 


246 248 

247### Una riga `ui.render` riporta `refused`249### Una riga `ui.render` riporta `refused`

248 250 

249`ui.render (<site>) refused:`, oppure `ui.render (<site>): the chain settled on a tree that does not validate` nel [log di debug](#read-the-debug-log), significa che l'[albero](https://code.claude.com/docs/it/plugins/mods/interface.md#build-a-tree-from-elements) in quel punto supera un [limite di dimensione](https://code.claude.com/docs/it/plugins/mods/reference.md#limits). Entrambe le righe indicano il [punto di rendering](https://code.claude.com/docs/it/plugins/mods/reference.md#render-sites) e poi il motivo, e il motivo indica il limite.251`ui.render (<site>) refused:`, oppure `ui.render (<site>): the chain settled on a tree that does not validate` nel [log di debug](#read-the-debug-log), significa che l'[albero](https://code.claude.com/docs/it/plugins/mods/interface.md#build-a-tree-from-elements) in quel punto supera un [limite di dimensione](https://code.claude.com/docs/it/plugins/mods/reference.md#limits). Entrambe le righe indicano il [punto di rendering](https://code.claude.com/docs/it/plugins/mods/reference.md#render-sites) e poi il motivo.

250 252 

251Modifica i mod che disegnano in quel punto in modo che i loro hook [`ui.render`](https://code.claude.com/docs/it/plugins/mods/reference#interface) restituiscano alberi più piccoli, oppure chiedi ai loro autori di farlo. Se la riga nella trascrizione inizia con `hooks`, più di un mod caricato ha un hook `ui.render` per quel punto, quindi controlla gli alberi di ciascuno di quei mod. Nel caso di più mod le cui bande sopra il prompt si annidano in un albero profondo più di 32 livelli, la riga è:253Modifica i mod che disegnano in quel punto in modo che i loro hook [`ui.render`](https://code.claude.com/docs/it/plugins/mods/reference#interface) restituiscano alberi più piccoli, oppure chiedi ai loro autori di farlo. Se la riga nella trascrizione inizia con `hooks`, più di un mod caricato ha un hook `ui.render` per quel punto, quindi controlla gli alberi di ciascuno di quei mod. Per le righe sopra il prompt che insieme non rientrano nei limiti della banda, la riga è:

252 254 

253```text theme={null}255```text theme={null}

254hooks: ui.render (AbovePrompt) refused: deeper than 32; nothing was drawn256hooks: ui.render (AbovePrompt) refused: a row past the limits of the band; nothing was drawn

255```257```

256 258 

259Nonostante quella parte finale, le righe che rientrano nei limiti vengono comunque disegnate.

260 

257Prima della v2.1.307, una riga `refused:` per qualsiasi punto segnalava qualsiasi albero che non superava la validazione, e per `Pane` e `AbovePrompt` terminava con `; the engine drew its own`. Su quelle release, correggi ciò che il motivo indica.261Prima della v2.1.307, una riga `refused:` per qualsiasi punto segnalava qualsiasi albero che non superava la validazione, e per `Pane` e `AbovePrompt` terminava con `; the engine drew its own`. Su quelle release, correggi ciò che il motivo indica.

258 262 

259### `needs a key`, `is drawn twice` o `key each once`263### `needs a key`, `is drawn twice` o `key each once`


307 311 

308### I tasti di scelta rapida non fanno nulla312### I tasti di scelta rapida non fanno nulla

309 313 

310Il tuo riquadro o la tua banda non ha il focus della tastiera, il tuo pulsante si trova in una banda compressa, oppure il disegno è nell'estensione VS Code, dove i pulsanti non hanno tasti di scelta rapida. Esegui l'azione corrispondente:314Il tuo riquadro o la tua banda non ha il focus della tastiera, il tuo pulsante si trova in una banda compressa, un altro mod usa lo stesso tasto, oppure il disegno è nell'estensione VS Code.

311 315 

312* **Nessun focus della tastiera**: premi Ctrl+X e poi Tab oppure, nel [rendering a schermo intero](https://code.claude.com/docs/it/fullscreen.md), fai clic sul riquadro o sulla banda. Per fare in modo che il riquadro prenda il focus quando si apre, aprilo con `focus: true` da un comando.316* **Nessun focus della tastiera**: premi Ctrl+X e poi Tab oppure, nel [rendering a schermo intero](https://code.claude.com/docs/it/fullscreen.md), fai clic sul riquadro o sulla banda. Per fare in modo che il riquadro prenda il focus quando si apre, aprilo con `focus: true` da un comando.

313* **Il pulsante si trova in una banda compressa**: la banda mostra una riga attenuata che inizia con `▸ plugin panel hidden`. Premi i tasti indicati dalla riga, per impostazione predefinita Ctrl+X e poi Ctrl+A, per [espanderla](#plugin-panel-hidden).317* **Il pulsante si trova in una banda compressa**: la banda mostra una riga attenuata che inizia con `▸ plugin panel hidden`. Premi i tasti indicati dalla riga, per impostazione predefinita Ctrl+X e poi Ctrl+A, per [espanderla](#plugin-panel-hidden).

314* **Nell'estensione VS Code**: fai clic sul pulsante, oppure premi Enter su di esso quando ha il focus318* **La riga di un altro mod nella banda usa lo stesso tasto di scelta rapida**: nel terminale, il tasto non preme nessuno dei due pulsanti. Per verificarlo, [disattiva](https://code.claude.com/docs/it/plugins/mods/overview.md#turn-mods-on-or-off) gli altri mod che disegnano righe, uno alla volta, finché il tasto non funziona. Modifica l'`hotkey` del tuo pulsante, oppure chiedi all'autore di quel mod di modificare il suo.

319* **Nell'estensione VS Code, dove i pulsanti non hanno tasti di scelta rapida**: fai clic sul pulsante, oppure premi Enter su di esso quando ha il focus

315 320 

316### Un disegno funziona nel terminale ma non nell'app Desktop o in VS Code321### Un disegno funziona nel terminale ma non nell'app Desktop o in VS Code

317 322 

Details

36 36 

37![Diagram in two columns joined by five straight arrows. Left, the directory of a plugin named my-plugin, holding a manifest at .claude-plugin/plugin.json, skills/review/SKILL.md, agents/reviewer.md, hooks/hooks.json, .mcp.json, and other components. Right, what each file gives you in your session: the manifest sets the plugin name, my-plugin; the skill runs as /my-plugin:review; the agent file is a subagent Claude can delegate to; the hooks file holds hooks that run on lifecycle events; and .mcp.json adds an MCP server that gives Claude tools.](https://mintcdn.com/claude-code/2Q_GtOEovg5qaBem/images/plugin-directory.svg?fit=max\&auto=format\&n=2Q_GtOEovg5qaBem\&q=85\&s=f623b64e82713b830e48174f0a922888)37![Diagram in two columns joined by five straight arrows. Left, the directory of a plugin named my-plugin, holding a manifest at .claude-plugin/plugin.json, skills/review/SKILL.md, agents/reviewer.md, hooks/hooks.json, .mcp.json, and other components. Right, what each file gives you in your session: the manifest sets the plugin name, my-plugin; the skill runs as /my-plugin:review; the agent file is a subagent Claude can delegate to; the hooks file holds hooks that run on lifecycle events; and .mcp.json adds an MCP server that gives Claude tools.](https://mintcdn.com/claude-code/2Q_GtOEovg5qaBem/images/plugin-directory.svg?fit=max\&auto=format\&n=2Q_GtOEovg5qaBem\&q=85\&s=f623b64e82713b830e48174f0a922888)

38 38 

39Per ogni tipo di componente che un plugin può contenere, con un esempio di ciascuno, consulta [Componenti del plugin](https://code.claude.com/docs/it/plugins/components.md). Per vedere dove si trova ogni pezzo nella directory di un plugin, utilizza l'[esploratore di plugin](https://code.claude.com/docs/it/plugins/components.md#explore-the-plugin-directory) su quella pagina.39Per i tipi di componenti che un plugin può contenere, con un esempio di ciascuno, consulta [Componenti dei plugin](https://code.claude.com/docs/it/plugins/components.md). Per vedere dove si trova ogni elemento nella directory di un plugin, usa l'[esploratore dei plugin](https://code.claude.com/docs/it/plugins/components.md#explore-the-plugin-directory) in quella pagina.

40 40 

41### Decidi se hai bisogno di un plugin41### Decidi se hai bisogno di un plugin

42 42 

Details

59 59 

60**5. Compila i metadati che gli utenti vedono**60**5. Compila i metadati che gli utenti vedono**

61 61 

62Imposta `description`, `author`, `homepage` e `repository` in `plugin.json`, e aggiungi un `README.md` alla radice del plugin. `homepage` deve essere analizzato come un URL. Il [riferimento manifest](https://code.claude.com/docs/it/plugins/manifest-reference.md#fields) elenca ogni campo.62Imposta `description`, `author`, `homepage` e `repository` in `plugin.json`, e aggiungi un `README.md` alla radice del plugin. `homepage` deve essere analizzato come un URL. Per sapere cosa accetta ogni campo, consulta il [riferimento manifest](https://code.claude.com/docs/it/plugins/manifest-reference.md#fields).

63 63 

64**6. Esegui la tua suite di eval**64**6. Esegui la tua suite di eval**

65 65 

66Se hai una suite di eval, esegui `claude plugin eval` nel tuo shell. Esegue i casi di test del plugin e valuta i risultati, il che cattura le regressioni quando modifichi il plugin. Vedi [Testa i plugin con eval](https://code.claude.com/docs/it/plugin-evals.md).66Se hai una suite di eval, esegui `claude plugin eval` nella tua shell. Esegue i casi di test del plugin e valuta i risultati, il che cattura le regressioni quando modifichi il plugin. Vedi [Testa i plugin con eval](https://code.claude.com/docs/it/plugin-evals.md).

67 67 

68## Condividi un plugin senza un marketplace68## Condividi un plugin senza un marketplace

69 69 

Details

67> | `--capacity <N>` | Numero massimo di sessioni simultanee. Il valore predefinito è 32. Non può essere utilizzato con `--spawn=session`. |67> | `--capacity <N>` | Numero massimo di sessioni simultanee. Il valore predefinito è 32. Non può essere utilizzato con `--spawn=session`. |

68> | `--[no-]create-session-in-dir` | Pre-crea una sessione nella directory corrente quando il server si avvia, in modo da avere un posto dove digitare immediatamente. In modalità `worktree` questa sessione rimane nella directory corrente mentre le sessioni su richiesta ottengono worktree isolati. Attivato per impostazione predefinita. Se si passa `--no-create-session-in-dir` per iniziare senza nessuno, Claude Code archivia le sessioni del server quando lo si arresta, quindi non c'è nulla da [riprendere](#resume-sessions-after-stopping-the-server). |68> | `--[no-]create-session-in-dir` | Pre-crea una sessione nella directory corrente quando il server si avvia, in modo da avere un posto dove digitare immediatamente. In modalità `worktree` questa sessione rimane nella directory corrente mentre le sessioni su richiesta ottengono worktree isolati. Attivato per impostazione predefinita. Se si passa `--no-create-session-in-dir` per iniziare senza nessuno, Claude Code archivia le sessioni del server quando lo si arresta, quindi non c'è nulla da [riprendere](#resume-sessions-after-stopping-the-server). |

69> | `--permission-mode <mode>` | Imposta la [modalità di autorizzazione](https://code.claude.com/docs/it/permission-modes.md) iniziale per le sessioni del server, come `acceptEdits`. Accetta `manual` come alias per `default`; una modalità non riconosciuta arresta il server all'avvio ed elenca le modalità valide. |69> | `--permission-mode <mode>` | Imposta la [modalità di autorizzazione](https://code.claude.com/docs/it/permission-modes.md) iniziale per le sessioni del server, come `acceptEdits`. Accetta `manual` come alias per `default`; una modalità non riconosciuta arresta il server all'avvio ed elenca le modalità valide. |

70> | `--settings <file>` | Applica un file di impostazioni JSON alle sessioni del server, con la stessa [precedenza](https://code.claude.com/docs/it/settings.md#settings-precedence) di `claude --settings`. Indica un percorso di file, non una stringa JSON. Richiede Claude Code v2.1.321 o successivo. |

70> | `--chrome` / `--no-chrome` | Attiva o disattiva l'[integrazione Chrome](https://code.claude.com/docs/it/chrome.md) nelle sessioni che il server crea, in modo che Claude possa utilizzare Chrome sulla tua macchina mentre lavori da un altro dispositivo. Senza nessuno dei due flag, la sessione che il server pre-crea e qualsiasi sessione che avvii tu stesso da claude.ai/code o dall'app Claude iniziano con Chrome disattivato, anche se hai [abilitato Chrome per impostazione predefinita](https://code.claude.com/docs/it/chrome.md#enable-chrome-by-default). Una sessione che il server avvia per uno dei tuoi thread di [progetto](https://code.claude.com/docs/it/claude-projects.md) segue invece quella impostazione, tranne in modalità `bypassPermissions`. Richiede Claude Code v2.1.273 o successivo. |71> | `--chrome` / `--no-chrome` | Attiva o disattiva l'[integrazione Chrome](https://code.claude.com/docs/it/chrome.md) nelle sessioni che il server crea, in modo che Claude possa utilizzare Chrome sulla tua macchina mentre lavori da un altro dispositivo. Senza nessuno dei due flag, la sessione che il server pre-crea e qualsiasi sessione che avvii tu stesso da claude.ai/code o dall'app Claude iniziano con Chrome disattivato, anche se hai [abilitato Chrome per impostazione predefinita](https://code.claude.com/docs/it/chrome.md#enable-chrome-by-default). Una sessione che il server avvia per uno dei tuoi thread di [progetto](https://code.claude.com/docs/it/claude-projects.md) segue invece quella impostazione, tranne in modalità `bypassPermissions`. Richiede Claude Code v2.1.273 o successivo. |

71> | `-d`, `--debug[=<filter>]` | Attiva la registrazione del debug per il server, facoltativamente filtrata per categoria. Passare un filtro solo nella forma `=`, come `--debug=api,hooks`. Richiede Claude Code v2.1.282 o successivo. |72> | `-d`, `--debug[=<filter>]` | Attiva la registrazione del debug per il server, facoltativamente filtrata per categoria. Passare un filtro solo nella forma `=`, come `--debug=api,hooks`. Richiede Claude Code v2.1.282 o successivo. |

72> | `--debug-file <path>` | Scrive i log di debug nel file specificato. |73> | `--debug-file <path>` | Scrive i log di debug nel file specificato. |

73> | `--verbose` | Mostra log dettagliati di connessione e sessione. |74> | `--verbose` | Mostra log dettagliati di connessione e sessione. |

74> | `--sandbox`, `--no-sandbox` | Rimossi in v2.1.300. Se passi uno dei due flag, il server [esce con un errore](https://code.claude.com/docs/it/errors.md#sandbox-is-not-supported-by-claude-remote-control) invece di avviarsi. |75> | `--sandbox`, `--no-sandbox` | Rimossi in v2.1.300. Se passi uno dei due flag, il server [esce con un errore](https://code.claude.com/docs/it/errors.md#sandbox-is-not-supported-by-claude-remote-control) invece di avviarsi. |

75>76>

76> Se si passa un flag `claude` globale prima di `remote-control`, o uno script wrapper ne aggiunge uno, Claude Code non trasporta il flag alle sessioni che il server crea. Claude Code consente il flag solo quando è noto che eliminarlo non cambia ciò che quelle sessioni possono fare, come `--verbose` o `--model`. Per qualsiasi altro flag, come `--settings`, Claude Code [rifiuta di avviarsi](https://code.claude.com/docs/it/errors.md#not-carried-over-to-the-sessions-remote-control-starts) e nomina il flag da rimuovere.77> Se passi un flag `claude` globale prima di `remote-control`, o uno script wrapper ne aggiunge uno, Claude Code non trasferisce il flag alle sessioni che il server crea. Il server si avvia comunque con alcuni flag, come `--verbose` o `--model`. Con qualsiasi altro flag, il server [non si avvia](https://code.claude.com/docs/it/errors.md#not-carried-over-to-the-sessions-remote-control-starts). Per passare un file di impostazioni, metti `--settings` dopo `remote-control`.

77>78>

78> Per eseguire il sandbox delle sessioni che il server avvia, attivare il [sandboxing](https://code.claude.com/docs/it/sandboxing.md) in un file di impostazioni.79> Per eseguire il sandbox delle sessioni che il server avvia, attivare il [sandboxing](https://code.claude.com/docs/it/sandboxing.md) in un file di impostazioni.

79>80>


375* **Le finestre di dialogo inoltrate scadono**: Claude Code mantiene aperte le richieste di permesso e le domande di `AskUserQuestion` finché non rispondi. Quando Claude Code inoltra alla sessione remota un altro tipo di finestra di dialogo, come il prompt di scelta del modello mostrato dopo un rifiuto per motivi di sicurezza, attende cinque minuti per impostazione predefinita, poi chiude la finestra di dialogo e prosegue con l'opzione predefinita senza azione. Imposta [`dialogExpiry`](https://code.claude.com/docs/it/settings-reference#dialogexpiry) per modificare o disattivare la scadenza. Richiede Claude Code v2.1.224 o versioni successive.376* **Le finestre di dialogo inoltrate scadono**: Claude Code mantiene aperte le richieste di permesso e le domande di `AskUserQuestion` finché non rispondi. Quando Claude Code inoltra alla sessione remota un altro tipo di finestra di dialogo, come il prompt di scelta del modello mostrato dopo un rifiuto per motivi di sicurezza, attende cinque minuti per impostazione predefinita, poi chiude la finestra di dialogo e prosegue con l'opzione predefinita senza azione. Imposta [`dialogExpiry`](https://code.claude.com/docs/it/settings-reference#dialogexpiry) per modificare o disattivare la scadenza. Richiede Claude Code v2.1.224 o versioni successive.

376* **Il prompt di consenso ai crediti di utilizzo di Fable non viene inoltrato**: Claude Code mostra il [prompt di consenso ai crediti di utilizzo di Fable](https://code.claude.com/docs/it/model-config.md#fable-and-usage-credits) durante la sessione solo dove la sessione è in esecuzione, non sul tuo dispositivo. Quando la sessione è in esecuzione in un terminale e nessuno risponde lì prima che Claude Code chiuda il prompt, il turno termina senza inviare la richiesta; consulta [The prompt to confirm went unanswered](https://code.claude.com/docs/it/errors.md#the-prompt-to-confirm-went-unanswered).377* **Il prompt di consenso ai crediti di utilizzo di Fable non viene inoltrato**: Claude Code mostra il [prompt di consenso ai crediti di utilizzo di Fable](https://code.claude.com/docs/it/model-config.md#fable-and-usage-credits) durante la sessione solo dove la sessione è in esecuzione, non sul tuo dispositivo. Quando la sessione è in esecuzione in un terminale e nessuno risponde lì prima che Claude Code chiuda il prompt, il turno termina senza inviare la richiesta; consulta [The prompt to confirm went unanswered](https://code.claude.com/docs/it/errors.md#the-prompt-to-confirm-went-unanswered).

377* **Alcuni comandi sono solo locali**: i comandi che funzionano solo nell'interfaccia del terminale, come `/plugin` o `/resume`, funzionano solo dalla CLI locale, indipendentemente dal fatto che tu passi un argomento. Anche `/claude-api` non è disponibile quando lo digiti da mobile o dal web. Claude può comunque [caricare quella skill autonomamente](https://code.claude.com/docs/it/skills.md#work-on-claude-api-projects) in quei contesti. I seguenti funzionano da mobile e dal web:378* **Alcuni comandi sono solo locali**: i comandi che funzionano solo nell'interfaccia del terminale, come `/plugin` o `/resume`, funzionano solo dalla CLI locale, indipendentemente dal fatto che tu passi un argomento. Anche `/claude-api` non è disponibile quando lo digiti da mobile o dal web. Claude può comunque [caricare quella skill autonomamente](https://code.claude.com/docs/it/skills.md#work-on-claude-api-projects) in quei contesti. I seguenti funzionano da mobile e dal web:

378 * Comandi con output testuale: `/compact`, `/clear`, `/context`, `/usage`, `/exit`, `/usage-credits`, `/recap` e `/reload-plugins`. `/usage-credits` stampa l'URL di fatturazione invece di aprire un browser. `/reload-plugins` funziona solo quando la sessione è in esecuzione in un terminale interattivo; una sessione senza terminale interattivo lo rifiuta.379 * Comandi con output testuale: `/compact`, `/clear`, `/context`, `/usage`, `/exit`, `/usage-credits`, `/recap` e `/reload-plugins`. `/usage-credits` risponde con del testo, ad esempio indicando dove gestire i crediti di utilizzo. `/reload-plugins` funziona solo quando la sessione è in esecuzione in un terminale interattivo; una sessione senza terminale interattivo lo rifiuta.

379 * `/model`, `/effort`, `/fast`, `/color` e `/rename`: passa il valore come argomento, ad esempio `/model sonnet` o `/effort high`. Da mobile e dal web, `/model` e `/effort` accettano l'argomento al posto del selettore o del cursore del terminale.380 * `/model`, `/effort`, `/fast`, `/color` e `/rename`: passa il valore come argomento, ad esempio `/model sonnet` o `/effort high`. Da mobile e dal web, `/model` e `/effort` accettano l'argomento al posto del selettore o del cursore del terminale.

380 * `/mcp`: dall'app mobile, restituisce un riepilogo testuale dello stato dei server invece di aprire il selettore. Sul web, `/mcp` da solo apre una directory di [connettori claude.ai](https://code.claude.com/docs/it/mcp.md#use-mcp-servers-from-claude-ai) invece di restituire il riepilogo. I [sottocomandi](https://code.claude.com/docs/it/commands.md#all-commands) `reconnect`, `enable` e `disable` funzionano da entrambi quando la sessione è in esecuzione in un terminale interattivo. `/mcp reconnect` senza nome del server riprova con ogni server che ha avuto un errore o che richiede l'autenticazione. Per autorizzare un connettore claude.ai senza il selettore, consulta [Autorizza di nuovo un connettore dalla tua shell](#authorize-a-connector-again-from-your-shell).381 * `/mcp`: dall'app mobile, restituisce un riepilogo testuale dello stato dei server invece di aprire il selettore. Sul web, `/mcp` da solo apre una directory di [connettori claude.ai](https://code.claude.com/docs/it/mcp.md#use-mcp-servers-from-claude-ai) invece di restituire il riepilogo. I [sottocomandi](https://code.claude.com/docs/it/commands.md#all-commands) `reconnect`, `enable` e `disable` funzionano da entrambi quando la sessione è in esecuzione in un terminale interattivo. `/mcp reconnect` senza nome del server riprova con ogni server che ha avuto un errore o che richiede l'autenticazione. Per autorizzare un connettore claude.ai senza il selettore, consulta [Autorizza di nuovo un connettore dalla tua shell](#authorize-a-connector-again-from-your-shell).

381 * `/config`: dall'app mobile, passa `key=value` per definire un'impostazione, oppure eseguilo senza argomenti per elencare le chiavi che puoi impostare. Sul web, `/config` apre invece **Settings > Code** o **Settings > Claude Code**.382 * `/config`: dall'app mobile, passa `key=value` per definire un'impostazione, oppure eseguilo senza argomenti per elencare le chiavi che puoi impostare. Sul web, `/config` apre invece **Settings > Code** o **Settings > Claude Code**.

routines.md +1 −1

Details

431 431 

432Ogni attività pianificata utilizza un [ambiente cloud](https://code.claude.com/docs/it/cloud-environments.md) che controlla l'accesso alla rete, le variabili d'ambiente e gli script di configurazione. L'attività eredita la policy di rete dell'ambiente a ogni esecuzione.432Ogni attività pianificata utilizza un [ambiente cloud](https://code.claude.com/docs/it/cloud-environments.md) che controlla l'accesso alla rete, le variabili d'ambiente e gli script di configurazione. L'attività eredita la policy di rete dell'ambiente a ogni esecuzione.

433 433 

434L'ambiente **Default** utilizza l'accesso **Limited** con **Allow package managers** selezionato, quindi le sue esecuzioni raggiungono l'[allowlist predefinita](https://code.claude.com/docs/it/cloud-environments.md#default-allowed-domains). Una richiesta verso un host bloccato non riesce con `403` e `x-deny-reason: host_not_allowed`. Il traffico dei connettori MCP viene instradato attraverso i server di Anthropic, quindi i connettori che aggiungi all'attività funzionano senza aggiungere i loro host in **Allowed domains**. Rimuovi i connettori che non ti servono in [Connettori](#connectors).434L'ambiente **Default** utilizza l'accesso **Limited** con **Allow package managers** selezionato, quindi le sue esecuzioni raggiungono l'[allowlist predefinita](https://code.claude.com/docs/it/cloud-environments.md#default-allowed-domains). Una richiesta verso un host bloccato non riesce con [un errore come `403` o `ENOTFOUND`](https://code.claude.com/docs/it/errors#host-not-allowed-in-a-cloud-session). Il traffico dei connettori MCP viene instradato attraverso i server di Anthropic, quindi i connettori che aggiungi all'attività funzionano senza aggiungere i loro host in **Allowed domains**. Rimuovi i connettori che non ti servono in [Connettori](#connectors).

435 435 

436Per consentire domini aggiuntivi su uno dei tuoi ambienti, segui questi passaggi. Un [ambiente condiviso dall'organizzazione](https://code.claude.com/docs/it/cloud-environments.md#organization-shared-environments) si apre qui in sola lettura, quindi è un Owner a modificarne l'accesso alla rete dalla pagina **Cloud environments** nelle [impostazioni di amministrazione](https://claude.ai/admin-settings).436Per consentire domini aggiuntivi su uno dei tuoi ambienti, segui questi passaggi. Un [ambiente condiviso dall'organizzazione](https://code.claude.com/docs/it/cloud-environments.md#organization-shared-environments) si apre qui in sola lettura, quindi è un Owner a modificarne l'accesso alla rete dalla pagina **Cloud environments** nelle [impostazioni di amministrazione](https://claude.ai/admin-settings).

437 437 

sandboxing.md +5 −3

Details

276 276 

277Questi percorsi vengono applicati a livello di sistema operativo, quindi tutti i comandi eseguiti all'interno della sandbox, inclusi i loro processi figli, li rispettano. Questo è l'approccio consigliato quando uno strumento ha bisogno dell'accesso in scrittura a una posizione specifica, anziché escludere completamente lo strumento dalla sandbox con `excludedCommands`.277Questi percorsi vengono applicati a livello di sistema operativo, quindi tutti i comandi eseguiti all'interno della sandbox, inclusi i loro processi figli, li rispettano. Questo è l'approccio consigliato quando uno strumento ha bisogno dell'accesso in scrittura a una posizione specifica, anziché escludere completamente lo strumento dalla sandbox con `excludedCommands`.

278 278 

279Su Linux e WSL2, una voce per un percorso che non esiste ancora non ha alcun effetto, quindi crea prima il percorso.

280 

279Quando definisci lo stesso array del filesystem in più [ambiti di impostazioni](https://code.claude.com/docs/it/settings.md#settings-precedence), Claude Code ne esegue il merge, combinando i percorsi anziché sostituire l'array di un ambito con quello di un altro. Claude Code esclude una voce dal merge quando è coperta da un blocco descritto in [Impedire agli sviluppatori di ampliare la policy](#keep-developers-from-widening-the-policy).281Quando definisci lo stesso array del filesystem in più [ambiti di impostazioni](https://code.claude.com/docs/it/settings.md#settings-precedence), Claude Code ne esegue il merge, combinando i percorsi anziché sostituire l'array di un ambito con quello di un altro. Claude Code esclude una voce dal merge quando è coperta da un blocco descritto in [Impedire agli sviluppatori di ampliare la policy](#keep-developers-from-widening-the-policy).

280 282 

281Se escludi un'origine con [`--setting-sources`](https://code.claude.com/docs/it/cli-reference) nella CLI o con [`settingSources`](https://code.claude.com/docs/it/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources) nell'Agent SDK, Claude Code ignora le sue voci `sandbox.filesystem`, le sue regole di permesso `Edit` e le sue regole di negazione `Read` durante la creazione della configurazione della sandbox. Richiede Claude Code v2.1.246 o successivo.283Se escludi un'origine con [`--setting-sources`](https://code.claude.com/docs/it/cli-reference) nella CLI o con [`settingSources`](https://code.claude.com/docs/it/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources) nell'Agent SDK, Claude Code ignora le sue voci `sandbox.filesystem`, le sue regole di permesso `Edit` e le sue regole di negazione `Read` durante la creazione della configurazione della sandbox. Richiede Claude Code v2.1.246 o successivo.


376 378 

377Poiché disattivare l'isolamento del filesystem amplia ciò che i comandi in sandbox possono fare, Claude Code rispetta `filesystem.disabled` solo da queste origini di impostazioni:379Poiché disattivare l'isolamento del filesystem amplia ciò che i comandi in sandbox possono fare, Claude Code rispetta `filesystem.disabled` solo da queste origini di impostazioni:

378 380 

379* Le impostazioni utente, le impostazioni gestite e il flag CLI `--settings` possono impostarlo. Le impostazioni di progetto in `.claude/settings.json` e `.claude/settings.local.json` non possono, quindi un progetto scaricato non può disattivare l'isolamento del filesystem.381* Le impostazioni utente, le impostazioni gestite e il flag CLI `--settings` possono impostarlo. Le impostazioni di progetto in `.claude/settings.json` e `.claude/settings.local.json` non possono impostarlo.

380* Quando le impostazioni gestite configurano `sandbox.filesystem` in qualsiasi modo, o elencano una qualsiasi voce `sandbox.credentials.files` con `"mode": "deny"`, solo le impostazioni gestite possono impostare la chiave. Questo impedisce agli sviluppatori di disattivare l'isolamento del filesystem in una distribuzione di questo tipo; per disattivarlo per tutti, imposta `"disabled": true` nelle impostazioni gestite.382* Quando le impostazioni gestite configurano `sandbox.filesystem` in qualsiasi modo, o elencano una qualsiasi voce `sandbox.credentials.files` con `"mode": "deny"`, solo le impostazioni gestite possono impostare la chiave. Per disattivare l'isolamento del filesystem per tutti, imposta `"disabled": true` nelle impostazioni gestite.

381* Quando [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](https://code.claude.com/docs/it/env-vars) è impostata, Claude Code ignora `filesystem.disabled` da ogni origine, incluse le impostazioni gestite, e mantiene attivo l'isolamento del filesystem.383* Quando [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](https://code.claude.com/docs/it/env-vars) è impostata, Claude Code ignora `filesystem.disabled` da ogni origine, incluse le impostazioni gestite.

382 384 

383Una voce `mask` [valida](https://code.claude.com/docs/it/settings-reference.md#invalid-credential-entries-in-managed-settings) non blocca la chiave, anche quando Claude Code [ripiega su `deny`](#mask-credential-files) per essa all'avvio. Elenca un percorso che non può essere mascherato, come una directory di credenziali, come voce `deny` esplicita nelle impostazioni gestite, che blocca la chiave.385Una voce `mask` [valida](https://code.claude.com/docs/it/settings-reference.md#invalid-credential-entries-in-managed-settings) non blocca la chiave, anche quando Claude Code [ripiega su `deny`](#mask-credential-files) per essa all'avvio. Elenca un percorso che non può essere mascherato, come una directory di credenziali, come voce `deny` esplicita nelle impostazioni gestite, che blocca la chiave.

384 386 

Details

117 117 

118* **Listener**: il listener è un proxy forward su `127.0.0.1`. Il runner avvia il listener prima di registrarsi con il piano di controllo, e esce all'avvio se il listener non può avviarsi.118* **Listener**: il listener è un proxy forward su `127.0.0.1`. Il runner avvia il listener prima di registrarsi con il piano di controllo, e esce all'avvio se il listener non può avviarsi.

119* **Variabili proxy**: il runner riscrive quale di `HTTPS_PROXY` e `HTTP_PROXY` hai impostato in modo che punti al listener. Quel valore riscritto raggiunge il runner stesso, i suoi lifecycle hook, e ogni sessione che esegue.119* **Variabili proxy**: il runner riscrive quale di `HTTPS_PROXY` e `HTTP_PROXY` hai impostato in modo che punti al listener. Quel valore riscritto raggiunge il runner stesso, i suoi lifecycle hook, e ogni sessione che esegue.

120* **Rotazione del token**: un token ruotato ha effetto senza un riavvio. Per ogni connessione che il listener apre al tuo proxy, il runner esegue il tuo comando o legge di nuovo il tuo file e aggiunge il risultato come intestazione.120* **Rotazione del token**: quando ruoti il token, le nuove connessioni usano quello nuovo senza un riavvio del runner. Per ogni connessione che il listener apre al tuo proxy, il runner esegue il tuo comando o legge di nuovo il tuo file e aggiunge il risultato come intestazione. Una connessione già aperta resta utilizzabile con il vecchio token finché il tuo proxy non la chiude o il runner non termina.

121* **Ambiente della sessione**: una sessione raggiunge il tuo proxy solo attraverso il listener. Nell'ambiente di ogni sessione il runner rimuove `ALL_PROXY`, rimuove qualsiasi ortografia di `HTTPS_PROXY` o `HTTP_PROXY` che non hai impostato, e fissa `NO_PROXY` al valore del runner stesso.121* **Ambiente della sessione**: una sessione raggiunge il tuo proxy solo attraverso il listener. Nell'ambiente di ogni sessione il runner rimuove `ALL_PROXY`, rimuove qualsiasi ortografia di `HTTPS_PROXY` o `HTTP_PROXY` che non hai impostato, e fissa `NO_PROXY` al valore del runner stesso.

122* **Log**: il runner non registra mai il valore dell'intestazione.122* **Log**: il runner non registra mai il valore dell'intestazione.

123 123 


840 840 

841### Alcune sessioni non contano come inattive841### Alcune sessioni non contano come inattive

842 842 

843Una sessione che tiene un'attività in background che continua a essere eseguita non conta come inattiva, quindi `--release-idle-session-min` non rilascerà lo slot di quella sessione. Una sessione che sta aspettando un'approvazione richiesta dall'interno di una chiamata a uno strumento in esecuzione non conta neanche come inattiva. Imposta `--kill-session-after-min` insieme ad essa come un hard backstop.843Finché una sessione non conta come inattiva, mantiene il suo slot oltre il limite di `--release-idle-session-min`, quindi imposta anche `--kill-session-after-min`.

844 

845Una sessione conta come inattiva dopo che il suo turno è terminato o mentre il suo turno attende il suo utente, ma non in casi come questi:

846 

847* Il suo turno è terminato e non sta aspettando il suo utente, ma un'attività in background continua a essere eseguita

848* Il suo turno attende un'approvazione che uno strumento non MCP richiede mentre quello strumento è in esecuzione

849* Il suo turno attende una [richiesta `elicitation/create`](https://code.claude.com/docs/it/mcp#respond-to-mcp-elicitation-requests) di un server MCP

844 850 

845`--kill-session-after-min` è un backstop per le sessioni runaway. Su un runner su v2.1.260 o successivo, una sessione che raggiunge il limite non viene terminata immediatamente. Il runner le dà una finestra di grazia, 15 minuti per impostazione predefinita, che puoi cambiare con [`SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS`](https://code.claude.com/docs/it/self-hosted-environments-reference#environment-variable-only-settings):851`--kill-session-after-min` è un backstop per le sessioni runaway. Su un runner su v2.1.260 o successivo, una sessione che raggiunge il limite non viene terminata immediatamente. Il runner le dà una finestra di grazia, 15 minuti per impostazione predefinita, che puoi cambiare con [`SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS`](https://code.claude.com/docs/it/self-hosted-environments-reference#environment-variable-only-settings):

846 852 

847* Se la sessione sta aspettando il suo utente, il runner la rilascia. Se il suo turno è finito e tiene solo compiti di background, il runner aspetta fino a 60 secondi affinché questi compiti finiscano e poi la rilascia. La sessione riprende quando il suo utente invia il suo prossimo messaggio.853* Se la sessione sta aspettando il suo utente, il runner la rilascia. Se il suo turno è finito e tiene solo compiti di background, il runner aspetta fino a 60 secondi affinché questi compiti finiscano e poi la rilascia. La sessione riprende quando il suo utente invia il suo prossimo messaggio.

848* Se un turno è ancora in esecuzione, il runner aspetta che il turno finisca, o che la sessione aspetti successivamente il suo utente, e poi la rilascia.854* Se un turno è ancora in esecuzione, il runner aspetta che il turno finisca, o che la sessione aspetti successivamente il suo utente, e poi la rilascia.

849* Se la sessione è ancora sul runner quando la finestra di grazia scade, il runner la termina, e il lavoro di qualsiasi turno in esecuzione è perso. Un turno che aspetta un'approvazione richiesta dall'interno di una chiamata di strumento in esecuzione è un modo in cui una sessione sopravvive alla finestra.855* Se la sessione è ancora sul runner quando la finestra di grazia scade, il runner la termina, e il lavoro di qualsiasi turno in esecuzione è perso. Ad esempio, una sessione può restare sul runner fino a quel momento se il suo turno attende un'approvazione che uno strumento non MCP richiede mentre quello strumento è in esecuzione. Una sessione può restarvi anche mentre il suo turno attende una richiesta `elicitation/create` di un server MCP.

850 856 

851Una sessione rilasciata riprende da un clone fresco, quindi il lavoro che non aveva spinto è comunque perso; vedi [Le sessioni riprese perdono il lavoro non spinto](#resumed-sessions-lose-unpushed-work). Prima di v2.1.260, il runner terminava ogni sessione al limite, dopo aver aspettato al massimo la finestra di grazia affinché un turno in esecuzione finisca.857Una sessione rilasciata riprende da un clone fresco, quindi il lavoro che non aveva spinto è comunque perso; vedi [Le sessioni riprese perdono il lavoro non spinto](#resumed-sessions-lose-unpushed-work). Prima di v2.1.260, il runner terminava ogni sessione al limite, dopo aver aspettato al massimo la finestra di grazia affinché un turno in esecuzione finisca.

852 858 

Details

252 252 

253Ogni altra chiave nel blocco `env` nella cache si applica all'avvio. Una volta che il server conferma il payload, e dopo che lo hai approvato se richiede l'[approvazione di sicurezza](#security-approval-dialogs), le variabili trattenute si applicano per il resto della sessione.253Ogni altra chiave nel blocco `env` nella cache si applica all'avvio. Una volta che il server conferma il payload, e dopo che lo hai approvato se richiede l'[approvazione di sicurezza](#security-approval-dialogs), le variabili trattenute si applicano per il resto della sessione.

254 254 

255Se la tua organizzazione ha bisogno di un proxy per raggiungere `api.anthropic.com`, il trattenimento riguarda solo il blocco `env` fornito dal server: un proxy impostato in un blocco `env` [gestito dall'endpoint](https://code.claude.com/docs/it/managed-settings.md#delivery-mechanisms) tramite MDM o `managed-settings.json`, nell'ambiente della shell o nelle [impostazioni utente](https://code.claude.com/docs/it/settings.md#where-settings-live) raggiunge il recupero delle impostazioni. L'origine gestita dall'endpoint richiede Claude Code v2.1.223 o successivo: il valore del proxy gestito dal server nella cache viene trattenuto fino alla conferma da parte del recupero, quindi il valore gestito dall'endpoint lo completa per chiave e raggiunge il recupero stesso. Prima della v2.1.223, usa l'ambiente della shell o le impostazioni utente in modo che il proxy si applichi insieme a un payload del server nella cache. Il primo avvio non ha cache, quindi per il recupero iniziale è comunque necessaria un'origine gestita dall'endpoint, l'ambiente della shell o le impostazioni utente.255Se il recupero richiede un proxy, imposta `HTTPS_PROXY` in uno dei seguenti:

256 

257* Un blocco `env` [gestito dall'endpoint](https://code.claude.com/docs/it/managed-settings.md#delivery-mechanisms) tramite MDM o `managed-settings.json`. Questa origine richiede Claude Code v2.1.223 o successivo. Prima della v2.1.223, usa l'ambiente della shell o le impostazioni utente in modo che il proxy [si applichi insieme a un payload del server nella cache](#per-key-exceptions-across-managed-sources).

258* L'ambiente della shell

259* [Impostazioni utente](https://code.claude.com/docs/it/settings.md#where-settings-live)

260 

261Imposta `HTTPS_PROXY` anche se `ALL_PROXY` indica già il proxy.

256 262 

257Claude Code applica la maggior parte degli aggiornamenti delle impostazioni alle sessioni in esecuzione senza riavvio. Alcuni aggiornamenti si applicano solo all'avvio successivo, tra cui la configurazione dell'exporter OpenTelemetry, la chiave `model` e la rimozione di una variabile dal blocco `env`.263Claude Code applica la maggior parte degli aggiornamenti delle impostazioni alle sessioni in esecuzione senza riavvio. Alcuni aggiornamenti si applicano solo all'avvio successivo, tra cui la configurazione dell'exporter OpenTelemetry, la chiave `model` e la rimozione di una variabile dal blocco `env`.

258 264 

settings.md +1 −1

Details

177 177 

178Claude Code osserva i vostri file di impostazioni e li ricarica quando cambiano, quindi applica la maggior parte degli edits alla sessione in esecuzione senza un riavvio, inclusi gli edits a `permissions`, `hooks` e helper di credenziali come `apiKeyHelper`. Claude Code anche carica un file di impostazioni che create a metà sessione se la sua cartella esisteva quando la sessione è iniziata. Per la cartella `.claude/` del progetto, carica il file anche quando create la cartella nella stessa sessione.178Claude Code osserva i vostri file di impostazioni e li ricarica quando cambiano, quindi applica la maggior parte degli edits alla sessione in esecuzione senza un riavvio, inclusi gli edits a `permissions`, `hooks` e helper di credenziali come `apiKeyHelper`. Claude Code anche carica un file di impostazioni che create a metà sessione se la sua cartella esisteva quando la sessione è iniziata. Per la cartella `.claude/` del progetto, carica il file anche quando create la cartella nella stessa sessione.

179 179 

180Il ricaricamento copre le impostazioni utente, progetto, locale e gestite, e Claude Code esegue l'[hook `ConfigChange`](https://code.claude.com/docs/it/hooks#configchange) per ogni modifica di file di impostazioni che rileva, non per le impostazioni gestite che arrivano da MDM o dalla console claude.ai. Le impostazioni gestite che arrivano attraverso MDM o dalla console claude.ai raggiungono una sessione in esecuzione secondo una pianificazione piuttosto che al salvataggio; la [tabella di consegna](https://code.claude.com/docs/it/managed-settings.md#choose-a-delivery-mechanism) la fornisce per fonte.180Il ricaricamento copre le impostazioni utente, di progetto, locali e gestite. Claude Code esegue l'[hook `ConfigChange`](https://code.claude.com/docs/it/hooks#configchange) per le modifiche dirette ai file di impostazioni, non per le impostazioni gestite che arrivano da MDM o dalla console claude.ai. Le impostazioni gestite che arrivano attraverso MDM o dalla console claude.ai raggiungono una sessione in esecuzione secondo una pianificazione anziché al salvataggio; la [tabella di consegna](https://code.claude.com/docs/it/managed-settings.md#choose-a-delivery-mechanism) la indica per ciascuna fonte.

181 181 

182Claude Code legge alcune chiavi solo una volta, all'avvio della sessione, quindi un edit a una di esse non raggiunge la sessione in esecuzione. Le chiavi lato amministratore che attendono anche un riavvio, come `requiredMinimumVersion`, sono elencate sotto [dove e quando si applica una politica](https://code.claude.com/docs/it/managed-settings.md#where-and-when-a-policy-applies). Quelle che è più probabile che modifichiate a metà sessione:182Claude Code legge alcune chiavi solo una volta, all'avvio della sessione, quindi un edit a una di esse non raggiunge la sessione in esecuzione. Le chiavi lato amministratore che attendono anche un riavvio, come `requiredMinimumVersion`, sono elencate sotto [dove e quando si applica una politica](https://code.claude.com/docs/it/managed-settings.md#where-and-when-a-policy-applies). Quelle che è più probabile che modifichiate a metà sessione:

183 183 

Details

235| [`strictPluginOnlyCustomization.mcp`](#strictpluginonlycustomization-mcp) | Blocca i [server MCP](https://code.claude.com/docs/it/mcp.md) provenienti da fonti utente e di progetto | Plugin e skill | Managed |235| [`strictPluginOnlyCustomization.mcp`](#strictpluginonlycustomization-mcp) | Blocca i [server MCP](https://code.claude.com/docs/it/mcp.md) provenienti da fonti utente e di progetto | Plugin e skill | Managed |

236| [`strictPluginOnlyCustomization.skills`](#strictpluginonlycustomization-skills) | Blocca le [skill](https://code.claude.com/docs/it/skills.md) provenienti da fonti utente e di progetto | Plugin e skill | Managed |236| [`strictPluginOnlyCustomization.skills`](#strictpluginonlycustomization-skills) | Blocca le [skill](https://code.claude.com/docs/it/skills.md) provenienti da fonti utente e di progetto | Plugin e skill | Managed |

237| [`subagentPromptCacheTtl`](#subagentpromptcachettl) | Scegli la [durata della cache del prompt](https://code.claude.com/docs/it/prompt-caching.md#cache-lifetime) per i subagent e altre richieste al di fuori della conversazione principale | Modello e risposte | Any file |237| [`subagentPromptCacheTtl`](#subagentpromptcachettl) | Scegli la [durata della cache del prompt](https://code.claude.com/docs/it/prompt-caching.md#cache-lifetime) per i subagent e altre richieste al di fuori della conversazione principale | Modello e risposte | Any file |

238| [`subagentStatusLine`](#subagentstatusline) | Riscrivi le righe nella visualizzazione delle attività dei [subagent](https://code.claude.com/docs/it/sub-agents.md) con un tuo comando | Interfaccia e terminale | Any file |

239| [`switchModelsOnFlag`](#switchmodelsonflag) | Cambia modello automaticamente o metti in pausa quando un [classificatore di sicurezza](https://code.claude.com/docs/it/model-config.md#ask-before-switching) segnala una richiesta | Modello e risposte | Any file |238| [`switchModelsOnFlag`](#switchmodelsonflag) | Cambia modello automaticamente o metti in pausa quando un [classificatore di sicurezza](https://code.claude.com/docs/it/model-config.md#ask-before-switching) segnala una richiesta | Modello e risposte | Any file |

240| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | Interrompi il caricamento dei [plugin abilitati sul tuo account claude.ai](https://code.claude.com/docs/it/plugins/loading.md#synced-plugins) e il download di quelli nuovi | Plugin e skill | User, local, or managed |239| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | Interrompi il caricamento dei [plugin abilitati sul tuo account claude.ai](https://code.claude.com/docs/it/plugins/loading.md#synced-plugins) e il download di quelli nuovi | Plugin e skill | User, local, or managed |

241| [`syncClaudeAiSkills`](#syncclaudeaiskills) | Interrompi il caricamento delle [skill abilitate sul tuo account claude.ai](https://code.claude.com/docs/it/skills.md#how-synced-skills-behave) e il download di quelle nuove | Plugin e skill | User, local, or managed |240| [`syncClaudeAiSkills`](#syncclaudeaiskills) | Interrompi il caricamento delle [skill abilitate sul tuo account claude.ai](https://code.claude.com/docs/it/skills.md#how-synced-skills-behave) e il download di quelle nuove | Plugin e skill | User, local, or managed |


885}884}

886```885```

887 886 

888Consulta [Instradare tutti i comandi shell attraverso il classificatore](https://code.claude.com/docs/it/auto-mode-config.md#route-all-shell-commands-through-the-classifier).887Questa chiave funziona diversamente in una sessione Code Mode. Consulta [Instradare tutti i comandi shell attraverso il classificatore](https://code.claude.com/docs/it/auto-mode-config.md#route-all-shell-commands-through-the-classifier).

889 888 

890### `disableAutoMode`889### `disableAutoMode`

891 890 


1533}1532}

1534```1533```

1535 1534 

1535Su Linux e WSL2, una voce per un percorso che non esiste ancora non ha effetto, quindi crea prima il percorso.

1536 

1536Claude Code esegue il merge delle voci `allowWrite` e dei percorsi dalle tue regole di permesso allow `Edit(...)` negli ambiti di impostazioni che la sessione carica, escludendo quelli dalle impostazioni del repository mentre [`permissions.blockReadsOutsideWorkingDirectories`](#sandboxed-commands-under-the-block) è attivo. Anche i [blocchi del repository](https://code.claude.com/docs/it/sandboxing.md#repository-settings-under-an-admin-required-sandbox) possono escludere le voci di un repository. Una voce `allowWrite` non può sollevare un [percorso protetto](https://code.claude.com/docs/it/sandboxing.md#protected-paths).1537Claude Code esegue il merge delle voci `allowWrite` e dei percorsi dalle tue regole di permesso allow `Edit(...)` negli ambiti di impostazioni che la sessione carica, escludendo quelli dalle impostazioni del repository mentre [`permissions.blockReadsOutsideWorkingDirectories`](#sandboxed-commands-under-the-block) è attivo. Anche i [blocchi del repository](https://code.claude.com/docs/it/sandboxing.md#repository-settings-under-an-admin-required-sandbox) possono escludere le voci di un repository. Una voce `allowWrite` non può sollevare un [percorso protetto](https://code.claude.com/docs/it/sandboxing.md#protected-paths).

1537 1538 

1538### `sandbox.filesystem.denyWrite`1539### `sandbox.filesystem.denyWrite`


2453 2454 

2454#### Come i valori di `env` interagiscono con la tua shell2455#### Come i valori di `env` interagiscono con la tua shell

2455 2456 

2456* Un valore qui sovrascrive la stessa variabile esportata nella tua shell, e quando più di un file di impostazioni imposta una variabile, si applica quello con [precedenza più alta](https://code.claude.com/docs/it/settings.md#settings-precedence). [Variabili che Claude Code ignora in `env`](#variables-claude-code-ignores-in-env) elenca le eccezioni per le impostazioni di progetto e locali.2457* Un valore qui sovrascrive la stessa variabile esportata nella tua shell, e quando più di un file di impostazioni imposta una variabile, si applica quello con [precedenza più alta](https://code.claude.com/docs/it/settings.md#settings-precedence). [Variabili che Claude Code ignora in `env`](#variables-claude-code-ignores-in-env) elenca le eccezioni.

2457* Quando è l'app Claude Desktop o un runner di [ambiente self-hosted](https://code.claude.com/docs/it/self-hosted-environments) ad avviare la sessione, ha invece la precedenza l'ambiente di avvio che costruisce: Claude Code ignora un valore `env` proveniente da qualsiasi file di impostazioni per una variabile che l'ambiente di avvio imposta già. Il [log di debug](https://code.claude.com/docs/it/debug-your-config.md) indica ogni variabile ignorata.2458* Quando è l'app Claude Desktop o un runner di [ambiente self-hosted](https://code.claude.com/docs/it/self-hosted-environments) ad avviare la sessione, ha invece la precedenza l'ambiente di avvio che costruisce: Claude Code ignora un valore `env` proveniente da qualsiasi file di impostazioni per una variabile che l'ambiente di avvio imposta già. Il [log di debug](https://code.claude.com/docs/it/debug-your-config.md) indica ogni variabile ignorata.

2458* Per annullare un'esportazione della shell, imposta la variabile su `""`. Claude Code tratta un valore vuoto come non impostato per la selezione del provider, e i sottoprocessi ereditano il valore vuoto.2459* Per annullare un'esportazione della shell, imposta la variabile su `""`. Claude Code tratta un valore vuoto come non impostato per la selezione del provider, e i sottoprocessi ereditano il valore vuoto.

2459* `NO_COLOR` e `FORCE_COLOR` impostate qui raggiungono solo i sottoprocessi. Per cambiare i colori dell'interfaccia di Claude Code stesso, impostale nella tua shell prima di avviare `claude`.2460* `NO_COLOR` e `FORCE_COLOR` impostate qui raggiungono solo i sottoprocessi. Per cambiare i colori dell'interfaccia di Claude Code stesso, impostale nella tua shell prima di avviare `claude`.


2494 * [`CLAUDE_CODE_DISABLE_FILE_MENTIONS`](https://code.claude.com/docs/it/env-vars#variables), che impedisce a Claude Code di espandere le menzioni `@` di file e directory.2495 * [`CLAUDE_CODE_DISABLE_FILE_MENTIONS`](https://code.claude.com/docs/it/env-vars#variables), che impedisce a Claude Code di espandere le menzioni `@` di file e directory.

2495 2496 

2496 Prima della v2.1.251, le impostazioni di progetto e locali potevano impostare anche le variabili di questo elenco che scelgono dove Claude Code scrive i propri file o che esportano il contenuto della sessione, tranne `HOME` e `XDG_CONFIG_HOME`. Prima della v2.1.290, potevano impostare anche le variabili dei timer delle finestre di dialogo e `CLAUDE_CODE_DISABLE_ATTACHMENTS`.2497 Prima della v2.1.251, le impostazioni di progetto e locali potevano impostare anche le variabili di questo elenco che scelgono dove Claude Code scrive i propri file o che esportano il contenuto della sessione, tranne `HOME` e `XDG_CONFIG_HOME`. Prima della v2.1.290, potevano impostare anche le variabili dei timer delle finestre di dialogo e `CLAUDE_CODE_DISABLE_ATTACHMENTS`.

2498* Puoi attivare la [Code Mode](https://code.claude.com/docs/it/code-mode.md) con [`CLAUDE_CODE_EXPERIMENTAL_CODE_MODE`](https://code.claude.com/docs/it/env-vars#variables) dalla tua shell, dalle impostazioni utente o da un file `--settings`, e non dalle impostazioni gestite, di progetto o locali. Con uno `0` in una qualsiasi delle prime tre o nelle impostazioni gestite, la Code Mode resta disattivata qualunque cosa tu imposti altrove. Quando le impostazioni gestite contengono un `1`, imposta il tuo `1` nelle impostazioni utente, perché un `1` nella tua shell viene ignorato

2497* Le variabili di identità di cui sono proprietari gli ambienti di hosting di Claude Code, come `CLAUDE_CODE_REMOTE` e `CLAUDE_CODE_ACCOUNT_UUID`, vengono ignorate in ogni file.2499* Le variabili di identità di cui sono proprietari gli ambienti di hosting di Claude Code, come `CLAUDE_CODE_REMOTE` e `CLAUDE_CODE_ACCOUNT_UUID`, vengono ignorate in ogni file.

2498* [`CLAUDE_CODE_MESSAGING_SOCKET` e `CLAUDE_CODE_MESSAGING_TOKEN`](https://code.claude.com/docs/it/env-vars#variables), che Claude Code esporta da sé, vengono ignorate in ogni file. L'esclusione della variabile del socket richiede Claude Code v2.1.224 o successiva, e l'esclusione del token richiede la v2.1.228 o successiva.2500* [`CLAUDE_CODE_MESSAGING_SOCKET` e `CLAUDE_CODE_MESSAGING_TOKEN`](https://code.claude.com/docs/it/env-vars#variables), che Claude Code esporta da sé, vengono ignorate in ogni file. L'esclusione della variabile del socket richiede Claude Code v2.1.224 o successiva, e l'esclusione del token richiede la v2.1.228 o successiva.

2499* [`CLAUDE_CODE_PROJECT_DIR_NAME`](https://code.claude.com/docs/it/sessions#name-the-project-directory-yourself), che Claude Code legge solo dall'ambiente di avvio, viene ignorata in ogni file; richiede la v2.1.234 o successiva.2501* [`CLAUDE_CODE_PROJECT_DIR_NAME`](https://code.claude.com/docs/it/sessions#name-the-project-directory-yourself), che Claude Code legge solo dall'ambiente di avvio, viene ignorata in ogni file; richiede la v2.1.234 o successiva.


3173 3175 

3174L'esempio ha bisogno di [`jq`](https://jqlang.org/) installato e viene eseguito in una shell. Per equivalenti PowerShell e Git Bash, vedi [Configurazione di Windows](https://code.claude.com/docs/it/statusline.md#windows-configuration); per la configurazione completa, vedi [Configura manualmente una riga di stato](https://code.claude.com/docs/it/statusline.md#manually-configure-a-status-line).3176L'esempio ha bisogno di [`jq`](https://jqlang.org/) installato e viene eseguito in una shell. Per equivalenti PowerShell e Git Bash, vedi [Configurazione di Windows](https://code.claude.com/docs/it/statusline.md#windows-configuration); per la configurazione completa, vedi [Configura manualmente una riga di stato](https://code.claude.com/docs/it/statusline.md#manually-configure-a-status-line).

3175 3177 

3176### `subagentStatusLine`

3177 

3178Quando Claude esegue [subagenti](https://code.claude.com/docs/it/sub-agents.md), Claude Code li elenca in una visualizzazione di attività sotto il prompt, una riga per subagente che mostra `name · description · token count`. Questa chiave ti consente di eseguire il tuo comando per riscrivere quelle righe, ad esempio per mostrare l'utilizzo del contesto di ogni subagente come percentuale. Su ogni aggiornamento, Claude Code invia le righe visibili come un oggetto JSON su stdin, con un array `tasks` che contiene `id`, `name`, `status`, `model`, `tokenCount` di ogni subagente e altro, e sostituisce la riga per ogni `id` che scrivi di nuovo come una riga `{"id", "content"}`. Le righe che non scrivi di nuovo mantengono il rendering predefinito.

3179 

3180* **Scope**: [`Any file`](#scopes). Quando [`allowManagedHooksOnly`](#allowmanagedhooksonly) è attivo, o [`disableAllHooks`](#disableallhooks) è impostato al di fuori delle impostazioni gestite, solo il valore delle impostazioni gestite viene eseguito.

3181* **Type**: object con `type` impostato su `"command"` e una stringa `command`

3182* **Default**: unset, quindi Claude Code renderizza le righe predefinite

3183 

3184```json settings.json theme={null}

3185{

3186 "subagentStatusLine": {

3187 "type": "command",

3188 "command": "jq -c '.tasks[] | {id, content: \"\\(.name): \\(.tokenCount) tokens\"}'"

3189 }

3190}

3191```

3192 

3193Vedi [Righe di stato dei subagenti](https://code.claude.com/docs/it/statusline.md#subagent-status-lines).

3194 

3195### `syntaxHighlightingDisabled`3178### `syntaxHighlightingDisabled`

3196 3179 

3197Claude Code colora il codice per linguaggio nei diff, nei blocchi di codice e nelle anteprime di file che mostra nel terminale, con il suo evidenziatore integrato. Imposta questa chiave su `true` per mostrarli invece come testo semplice, ad esempio se i colori si scontrano con il tema del tuo terminale o rallentano un lettore di schermo.3180Claude Code colora il codice per linguaggio nei diff, nei blocchi di codice e nelle anteprime di file che mostra nel terminale, con il suo evidenziatore integrato. Imposta questa chiave su `true` per mostrarli invece come testo semplice, ad esempio se i colori si scontrano con il tema del tuo terminale o rallentano un lettore di schermo.


3648* **Tutto il resto è bloccato**: gli hook dell'utente, del progetto e locali, gli hook e i mod da altri plugin installati e gli hook dichiarati nel frontmatter dell'agente. I [mod integrati in Claude Code](https://code.claude.com/docs/it/plugins/mods/overview.md#mods-built-into-claude-code) continuano a essere eseguiti. Per bloccare solo i mod degli utenti, imposta invece [`allowManagedModsOnly`](https://code.claude.com/docs/it/plugins/mods/admin#set-options-on-the-built-in-guard).3631* **Tutto il resto è bloccato**: gli hook dell'utente, del progetto e locali, gli hook e i mod da altri plugin installati e gli hook dichiarati nel frontmatter dell'agente. I [mod integrati in Claude Code](https://code.claude.com/docs/it/plugins/mods/overview.md#mods-built-into-claude-code) continuano a essere eseguiti. Per bloccare solo i mod degli utenti, imposta invece [`allowManagedModsOnly`](https://code.claude.com/docs/it/plugins/mods/admin#set-options-on-the-built-in-guard).

3649* **I plugin con origine comando sono disabilitati**: Claude Code disabilita anche i plugin con un'[origine `command`](https://code.claude.com/docs/it/plugins/marketplace-reference#command-plugin-source), inclusi i plugin forzati abilitati in `enabledPlugins` gestito, a meno che tu non imposti [`disableCommandPluginSources`](#disablecommandpluginsources) su `false` esplicitamente3632* **I plugin con origine comando sono disabilitati**: Claude Code disabilita anche i plugin con un'[origine `command`](https://code.claude.com/docs/it/plugins/marketplace-reference#command-plugin-source), inclusi i plugin forzati abilitati in `enabledPlugins` gestito, a meno che tu non imposti [`disableCommandPluginSources`](#disablecommandpluginsources) su `false` esplicitamente

3650* **I comandi marketplace `headersHelper` sono bloccati**: Claude Code blocca anche i comandi marketplace [`headersHelper`](https://code.claude.com/docs/it/plugins/host-marketplace#authenticate-archive-downloads) a meno che [`disableCommandPluginSources`](#disablecommandpluginsources) non sia esplicitamente impostato su `false`, ad eccezione di un marketplace che le impostazioni gestite stesse dichiarano. Richiede Claude Code v2.1.238 o successivo3633* **I comandi marketplace `headersHelper` sono bloccati**: Claude Code blocca anche i comandi marketplace [`headersHelper`](https://code.claude.com/docs/it/plugins/host-marketplace#authenticate-archive-downloads) a meno che [`disableCommandPluginSources`](#disablecommandpluginsources) non sia esplicitamente impostato su `false`, ad eccezione di un marketplace che le impostazioni gestite stesse dichiarano. Richiede Claude Code v2.1.238 o successivo

3651* **La riga di stato e il suggerimento di file si restringono alle impostazioni gestite**: Claude Code legge [`statusLine`](https://code.claude.com/docs/it/statusline), [`fileSuggestion`](#filesuggestion) e [`subagentStatusLine`](https://code.claude.com/docs/it/statusline#subagent-status-lines) solo dalle impostazioni gestite, seguendo i [gate della riga di stato e del suggerimento di file](#status-line-and-file-suggestion-gates)3634* **La riga di stato e il suggerimento di file si restringono alle impostazioni gestite**: Claude Code legge [`statusLine`](https://code.claude.com/docs/it/statusline) e [`fileSuggestion`](#filesuggestion) solo dalle impostazioni gestite, seguendo i [gate della riga di stato e del suggerimento di file](#status-line-and-file-suggestion-gates)

3652 3635 

3653Il comando [`/goal`](https://code.claude.com/docs/it/goal) non può essere eseguito mentre questa chiave è impostata, perché dipende dagli hook.3636Il comando [`/goal`](https://code.claude.com/docs/it/goal) non può essere eseguito mentre questa chiave è impostata, perché dipende dagli hook.

3654 3637 


3687 3670 

3688#### Gate della riga di stato e del suggerimento di file3671#### Gate della riga di stato e del suggerimento di file

3689 3672 

3690Claude Code prende due decisioni per `statusLine`, `fileSuggestion` e `subagentStatusLine`, in questo ordine:3673Claude Code prende due decisioni per `statusLine` e `fileSuggestion`, in questo ordine:

3691 3674 

3692* **Disattivato completamente**: quando le impostazioni gestite impostano `disableAllHooks`, o quando la cartella non è attendibile secondo la stessa [regola di trust del workspace degli hook nei file di impostazioni](https://code.claude.com/docs/it/permissions.md#what-runs-before-you-trust-a-folder)3675* **Disattivato completamente**: quando le impostazioni gestite impostano `disableAllHooks`, o quando la cartella non è attendibile secondo la stessa [regola di trust del workspace degli hook nei file di impostazioni](https://code.claude.com/docs/it/permissions.md#what-runs-before-you-trust-a-folder)

3693* **Ristretto alle impostazioni gestite**: quando [`allowManagedHooksOnly`](#allowmanagedhooksonly) è impostato, quando `disableAllHooks` è `true` al di fuori delle impostazioni gestite dopo l'applicazione della [precedenza delle impostazioni](https://code.claude.com/docs/it/hooks.md#disable-or-remove-hooks), o quando avvii Claude Code con `--safe-mode`3676* **Ristretto alle impostazioni gestite**: quando [`allowManagedHooksOnly`](#allowmanagedhooksonly) è impostato, quando `disableAllHooks` è `true` al di fuori delle impostazioni gestite dopo l'applicazione della [precedenza delle impostazioni](https://code.claude.com/docs/it/hooks.md#disable-or-remove-hooks), o quando avvii Claude Code con `--safe-mode`


4659 4642 

4660* **Scope**: [`Any file`](#scopes)4643* **Scope**: [`Any file`](#scopes)

4661* **Type**: string, il nome di un agente integrato o personalizzato4644* **Type**: string, il nome di un agente integrato o personalizzato

4662* **Default**: non impostato, quindi il thread principale viene eseguito come agente predefinito di Claude Code4645* **Default**: non impostato

4663* **Per-session overrides**: `--agent` ha la precedenza su questa chiave per una sessione4646* **Per-session overrides**: `--agent` ha la precedenza su questa chiave per una sessione

4664 4647 

4665```json settings.json theme={null}4648```json settings.json theme={null}


4668}4651}

4669```4652```

4670 4653 

4671Anche il `settings.json` di un plugin può fornire questa chiave; consulta [Ship default settings with your plugin](https://code.claude.com/docs/it/plugins/components.md#default-settings).

4672 

4673### `crossSessionInbound`4654### `crossSessionInbound`

4674 4655 

4675Scegli cosa fa questa sessione con i [messaggi provenienti dalle tue altre sessioni di Claude Code](https://code.claude.com/docs/it/cross-session-messaging.md#control-inbound-messages). Quando nessun valore si applica, Claude Code decide per ogni messaggio in base alle classi di modalità di permesso delle due sessioni.4656Scegli cosa fa questa sessione con i [messaggi provenienti dalle tue altre sessioni di Claude Code](https://code.claude.com/docs/it/cross-session-messaging.md#control-inbound-messages). Quando nessun valore si applica, Claude Code decide per ogni messaggio in base alle classi di modalità di permesso delle due sessioni.


5207 5188 

5208* **Ambito**: [`Managed`](#scopes). Un elenco impostato dalle fonti di amministrazione proprie della macchina, cioè criteri MDM e file di impostazioni gestite, continua ad applicarsi quando anche le impostazioni gestite dal server ne forniscono uno: una sessione può allora usare solo i provider presenti in entrambi gli elenchi, quindi un elenco gestito dal server può restringere ciò che la macchina consente ma mai ampliarlo. Quale `allowedProviders` delle fonti della macchina conta segue [il modo in cui Claude Code combina le fonti gestite](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources). Un elenco fornito solo tramite impostazioni gestite dal server raggiunge solo le sessioni che [recuperano le impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md#platform-availability).5189* **Ambito**: [`Managed`](#scopes). Un elenco impostato dalle fonti di amministrazione proprie della macchina, cioè criteri MDM e file di impostazioni gestite, continua ad applicarsi quando anche le impostazioni gestite dal server ne forniscono uno: una sessione può allora usare solo i provider presenti in entrambi gli elenchi, quindi un elenco gestito dal server può restringere ciò che la macchina consente ma mai ampliarlo. Quale `allowedProviders` delle fonti della macchina conta segue [il modo in cui Claude Code combina le fonti gestite](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources). Un elenco fornito solo tramite impostazioni gestite dal server raggiunge solo le sessioni che [recuperano le impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md#platform-availability).

5209* **Tipo**: array di stringhe, ciascuna tra:5190* **Tipo**: array di stringhe, ciascuna tra:

5210 * `"anthropic"`: l'API Anthropic sull'host di Anthropic stessa, tramite un accesso claude.ai o Console o una chiave API. Abbinalo a [`forceLoginMethod`](#forceloginmethod) o [`forceLoginOrgUUID`](#forceloginorguuid) per limitare anche l'accesso5191 * `"anthropic"`: l'API Anthropic sull'host di Anthropic stessa, tramite un accesso claude.ai o Console o una chiave API. Abbinalo a [`forceLoginMethod`](#forceloginmethod) o [`forceLoginOrgUUID`](#forceloginorguuid) per limitare anche l'accesso. Cowork di Desktop [sulla macchina dell'utente](https://code.claude.com/docs/it/managed-settings.md#where-and-when-a-policy-applies) conta come `"anthropic"` quando ha effettuato l'accesso a claude.ai, quindi se questa voce non è presente nell'elenco della macchina, Cowork [viene rifiutato all'avvio](https://code.claude.com/docs/it/errors.md#managed-settings-dont-allow-this-api-provider). Per consentire l'avvio di Cowork, aggiungila: in questo modo l'elenco si apre anche alle sessioni Anthropic dirette.

5211 * `"bedrock"`: [Amazon Bedrock](https://code.claude.com/docs/it/amazon-bedrock.md)5192 * `"bedrock"`: [Amazon Bedrock](https://code.claude.com/docs/it/amazon-bedrock.md)

5212 * `"vertex"`: [Agent Platform di Google Cloud](https://code.claude.com/docs/it/google-vertex-ai.md), in precedenza Vertex AI5193 * `"vertex"`: [Agent Platform di Google Cloud](https://code.claude.com/docs/it/google-vertex-ai.md), in precedenza Vertex AI

5213 * `"foundry"`: [Microsoft Foundry](https://code.claude.com/docs/it/microsoft-foundry.md)5194 * `"foundry"`: [Microsoft Foundry](https://code.claude.com/docs/it/microsoft-foundry.md)

setup.md +5 −23

Details

141 141 

142### Alpine Linux e distribuzioni basate su musl142### Alpine Linux e distribuzioni basate su musl

143 143 

144L'installazione di Claude Code su Alpine e altre distribuzioni basate su musl/uClibc richiede `bash` e `curl` per il comando di installazione, e `libgcc`, `libstdc++` e `ripgrep` al runtime. Alpine non include `bash` o `curl` per impostazione predefinita, quindi il comando di installazione documentato non riesce con un errore `not found` finché non li installate. Installate questi pacchetti utilizzando il gestore di pacchetti della vostra distribuzione, quindi impostate `USE_BUILTIN_RIPGREP=0`.144Su Alpine e altre distribuzioni basate su musl, il [comando di installazione](#install-claude-code) richiede `bash` e `curl`, e Claude Code stesso richiede `bash` o `zsh`. Alpine non include `bash` o `curl` per impostazione predefinita, quindi il comando di installazione documentato non riesce con un errore `not found` finché non li installi.

145 145 

146Questo esempio installa i pacchetti richiesti su Alpine:146Questo esempio installa i pacchetti richiesti su Alpine:

147 147 

148```bash theme={null}148```bash theme={null}

149apk add bash curl libgcc libstdc++ ripgrep149apk add bash curl

150```

151 

152Su Alpine, `ripgrep` si trova nel repository community. Se `apk` segnala che il pacchetto è mancante, aggiungete il repository community a `/etc/apk/repositories`, utilizzando la vostra versione di Alpine:

153 

154```bash theme={null}

155echo "https://dl-cdn.alpinelinux.org/alpine/v3.22/community" >> /etc/apk/repositories

156```

157 

158Eseguite `apk update` per aggiornare l'indice dei pacchetti e riprovate il comando `apk add`.

159 

160Quindi impostate `USE_BUILTIN_RIPGREP` a `0` nel vostro file [`settings.json`](https://code.claude.com/docs/it/settings-reference#all-settings):

161 

162```json theme={null}

163{

164 "env": {

165 "USE_BUILTIN_RIPGREP": "0"

166 }

167}

168```150```

169 151 

170## Verificare l'installazione152## Verificare l'installazione


443> wget -O /etc/apk/keys/claude-code.rsa.pub \425> wget -O /etc/apk/keys/claude-code.rsa.pub \

444> https://downloads.claude.ai/keys/claude-code.rsa.pub426> https://downloads.claude.ai/keys/claude-code.rsa.pub

445> echo "https://downloads.claude.ai/claude-code/apk/stable" >> /etc/apk/repositories427> echo "https://downloads.claude.ai/claude-code/apk/stable" >> /etc/apk/repositories

446> apk add claude-code428> apk add bash claude-code

447> ```429> ```

448>430>

449> Per passare al canale `latest`, rimuovete la riga del repository `stable` e aggiungete il repository `latest`:431> Per passare al canale `latest`, rimuovete la riga del repository `stable` e aggiungete il repository `latest`:


463>445>

464> Se `npm --version` stampa nella tua shell una versione che inizia con `12`, segui invece [Correggere un'installazione con npm 12](https://code.claude.com/docs/it/troubleshoot-install.md#fix-an-npm-12-install). Non installare con `sudo`. Claude Code esegue npm senza `sudo` quando si aggiorna, quindi un'installazione che richiede `sudo` non può aggiornarsi automaticamente.446> Se `npm --version` stampa nella tua shell una versione che inizia con `12`, segui invece [Correggere un'installazione con npm 12](https://code.claude.com/docs/it/troubleshoot-install.md#fix-an-npm-12-install). Non installare con `sudo`. Claude Code esegue npm senza `sudo` quando si aggiorna, quindi un'installazione che richiede `sudo` non può aggiornarsi automaticamente.

465 447 

466Puoi anche installare Claude Code come pacchetto npm globale. Il pacchetto npm richiede [Node.js 22 o successivo](https://nodejs.org/en/download). Su una versione più vecchia di Node.js, npm stampa un avviso `EBADENGINE` durante l'installazione anziché fallire; l'installazione si completa e `claude` continua a funzionare, poiché il pacchetto scarica un binario nativo che non utilizza il tuo Node.js al runtime.448Puoi anche installare Claude Code come pacchetto npm globale. Il pacchetto npm richiede [Node.js 22 o successivo](https://nodejs.org/en/download). Su una versione più vecchia di Node.js, npm per impostazione predefinita stampa un avviso `EBADENGINE` e completa l'installazione anziché fallire. Il `claude` installato funziona comunque, poiché il pacchetto scarica un binario nativo che non utilizza il tuo Node.js al runtime.

467 449 

468```bash theme={null}450```bash theme={null}

469npm install -g @anthropic-ai/claude-code451npm install -g @anthropic-ai/claude-code@latest

470```452```

471 453 

472Il pacchetto npm installa lo stesso binario nativo dell'installer standalone. npm estrae il binario attraverso una dipendenza opzionale per piattaforma come `@anthropic-ai/claude-code-darwin-arm64`, e un passaggio postinstall lo collega in posizione. Il binario `claude` installato non invoca Node stesso.454Il pacchetto npm installa lo stesso binario nativo dell'installer standalone. npm estrae il binario attraverso una dipendenza opzionale per piattaforma come `@anthropic-ai/claude-code-darwin-arm64`, e un passaggio postinstall lo collega in posizione. Il binario `claude` installato non invoca Node stesso.

skills.md +5 −1

Details

787 787 

788I comandi iniettati non richiedono mai il permesso mentre la skill viene renderizzata. Claude Code controlla ogni comando rispetto alle tue [regole di permesso](https://code.claude.com/docs/it/permissions.md) per primo. Un comando che una regola deny corrisponde interrompe l'invocazione con `Shell command permission check failed for pattern "..."`.788I comandi iniettati non richiedono mai il permesso mentre la skill viene renderizzata. Claude Code controlla ogni comando rispetto alle tue [regole di permesso](https://code.claude.com/docs/it/permissions.md) per primo. Un comando che una regola deny corrisponde interrompe l'invocazione con `Shell command permission check failed for pattern "..."`.

789 789 

790Al di fuori della [modalità auto](https://code.claude.com/docs/it/permission-modes.md#eliminate-prompts-with-auto-mode), quando il controllo dei permessi di un comando restituisce qualcosa di diverso da allow, Claude Code interrompe l'invocazione con lo stesso errore. Questo include una regola che normalmente ti chiederebbe. Per evitare che un comando non corrispondente interrompa qui, pre-approvalo con [`allowed-tools`](#pre-approve-tools-for-a-skill). Se la tua organizzazione limita le regole di permesso alle impostazioni gestite, vedi [When only managed permission rules apply](#when-only-managed-permission-rules-apply). Le regole deny e ask sovrascrivono comunque `allowed-tools`. Vedi [Manage permissions](https://code.claude.com/docs/it/permissions.md#manage-permissions).790Al di fuori della [modalità auto](https://code.claude.com/docs/it/permission-modes.md#eliminate-prompts-with-auto-mode), quando il controllo dei permessi di un comando restituisce qualcosa di diverso da allow, Claude Code interrompe l'invocazione. Per evitare che un comando non corrispondente interrompa l'invocazione, pre-approvalo con [`allowed-tools`](#pre-approve-tools-for-a-skill), entro questi limiti:

791 

792* **Regole deny e ask**: un comando a cui corrisponde una di esse interrompe comunque l'invocazione. Per trovare la regola, vedi [Manage permissions](https://code.claude.com/docs/it/permissions.md#manage-permissions).

793* **Regole solo gestite**: se `/status` nella sessione elenca la skill sotto `allowed-tools ignored this session`, vedi [When only managed permission rules apply](#when-only-managed-permission-rules-apply).

794* **Cartelle Git non verificate**: dove un file `HEAD` o `.git` potrebbe non essere tuo, Claude Code ignora `allowed-tools` per un comando Bash che contiene `git` o che Claude Code non riesce ad analizzare. Se ti fidi della cartella, ad esempio il worktree del tuo repository bare, consenti il comando con [`/permissions`](https://code.claude.com/docs/it/permissions#manage-permissions) nella sessione.

791 795 

792In modalità auto, un comando che altrimenti avrebbe bisogno della tua approvazione non interrompe l'invocazione. La skill si carica con un'istruzione che dice a Claude di eseguire il comando per primo, e la chiamata di Claude passa quindi attraverso i [controlli usuali della modalità auto](https://code.claude.com/docs/it/permission-modes.md#how-the-classifier-evaluates-actions). L'invocazione interrompe comunque in una [skill forkata](#run-skills-in-a-subagent) che imposta `agent`, e in una sessione dove Claude non ha lo [strumento shell che esegue i comandi iniettati](#how-injected-commands-run).796In modalità auto, un comando che altrimenti avrebbe bisogno della tua approvazione non interrompe l'invocazione. La skill si carica con un'istruzione che dice a Claude di eseguire il comando per primo, e la chiamata di Claude passa quindi attraverso i [controlli usuali della modalità auto](https://code.claude.com/docs/it/permission-modes.md#how-the-classifier-evaluates-actions). L'invocazione interrompe comunque in una [skill forkata](#run-skills-in-a-subagent) che imposta `agent`, e in una sessione dove Claude non ha lo [strumento shell che esegue i comandi iniettati](#how-injected-commands-run).

793 797 

statusline.md +0 −40

Details

1085echo "$dirname [$model]"1085echo "$dirname [$model]"

1086```1086```

1087 1087 

1088## Barre di stato dei subagent

1089 

1090L'impostazione `subagentStatusLine` renderizza un corpo di riga personalizzato per ogni [subagent](https://code.claude.com/docs/it/sub-agents.md) mostrato nel pannello dell'agente sotto il prompt. Usalo per sostituire la riga predefinita `name · description · token count` con la tua formattazione.

1091 

1092```json theme={null}

1093{

1094 "subagentStatusLine": {

1095 "type": "command",

1096 "command": "~/.claude/subagent-statusline.sh"

1097 }

1098}

1099```

1100 

1101Il comando viene eseguito una volta per tick di aggiornamento e riceve tutte le righe dei subagent visibili come un singolo oggetto JSON su stdin. L'input include i [campi hook di base](https://code.claude.com/docs/it/hooks.md#common-input-fields), un campo `columns` con la larghezza di riga utilizzabile e un array `tasks` con una voce per riga, descritti in [Campi dei task](#task-fields).

1102 

1103Scrivi una riga JSON su stdout per ogni riga che vuoi sovrascrivere, nella forma `{"id": "<task id>", "content": "<row body>"}`. La stringa `content` viene renderizzata così com'è, inclusi i colori ANSI e i hyperlink OSC 8. Ometti l'`id` di un task per mantenere il rendering predefinito per quella riga; emetti una stringa `content` vuota per nasconderla.

1104 

1105Gli stessi gate di fiducia, `disableAllHooks` e [`allowManagedHooksOnly`](https://code.claude.com/docs/it/settings-reference#allowmanagedhooksonly) che si applicano a `statusLine` si applicano qui. I plugin possono fornire un `subagentStatusLine` predefinito nel loro [`settings.json`](https://code.claude.com/docs/it/plugins/manifest-reference#standard-layout), ma a differenza dei hooks, i valori dei plugin non vengono eseguiti sotto `allowManagedHooksOnly` anche quando il plugin è forzato abilitato nelle impostazioni gestite `enabledPlugins`.

1106 

1107### Campi dei task

1108 

1109Ogni voce dell'array `tasks` descrive una riga di subagent con i campi seguenti. I campi contrassegnati come opzionali vengono omessi quando non hanno un valore, quindi gestisci la loro assenza nel tuo script.

1110 

1111| Campo | Tipo | Descrizione |

1112| :- | :- | :- |

1113| `id` | string | Identificatore del task. Riportalo come `id` nella riga che scrivi in risposta per questa riga |

1114| `name` | string, opzionale | Nome con cui il subagent viene [indirizzato](https://code.claude.com/docs/it/sub-agents.md#subagent-names), quando ne ha uno |

1115| `type` | string | Tipo di task: `local_agent` |

1116| `agentType` | string | Tipo di subagent con cui viene eseguito il task, come il [`Explore`](https://code.claude.com/docs/it/sub-agents#built-in-subagents) integrato o un `code-reviewer` personalizzato. Contiene lo stesso valore che gli hook ricevono come [`agent_type`](https://code.claude.com/docs/it/hooks#subagentstart). Richiede Claude Code v2.1.293 o successivo |

1117| `status` | string | Stato del task, come `running`, `completed`, `failed` o `killed` |

1118| `description` | string | Breve descrizione del task, come quella fornita da Claude quando ha avviato il subagent |

1119| `label` | string | Breve riepilogo dell'avanzamento del task quando Claude Code ne ha uno, altrimenti lo stesso testo di `description` |

1120| `startTime` | number | Momento di avvio del task, in millisecondi dall'epoch Unix |

1121| `model` | string, opzionale | ID del modello risolto su cui viene eseguito il task. Omesso finché il modello non viene risolto |

1122| `effort` | string o number, opzionale | Sforzo di ragionamento impostato per il subagent nel suo [frontmatter di definizione](https://code.claude.com/docs/it/sub-agents.md#supported-frontmatter-fields) o nell'invocazione individuale: `low`, `medium`, `high`, `xhigh`, `max` oppure un budget di token numerico. Questo è il valore configurato, e lo sforzo che Claude Code applica può essere diverso quando il modello non supporta quel livello. Omesso quando non è impostato alcuno sforzo |

1123| `contextWindowSize` | number, opzionale | Finestra di contesto di `model` in token, calcolata nello stesso modo di [`context_window.context_window_size`](#context-window-fields) della riga di stato principale, quindi puoi renderizzare una percentuale per riga da `tokenCount`. Omesso quando lo è `model` |

1124| `tokenCount` | number | Conteggio corrente dei token del subagent, il valore mostrato dalla riga predefinita |

1125| `tokenSamples` | array di number | Fino alle ultime 16 letture di `tokenCount`, una per tick di aggiornamento, dalla più vecchia alla più recente e terminando con quella corrente |

1126| `cwd` | string | Directory di lavoro del subagent: la sua directory quando viene eseguito in una propria, come un worktree isolato, altrimenti la directory di lavoro della sessione |

1127 

1128## Suggerimenti1088## Suggerimenti

1129 1089 

1130* **Testa con input simulato**: `echo '{"model":{"display_name":"Opus"},"workspace":{"current_dir":"/home/user/project"},"context_window":{"used_percentage":25},"session_id":"test-session-abc"}' | ./statusline.sh`1090* **Testa con input simulato**: `echo '{"model":{"display_name":"Opus"},"workspace":{"current_dir":"/home/user/project"},"context_window":{"used_percentage":25},"session_id":"test-session-abc"}' | ./statusline.sh`

Details

26 26 

27| Terminale | Shift+Enter per andare a capo |27| Terminale | Shift+Enter per andare a capo |

28| :- | :- |28| :- | :- |

29| Ghostty, Kitty, iTerm2, WezTerm, Warp, Apple Terminal, Windows Terminal | Funziona senza configurazione |29| Ghostty, Kitty, iTerm2, WezTerm, Warp, Windows Terminal | Funziona senza configurazione |

30| Altri terminali che supportano il protocollo da tastiera kitty, come foot e Alacritty 0.16 o successivo | Funziona senza configurazione. Richiede Claude Code v2.1.269 o successivo |30| Altri terminali che supportano il protocollo da tastiera kitty, come foot e Alacritty 0.16 o successivo | Funziona senza configurazione. Richiede Claude Code v2.1.269 o successivo |

31| VS Code, Cursor, Devin Desktop, Alacritty precedente alla 0.16, Zed | Esegui `/terminal-setup` una volta |31| VS Code, Cursor, Devin Desktop, Alacritty precedente alla 0.16, Zed | Esegui `/terminal-setup` una volta |

32| gnome-terminal, IDE JetBrains come PyCharm e Android Studio | Non disponibile; usa Ctrl+J oppure `\` e poi Enter |32| gnome-terminal, IDE JetBrains come PyCharm e Android Studio | Non disponibile; usa Ctrl+J oppure `\` e poi Enter |

Details

173 173 

174Per limitare quali di queste opzioni di distribuzione una macchina gestita può utilizzare, imposta [`allowedProviders`](https://code.claude.com/docs/it/settings-reference#allowedproviders) nelle impostazioni gestite. Ad esempio, `["bedrock"]` consente Amazon Bedrock e nient'altro; una flotta Bedrock che abilita anche l'endpoint Mantle elenca `"mantle"` anche. La voce indica quali variabili di endpoint necessitano anche di un pin `env` gestito. Richiede Claude Code v2.1.285 o successivo.174Per limitare quali di queste opzioni di distribuzione una macchina gestita può utilizzare, imposta [`allowedProviders`](https://code.claude.com/docs/it/settings-reference#allowedproviders) nelle impostazioni gestite. Ad esempio, `["bedrock"]` consente Amazon Bedrock e nient'altro; una flotta Bedrock che abilita anche l'endpoint Mantle elenca `"mantle"` anche. La voce indica quali variabili di endpoint necessitano anche di un pin `env` gestito. Richiede Claude Code v2.1.285 o successivo.

175 175 

176> [!NOTE]

177>

178> Con Desktop connesso a claude.ai, una sessione Cowork sulla macchina dell'utente conta come [`"anthropic"`](https://code.claude.com/docs/it/settings-reference#allowedproviders). Se lo escludi da questo elenco in una policy MDM o in un file di impostazioni gestite, quella sessione viene rifiutata. Se lo includi, anche le sessioni inviate direttamente ad Anthropic superano il controllo di questo elenco.

179 

176### Use MCP for integrations180### Use MCP for integrations

177 181 

178MCP è un ottimo modo per fornire a Claude Code più informazioni, come la connessione a sistemi di gestione dei ticket o log degli errori. Fai in modo che un team centrale configuri i server MCP e archivi una configurazione `.mcp.json` nel codebase, così che tutti gli utenti ne traggano beneficio. [Scopri di più](https://code.claude.com/docs/it/mcp.md).182MCP è un ottimo modo per fornire a Claude Code più informazioni, come la connessione a sistemi di gestione dei ticket o log degli errori. Fai in modo che un team centrale configuri i server MCP e archivi una configurazione `.mcp.json` nel codebase, così che tutti gli utenti ne traggano beneficio. [Scopri di più](https://code.claude.com/docs/it/mcp.md).

Details

127 127 

128Claude utilizza `AskUserQuestion` per farti domande a scelta multipla quando ha bisogno di una decisione o di un chiarimento. Rispondi selezionando un'opzione, oppure digita il tuo testo tramite la riga `Other` o il campo delle note.128Claude utilizza `AskUserQuestion` per farti domande a scelta multipla quando ha bisogno di una decisione o di un chiarimento. Rispondi selezionando un'opzione, oppure digita il tuo testo tramite la riga `Other` o il campo delle note.

129 129 

130Quando rispondi digitando il tuo testo, Claude Code trasmette la risposta con una formulazione neutra in modo che Claude segua ciò che hai scritto, inclusa una richiesta di attendere o di spiegare prima.

131 

132### Timeout di continuazione automatica delle domande130### Timeout di continuazione automatica delle domande

133 131 

134Le domande rimangono aperte finché non rispondi. Se desideri che una domanda che lasci senza risposta si chiuda alla fine e permetta a Claude di continuare senza di te, imposta l'impostazione [`askUserQuestionTimeout`](https://code.claude.com/docs/it/settings-reference#askuserquestiontimeout) su `60s`, `5m` o `10m`, nel tuo `settings.json` utente oppure dalla riga **Question auto-continue timeout** in `/config`.132Le domande rimangono aperte finché non rispondi. Se desideri che una domanda che lasci senza risposta si chiuda alla fine e permetta a Claude di continuare senza di te, imposta l'impostazione [`askUserQuestionTimeout`](https://code.claude.com/docs/it/settings-reference#askuserquestiontimeout) su `60s`, `5m` o `10m`, nel tuo `settings.json` utente oppure dalla riga **Question auto-continue timeout** in `/config`.


525 523 

526## Comportamento dello strumento Read524## Comportamento dello strumento Read

527 525 

528Lo strumento Read accetta un percorso di file e restituisce i contenuti con numeri di riga. Claude è istruito a passare sempre percorsi assoluti.526Lo strumento Read accetta un percorso di file e restituisce i contenuti con numeri di riga.

529 527 

530La lettura di un file vuoto restituisce un avviso che il file esiste ma i suoi contenuti sono vuoti, e un `offset` oltre l'ultima riga restituisce un avviso che fornisce il conteggio delle righe del file.528La lettura di un file vuoto restituisce un avviso che il file esiste ma i suoi contenuti sono vuoti, e un `offset` oltre l'ultima riga restituisce un avviso che fornisce il conteggio delle righe del file.

531 529 

Details

388> Get-Command claude | Select-Object Source388> Get-Command claude | Select-Object Source

389> ```389> ```

390 390 

391Su Linux, controlla le librerie condivise mancanti. Se `ldd` mostra librerie mancanti, potrebbe essere necessario installare pacchetti di sistema. Su Alpine Linux e altre distribuzioni basate su musl, vedi [Configurazione di Alpine Linux](https://code.claude.com/docs/it/setup.md#alpine-linux-and-musl-based-distributions).391Su Linux, controlla le librerie condivise mancanti. Se `ldd` mostra librerie mancanti, potrebbe essere necessario installare pacchetti di sistema. Su Alpine Linux e altre distribuzioni basate su musl, vedi [Mancata corrispondenza del binario Linux musl o glibc](#linux-musl-or-glibc-binary-mismatch).

392 392 

393```bash theme={null}393```bash theme={null}

394ldd "$(command -v claude)" | grep "not found"394ldd "$(command -v claude)" | grep "not found"


906 906 

907### Mancata corrispondenza del binario musl o glibc su Linux907### Mancata corrispondenza del binario musl o glibc su Linux

908 908 

909Se vedi errori relativi a librerie condivise mancanti come `libstdc++.so.6` o `libgcc_s.so.1` dopo l'installazione, il programma di installazione potrebbe aver scaricato la variante di binario sbagliata per il tuo sistema.909Se vedi errori relativi a librerie condivise mancanti come `ld-linux-x86-64.so.2` o `ld-linux-aarch64.so.1` dopo l'installazione, il programma di installazione potrebbe aver scaricato la variante di binario sbagliata per il tuo sistema.

910 910 

911```text theme={null}911```text theme={null}

912Error loading shared library libstdc++.so.6: No such file or directory912Error loading shared library ld-linux-x86-64.so.2: No such file or directory

913```913```

914 914 

915Questo può accadere su sistemi basati su glibc che hanno installati pacchetti di cross-compilazione musl, inducendo il programma di installazione a rilevare erroneamente il sistema come musl.

916 

917**Soluzioni:**915**Soluzioni:**

918 916 

9191. **Verifica quale libc utilizza il tuo sistema**:9171. **Verifica quale libc utilizza il tuo sistema**:


924 922 

9252. **Se sei su glibc ma hai ottenuto il binario musl**, rimuovi l'installazione e reinstalla. Puoi anche scaricare manualmente il binario corretto utilizzando il manifest in `https://downloads.claude.ai/claude-code-releases/{VERSION}/manifest.json`. Apri una [issue su GitHub](https://github.com/anthropics/claude-code/issues) con l'output di `ldd --version` e `ls /lib/libc.musl*`.9232. **Se sei su glibc ma hai ottenuto il binario musl**, rimuovi l'installazione e reinstalla. Puoi anche scaricare manualmente il binario corretto utilizzando il manifest in `https://downloads.claude.ai/claude-code-releases/{VERSION}/manifest.json`. Apri una [issue su GitHub](https://github.com/anthropics/claude-code/issues) con l'output di `ldd --version` e `ls /lib/libc.musl*`.

926 924 

9273. **Se sei effettivamente su musl**, come Alpine Linux, installa i pacchetti richiesti:9253. **Se sei su musl ma hai ottenuto il binario glibc**, [rimuovi l'installazione](https://code.claude.com/docs/it/setup.md#uninstall-claude-code). Su Alpine Linux, installa prima i pacchetti indicati in [Configurazione di Alpine Linux](https://code.claude.com/docs/it/setup.md#alpine-linux-and-musl-based-distributions). Quindi esegui il [comando di installazione](https://code.claude.com/docs/it/setup.md#install-claude-code), che installa il binario musl.

928 ```bash theme={null}

929 apk add libgcc libstdc++ ripgrep

930 ```

931 Su Alpine, `ripgrep` si trova nel repository community. Se `apk` segnala che il pacchetto manca, consulta [Configurazione di Alpine Linux](https://code.claude.com/docs/it/setup.md#alpine-linux-and-musl-based-distributions).

932 926 

933### `Illegal instruction`927### `Illegal instruction`

934 928 


1001 995 

1002Questi problemi si applicano se hai installato Claude Code con `npm install -g` all'interno di WSL. Se hai usato il [programma di installazione nativo](https://code.claude.com/docs/it/setup.md), salta questa sezione. Su npm 12, installa come descritto in [Correggere un'installazione con npm 12](#fix-an-npm-12-install).996Questi problemi si applicano se hai installato Claude Code con `npm install -g` all'interno di WSL. Se hai usato il [programma di installazione nativo](https://code.claude.com/docs/it/setup.md), salta questa sezione. Su npm 12, installa come descritto in [Correggere un'installazione con npm 12](#fix-an-npm-12-install).

1003 997 

1004**Problemi di rilevamento del sistema operativo o della piattaforma.** Se npm segnala una mancata corrispondenza della piattaforma durante l'installazione, probabilmente WSL sta usando il `npm` di Windows. Esegui prima `npm config set os linux`, quindi installa con `npm install -g @anthropic-ai/claude-code --force`. Non usare `sudo`.998**Problemi di rilevamento del sistema operativo o della piattaforma.** Se npm segnala una mancata corrispondenza della piattaforma durante l'installazione, esegui prima `npm config set os linux`, quindi installa con `npm install -g @anthropic-ai/claude-code@latest --force`. Non usare `sudo`.

1005 999 

1006**`exec: node: not found` quando esegui `claude`.** Probabilmente il tuo ambiente WSL sta usando l'installazione di Node.js di Windows. Verificalo con `which npm` e `which node`: i percorsi che iniziano con `/mnt/c/` sono binari di Windows, mentre i percorsi Linux iniziano con `/usr/`. Per risolvere, installa Node tramite il gestore di pacchetti della tua distribuzione Linux o tramite [`nvm`](https://github.com/nvm-sh/nvm).1000**`exec: node: not found` quando esegui `claude`.** Probabilmente il tuo ambiente WSL sta usando l'installazione di Node.js di Windows. Verificalo con `which npm` e `which node`: i percorsi che iniziano con `/mnt/c/` sono binari di Windows, mentre i percorsi Linux iniziano con `/usr/`. Per risolvere, installa Node tramite il gestore di pacchetti della tua distribuzione Linux o tramite [`nvm`](https://github.com/nvm-sh/nvm).

1007 1001 


1088 3. Reinstalla:1082 3. Reinstalla:

1089 1083 

1090 ```bash theme={null}1084 ```bash theme={null}

1091 npm install -g @anthropic-ai/claude-code1085 npm install -g @anthropic-ai/claude-code@latest

1092 ```1086 ```

1093 1087 

1094 Se questo comando o il passaggio 1 fallisce con `EACCES`, passa al programma di installazione nativo invece di rieseguirlo con `sudo`. Claude Code esegue npm senza `sudo` quando si aggiorna, quindi gli aggiornamenti automatici fallirebbero allo stesso modo.1088 Se questo comando o il passaggio 1 fallisce con `EACCES`, passa al programma di installazione nativo invece di rieseguirlo con `sudo`. Claude Code esegue npm senza `sudo` quando si aggiorna, quindi gli aggiornamenti automatici fallirebbero allo stesso modo.


1099 1093 

1100### Errore npm `ENOTEMPTY` durante l'aggiornamento o la reinstallazione1094### Errore npm `ENOTEMPTY` durante l'aggiornamento o la reinstallazione

1101 1095 

1102Quando esegui `npm install -g @anthropic-ai/claude-code` su un'installazione esistente, npm può fallire mentre sposta da parte la vecchia directory del pacchetto:1096Quando esegui `npm install -g @anthropic-ai/claude-code@latest` su un'installazione esistente, npm può fallire mentre sposta da parte la vecchia directory del pacchetto:

1103 1097 

1104```text theme={null}1098```text theme={null}

1105npm error code ENOTEMPTY1099npm error code ENOTEMPTY


1133Quindi reinstalla. Su npm 12, segui [Correggere un'installazione con npm 12](#fix-an-npm-12-install). Altrimenti, esegui:1127Quindi reinstalla. Su npm 12, segui [Correggere un'installazione con npm 12](#fix-an-npm-12-install). Altrimenti, esegui:

1134 1128 

1135```bash theme={null}1129```bash theme={null}

1136npm install -g @anthropic-ai/claude-code1130npm install -g @anthropic-ai/claude-code@latest

1137```1131```

1138 1132 

1139Verifica con `claude --version`, che stampa un numero di versione come `2.1.211 (Claude Code)`.1133Verifica con `claude --version`, che stampa un numero di versione come `2.1.211 (Claude Code)`.

Details

152> apk add ripgrep152> apk add ripgrep

153> ```153> ```

154>154>

155> `ripgrep` è nel repository community di Alpine. Se `apk` segnala che il pacchetto è mancante, vedi [Alpine Linux setup](https://code.claude.com/docs/it/setup.md#alpine-linux-and-musl-based-distributions).155> `ripgrep` è nel repository community di Alpine.

156 156 

157> [tab] Arch157> [tab] Arch

158>158>

vs-code.md +10 −0

Details

202 I blocchi di ragionamento già presenti restano vuoti. Nelle risposte successive al ricaricamento, fai clic su un blocco oppure premi `Ctrl+O` per espanderli tutti.202 I blocchi di ragionamento già presenti restano vuoti. Nelle risposte successive al ricaricamento, fai clic su un blocco oppure premi `Ctrl+O` per espanderli tutti.

203* **Input su più righe**: premi `Shift+Enter` per aggiungere una nuova riga senza inviare. Funziona anche nel campo di testo libero "Other" delle finestre di dialogo con domande.203* **Input su più righe**: premi `Shift+Enter` per aggiungere una nuova riga senza inviare. Funziona anche nel campo di testo libero "Other" delle finestre di dialogo con domande.

204 204 

205### Usare o disattivare i prompt suggeriti

206 

207Dopo che Claude ha risposto, il pannello può mostrare un prompt successivo suggerito come testo grigio in corsivo nella casella del prompt vuota. Ogni suggerimento usa una [breve richiesta in background](https://code.claude.com/docs/it/interactive-mode.md#prompt-suggestions) che viene conteggiata nei limiti di utilizzo del tuo piano o nei costi API.

208 

209* **Usare il suggerimento**: premi `Tab` per trasformarlo in testo modificabile, quindi invialo. Premere `Enter` prima di accettarlo non invia il suggerimento.

210* **Scrivere il tuo prompt**: inizia a digitare, il che nasconde il suggerimento.

211 

212Per disattivare i suggerimenti, imposta [`promptSuggestionEnabled`](https://code.claude.com/docs/it/settings-reference#promptsuggestionenabled) su `false` in `~/.claude/settings.json`. Smetti di vederli nelle nuove conversazioni, oppure in quelle aperte dopo aver eseguito **Developer: Reload Window** dal Command Palette. Se hai impostato [`CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION`](https://code.claude.com/docs/it/env-vars) su `true`, cambialo in `false` dove l'hai impostato, altrimenti continuerai a vedere i suggerimenti.

213 

205### Fare riferimento a file e cartelle214### Fare riferimento a file e cartelle

206 215 

207Usa le @-menzioni per fornire a Claude il contesto su file o cartelle specifici. Quando digiti `@` seguito dal nome di un file o di una cartella, Claude legge quel contenuto e può rispondere a domande su di esso o apportarvi modifiche. Claude Code supporta la corrispondenza approssimativa, quindi puoi digitare nomi parziali per trovare ciò che ti serve:216Usa le @-menzioni per fornire a Claude il contesto su file o cartelle specifici. Quando digiti `@` seguito dal nome di un file o di una cartella, Claude legge quel contenuto e può rispondere a domande su di esso o apportarvi modifiche. Claude Code supporta la corrispondenza approssimativa, quindi puoi digitare nomi parziali per trovare ciò che ti serve:


936| `SSL certificate verification failed` o `Self-signed certificate detected` | [Errori dei certificati SSL](https://code.claude.com/docs/it/errors.md#ssl-certificate-errors) |945| `SSL certificate verification failed` o `Self-signed certificate detected` | [Errori dei certificati SSL](https://code.claude.com/docs/it/errors.md#ssl-certificate-errors) |

937| `Dictation error: WebSocket error:` seguito da un errore di certificato come `unable to get local issuer certificate`, oppure `Remote server is not connected` nella scheda Web | [La dettatura o la scheda Web non funziona dietro un proxy con ispezione TLS](#dictation-or-the-web-tab-fails-behind-a-tls-inspecting-proxy) |946| `Dictation error: WebSocket error:` seguito da un errore di certificato come `unable to get local issuer certificate`, oppure `Remote server is not connected` nella scheda Web | [La dettatura o la scheda Web non funziona dietro un proxy con ispezione TLS](#dictation-or-the-web-tab-fails-behind-a-tls-inspecting-proxy) |

938| `Claude Code process exited with code 1`, o un altro codice | [Claude Code process exited with code N](https://code.claude.com/docs/it/errors.md#claude-code-process-exited-with-code-n) |947| `Claude Code process exited with code 1`, o un altro codice | [Claude Code process exited with code N](https://code.claude.com/docs/it/errors.md#claude-code-process-exited-with-code-n) |

948| `Claude Code did not finish starting` o `Subprocess initialization did not complete within 60000ms` | [Subprocess initialization did not complete within 60000ms](https://code.claude.com/docs/it/errors.md#subprocess-initialization-did-not-complete-within-60000ms) |

939| `Could not locate the Claude CLI on PATH` | [Could not locate the Claude CLI on PATH](https://code.claude.com/docs/it/errors.md#could-not-locate-the-claude-cli-on-path) |949| `Could not locate the Claude CLI on PATH` | [Could not locate the Claude CLI on PATH](https://code.claude.com/docs/it/errors.md#could-not-locate-the-claude-cli-on-path) |

940| `The connection to Claude Code ended before this message completed` | [The connection to Claude Code ended before this message completed](https://code.claude.com/docs/it/errors.md#the-connection-to-claude-code-ended-before-this-message-completed) |950| `The connection to Claude Code ended before this message completed` | [The connection to Claude Code ended before this message completed](https://code.claude.com/docs/it/errors.md#the-connection-to-claude-code-ended-before-this-message-completed) |

941| `The Claude Code program for this computer, the <build> build, could not be found` | [The Claude Code program for this computer could not be found](https://code.claude.com/docs/it/errors.md#the-claude-code-program-for-this-computer-could-not-be-found) |951| `The Claude Code program for this computer, the <build> build, could not be found` | [The Claude Code program for this computer could not be found](https://code.claude.com/docs/it/errors.md#the-claude-code-program-for-this-computer-could-not-be-found) |

workflows.md +0 −2

Details

75| :- | :- |75| :- | :- |

76| `/deep-research <question>` | Distribuisce ricerche web su una domanda attraverso diverse angolazioni, recupera e verifica incrociando le fonti che trova, vota su ogni affermazione e restituisce un report con citazioni, filtrando le affermazioni che non hanno superato la verifica incrociata. Richiede che lo [strumento WebSearch](https://code.claude.com/docs/it/tools-reference.md#websearch-tool-behavior) sia disponibile |76| `/deep-research <question>` | Distribuisce ricerche web su una domanda attraverso diverse angolazioni, recupera e verifica incrociando le fonti che trova, vota su ogni affermazione e restituisce un report con citazioni, filtrando le affermazioni che non hanno superato la verifica incrociata. Richiede che lo [strumento WebSearch](https://code.claude.com/docs/it/tools-reference.md#websearch-tool-behavior) sia disponibile |

77 77 

78`/deep-research` viene eseguito solo quando lo invochi.

79 

80I [workflow che salvi](#save-the-workflow-for-reuse) tu stesso diventano comandi allo stesso modo e compaiono nel completamento automatico di `/` accanto a quelli inclusi.78I [workflow che salvi](#save-the-workflow-for-reuse) tu stesso diventano comandi allo stesso modo e compaiono nel completamento automatico di `/` accanto a quelli inclusi.

81 79 

82### Segui l'esecuzione80### Segui l'esecuzione