SpyBara
Go Premium

Documentation 2026-11-01 23:57 UTC to 2026-11-02 23:57 UTC

42 files changed +903 −429. View all changes and history on the product overview
2026
Thu 12 21:00 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

20>20>

21> Una regola di fatturazione che l'SDK modella è la [determinazione dei prezzi per la residenza dei dati](https://platform.claude.com/docs/en/about-claude/pricing#data-residency-pricing). Quando la `usage` di una risposta segnala `inference_geo: "us"`, l'SDK moltiplica il prezzo di listino dei token di quella risposta per 1,1. Le tariffe per richiesta come la ricerca web non vengono moltiplicate. Richiede TypeScript Agent SDK v0.3.239 o successivo, oppure Python Agent SDK v0.2.144 o successivo.21> Una regola di fatturazione che l'SDK modella è la [determinazione dei prezzi per la residenza dei dati](https://platform.claude.com/docs/en/about-claude/pricing#data-residency-pricing). Quando la `usage` di una risposta segnala `inference_geo: "us"`, l'SDK moltiplica il prezzo di listino dei token di quella risposta per 1,1. Le tariffe per richiesta come la ricerca web non vengono moltiplicate. Richiede TypeScript Agent SDK v0.3.239 o successivo, oppure Python Agent SDK v0.2.144 o successivo.

22>22>

23> Utilizza questi campi per approfondimenti di sviluppo e budget approssimativi. Per la fatturazione autorevole, utilizza l'[API di utilizzo e costi](https://platform.claude.com/docs/en/build-with-claude/usage-cost-api) o la pagina Utilizzo nella [Claude Console](https://platform.claude.com/usage). Non fatturare gli utenti finali o attivare decisioni finanziarie da questi campi.23> Utilizza questi campi per approfondimenti di sviluppo e budget approssimativi. Per la fatturazione autorevole, consulta [Gestire i costi per la tua organizzazione](https://code.claude.com/docs/it/costs.md#manage-costs-for-your-organization). Non fatturare gli utenti finali o attivare decisioni finanziarie da questi campi.

24 24 

25## Comprendere l'utilizzo dei token25## Comprendere l'utilizzo dei token

26 26 

Details

52 52 

53Se la tua applicazione raggruppa l'Agent SDK insieme alle sue dipendenze, importa da `@anthropic-ai/claude-agent-sdk/core` invece che dalla radice del pacchetto. L'entry `/core` richiede Agent SDK TypeScript v0.3.282 o successivo, e i suoi tipi richiedono TypeScript 5.0 o successivo.53Se la tua applicazione raggruppa l'Agent SDK insieme alle sue dipendenze, importa da `@anthropic-ai/claude-agent-sdk/core` invece che dalla radice del pacchetto. L'entry `/core` richiede Agent SDK TypeScript v0.3.282 o successivo, e i suoi tipi richiedono TypeScript 5.0 o successivo.

54 54 

55L'entry `/core` esporta lo stesso `query()`, `startup()`, `tool()`, `createSdkMcpServer()` e `resolveSettings()` come l'entry radice, insieme alle funzioni che rinominano, taggano ed eliminano le sessioni, `AbortError`, le costanti di runtime e ogni tipo. Non aggiunge nomi propri. Per mantenere piccolo il codice che la tua applicazione carica, `/core` omette alcune esportazioni radice, inclusi `prewarm()`, la classe `InMemorySessionStore` e gli helper che elencano, leggono, biforcano, importano e riassumono le sessioni. Se ne hai bisogno di uno, usa l'entry radice.55Per mantenere piccolo il codice che la tua applicazione carica, l'entry `/core` omette alcune esportazioni radice:

56 

57* **Esportati**: gli stessi `query()`, `startup()`, [`prewarm()`](#prewarm), `tool()`, `createSdkMcpServer()` e `resolveSettings()` dell'entry radice, insieme alle funzioni che rinominano, taggano ed eliminano le sessioni, `AbortError`, le costanti di runtime e ogni tipo. L'importazione del `prewarm()` alpha da `/core` richiede Agent SDK v0.3.314 o successivo.

58* **Omessi**: esportazioni radice tra cui la classe `InMemorySessionStore` e gli helper che elencano, leggono, biforcano, importano e riassumono le sessioni. Se ne hai bisogno di uno, usa l'entry radice.

56 59 

57L'entry radice incorpora le sue proprie copie di `zod` e `@modelcontextprotocol/sdk`. L'entry `/core` le importa dal tuo `node_modules` negli intervalli che le `peerDependencies` dell'Agent SDK dichiarano, quindi un bundle che le include già non porta una seconda copia. Importa da una o dall'altra dell'entry radice o `/core` in un dato processo, non entrambe: sono bundle separati, e caricare entrambe ti dà due copie delle classi e dello stato dell'Agent SDK.60L'entry radice incorpora le sue proprie copie di `zod` e `@modelcontextprotocol/sdk`. L'entry `/core` le importa dal tuo `node_modules` negli intervalli che le `peerDependencies` dell'Agent SDK dichiarano, quindi un bundle che le include già non porta una seconda copia. Importa da una o dall'altra dell'entry radice o `/core` in un dato processo, non entrambe: sono bundle separati, e caricare entrambe ti dà due copie delle classi e dello stato dell'Agent SDK.

58 61 


2002 2005 

2003* Una ripresa che Claude Code interrompe perché [non riesce a riportare la sessione nel suo worktree](https://code.claude.com/docs/it/worktrees.md#the-session-resumes-outside-its-worktree), con `worktree_unverified` o `worktree_resume_refused`. Quella sezione indica quale errore contiene quale valore.2006* Una ripresa che Claude Code interrompe perché [non riesce a riportare la sessione nel suo worktree](https://code.claude.com/docs/it/worktrees.md#the-session-resumes-outside-its-worktree), con `worktree_unverified` o `worktree_resume_refused`. Quella sezione indica quale errore contiene quale valore.

2004* Un [`continue`](#options) rifiutato di una conversazione trattenuta da una sessione in background, con `session_held_by_background`. Per un [`resume`](#options) rifiutato di una conversazione di questo tipo, Claude Code scrive il risultato solo quando la variabile è impostata.2007* Un [`continue`](#options) rifiutato di una conversazione trattenuta da una sessione in background, con `session_held_by_background`. Per un [`resume`](#options) rifiutato di una conversazione di questo tipo, Claude Code scrive il risultato solo quando la variabile è impostata.

2008* Un avvio che Claude Code rifiuta perché [`failIfUnavailable`](#sandboxsettings) è attivo e la sandbox non può avviarsi, con `sandbox_required_unavailable`.

2009 

2010Il tipo `SDKStartupFailureReason` elenca i valori che `startup_failure_reason` può assumere:

2005 2011 

2006```typescript theme={null}2012```typescript theme={null}

2007type SDKStartupFailureReason =2013type SDKStartupFailureReason =


2023 | "cli_version_too_old"2029 | "cli_version_too_old"

2024 | "bypass_root"2030 | "bypass_root"

2025 | "org_config_required_unavailable"2031 | "org_config_required_unavailable"

2026 | "org_config_refused";2032 | "org_config_refused"

2033 | "sandbox_required_unavailable";

2027```2034```

2028 2035 

2029Ogni valore indica un rifiuto:2036Ogni valore indica un rifiuto:


2049| `bypass_root` | È stata richiesta la modalità di permesso bypass durante l'esecuzione come root |2056| `bypass_root` | È stata richiesta la modalità di permesso bypass durante l'esecuzione come root |

2050| `org_config_required_unavailable` | La sessione ha bisogno dei criteri e delle impostazioni gestite dell'organizzazione prima di potersi avviare, e non è stato possibile caricarli, ad esempio a causa di un errore di rete o di un errore del server di Anthropic. Richiede Agent SDK v0.3.293 o successivo |2057| `org_config_required_unavailable` | La sessione ha bisogno dei criteri e delle impostazioni gestite dell'organizzazione prima di potersi avviare, e non è stato possibile caricarli, ad esempio a causa di un errore di rete o di un errore del server di Anthropic. Richiede Agent SDK v0.3.293 o successivo |

2051| `org_config_refused` | Anthropic ha rifiutato di fornire i criteri e le impostazioni gestite dell'organizzazione per questo accesso, ad esempio perché l'accesso è scaduto o è stato revocato, o perché l'organizzazione non consente Claude Code per questo account. Richiede Agent SDK v0.3.293 o successivo |2058| `org_config_refused` | Anthropic ha rifiutato di fornire i criteri e le impostazioni gestite dell'organizzazione per questo accesso, ad esempio perché l'accesso è scaduto o è stato revocato, o perché l'organizzazione non consente Claude Code per questo account. Richiede Agent SDK v0.3.293 o successivo |

2059| `sandbox_required_unavailable` | [`failIfUnavailable`](#sandboxsettings) è attivo e la sandbox non può avviarsi. Il testo in `errors` termina con `Set sandbox.failIfUnavailable=false to allow unsandboxed execution.` Richiede Agent SDK v0.3.314 o successiva |

2052 2060 

2053### `SDKSystemMessage`2061### `SDKSystemMessage`

2054 2062 

Details

308 308 

309Quando Claude Code si avvia con Amazon Bedrock configurato, verifica che i modelli che intende utilizzare siano accessibili nel tuo account.309Quando Claude Code si avvia con Amazon Bedrock configurato, verifica che i modelli che intende utilizzare siano accessibili nel tuo account.

310 310 

311Se hai fissato una versione del modello più vecchia rispetto al valore predefinito corrente di Claude Code, e il tuo account può richiamare la versione più recente, Claude Code ti chiede di aggiornare il pin. Accettando si scrive il nuovo ID del modello nel tuo [file di impostazioni utente](https://code.claude.com/docs/it/settings.md) e si riavvia Claude Code. Il rifiuto viene ricordato fino al prossimo cambio della versione predefinita. I pin che puntano a un [ARN del profilo di inferenza dell'applicazione](#map-each-model-version-to-an-inference-profile) vengono saltati, poiché sono gestiti dall'amministratore.311Potresti aver fissato una versione del modello più vecchia rispetto al valore predefinito corrente di Claude Code. Se il tuo account può richiamare la versione più recente, Claude Code ti chiede di aggiornare il pin. Accettando si scrive il nuovo ID del modello nel tuo [file di impostazioni utente](https://code.claude.com/docs/it/settings.md) e si riavvia Claude Code. Il rifiuto viene ricordato fino al prossimo cambio della versione predefinita.

312 

313Claude Code non controlla questi pin né chiede di aggiornarli:

314 

315* Un pin nel blocco `env` delle [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md)

316* Un pin che punta a un [ARN del profilo di inferenza dell'applicazione](#map-each-model-version-to-an-inference-profile), poiché è gestito dall'amministratore

312 317 

313Se non hai fissato un modello e il valore predefinito corrente non è disponibile nel tuo account, Claude Code esegue il fallback per la sessione corrente e mostra un avviso. Prova prima le versioni precedenti del modello predefinito e, quando il valore predefinito è un modello Opus e nessuna versione Opus è disponibile, esegue il fallback al modello Sonnet predefinito. Il fallback non viene mantenuto. Abilita il modello più recente nel tuo account Amazon Bedrock o [fissa una versione](#4-pin-model-versions) per rendere permanente la scelta.318Se non hai fissato un modello e il valore predefinito corrente non è disponibile nel tuo account, Claude Code esegue il fallback per la sessione corrente e mostra un avviso. Prova prima le versioni precedenti del modello predefinito e, quando il valore predefinito è un modello Opus e nessuna versione Opus è disponibile, esegue il fallback al modello Sonnet predefinito. Il fallback non viene mantenuto. Abilita il modello più recente nel tuo account Amazon Bedrock o [fissa una versione](#4-pin-model-versions) per rendere permanente la scelta.

314 319 

315Quando avvii la sessione su una versione specifica di Sonnet oppure Opus, ad esempio con `--model`, `ANTHROPIC_MODEL`, o l'[impostazione `model`](https://code.claude.com/docs/it/settings-reference#model), quella versione agisce come valore predefinito fissato della sessione per l'alias `sonnet` oppure `opus` corrispondente. Claude Code salta il controllo di disponibilità per il valore predefinito integrato che il tuo modello sostituisce e si avvia sul modello che hai configurato, senza alcun avviso di fallback.320Quando avvii la sessione su una versione specifica di Sonnet oppure Opus, ad esempio con `--model`, `ANTHROPIC_MODEL`, o l'[impostazione `model`](https://code.claude.com/docs/it/settings-reference#model), quella versione agisce come valore predefinito fissato della sessione per l'alias `sonnet` oppure `opus` corrispondente. Claude Code salta il controllo di disponibilità per il valore predefinito integrato che il tuo modello sostituisce e si avvia sul modello che hai configurato, senza alcun avviso di fallback.

316 321 

317Gli alias dei modelli come `opus` non agiscono come pin, e nemmeno un ID del modello che Claude Code non riconosce, come un ARN del profilo di inferenza dell'applicazione.322Questi non agiscono come pin quando avvii una sessione su di essi:

323 

324* Un alias del modello come `opus`

325* Un ID del modello che Claude Code non riconosce, come un ARN del profilo di inferenza dell'applicazione

318 326 

319Quando questi controlli trovano un modello che il tuo account non può richiamare, Claude Code ricorda il rifiuto su questa macchina per un massimo di un giorno, e durante quel tempo l'avvio salta il modello ricordato senza chiedere di nuovo ad Amazon Bedrock. Claude Code controlla di nuovo all'avvio un rifiuto ricordato di un modello predefinito corrente una volta che sono passati dieci minuti dall'ultimo controllo, quindi un valore predefinito che l'amministratore riabilita ritorna. Per disattivare la memoria, imposta [`CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY=1`](https://code.claude.com/docs/it/env-vars).327Quando questi controlli trovano un modello che il tuo account non può richiamare, Claude Code ricorda il rifiuto su questa macchina per un massimo di un giorno, e durante quel tempo l'avvio salta il modello ricordato senza chiedere di nuovo ad Amazon Bedrock. Claude Code controlla di nuovo all'avvio un rifiuto ricordato di un modello predefinito corrente una volta che sono passati dieci minuti dall'ultimo controllo, quindi un valore predefinito che l'amministratore riabilita ritorna. Per disattivare la memoria, imposta [`CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY=1`](https://code.claude.com/docs/it/env-vars).

320 328 

analytics.md +10 −10

Details

77* **Lines of code with CC**: righe totali di codice in tutti i PR uniti che sono stati scritti con assistenza di Claude Code. Solo le "righe effettive" vengono conteggiate: righe con più di 3 caratteri dopo la normalizzazione, escludendo righe vuote e righe con solo parentesi o punteggiatura banale.77* **Lines of code with CC**: righe totali di codice in tutti i PR uniti che sono stati scritti con assistenza di Claude Code. Solo le "righe effettive" vengono conteggiate: righe con più di 3 caratteri dopo la normalizzazione, escludendo righe vuote e righe con solo parentesi o punteggiatura banale.

78* **PRs with Claude Code (%)**: percentuale di tutti i PR uniti che contengono codice assistito da Claude Code78* **PRs with Claude Code (%)**: percentuale di tutti i PR uniti che contengono codice assistito da Claude Code

79* **Suggestion accept rate**: percentuale di volte in cui gli utenti accettano i suggerimenti di modifica del codice di Claude Code, incluso l'utilizzo degli strumenti Edit, Write e NotebookEdit79* **Suggestion accept rate**: percentuale di volte in cui gli utenti accettano i suggerimenti di modifica del codice di Claude Code, incluso l'utilizzo degli strumenti Edit, Write e NotebookEdit

80* **Lines of code accepted**: righe totali di codice scritte da Claude Code che gli utenti hanno accettato nelle loro sessioni. Questo esclude i suggerimenti rifiutati e non traccia le eliminazioni successive.80* **Lines of code accepted**: righe totali di codice che gli strumenti Edit e Write di Claude Code hanno aggiunto o rimosso nelle modifiche accettate. Questo esclude i suggerimenti rifiutati, e le righe eliminate in seguito non riducono il totale.

81 81 

82### Explore the charts82### Explore the charts

83 83 


192 192 

193## Access analytics for API customers193## Access analytics for API customers

194 194 

195I clienti API che utilizzano Claude Console possono accedere all'analittica su [platform.claude.com/claude-code](https://platform.claude.com/claude-code). Hai bisogno dell'autorizzazione UsageView per accedere al dashboard, che viene concessa ai ruoli Developer, Billing, Admin, Owner e Primary Owner. Per estrarre le stesse metriche giornaliere per utente a livello di programmazione, utilizza l'[Claude Code Analytics API](https://platform.claude.com/docs/en/build-with-claude/claude-code-analytics-api) con una chiave API Admin.195I clienti API che utilizzano Claude Console possono accedere all'analitica su [platform.claude.com/claude-code](https://platform.claude.com/claude-code). Hai bisogno del permesso UsageView per accedere al dashboard. I ruoli Developer, Billing, Admin, Owner e Primary Owner dispongono di questo permesso. Per estrarre le metriche giornaliere per utente a livello di programmazione, utilizza la [Claude Code Analytics API](https://platform.claude.com/docs/en/build-with-claude/claude-code-analytics-api) con una chiave API Admin.

196 196 

197> [!NOTE]197> [!NOTE]

198>198>


200 200 

201Il dashboard della console visualizza:201Il dashboard della console visualizza:

202 202 

203* **Lines of code accepted**: righe totali di codice scritte da Claude Code che gli utenti hanno accettato nelle loro sessioni. Questo esclude i suggerimenti rifiutati e non traccia le eliminazioni successive.203* **Lines of code accepted**: righe di codice totali che gli strumenti Edit e Write di Claude Code hanno aggiunto o rimosso nelle modifiche accettate. Sono esclusi i suggerimenti rifiutati e le righe eliminate successivamente non riducono il totale.

204* **Suggestion accept rate**: percentuale di volte in cui gli utenti accettano l'utilizzo dello strumento di modifica del codice, inclusi gli strumenti Edit, Write e NotebookEdit.204* **Suggestion accept rate**: percentuale di volte in cui gli utenti accettano l'utilizzo dello strumento di modifica del codice, inclusi gli strumenti Edit, Write e NotebookEdit.

205* **Activity**: utenti attivi giornalieri e sessioni mostrate su un grafico.205* **Active users** e **Sessions**: conteggi giornalieri degli utenti attivi e delle sessioni di Claude Code.

206* **Spend**: costi API giornalieri in dollari insieme al conteggio degli utenti.206* **Spend**: costi API giornalieri in dollari.

207 207 

208### View team insights208### View team insights

209 209 

210La tabella di approfondimenti del team mostra le metriche per utente:210La tabella di approfondimenti del team mostra queste colonne per utente per l'intervallo di date che selezioni nella parte superiore del dashboard, per impostazione predefinita gli ultimi 30 giorni:

211 211 

212* **Members**: tutti gli utenti che si sono autenticati a Claude Code. Gli utenti con chiave API vengono visualizzati per identificatore di chiave, gli utenti OAuth vengono visualizzati per indirizzo email.212* **Members**: utenti e chiavi API con utilizzo di Claude Code registrato in quell'intervallo. Gli utenti con chiave API vengono visualizzati per nome della chiave, gli utenti OAuth per indirizzo email.

213* **Spend this month**: costi API totali per utente per il mese corrente.213* **Spend**: costi API totali per utente.

214* **Lines this month**: totale per utente delle righe di codice accettate per il mese corrente.214* **Lines accepted**: totale per utente delle righe che gli strumenti Edit e Write hanno aggiunto o rimosso nelle modifiche accettate.

215 215 

216> [!NOTE]216> [!NOTE]

217>217>

218> Le cifre di spesa nel dashboard della console sono stime a scopo di analittica. Per i costi effettivi, consulta la tua pagina di fatturazione.218> Le cifre di spesa nel dashboard della console sono stime a scopo di analitica. Per i costi effettivi, consulta la [pagina Cost](https://platform.claude.com/cost).

219 219 

220## Risorse correlate220## Risorse correlate

221 221 

Details

353 353 

354## Esaminare i rifiuti354## Esaminare i rifiuti

355 355 

356Per esaminare e riprovare le azioni che il classificatore della modalità auto ha negato, apri `/permissions` e seleziona la scheda **Recently denied**, dove Claude Code registra ogni rifiuto. Premi `r` su un'azione negata per contrassegnarla per il retry: quando esci dalla finestra di dialogo, Claude Code invia un messaggio dicendo al modello che può riprovare quella chiamata di strumento e riprende la conversazione.356Per consentire a Claude di riprovare un'azione bloccata, usa la scheda **Recently blocked** in `/permissions`:

357 357 

358Quando il classificatore produce [nessun verdetto sull'azione](https://code.claude.com/docs/it/errors.md#auto-mode-cannot-determine-the-safety-of-an-action), perché un controllo di sicurezza separato dalla modalità auto ha rifiutato la richiesta del classificatore stesso o la sua risposta non è stata analizzata, Claude Code nega l'azione senza registrarla sotto **Recently denied**. La voce di errore collegata copre ciò che Claude viene detto e come eseguire l'azione se ne hai bisogno.358**1. Apri la scheda**

359 

360Esegui `/permissions` nella tua sessione per aprire la finestra di dialogo dei permessi, quindi seleziona la scheda **Recently blocked**.

361 

362**2. Controlla l'azione**

363 

364Evidenzia la riga dell'azione e leggi il suo comando o input sotto l'elenco. Basati sul comando o sull'input, non sulla descrizione della riga, che è stata scritta da Claude o dallo strumento.

365 

366**3. Approva l'azione**

367 

368Premi `r` per approvare l'azione e consentire a Claude di riprovarla.

369 

370**4. Chiudi la finestra di dialogo**

371 

372Premi `Esc` per chiudere la finestra di dialogo e applicare la tua approvazione. Se Claude stava lavorando quando hai aperto `/permissions`, invia un messaggio quando Claude ha finito per consentirgli di riprovare l'azione. Altrimenti, non devi inviare nulla: Claude continua subito e potrebbe riprovarla. In caso contrario, indica l'azione nel tuo prossimo messaggio, come descritto in [Approvazioni dichiarate nella conversazione](https://code.claude.com/docs/it/permission-modes.md#approvals-you-state-in-conversation).

373 

374Approvare un'azione non aggiunge una regola di permesso. In modalità auto, un'azione riprovata passa di nuovo attraverso il controllo, quindi può essere bloccata di nuovo. Per lasciar passare un comando da ora in poi, [aggiungi una regola `allow`](#fix-a-denial-with-an-allow-rule-an-environment-entry-or-a-retry).

375 

376Se non vuoi che Claude riprovi subito, puoi approvare un'azione per dopo, ritirare un'approvazione oppure chiudere la finestra di dialogo e scartare le tue approvazioni:

377 

378* **Approvare per dopo**: premi `Enter` sulla riga, poi `Esc`. La riga esce dalla scheda e Claude potrebbe riprovare l'azione dopo il tuo prossimo messaggio, una volta che Claude ha finito. Se hai premuto anche `r` su un'altra riga, la riga su cui hai premuto `Enter` rimane nella scheda e Claude non viene informato di quell'azione. Approva quella riga alla tua prossima visita, oppure premi `r` su entrambe

379* **Ritirare un'approvazione**: prima di premere `Esc`, premi `Enter` sulla riga, sia che tu l'abbia approvata con `Enter` sia con `r`

380* **Chiudere la finestra di dialogo e scartare le tue approvazioni**: premi `Ctrl+C` due volte

381 

382Non puoi approvare un'azione dalla scheda quando la sua riga non riesce a mostrare tutto il comando o l'input, oppure quando l'azione non ha una riga:

383 

384* **La riga riporta `This row can't be approved here`**: se intendevi eseguire l'azione, dillo a Claude nel tuo prossimo messaggio e Claude potrebbe riprovarla

385* **Nessuna riga, e `Not run` o un errore del classificatore nella conversazione**: il classificatore della modalità auto non ha dato alcun verdetto. Per sapere come eseguire l'azione, leggi [Auto mode cannot determine the safety of an action](https://code.claude.com/docs/it/errors.md#auto-mode-cannot-determine-the-safety-of-an-action)

359 386 

360### Correggere un rifiuto con una regola di autorizzazione, una voce di ambiente o un retry387### Correggere un rifiuto con una regola di autorizzazione, una voce di ambiente o un retry

361 388 

362Per leggere il comando o l'URL dietro un avviso come `bash denied by auto mode · [Data Exfiltration] · /permissions`, usa la scheda **Recently denied**, un hook o la conversazione:389Gli avvisi si presentano come `bash blocked by auto mode · /permissions · Auto mode: [Data Exfiltration]`. Per leggere il comando o l'URL dietro uno di essi, usa la scheda **Recently blocked**, un hook o la conversazione:

363 390 

364* **Scheda Recently denied**: nella finestra di dialogo `/permissions`, evidenzia un'azione Bash o PowerShell negata per leggerne il comando sotto l'elenco. In [modalità screen reader](https://code.claude.com/docs/it/accessibility.md), tutti i comandi appaiono invece prima dell'elenco.391* **Scheda Recently blocked**: evidenzia la riga dell'azione. In [modalità screen reader](https://code.claude.com/docs/it/accessibility.md), ogni comando e input appare prima dell'elenco.

365* **Hook**: per acquisire l'input esatto dei rifiuti a livello di programmazione, aggiungi un [hook `PermissionDenied`](https://code.claude.com/docs/it/hooks#permissiondenied), che lo riceve come `tool_input`.392* **Hook**: per acquisire l'input esatto dei rifiuti a livello di programmazione, aggiungi un [hook `PermissionDenied`](https://code.claude.com/docs/it/hooks#permissiondenied), che lo riceve come `tool_input`. Se il tuo hook legge `reason`, aspettati l'assenza del prefisso `Auto mode:` e un testo come `Blocked by classifier` invece di `No reason provided`.

366* **Conversazione**: trova la chiamata allo strumento. Se la chiamata appare accorciata o ripiegata in una riga di riepilogo come `Ran 3 shell commands`, premi `Ctrl+O` per aprire il [visualizzatore della trascrizione](https://code.claude.com/docs/it/interactive-mode.md#transcript-viewer), che la espande.393* **Conversazione**: trova la chiamata allo strumento. Se la chiamata appare accorciata o ripiegata in una riga di riepilogo come `Ran 3 shell commands`, premi `Ctrl+O` per aprire il [visualizzatore della trascrizione](https://code.claude.com/docs/it/interactive-mode.md#transcript-viewer), che la espande.

367 394 

368Il testo sotto la chiamata ti dice se c'è qualcosa da correggere. Una riga attenuata `Not run · auto mode's check had no usable answer`, o un testo che segnala un problema con il classificatore stesso, come `Auto mode could not evaluate this action`, significa che Claude Code ha bloccato la chiamata senza un verdetto dal classificatore. Per una riga `Not run`, premi `Ctrl+O` per leggere il messaggio completo, quindi vedi [Auto mode cannot determine the safety of an action](https://code.claude.com/docs/it/errors.md#auto-mode-cannot-determine-the-safety-of-an-action) o [The server returned no safety verdict](https://code.claude.com/docs/it/errors.md#the-server-returned-no-safety-verdict) per sapere cosa fare.395Il testo sotto la chiamata ti dice se c'è qualcosa da correggere. Una riga attenuata `Not run · auto mode's check had no usable answer`, o un testo che segnala un problema con il classificatore stesso, come `Auto mode could not evaluate this action`, significa che Claude Code ha bloccato la chiamata senza un verdetto dal classificatore. Per una riga `Not run`, premi `Ctrl+O` per leggere il messaggio completo, quindi vedi [Auto mode cannot determine the safety of an action](https://code.claude.com/docs/it/errors.md#auto-mode-cannot-determine-the-safety-of-an-action) o [The server returned no safety verdict](https://code.claude.com/docs/it/errors.md#the-server-returned-no-safety-verdict) per sapere cosa fare.

369 396 

370Altrimenti, una riga che legge `Denied by auto mode classifier` con un motivo come `[Production Deploy]` o `Blocked by classifier` significa che il classificatore ha giudicato la chiamata non sicura, quindi scegli la correzione da ciò che la chiamata stava cercando di raggiungere o fare:397Altrimenti, una riga `Blocked by auto mode` significa che il classificatore ha giudicato la chiamata non sicura. Per lasciar passare la chiamata, esegui il passaggio corrispondente a ciò che Claude stava cercando di raggiungere o fare:

371 398 

372* Una destinazione che Claude ha bisogno durante l'intero compito, come un registro di pacchetti, un dominio interno o un host di repository: aggiungilo a `autoMode.environment`.399* Una destinazione che Claude ha bisogno durante l'intero compito, come un registro di pacchetti, un dominio interno o un host di repository: aggiungilo a `autoMode.environment`.

373* Un comando che desideri eseguire senza revisione da ora in poi: aggiungi una regola `allow`.400* Un comando che desideri eseguire senza revisione da ora in poi: aggiungi una regola `allow`.

Details

397* Dati sensibili inviati a endpoint esterni397* Dati sensibili inviati a endpoint esterni

398* Azioni che sembrano guidate da contenuti letti da Claude anziché da te398* Azioni che sembrano guidate da contenuti letti da Claude anziché da te

399 399 

400Quando blocca qualcosa, ricevi una notifica e l'azione compare sotto **Recently denied** in `/permissions`, dove puoi riprovarla con un'approvazione manuale. Dopo [tre blocchi consecutivi](https://code.claude.com/docs/it/permission-modes.md#when-auto-mode-falls-back) (o venti in totale), la modalità auto si mette in pausa e torna a chiederti conferma.400Quando la modalità auto blocca un'azione, ricevi una notifica e l'azione compare sotto **Recently blocked** in `/permissions`, dove puoi [approvare l'azione in modo che Claude possa riprovare](https://code.claude.com/docs/it/auto-mode-config.md#review-denials). Dopo [tre blocchi consecutivi](https://code.claude.com/docs/it/permission-modes.md#when-auto-mode-falls-back) (o venti in totale), la modalità auto si mette in pausa e torna a chiederti conferma.

401 401 

402Niente di tutto questo sostituisce i tuoi controlli deterministici, perché viene eseguito *dopo* di essi. Le regole deny e ask e gli hook `PreToolUse` si applicano prima che il classificatore veda qualsiasi cosa, quindi una regola deny blocca in modalità auto esattamente come altrove. La sandbox continua a confinare i [comandi shell che avvolge](https://code.claude.com/docs/it/sandboxing.md#what-runs-outside-the-sandbox).402Niente di tutto questo sostituisce i tuoi controlli deterministici, perché viene eseguito *dopo* di essi. Le regole deny e ask e gli hook `PreToolUse` si applicano prima che il classificatore veda qualsiasi cosa, quindi una regola deny blocca in modalità auto esattamente come altrove. La sandbox continua a confinare i [comandi shell che avvolge](https://code.claude.com/docs/it/sandboxing.md#what-runs-outside-the-sandbox).

403 403 

Details

30La [panoramica del gateway](https://code.claude.com/docs/it/gateways.md) copre cosa fa un gateway e perché ne eseguiresti uno. Claude apps gateway è il gateway di Anthropic, integrato nel binario `claude` e testato insieme a ogni rilascio di Claude Code, quindi inoltra i valori `anthropic-beta` e i campi di richiesta che Claude Code invia senza che gli operatori mantengano un'allowlist separata. Una volta fatto il deploy, ti offre:30La [panoramica del gateway](https://code.claude.com/docs/it/gateways.md) copre cosa fa un gateway e perché ne eseguiresti uno. Claude apps gateway è il gateway di Anthropic, integrato nel binario `claude` e testato insieme a ogni rilascio di Claude Code, quindi inoltra i valori `anthropic-beta` e i campi di richiesta che Claude Code invia senza che gli operatori mantengano un'allowlist separata. Una volta fatto il deploy, ti offre:

31 31 

32* **Credenziali**: la chiave API upstream o la credenziale cloud vive solo nella tua infrastruttura. Gli sviluppatori si autenticano con SSO aziendale e ricevono token bearer di breve durata, quindi l'offboarding avviene nel tuo IdP. Deprovision un utente e il suo accesso al gateway scade entro la durata della sessione, un'ora per impostazione predefinita.32* **Credenziali**: la chiave API upstream o la credenziale cloud vive solo nella tua infrastruttura. Gli sviluppatori si autenticano con SSO aziendale e ricevono token bearer di breve durata, quindi l'offboarding avviene nel tuo IdP. Deprovision un utente e il suo accesso al gateway scade entro la durata della sessione, un'ora per impostazione predefinita.

33* **Controllo di accesso**: i tuoi gruppi IdP si mappano agli elenchi di modelli consentiti e alle politiche di [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md). Il gateway applica l'accesso ai modelli lato server, rifiutando le richieste per modelli non concessi, e seleziona la politica di impostazioni gestite di ogni gruppo, che il CLI applica al [livello di impostazioni gestite](https://code.claude.com/docs/it/settings.md#settings-precedence). Diversi team ottengono diversi modelli, strumenti e autorizzazioni, e uno sviluppatore non può ignorare ciò che la sua politica blocca.33* **Controllo di accesso**: i tuoi gruppi IdP si mappano ad allowlist di modelli, politiche di [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md) e [upstream](https://code.claude.com/docs/it/claude-apps-gateway-config.md#send-each-team-to-its-own-upstream). Il gateway applica l'accesso ai modelli lato server, rifiutando le richieste per modelli non concessi, e seleziona la politica di impostazioni gestite di ogni gruppo, che il CLI applica al [livello di impostazioni gestite](https://code.claude.com/docs/it/settings.md#settings-precedence). Diversi team ottengono diversi modelli, strumenti e permessi, e uno sviluppatore non può sovrascrivere ciò che la sua politica blocca.

34* **Consegna delle impostazioni**: il gateway consegna le impostazioni gestite ai client connessi stesso, prendendo il posto delle [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md) dalla console amministratore di claude.ai.34* **Consegna delle impostazioni**: il gateway consegna le impostazioni gestite ai client connessi stesso, prendendo il posto delle [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md) dalla console amministratore di claude.ai.

35* **Telemetria**: ogni destinazione configurata riceve [metriche OpenTelemetry Protocol (OTLP)](https://code.claude.com/docs/it/monitoring-usage.md) con conteggi di token, modello, identità dell'utente e latenza per impostazione predefinita, con log e tracce come opt-in per destinazione.35* **Telemetria**: ogni destinazione configurata riceve [metriche OpenTelemetry Protocol (OTLP)](https://code.claude.com/docs/it/monitoring-usage.md) con conteggi di token, modello, identità dell'utente e latenza per impostazione predefinita, con log e tracce come opt-in per destinazione.

36* **Instradamento upstream**: i client parlano l'API Anthropic Messages al gateway, e il gateway traduce per ogni upstream, sia Bedrock, [Claude Platform su AWS](https://code.claude.com/docs/it/claude-platform-on-aws.md), Agent Platform di Google Cloud, Foundry o l'API Anthropic, con failover tra loro. Puoi cambiare regioni, provider o ordine di failover senza che gli sviluppatori se ne accorgano o riconfigurino.36* **Instradamento upstream**: i client parlano l'API Anthropic Messages al gateway, e il gateway traduce per ogni upstream, sia Bedrock, [Claude Platform su AWS](https://code.claude.com/docs/it/claude-platform-on-aws.md), Agent Platform di Google Cloud, Foundry o l'API Anthropic, con failover tra loro. Puoi cambiare regioni, provider o ordine di failover senza che gli sviluppatori se ne accorgano o riconfigurino.

Details

214 214 

215### `upstreams`215### `upstreams`

216 216 

217`upstreams` è un elenco ordinato. Il gateway inoltra l'inferenza al primo upstream che risolve il modello richiesto.217`upstreams` è un elenco ordinato. Il gateway inoltra l'inferenza al primo upstream che risolve il modello richiesto, saltando qualsiasi upstream il cui [elenco `groups`](#send-each-team-to-its-own-upstream) esclude lo sviluppatore.

218 218 

219Su `5xx`, `429`, `401`, `403`, `404` o timeout il gateway esegue il failover all'upstream successivo; sugli altri `4xx` no, perché questi errori sono attribuibili alla richiesta anziché all'upstream. Un `401` o `403` significa che l'upstream ha rifiutato la credenziale usata dal gateway o gli ha negato l'accesso, ad esempio al modello richiesto. Un `404` significa che quell'upstream non serve il modello richiesto, quindi un upstream successivo nell'elenco può ancora servirlo.219Su `5xx`, `429`, `401`, `403`, `404` o timeout il gateway esegue il failover all'upstream successivo; sugli altri `4xx` no, perché questi errori sono attribuibili alla richiesta anziché all'upstream. Un `401` o `403` significa che l'upstream ha rifiutato la credenziale usata dal gateway o gli ha negato l'accesso, ad esempio al modello richiesto. Un `404` significa che quell'upstream non serve il modello richiesto, quindi un upstream successivo nell'elenco può ancora servirlo.

220 220 


231Il gateway restituisce la risposta di errore di un upstream o il proprio `502`, a seconda di come hanno risposto gli upstream:231Il gateway restituisce la risposta di errore di un upstream o il proprio `502`, a seconda di come hanno risposto gli upstream:

232 232 

233* **Un upstream ha restituito uno stato su cui il gateway non [esegue il failover](#multiple-upstreams)**: la risposta di quell'upstream. Il gateway non prova altri upstream.233* **Un upstream ha restituito uno stato su cui il gateway non [esegue il failover](#multiple-upstreams)**: la risposta di quell'upstream. Il gateway non prova altri upstream.

234* **Ogni upstream provato dal gateway ha fallito in un modo su cui [esegue il failover](#multiple-upstreams)**: l'ultimo `429`. Quando nessuno ha restituito un `429`, il gateway preferisce, nell'ordine, l'ultimo `401` o `403`, l'ultimo `404` e l'ultimo `501`. Quando nessuno ha restituito nessuno di questi, il `502` del gateway stesso, `all upstreams failed (N attempted)`, dove N conta ogni voce in [`upstreams`](#upstreams), incluse le voci che il gateway ha saltato perché non servono il modello richiesto.234* **Ogni upstream provato dal gateway ha fallito in un modo su cui [esegue il failover](#multiple-upstreams)**: l'ultimo `429`. Quando nessuno ha restituito un `429`, il gateway preferisce, in ordine, l'ultimo `401` o `403`, l'ultimo `404` e l'ultimo `501`. Quando nessuno ha restituito nessuno di questi, il `502` del gateway stesso, `all upstreams failed (N attempted)`. N conta le tue voci [`upstreams`](#upstreams), incluse quelle saltate, meno quelle il cui elenco [`groups`](#send-each-team-to-its-own-upstream) esclude lo sviluppatore.

235 235 

236Quando il gateway restituisce la risposta di un upstream, mantiene il codice di stato dell'upstream. Se mantenga anche il messaggio dell'upstream dipende dal provider. Il corpo di errore di un upstream API Anthropic raggiunge lo sviluppatore invariato.236Quando il gateway restituisce la risposta di un upstream, mantiene il codice di stato dell'upstream. Se mantenga anche il messaggio dell'upstream dipende dal provider. Il corpo di errore di un upstream API Anthropic raggiunge lo sviluppatore invariato.

237 237 


361 # keep the quotes: a bare 1 fails at boot361 # keep the quotes: a bare 1 fails at boot

362```362```

363 363 

364> [!WARNING]

365>

366> Il gateway non supporta i tag di input dei guardrail. Non aggiunge tag di contenuto guard ai prompt, quindi un filtro del guardrail che Amazon Bedrock applica solo all'input con tag non viene eseguito sul traffico che passa per il gateway. Per sapere quali filtri dipendono dai tag di input, consulta [input tags](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-tagging.html) nella documentazione di Amazon Bedrock.

367 

368Concedi anche `bedrock:ApplyGuardrail` sul guardrail al principal che firma le richieste di questo upstream: il principal AWS del gateway oppure, con [`assume_role`](#bedrock-in-another-aws-account), il ruolo indicato in `role_arn`.364Concedi anche `bedrock:ApplyGuardrail` sul guardrail al principal che firma le richieste di questo upstream: il principal AWS del gateway oppure, con [`assume_role`](#bedrock-in-another-aws-account), il ruolo indicato in `role_arn`.

369 365 

370Imposta `guardrail` su ogni upstream `bedrock` o su nessuno. Il gateway si rifiuta di avviarsi con una configurazione mista, perché altrimenti il [failover](#multiple-upstreams) potrebbe inviare una richiesta a un upstream Bedrock privo di guardrail.366Imposta `guardrail` su ogni upstream `bedrock` o su nessuno. Il gateway si rifiuta di avviarsi con una configurazione mista, perché altrimenti il [failover](#multiple-upstreams) potrebbe inviare una richiesta a un upstream Bedrock privo di guardrail.


373 369 

374Quando una richiesta `/v1/messages` il cui corpo contiene un campo `amazon-bedrock-*`, come `amazon-bedrock-guardrailConfig`, raggiunge un upstream Bedrock con `guardrail` impostato, il gateway risponde 400 invece di inoltrarla.370Quando una richiesta `/v1/messages` il cui corpo contiene un campo `amazon-bedrock-*`, come `amazon-bedrock-guardrailConfig`, raggiunge un upstream Bedrock con `guardrail` impostato, il gateway risponde 400 invece di inoltrarla.

375 371 

372> [!WARNING]

373>

374> Per impostazione predefinita il gateway non aggiunge tag di input ai prompt, quindi un filtro del guardrail che Amazon Bedrock applica solo all'input con tag non viene eseguito sul traffico che passa dal gateway. Per aggiungere i tag, imposta [`input_tagging`](#add-guardrail-input-tags). Per sapere quali filtri dipendono dai tag di input, consulta [input tags](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-tagging.html) nella documentazione di Amazon Bedrock.

375 

376##### Aggiungi i tag di input del guardrail

377 

378Per fare in modo che il gateway aggiunga i tag di input di cui ha bisogno il [filtro prompt attacks](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-prompt-attack.html) di un guardrail di Amazon Bedrock, imposta `input_tagging` nel blocco `guardrail` e riavvia il gateway. Imposta lo stesso valore su ogni upstream `bedrock`, altrimenti il gateway si rifiuta di avviarsi. Richiede Claude Code v2.1.316 o successivo sul server del gateway. Un gateway su una versione priva della chiave termina all'avvio con `Unrecognized key(s) in object: 'input_tagging'`.

379 

380> [!WARNING]

381>

382> Secondo la [documentazione di Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-tagging.html), ogni filtro del guardrail smette di valutare il contenuto senza tag quando una richiesta contiene tag di input. Prova `input_tagging` su un gateway di test prima di impostarlo su uno usato dagli sviluppatori.

383 

384`input_tagging` accetta uno di questi valori:

385 

386| `input_tagging` | Dove il gateway applica i tag al testo | Dopo che il guardrail blocca un prompt |

387| :- | :- | :- |

388| `last_message` | I messaggi `user` successivi all'ultima risposta di Claude | In Claude Code, il prompt successivo può passare e Claude riceve quindi il prompt bloccato come parte della conversazione |

389| `user_messages` | Messaggi `user` | Anche i prompt successivi nella sessione possono essere bloccati, finché lo sviluppatore non rimuove il prompt bloccato |

390| `all_messages` | Messaggi `user` e `assistant` | Come `user_messages` |

391| `all_messages_and_system` | Il prompt di sistema e ogni messaggio, inclusi i [messaggi di sistema a metà conversazione](https://code.claude.com/docs/it/llm-gateway-protocol.md#feature-pass-through) | Come `user_messages` |

392 

393Con `last_message`, se i messaggi `user` successivi all'ultima risposta di Claude non contengono testo a cui applicare i tag, il gateway applica invece i tag ai messaggi di sistema a metà conversazione successivi a quella risposta. Una chiamata a uno strumento conta come risposta.

394 

395Le indicazioni di Amazon Bedrock per il filtro prompt attacks consistono nell'[applicare i tag all'input dell'utente in modo da escludere il prompt di sistema](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-prompt-attack.html). Se imposti `all_messages_and_system`, un filtro che segnala il prompt di sistema di Claude Code stesso può bloccare le richieste.

396 

397L'esempio seguente applica i tag al testo in ogni messaggio `user`:

398 

399```yaml theme={null}

400upstreams:

401 - provider: bedrock

402 region: us-east-1

403 auth: {}

404 guardrail:

405 id: gr-abc123

406 version: "1"

407 input_tagging: user_messages

408```

409 

410I messaggi `user` possono contenere anche testo aggiunto da Claude Code, come i [promemoria di sistema](https://code.claude.com/docs/it/glossary.md#system-reminder), quindi verifica sul gateway di test che le richieste ordinarie non vengano bloccate.

411 

412Nei test di Anthropic, una sessione con tag ha mantenuto le letture dalla [prompt cache](https://code.claude.com/docs/it/prompt-caching.md) da un prompt all'altro, e i tag non hanno aggiunto token di input.

413 

414##### Cosa non coprono i tag di input

415 

416Nessun valore di `input_tagging` ferma uno sviluppatore che inserisce deliberatamente del testo dove non va alcun tag. Non fare affidamento sul guardrail per valutare queste parti di una richiesta:

417 

418* **Contenuto a cui il gateway non applica tag**: i messaggi che il tuo valore di `input_tagging` esclude, le definizioni degli strumenti, gli input delle chiamate agli strumenti, le immagini e i PDF, tra gli altri. A meno che tu non imposti `all_messages_and_system`, anche il prompt di sistema è privo di tag.

419* **Risultati degli strumenti**: contengono ciò che restituiscono gli strumenti di Claude, come i contenuti dei file e le pagine web. Nei test di Anthropic, un filtro di parole non li ha valutati, con o senza tag.

420 

421Se il tuo account o la tua organizzazione AWS impone un guardrail, consulta la [documentazione di Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-enforcements.html) per sapere come quel guardrail tratta i tag di input.

422 

423##### Registrare quale filtro del guardrail è scattato

424 

425Per scoprire quale filtro del guardrail di Amazon Bedrock ha bloccato la richiesta di uno sviluppatore, imposta `guardrail_trace: true` sull'upstream Bedrock, riavvia il gateway e chiedi allo sviluppatore di inviare di nuovo la richiesta. Poi trova l'evento `guardrail.trace` della richiesta nel [log di audit](https://code.claude.com/docs/it/claude-apps-gateway-deploy.md#logs). Richiede Claude Code v2.1.314 o successiva sul server del gateway. Un gateway precedente si rifiuta di avviarsi quando trova `guardrail_trace`.

426 

427```yaml theme={null}

428upstreams:

429 - provider: bedrock

430 region: us-east-1

431 auth: {}

432 guardrail:

433 id: gr-abc123

434 version: "1"

435 guardrail_trace: true # default false; beside guardrail, not inside it

436```

437 

438Il gateway scrive un evento `guardrail.trace`, senza il testo corrispondente, quando un filtro è scattato o l'azione del guardrail è `INTERVENED`. Trova gli eventi dello sviluppatore tramite `email` o `sub`. Una singola richiesta in streaming può produrre più eventi, e uno di essi può avere un elenco `filters` vuoto, quindi leggi ogni evento che ha lo stesso `request_id`:

439 

440| Campo | Cosa contiene |

441| - | - |

442| `request_id` | L'ID della richiesta |

443| `sub`, `email` | L'ID utente e l'email dello sviluppatore |

444| `upstream` | L'upstream da cui proviene la risposta |

445| `action` | L'azione del guardrail, come `INTERVENED` |

446| `filters` | I filtri scattati. L'elenco è vuoto quando AWS non invia dettagli sui filtri |

447| `filters[].side` | `input` o `output` |

448| `filters[].guardrail` | L'ID del guardrail |

449| `filters[].policy` | La policy e l'elenco di Bedrock, come `contentPolicy.filters` o `sensitiveInformationPolicy.piiEntities` |

450| Altri campi di `filters[]` | Una voce può contenere anche campi come `action`, `name`, `type`, `confidence`, `filterStrength`, `score` e `threshold` |

451 

452L'evento omette il testo corrispondente a un filtro, incluso il campo `match` della trace di Bedrock. Gli sviluppatori non ricevono i dati di trace di Bedrock, perché il gateway li rimuove da ogni risposta, in streaming o no.

453 

454Se un client invia un campo `amazon-bedrock-*` nel corpo di una richiesta `/v1/messages`, il gateway risponde 400 su un upstream che imposta `guardrail_trace`.

455 

376##### Bedrock in un altro account AWS456##### Bedrock in un altro account AWS

377 457 

378Imposta `assume_role` su un upstream Bedrock e il gateway userà la propria identità AWS solo per chiamare `sts:AssumeRole` su un ruolo che indichi, che può trovarsi in un account AWS diverso da quello del gateway. Ogni richiesta Bedrock da quell'upstream viene firmata con le credenziali di un'ora restituite da STS, quindi nessuna chiave di accesso a lunga durata attraversa gli account.458Imposta `assume_role` su un upstream Bedrock e il gateway userà la propria identità AWS solo per chiamare `sts:AssumeRole` su un ruolo che indichi, che può trovarsi in un account AWS diverso da quello del gateway. Ogni richiesta Bedrock da quell'upstream viene firmata con le credenziali di un'ora restituite da STS, quindi nessuna chiave di accesso a lunga durata attraversa gli account.


415* Se STS rifiuta o non è raggiungibile, il gateway non invia la richiesta con le credenziali proprie dell'upstream. Registra l'errore STS con ciò che occorre verificare, quindi prova l'upstream successivo che hai elencato. [Messaggi di errore dell'upstream](#upstream-error-messages) descrive ciò che riceve il client quando nessun upstream ha successo. Un upstream successivo senza `assume_role` servirebbe la richiesta con le proprie credenziali, quindi elencane uno solo se è ciò che desideri.495* Se STS rifiuta o non è raggiungibile, il gateway non invia la richiesta con le credenziali proprie dell'upstream. Registra l'errore STS con ciò che occorre verificare, quindi prova l'upstream successivo che hai elencato. [Messaggi di errore dell'upstream](#upstream-error-messages) descrive ciò che riceve il client quando nessun upstream ha successo. Un upstream successivo senza `assume_role` servirebbe la richiesta con le proprie credenziali, quindi elencane uno solo se è ciò che desideri.

416* Il gateway chiama l'endpoint STS regionale `sts.<region>.amazonaws.com`, che la sua rete deve poter raggiungere. Per l'endpoint FIPS, imposta `AWS_USE_FIPS_ENDPOINT=true` nell'ambiente del gateway anziché `use_fips_endpoint` in un file di configurazione AWS.496* Il gateway chiama l'endpoint STS regionale `sts.<region>.amazonaws.com`, che la sua rete deve poter raggiungere. Per l'endpoint FIPS, imposta `AWS_USE_FIPS_ENDPOINT=true` nell'ambiente del gateway anziché `use_fips_endpoint` in un file di configurazione AWS.

417* `assume_role` si applica solo a `provider: bedrock` e richiede credenziali di origine SigV4: il gateway si rifiuta di avviarsi quando è impostato insieme a `aws_bearer_token`.497* `assume_role` si applica solo a `provider: bedrock` e richiede credenziali di origine SigV4: il gateway si rifiuta di avviarsi quando è impostato insieme a `aws_bearer_token`.

418* Ogni sviluppatore ammesso dal gateway può usare questo upstream; [`managed`](#managed) stabilisce quali sviluppatori possono usare quali modelli. Per evitare che un modello servito tramite il ruolo venga servito anche da un altro account, assegnagli un id personalizzato la cui mappa `upstream_model` contenga solo il nome di questo upstream. Per un id di questo tipo il gateway salta ogni altro upstream, quindi né la richiesta né il conteggio dei token per una richiesta interrotta possono eseguire il failover su un altro account. Una richiesta per il nome di un modello integrato può comunque [raggiungere questo upstream](#multiple-upstreams), e il gateway la firma con lo stesso ruolo. Elenca questo upstream per ultimo a meno che anche il suo account non debba servire quei modelli.498* Senza un [elenco `groups`](#send-each-team-to-its-own-upstream), ogni sviluppatore ammesso dal gateway può usare questo upstream. Per limitare i modelli che uno sviluppatore può usare, imposta `availableModels` in una policy [`managed`](#managed).

499* Per evitare che un modello servito tramite il ruolo venga servito anche da un altro account, assegnagli un id personalizzato la cui mappa `upstream_model` contenga solo il nome di questo upstream. Per un id di questo tipo il gateway salta ogni altro upstream, quindi né la richiesta né il conteggio dei token per una richiesta interrotta possono eseguire il failover su un altro account.

500* Una richiesta per un nome di modello integrato può comunque [raggiungere questo upstream](#multiple-upstreams), e il gateway la firma con lo stesso ruolo. Elenca questo upstream per ultimo a meno che il suo account non debba servire anche quei modelli.

419 501 

420Questo esempio assegna a un modello un id personalizzato che solo l'upstream isolato serve:502Questo esempio assegna a un modello un id personalizzato che solo l'upstream isolato serve:

421 503 


627 709 

628`429` indica la capacità del singolo upstream, quindi l'esaurimento del throughput provisioned (PT) esegue il failover su on-demand. Se imposti [`forward_user_identity: true`](#per-user-identity-headers-for-a-proxy-you-run) su un upstream, un `429` a una richiesta che portava l'email dello sviluppatore è invece un rifiuto per utente e non esegue il failover.710`429` indica la capacità del singolo upstream, quindi l'esaurimento del throughput provisioned (PT) esegue il failover su on-demand. Se imposti [`forward_user_identity: true`](#per-user-identity-headers-for-a-proxy-you-run) su un upstream, un `429` a una richiesta che portava l'email dello sviluppatore è invece un rifiuto per utente e non esegue il failover.

629 711 

630Ogni richiesta inizia dal primo upstream. Una richiesta raggiunge un upstream successivo solo quando ogni upstream che lo precede ha fallito o non serve il modello richiesto.712Una richiesta supera un upstream solo in questi casi:

713 

714* L'upstream ha restituito un errore

715* L'upstream non serve il modello richiesto

716* L'upstream ha un [elenco `groups`](#send-each-team-to-its-own-upstream) che esclude lo sviluppatore

631 717 

632Il gateway non tiene traccia degli upstream falliti, quindi mentre un upstream non è disponibile, ogni richiesta che lo raggiunge lo prova comunque e attende che fallisca prima di passare al successivo.718Il gateway non tiene traccia degli upstream falliti, quindi mentre un upstream non è disponibile, ogni richiesta che lo raggiunge lo prova comunque e attende che fallisca prima di passare al successivo.

633 719 


680| - | - |766| - | - |

681| Regioni diverse | Un upstream Amazon Bedrock per regione, ciascuno con la propria `region:`. Con [`auto_include_builtin_models: true`](#models) i profili di inferenza cross-region instradano automaticamente; per i deployment vincolati a una regione usa un blocco `models:`. |767| Regioni diverse | Un upstream Amazon Bedrock per regione, ciascuno con la propria `region:`. Con [`auto_include_builtin_models: true`](#models) i profili di inferenza cross-region instradano automaticamente; per i deployment vincolati a una regione usa un blocco `models:`. |

682| Account diversi | Un upstream Amazon Bedrock per account. La catena predefinita (`auth: {}`) usa l'identità del pod; per un secondo account, aggiungi [`assume_role`](#bedrock-in-another-aws-account) per raggiungerlo con credenziali a breve durata, oppure imposta credenziali esplicite o un token bearer in `auth:`. |768| Account diversi | Un upstream Amazon Bedrock per account. La catena predefinita (`auth: {}`) usa l'identità del pod; per un secondo account, aggiungi [`assume_role`](#bedrock-in-another-aws-account) per raggiungerlo con credenziali a breve durata, oppure imposta credenziali esplicite o un token bearer in `auth:`. |

769| Team diversi | Assegna all'upstream di ogni team un elenco `groups`, in modo che solo gli sviluppatori in quei gruppi IdP lo raggiungano. Consulta [Invia ogni team al proprio upstream](#send-each-team-to-its-own-upstream). |

683| Throughput provisioned | Mappa il modello all'ARN di throughput provisioned in `models:` per il nome di quell'upstream. Gli altri upstream mantengono l'ID on-demand, quindi la capacità PT viene esaurita prima del failover. |770| Throughput provisioned | Mappa il modello all'ARN di throughput provisioned in `models:` per il nome di quell'upstream. Gli altri upstream mantengono l'ID on-demand, quindi la capacità PT viene esaurita prima del failover. |

684| Endpoint VPC / FIPS | Imposta `base_url:` sull'upstream all'URL del tuo endpoint VPC o FIPS |771| Endpoint VPC / FIPS | Imposta `base_url:` sull'upstream all'URL del tuo endpoint VPC o FIPS |

685| Instradamento limitato al modello | Solo un `id` di modello personalizzato, cioè non un modello Claude integrato, salta gli upstream assenti dalla sua mappa `upstream_model:`. Un upstream `mantle` viene provato solo per i modelli elencati nel suo [campo `models`](#amazon-bedrock-mantle-endpoint). Su ogni altro upstream il gateway prova i modelli integrati in ordine e usa l'ID predefinito del provider dove la mappa non ha una voce, quindi per i modelli integrati la mappa cambia quale ID riceve un upstream anziché se venga provato; un upstream che rifiuta l'ID segue le stesse [regole di failover](#upstreams) di qualsiasi altro errore dell'upstream. |772| Instradamento per modello | Un `id` di modello personalizzato, cioè non un modello Claude integrato, salta gli upstream assenti dalla sua mappa `upstream_model:`. Un upstream con un elenco `models`, che un [upstream `mantle`](#amazon-bedrock-mantle-endpoint) deve avere, viene provato solo per quei modelli. |

773| Instradamento dei modelli integrati | Su un upstream senza elenco `models` o `groups`, il gateway prova i modelli integrati in ordine e usa l'ID predefinito del provider quando la mappa `upstream_model:` non ha una voce. Per un modello integrato per cui il provider ha un ID predefinito, la mappa cambia quale ID riceve un upstream anziché se viene provato. Un upstream che rifiuta l'ID segue le stesse [regole di failover](#upstreams) di qualsiasi altro errore di upstream. |

686 774 

687Il failover tra provider cloud, o verso l'API Anthropic diretta, cambia quale accordo, area geografica e altri termini regolano la richiesta.775Il failover tra provider cloud, o verso l'API Anthropic diretta, cambia quale accordo, area geografica e altri termini regolano la richiesta.

688 776 

689La CLI applica lo stesso feature gating ai gateway indipendentemente da quale upstream serve una data richiesta, quindi per impostazione predefinita il failover non invia un campo del corpo che un upstream rifiuterebbe. Se imposti il [TTL della cache di un'ora](#one-hour-prompt-cache) in una policy, questo viene inviato a ogni upstream dell'elenco, quindi impostalo solo se tutti lo accettano.777La CLI applica lo stesso feature gating ai gateway indipendentemente da quale upstream serve una data richiesta, quindi per impostazione predefinita il failover non invia un campo del corpo che un upstream rifiuterebbe. Se imposti il [TTL della cache di un'ora](#one-hour-prompt-cache) in una policy, questo viene inviato a ogni upstream dell'elenco, quindi impostalo solo se tutti lo accettano.

690 778 

779#### Invia ogni team al proprio upstream

780 

781Per inviare le richieste di ogni team al proprio account AWS o progetto Google Cloud, elenca un upstream per team e assegna a ciascuno un elenco `groups`. Solo gli sviluppatori in un gruppo IdP elencato raggiungono quell'upstream, al primo tentativo e in [failover](#multiple-upstreams). Ogni provider accetta `groups`. Richiede Claude Code v2.1.314 o successivo sul server del gateway.

782 

783Questo esempio assegna un account AWS ciascuno ai gruppi `payments-eng` e `search-eng`, e aggiunge un upstream senza elenco `groups` che ogni sviluppatore può usare:

784 

785```yaml theme={null}

786upstreams:

787 - name: bedrock-payments

788 provider: bedrock

789 region: us-east-1

790 auth: {}

791 assume_role:

792 role_arn: arn:aws:iam::111111111111:role/claude-gateway-bedrock

793 groups: [payments-eng]

794 - name: bedrock-search

795 provider: bedrock

796 region: us-east-1

797 auth: {}

798 assume_role:

799 role_arn: arn:aws:iam::222222222222:role/claude-gateway-bedrock

800 groups: [search-eng]

801 - name: bedrock-shared # no groups: open to everyone, so listed last

802 provider: bedrock

803 region: us-east-1

804 auth: {}

805```

806 

807Con la configurazione di esempio, le richieste di ogni sviluppatore partono dal primo upstream nella sua riga e passano al successivo in caso di failover:

808 

809| Gruppi dello sviluppatore | Upstream, in ordine |

810| - | - |

811| `payments-eng` | `bedrock-payments`, poi `bedrock-shared` |

812| `search-eng` | `bedrock-search`, poi `bedrock-shared` |

813| `payments-eng` e `search-eng` | `bedrock-payments`, poi `bedrock-search`, poi `bedrock-shared` |

814| Nessuno dei due | `bedrock-shared` |

815 

816Quando l'upstream di un team nega il modello richiesto con un `403`, il gateway prova il successivo upstream nella riga di quel team che serve il modello. Per mantenere il team su un solo upstream, assegna a ogni upstream un elenco `groups` e assicurati che nessun altro upstream elenchi un gruppo a cui appartengono gli sviluppatori del team. Quel team non ha quindi failover, e le richieste degli sviluppatori che non appartengono a nessun gruppo elencato [falliscono con un `400`](#what-happens-when-a-developer-is-in-no-listed-group).

817 

818Per far arrivare ogni sviluppatore all'upstream previsto, scrivi voci che corrispondano esattamente e metti per ultimi gli upstream aperti:

819 

820* **Voci**: scrivi ogni gruppo esattamente come lo invia il tuo IdP nel [claim dei gruppi](#oidc), che legge anche [`match.groups`](#managed). Il gateway si rifiuta di avviarsi quando trova un elenco vuoto o una voce vuota. Non verifica una voce rispetto al tuo IdP, quindi una voce che non corrisponde a nessuno non genera alcun avviso.

821* **Ordine**: metti per ultimo un upstream che non ha un elenco `groups`. Serve tutti, quindi se elencato prima prende le richieste di un team prima dell'upstream di quel team.

822 

823> [!WARNING]

824>

825> Un gateway precedente alla v2.1.314 si rifiuta di avviarsi quando trova `groups`, quindi aggiorna ogni replica prima di aggiungerlo.

826>

827> Prima di eseguire il rollback, rimuovi ogni upstream che ha un elenco `groups` e ogni chiave `upstream_model` o override dei prezzi che lo nomina, e mantieni almeno un upstream. Se rimuovi solo la chiave `groups`, quell'upstream è aperto a ogni sviluppatore. Una chiave o un override che nomina ancora un upstream rimosso impedisce l'avvio del gateway, con `references unknown upstream`.

828 

829##### Cosa succede quando uno sviluppatore non appartiene a nessun gruppo elencato

830 

831Se ogni upstream ha un elenco `groups`, uno sviluppatore che non appartiene a nessuno di quei gruppi vede questo errore, e il gateway non contatta alcun provider:

832 

833```text theme={null}

834API Error: 400 you aren't in a group that can use this gateway. Ask your administrator to add you to one

835```

836 

837Aggiungi lo sviluppatore a un gruppo elencato nel tuo IdP, oppure aggiungi un upstream senza elenco `groups`.

838 

839Il gateway rilegge i gruppi di uno sviluppatore a ogni aggiornamento del token. Se il tuo IdP omette i gruppi in un aggiornamento, lo sviluppatore non ne ha più nessuno:

840 

841* **[`oidc.allowed_groups`](#oidc) è impostato**: il gateway rifiuta l'aggiornamento e la sessione termina

842* **Altrimenti, un upstream non ha un elenco `groups`**: le richieste dello sviluppatore passano a quell'upstream

843* **Altrimenti, ogni upstream ha un elenco `groups`**: le richieste dello sviluppatore falliscono con quell'errore

844 

845Se l'endpoint userinfo del tuo IdP restituisce il claim dei gruppi e `oidc.google_groups` non è impostato, imposta [`oidc.userinfo_fallback`](#oidc) su `true` per ricavare i gruppi da lì.

846 

691## Sezioni facoltative847## Sezioni facoltative

692 848 

693### `admin`849### `admin`


782 938 

783#### Invia le tariffe ai client che hanno effettuato l'accesso939#### Invia le tariffe ai client che hanno effettuato l'accesso

784 940 

785Con v2.1.268 o successivo sul server del gateway, il gateway mette anche le tariffe da `pricing` nelle policy [`managed`](#managed) che serve, come l'impostazione gestita [`modelPricing`](https://code.claude.com/docs/it/settings-reference#modelpricing). Gli sviluppatori abbinati da una policy vedono quindi le tariffe `pricing` per il primo upstream che serve ogni ID modello in `/usage`, nella riga di stato e in OpenTelemetry. Uno sviluppatore che non corrisponde a nessuna policy non riceve impostazioni gestite, quindi le sue cifre rimangono al prezzo di listino. I client applicano l'impostazione in Claude Code v2.1.242 o successivo.941Con la v2.1.268 o versioni successive sul server del gateway, il gateway inserisce anche le tariffe di `pricing` nelle policy [`managed`](#managed) che serve, come impostazione gestita [`modelPricing`](https://code.claude.com/docs/it/settings-reference#modelpricing).

942 

943Gli sviluppatori a cui corrisponde una policy vedono quindi le tariffe di `pricing` in `/usage`, nella riga di stato e in OpenTelemetry. Uno sviluppatore a cui non corrisponde alcuna policy non riceve impostazioni gestite, quindi i suoi valori restano al prezzo di listino. I client applicano l'impostazione in Claude Code v2.1.242 o versioni successive.

786 944 

787* Cosa aggiunge il gateway: a meno che il blocco `cli` di una policy non imposti già `modelPricing`, il gateway aggiunge il `multiplier` e, per ogni ID modello che un client può richiedere, la riga di override del primo upstream che serve quell'ID. Una tariffa che solo un upstream di failover addebita rimane sul gateway.945* Cosa aggiunge il gateway: a meno che il blocco `cli` di una policy non imposti già `modelPricing`, il gateway aggiunge il `multiplier` e, per ogni ID modello che un client può richiedere, la riga di override del primo upstream che serve quell'ID. Una tariffa che solo un upstream di failover addebita rimane sul gateway.

946* Upstream con un [elenco `groups`](#send-each-team-to-its-own-upstream): quando uno di questi è il primo upstream che serve un ID di modello, il gateway non aggiunge alcuna riga per quell'ID. Gli sviluppatori vedono quindi la tariffa di Claude Code per quell'ID, ovvero la tariffa standard del modello quando Claude Code riconosce l'ID, moltiplicata per il `multiplier`.

788* Escludi una policy: imposta `modelPricing` a `{}` nel blocco `cli` di quella policy, e i suoi sviluppatori rimangono al prezzo di listino.947* Escludi una policy: imposta `modelPricing` a `{}` nel blocco `cli` di quella policy, e i suoi sviluppatori rimangono al prezzo di listino.

789* Mantieni le tariffe proprie di una policy: una policy il cui blocco `cli` imposta `modelPricing` con il suo `multiplier` o `overrides` mantiene quel `modelPricing` intero, e il gateway non vi aggiunge tariffe proprie.948* Mantieni le tariffe proprie di una policy: una policy il cui blocco `cli` imposta `modelPricing` con il suo `multiplier` o `overrides` mantiene quel `modelPricing` intero, e il gateway non vi aggiunge tariffe proprie.

790 949 


808 967 

809### `managed`968### `managed`

810 969 

811Il blocco `managed` definisce policy di accesso basate sui ruoli, associate a gruppi IdP o al dominio email. Le policy vengono valutate in ordine; viene selezionata la prima corrispondenza, su cui viene poi eseguito il merge con la base catch-all `match: {}`. Vengono servite per utente su `GET /managed/settings` con caching ETag/304.970Il 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.

812 971 

813```yaml theme={null}972```yaml theme={null}

814managed:973managed:


849 1008 

850Un utente autenticato che non corrisponde a nessuna policy ottiene i valori predefiniti del gateway, il che significa ogni modello nel catalogo e nessuna impostazione gestita. Aggiungi un catch-all `match: {}` per ultimo se vuoi una policy predefinita garantita.1009Un utente autenticato che non corrisponde a nessuna policy ottiene i valori predefiniti del gateway, il che significa ogni modello nel catalogo e nessuna impostazione gestita. Aggiungi un catch-all `match: {}` per ultimo se vuoi una policy predefinita garantita.

851 1010 

1011Inserisci le regole di negazione a livello di organizzazione nella policy `match: {}`, perché le regole di una policy di gruppo si applicano solo finché il token dell'utente contiene quel gruppo.

1012 

852> [!NOTE]1013> [!NOTE]

853>1014>

854> Il gateway non mantiene una propria directory utente. Autorizza ogni richiesta dal token IdP dell'utente, leggendo l'appartenenza ai gruppi dal claim `groups` del token e valutando le policy rispetto ad esso. Non c'è un elenco da enumerare e nessun account da pre-creare, e quindi nessun endpoint SCIM, perché non c'è nulla in cui SCIM possa sincronizzare.1015> Il gateway non mantiene una propria directory utente. Autorizza ogni richiesta dal token IdP dell'utente, leggendo l'appartenenza ai gruppi dal claim `groups` del token e valutando le policy rispetto ad esso. Non c'è un elenco da enumerare e nessun account da pre-creare, e quindi nessun endpoint SCIM, perché non c'è nulla in cui SCIM possa sincronizzare.


862>1023>

863> Claude Desktop segue [la propria tempistica](#when-a-policy-change-reaches-claude-desktop).1024> Claude Desktop segue [la propria tempistica](#when-a-policy-change-reaches-claude-desktop).

864 1025 

1026#### Applicare ogni policy corrispondente

1027 

1028Un utente che corrisponde a più policy di ruolo riceve solo la prima, a meno che tu non imposti `policy_mode: layered` accanto a `policies`. Con `layered`, si applica ogni policy che corrisponde all'utente, fino alla prima policy `match: {}`.

1029 

1030`policy_mode` richiede Claude Code v2.1.316 o successiva sul server del gateway. Un gateway con una versione che non la supporta si rifiuta di avviarsi quando trova la chiave. Aggiorna ogni replica prima di aggiungere la chiave e rimuovi la chiave prima di tornare a una versione precedente. Questo esempio ha un gruppo che perde `WebFetch` e uno che ottiene Opus:

1031 

1032```yaml theme={null}

1033managed:

1034 policy_mode: layered

1035 policies:

1036 - match: { groups: [no-web] }

1037 cli:

1038 permissions: { deny: ["WebFetch"] }

1039 - match: { groups: [opus-users] }

1040 cli:

1041 availableModels: [opus, sonnet]

1042 - match: {}

1043 cli:

1044 availableModels: [sonnet]

1045 enforceAvailableModels: true

1046```

1047 

1048La tabella mostra cosa riceve un utente che appartiene sia a `no-web` sia a `opus-users` con la modalità predefinita, `first_match`, e con `layered`.

1049 

1050| Impostazione | `first_match` | `layered` |

1051| - | - | - |

1052| `availableModels` | `sonnet` | `opus`, `sonnet` |

1053| `enforceAvailableModels` | `true` | `true` |

1054| `permissions.deny` | `WebFetch` | `WebFetch` |

1055 

1056Il gateway esegue il merge di ogni policy corrispondente su quelle elencate sotto di essa, con le stesse [regole di merge](#managed) del livello di base:

1057 

1058* **Allowlist, valori singoli e blocchi come `sandbox`**: ciascuno proviene per intero dalla prima policy corrispondente in elenco che lo imposta, quindi gli elenchi `availableModels` di due gruppi non si sommano.

1059* **Elenchi di negazione e array di hook**: questi si sommano su tutte le policy corrispondenti, quindi un utente in due gruppi riceve le regole di negazione di entrambi i gruppi.

1060* **`env`, `modelOverrides` e `skillOverrides`**: le voci vengono unite per nome, e la prima policy corrispondente in elenco che imposta un nome ne fornisce il valore.

1061* **Chiavi di `desktop`**: queste vengono unite secondo [le regole per il blocco `desktop` di base](#how-a-role-policy-inherits-the-base-desktop-block).

1062 

1063> [!WARNING]

1064>

1065> Le policy possono sommarsi in regole più permissive di quelle che ciascuna darebbe da sola. Ad esempio, la policy `match: {}` imposta `sandbox.enabled: true`, la policy di un gruppo imposta `permissions.allow: ["Bash"]` e quella di un altro gruppo imposta `sandbox.enabled: false`. Un utente in entrambi i gruppi riceve `Bash` consentito con la sandbox disattivata. In questo caso, elenca per prima la policy che consente `Bash` e copia al suo interno l'intero blocco `sandbox` della policy `match: {}`.

1066 

1067Con `layered`, il gateway si rifiuta di avviarsi con alcune impostazioni, tra cui queste:

1068 

1069* **Un pattern `!`**: una [negazione `!`](https://code.claude.com/docs/it/permissions#special-characters-and-negation) in una regola `Read` o `Edit` nell'elenco `permissions.deny` o `permissions.ask` di qualsiasi policy, inclusa quella `match: {}`

1070* **Un limite sugli hook al di fuori del catch-all**: `disableAllHooks`, `allowedHttpHookUrls` o `httpHookAllowedEnvVars` in qualsiasi policy diversa da `match: {}`

1071 

865#### Avvia le sessioni su un modello consentito dalla policy1072#### Avvia le sessioni su un modello consentito dalla policy

866 1073 

867Se `availableModels` esclude il modello predefinito di Claude Code, le sessioni ricevono risposte `400` finché lo sviluppatore non sceglie un modello elencato, ad esempio con `/model`. Nelle sessioni del gateway il modello predefinito è il modello Opus a cui si risolve l'alias `opus`, e `availableModels` da solo non lo cambia.1074Se `availableModels` esclude il modello predefinito di Claude Code, le sessioni ricevono risposte `400` finché lo sviluppatore non sceglie un modello elencato, ad esempio con `/model`. Nelle sessioni del gateway il modello predefinito è il modello Opus a cui si risolve l'alias `opus`, e `availableModels` da solo non lo cambia.

Details

169 * `access.public_client` porta l'IP client della prima richiesta per processo che arriva da un indirizzo pubblico mentre `access_control.allow_cidrs` è vuoto. Il gateway serve la richiesta come al solito; l'evento segnala che il gateway potrebbe essere raggiungibile da internet pubblico. Vedi il riferimento [`access_control`](https://code.claude.com/docs/it/claude-apps-gateway-config#http-tuning) per quello che conta come pubblico e per l'elenco di autorizzazione consigliato.169 * `access.public_client` porta l'IP client della prima richiesta per processo che arriva da un indirizzo pubblico mentre `access_control.allow_cidrs` è vuoto. Il gateway serve la richiesta come al solito; l'evento segnala che il gateway potrebbe essere raggiungibile da internet pubblico. Vedi il riferimento [`access_control`](https://code.claude.com/docs/it/claude-apps-gateway-config#http-tuning) per quello che conta come pubblico e per l'elenco di autorizzazione consigliato.

170 * `inference` registra quale upstream ha servito la richiesta e lo stato della risposta170 * `inference` registra quale upstream ha servito la richiesta e lo stato della risposta

171 * `desktop_bootstrap.denied` registra un fetch di bootstrap di Claude Desktop rifiutato con il motivo (`not_configured`, `policy_not_opted_in`, o `no_policy_matched`) e l'identità dell'utente171 * `desktop_bootstrap.denied` registra un fetch di bootstrap di Claude Desktop rifiutato con il motivo (`not_configured`, `policy_not_opted_in`, o `no_policy_matched`) e l'identità dell'utente

172 * `admin.denied` registra un tentativo di autenticazione dell'API admin rifiutato con l'IP client, il metodo, il percorso e un motivo, senza il materiale della chiave presentato: `invalid_key` quando è stato presentato un `x-api-key` ma non ha corrisposto a nessuna chiave configurata, `bearer_rejected` quando è stato presentato solo un header `Authorization` e non si è verificato come una sessione gateway in `admin.admin_groups`, o `no_credentials` quando nessun header è stato presentato172 * `guardrail.trace` registra [quale filtro è scattato](https://code.claude.com/docs/it/claude-apps-gateway-config.md#log-which-guardrail-filter-fired), senza il testo corrispondente

173 * `admin.denied` registra un tentativo di autenticazione dell'API di amministrazione rifiutato con l'IP client, il metodo, il percorso e un motivo, senza il materiale della chiave presentato: `invalid_key` quando è stato presentato un `x-api-key` ma non ha corrisposto a nessuna chiave configurata, `bearer_rejected` quando è stato presentato solo un header `Authorization` e non si è verificato come una sessione gateway in `admin.admin_groups`, o `no_credentials` quando nessun header è stato presentato

173* **Log operazionali**: righe leggibili con prefisso `[gateway]` per avvio, avvertimenti e errori upstream. La variabile di ambiente `CLAUDE_GATEWAY_LOG_LEVEL` controlla la verbosità e accetta `debug`, `info`, `warn`, o `error`, con `info` come predefinito. A `debug`, ogni accesso e aggiornamento registra anche i nomi, non i valori, dei claim nell'id\_token, più i nomi dei claim userinfo quando `userinfo_fallback` ha fornito qualcosa, così puoi diagnosticare le impostazioni `email_claim` e `groups_claim` senza registrare PII. Non influisce sugli eventi di audit, che sono sempre emessi.174* **Log operazionali**: righe leggibili con prefisso `[gateway]` per avvio, avvertimenti e errori upstream. La variabile di ambiente `CLAUDE_GATEWAY_LOG_LEVEL` controlla la verbosità e accetta `debug`, `info`, `warn`, o `error`, con `info` come predefinito. A `debug`, ogni accesso e aggiornamento registra anche i nomi, non i valori, dei claim nell'id\_token, più i nomi dei claim userinfo quando `userinfo_fallback` ha fornito qualcosa, così puoi diagnosticare le impostazioni `email_claim` e `groups_claim` senza registrare PII. Non influisce sugli eventi di audit, che sono sempre emessi.

174 175 

175### Salute176### Salute


311 312 

312Le migrazioni sono append-only, quindi il rollback a un binario precedente che conosce meno migrazioni è sicuro; ignora le righe extra. Il rollback ri-convalida anche il YAML rispetto allo schema del binario più vecchio, quindi una configurazione che ha adottato una chiave introdotta dalla versione più recente fallisce l'avvio su quella più vecchia. Rimuovi la nuova chiave prima di eseguire il rollback.313Le migrazioni sono append-only, quindi il rollback a un binario precedente che conosce meno migrazioni è sicuro; ignora le righe extra. Il rollback ri-convalida anche il YAML rispetto allo schema del binario più vecchio, quindi una configurazione che ha adottato una chiave introdotta dalla versione più recente fallisce l'avvio su quella più vecchia. Rimuovi la nuova chiave prima di eseguire il rollback.

313 314 

315> [!WARNING]

316>

317> Rimuovere solo la chiave `groups` da un upstream lo lascia aperto a ogni sviluppatore. Consulta [cosa rimuovere prima di eseguire il rollback](https://code.claude.com/docs/it/claude-apps-gateway-config.md#roll-back-a-gateway-that-uses-groups).

318 

314Poiché fissi la versione del gateway nella tua immagine, le correzioni nelle nuove versioni di Claude Code, incluse le correzioni di sicurezza, raggiungono la tua distribuzione solo quando aggiorni il pin e ridistribuisci. Includi il gateway nello stesso ciclo di patching che usi per altri servizi che contengono credenziali di produzione.319Poiché fissi la versione del gateway nella tua immagine, le correzioni nelle nuove versioni di Claude Code, incluse le correzioni di sicurezza, raggiungono la tua distribuzione solo quando aggiorni il pin e ridistribuisci. Includi il gateway nello stesso ciclo di patching che usi per altri servizi che contengono credenziali di produzione.

315 320 

316## Sicurezza321## Sicurezza


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

423| Su un upstream diverso da `provider: anthropic`, un turno con una lunga pausa di ragionamento fallisce. Il proxy davanti al gateway registra una richiesta che rimane aperta per circa 12,5 minuti, poi una serie di errori `504` | Claude Code ha terminato uno stream che aveva consegnato il suo primo evento di risposta e poi trasportava solo ping keepalive. Ha inviato di nuovo la richiesta senza streaming, e ogni risposta richiede più tempo del timeout del proxy. | Aumenta `CLAUDE_STREAM_IDLE_TIMEOUT_MS` per i tuoi sviluppatori. Vedi [Il ragionamento lungo termina con timeout del proxy](#long-thinking-ends-in-proxy-timeouts). |428| Su un upstream diverso da `provider: anthropic`, un turno con una lunga pausa di ragionamento fallisce. Il proxy davanti al gateway registra una richiesta che rimane aperta per circa 12,5 minuti, poi una serie di errori `504` | Claude Code ha terminato uno stream che aveva consegnato il suo primo evento di risposta e poi trasportava solo ping keepalive. Ha inviato di nuovo la richiesta senza streaming, e ogni risposta richiede più tempo del timeout del proxy. | Aumenta `CLAUDE_STREAM_IDLE_TIMEOUT_MS` per i tuoi sviluppatori. Vedi [Il ragionamento lungo termina con timeout del proxy](#long-thinking-ends-in-proxy-timeouts). |

424| Su `provider: anthropic`, un turno con una lunga pausa di ragionamento fallisce. Il proxy registra una richiesta aperta per circa 20 minuti, poi errori `502` o `504` | Claude Code ha terminato uno stream che aveva consegnato il suo primo evento di risposta e poi trasportava solo ping keepalive. Ha inviato di nuovo la richiesta senza streaming, e ogni risposta richiede più tempo dell'attesa del gateway sull'upstream, `timeouts.upstream_ttfb_ms`, o del timeout del proxy. | Aumenta `CLAUDE_STREAM_IDLE_TIMEOUT_MS` per i tuoi sviluppatori. Vedi [Ragionamento lungo su un upstream Anthropic API](#long-thinking-on-an-anthropic-api-upstream). |429| Su `provider: anthropic`, un turno con una lunga pausa di ragionamento fallisce. Il proxy registra una richiesta aperta per circa 20 minuti, poi errori `502` o `504` | Claude Code ha terminato uno stream che aveva consegnato il suo primo evento di risposta e poi trasportava solo ping keepalive. Ha inviato di nuovo la richiesta senza streaming, e ogni risposta richiede più tempo dell'attesa del gateway sull'upstream, `timeouts.upstream_ttfb_ms`, o del timeout del proxy. | Aumenta `CLAUDE_STREAM_IDLE_TIMEOUT_MS` per i tuoi sviluppatori. Vedi [Ragionamento lungo su un upstream Anthropic API](#long-thinking-on-an-anthropic-api-upstream). |

430| Le richieste di uno sviluppatore falliscono con `API Error: 400 you aren't in a group that can use this gateway. Ask your administrator to add you to one` | Ogni upstream ha un [elenco `groups`](https://code.claude.com/docs/it/claude-apps-gateway-config#what-happens-when-a-developer-is-in-no-listed-group), e la sessione dello sviluppatore non contiene nessuno dei gruppi elencati. | Aggiungi lo sviluppatore a un gruppo elencato nel tuo IdP, oppure elenca per ultimo un upstream senza `groups` per servire tutti gli altri. Il gateway rilegge i gruppi al successivo aggiornamento del token dello sviluppatore. Se l'IdP ha omesso i gruppi e il suo endpoint userinfo li restituisce, imposta [`oidc.userinfo_fallback: true`](https://code.claude.com/docs/it/claude-apps-gateway-config#oidc). |

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

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

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


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

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

451 457 

452Quando riduci l'attestazione dei gruppi, mantieni i gruppi che hai indicato in queste impostazioni, che determinano l'accesso, il criterio e i limiti di spesa di uno sviluppatore:458Quando riduci l'attestazione dei gruppi, mantieni i gruppi che hai indicato in queste impostazioni, che determinano l'accesso, il criterio, gli upstream e i limiti di spesa di uno sviluppatore:

453 459 

454* **[`oidc.allowed_groups`](https://code.claude.com/docs/it/claude-apps-gateway-config#oidc)**: determina chi può accedere460* **[`oidc.allowed_groups`](https://code.claude.com/docs/it/claude-apps-gateway-config#oidc)**: determina chi può accedere

455* **[`admin.admin_groups`](https://code.claude.com/docs/it/claude-apps-gateway-config#admin)**: determina chi può chiamare l'API di amministrazione con la propria sessione del gateway461* **[`admin.admin_groups`](https://code.claude.com/docs/it/claude-apps-gateway-config#admin)**: determina chi può chiamare l'API di amministrazione con la propria sessione del gateway

456* **`match.groups` in [`managed.policies`](https://code.claude.com/docs/it/claude-apps-gateway-config#managed)**: determina quale criterio si applica a uno sviluppatore462* **`match.groups` in [`managed.policies`](https://code.claude.com/docs/it/claude-apps-gateway-config#managed)**: determina quale criterio si applica a uno sviluppatore

463* **`groups` su un [upstream](https://code.claude.com/docs/it/claude-apps-gateway-config.md#send-each-team-to-its-own-upstream)**: determina quali upstream servono uno sviluppatore

457* **`rbac_group` [limiti di spesa](https://code.claude.com/docs/it/claude-apps-gateway-spend-limits.md)**: determinano quali limiti di spesa di gruppo si applicano a uno sviluppatore464* **`rbac_group` [limiti di spesa](https://code.claude.com/docs/it/claude-apps-gateway-spend-limits.md)**: determinano quali limiti di spesa di gruppo si applicano a uno sviluppatore

458 465 

459### Il ragionamento lungo termina con timeout del proxy466### Il ragionamento lungo termina con timeout del proxy

Details

620 620 

621Chiedi allo sviluppatore di passare l'id del team per cui è svolto il lavoro, come `claude --model data-claude-opus-4-8`.621Chiedi allo sviluppatore di passare l'id del team per cui è svolto il lavoro, come `claude --model data-claude-opus-4-8`.

622 622 

623Il gateway applica la [prima politica che corrisponde](https://code.claude.com/docs/it/claude-apps-gateway-config.md#managed), quindi uno sviluppatore presente solo nei due gruppi dei team ottiene la politica `team-platform`. Le sue sessioni con l'id del team data falliscono con `is not in your role's availableModels allowlist`, che indica il modello predefinito di Claude Code e non l'id digitato. Se invece elenchi entrambi i gruppi dei team nei `groups` di un'unica politica, chiunque appartenga a uno dei due team può fatturare il profilo di entrambi i team.623Per impostazione predefinita, il gateway applica la [prima politica che corrisponde](https://code.claude.com/docs/it/claude-apps-gateway-config.md#managed), quindi uno sviluppatore presente solo nei due gruppi dei team ottiene la politica `team-platform`. Le sue sessioni con l'id del team data falliscono con `is not in your role's availableModels allowlist`, che indica il modello predefinito di Claude Code e non l'id digitato. Se invece elenchi entrambi i gruppi dei team nei `groups` di un'unica politica, chiunque appartenga a uno dei due team può fatturare il profilo di entrambi i team.

624 624 

625Nei [limiti di spesa](https://code.claude.com/docs/it/claude-apps-gateway-spend-limits.md#set-a-cap) propri del gateway, lo sviluppatore ha un unico totale e un unico limite per periodo, per impostazione predefinita il più basso tra i limiti dei suoi gruppi, qualunque sia l'id usato da una sessione. Per evitare che il limite più basso di un team blocchi il lavoro per l'altro, imposta un limite per utente per lo sviluppatore.625Nei [limiti di spesa](https://code.claude.com/docs/it/claude-apps-gateway-spend-limits.md#set-a-cap) propri del gateway, lo sviluppatore ha un unico totale e un unico limite per periodo, per impostazione predefinita il più basso tra i limiti dei suoi gruppi, qualunque sia l'id usato da una sessione. Per evitare che il limite più basso di un team blocchi il lavoro per l'altro, imposta un limite per utente per lo sviluppatore.

626 626 

Details

99| `--init-only` | Esegui gli hook [Setup](https://code.claude.com/docs/it/hooks.md#setup) e `SessionStart`, quindi esci senza avviare una conversazione | `claude --init-only` |99| `--init-only` | Esegui gli hook [Setup](https://code.claude.com/docs/it/hooks.md#setup) e `SessionStart`, quindi esci senza avviare una conversazione | `claude --init-only` |

100| `--include-hook-events` | Includi gli eventi del ciclo di vita degli hook nel flusso di output. Gli eventi degli hook `SessionStart` e `Setup` sono sempre inclusi e non hanno bisogno di questo flag. Alcuni eventi degli hook, come `Notification`, `SessionEnd`, `PreCompact`, e `PostCompact`, non producono mai un evento `hook_started`, anche con questo flag. Per quelli, Claude Code emette comunque `hook_progress` mentre un hook di comando che viene eseguito per più di un secondo produce output, ed emette `hook_response` solo quando un [hook che viene eseguito in background](https://code.claude.com/docs/it/hooks.md#run-hooks-in-the-background) finisce. Richiede `--output-format stream-json` | `claude -p --output-format stream-json --verbose --include-hook-events "query"` |100| `--include-hook-events` | Includi gli eventi del ciclo di vita degli hook nel flusso di output. Gli eventi degli hook `SessionStart` e `Setup` sono sempre inclusi e non hanno bisogno di questo flag. Alcuni eventi degli hook, come `Notification`, `SessionEnd`, `PreCompact`, e `PostCompact`, non producono mai un evento `hook_started`, anche con questo flag. Per quelli, Claude Code emette comunque `hook_progress` mentre un hook di comando che viene eseguito per più di un secondo produce output, ed emette `hook_response` solo quando un [hook che viene eseguito in background](https://code.claude.com/docs/it/hooks.md#run-hooks-in-the-background) finisce. Richiede `--output-format stream-json` | `claude -p --output-format stream-json --verbose --include-hook-events "query"` |

101| `--include-partial-messages` | Includi gli eventi di streaming parziale nell'output. Richiede `--print` e `--output-format stream-json` | `claude -p --output-format stream-json --verbose --include-partial-messages "query"` |101| `--include-partial-messages` | Includi gli eventi di streaming parziale nell'output. Richiede `--print` e `--output-format stream-json` | `claude -p --output-format stream-json --verbose --include-partial-messages "query"` |

102| `--input-format` | Specifica il formato di input per la modalità print (opzioni: `text`, `stream-json`) | `claude -p --output-format json --input-format stream-json` |102| `--input-format` | Specifica il formato di input per la modalità print (opzioni: `text`, `stream-json`) | `claude -p --input-format stream-json --output-format stream-json --verbose` |

103| `--json-schema` | Ottieni output JSON convalidato corrispondente a uno JSON Schema dopo che l'agente completa il suo flusso di lavoro (solo modalità print). Vedi [output strutturati](https://code.claude.com/docs/it/agent-sdk/structured-outputs.md). Claude Code esce con un errore su uno schema non valido e accetta la parola chiave `format` come annotazione senza convalida lato client | `claude -p --json-schema '{"type":"object","properties":{...}}' "query"` |103| `--json-schema` | Ottieni output JSON convalidato corrispondente a uno JSON Schema dopo che l'agente completa il suo flusso di lavoro (solo modalità print). Vedi [output strutturati](https://code.claude.com/docs/it/agent-sdk/structured-outputs.md). Claude Code esce con un errore su uno schema non valido e accetta la parola chiave `format` come annotazione senza convalida lato client | `claude -p --json-schema '{"type":"object","properties":{...}}' "query"` |

104| `--maintenance` | Esegui gli [hook di Setup](https://code.claude.com/docs/it/hooks.md#setup) con il matcher `maintenance` prima della sessione (solo modalità print) | `claude -p --maintenance "query"` |104| `--maintenance` | Esegui gli [hook di Setup](https://code.claude.com/docs/it/hooks.md#setup) con il matcher `maintenance` prima della sessione (solo modalità print) | `claude -p --maintenance "query"` |

105| `--max-budget-usd` | Ferma l'esecuzione quando la spesa stimata per le chiamate API raggiunge questo importo (solo modalità print). Claude Code confronta il limite con la sua [stima dei costi lato client](https://code.claude.com/docs/it/agent-sdk/cost-tracking.md#estimates-not-billing), che può differire dalla tua fattura. La spesa dei [subagent](https://code.claude.com/docs/it/sub-agents.md) conta verso il limite. La spesa può superare il limite, quindi [lascia un margine](https://code.claude.com/docs/it/agent-sdk/agent-loop.md#budget-headroom). Quando torni a una conversazione con `--continue` o `--resume`, i totali [ripristinati da esecuzioni precedenti](https://code.claude.com/docs/it/agent-sdk/cost-tracking.md#accumulate-costs-across-multiple-calls) non contano verso di esso. Una volta che la spesa raggiunge il limite, l'avvio di un altro subagent fallisce con `Budget limit reached`, e Claude Code ferma i subagent in background ancora in esecuzione; i comportamenti di applicazione del limite richiedono Claude Code v2.1.217 o successivo | `claude -p --max-budget-usd 5.00 "query"` |105| `--max-budget-usd` | Ferma l'esecuzione quando la spesa stimata per le chiamate API raggiunge questo importo (solo modalità print). Claude Code confronta il limite con la sua [stima dei costi lato client](https://code.claude.com/docs/it/agent-sdk/cost-tracking.md#estimates-not-billing), che può differire dalla tua fattura. La spesa dei [subagent](https://code.claude.com/docs/it/sub-agents.md) conta verso il limite. La spesa può superare il limite, quindi [lascia un margine](https://code.claude.com/docs/it/agent-sdk/agent-loop.md#budget-headroom). Quando torni a una conversazione con `--continue` o `--resume`, i totali [ripristinati da esecuzioni precedenti](https://code.claude.com/docs/it/agent-sdk/cost-tracking.md#accumulate-costs-across-multiple-calls) non contano verso di esso. Una volta che la spesa raggiunge il limite, l'avvio di un altro subagent fallisce con `Budget limit reached`, e Claude Code ferma i subagent in background ancora in esecuzione; i comportamenti di applicazione del limite richiedono Claude Code v2.1.217 o successivo | `claude -p --max-budget-usd 5.00 "query"` |

106| `--max-turns` | Limita il numero di turni agentici (solo modalità print). Esce con un errore quando il limite viene raggiunto. Nessun limite per impostazione predefinita. Con `--input-format stream-json`, un messaggio ancora in coda quando il limite termina un turno rimane in coda e inizia un nuovo turno con il suo proprio limite | `claude -p --max-turns 3 "query"` |106| `--max-turns` | Limita il numero di turni agentici (solo modalità print). Nessun limite per impostazione predefinita. Con `--input-format stream-json`, un messaggio ancora in coda quando il limite termina un turno rimane in coda e inizia un nuovo turno con il suo proprio limite | `claude -p --max-turns 3 "query"` |

107| `--mcp-config` | Carica i server MCP da file JSON o stringhe (separati da spazi). Quando passi questo flag con `-p`, Claude Code attende che i server ancora in sospeso si connettano prima di eseguire il primo turno, fino al timeout di avvio [`MCP_TIMEOUT`](https://code.claude.com/docs/it/env-vars), 30 secondi per impostazione predefinita; un server con un [elenco di strumenti memorizzato nella cache](https://code.claude.com/docs/it/mcp.md#managing-your-servers) salta l'attesa e si connette al primo utilizzo. In un [ambiente auto-ospitato](https://code.claude.com/docs/it/self-hosted-environments-configuration.md#connection-timing), si applica invece un'attesa più breve. L'attesa richiede Claude Code v2.1.221 o successivo | `claude --mcp-config ./mcp.json` |107| `--mcp-config` | Carica i server MCP da file JSON o stringhe (separati da spazi). Quando passi questo flag con `-p`, Claude Code attende che i server ancora in sospeso si connettano prima di eseguire il primo turno, fino al timeout di avvio [`MCP_TIMEOUT`](https://code.claude.com/docs/it/env-vars), 30 secondi per impostazione predefinita; un server con un [elenco di strumenti memorizzato nella cache](https://code.claude.com/docs/it/mcp.md#managing-your-servers) salta l'attesa e si connette al primo utilizzo. In un [ambiente auto-ospitato](https://code.claude.com/docs/it/self-hosted-environments-configuration.md#connection-timing), si applica invece un'attesa più breve. L'attesa richiede Claude Code v2.1.221 o successivo | `claude --mcp-config ./mcp.json` |

108| `--model` | Imposta il modello per la sessione corrente con un [alias di modello](https://code.claude.com/docs/it/model-config.md#model-aliases) come `sonnet`, `opus`, `haiku`, o `fable`, o il nome completo di un modello. Sostituisce l'impostazione [`model`](https://code.claude.com/docs/it/settings-reference#model) e [`ANTHROPIC_MODEL`](https://code.claude.com/docs/it/model-config#environment-variables) | `claude --model claude-sonnet-5` |108| `--model` | Imposta il modello per la sessione corrente con un [alias di modello](https://code.claude.com/docs/it/model-config.md#model-aliases) come `sonnet`, `opus`, `haiku`, o `fable`, o il nome completo di un modello. Sostituisce l'impostazione [`model`](https://code.claude.com/docs/it/settings-reference#model) e [`ANTHROPIC_MODEL`](https://code.claude.com/docs/it/model-config#environment-variables) | `claude --model claude-sonnet-5` |

109| `--name`, `-n` | Imposta un nome visualizzato per la sessione, mostrato in `/resume` e nel titolo del terminale. Puoi riprendere una sessione denominata con `claude --resume <name>`. [`/rename`](https://code.claude.com/docs/it/commands) cambia il nome a metà sessione e lo mostra anche sulla barra del prompt | `claude -n "my-feature-work"` |109| `--name`, `-n` | Imposta un nome visualizzato per la sessione, mostrato in `/resume` e nel titolo del terminale. Puoi riprendere una sessione denominata con `claude --resume <name>`. [`/rename`](https://code.claude.com/docs/it/commands) cambia il nome a metà sessione e lo mostra anche sulla barra del prompt | `claude -n "my-feature-work"` |

Details

335| **C/C++** | GCC, Clang, cmake, ninja, conan |335| **C/C++** | GCC, Clang, cmake, ninja, conan |

336| **Docker** | docker, dockerd, docker compose |336| **Docker** | docker, dockerd, docker compose |

337| **Database** | PostgreSQL 16, Redis 7.0 |337| **Database** | PostgreSQL 16, Redis 7.0 |

338| **Browser** | Chrome for Testing in `/usr/bin/google-chrome`, con la variabile d'ambiente `CHROME_PATH` impostata su quel percorso |

338| **Utilità** | git, gh, jq, yq, ripgrep, tmux, vim, nano |339| **Utilità** | git, gh, jq, yq, ripgrep, tmux, vim, nano |

339 340 

340¹ Bun è installato ma ha [problemi di compatibilità](#install-dependencies-with-a-sessionstart-hook) noti con il proxy per il recupero dei pacchetti.341¹ Bun è installato ma ha [problemi di compatibilità](#install-dependencies-with-a-sessionstart-hook) noti con il proxy per il recupero dei pacchetti.

commands.md +2 −2

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. Prima della v2.1.215, Claude poteva anche eseguire `/verify` di propria iniziativa.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.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.

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

41 41 


114| `/model [model]` | Cambia il modello di AI e lo salva come predefinito per le nuove sessioni. Per i modelli che lo supportano, usa le frecce sinistra/destra per [regolare il livello di sforzo](https://code.claude.com/docs/it/model-config.md#adjust-effort-level). Senza argomento, apre un selettore; premi `s` su una riga per cambiare solo per la sessione corrente. Consulta [quando entra in uso il nuovo modello](https://code.claude.com/docs/it/interactive-mode.md#when-claude-code-sends-what-you-queued). Prima della v2.1.242, poteva restare in attesa. Con `-p`, passa un argomento modello, che non viene salvato come predefinito; richiede la v2.1.205 o successiva |114| `/model [model]` | Cambia il modello di AI e lo salva come predefinito per le nuove sessioni. Per i modelli che lo supportano, usa le frecce sinistra/destra per [regolare il livello di sforzo](https://code.claude.com/docs/it/model-config.md#adjust-effort-level). Senza argomento, apre un selettore; premi `s` su una riga per cambiare solo per la sessione corrente. Consulta [quando entra in uso il nuovo modello](https://code.claude.com/docs/it/interactive-mode.md#when-claude-code-sends-what-you-queued). Prima della v2.1.242, poteva restare in attesa. Con `-p`, passa un argomento modello, che non viene salvato come predefinito; richiede la v2.1.205 o successiva |

115| `/output-style [style]` | Elenca gli [stili di output](https://code.claude.com/docs/it/output-styles.md) o passa a uno di essi, ad esempio `/output-style concise`. Consulta [Cambiare lo stile di output](https://code.claude.com/docs/it/output-styles.md#change-your-output-style). Richiede Claude Code v2.1.269 o successiva |115| `/output-style [style]` | Elenca gli [stili di output](https://code.claude.com/docs/it/output-styles.md) o passa a uno di essi, ad esempio `/output-style concise`. Consulta [Cambiare lo stile di output](https://code.claude.com/docs/it/output-styles.md#change-your-output-style). Richiede Claude Code v2.1.269 o successiva |

116| `/passes` | Condivide una settimana gratuita di Claude Code con gli amici. Visibile solo se il tuo account è idoneo |116| `/passes` | Condivide una settimana gratuita di Claude Code con gli amici. Visibile solo se il tuo account è idoneo |

117| `/permissions` | Gestisce le regole allow, ask e deny per i permessi degli strumenti. Apre una finestra di dialogo interattiva in cui puoi visualizzare le regole per ambito, aggiungere o rimuovere regole, gestire le directory di lavoro e rivedere i [rifiuti recenti della modalità auto](https://code.claude.com/docs/it/auto-mode-config.md#review-denials). Puoi anche visualizzare e modificare le [regole del classificatore della modalità auto](https://code.claude.com/docs/it/auto-mode-config.md#edit-rules-from-permissions) dalla scheda **Auto mode** della finestra di dialogo. Quando lo esegui mentre Claude sta rispondendo, Claude Code apre immediatamente la finestra di dialogo e applica le tue modifiche a partire dalla successiva chiamata a uno strumento di Claude nello stesso turno. Prima della v2.1.234, Claude Code metteva il comando in coda fino al termine del turno. Alias: `/allowed-tools` |117| `/permissions` | Gestisce le regole allow, ask e deny per i permessi degli strumenti. Apre una finestra di dialogo interattiva in cui puoi visualizzare le regole per ambito, aggiungere o rimuovere regole, gestire le directory di lavoro e rivedere i [rifiuti recenti della modalità auto](https://code.claude.com/docs/it/auto-mode-config.md#review-denials). Puoi anche visualizzare e modificare le [regole del classificatore della modalità auto](https://code.claude.com/docs/it/auto-mode-config.md#edit-rules-from-permissions) dalla scheda **Auto mode** della finestra di dialogo. Alias: `/allowed-tools` |

118| `/plan [description]` | Entra nel plan mode direttamente dal prompt. Passa una descrizione facoltativa per entrare nel plan mode e iniziare subito con quell'attività, ad esempio `/plan fix the auth bug` |118| `/plan [description]` | Entra nel plan mode direttamente dal prompt. Passa una descrizione facoltativa per entrare nel plan mode e iniziare subito con quell'attività, ad esempio `/plan fix the auth bug` |

119| `/plugin [subcommand]` | Gestisce i [plugin](https://code.claude.com/docs/it/plugins/overview.md) di Claude Code. Eseguilo senza argomento per aprire il menu dei plugin, oppure passa un sottocomando come `list`, `install`, `enable` o `disable` per agire direttamente. Claude Code può attivare un plugin durante l'installazione; il [riepilogo dell'installazione](https://code.claude.com/docs/it/plugins/install.md#install-a-plugin) ti indica se l'ha fatto o se devi eseguire `/reload-plugins` |119| `/plugin [subcommand]` | Gestisce i [plugin](https://code.claude.com/docs/it/plugins/overview.md) di Claude Code. Eseguilo senza argomento per aprire il menu dei plugin, oppure passa un sottocomando come `list`, `install`, `enable` o `disable` per agire direttamente. Claude Code può attivare un plugin durante l'installazione; il [riepilogo dell'installazione](https://code.claude.com/docs/it/plugins/install.md#install-a-plugin) ti indica se l'ha fatto o se devi eseguire `/reload-plugins` |

120| `/plugin-authoring` | Carica il riferimento su cui Claude si basa per [scrivere un mod](https://code.claude.com/docs/it/plugins/mods/create.md#ask-claude-for-a-mod). Claude può caricarlo di propria iniziativa quando chiedi un mod. Si tratta di una skill di un [plugin integrato](https://code.claude.com/docs/it/plugins/mods/overview.md#mods-built-into-claude-code), che puoi disattivare in `/plugin`. Richiede Claude Code v2.1.287 o successiva |120| `/plugin-authoring` | Carica il riferimento su cui Claude si basa per [scrivere un mod](https://code.claude.com/docs/it/plugins/mods/create.md#ask-claude-for-a-mod). Claude può caricarlo di propria iniziativa quando chiedi un mod. Si tratta di una skill di un [plugin integrato](https://code.claude.com/docs/it/plugins/mods/overview.md#mods-built-into-claude-code), che puoi disattivare in `/plugin`. Richiede Claude Code v2.1.287 o successiva |

costs.md +6 −4

Details

20>20>

21> Il blocco Session in `/usage` mostra l'utilizzo dei token API ed è destinato agli utenti API. I sottoscrittori di Claude Pro, Max e Ultra hanno l'utilizzo incluso nel loro abbonamento, quindi la cifra del costo della sessione non è rilevante per scopi di fatturazione. I sottoscrittori vedono barre di utilizzo del piano, statistiche di attività e una suddivisione dell'utilizzo sulla stessa schermata.21> Il blocco Session in `/usage` mostra l'utilizzo dei token API ed è destinato agli utenti API. I sottoscrittori di Claude Pro, Max e Ultra hanno l'utilizzo incluso nel loro abbonamento, quindi la cifra del costo della sessione non è rilevante per scopi di fatturazione. I sottoscrittori vedono barre di utilizzo del piano, statistiche di attività e una suddivisione dell'utilizzo sulla stessa schermata.

22 22 

23Il blocco Session in cima a `/usage` mostra statistiche dettagliate sull'utilizzo dei token per la tua sessione attuale. Claude Code calcola la cifra in dollari localmente dai conteggi dei token al prezzo di listino, a meno che non sia in vigore una tabella [`modelPricing`](https://code.claude.com/docs/it/settings-reference#modelpricing). Un amministratore ne imposta una nelle impostazioni gestite della tua organizzazione in modo che la cifra utilizzi le tue tariffe contrattuali, e mentre una tabella è in vigore la riga `Total cost` riporta la nota `at your organization's configured rates`. La cifra è una stima, quindi per la fatturazione autorevole vedi la pagina Usage nella [Claude Console](https://platform.claude.com/usage).23Il blocco Session in cima a `/usage` mostra statistiche dettagliate sull'utilizzo dei token per la tua sessione attuale.

24 

25Claude Code calcola la cifra in dollari localmente dai conteggi dei token al prezzo di listino, a meno che non sia in vigore una tabella [`modelPricing`](https://code.claude.com/docs/it/settings-reference#modelpricing). Un amministratore ne imposta una nelle impostazioni gestite della tua organizzazione in modo che la cifra utilizzi le tue tariffe contrattuali, e mentre una tabella è in vigore la riga `Total cost` riporta la nota `at your organization's configured rates`. La cifra è una stima, quindi per la fatturazione autorevole vedi [Gestisci i costi per la tua organizzazione](#manage-costs-for-your-organization).

24 26 

25```text theme={null}27```text theme={null}

26Total cost: $0.5528Total cost: $0.55


138 140 

139Se esegui `/usage-credits` di nuovo mentre la tua richiesta precedente è in attesa di un amministratore, Claude Code ti dice che una richiesta è già stata inviata piuttosto che inviarne una duplicata. Dopo che un amministratore ha respinto la tua richiesta, l'esecuzione del comando di nuovo invia una nuova. Prima della v2.1.222, una richiesta respinta bloccava anche le nuove richieste.141Se esegui `/usage-credits` di nuovo mentre la tua richiesta precedente è in attesa di un amministratore, Claude Code ti dice che una richiesta è già stata inviata piuttosto che inviarne una duplicata. Dopo che un amministratore ha respinto la tua richiesta, l'esecuzione del comando di nuovo invia una nuova. Prima della v2.1.222, una richiesta respinta bloccava anche le nuove richieste.

140 142 

141Su piani Pro e Max, quando raggiungi il tuo limite di spesa con crediti di utilizzo ancora disponibili, Claude Code ti chiede di aumentare o rimuovere il limite senza lasciare la CLI. Se il server rifiuta la modifica, vedi [Could not update your spend limit](https://code.claude.com/docs/it/errors.md#could-not-update-your-spend-limit).143Sui piani Pro, Max e Ultra, quando raggiungi il tuo limite di spesa con crediti di utilizzo ancora disponibili, Claude Code ti chiede di aumentare o rimuovere il limite senza lasciare la CLI. Se il server rifiuta la modifica, vedi [Could not update your spend limit](https://code.claude.com/docs/it/errors.md#could-not-update-your-spend-limit).

142 144 

143## Gestione dei costi per la tua organizzazione145## Gestione dei costi per la tua organizzazione

144 146 


149| La tua configurazione | Visualizza spesa | Limita spesa | Rapporto per utente |151| La tua configurazione | Visualizza spesa | Limita spesa | Rapporto per utente |

150| :- | :- | :- | :- |152| :- | :- | :- | :- |

151| [Claude for Teams o Enterprise](#claude-for-teams-and-enterprise) | [Rapporto spesa in analitiche org](https://support.claude.com/en/articles/12883420-view-usage-analytics-for-team-and-enterprise-plans) | Limiti di spesa nelle impostazioni admin | [CSV rapporto spesa](https://support.claude.com/en/articles/12883420-view-usage-analytics-for-team-and-enterprise-plans); [Enterprise Analytics API](https://platform.claude.com/docs/en/api/admin/analytics) su Enterprise |153| [Claude for Teams o Enterprise](#claude-for-teams-and-enterprise) | [Rapporto spesa in analitiche org](https://support.claude.com/en/articles/12883420-view-usage-analytics-for-team-and-enterprise-plans) | Limiti di spesa nelle impostazioni admin | [CSV rapporto spesa](https://support.claude.com/en/articles/12883420-view-usage-analytics-for-team-and-enterprise-plans); [Enterprise Analytics API](https://platform.claude.com/docs/en/api/admin/analytics) su Enterprise |

152| [Claude Console (API)](#claude-console) | [Pagina utilizzo Console](https://platform.claude.com/usage) | Limiti di spesa dell'area di lavoro | [Dashboard Console](https://platform.claude.com/claude-code), [Claude Code Analytics API](https://platform.claude.com/docs/en/build-with-claude/claude-code-analytics-api) |154| [Claude Console (API)](#claude-console) | [Pagina Cost della Console](https://platform.claude.com/cost) | Limiti di spesa del workspace | [Dashboard Console](https://platform.claude.com/claude-code), [Claude Code Analytics API](https://platform.claude.com/docs/en/build-with-claude/claude-code-analytics-api) |

153| [Amazon Bedrock, Google Cloud's Agent Platform, o Microsoft Foundry](#cloud-providers) | La tua console di fatturazione cloud | I controlli di budget del tuo cloud | [OpenTelemetry](https://code.claude.com/docs/it/monitoring-usage.md) o un [gateway LLM](https://code.claude.com/docs/it/llm-gateway) |155| [Amazon Bedrock, Google Cloud's Agent Platform, o Microsoft Foundry](#cloud-providers) | La tua console di fatturazione cloud | I controlli di budget del tuo cloud | [OpenTelemetry](https://code.claude.com/docs/it/monitoring-usage.md) o un [gateway LLM](https://code.claude.com/docs/it/llm-gateway) |

154 156 

155[L'esportazione OpenTelemetry](https://code.claude.com/docs/it/monitoring-usage.md) funziona su ogni configurazione ed è l'unica opzione che trasmette metriche di token e costo per utente nel tuo stack di osservabilità in tempo quasi reale.157[L'esportazione OpenTelemetry](https://code.claude.com/docs/it/monitoring-usage.md) funziona su ogni configurazione ed è l'unica opzione che trasmette metriche di token e costo per utente nel tuo stack di osservabilità in tempo quasi reale.


193>195>

194> Per le organizzazioni con limiti di velocità personalizzati, il traffico di Claude Code in questa area di lavoro conta verso i limiti di velocità API complessivi della tua organizzazione. Puoi impostare un [limite di velocità dell'area di lavoro](https://platform.claude.com/docs/en/api/rate-limits#setting-lower-limits-for-workspaces) sulla pagina Limits di questa area di lavoro nella Claude Console per limitare la quota di Claude Code e proteggere altri carichi di lavoro di produzione.196> Per le organizzazioni con limiti di velocità personalizzati, il traffico di Claude Code in questa area di lavoro conta verso i limiti di velocità API complessivi della tua organizzazione. Puoi impostare un [limite di velocità dell'area di lavoro](https://platform.claude.com/docs/en/api/rate-limits#setting-lower-limits-for-workspaces) sulla pagina Limits di questa area di lavoro nella Claude Console per limitare la quota di Claude Code e proteggere altri carichi di lavoro di produzione.

195 197 

196Per la segnalazione per utente, il [dashboard Console](https://platform.claude.com/claude-code) mostra la spesa e le righe accettate per membro, e l'[Claude Code Analytics API](https://platform.claude.com/docs/en/build-with-claude/claude-code-analytics-api) restituisce le stesse metriche giornaliere per utente a livello di programmazione con una [chiave API Admin](https://platform.claude.com/settings/admin-keys). Vedi [analitiche per clienti API](https://code.claude.com/docs/it/analytics.md#access-analytics-for-api-customers).198Per la segnalazione per utente, il [dashboard Console](https://platform.claude.com/claude-code) mostra la spesa e le righe accettate per membro, e l'[Claude Code Analytics API](https://platform.claude.com/docs/en/build-with-claude/claude-code-analytics-api) restituisce metriche giornaliere per utente a livello di programmazione con una [chiave API Admin](https://platform.claude.com/settings/admin-keys). Vedi [analitiche per clienti API](https://code.claude.com/docs/it/analytics.md#access-analytics-for-api-customers).

197 199 

198#### Raccomandazioni sui limiti di velocità200#### Raccomandazioni sui limiti di velocità

199 201 

desktop.md +298 −285

Details

131* Avviare o arrestare i server, oppure arrestarli tutti insieme, dal menu **Dev servers** nell'intestazione del riquadro Browser131* Avviare o arrestare i server, oppure arrestarli tutti insieme, dal menu **Dev servers** nell'intestazione del riquadro Browser

132* Scegliere se il Browser conserva i cookie dopo la chiusura dell'app con **Keep cookies** nel menu **⋮** del riquadro Browser, così non devi accedere di nuovo durante lo sviluppo132* Scegliere se il Browser conserva i cookie dopo la chiusura dell'app con **Keep cookies** nel menu **⋮** del riquadro Browser, così non devi accedere di nuovo durante lo sviluppo

133 133 

134In una sessione SSH, perdi i cookie del riquadro quando chiudi Desktop. Non puoi modificare questo comportamento con **Keep cookies**.

135 

134Claude crea la configurazione iniziale del server in base al tuo progetto. Se la tua app usa un comando di sviluppo personalizzato, modifica `.claude/launch.json` in base alla tua configurazione. Consulta [Configurare i server di anteprima](#configure-preview-servers) per il riferimento completo.136Claude crea la configurazione iniziale del server in base al tuo progetto. Se la tua app usa un comando di sviluppo personalizzato, modifica `.claude/launch.json` in base alla tua configurazione. Consulta [Configurare i server di anteprima](#configure-preview-servers) per il riferimento completo.

135 137 

136Per cancellare i dati salvati del Browser, seleziona **Clear browsing data** nel menu **⋮** del riquadro Browser. Per disattivare completamente il Browser, disattiva **Browser tools** in **Settings > Code** o **Settings > Claude Code**.138Per cancellare i dati salvati del Browser, seleziona **Clear browsing data** nel menu **⋮** del riquadro Browser. Per disattivare completamente il Browser, disattiva **Browser tools** in **Settings > Code** o **Settings > Claude Code**.


312 314 

313In entrambi i layout, digita `/context` nella casella del prompt per stampare nella chat una suddivisione per categoria della finestra di contesto di questa sessione.315In entrambi i layout, digita `/context` nella casella del prompt per stampare nella chat una suddivisione per categoria della finestra di contesto di questa sessione.

314 316 

315Entrambi i layout hanno l'anello di utilizzo accanto al selettore di modello. Fai clic su di esso per vedere l'utilizzo del piano, che è condiviso su tutte le tue superfici Claude Code.317In entrambi i layout, l'anello di utilizzo si trova nella riga sotto la casella del prompt. Fai clic su di esso per vedere l'utilizzo del piano, che è condiviso su tutte le tue superfici Claude Code.

316 318 

317## Lascia che Claude usi il tuo computer319## Lascia che Claude usi il tuo computer

318 320 


409 411 

410#### Esegui una sessione nel suo worktree412#### Esegui una sessione nel suo worktree

411 413 

412In un progetto che è un repository Git, attiva **Worktree** prima di avviare una sessione per eseguirla nel suo [worktree Git](https://code.claude.com/docs/it/worktrees.md), una copia isolata del progetto. Per impostazione predefinita, **Worktree** è disattivato e Claude lavora direttamente nella cartella del progetto. Con il [layout attuale](#check-which-layout-you-have), attiva il pulsante **Worktree** nella [riga sotto la casella del prompt](#start-a-session).414In un progetto che è un repository Git, attiva **Worktree** prima di avviare una sessione per eseguirla nel proprio [worktree Git](https://code.claude.com/docs/it/worktrees.md), una copia isolata del progetto. Per impostazione predefinita, **Worktree** è disattivato e Claude lavora direttamente nella cartella del progetto. Nel [layout attuale](#check-which-layout-you-have), attiva **Worktree** nella [riga sotto la casella del prompt](#start-a-session).

413 415 

414* **Con un [provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md)**: se la riga sotto la casella del prompt mostra il controllo della cartella del progetto ma nessun pulsante **Worktree**, fai clic su quel controllo e attiva **Worktree**416* **Con un [provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md)**: se la riga sotto la casella del prompt mostra il controllo della cartella del progetto ma non **Worktree**, fai clic sul controllo della cartella del progetto e attiva **Worktree**

415* **Come impostazione predefinita per un [ambiente locale o SSH salvato](#create-a-saved-environment)**: imposta **Worktree** quando crei o modifichi l'ambiente417* **Come impostazione predefinita per un [ambiente locale o SSH salvato](#create-a-saved-environment)**: imposta **Worktree** quando crei o modifichi l'ambiente

416* **[Layout precedente](#check-which-layout-you-have)**: seleziona la casella di controllo **worktree** accanto al nome del branch, sopra la casella del prompt418* **[Layout precedente](#check-which-layout-you-have)**: seleziona la casella di controllo **worktree** accanto al nome del branch, sopra la casella del prompt

417 419 


806 808 

807## Configurazione dell'ambiente809## Configurazione dell'ambiente

808 810 

809L'ambiente che scegli quando [avvii una sessione](#start-a-session) determina dove viene eseguito Claude e come ti connetti:811L'ambiente che scegli quando [avvii una sessione](#start-a-session) determina dove Claude esegue le operazioni e come ti connetti:

810 812 

811* **Local**: viene eseguito sulla tua macchina con accesso diretto ai tuoi file813* **Local**: viene eseguito sulla tua macchina con accesso diretto ai tuoi file

812* **Cloud**: viene eseguito per impostazione predefinita su un'infrastruttura gestita da Anthropic. Le sessioni continuano anche se chiudi l'app.814* **Cloud**: viene eseguito per impostazione predefinita su un'infrastruttura gestita da Anthropic. Le sessioni continuano anche se chiudi l'app.

813* **SSH**: viene eseguito su una macchina remota a cui ti connetti tramite SSH, come i tuoi server, VM cloud o dev container. Un'attività in esecuzione può [proseguire mentre Desktop è disconnesso](#keep-a-task-running-while-desktop-is-disconnected), ma con un account Claude può interrompersi quando il suo accesso scade.815* **SSH**: viene eseguito su una macchina remota a cui ti connetti tramite SSH, come i tuoi server, VM cloud o dev container. Un'attività in esecuzione può [continuare mentre Desktop è disconnesso](#keep-a-task-running-while-desktop-is-disconnected), ma con un account Claude può interrompersi quando il suo accesso scade.

814* **WSL** (Windows): viene eseguito all'interno di una [distribuzione WSL 2](https://code.claude.com/docs/it/desktop-wsl.md) sulla tua macchina, usando la sua toolchain Linux e i percorsi nativi816* **WSL** (Windows): viene eseguito all'interno di una [distribuzione WSL 2](https://code.claude.com/docs/it/desktop-wsl.md) sulla tua macchina, usando la sua toolchain Linux e i percorsi nativi

815 817 

816### Creare un ambiente salvato818### Creare un ambiente salvato

817 819 

818Un ambiente salvato è una voce nel [selettore dell'ambiente](#start-a-session) che registra dove viene eseguito Claude, così puoi avviare lì le sessioni successive. Un ambiente locale o SSH contiene anche le cartelle in cui lavora Claude. Gli ambienti locali e SSH salvati fanno parte del [layout attuale](#check-which-layout-you-have), quindi se non li vedi, verifica quale layout hai e come ottenere quello attuale.820Un ambiente salvato è una voce nel [selettore di ambiente](#start-a-session) che registra dove viene eseguito Claude, così puoi avviare lì le sessioni successive. Un ambiente locale o SSH contiene anche le cartelle in cui lavora Claude. Gli ambienti locali e SSH salvati fanno parte del [layout attuale](#check-which-layout-you-have), quindi se non li vedi, verifica quale layout hai e come ottenere quello attuale.

819 821 

820**1. Apri la finestra di dialogo New environment**822**1. Apri la finestra di dialogo New environment**

821 823 

822Apri il selettore dell'ambiente sotto la casella del prompt e seleziona **New environment** in fondo al suo menu.824Apri il selettore di ambiente sotto la casella del prompt e seleziona **New environment** in fondo al suo menu.

823 825 

824**2. Scegli dove viene eseguito Claude**826**2. Scegli dove viene eseguito Claude**

825 827 


831 833 

832#### Ambienti che Desktop crea per te834#### Ambienti che Desktop crea per te

833 835 

834Se il selettore dell'ambiente elenca ambienti locali o SSH che non hai creato, li ha creati Desktop per te. La prima volta che apri la scheda Code nel [layout attuale](#check-which-layout-you-have), Desktop crea fino a otto ambienti. Gli ambienti derivano dalle cartelle locali e SSH che hai usato di più nell'ultimo mese. Puoi [modificarli o eliminarli](#use-edit-or-remove-a-saved-environment).836Se il selettore di ambiente elenca ambienti locali o SSH che non hai creato tu, li ha creati Desktop per te. La prima volta che apri la scheda Code nel [layout attuale](#check-which-layout-you-have), Desktop crea fino a otto ambienti. Gli ambienti derivano dalle cartelle locali e SSH che hai usato di più nell'ultimo mese. Puoi [modificarli o eliminarli](#use-edit-or-remove-a-saved-environment).

835 837 

836#### Usare, modificare o rimuovere un ambiente salvato838#### Usare, modificare o rimuovere un ambiente salvato

837 839 

838Trova la voce dell'ambiente nel [selettore dell'ambiente](#start-a-session):840Trova la voce dell'ambiente nel [selettore di ambiente](#start-a-session):

839 841 

840* **Avviare una sessione**: seleziona la voce.842* **Avviare una sessione**: seleziona la voce.

841* **Modificare o eliminare**: passa il mouse sulla voce e fai clic sull'icona a forma di ingranaggio. Per eliminare un ambiente locale o SSH, fai clic su **Delete environment** in **Edit environment**.843* **Modificare o eliminare**: passa il mouse sopra la voce e fai clic sull'icona a forma di ingranaggio. Per eliminare un ambiente locale o SSH, fai clic su **Delete environment** in **Edit environment**.

842* **Archiviare ambienti cloud**: consulta [Archiviare un ambiente](https://code.claude.com/docs/it/cloud-environments.md#archive-an-environment).844* **Archiviare ambienti cloud**: consulta [Archiviare un ambiente](https://code.claude.com/docs/it/cloud-environments.md#archive-an-environment).

843 845 

844### Variabili d'ambiente nelle sessioni locali846### Variabili d'ambiente nelle sessioni locali

845 847 

846Per impostare una variabile d'ambiente per una sessione locale, [aggiungila a un ambiente locale salvato](#set-environment-variables-for-local-sessions), quindi avvia una nuova sessione da quell'ambiente.848Per impostare una variabile d'ambiente per una sessione locale, [aggiungila a un ambiente locale salvato](#set-environment-variables-for-local-sessions), poi avvia una nuova sessione da quell'ambiente.

847 849 

848Variabili come `PATH` e `CLAUDE_CONFIG_DIR` hanno istruzioni specifiche:850Variabili come `PATH` e `CLAUDE_CONFIG_DIR` hanno istruzioni proprie:

849 851 

850| Variabile | Cosa fare invece |852| Variabile | Cosa fare invece |

851| :- | :- |853| :- | :- |

852| `PATH`, le cartelle in cui il sistema cerca programmi come `npm` | Consulta [La sessione non trova gli strumenti installati](#session-not-finding-installed-tools). Su Windows, Desktop non legge i profili di PowerShell, quindi imposta `PATH` nelle variabili d'ambiente utente o di sistema, poi chiudi e riapri Desktop. |854| `PATH`, le cartelle in cui il sistema cerca programmi come `npm` | Consulta [La sessione non trova gli strumenti installati](#session-not-finding-installed-tools). Su Windows, Desktop non legge i profili di PowerShell, quindi imposta `PATH` nelle variabili d'ambiente dell'utente o di sistema, poi chiudi e riapri Desktop. |

853| Una variabile per un server MCP da [`claude_desktop_config.json`](#mcp-servers-from-the-claude-desktop-chat-app) | Chiudi Desktop, impostala nel blocco `env` di quel server, poi riapri Desktop |855| Una variabile per un server MCP da [`claude_desktop_config.json`](#mcp-servers-from-the-claude-desktop-chat-app) | Chiudi Desktop, impostala nel blocco `env` di quel server, poi riapri Desktop |

854| [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/it/env-vars#variables) o [`CLAUDE_CODE_TMPDIR`](https://code.claude.com/docs/it/env-vars#variables) | Impostala in [uno dei punti in cui imposteresti una variabile per i dev server](#set-environment-variables-for-dev-servers), poi chiudi e riapri Desktop |856| [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/it/env-vars#variables) o [`CLAUDE_CODE_TMPDIR`](https://code.claude.com/docs/it/env-vars#variables) | Impostala in [uno dei punti in cui imposteresti una variabile per i dev server](#set-environment-variables-for-dev-servers), poi chiudi e riapri Desktop |

855| `API_TIMEOUT_MS`, `ANTHROPIC_BASE_URL` o un'altra variabile che Desktop imposta da sé | Consulta [Variabili d'ambiente che Desktop imposta da sé](#environment-variables-desktop-sets-itself) |857| `API_TIMEOUT_MS`, `ANTHROPIC_BASE_URL` o un'altra variabile che Desktop imposta da sé | Consulta [Variabili d'ambiente che Desktop imposta da sé](#environment-variables-desktop-sets-itself) |

856 858 

857Su macOS o Linux, se una variabile che hai impostato con `export` manca o ha un valore errato in un comando eseguito da Claude, consulta [Variabile esportata mancante o errata nei comandi eseguiti da Claude](#exported-variable-missing-or-wrong-in-commands-claude-runs).859Su macOS o Linux, se una variabile che hai impostato con `export` manca o è errata in un comando eseguito da Claude, consulta [Variabile esportata mancante o errata nei comandi eseguiti da Claude](#exported-variable-missing-or-wrong-in-commands-claude-runs).

858 860 

859#### Impostare variabili d'ambiente per le sessioni locali861#### Impostare variabili d'ambiente per le sessioni locali

860 862 

861Aggiungi le variabili a un ambiente locale salvato e avvia le tue sessioni da lì. Desktop [imposta da sé alcune variabili](#environment-variables-desktop-sets-itself), come `API_TIMEOUT_MS`, e per queste le tue sessioni ricevono il suo valore anziché il tuo.863Aggiungi le variabili a un ambiente locale salvato e avvia le tue sessioni da lì. Desktop [imposta da sé alcune variabili](#environment-variables-desktop-sets-itself), come `API_TIMEOUT_MS`, e per quelle le tue sessioni ricevono il suo valore anziché il tuo.

862 864 

863> [!NOTE]865> [!NOTE]

864>866>

865> Se una nuova sessione non mostra alcun ambiente sotto la casella del prompt, hai il [layout precedente](#check-which-layout-you-have), che non prevede ambienti locali salvati. Usa invece l'[editor dell'ambiente locale](#use-the-local-environment-editor).867> Se una nuova sessione non mostra alcun ambiente sotto la casella del prompt, hai il [layout precedente](#check-which-layout-you-have), che non ha ambienti locali salvati. Usa invece l'[editor dell'ambiente locale](#use-the-local-environment-editor).

866 868 

867**1. Apri il modulo di un ambiente locale**869**1. Apri il modulo di un ambiente locale**

868 870 

869* **Per creare un ambiente locale salvato**: seleziona [**New environment**](#create-a-saved-environment) in fondo al menu del selettore dell'ambiente, poi la scheda **Local**871* **Per creare un ambiente locale salvato**: seleziona [**New environment**](#create-a-saved-environment) in fondo al menu del selettore di ambiente, poi la scheda **Local**

870* **Per modificarne uno esistente**: nel selettore dell'ambiente, passa il mouse su un ambiente salvato sotto **Local** e fai clic sull'icona a forma di ingranaggio per aprire [**Edit environment**](#use-edit-or-remove-a-saved-environment)872* **Per modificarne uno che hai già**: nel selettore di ambiente, passa il mouse sopra un ambiente salvato sotto **Local** e fai clic sull'icona a forma di ingranaggio per aprire [**Edit environment**](#use-edit-or-remove-a-saved-environment)

871 873 

872**2. Inserisci le variabili**874**2. Inserisci le variabili**

873 875 

874Seleziona **Environment variables**, inserisci una riga `KEY=value` per ciascuna variabile e seleziona **Done**.876Seleziona **Environment variables**, inserisci una coppia `KEY=value` per riga e seleziona **Done**.

875 877 

876**3. Salva l'ambiente**878**3. Salva l'ambiente**

877 879 


883 885 

884#### Impostare variabili d'ambiente per i dev server886#### Impostare variabili d'ambiente per i dev server

885 887 

886Per fornire un segreto a un dev server senza inserirlo in un commit in [`launch.json`](#configure-preview-servers), impostalo in uno di questi punti, poi riavvia Desktop:888Per fornire un segreto a un dev server senza salvarlo con un commit in [`launch.json`](#configure-preview-servers), impostalo in uno di questi punti, poi riavvia Desktop:

887 889 

888* **macOS e Linux**: esportalo nel profilo della tua shell890* **macOS e Linux**: esportalo nel profilo della tua shell

889* **Windows**: aggiungilo alle variabili d'ambiente utente o di sistema891* **Windows**: aggiungilo alle variabili d'ambiente dell'utente o di sistema

890* **Qualsiasi piattaforma**: salvalo nell'[editor dell'ambiente locale](#use-the-local-environment-editor), se puoi aprirlo892* **Qualsiasi piattaforma**: salvalo nell'[editor dell'ambiente locale](#use-the-local-environment-editor), se puoi aprirlo

891 893 

892I dev server non ricevono le variabili che aggiungi a un [ambiente salvato](#create-a-saved-environment) o a `~/.claude/settings.json`.894I dev server non ricevono le variabili che aggiungi a un [ambiente salvato](#create-a-saved-environment) o a `~/.claude/settings.json`.


895 897 

896Per aprire l'editor dell'ambiente locale, fai clic sull'icona a forma di ingranaggio sulla voce del tuo computer, non su quella di un ambiente salvato:898Per aprire l'editor dell'ambiente locale, fai clic sull'icona a forma di ingranaggio sulla voce del tuo computer, non su quella di un ambiente salvato:

897 899 

898* **Selettore sotto la casella del prompt**: passa il mouse sulla voce del tuo computer, la prima sotto **Local**. Se compare un'icona a forma di ingranaggio, fai clic su di essa. In caso contrario, l'editor non è disponibile, quindi imposta la variabile per le [sessioni locali](#set-environment-variables-for-local-sessions) o per i [dev server](#set-environment-variables-for-dev-servers) in un altro modo.900* **Selettore sotto la casella del prompt**: passa il mouse sopra la voce del tuo computer, la prima sotto **Local**. Se compare un'icona a forma di ingranaggio, fai clic su di essa. In caso contrario, l'editor non è disponibile, quindi imposta la variabile per le [sessioni locali](#set-environment-variables-for-local-sessions) o per i [dev server](#set-environment-variables-for-dev-servers) in un altro modo.

899* **Selettore sopra la casella del prompt**: passa il mouse su **Local** e fai clic sull'icona a forma di ingranaggio901* **Selettore sopra la casella del prompt**: passa il mouse sopra **Local** e fai clic sull'icona a forma di ingranaggio

900 902 

901Inserisci una riga `KEY=value` per ciascuna variabile e seleziona **Save changes**. Le variabili che salvi qui vengono archiviate crittografate sulla tua macchina. Le sessioni locali le ricevono, tranne qualsiasi variabile che [Desktop imposta da sé](#environment-variables-desktop-sets-itself), come `API_TIMEOUT_MS`. Riavvia Desktop per fornire le tue variabili ai dev server.903Inserisci una coppia `KEY=value` per riga e seleziona **Save changes**. Le variabili che salvi qui vengono memorizzate in forma crittografata sulla tua macchina. Le sessioni locali le ricevono, tranne le variabili che [Desktop imposta da sé](#environment-variables-desktop-sets-itself), come `API_TIMEOUT_MS`. Riavvia Desktop per fornire le tue variabili ai dev server.

902 904 

903#### Variabile esportata mancante o errata nei comandi eseguiti da Claude905#### Variabile esportata mancante o errata nei comandi eseguiti da Claude

904 906 

905Se un comando che Claude esegue su macOS o Linux non riceve una variabile che hai impostato con `export` in `~/.zshrc` o `~/.bashrc`, o ne riceve un valore errato, prova questi passaggi nell'ordine:907Se un comando eseguito da Claude su macOS o Linux non riceve una variabile che hai impostato con `export` in `~/.zshrc` o `~/.bashrc`, oppure riceve il valore sbagliato, prova queste soluzioni nell'ordine:

906 908 

907**1. Avvia una nuova sessione**909**1. Avvia una nuova sessione**

908 910 


914 916 

915**3. Controlla le variabili salvate**917**3. Controlla le variabili salvate**

916 918 

917Se un comando riceve il valore errato, verifica se hai impostato la variabile anche in un [ambiente salvato](#use-edit-or-remove-a-saved-environment) o nell'[editor dell'ambiente locale](#use-the-local-environment-editor). In tal caso, modifica lì il valore e avvia una nuova sessione.919Se un comando riceve il valore sbagliato, verifica se hai impostato la variabile anche in un [ambiente salvato](#use-edit-or-remove-a-saved-environment) o nell'[editor dell'ambiente locale](#use-the-local-environment-editor). In tal caso, modifica lì il valore e avvia una nuova sessione.

918 920 

919**4. Usa un ambiente salvato**921**4. Usa un ambiente salvato**

920 922 


924 926 

925#### Variabili d'ambiente che Desktop imposta da sé927#### Variabili d'ambiente che Desktop imposta da sé

926 928 

927Se hai impostato `API_TIMEOUT_MS` o `ANTHROPIC_BASE_URL` e nelle tue sessioni locali non è cambiato nulla, è perché Desktop imposta da sé quelle [variabili](https://code.claude.com/docs/it/env-vars.md#variables), tra le altre. Una sessione locale riceve il valore di Desktop sia che tu abbia impostato il tuo nel profilo della shell, nelle variabili utente o di sistema di Windows, nell'editor dell'ambiente locale o in un ambiente salvato. Spostare il tuo valore in un file di impostazioni non serve, perché Claude Code [ignora quel valore](https://code.claude.com/docs/it/settings-reference.md#how-env-values-interact-with-your-shell) in una sessione locale.929Se hai impostato `API_TIMEOUT_MS` o `ANTHROPIC_BASE_URL` e nelle tue sessioni locali non è cambiato nulla, è perché Desktop imposta da sé quelle [variabili](https://code.claude.com/docs/it/env-vars.md#variables), tra le altre. Una sessione locale riceve il valore di Desktop sia che tu abbia impostato il tuo nel profilo della shell, nelle variabili utente o di sistema di Windows, nell'editor dell'ambiente locale o in un ambiente salvato. Spostare il tuo valore in un file di impostazioni non aiuta, perché Claude Code [ignora quel valore](https://code.claude.com/docs/it/settings-reference.md#how-env-values-interact-with-your-shell) in una sessione locale.

928 930 

929* `API_TIMEOUT_MS`: una sessione locale riceve `900000`, cioè 15 minuti. Per un timeout più lungo, [installa la CLI di Claude Code](https://code.claude.com/docs/it/quickstart.md) e usala al posto di Desktop. [Imposta la variabile nella tua shell](https://code.claude.com/docs/it/env-vars.md#set-variables-in-your-shell) ed esegui `claude` nel terminale.931* `API_TIMEOUT_MS`: una sessione locale riceve `900000`, ovvero 15 minuti. Per un timeout più lungo, [installa la CLI di Claude Code](https://code.claude.com/docs/it/quickstart.md) e usala al posto di Desktop. [Imposta la variabile nella tua shell](https://code.claude.com/docs/it/env-vars.md#set-variables-in-your-shell) ed esegui `claude` nel terminale.

930* `ANTHROPIC_BASE_URL`: una sessione locale riceve l'host API di Anthropic quando hai effettuato l'accesso con un account Claude. Per usare un gateway, configura invece la [configurazione di inferenza di terze parti](https://code.claude.com/docs/it/llm-gateway-connect.md#desktop-app) di Desktop.932* `ANTHROPIC_BASE_URL`: una sessione locale riceve l'host dell'API di Anthropic quando hai effettuato l'accesso con un account Claude. Per usare un gateway, configura invece la [configurazione di inferenza di terze parti](https://code.claude.com/docs/it/llm-gateway-connect.md#desktop-app) di Desktop.

931 933 

932#### Disattivare il ragionamento esteso934#### Disattivare il ragionamento esteso

933 935 

934Il [ragionamento esteso](https://code.claude.com/docs/it/model-config.md#extended-thinking) è abilitato per impostazione predefinita, il che migliora le prestazioni nelle attività di ragionamento complesse ma usa token aggiuntivi. Per disattivarlo, imposta `MAX_THINKING_TOKENS` su `0` in un [ambiente locale salvato](#set-environment-variables-for-local-sessions) o nell'[editor dell'ambiente locale](#use-the-local-environment-editor). Il ragionamento si disattiva così sull'API di Anthropic, tranne che su Opus 5.5, Sonnet 5.5, Haiku 5.5 e sui modelli Fable, che usano sempre il ragionamento esteso.936Il [ragionamento esteso](https://code.claude.com/docs/it/model-config.md#extended-thinking) è attivo per impostazione predefinita, il che migliora le prestazioni nelle attività di ragionamento complesse ma usa token aggiuntivi. Per disattivarlo, imposta `MAX_THINKING_TOKENS` su `0` in un [ambiente locale salvato](#set-environment-variables-for-local-sessions) o nell'[editor dell'ambiente locale](#use-the-local-environment-editor). Il ragionamento si disattiva quindi sull'API di Anthropic, tranne che su Opus 5.5, Sonnet 5.5, Haiku 5.5 e i modelli Fable, che usano sempre il ragionamento esteso.

935 937 

936Su Opus 5, seleziona anche un livello di effort `high` o inferiore prima di avviare la sessione. Nel [layout attuale](#check-which-layout-you-have), apri il selettore del modello e seleziona un livello sotto **Effort**. Se hai avviato la sessione con un livello più alto, avviane una nuova con `high` o inferiore.938Su Opus 5, seleziona anche un livello di effort `high` o inferiore prima di avviare la sessione. Nel [layout attuale](#check-which-layout-you-have), apri il selettore del modello e seleziona un livello sotto **Effort**. Se hai avviato la sessione con un livello più alto, avviane una nuova con `high` o inferiore.

937 939 

938#### Budget di ragionamento fissi940#### Budget di ragionamento fissi

939 941 

940Sui modelli con [ragionamento adattivo](https://code.claude.com/docs/it/model-config.md#adjust-effort-level), Claude Code ignora il numero in sé in un valore positivo di `MAX_THINKING_TOKENS`, perché è il ragionamento adattivo a controllare la profondità del ragionamento. Su Opus 4.6 e Sonnet 4.6, imposta `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` su `1` per usare un budget di ragionamento fisso; i modelli Fable, Sonnet 5 e successivi, Haiku 5.5 e Opus 4.7 e successivi usano sempre il ragionamento adattivo e non hanno una modalità a budget fisso.942Sui modelli con [ragionamento adattivo](https://code.claude.com/docs/it/model-config.md#adjust-effort-level), Claude Code ignora il numero stesso in un valore positivo di `MAX_THINKING_TOKENS`, perché è il ragionamento adattivo a controllare la profondità del ragionamento. Su Opus 4.6 e Sonnet 4.6, imposta `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` su `1` per usare un budget di ragionamento fisso; i modelli Fable, Sonnet 5 e successivi, Haiku 5.5 e Opus 4.7 e successivi usano sempre il ragionamento adattivo e non hanno una modalità a budget fisso.

941 943 

942### Sessioni locali su dispositivi gestiti944### Sessioni locali su dispositivi gestiti

943 945 

944Se la voce del tuo computer è disattivata in grigio nel selettore dell'ambiente, con il tooltip **Disabled by your organization**, il tuo amministratore ha [disattivato le sessioni locali](#managed-settings). Su Windows la voce [WSL](https://code.claude.com/docs/it/desktop-wsl.md), la cui disponibilità sui dispositivi gestiti è [regolata separatamente](https://code.claude.com/docs/it/admin-setup.md#wsl-sessions-in-claude-code-desktop), appare disattivata allo stesso modo.946Se la voce del tuo computer è disattivata nel selettore di ambiente, con il tooltip **Disabled by your organization**, l'amministratore ha [disattivato le sessioni locali](#managed-settings). Su Windows la voce [WSL](https://code.claude.com/docs/it/desktop-wsl.md), la cui disponibilità sui dispositivi gestiti è [regolata separatamente](https://code.claude.com/docs/it/admin-setup.md#wsl-sessions-in-claude-code-desktop), è disattivata allo stesso modo.

945 947 

946Le nuove sessioni usano per impostazione predefinita la prima connessione SSH, se ne è configurata una. Se provi a continuare una sessione locale esistente, Desktop mostra un messaggio che indica che le sessioni locali non sono disponibili su questo dispositivo. Gli [ambienti locali salvati](#create-a-saved-environment) mostrano questo errore quando ne selezioni uno: `Couldn’t switch environments: the Local environment isn’t available anymore.` Scegli invece un ambiente [SSH](#ssh-sessions) o [cloud](#cloud-sessions), oppure contatta il tuo team IT.948Le nuove sessioni usano per impostazione predefinita la prima connessione SSH, se ne è configurata una. Se provi a continuare una sessione locale esistente, Desktop mostra un messaggio che indica che le sessioni locali non sono disponibili su questo dispositivo. Gli [ambienti locali salvati](#create-a-saved-environment) mostrano questo errore quando ne selezioni uno: `Couldn’t switch environments: the Local environment isn’t available anymore.` Scegli invece un ambiente [SSH](#ssh-sessions) o [cloud](#cloud-sessions), oppure contatta il tuo team IT.

947 949 

948### Sessioni cloud950### Sessioni cloud

949 951 

950Le sessioni cloud continuano in background anche se chiudi l'app. L'utilizzo viene conteggiato nei [limiti del tuo piano di abbonamento](https://code.claude.com/docs/it/costs.md) senza costi di calcolo separati.952Le sessioni cloud continuano in background anche se chiudi l'app. L'utilizzo rientra nei [limiti del tuo piano di abbonamento](https://code.claude.com/docs/it/costs.md), senza costi di calcolo separati.

951 953 

952Per aggiungere, modificare o [archiviare](https://code.claude.com/docs/it/cloud-environments.md#archive-an-environment) un ambiente cloud, apri il [selettore dell'ambiente](#start-a-session):954Per aggiungere, modificare o [archiviare](https://code.claude.com/docs/it/cloud-environments.md#archive-an-environment) un ambiente cloud, apri il [selettore di ambiente](#start-a-session):

953 955 

954* **Aggiungere un ambiente**: seleziona **New environment** in fondo al menu del selettore, poi la scheda **Cloud** della [finestra di dialogo **New environment**](#create-a-saved-environment)956* **Aggiungere un ambiente**: seleziona **New environment** in fondo al menu del selettore, poi la scheda **Cloud** della [finestra di dialogo **New environment**](#create-a-saved-environment)

955* **Modificare o archiviare uno dei tuoi ambienti**: passa il mouse su di esso e fai clic sull'icona a forma di ingranaggio957* **Modificare o archiviare uno dei tuoi ambienti**: passa il mouse sopra di esso e fai clic sull'icona a forma di ingranaggio

956 958 

957Consulta [Configurare gli ambienti cloud](https://code.claude.com/docs/it/cloud-environments.md) per i dettagli sulla configurazione dell'accesso alla rete e delle variabili d'ambiente.959Consulta [Configurare gli ambienti cloud](https://code.claude.com/docs/it/cloud-environments.md) per i dettagli sulla configurazione dell'accesso di rete e delle variabili d'ambiente.

958 960 

959### Sessioni SSH961### Sessioni SSH

960 962 

961Le sessioni SSH ti permettono di eseguire Claude Code su una macchina remota usando l'app desktop come interfaccia. Questo è utile per lavorare con codebase che si trovano su VM cloud, dev container o server con hardware o dipendenze specifici.963Le sessioni SSH ti permettono di eseguire Claude Code su una macchina remota usando l'app desktop come interfaccia. È utile per lavorare con codebase che si trovano su VM cloud, dev container o server con hardware o dipendenze specifici.

962 964 

963> [!NOTE]965> [!NOTE]

964>966>

965> Se usi Desktop con un [provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md), le sessioni SSH richiedono una configurazione specifica. Consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).967> Se usi Desktop con un [provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md), le sessioni SSH richiedono una configurazione propria. Consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).

966 968 

967Aggiungi una connessione SSH nella [finestra di dialogo **New environment**](#create-a-saved-environment), poi avvia una sessione su quella connessione. Se una nuova sessione non mostra alcun ambiente sotto la casella del prompt, hai il layout precedente. Consulta [Verificare quale layout hai](#check-which-layout-you-have).969Aggiungi una connessione SSH nella [finestra di dialogo **New environment**](#create-a-saved-environment), poi avvia una sessione su quella connessione. Se una nuova sessione non mostra alcun ambiente sotto la casella del prompt, hai il layout precedente. Consulta [Verificare quale layout hai](#check-which-layout-you-have).

968 970 

969**1. Apri la finestra di dialogo New environment**971**1. Apri la finestra di dialogo New environment**

970 972 

971Prima di avviare una sessione, apri il selettore dell'ambiente sotto la casella del prompt e seleziona **New environment** in fondo al suo menu.973Prima di avviare una sessione, apri il selettore di ambiente sotto la casella del prompt e seleziona **New environment** in fondo al suo menu.

972 974 

973**2. Aggiungi la connessione**975**2. Aggiungi la connessione**

974 976 


976 978 

977* **Name**: un'etichetta descrittiva per questa connessione.979* **Name**: un'etichetta descrittiva per questa connessione.

978* **SSH host**: `user@hostname` o un host definito in `~/.ssh/config`.980* **SSH host**: `user@hostname` o un host definito in `~/.ssh/config`.

979* **SSH port**: se lasciato vuoto, il valore predefinito è 22, oppure viene usata la porta della tua configurazione SSH.981* **SSH port**: se lasciato vuoto usa per impostazione predefinita la porta 22, oppure la porta indicata nella tua configurazione SSH.

980* **SSH key (optional)**: percorso della tua chiave privata, ad esempio `~/.ssh/id_ed25519`. Lascia vuoto per usare la tua configurazione SSH o l'agente SSH.982* **SSH key (optional)**: percorso della tua chiave privata, ad esempio `~/.ssh/id_ed25519`. Lascia vuoto per usare la tua configurazione SSH o l'agente SSH.

981* **Worktree folder**: una cartella sulla macchina remota, ad esempio `~/worktrees`, in cui le nuove sessioni creano i propri worktree. Lascia vuoto per usare il [valore predefinito della macchina remota](#choose-where-ssh-session-worktrees-go).983* **Worktree folder**: una cartella sulla macchina remota, ad esempio `~/worktrees`, in cui le nuove sessioni creano i loro worktree. Lascia vuoto per usare la [cartella predefinita della macchina remota](#choose-where-ssh-session-worktrees-go).

982 984 

983Poi seleziona **Add SSH connection**.985Poi seleziona **Add SSH connection**.

984 986 

985**3. Avvia una sessione sulla connessione**987**3. Avvia una sessione sulla connessione**

986 988 

987Seleziona una cartella sulla macchina remota e fai clic su **Create environment**. La macchina e la cartella restano associate come [ambiente salvato](#create-a-saved-environment) per le sessioni successive. Desktop lo seleziona per la nuova sessione, quindi scrivi la tua attività e premi **Enter**.989Seleziona una cartella sulla macchina remota e fai clic su **Create environment**. Conservi la macchina e la cartella insieme come [ambiente salvato](#create-a-saved-environment) per le sessioni successive. Desktop lo seleziona per la nuova sessione, quindi digita la tua attività e premi **Enter**.

988 990 

989La macchina remota può eseguire Linux, macOS o [Windows](#windows-remote-machines). Desktop installa automaticamente Claude Code sulla macchina remota la prima volta che ti connetti. Una volta connesse, le sessioni SSH supportano le modalità di permesso, i connettori, i plugin e i server MCP.991La macchina remota può eseguire Linux, macOS o [Windows](#windows-remote-machines). Desktop installa automaticamente Claude Code sulla macchina remota la prima volta che ti connetti. Una volta connesse, le sessioni SSH supportano modalità di permesso, connettori, plugin e server MCP.

990 992 

991#### Requisiti della macchina remota per le sessioni SSH993#### Requisiti della macchina remota per le sessioni SSH

992 994 

993Una macchina remota Linux o macOS richiede un processore supportato, un server SSH con SFTP, una cartella di installazione non montata con `noexec`, una shell funzionante e l'accesso alla rete. Verifica ciascun requisito prima di connetterti, oppure quando una connessione non riesce dopo l'accesso:995Una macchina remota Linux o macOS richiede un processore supportato, un server SSH con SFTP, una cartella di installazione non montata con `noexec`, una shell funzionante e l'accesso di rete. Verifica ogni requisito prima di connetterti, oppure quando una connessione non riesce dopo l'accesso:

994 996 

995* **Sistema**: un processore x86\_64 o arm64. La macchina deve inoltre soddisfare i [requisiti di sistema](https://code.claude.com/docs/it/setup.md#system-requirements) di Claude Code. Su Linux, Claude Code richiede glibc 2.17 o successiva, oppure musl. Per vedere quale ha la macchina, esegui lì `ldd --version`. Su una distribuzione basata su musl come Alpine Linux, installa anche i [pacchetti di cui Claude Code ha bisogno](https://code.claude.com/docs/it/setup.md#alpine-linux-and-musl-based-distributions).997* **Sistema**: un processore x86\_64 o arm64. La macchina deve inoltre soddisfare i [requisiti di sistema](https://code.claude.com/docs/it/setup.md#system-requirements) di Claude Code. Su Linux, Claude Code richiede glibc 2.17 o versioni successive, oppure musl. Per vedere quale ha la macchina, esegui lì `ldd --version`. Su una distribuzione basata su musl come Alpine Linux, installa anche i [pacchetti di cui Claude Code ha bisogno](https://code.claude.com/docs/it/setup.md#alpine-linux-and-musl-based-distributions).

996* **SFTP**: il server SSH deve offrire il sottosistema SFTP, che viene attivato da una riga `Subsystem sftp` nel suo `sshd_config`. Per verificarlo, connettiti allo stesso host e alla stessa porta con `sftp` in un terminale sul tuo computer. Un server funzionante mostra il prompt `sftp>`.998* **SFTP**: il server SSH deve offrire il sottosistema SFTP, attivato da una riga `Subsystem sftp` nel suo `sshd_config`. Per verificarlo, connettiti allo stesso host e alla stessa porta con `sftp` in un terminale sul tuo computer. Un server funzionante mostra il prompt `sftp>`.

997* **`MaxSessions 1` sul server**: per connetterti a un server il cui `sshd_config` imposta `MaxSessions 1`, esegui una di queste operazioni:999* **`MaxSessions 1` sul server**: per connetterti a un server il cui `sshd_config` imposta `MaxSessions 1`, fai una di queste cose:

998 * **Il tuo computer esegue macOS o Linux**: aggiorna a Claude Desktop v3.1623.0 o successiva1000 * **Il tuo computer esegue macOS o Linux**: aggiorna a Claude Desktop v3.1623.0 o versioni successive

999 * **Il tuo computer esegue Windows**: assicurati che Desktop [si connetta tramite il client OpenSSH](#use-your-ssh-configuration), perché il client SSH integrato di Desktop non può connettersi a quel server1001 * **Il tuo computer esegue Windows**: assicurati che Desktop [si connetta tramite il client OpenSSH](#use-your-ssh-configuration), perché il client SSH integrato di Desktop non può connettersi a quel server

1000 * **Puoi modificare il server**: aumenta `MaxSessions`, ad esempio al valore predefinito di OpenSSH, 101002 * **Puoi modificare il server**: aumenta `MaxSessions`, ad esempio al valore predefinito di OpenSSH, 10

1001* **Accessi con `MaxSessions 1`**: usa un accesso che funzioni senza prompt, ad esempio una chiave detenuta dal tuo agente SSH. Desktop accede almeno due volte ogni volta che si connette o si riconnette. Prevedi almeno un accesso in più per ogni scheda del [terminale](#run-commands-in-the-terminal) e per ogni sessione di Desktop in cui esegui comandi che iniziano con `!`. Non ne prevedere nessuno per i comandi eseguiti da Claude.1003* **Accessi con `MaxSessions 1`**: usa un accesso che funzioni senza prompt, come una chiave conservata dal tuo agente SSH. Desktop effettua l'accesso almeno due volte ogni volta che si connette o si riconnette. Prevedi almeno un accesso in più per ogni scheda del [terminale](#run-commands-in-the-terminal) e per ogni sessione di Desktop in cui esegui comandi che iniziano con `!`. Non ne prevedere nessuno per i comandi eseguiti da Claude.

1002* **Codici monouso con `MaxSessions 1`**: se ogni accesso ti chiede qualcosa, come nel caso dei codici monouso, i comandi `!` non riescono. Esegui invece quei comandi in una scheda del terminale, che mostra la richiesta nel proprio riquadro.1004* **Codici monouso con `MaxSessions 1`**: se ogni accesso ti chiede qualcosa, come nel caso dei codici monouso, i comandi `!` non riescono. Esegui invece quei comandi in una scheda del terminale, che mostra la richiesta nel proprio riquadro.

1003* **Cartella di installazione**: Desktop installa un programma helper e Claude Code in `~/.claude/remote/` nella tua directory home. Li esegue da lì, quindi quella cartella non può trovarsi su un file system montato con `noexec`. Prevedi circa 1 GB di spazio su disco nella directory home di ciascun utente che si connette. Per il contenuto di quella cartella, consulta [File e processi sulla macchina remota](#files-and-processes-on-the-remote-machine).1005* **Cartella di installazione**: Desktop installa un programma di supporto e Claude Code in `~/.claude/remote/` nella tua directory home. Li esegue da lì, quindi quella cartella non può trovarsi su un file system montato con `noexec`. Prevedi circa 1 GB di spazio su disco nella directory home di ogni utente che si connette. Per sapere cosa contiene quella cartella, consulta [File e processi sulla macchina remota](#files-and-processes-on-the-remote-machine).

1004* **Shell**: la shell impostata per il tuo account sulla macchina remota deve eseguire i comandi inviati tramite SSH, come fanno Bash, Zsh e `sh`1006* **Shell**: la shell impostata per il tuo account sulla macchina remota deve eseguire i comandi inviati tramite SSH, come fanno Bash, Zsh e `sh`

1005* **Rete**: Claude Code viene eseguito sul computer remoto ed effettua le sue richieste di rete da lì, quindi il computer necessita dell'[accesso alla rete richiesto da Claude Code](https://code.claude.com/docs/it/network-config.md#network-access-requirements). Se il computer non riesce a scaricare Claude Code, Desktop lo scarica sul tuo computer e lo carica. Le altre richieste di Claude Code partono comunque dal computer remoto. Se un computer remoto Linux necessita di un proxy o di un certificato CA, [impostalo per le sessioni SSH](#set-a-proxy-or-a-ca-certificate-for-ssh-sessions).1007* **Rete**: Claude Code viene eseguito sulla macchina remota ed effettua da lì le sue richieste di rete, quindi la macchina ha bisogno dell'[accesso di rete richiesto da Claude Code](https://code.claude.com/docs/it/network-config.md#network-access-requirements). Se la macchina non può scaricare Claude Code, Desktop lo scarica sul tuo computer e lo carica. Le altre richieste di Claude Code partono comunque dalla macchina remota. Se una macchina remota Linux ha bisogno di un proxy o di un certificato CA, [impostalo per le sessioni SSH](#set-a-proxy-or-a-ca-certificate-for-ssh-sessions).

1006 1008 

1007#### Verificare la chiave host di una macchina remota1009#### Verificare la chiave host di una macchina remota

1008 1010 

1009Una chiave host è la chiave che una macchina remota presenta per dimostrare quale macchina è, e un'impronta digitale (fingerprint) è una forma abbreviata di quella chiave. Quando consideri attendibile una chiave, il tuo computer la salva e si connette a qualunque cosa la presenti, senza chiedere di nuovo. Verifica una chiave prima di considerarla attendibile, perché qualcosa potrebbe intercettare la connessione.1011Una chiave host è la chiave che una macchina remota presenta per dimostrare quale macchina è, e un'impronta (fingerprint) è una forma breve di quella chiave. Quando consideri attendibile una chiave, il tuo computer la salva e si connette a qualunque cosa la presenti, senza chiedere di nuovo. Verifica una chiave prima di considerarla attendibile, perché qualcosa potrebbe intercettare la connessione.

1010 1012 

1011Per prima cosa individua a quale macchina appartiene la chiave, in base a dove vedi l'impronta digitale:1013Per prima cosa individua a quale macchina appartiene la chiave, in base a dove vedi l'impronta:

1012 1014 

1013* **Desktop chiede `Connect to <host> for the first time?`, oppure hai selezionato Review new key**: la macchina indicata da Desktop, `<host>`1015* **Desktop chiede `Connect to <host> for the first time?`, oppure hai selezionato Review new key**: la macchina indicata da Desktop, `<host>`

1014* **Desktop chiede `Connect through <jump host> for the first time?`**: il jump host, ovvero la macchina attraverso cui passa la tua connessione, non la macchina che vuoi raggiungere1016* **Desktop chiede `Connect through <jump host> for the first time?`**: il jump host, ovvero la macchina attraverso cui passa la tua connessione, non la macchina che vuoi raggiungere

1015* **`ssh` chiede o avvisa in un terminale**: la macchina indicata dal suo messaggio, che potrebbe non essere quella che hai digitato1017* **`ssh` chiede o avvisa in un terminale**: la macchina indicata dal suo messaggio, che potrebbe non essere quella che hai digitato

1016 1018 

1017Ottieni l'impronta digitale propria di quella macchina dalla macchina stessa, non tramite la connessione che stai verificando:1019Ottieni l'impronta della macchina direttamente dalla macchina stessa, non tramite la connessione che stai verificando:

1018 1020 

1019* **La macchina è gestita da qualcun altro**: chiedi a quella persona l'impronta digitale della chiave host1021* **La macchina è gestita da qualcun altro**: chiedi a quella persona l'impronta della chiave host

1020* **La gestisci tu ed esegue Linux o macOS**: esegui `ssh-keygen -lf /etc/ssh/ssh_host_<type>_key.pub` su di essa, dalla sua console o tramite una connessione che già consideri attendibile. Per `<type>`, usa il tipo di chiave che Desktop o `ssh` mostra accanto all'impronta digitale, in minuscolo: `ed25519` per `ED25519` o `ssh-ed25519`.1022* **La gestisci tu ed esegue Linux o macOS**: esegui `ssh-keygen -lf /etc/ssh/ssh_host_<type>_key.pub` su di essa, dalla sua console o tramite una connessione che consideri già attendibile. Per `<type>`, usa il tipo di chiave che Desktop o `ssh` mostra accanto all'impronta, in minuscolo: `ed25519` per `ED25519` o `ssh-ed25519`.

1021 1023 

1022Poi confronta l'impronta digitale della macchina con quella che ti è stata mostrata:1024Poi confronta l'impronta della macchina con quella che ti è stata mostrata:

1023 1025 

1024* **Corrispondono**: considera attendibile la chiave. Seleziona **Trust and connect** o **Trust new key** in Desktop, oppure rispondi `yes` nel terminale.1026* **Corrispondono**: considera attendibile la chiave. Seleziona **Trust and connect** o **Trust new key** in Desktop, oppure rispondi `yes` nel terminale.

1025* **Sono diverse, oppure non puoi verificare**: non connetterti. Seleziona **Cancel** in Desktop, oppure rispondi `no` nel terminale. Se la macchina è gestita da qualcun altro, comunica a quella persona quale impronta digitale ti è stata mostrata.1027* **Sono diverse, oppure non puoi verificare**: non connetterti. Seleziona **Cancel** in Desktop, oppure rispondi `no` nel terminale. Se la macchina è gestita da qualcun altro, comunica a quella persona quale impronta ti è stata mostrata.

1026 1028 

1027Se sei arrivato qui da un passaggio di risoluzione dei problemi, torna a quel passaggio dopo l'uno o l'altro risultato.1029Se sei arrivato qui da un passaggio di risoluzione dei problemi, torna a quel passaggio dopo uno qualsiasi dei due risultati.

1028 1030 

1029#### Impostare un proxy o un certificato CA per le sessioni SSH1031#### Impostare un proxy o un certificato CA per le sessioni SSH

1030 1032 

1031Se una macchina remota Linux raggiunge Internet tramite un proxy o necessita di un certificato CA, aggiungi le [variabili del proxy e della CA](https://code.claude.com/docs/it/network-config.md) sotto `env` in `~/.claude/settings.json` su quella macchina. Aggiungile anche se le esporti già in `~/.profile`, `~/.bash_profile`, `~/.zprofile` o `~/.zshrc` su quella macchina.1033Se una macchina remota Linux raggiunge Internet tramite un proxy o ha bisogno di un certificato CA, aggiungi le [variabili per il proxy e la CA](https://code.claude.com/docs/it/network-config.md) sotto `env` in `~/.claude/settings.json` su quella macchina. Aggiungile anche se le esporti già in `~/.profile`, `~/.bash_profile`, `~/.zprofile` o `~/.zshrc` su quella macchina.

1032 1034 

1033In una sessione SSH, Claude Code non riceve le variabili da quei file, anche quando `claude` in un terminale su quel computer le riceve. La sessione può quindi bloccarsi, oppure mostrare **The connection from … to the API failed**, **Authentication failed** o **Claude Code on … couldn’t verify the API connection’s certificate**. Accedere di nuovo non aiuta.1035In una sessione SSH, Claude Code non riceve le variabili da quei file, anche quando `claude` in un terminale su quella macchina le riceve. La sessione può quindi bloccarsi, oppure mostrare **The connection from … to the API failed**, **Authentication failed** o **Claude Code on … couldn’t verify the API connection’s certificate**. Accedere di nuovo non aiuta.

1034 1036 

1035**1. Aggiungi le variabili**1037**1. Aggiungi le variabili**

1036 1038 

1037Per il file della CA, usa [`NODE_EXTRA_CA_CERTS`](https://code.claude.com/docs/it/network-config#custom-ca-certificates), perché Claude Code non considera attendibile una CA da `SSL_CERT_FILE` in `~/.claude/settings.json`. Questo esempio imposta un proxy e un file della CA:1039Per il file CA, usa [`NODE_EXTRA_CA_CERTS`](https://code.claude.com/docs/it/network-config#custom-ca-certificates), perché Claude Code non considera attendibile una CA indicata da `SSL_CERT_FILE` in `~/.claude/settings.json`. Questo esempio imposta un proxy e un file CA:

1038 1040 

1039```json ~/.claude/settings.json theme={null}1041```json ~/.claude/settings.json theme={null}

1040{1042{


1047 1049 

1048**2. Invia di nuovo il messaggio**1050**2. Invia di nuovo il messaggio**

1049 1051 

1050Invia di nuovo il messaggio, perché una variabile che aggiungi o modifichi in quel file ha effetto entro pochi secondi. Avvia una nuova sessione se il problema persiste.1052Invia di nuovo il messaggio, perché una variabile che aggiungi o modifichi in quel file ha effetto entro pochi secondi. Se non funziona ancora, avvia una nuova sessione.

1051 1053 

1052##### Trovare una variabile del proxy o della CA impostata altrove sulla macchina remota1054##### Trovare una variabile per il proxy o la CA impostata altrove sulla macchina remota

1053 1055 

1054Verifica se la macchina remota Linux imposta la variabile del proxy o della CA altrove, perché le sessioni usano quel valore e [ignorano quello presente in qualsiasi file di impostazioni](https://code.claude.com/docs/it/settings-reference.md#how-env-values-interact-with-your-shell):1056Verifica se la macchina remota Linux imposta la variabile per il proxy o la CA altrove, perché le sessioni usano quel valore e [ignorano quello di qualsiasi file di impostazioni](https://code.claude.com/docs/it/settings-reference.md#how-env-values-interact-with-your-shell):

1055 1057 

1056**1. Elenca le variabili impostate dalla macchina remota**1058**1. Elenca le variabili impostate dalla macchina remota**

1057 1059 


1063 1065 

1064**3. Fornisci il nuovo valore alle sessioni**1066**3. Fornisci il nuovo valore alle sessioni**

1065 1067 

1066Riavvia la macchina remota, oppure chiudi Desktop e termina i processi dell'helper, come nei primi due passaggi per [rimuovere l'helper](#files-and-processes-on-the-remote-machine). Fallo quando nessuna attività è in esecuzione, perché in entrambi i casi il lavoro di Claude viene interrotto.1068Riavvia la macchina remota, oppure chiudi Desktop e termina i processi del programma di supporto, come nei primi due passaggi per [rimuovere il programma di supporto](#files-and-processes-on-the-remote-machine). Fallo quando non ci sono attività in esecuzione, perché in entrambi i casi il lavoro di Claude viene interrotto.

1067 1069 

1068#### Usare la tua configurazione SSH1070#### Usare la tua configurazione SSH

1069 1071 

1070Puoi usare la tua configurazione SSH su macOS, Linux e Windows quando Desktop si connette tramite il client OpenSSH sul tuo computer:1072Puoi usare la tua configurazione SSH su macOS, Linux e Windows quando Desktop si connette tramite il client OpenSSH sul tuo computer:

1071 1073 

1072* **macOS e Linux**: Desktop si connette eseguendo il client OpenSSH sul tuo computer, quindi usa il tuo `~/.ssh/config`. La connessione tramite il client OpenSSH richiede Claude Desktop v1.37937.0 o successiva.1074* **macOS e Linux**: Desktop si connette eseguendo il client OpenSSH sul tuo computer, quindi usa il tuo `~/.ssh/config`. La connessione tramite il client OpenSSH richiede Claude Desktop v1.37937.0 o versioni successive.

1073* **Windows**: quando Desktop si connette tramite il client OpenSSH, usa il tuo `%USERPROFILE%\.ssh\config`. Se usi un account Claude anziché un provider di terze parti, la connessione tramite il client OpenSSH richiede tutti questi requisiti:1075* **Windows**: quando Desktop si connette tramite il client OpenSSH, usa il tuo `%USERPROFILE%\.ssh\config`. Se usi un account Claude anziché un provider di terze parti, la connessione tramite il client OpenSSH richiede tutti questi requisiti:

1074 1076 

1075 * Claude Desktop v2.2553.0 o successiva. Per trovare la tua versione, consulta [Verificare la versione](#check-your-version).1077 * Claude Desktop v2.2553.0 o versioni successive. Per trovare la tua versione, consulta [Verificare la versione](#check-your-version).

1076 * OpenSSH di Microsoft 9.4 o successiva1078 * OpenSSH di Microsoft 9.4 o versioni successive

1077 * Desktop installato con i pulsanti di download in cima a questa pagina, perché Desktop dal Microsoft Store non si connette tramite il client OpenSSH1079 * Desktop installato con i pulsanti di download in cima a questa pagina, perché Desktop dal Microsoft Store non si connette tramite il client OpenSSH

1078 1080 

1079 Se non puoi soddisfare questi requisiti, oppure usi un provider di terze parti, consulta [Connettersi su Windows senza il client OpenSSH](#connect-on-windows-without-the-openssh-client).1081 Se non puoi soddisfare questi requisiti, oppure usi un provider di terze parti, consulta [Connettersi su Windows senza il client OpenSSH](#connect-on-windows-without-the-openssh-client).

1080 1082 

1081Con il client OpenSSH, inserisci un nome `Host` del tuo file di configurazione nel campo **SSH host**. Desktop usa quindi le impostazioni di quella voce `Host`, come `HostName`, `User`, `IdentityFile`, `CertificateFile`, `ProxyJump` e `ProxyCommand`.1083Con il client OpenSSH, inserisci nel campo **SSH host** un nome `Host` dal tuo file di configurazione. Desktop usa quindi le impostazioni di quella voce `Host`, come `HostName`, `User`, `IdentityFile`, `CertificateFile`, `ProxyJump` e `ProxyCommand`.

1082 1084 

1083Prima di aggiungere la connessione, verifica il client e la voce in un terminale sul tuo computer:1085Prima di aggiungere la connessione, verifica il client e la voce in un terminale sul tuo computer:

1084 1086 

1085* **Versione del client su macOS e Linux**: esegui `ssh -V`. Il client deve essere OpenSSH 7.6 o successivo.1087* **Versione del client su macOS e Linux**: esegui `ssh -V`. Il client deve essere OpenSSH 7.6 o versioni successive.

1086* **Versione del client su Windows**: Desktop prova prima l'`ssh` presente nel tuo `PATH`, quindi esegui `ssh -V`. Il client è valido se l'output mostra `OpenSSH_for_Windows_` e una versione 9.4 o successiva. Se non è valido, controlla le due cartelle che Desktop prova subito dopo: esegui `.\ssh.exe -V` in `C:\Windows\System32\OpenSSH`, poi in `C:\Program Files\OpenSSH`.1088* **Versione del client su Windows**: Desktop prova per primo l'`ssh` presente nel tuo `PATH`, quindi esegui `ssh -V`. Il client supera la verifica se l'output mostra `OpenSSH_for_Windows_` e la versione 9.4 o successiva. Se non la supera, controlla le due cartelle che Desktop prova successivamente: esegui `.\ssh.exe -V` in `C:\Windows\System32\OpenSSH`, poi in `C:\Program Files\OpenSSH`.

1087* **Nessun client valido su Windows**: aggiungi la funzionalità facoltativa **OpenSSH Client** in Windows e installa gli aggiornamenti di Windows in sospeso, oppure installa la [build più recente di Microsoft](https://learn.microsoft.com/en-us/troubleshoot/windows-server/system-management-components/upgrade-in-box-openssh-to-latest-openssh-release). Poi chiudi e riapri Desktop. Per vedere se Desktop ha trovato un client OpenSSH utilizzabile, cerca in [`ssh.log`](#get-desktops-logs-for-an-ssh-problem) `Windows OpenSSH client:` seguito da una versione, oppure `no usable Windows OpenSSH client`.1089* **Nessun client supera la verifica su Windows**: aggiungi la funzionalità facoltativa **OpenSSH Client** in Windows e installa gli aggiornamenti di Windows in sospeso, oppure installa la [build più recente di Microsoft](https://learn.microsoft.com/en-us/troubleshoot/windows-server/system-management-components/upgrade-in-box-openssh-to-latest-openssh-release). Poi chiudi e riapri Desktop. Per vedere se Desktop ha trovato un client OpenSSH utilizzabile, cerca in [`ssh.log`](#get-desktops-logs-for-an-ssh-problem) `Windows OpenSSH client:` seguito da una versione, oppure `no usable Windows OpenSSH client`.

1088* **Voce**: su Windows, usa il client che ha superato la verifica della versione. Esegui `ssh` con il nome `Host`, ad esempio `ssh devbox`. Se non riesce, correggi prima la voce.1090* **Voce**: su Windows, usa il client che ha superato la verifica della versione. Esegui `ssh` con il nome `Host`, ad esempio `ssh devbox`. Se non funziona, correggi prima la voce.

1089 1091 

1090Puoi lasciare vuoti i campi **SSH port** e **SSH key (optional)**. Se ne compili uno, Desktop lo usa insieme alla voce:1092Puoi lasciare vuoti i campi **SSH port** e **SSH key (optional)**. Se ne compili uno, Desktop lo usa insieme alla voce:

1091 1093 


1094 1096 

1095##### Connettersi su Windows senza il client OpenSSH1097##### Connettersi su Windows senza il client OpenSSH

1096 1098 

1097Su Windows, ti connetti tramite il client SSH integrato di Desktop se il tuo computer non soddisfa [i requisiti per il client OpenSSH](#use-your-ssh-configuration). Con un provider di terze parti, ti connetti tramite il client integrato per impostazione predefinita, e il tuo amministratore può modificare questo comportamento. Per l'impostazione, consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).1099Su Windows, ti connetti tramite il client SSH integrato di Desktop se il tuo computer non soddisfa [i requisiti per il client OpenSSH](#use-your-ssh-configuration). Con un provider di terze parti, il client tramite cui ti connetti dipende anche dalla versione di Desktop e dalle impostazioni dell'amministratore. Consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).

1098 1100 

1099Con il client integrato, puoi comunque inserire un nome `Host` della tua configurazione SSH nel campo **SSH host** se il tuo `PATH` contiene un comando `ssh`, con queste limitazioni:1101Con il client integrato, puoi comunque inserire nel campo **SSH host** un nome `Host` dalla tua configurazione SSH se il tuo `PATH` contiene un comando `ssh`, con questi limiti:

1100 1102 

1101* **Impostazioni dalla voce**: Desktop prende `HostName`, `User`, `Port` e `IdentityFile`. Prende anche `ProxyCommand` se una shell `sh` è presente nel tuo `PATH`.1103* **Impostazioni dalla voce**: Desktop prende `HostName`, `User`, `Port`, `IdentityFile` e `ConnectTimeout`. Prende anche `ProxyCommand` se una shell `sh` si trova nel tuo `PATH`.

1102* **SSH key (optional)**: lascia vuoto questo campo per mantenere l'`IdentityFile` della voce, perché un file di chiave che scegli qui sostituisce l'`IdentityFile`1104* **SSH key (optional)**: lascia vuoto questo campo per mantenere l'`IdentityFile` della voce, perché un file di chiave che scegli qui sostituisce l'`IdentityFile`

1103* **`CertificateFile` e `ProxyJump`**: Desktop ignora `CertificateFile`, e la connessione non riesce se la voce imposta `ProxyJump`. Per usare una di queste impostazioni, [connettiti tramite il client OpenSSH](#use-your-ssh-configuration).1105* **`CertificateFile` e `ProxyJump`**: Desktop ignora `CertificateFile`, e la connessione non riesce se la voce imposta `ProxyJump`. Per usare una di queste impostazioni, [connettiti tramite il client OpenSSH](#use-your-ssh-configuration).

1104 1106 

1105##### Raggiungere una macchina dietro un jump host1107##### Raggiungere una macchina dietro un jump host

1106 1108 

1107Per raggiungere una macchina dietro un jump host, detto anche bastion, imposta `ProxyJump` o `ProxyCommand` nella voce. La voce seguente raggiunge `devbox.internal.example.com` tramite `bastion.example.com`:1109Per raggiungere una macchina dietro un jump host, chiamato anche bastion, imposta `ProxyJump` o `ProxyCommand` nella voce. La voce seguente raggiunge `devbox.internal.example.com` tramite `bastion.example.com`:

1108 1110 

1109```text ~/.ssh/config theme={null}1111```text ~/.ssh/config theme={null}

1110Host devbox1112Host devbox


1115 1117 

1116Inserisci `devbox` nel campo **SSH host**.1118Inserisci `devbox` nel campo **SSH host**.

1117 1119 

1118Se il tuo amministratore [limita gli host SSH](#allow-jump-hosts), anche il jump host deve essere nell'elenco. Esegui `ssh -G bastion.example.com` in un terminale sul tuo computer e chiedi all'amministratore di consentire l'`hostname` che viene stampato.1120Se l'amministratore [limita gli host SSH](#allow-jump-hosts), anche il jump host deve essere nell'elenco. Esegui `ssh -G bastion.example.com` in un terminale sul tuo computer e chiedi all'amministratore di consentire l'`hostname` che viene stampato.

1119 1121 

1120##### Raggiungere un container su una macchina remota1122##### Raggiungere un container su una macchina remota

1121 1123 

1122Per eseguire una sessione all'interno di un container che non pubblica alcuna porta SSH, raggiungilo con un `ProxyCommand`, perché Desktop non esegue il `RemoteCommand` della voce a cui ti connetti. Se la tua voce usa `RemoteCommand` per entrare nel container, la sessione viene eseguita sulla macchina a cui accede la voce, non nel container.1124Per eseguire una sessione all'interno di un container che non pubblica alcuna porta SSH, raggiungilo con un `ProxyCommand`, perché Desktop non esegue il `RemoteCommand` della voce a cui ti connetti. Se la tua voce usa `RemoteCommand` per entrare nel container, la sessione viene eseguita sulla macchina a cui la voce accede, non nel container.

1123 1125 

1124**1. Aggiungi la voce**1126**1. Aggiungi la voce**

1125 1127 

1126Aggiungi la voce seguente alla fine del tuo `~/.ssh/config`, oppure subito sopra la tua prima voce `Host *` se ne hai una. Sostituisci il container Docker `devbox`, il suo utente `dev` e la macchina `build.example.com` con i tuoi. Il comando della voce avvia un server SSH all'interno del container per ogni connessione:1128Aggiungi la voce seguente alla fine del tuo `~/.ssh/config`, oppure direttamente sopra la tua prima voce `Host *`, se ne hai una. Sostituisci il container Docker `devbox`, il suo utente `dev` e la macchina `build.example.com` con i tuoi. Il comando della voce avvia un server SSH all'interno del container per ogni connessione:

1127 1129 

1128```text ~/.ssh/config theme={null}1130```text ~/.ssh/config theme={null}

1129Host devbox-container1131Host devbox-container


1133 1135 

1134**2. Prepara il container**1136**2. Prepara il container**

1135 1137 

1136* Installa il server OpenSSH, con una chiave host che resti la stessa quando ricompili l'immagine o ricrei il container1138* Installa il server OpenSSH, con una chiave host che rimanga la stessa quando ricompili l'immagine o ricrei il container

1137* Fornisci all'account indicato in `User` un modo per accedere, ad esempio un file `authorized_keys`1139* Fornisci all'account indicato in `User` un modo per accedere, ad esempio un file `authorized_keys`

1138* Verifica che il container soddisfi i [requisiti della macchina remota](#remote-machine-requirements-for-ssh-sessions)1140* Verifica che il container soddisfi i [requisiti della macchina remota](#remote-machine-requirements-for-ssh-sessions)

1139 1141 

1140**3. Controlla l'allowlist**1142**3. Controlla l'allowlist**

1141 1143 

1142Se il tuo amministratore [limita gli host SSH](#restrict-which-ssh-hosts-users-can-connect-to), esegui `ssh -G devbox-container` in un terminale sul tuo computer. Chiedi all'amministratore di consentire in `sshHostAllowlist` l'`hostname` che viene stampato, qui `devbox-container`. Consentendo quel nome, consente tutto ciò a cui si connette il `ProxyCommand` della tua voce.1144Se l'amministratore [limita gli host SSH](#restrict-which-ssh-hosts-users-can-connect-to), esegui `ssh -G devbox-container` in un terminale sul tuo computer. Chiedi all'amministratore di consentire in `sshHostAllowlist` l'`hostname` che viene stampato, qui `devbox-container`. Consentendo quel nome, l'amministratore consente qualunque cosa a cui si connette il `ProxyCommand` della tua voce.

1143 1145 

1144**4. Testa la voce, poi connettiti**1146**4. Verifica la voce, poi connettiti**

1145 1147 

1146Esegui `ssh devbox-container` in un terminale sul tuo computer. Correggi ciò che segnala ed eseguilo di nuovo finché non apre una shell nel container senza chiederti nulla:1148Esegui `ssh devbox-container` in un terminale sul tuo computer. Correggi ciò che segnala ed eseguilo di nuovo finché non apre una shell nel container senza chiederti nulla:

1147 1149 

1148* **Se `ssh` chiede una password, una passphrase o un codice**: passa a un accesso che funzioni senza prompt, ad esempio una chiave detenuta dal tuo agente SSH1150* **Se `ssh` chiede una password, una passphrase o un codice**: passa a un accesso che funzioni senza prompt, come una chiave conservata dal tuo agente SSH

1149* **Se `ssh` segnala `Cannot execute command-line and remote command.` o `Bad packet length`**: rimuovi `RemoteCommand` e `RequestTTY` dalla tua voce per `build.example.com`. Dopodiché, `ssh build.example.com` in un terminale sul tuo computer apre una shell su quella macchina, non nel container.1151* **Se `ssh` segnala `Cannot execute command-line and remote command.` o `Bad packet length`**: rimuovi `RemoteCommand` e `RequestTTY` dalla tua voce per `build.example.com`. Dopodiché, `ssh build.example.com` in un terminale sul tuo computer apre una shell su quella macchina, non nel container.

1150* **Se `ssh` segnala `Connection closed by UNKNOWN port 65535`**: esegui `ssh build.example.com docker exec devbox /usr/sbin/sshd -t` nello stesso terminale.1152* **Se `ssh` segnala `Connection closed by UNKNOWN port 65535`**: esegui `ssh build.example.com docker exec devbox /usr/sbin/sshd -t` nello stesso terminale.

1151 * Se stampa `Missing privilege separation directory: /run/sshd`, crea quella cartella nel container.1153 * Se stampa `Missing privilege separation directory: /run/sshd`, crea quella cartella nel container.


1155 1157 

1156##### Usare variabili della tua shell in un `ProxyCommand`1158##### Usare variabili della tua shell in un `ProxyCommand`

1157 1159 

1158Su macOS e Linux, per usare una tua variabile d'ambiente in un comando `ProxyCommand` o `Match exec`, esportala in un file di avvio della shell, ad esempio `~/.zshrc`. Poi chiudi e riapri Desktop. All'avvio, Desktop legge ciò che esporta la tua shell di login e mantiene quei valori finché non lo chiudi.1160Su macOS e Linux, per usare una tua variabile d'ambiente in un comando `ProxyCommand` o `Match exec`, esportala in un file di avvio della shell, come `~/.zshrc`. Poi chiudi e riapri Desktop. All'avvio, Desktop legge ciò che esporta la tua shell di login e mantiene quei valori finché non lo chiudi.

1159 1161 

1160Questo richiede Claude Desktop v2.37337.0 o successiva e un comando `env` che accetti `-0`, cosa che puoi verificare eseguendo `env -0` in un terminale sul tuo computer.1162Questo richiede Claude Desktop v2.37337.0 o versioni successive e un comando `env` che accetti `-0`, cosa che puoi verificare eseguendo `env -0` in un terminale sul tuo computer.

1161 1163 

1162> [!NOTE]1164> [!NOTE]

1163>1165>

1164> Se la tua shell imposta credenziali AWS temporanee, [fornisci un profilo alla AWS CLI](#use-aws-credentials-in-a-proxycommand) anziché esportare variabili `AWS_*`.1166> Se la tua shell imposta credenziali AWS temporanee, [fornisci un profilo alla AWS CLI](#use-aws-credentials-in-a-proxycommand) invece di esportare variabili `AWS_*`.

1165 1167 

1166##### Usare credenziali AWS in un `ProxyCommand` su macOS e Linux1168##### Usare credenziali AWS in un `ProxyCommand` su macOS e Linux

1167 1169 

1168Se imposti credenziali AWS temporanee in un file di avvio della shell, un `ProxyCommand` che esegue la AWS CLI può connettersi in un terminale e non riuscire in Desktop. Quando la tua shell esporta `AWS_SESSION_TOKEN`, `AWS_SECURITY_TOKEN` o `AWS_CREDENTIAL_EXPIRATION`, `ssh` e il tuo `ProxyCommand` in Desktop non ricevono le credenziali AWS della shell, `AWS_REGION` o `AWS_PROFILE`.1170Se imposti credenziali AWS temporanee in un file di avvio della shell, un `ProxyCommand` che esegue la AWS CLI può connettersi in un terminale e non riuscire in Desktop. Quando la tua shell esporta `AWS_SESSION_TOKEN`, `AWS_SECURITY_TOKEN` o `AWS_CREDENTIAL_EXPIRATION`, `ssh` e il tuo `ProxyCommand` in Desktop non ricevono le credenziali AWS della shell, `AWS_REGION` o `AWS_PROFILE`.

1169 1171 

1170Se la AWS CLI non ha un'altra fonte per la regione o le credenziali, non riesce con `You must specify a region` o `Unable to locate credentials`. Per connetterti da Desktop, fornisci alla AWS CLI un profilo che legga da `~/.aws/config`:1172Se la AWS CLI non ha altre fonti per una regione o per le credenziali, non riesce con `You must specify a region` o `Unable to locate credentials`. Per connetterti da Desktop, fornisci alla AWS CLI un profilo che legga da `~/.aws/config`:

1171 1173 

1172**1. Aggiungi un profilo con una regione e una fonte di credenziali**1174**1. Aggiungi un profilo con una regione e una fonte di credenziali**

1173 1175 

1174Questo esempio aggiunge un profilo chiamato `corp` che ottiene le credenziali da un programma helper:1176Questo esempio aggiunge un profilo chiamato `corp` che ottiene le credenziali da un programma di supporto:

1175 1177 

1176```ini ~/.aws/config theme={null}1178```ini ~/.aws/config theme={null}

1177[profile corp]1179[profile corp]


1180```1182```

1181 1183 

1182* **`region`**: indica la regione AWS delle macchine a cui ti connetti1184* **`region`**: indica la regione AWS delle macchine a cui ti connetti

1183* **`credential_process`**: indica il percorso completo di un programma che stampa le credenziali nel [formato JSON documentato da AWS](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sourcing-external.html). Scegli un programma che non richieda alcun input da parte tua, perché la AWS CLI lo esegue a ogni connessione, incluse le riconnessioni mentre sei via.1185* **`credential_process`**: indica il percorso completo di un programma che stampa le credenziali nel [formato JSON documentato da AWS](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sourcing-external.html). Scegli un programma che non richieda input da parte tua, perché la AWS CLI lo esegue a ogni connessione, incluse le riconnessioni mentre sei assente.

1184* **IAM Identity Center**: aggiungi le [impostazioni IAM Identity Center](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html) del profilo al posto di `credential_process`. Esegui `aws sso login --profile corp` in un terminale prima di connetterti, e di nuovo quando quell'accesso scade.1186* **IAM Identity Center**: aggiungi le [impostazioni di IAM Identity Center](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html) del profilo al posto di `credential_process`. Esegui `aws sso login --profile corp` in un terminale prima di connetterti, e di nuovo quando quell'accesso scade.

1185 1187 

1186**2. Indica il profilo nel ProxyCommand**1188**2. Indica il profilo nel ProxyCommand**

1187 1189 


1198 1200 

1199##### Aumentare il timeout della connessione SSH1201##### Aumentare il timeout della connessione SSH

1200 1202 

1201Se la tua configurazione SSH non imposta alcun `ConnectTimeout` per l'host, Desktop concede a `ssh` 30 secondi per connettersi. Tramite un jump host o un `ProxyCommand`, quel tempo include il tempo necessario al percorso per connettersi. Se il tuo percorso richiede più tempo, aggiungi un valore più alto alla voce:1203Se la sessione va in timeout mentre si connette tramite un jump host o un `ProxyCommand`, aumenta `ConnectTimeout` nella voce della macchina remota nel tuo `~/.ssh/config`. Usa più di 90 secondi. Aggiungi il tempo durante il quale un jump host o un `ProxyCommand` ti attende, ad esempio a un prompt di accesso o per una notifica push sul telefono:

1202 1204 

1203```text ~/.ssh/config theme={null}1205```text ~/.ssh/config theme={null}

1204Host devbox1206Host devbox


1210 1212 

1211`ssh` usa il primo valore che trova per un host, quindi mantieni la voce sopra qualsiasi voce `Host *` che imposti `ConnectTimeout`. Per confermare, esegui `ssh -G devbox` in un terminale sul tuo computer. Il suo output include `connecttimeout 120`. Dopo aver modificato il valore, chiudi e riapri Desktop.1213`ssh` usa il primo valore che trova per un host, quindi mantieni la voce sopra qualsiasi voce `Host *` che imposti `ConnectTimeout`. Per confermare, esegui `ssh -G devbox` in un terminale sul tuo computer. Il suo output include `connecttimeout 120`. Dopo aver modificato il valore, chiudi e riapri Desktop.

1212 1214 

1213Se la macchina remota stessa attende un'approvazione sul tuo telefono, approva entro 45 secondi, qualunque sia il `ConnectTimeout` impostato. Non puoi aumentare questo limite, perché Desktop imposta da sé `ServerAliveInterval` e `ServerAliveCountMax`, e `ssh` chiude quindi un accesso in cui la macchina remota non invia nulla per quel tempo. Se invece è un jump host o un `ProxyCommand` ad attendere te, aumenta `ConnectTimeout` nella voce della macchina remota per coprire quel tempo.1215Se la tua configurazione SSH non imposta alcun `ConnectTimeout` per l'host, Desktop concede a `ssh` 30 secondi per connettersi. Tramite un jump host o un `ProxyCommand`, quel tempo include il tempo necessario al percorso per connettersi.

1216 

1217| `ConnectTimeout` | Connessione | Tempo a tua disposizione |

1218| - | - | - |

1219| Non impostato | Avvii una sessione tramite un jump host o un `ProxyCommand`, con Claude Desktop v4.4212.0 o versioni successive su macOS o Linux | 30 secondi, poi un secondo tentativo con 90 secondi. Se Desktop ti ha mostrato un prompt durante il primo tentativo, non hai un secondo tentativo. Il tempo trascorso a un prompt di accesso che Desktop mostra per un host `ProxyJump` non viene conteggiato. Le altre attese lungo il percorso sì. |

1220| Non impostato | Desktop su Windows o una versione precedente, una macchina remota che imposta `MaxSessions 1`, o una riconnessione che Desktop avvia da sé | 30 secondi. Ogni attesa lungo il percorso viene conteggiata. |

1221| Impostato | Ogni connessione e riconnessione | Il valore che hai impostato. Ogni attesa lungo il percorso viene conteggiata. |

1222 

1223Se la macchina remota stessa attende un'approvazione sul tuo telefono, approva entro 45 secondi, qualunque sia il `ConnectTimeout` impostato. Non puoi aumentare questo limite, perché Desktop imposta da sé `ServerAliveInterval` e `ServerAliveCountMax`, e `ssh` chiude quindi un accesso in cui la macchina remota non invia nulla per così tanto tempo.

1214 1224 

1215##### Correggere un blocco `Match host` che applica solo Desktop1225##### Correggere un blocco `Match host` che solo Desktop applica

1216 1226 

1217Se Desktop usa un'impostazione che `ssh devbox` in un terminale non usa, cerca un blocco `Match host` sopra la riga `HostName` della voce. In un terminale, `ssh` legge un blocco in quella posizione prima della riga `HostName`, quindi confronta il blocco con `devbox`. Desktop passa a `ssh` il valore di `HostName` sulla riga di comando, quindi `ssh` confronta il blocco con quel valore.1227Se Desktop usa un'impostazione che `ssh devbox` in un terminale non usa, cerca un blocco `Match host` sopra la riga `HostName` della voce. In un terminale, `ssh` legge un blocco posto lì prima della riga `HostName`, quindi confronta il blocco con `devbox`. Desktop passa a `ssh` il valore di `HostName` sulla riga di comando, quindi `ssh` confronta il blocco con quel valore.

1218 1228 

1219Per verificarlo, esegui `ssh -G` in un terminale sul tuo computer con i valori `HostName` e `User` della voce sulla riga di comando, come fa Desktop:1229Per verificarlo, esegui `ssh -G` in un terminale sul tuo computer con i valori `HostName` e `User` della voce sulla riga di comando, come fa Desktop:

1220 1230 


1222ssh -G -o HostName=devbox.internal.example.com -l alice devbox1232ssh -G -o HostName=devbox.internal.example.com -l alice devbox

1223```1233```

1224 1234 

1225Confronta l'output con quello di `ssh -G devbox`. Se le impostazioni del blocco, come `proxycommand`, compaiono solo nel primo output, il blocco ha effetto solo in Desktop. Per fare in modo che anche Desktop lo salti, aggiungi `!originalhost devbox` alla sua riga `Match`:1235Confronta l'output con quello di `ssh -G devbox`. Se le impostazioni del blocco, come `proxycommand`, compaiono solo nel primo output, il blocco ha effetto solo in Desktop. Per fare in modo che anche Desktop lo ignori, aggiungi `!originalhost devbox` alla sua riga `Match`:

1226 1236 

1227```text ~/.ssh/config theme={null}1237```text ~/.ssh/config theme={null}

1228Match host *.internal.example.com !originalhost devbox1238Match host *.internal.example.com !originalhost devbox


1230 1240 

1231Per confermare, esegui di nuovo il primo comando. Le impostazioni del blocco non compaiono più nel suo output.1241Per confermare, esegui di nuovo il primo comando. Le impostazioni del blocco non compaiono più nel suo output.

1232 1242 

1233##### Impostazioni di forwarding che Desktop lascia disattivate1243##### Impostazioni di inoltro che Desktop lascia disattivate

1234 1244 

1235Nella sua connessione alla macchina remota, Desktop lascia disattivati `ForwardAgent`, `ForwardX11`, `LocalForward`, `RemoteForward`, `DynamicForward` e `Tunnel`, anche dove la tua configurazione SSH li attiva. Nel [terminale](#run-commands-in-the-terminal) o in un comando `!`, aspettati che le tue impostazioni di forwarding vengano applicate [solo in alcuni casi](#limits-while-desktop-is-disconnected), perché lì Desktop può avviare un `ssh` separato che le segue.1245Sulla sua connessione alla macchina remota, Desktop lascia disattivati `ForwardAgent`, `ForwardX11`, `LocalForward`, `RemoteForward`, `DynamicForward` e `Tunnel`, anche dove la tua configurazione SSH li attiva. Nel [terminale](#run-commands-in-the-terminal) o in un comando `!`, aspettati che le tue impostazioni di inoltro si applichino [solo a volte](#limits-while-desktop-is-disconnected), perché Desktop può avviare lì un `ssh` separato che le segue.

1236 1246 

1237* **Per raggiungere una porta sulla macchina remota**: [esegui tu il forwarding](#reach-a-port-on-the-remote-machine)1247* **Per raggiungere una porta sulla macchina remota**: [inoltrala tu stesso](#reach-a-port-on-the-remote-machine)

1238* **Per usare le tue chiavi dalla macchina remota**: configura una credenziale sulla macchina remota stessa, ad esempio per `git push`1248* **Per usare le tue chiavi dalla macchina remota**: configura una credenziale sulla macchina remota stessa, ad esempio per `git push`

1239 1249 

1240Per evitare che Desktop inoltri il tuo agente SSH o una porta, esegui `ssh -G devbox` in un terminale sul tuo computer. Poi eseguilo di nuovo come può eseguirlo Desktop, con i valori `hostname` e `user` che stampa, come in `ssh -G -o HostName=devbox.internal.example.com -l alice devbox`. Il secondo output può mostrare impostazioni di un blocco `Match` che il primo salta.1250Per evitare che Desktop inoltri il tuo agente SSH o una porta, esegui `ssh -G devbox` in un terminale sul tuo computer. Poi eseguilo di nuovo come può eseguirlo Desktop, con i valori `hostname` e `user` che stampa, come in `ssh -G -o HostName=devbox.internal.example.com -l alice devbox`. Il secondo output può mostrare impostazioni di un blocco `Match` che il primo ignora.

1241 1251 

1242Cerca in entrambi gli output una riga `forwardagent` con un valore diverso da `no`, e righe che iniziano con `localforward`, `remoteforward` o `dynamicforward`. Se ne trovi una, rimuovi quell'impostazione dalla tua configurazione SSH. Fai lo stesso per un host che il tuo `ProxyCommand` raggiunge con `ssh`.1252Cerca in entrambi gli output una riga `forwardagent` con un valore diverso da `no` e righe che iniziano con `localforward`, `remoteforward` o `dynamicforward`. Se ne trovi una, rimuovi quell'impostazione dalla tua configurazione SSH. Fai lo stesso per un host che il tuo `ProxyCommand` raggiunge con `ssh`.

1243 1253 

1244#### Raggiungere una porta sulla macchina remota1254#### Raggiungere una porta sulla macchina remota

1245 1255 

1246Per aprire un server in esecuzione sulla macchina remota, ad esempio un dev server sulla porta 3000, esegui tu il forwarding della porta. In un terminale sul tuo computer, esegui `ssh` con `-L` e l'host a cui ti connetti, ad esempio `devbox`:1256Per aprire un server in esecuzione sulla macchina remota, come un dev server sulla porta 3000, inoltra tu stesso la porta. In un terminale sul tuo computer, esegui `ssh` con `-L` e l'host a cui ti connetti, ad esempio `devbox`:

1247 1257 

1248```bash theme={null}1258```bash theme={null}

1249ssh -N -L 3000:localhost:3000 devbox1259ssh -N -L 3000:localhost:3000 devbox

1250```1260```

1251 1261 

1252Se hai compilato **SSH port** o **SSH key (optional)** nella connessione, aggiungi `-p` o `-i` con lo stesso valore. Lascia quel comando in esecuzione e apri `http://localhost:3000` in un browser sul tuo computer per raggiungere la porta 3000 della macchina remota. Se `ssh` stampa `open failed: administratively prohibited`, chiedi all'amministratore della macchina di consentire il forwarding TCP, controllato da `AllowTcpForwarding` nel `sshd_config` del server SSH.1262Se hai compilato **SSH port** o **SSH key (optional)** sulla connessione, aggiungi `-p` o `-i` con lo stesso valore. Lascia in esecuzione quel comando e apri `http://localhost:3000` in un browser sul tuo computer per raggiungere la porta 3000 della macchina remota. Se `ssh` stampa `open failed: administratively prohibited`, chiedi all'amministratore della macchina di consentire l'inoltro TCP, controllato da `AllowTcpForwarding` nel `sshd_config` del server SSH.

1253 1263 

1254#### Macchine remote Windows1264#### Macchine remote Windows

1255 1265 

1256Una macchina remota Windows richiede Claude Desktop v2.31226.0 o successiva.1266Una macchina remota Windows richiede Claude Desktop v2.31226.0 o versioni successive.

1257 1267 

1258Usa OpenSSH Server di Microsoft. La macchina può essere x64 o ARM64. La shell avviata dal server SSH può essere `cmd.exe`, Windows PowerShell 5.1 o Git Bash.1268Usa OpenSSH Server di Microsoft. La macchina può essere x64 o ARM64. La shell avviata dal server SSH può essere `cmd.exe`, Windows PowerShell 5.1 o Git Bash.

1259 1269 

1260Le macchine remote Windows vengono testate meno di quelle Linux. Prova il tuo lavoro lì prima di farvi affidamento.1270Le macchine remote Windows sono meno testate di quelle Linux. Prova il tuo lavoro su di esse prima di farvi affidamento.

1261 1271 

1262Aspettati queste limitazioni, tra le altre, su una macchina remota Windows:1272Aspettati, tra gli altri, questi limiti su una macchina remota Windows:

1263 1273 

1264* **Terminale**: il [terminale](#run-commands-in-the-terminal) non si apre in una sessione la cui cartella è un percorso Windows, come `C:/projects/app`1274* **Terminale**: il [terminale](#run-commands-in-the-terminal) non si apre in una sessione la cui cartella è un percorso Windows, come `C:/projects/app`

1265* **Sandbox**: lì Claude Code viene eseguito su Windows nativo, dove esegue i comandi senza sandbox. Consulta [dove viene eseguita la sandbox](https://code.claude.com/docs/it/sandboxing.md).1275* **Sandbox**: Claude Code viene eseguito lì su Windows nativo, dove esegue i comandi senza sandbox. Consulta [dove viene eseguita la sandbox](https://code.claude.com/docs/it/sandboxing.md).

1266* **Plugin**: Desktop non copia un plugin che contiene un nome di file o cartella che Windows non può memorizzare, ad esempio un nome con `:`. La sessione elenca i plugin che Desktop ha escluso.1276* **Plugin**: Desktop non copia un plugin che contiene un nome di file o cartella che Windows non può memorizzare, come un nome con `:`. La sessione elenca i plugin che Desktop ha escluso.

1267* **Server MCP**: su alcune macchine remote Windows, le chiamate di Claude ai server MCP da `claude_desktop_config.json` passano attraverso Desktop, quindi Claude non può chiamare i loro strumenti [mentre Desktop è disconnesso](#limits-while-desktop-is-disconnected). Prima di Claude Desktop v2.37337.0, questo vale su tutte le macchine remote Windows.1277* **Server MCP**: su alcune macchine remote Windows, le chiamate di Claude ai server MCP da `claude_desktop_config.json` passano attraverso Desktop, quindi Claude non può chiamare i loro strumenti [mentre Desktop è disconnesso](#limits-while-desktop-is-disconnected). Prima di Claude Desktop v2.37337.0, questo vale su ogni macchina remota Windows.

1268* **Worktree**: i worktree vengono creati in `<project-root>/.claude/worktrees/`. Se [scegli un'altra cartella](#choose-where-ssh-session-worktrees-go), Desktop la ignora.1278* **Worktree**: i worktree vanno in `<project-root>/.claude/worktrees/`. Se [scegli un'altra cartella](#choose-where-ssh-session-worktrees-go), Desktop la ignora.

1269* **Messaggi precedenti**: se la shell del server SSH è `cmd.exe` o Windows PowerShell, potresti doverti connettere prima di vedere i messaggi precedenti di una sessione1279* **Messaggi precedenti**: se la shell del server SSH è `cmd.exe` o Windows PowerShell, potresti dover connetterti prima di vedere i messaggi precedenti di una sessione

1270* **Fork**: se la shell del server SSH è `cmd.exe` o Windows PowerShell, puoi creare un fork di una sessione solo dal suo primo messaggio1280* **Fork**: se la shell del server SSH è `cmd.exe` o Windows PowerShell, puoi creare un fork di una sessione solo dal suo primo messaggio

1271* **Esecuzione durante la disconnessione**: un'attività [continua a essere eseguita mentre Desktop è disconnesso](#keep-a-task-running-while-desktop-is-disconnected) solo se il server SSH consente a un programma di sopravvivere alla connessione che lo ha avviato. Per scoprirlo, [testa la macchina remota](#prepare-a-long-task).1281* **Esecuzione durante la disconnessione**: un'attività [continua a essere eseguita mentre Desktop è disconnesso](#keep-a-task-running-while-desktop-is-disconnected) solo se il server SSH consente a un programma di sopravvivere alla connessione che lo ha avviato. Per scoprirlo, [testa la macchina remota](#prepare-a-long-task).

1272* **Processi residui**: al termine di una sessione, controlla sulla macchina i programmi avviati da Claude Code, perché possono continuare a essere eseguiti. L'[helper in background](#keep-a-task-running-while-desktop-is-disconnected) installato da Desktop non si arresta da solo lì.1282* **Processi residui**: al termine di una sessione, controlla sulla macchina se ci sono programmi avviati da Claude Code, perché possono continuare a essere eseguiti. Il [programma di supporto in background](#keep-a-task-running-while-desktop-is-disconnected) installato da Desktop non si arresta da solo lì.

1273 1283 

1274#### Mantenere un'attività in esecuzione mentre Desktop è disconnesso1284#### Mantenere un'attività in esecuzione mentre Desktop è disconnesso

1275 1285 

1276Se il tuo computer va in sospensione, perdi la connessione di rete o chiudi Desktop, l'attività prosegue finché non termina, non ha bisogno di te o non raggiunge uno dei [limiti](#limits-while-desktop-is-disconnected). Chiudere il coperchio equivale alla sospensione. Un riavvio di Desktop o del computer, anche per un aggiornamento, equivale a una chiusura.1286Se il tuo computer va in sospensione, perdi la connessione di rete o chiudi Desktop, l'attività continua finché non termina, non ha bisogno di te o non raggiunge uno dei [limiti](#limits-while-desktop-is-disconnected). Chiudere il coperchio conta come sospensione. Un riavvio di Desktop o del computer, anche per un aggiornamento, conta come chiusura.

1277 1287 

1278Claude Code viene eseguito come processo sulla macchina remota, sotto un helper in background che Desktop installa lì, quindi non ha bisogno della tua connessione SSH per continuare. Il comportamento descritto in questa sezione richiede Claude Desktop v2.31226.0 o successiva.1288Claude Code viene eseguito come processo sulla macchina remota, sotto un programma di supporto in background che Desktop installa lì, quindi non ha bisogno della tua connessione SSH per continuare a funzionare. Il comportamento descritto in questa sezione richiede Claude Desktop v2.31226.0 o versioni successive.

1279 1289 

1280> [!WARNING]1290> [!WARNING]

1281>1291>

1282> Se accedi a Desktop con un account Claude, non contare sul fatto che un'attività venga eseguita durante la notte. Desktop rinnova l'accesso per l'attività solo mentre Desktop è in esecuzione e connesso, quindi l'accesso dell'attività può scadere dopo la disconnessione, e l'attività si interrompe. Il tempo rimanente al momento della disconnessione varia e può essere di pochi minuti.1292> Se accedi a Desktop con un account Claude, non contare sul fatto che un'attività venga eseguita per tutta la notte. Desktop rinnova quell'accesso per l'attività solo mentre Desktop è in esecuzione e connesso, quindi l'accesso dell'attività può scadere dopo la disconnessione, e l'attività si interrompe. Il tempo rimanente al momento della disconnessione varia e può essere di pochi minuti soltanto.

1283>1293>

1284> Il lavoro svolto fino a quel momento resta sulla macchina remota e puoi continuare con un messaggio quando torni.1294> Il lavoro svolto fino a quel momento rimane sulla macchina remota e puoi continuare con un messaggio quando torni.

1285>1295>

1286> Se l'attività deve essere eseguita per tutta la notte:1296> Se l'attività deve essere eseguita per tutta la notte:

1287>1297>

1288> * [Mantieni il computer attivo](https://code.claude.com/docs/it/desktop-scheduled-tasks.md#how-scheduled-tasks-run) e online, con il coperchio aperto e Desktop in esecuzione1298> * [Mantieni il computer attivo](https://code.claude.com/docs/it/desktop-scheduled-tasks.md#how-scheduled-tasks-run) e online, con il coperchio aperto e Desktop in esecuzione

1289> * Usa un accesso che funzioni senza prompt, ad esempio una chiave detenuta dal tuo agente SSH, per la macchina remota e per qualsiasi jump host lungo il percorso. Desktop potrà così riconnettersi da solo dopo un'interruzione.1299> * Usa un accesso che funzioni senza prompt, come una chiave conservata dal tuo agente SSH, per la macchina remota e per ogni jump host lungo il percorso. Desktop può quindi riconnettersi da solo dopo un'interruzione.

1290>1300>

1291> Per un'attività che deve essere eseguita mentre il computer è in sospensione o spento, avvia invece una [sessione cloud](#run-long-running-tasks-in-the-cloud).1301> Per un'attività che deve essere eseguita mentre il computer è in sospensione o spento, avvia invece una [sessione cloud](#run-long-running-tasks-in-the-cloud).

1292 1302 

1293* **Dopo la sospensione o una perdita di rete**: recuperi l'attività in esecuzione se il processo [è ancora in esecuzione](#limits-while-desktop-is-disconnected) e Desktop può accedere senza prompt. In caso contrario, [invia un messaggio](#reconnect-after-sleep-or-a-network-loss).1303* **Dopo una sospensione o una perdita di rete**: recuperi l'attività in esecuzione se il processo [è ancora in esecuzione](#limits-while-desktop-is-disconnected) e Desktop può accedere senza prompt. Se non può, [invia un messaggio](#reconnect-after-sleep-or-a-network-loss).

1294* **Dopo una chiusura**: l'attività continua a essere eseguita, ma la perdi quando la sessione si riapre, a meno che Desktop non possa ricollegarsi al suo processo. Verifica [quando Desktop può ricollegarsi](#reopen-a-session-after-you-quit-desktop) prima di chiudere. Se hai perso l'attività, invia un messaggio per continuare.1304* **Dopo una chiusura**: l'attività continua a essere eseguita, ma la perdi quando la sessione si riapre, a meno che Desktop non possa ricollegarsi al suo processo. Verifica [quando Desktop può ricollegarsi](#reopen-a-session-after-you-quit-desktop) prima di chiudere. Se hai perso l'attività, invia un messaggio per continuare.

1295 1305 

1296Quando torni e l'attività non è completata, controlla se c'è un avviso che Desktop non riesce a riconnettersi, un errore di autenticazione o una richiesta in attesa:1306Quando torni e l'attività non è terminata, controlla se ci sono avvisi che Desktop non riesce a riconnettersi, un errore di autenticazione o una richiesta in attesa:

1297 1307 

1298* **Desktop non riesce a riconnettersi**: la sessione indica il motivo, e anche una notifica potrebbe indicarlo. Desktop potrebbe [aver bisogno che tu acceda](#reconnect-after-sleep-or-a-network-loss).1308* **Desktop non riesce a riconnettersi**: la sessione indica il motivo, e può farlo anche una notifica. Desktop potrebbe [aver bisogno che tu effettui l'accesso](#reconnect-after-sleep-or-a-network-loss).

1299* **Errore di autenticazione**: il [token di accesso o la credenziale](#limits-while-desktop-is-disconnected) potrebbe essere scaduto. Con un account Claude, invia un messaggio per continuare. Con un provider di terze parti, consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).1309* **Errore di autenticazione**: il [token di accesso o la credenziale](#limits-while-desktop-is-disconnected) potrebbe essere scaduto. Con un account Claude, invia un messaggio per continuare. Con un provider di terze parti, consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).

1300* **Richiesta in attesa**: [rispondi](#handle-requests-that-arrive-while-you-are-away)1310* **Richiesta in attesa**: [rispondi](#handle-requests-that-arrive-while-you-are-away)

1301* **Nessuno di questi**: invia un messaggio per continuare1311* **Nessuno di questi casi**: invia un messaggio per continuare

1302 1312 

1303##### Preparare un'attività lunga1313##### Preparare un'attività lunga

1304 1314 

1305* **Aggiorna prima**: aggiorna Desktop prima di avviare un'attività lunga. Su macOS e Windows, Desktop può riavviarsi da solo per installare un aggiornamento che ha scaricato. Quel riavvio attende mentre Claude sta lavorando a un'attività SSH. Per impostazione predefinita, dopo che l'aggiornamento ha atteso 72 ore, il riavvio può avvenire durante l'attività se Desktop può [ricollegarsi all'attività in seguito](#reopen-a-session-after-you-quit-desktop).1315* **Aggiorna prima**: aggiorna Desktop prima di avviare un'attività lunga. Su macOS e Windows, Desktop può riavviarsi da solo per installare un aggiornamento che ha scaricato. Quel riavvio attende mentre Claude lavora a un'attività SSH. Per impostazione predefinita, dopo che l'aggiornamento ha atteso 72 ore, il riavvio può avvenire durante l'attività se Desktop può [ricollegarsi all'attività in seguito](#reopen-a-session-after-you-quit-desktop).

1306* **Verifica prima di chiudere**: non sempre recuperi l'attività in esecuzione dopo una chiusura o un riavvio, ad esempio dopo alcuni aggiornamenti di Desktop. Per i casi specifici, consulta [Riaprire una sessione dopo aver chiuso Desktop](#reopen-a-session-after-you-quit-desktop).1316* **Verifica prima di chiudere**: non sempre recuperi l'attività in esecuzione dopo una chiusura o un riavvio, ad esempio dopo alcuni aggiornamenti di Desktop. Per i casi specifici, consulta [Riaprire una sessione dopo aver chiuso Desktop](#reopen-a-session-after-you-quit-desktop).

1307* **Su una versione precedente, lascia Desktop aperto**: su Windows con Claude Desktop precedente alla v3.1623.0, non recuperi l'attività in esecuzione dopo che Desktop si chiude o si riavvia. Lo stesso vale con un provider di terze parti su macOS o Linux prima della v2.42304.0. In entrambi i casi, lascia Desktop aperto durante l'attività. Per trovare la tua versione, consulta [Verificare la versione](#check-your-version).1317* **Su una versione precedente, lascia Desktop aperto**: su Windows con Claude Desktop precedente alla v3.1623.0, non recuperi l'attività in esecuzione dopo che Desktop si chiude o si riavvia. Lo stesso vale con un provider di terze parti su macOS o Linux prima della v2.42304.0. In entrambi i casi, lascia Desktop aperto durante l'attività. Per trovare la tua versione, consulta [Verificare la versione](#check-your-version).

1308* **Riduci le richieste**: scegli una modalità di permesso, regole o hook che [facciano attendere meno spesso l'attività](#handle-requests-that-arrive-while-you-are-away)1318* **Riduci le richieste**: scegli una modalità di permesso, regole o hook che [facciano attendere meno spesso l'attività](#handle-requests-that-arrive-while-you-are-away)

1309* **Controlla il jump host**: se il tuo jump host chiede un accesso, ad esempio una notifica push su un telefono, passa a un accesso che funzioni senza prompt. Altrimenti Desktop può inviare un'altra notifica push ogni volta che tenta di riconnettersi.1319* **Controlla il jump host**: se il tuo jump host chiede un accesso, ad esempio una notifica push sul telefono, passa a un accesso che funzioni senza prompt. Altrimenti Desktop può inviare un'altra notifica push ogni volta che tenta di riconnettersi.

1310* **Testa la macchina remota**: avvia un'attività breve, chiudi Desktop mentre l'attività è ancora in esecuzione e riapri la sessione molto dopo il momento in cui l'attività dovrebbe essere completata. Se l'attività non è finita e la sessione non mostra errori di autenticazione, controlla sulla macchina remota [cosa può terminare un'attività](#limits-while-desktop-is-disconnected).1320* **Testa la macchina remota**: avvia un'attività breve, chiudi Desktop mentre l'attività è ancora in esecuzione e riapri la sessione ben dopo il momento in cui l'attività dovrebbe essere terminata. Se l'attività non è terminata e la sessione non mostra alcun errore di autenticazione, controlla sulla macchina remota [cosa può terminare un'attività](#limits-while-desktop-is-disconnected).

1311* **Tieni i comandi fuori dal terminale di Desktop**: se la macchina remota [disconnette i terminali inattivi](#limits-while-desktop-is-disconnected), esegui i tuoi comandi da un accesso SSH esterno a Desktop1321* **Tieni i comandi fuori dal terminale di Desktop**: se la macchina remota [disconnette i terminali inattivi](#limits-while-desktop-is-disconnected), esegui i tuoi comandi da un accesso SSH esterno a Desktop

1312 1322 

1313##### Limiti mentre Desktop è disconnesso1323##### Limiti mentre Desktop è disconnesso

1314 1324 

1315Un'attività che lasci in esecuzione può terminare quando il suo accesso scade, quando la macchina remota la termina, oppure quando l'helper si arresta o viene sostituito:1325Un'attività che lasci in esecuzione può terminare quando il suo accesso scade, quando la macchina remota la termina, oppure quando il programma di supporto si arresta o viene sostituito:

1316 1326 

1317* **Token di accesso o credenziale**: con un account Claude, l'attività si interrompe con un errore di autenticazione quando il token scade. Con un provider di terze parti, lo stesso vale per una credenziale che scade, ad esempio una proveniente dal single sign-on o da un credential helper. Consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions). Con un account Claude, [mantieni Desktop in esecuzione e connesso](#keep-a-task-running-while-desktop-is-disconnected) così che possa rinnovare l'accesso.1327* **Token di accesso o credenziale**: con un account Claude, l'attività si interrompe con un errore di autenticazione quando il token scade. Con un provider di terze parti, lo stesso vale per una credenziale che scade, come una ottenuta tramite single sign-on o un credential helper. Consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions). Con un account Claude, [mantieni Desktop in esecuzione e connesso](#keep-a-task-running-while-desktop-is-disconnected) in modo che possa rinnovare l'accesso.

1318* **La macchina remota**: se la macchina remota si riavvia, o termina i tuoi processi quando la connessione SSH si chiude, l'attività in esecuzione termina. Nulla la riavvia mentre Desktop è disconnesso. Le macchine Linux in cui `KillUserProcesses` di systemd-logind è `yes` e si applica al tuo utente terminano i tuoi processi in questo modo. Per mantenere un'attività in esecuzione lì, chiedi all'amministratore di escludere il tuo utente, ad esempio con `KillExcludeUsers`.1328* **La macchina remota**: se la macchina remota si riavvia, o termina i tuoi processi quando la connessione SSH si chiude, l'attività in esecuzione termina. Nulla la riavvia mentre Desktop è disconnesso. Le macchine Linux in cui `KillUserProcesses` di systemd-logind è `yes` e si applica al tuo utente terminano i tuoi processi in questo modo. Per mantenere un'attività in esecuzione lì, chiedi all'amministratore di escludere il tuo utente, ad esempio con `KillExcludeUsers`.

1319* **Terminali inattivi**: alcune macchine remote Linux disconnettono un terminale in cui nessuno digita per un tempo prestabilito (`StopIdleSessionSec` di systemd-logind). Con Desktop su macOS o Linux, il [terminale](#run-commands-in-the-terminal) di una sessione e i comandi `!` condividono per impostazione predefinita la connessione SSH di Desktop. Quella disconnessione termina quindi la connessione mentre Desktop è connesso, e l'attività in esecuzione può terminare con essa. Chiudere il riquadro del terminale non lo impedisce, quindi [tieni i comandi fuori da quel terminale](#prepare-a-long-task).1329* **Terminali inattivi**: alcune macchine remote Linux disconnettono un terminale in cui nessuno digita per un tempo stabilito (`StopIdleSessionSec` di systemd-logind). Con Desktop su macOS o Linux, il [terminale](#run-commands-in-the-terminal) di una sessione e i comandi `!` condividono per impostazione predefinita la connessione SSH di Desktop. Quella disconnessione termina quindi la connessione mentre Desktop è connesso, e l'attività in esecuzione può terminare con essa. Chiudere il riquadro del terminale non lo impedisce, quindi [tieni i comandi fuori da quel terminale](#prepare-a-long-task).

1320* **Aggiornamenti di Desktop**: se un aggiornamento porta un nuovo helper, Desktop sostituisce l'helper sulla macchina remota in una connessione successiva, il che può terminare un'attività ancora in esecuzione1330* **Aggiornamenti di Desktop**: se un aggiornamento include un nuovo programma di supporto, Desktop sostituisce il programma di supporto sulla macchina remota a una connessione successiva, il che può terminare un'attività ancora in esecuzione

1321* **Assenze prolungate**: su una macchina remota Linux o macOS, se Desktop non si connette per 30 giorni, l'helper si arresta e termina ogni processo Claude Code in esecuzione sotto di esso. Connettiti prima di allora.1331* **Assenze prolungate**: su una macchina remota Linux o macOS, se Desktop non si connette per 30 giorni, il programma di supporto si arresta e termina ogni processo di Claude Code eseguito sotto di esso. Connettiti prima di allora.

1322 1332 

1323Le modifiche ai file e alcuni strumenti possono non riuscire mentre Desktop è disconnesso. Se l'attività ne ha bisogno, mantieni Desktop connesso:1333Le modifiche ai file e alcuni strumenti possono non riuscire mentre Desktop è disconnesso. Se l'attività ne ha bisogno, mantieni Desktop connesso:

1324 1334 

1325* **Worktree**: in una sessione che usa un [worktree](#run-a-session-in-its-own-worktree), Desktop controlla ogni modifica ai file prima che Claude la esegua. Mentre Desktop è disconnesso, ogni modifica attende circa 30 secondi e poi non riesce. I comandi della shell vengono comunque eseguiti. Su una macchina remota Linux o macOS, [le modifiche possono continuare a funzionare](#worktree-edits-while-disconnected). Se non sei sicuro, avvia la sessione senza un worktree.1335* **Worktree**: in una sessione che usa un [worktree](#run-a-session-in-its-own-worktree), Desktop controlla ogni modifica ai file prima che Claude la esegua. Mentre Desktop è disconnesso, ogni modifica attende circa 30 secondi e poi non riesce. I comandi della shell vengono comunque eseguiti. Su una macchina remota Linux o macOS, [le modifiche possono continuare a funzionare](#worktree-edits-while-disconnected). Se non sei sicuro, avvia la sessione senza un worktree.

1326* **Restrizioni sulle cartelle**: se la tua organizzazione limita le cartelle che le sessioni possono usare, Desktop controlla ogni lettura, ricerca e modifica di file, con o senza un worktree. Mentre Desktop è disconnesso, ciascuna attende fino a 10 minuti e poi non riesce.1336* **Restrizioni sulle cartelle**: se la tua organizzazione limita le cartelle che le sessioni possono usare, Desktop controlla ogni lettura, ricerca e modifica di file, con o senza worktree. Mentre Desktop è disconnesso, ciascuna attende fino a 10 minuti e poi non riesce.

1327* **Connettori**: i [connettori](#connect-external-tools) e gli altri strumenti forniti da Desktop passano attraverso Desktop, quindi mentre è disconnesso ogni chiamata non riesce dopo circa 30 secondi1337* **Connettori**: i [connettori](#connect-external-tools) e gli altri strumenti forniti da Desktop passano attraverso Desktop, quindi mentre è disconnesso ogni chiamata non riesce dopo circa 30 secondi

1328* **Workflow**: Desktop controlla ogni nuovo [workflow](https://code.claude.com/docs/it/workflows.md) prima che venga avviato, quindi mentre Desktop è disconnesso un nuovo workflow attende fino a 10 minuti e poi non riesce1338* **Workflow**: Desktop controlla ogni nuovo [workflow](https://code.claude.com/docs/it/workflows.md) prima che inizi, quindi mentre Desktop è disconnesso un nuovo workflow attende fino a 10 minuti e poi non riesce

1329* **Server MCP**: i server MCP che Claude Code avvia sulla macchina remota non passano attraverso Desktop, quindi Claude può ancora chiamare i loro strumenti. I server da `claude_desktop_config.json` rientrano tra questi solo se Desktop non usa il suo [client SSH integrato](#worktree-edits-while-disconnected). Altrimenti, e su [alcune macchine remote Windows](#windows-remote-machines), Claude non può chiamare i loro strumenti mentre Desktop è disconnesso.1339* **Server MCP**: i server MCP che Claude Code avvia sulla macchina remota non passano attraverso Desktop, quindi Claude può comunque chiamare i loro strumenti. I server da `claude_desktop_config.json` rientrano tra questi solo se Desktop non usa il suo [client SSH integrato](#worktree-edits-while-disconnected). Altrimenti, e su [alcune macchine remote Windows](#windows-remote-machines), Claude non può chiamare i loro strumenti mentre Desktop è disconnesso.

1330 1340 

1331> [accordion] Quando le modifiche in un worktree continuano a funzionare1341> [accordion] Quando le modifiche in un worktree continuano a funzionare

1332>1342>


1334>1344>

1335> Le modifiche non riescono comunque in alcuni casi, tra cui questi:1345> Le modifiche non riescono comunque in alcuni casi, tra cui questi:

1336>1346>

1337> * **Client SSH integrato**: Desktop lo usa, ad esempio in un'installazione dal Microsoft Store, su un computer Windows senza OpenSSH di Microsoft 9.4 o successiva, oppure per impostazione predefinita su Windows con un provider di terze parti1347> * **Client SSH integrato**: Desktop lo usa, ad esempio in un'installazione dal Microsoft Store, o su un computer Windows senza OpenSSH di Microsoft 9.4 o versioni successive

1338> * **Posizione del repository**: il repository è la tua directory home, una cartella al di sopra di essa, oppure `~/.claude`1348> * **Posizione del repository**: il repository è la tua directory home, una cartella al di sopra di essa, oppure `~/.claude`

1339> * **Percorsi macOS**: su una macchina remota macOS, il repository si trova in `/Volumes`, oppure un nome di cartella nel percorso del repository o del worktree contiene un `~` o un carattere non ASCII1349> * **Percorsi macOS**: su una macchina remota macOS, il repository si trova in `/Volumes`, oppure il nome di una cartella nel percorso del repository o del worktree contiene un `~` o un carattere non ASCII

1340> * **Restrizioni sulle cartelle**: la tua organizzazione limita le cartelle che le sessioni possono usare1350> * **Restrizioni sulle cartelle**: la tua organizzazione limita le cartelle che le sessioni possono usare

1341> * **Launcher aziendale**: prima di Claude Desktop v2.37337.0, accedi con un account Claude e la tua organizzazione avvia Claude Code sulla macchina remota tramite un [launcher aziendale](https://code.claude.com/docs/it/corporate-launcher.md)1351> * **Launcher aziendale**: prima di Claude Desktop v2.37337.0, accedi con un account Claude e la tua organizzazione avvia Claude Code sulla macchina remota tramite un [launcher aziendale](https://code.claude.com/docs/it/corporate-launcher.md)

1342>1352>

1343> Una sessione senza worktree non prevede questo controllo, a meno che la tua organizzazione non limiti le cartelle che le sessioni possono usare.1353> Una sessione senza worktree non ha questo controllo, a meno che la tua organizzazione non limiti le cartelle che le sessioni possono usare.

1344 1354 

1345##### Gestire le richieste che arrivano mentre sei via1355##### Gestire le richieste che arrivano mentre sei assente

1346 1356 

1347Se Claude ha bisogno della tua approvazione o ti fa una domanda mentre Desktop è disconnesso, Claude attende sulla macchina remota. L'attesa non ha un limite di tempo proprio. Quando Desktop si ricollega al processo, ti mostra la richiesta. Se invece Desktop avvia un nuovo processo, perdi la richiesta.1357Se Claude ha bisogno della tua approvazione o ti fa una domanda mentre Desktop è disconnesso, Claude attende sulla macchina remota. L'attesa non ha un limite di tempo proprio. Quando Desktop si ricollega al processo, ti mostra la richiesta. Se invece Desktop avvia un nuovo processo, perdi la richiesta.

1348 1358 

1349Se una richiesta che ti attendeva non c'è più quando torni, una causa è che Desktop si è riavviato da solo, ad esempio per installare un aggiornamento. Mantieni una richiesta attraverso un riavvio solo se Desktop può ricollegarsi al processo, quindi verifica [quando Desktop può ricollegarsi](#reopen-a-session-after-you-quit-desktop) prima di lasciare un'attività in esecuzione.1359Se una richiesta che ti attendeva non c'è più quando torni, una causa è che Desktop si è riavviato da solo, ad esempio per installare un aggiornamento. Conservi una richiesta durante un riavvio solo se Desktop può ricollegarsi al processo, quindi verifica [quando Desktop può ricollegarsi](#reopen-a-session-after-you-quit-desktop) prima di lasciare un'attività in esecuzione.

1350 1360 

1351Se perdi una richiesta, invia un messaggio per continuare.1361Se perdi una richiesta, invia un messaggio per continuare.

1352 1362 

1353Per ridurre la frequenza con cui un'attività si ferma ad attenderti, e per ricevere sue notizie mentre sei via, configura uno di questi elementi prima di andartene:1363Per ridurre la frequenza con cui un'attività si ferma ad aspettarti, e per ricevere notizie mentre sei assente, configura uno qualsiasi di questi elementi prima di allontanarti:

1354 1364 

1355* **Modalità auto**: scegli la [modalità auto](#choose-a-permission-mode) se [è disponibile per te](#auto-mode-availability). Dopo blocchi ripetuti, [ti viene chiesto di nuovo](https://code.claude.com/docs/it/permission-modes.md#when-auto-mode-falls-back).1365* **Modalità auto**: scegli la [modalità auto](#choose-a-permission-mode) se [è disponibile per te](#auto-mode-availability). Dopo blocchi ripetuti, [ti viene chiesto di nuovo](https://code.claude.com/docs/it/permission-modes.md#when-auto-mode-falls-back).

1356* **Regole di autorizzazione**: nel tuo file di impostazioni utente sulla macchina remota, `~/.claude/settings.json`, aggiungi [regole allow](https://code.claude.com/docs/it/permissions.md#manage-permissions) per i comandi di cui l'attività ha bisogno. Se la tua organizzazione [accetta regole di permesso solo dalle impostazioni gestite](https://code.claude.com/docs/it/settings-reference.md#allowmanagedpermissionrulesonly), chiedi al tuo amministratore di aggiungerle alle [impostazioni gestite](#managed-settings) che raggiungono la macchina remota. Per le regole allow nel `.claude/settings.json` di un progetto, consulta [Regole allow del progetto e attendibilità del workspace](https://code.claude.com/docs/it/permissions.md#project-allow-rules-and-workspace-trust).1366* **Regole di autorizzazione**: nel tuo file di impostazioni utente sulla macchina remota, `~/.claude/settings.json`, aggiungi [regole allow](https://code.claude.com/docs/it/permissions.md#manage-permissions) per i comandi di cui l'attività ha bisogno. Se la tua organizzazione [accetta regole di permesso solo dalle impostazioni gestite](https://code.claude.com/docs/it/settings-reference.md#allowmanagedpermissionrulesonly), chiedi all'amministratore di aggiungerle alle [impostazioni gestite](#managed-settings) che raggiungono la macchina remota. Per le regole allow nel `.claude/settings.json` di un progetto, consulta [Regole allow del progetto e attendibilità del workspace](https://code.claude.com/docs/it/permissions.md#project-allow-rules-and-workspace-trust).

1357* **Un hook che risponde**: configura un [hook `PermissionRequest`](https://code.claude.com/docs/it/hooks#permissionrequest) in `~/.claude/settings.json` sulla macchina remota per consentire o negare le richieste al posto tuo1367* **Un hook che risponde**: configura un [hook `PermissionRequest`](https://code.claude.com/docs/it/hooks#permissionrequest) in `~/.claude/settings.json` sulla macchina remota per consentire o negare le richieste al posto tuo

1358* **Un hook che ti avvisa**: configura un [hook `Notification`](https://code.claude.com/docs/it/hooks#notification) con il matcher `permission_prompt` nello stesso file per inviarti un messaggio quando una richiesta è in attesa1368* **Un hook che ti avvisa**: configura un [hook `Notification`](https://code.claude.com/docs/it/hooks#notification) con il matcher `permission_prompt` nello stesso file per inviarti un messaggio quando una richiesta è in attesa

1359* **Un hook che ti dice quando Claude ha finito**: configura un [hook `Stop`](https://code.claude.com/docs/it/hooks#stop) nello stesso file per inviarti un messaggio quando Claude ha finito di rispondere. Non viene eseguito quando un errore dell'API termina il turno. Per quel caso, configura un [hook `StopFailure`](https://code.claude.com/docs/it/hooks#stopfailure).1369* **Un hook che ti dice quando Claude ha finito**: configura un [hook `Stop`](https://code.claude.com/docs/it/hooks#stop) nello stesso file per inviarti un messaggio quando Claude ha finito di rispondere. Non viene eseguito quando un errore dell'API termina il turno. Per quel caso, configura un [hook `StopFailure`](https://code.claude.com/docs/it/hooks#stopfailure).

1360 1370 

1361Se la tua organizzazione [esegue solo hook gestiti](https://code.claude.com/docs/it/settings-reference.md#allowmanagedhooksonly), chiedi al tuo amministratore di aggiungere l'hook alle [impostazioni gestite](#managed-settings) che raggiungono la macchina remota.1371Se la tua organizzazione [esegue solo hook gestiti](https://code.claude.com/docs/it/settings-reference.md#allowmanagedhooksonly), chiedi all'amministratore di aggiungere l'hook alle [impostazioni gestite](#managed-settings) che raggiungono la macchina remota.

1362 1372 

1363Claude Code non approva automaticamente [alcune azioni](https://code.claude.com/docs/it/permission-modes.md#actions-no-mode-auto-approves) in nessuna modalità di permesso, incluso Bypass permissions. A seconda della modalità di permesso, Claude Code nega tale azione o te la chiede, e l'attività attende quindi la tua risposta.1373Claude Code non approva automaticamente [alcune azioni](https://code.claude.com/docs/it/permission-modes.md#actions-no-mode-auto-approves) in nessuna modalità di permesso, inclusa Bypass permissions. A seconda della modalità di permesso, Claude Code nega tale azione o te lo chiede, e l'attività attende quindi la tua risposta.

1364 1374 

1365##### Riconnettersi dopo la sospensione o una perdita di rete1375##### Riconnettersi dopo una sospensione o una perdita di rete

1366 1376 

1367Se Desktop non si è riconnesso quando torni, invia un messaggio nella sessione. Desktop si riconnette da solo solo dove può accedere senza prompt, ad esempio con una chiave detenuta dal tuo agente SSH.1377Se Desktop non si è riconnesso quando torni, invia un messaggio nella sessione. Desktop si riconnette da solo solo dove può accedere senza prompt, ad esempio con una chiave conservata dal tuo agente SSH.

1368 1378 

1369* **Password memorizzata**: anche una password che lasci memorizzare a Desktop funziona senza prompt, ma per un'assenza prolungata è preferibile una chiave detenuta dal tuo agente SSH. Se gli accessi con quella password si interrompono o si bloccano, Desktop può smettere di riconnettersi e attenderti.1379* **Password memorizzata**: anche una password che hai lasciato memorizzare a Desktop funziona senza prompt, ma per un'assenza prolungata preferisci una chiave conservata dal tuo agente SSH. Se gli accessi con quella password si interrompono o si bloccano, Desktop può smettere di riconnettersi e attenderti.

1370* **Qualsiasi altro prompt**: se la macchina remota chiede qualcos'altro, ad esempio un codice monouso, puoi ricevere una notifica sul tuo computer. Fai clic sulla notifica, oppure invia un messaggio nella sessione, e Desktop mostra il prompt.1380* **Qualsiasi altro prompt**: se la macchina remota chiede qualcos'altro, come un codice monouso, puoi ricevere una notifica sul tuo computer. Fai clic sulla notifica, o invia un messaggio nella sessione, e Desktop mostra il prompt.

1371 1381 

1372> [accordion] Se un jump host chiede un accesso, l'interruzione è lunga, manca dell'output o il processo non c'è più1382> [accordion] Se un jump host chiede un accesso, l'interruzione è lunga, un messaggio non viene inviato, manca l'output o il processo non c'è più

1373>1383>

1374> * **Jump host, le notifiche push si interrompono mentre sei via**: questo può accadere con Desktop su macOS o Linux quando nessuno risponde alla richiesta di accesso di un jump host, ad esempio una notifica push su un telefono. Desktop smette quindi di riconnettersi mentre nessuno è al tuo computer. Quando sblocchi o usi il computer, puoi ricevere un'altra notifica push, perché Desktop può riprovare. Dopo tre tentativi senza risposta, attende finché non riprovi o invii un messaggio.1384> * **Jump host, le notifiche push si interrompono mentre sei assente**: può succedere con Desktop su macOS o Linux quando nessuno risponde alla richiesta di accesso di un jump host, ad esempio una notifica push sul telefono. Desktop smette quindi di riconnettersi mentre nessuno è al tuo computer. Quando sblocchi o usi il computer, puoi ricevere un'altra notifica push, perché Desktop può riprovare. Dopo tre tentativi senza risposta, attende finché non riprovi o invii un messaggio.

1375> * **Jump host, le notifiche push continuano ad arrivare**: dove Desktop non può capire che nessuno risponde, come con Desktop su Windows, continua a tentare finché ha un processo a cui ricollegarsi, che quel processo sia ancora in esecuzione o meno. Puoi ricevere un'altra notifica push a ogni tentativo. Per interrompere i tentativi, chiudi Desktop, il che [può farti perdere l'attività in esecuzione](#reopen-a-session-after-you-quit-desktop).1385> * **Jump host, le notifiche push continuano ad arrivare**: dove Desktop non può capire che nessuno risponde, come con Desktop su Windows, continua a tentare finché ha un processo a cui ricollegarsi, che quel processo sia ancora in esecuzione o meno. Puoi ricevere un'altra notifica push a ogni tentativo. Per interrompere i tentativi, chiudi Desktop, il che [può farti perdere l'attività in esecuzione](#reopen-a-session-after-you-quit-desktop).

1376> * **Interruzione lunga**: Desktop rallenta fino a circa un tentativo ogni cinque minuti. Per riconnetterti prima, riprova nella sessione o invia un messaggio, che Desktop recapita non appena è connesso.1386> * **Interruzione lunga**: Desktop rallenta a circa un tentativo ogni cinque minuti. Per riconnetterti prima, riprova nella sessione o invia un messaggio. Desktop tenta di consegnare il messaggio una volta connesso.

1377> * **Output mancante**: mentre Desktop è disconnesso, l'helper conserva l'output più recente di Claude Code di ogni sessione in un buffer da 16 MiB e scarta l'output più vecchio. Dopo che Desktop si è riconnesso, la sessione può mostrare `Loading recent output from <host>…`. Se Desktop non riesce a caricare tutto l'output, vedi la riga `Some output produced while you were disconnected may be missing here.` La riga non significa che l'attività si sia interrotta.1387> * **Messaggio non inviato**: la riga `Your organization's settings haven't loaded, so your message to <host> wasn't sent. Retry to send it.` sotto il tuo messaggio significa che Desktop si è riconnesso e ha trattenuto il messaggio, perché le impostazioni della tua organizzazione non erano ancora state caricate. Seleziona **Retry** per inviare subito il messaggio. Se non fai nulla, Desktop riprova una volta caricate le impostazioni.

1378> * **Processo non più presente**: il processo è terminato mentre Desktop era disconnesso, come quando la macchina remota si riavvia. Desktop può quindi avviarne uno nuovo dalla cronologia salvata della conversazione e dire a Claude di continuare l'attività. Se l'attività resta ferma, invia un messaggio. Con un provider di terze parti, aggiorna a Claude Desktop v2.42304.0 o successiva, perché le versioni precedenti non continuano mai l'attività da sole.1388> * **Output mancante**: mentre Desktop è disconnesso, il programma di supporto conserva l'output più recente di Claude Code di ogni sessione in un buffer da 16 MiB ed elimina l'output più vecchio. Dopo che Desktop si è riconnesso, la sessione può mostrare `Loading recent output from <host>…`. Se Desktop non riesce a caricare tutto l'output, vedi la riga `Some output produced while you were disconnected may be missing here.` La riga non significa che l'attività si sia interrotta.

1389> * **Processo non più presente**: il processo è terminato mentre Desktop era disconnesso, come quando la macchina remota si riavvia. Desktop può quindi avviarne uno nuovo dalla cronologia salvata della conversazione e dire a Claude di continuare l'attività. Se l'attività resta ferma, invia un messaggio. Con un provider di terze parti, aggiorna a Claude Desktop v2.42304.0 o versioni successive, perché le versioni precedenti non continuano mai l'attività da sole.

1379 1390 

1380##### Riaprire una sessione dopo aver chiuso Desktop1391##### Riaprire una sessione dopo aver chiuso Desktop

1381 1392 

1382Dopo che chiudi Desktop, l'attività continua a essere eseguita sulla macchina remota, ma si interrompe quando la sessione si riapre, a meno che Desktop non possa ricollegarsi al suo processo. Mentre Desktop è chiuso, l'attività viene eseguita finché non termina, non ha bisogno di te o non raggiunge uno dei [limiti](#limits-while-desktop-is-disconnected).1393Dopo che chiudi Desktop, l'attività continua a essere eseguita sulla macchina remota, ma si interrompe quando la sessione si riapre, a meno che Desktop non possa ricollegarsi al suo processo. Mentre Desktop è chiuso, l'attività viene eseguita finché non termina, non ha bisogno di te o non raggiunge uno dei [limiti](#limits-while-desktop-is-disconnected).

1383 1394 

1384* **Desktop su Windows, attività avviata in una versione precedente alla v3.1623.0**: non recuperi l'attività, anche se Desktop è stato aggiornato nel frattempo. Riavvia Desktop solo quando prevedi che l'attività sia completata, perché la sessione può aprirsi all'avvio di Desktop, e l'attività si interrompe quando la sessione si apre. Se non sai in quale versione hai avviato l'attività, attendi anche in questo caso finché non prevedi che sia completata.1395* **Desktop su Windows, attività avviata in una versione precedente alla v3.1623.0**: non recuperi l'attività, anche se nel frattempo Desktop è stato aggiornato. Avvia di nuovo Desktop solo quando prevedi che l'attività sia terminata, perché la sessione può aprirsi all'avvio di Desktop, e l'attività si interrompe quando la sessione si apre. Se non sai in quale versione hai avviato l'attività, attendi anche in questo caso finché non prevedi che sia terminata.

1385* **Provider di terze parti su macOS o Linux, attività avviata in una versione precedente alla v2.42304.0**: non recuperi l'attività. Riavvia Desktop solo quando prevedi che l'attività sia completata.1396* **Provider di terze parti su macOS o Linux, attività avviata in una versione precedente alla v2.42304.0**: non recuperi l'attività. Avvia di nuovo Desktop solo quando prevedi che l'attività sia terminata.

1386* **Qualsiasi altra attività**: avvia Desktop e apri la sessione, e l'attività prosegue se Desktop si ricollega. Non sempre può ricollegarsi, ad esempio dopo alcuni aggiornamenti di Desktop, quindi [aggiorna prima di un'attività lunga](#prepare-a-long-task).1397* **Qualsiasi altra attività**: avvia Desktop e apri la sessione, e l'attività prosegue se Desktop si ricollega. Non sempre può ricollegarsi, ad esempio dopo alcuni aggiornamenti di Desktop, quindi [aggiorna prima di un'attività lunga](#prepare-a-long-task).

1387 1398 

1388Quando l'attività si interrompe, la sessione può mostrare `Restarting Claude Code on <host>…` mentre Desktop avvia un nuovo processo. Perdi anche qualsiasi approvazione o domanda che ti stava attendendo. Se Claude non continua da solo, invia un messaggio, e Claude continua dalla cronologia salvata della conversazione.1399Quando l'attività si interrompe, la sessione può mostrare `Restarting Claude Code on <host>…` mentre Desktop avvia un nuovo processo. Perdi anche qualsiasi approvazione o domanda che ti attendeva. Se Claude non continua da solo, invia un messaggio, e Claude continua dalla cronologia salvata della conversazione.

1389 1400 

1390Per i deploy di terze parti, consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).1401Per i deploy di terze parti, consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).

1391 1402 

1392> [!WARNING]1403> [!WARNING]

1393>1404>

1394> Mentre il processo Claude Code di una conversazione è ancora in esecuzione, non eseguire [`claude --resume`](https://code.claude.com/docs/it/cli-reference#cli-flags) per quella conversazione sulla macchina remota. Claude Code non te lo impedisce, e entrambi i processi scrivono quindi nella stessa conversazione. Se non sei sicuro, aggiungi `--fork-session`, che continua in una copia della conversazione, ma entrambi i processi lavorano comunque sugli stessi file.1405> Mentre il processo di Claude Code di una conversazione è ancora in esecuzione, non eseguire [`claude --resume`](https://code.claude.com/docs/it/cli-reference#cli-flags) per quella conversazione sulla macchina remota. Claude Code non te lo impedisce, ed entrambi i processi scrivono quindi nella stessa conversazione. Se non sei sicuro, aggiungi `--fork-session`, che continua in una copia della conversazione, ma entrambi i processi lavorano comunque sugli stessi file.

1395 1406 

1396#### Scegliere dove vanno i worktree delle sessioni SSH1407#### Scegliere dove vanno i worktree delle sessioni SSH

1397 1408 

1398A meno che la tua organizzazione non limiti le cartelle che le sessioni possono usare, le nuove sessioni SSH creano i propri [worktree](#run-a-session-in-its-own-worktree) nella prima di queste posizioni che risulta impostata:1409A meno che la tua organizzazione non limiti le cartelle che le sessioni possono usare, le nuove sessioni SSH creano i loro [worktree](#run-a-session-in-its-own-worktree) nella prima di queste posizioni che risulta impostata:

1399 1410 

14001. **Worktree folder** nella connessione SSH14111. **Worktree folder** sulla connessione SSH

14012. [`worktree.location`](https://code.claude.com/docs/it/settings-reference#worktree-location) in `~/.claude/settings.json` sulla macchina remota14122. [`worktree.location`](https://code.claude.com/docs/it/settings-reference#worktree-location) in `~/.claude/settings.json` sulla macchina remota

14023. `<project-root>/.claude/worktrees/`, il valore predefinito14133. `<project-root>/.claude/worktrees/`, il valore predefinito

1403 1414 

1404Ogni progetto ottiene una propria sottocartella nella cartella che imposti, quindi con `~/worktrees` il percorso di un worktree è `~/worktrees/<project>-<id>/<worktree-name>`. Se la cartella che imposti si trova all'interno del progetto, Desktop la ignora per quel progetto e usa il valore predefinito. Su una [macchina remota Windows](#windows-remote-machines), Desktop usa sempre il valore predefinito.1415Ogni progetto ottiene una propria sottocartella nella cartella che imposti, quindi con `~/worktrees` il percorso di un worktree è `~/worktrees/<project>-<id>/<worktree-name>`. Se la cartella che imposti si trova all'interno del progetto, Desktop la ignora per quel progetto e usa quella predefinita. Su una [macchina remota Windows](#windows-remote-machines), Desktop usa sempre quella predefinita.

1405 1416 

1406##### Impostare la cartella dei worktree su una connessione esistente1417##### Impostare la cartella dei worktree su una connessione esistente

1407 1418 

1408Imposta **Worktree folder** nelle impostazioni di una connessione che hai aggiunto in precedenza o di una gestita dalla tua organizzazione. Il campo richiede Claude Desktop v1.44121.0 o successiva. Se la tua organizzazione limita le cartelle che le sessioni possono usare, Desktop nasconde il campo e mantiene i worktree all'interno del progetto.1419Imposta **Worktree folder** nelle impostazioni di una connessione che hai aggiunto in precedenza o di una gestita dalla tua organizzazione. Il campo richiede Claude Desktop v1.44121.0 o successivo. Se la tua organizzazione limita le cartelle che le sessioni possono usare, Desktop nasconde il campo e mantiene i worktree all'interno del progetto.

1409 1420 

1410**1. Trova la connessione**1421**1. Trova la connessione**

1411 1422 


1413 1424 

1414**2. Apri le impostazioni della connessione**1425**2. Apri le impostazioni della connessione**

1415 1426 

1416Passa il mouse sulla connessione e fai clic sull'icona a forma di ingranaggio. Se la finestra di dialogo che si apre mostra **Edit connection…** accanto a **Host**, seleziona **Edit connection…**.1427Passa il puntatore sulla connessione e fai clic sull'icona a forma di ingranaggio. Se la finestra di dialogo che si apre mostra **Edit connection…** accanto a **Host**, seleziona **Edit connection…**.

1417 1428 

1418**3. Imposta la cartella**1429**3. Imposta la cartella**

1419 1430 

1420In **Worktree folder**, inserisci una cartella sulla macchina remota, ad esempio `~/worktrees`, e seleziona **Save changes**.1431In **Worktree folder**, inserisci una cartella sulla macchina remota, come `~/worktrees`, e seleziona **Save changes**.

1421 1432 

1422#### File e processi sulla macchina remota1433#### File e processi sulla macchina remota

1423 1434 

1424Desktop installa un programma helper e Claude Code in `~/.claude/remote/` nella directory home di ciascun utente che si connette a una macchina remota Linux o macOS. L'helper non resta in ascolto su alcuna porta di rete, ma Claude Code e i programmi che avvia, come i server MCP e i server di sviluppo, possono farlo.1435Desktop installa un programma di supporto e Claude Code in `~/.claude/remote/` nella directory home di ogni utente che si connette a una macchina remota Linux o macOS. Il programma di supporto non è in ascolto su alcuna porta di rete, ma Claude Code e i programmi che avvia, come i server MCP e i server di sviluppo, possono esserlo.

1425 1436 

1426| Cartella | Contenuto |1437| Cartella | Contenuto |

1427| - | - |1438| - | - |

1428| `~/.claude/remote/srv/` | L'helper, in una cartella per versione |1439| `~/.claude/remote/srv/` | Il programma di supporto, in una cartella per versione |

1429| `~/.claude/remote/ccd-cli/` | Claude Code, in un file per versione |1440| `~/.claude/remote/ccd-cli/` | Claude Code, in un file per versione |

1430| `~/.claude/remote/run/` | I file di runtime dell'helper, come il suo socket e il suo log, in una cartella per ciascun computer che si connette |1441| `~/.claude/remote/run/` | I file di runtime del programma di supporto, come il suo socket e il suo log, in una cartella per ogni computer che si connette |

1431| `~/.claude/remote/plugins/` | I plugin che Desktop copia dal computer dell'utente |1442| `~/.claude/remote/plugins/` | I plugin che Desktop copia dal computer dell'utente |

1432| [`~/.claude/uploads/`](https://code.claude.com/docs/it/claude-directory#clear-local-data) | File che l'utente allega ai messaggi, in una cartella per ogni sessione |1443| [`~/.claude/uploads/`](https://code.claude.com/docs/it/claude-directory#clear-local-data) | I file che l'utente allega ai messaggi, in una cartella per sessione |

1433 1444 

1434Per elencare i processi di un utente, esegui `pgrep -fl "$HOME/.claude/remote/"` sulla macchina remota come quell'utente, oppure con la directory home dell'utente al posto di `$HOME`:1445Per elencare i processi di un utente, esegui `pgrep -fl "$HOME/.claude/remote/"` sulla macchina remota come quell'utente, oppure con la directory home dell'utente al posto di `$HOME`:

1435 1446 

1436* **Helper**: uno o più processi `server` per ogni computer che si connette1447* **Programma di supporto**: uno o più processi `server` per ogni computer che si connette

1437* **Claude Code**: i processi che l'helper avvia per le sessioni dell'utente, ciascuno da un file che prende il nome dalla sua versione, come `2.1.295-…`1448* **Claude Code**: i processi che il programma di supporto avvia per le sessioni dell'utente, ciascuno da un file con il nome della sua versione, come `2.1.295-…`

1438 1449 

1439Desktop raggiunge l'helper attraverso la connessione SSH dell'utente, tramite il socket Unix `rpc.sock` nella cartella dell'helper sotto `~/.claude/remote/run/`. A parte root, gli altri utenti della macchina non possono connettersi a quel socket, perché ha modalità 600 e la sua cartella ha modalità 700.1450Desktop raggiunge il programma di supporto attraverso la connessione SSH dell'utente, tramite il socket Unix `rpc.sock` nella cartella del programma di supporto in `~/.claude/remote/run/`. A parte root, gli altri utenti della macchina non possono connettersi a quel socket, perché ha modalità 600 e la sua cartella ha modalità 700.

1440 1451 

1441Per i casi in cui l'helper si arresta da solo, consulta [Limiti mentre Desktop è disconnesso](#limits-while-desktop-is-disconnected).1452Per i casi in cui il programma di supporto si arresta da solo, consulta [Limiti mentre Desktop è disconnesso](#limits-while-desktop-is-disconnected).

1442 1453 

1443Per rimuovere l'helper e Claude Code per un utente:1454Per rimuovere il programma di supporto e Claude Code per un utente:

1444 1455 

1445**1. Chiudi Desktop**1456**1. Chiudi Desktop**

1446 1457 


1448 1459 

1449**2. Termina i processi**1460**2. Termina i processi**

1450 1461 

1451Dopo aver effettuato l'accesso come quell'utente sulla macchina remota, esegui `kill` con l'ID di ogni processo di Claude Code elencato da [`pgrep`](#files-and-processes-on-the-remote-machine). Quando sono scomparsi dall'elenco, esegui `kill` con l'ID di ogni processo `server`. Se termini prima un processo `server`, un comando che Claude Code sta eseguendo può continuare a essere eseguito.1462Dopo aver effettuato l'accesso come quell'utente sulla macchina remota, esegui `kill` con l'ID di ogni processo di Claude Code che [`pgrep`](#files-and-processes-on-the-remote-machine) elenca. Quando non compaiono più nell'elenco, esegui `kill` con l'ID di ogni processo `server`. Se termini prima un processo `server`, un comando che Claude Code sta eseguendo può continuare a essere eseguito.

1452 1463 

1453Poi elenca i processi rimanenti dell'utente, ad esempio con `ps -u "$(id -un)" -f`, e termina quelli che riconosci come avviati da Claude Code. I programmi che ha lasciato in background possono continuare a essere eseguiti dopo la sua chiusura, senza comparire nell'elenco di `pgrep`.1464Poi elenca i processi rimanenti dell'utente, ad esempio con `ps -u "$(id -un)" -f`, e termina quelli che riconosci come avviati da Claude Code. I programmi che ha lasciato in background possono continuare a essere eseguiti dopo che è terminato, senza comparire nell'elenco di `pgrep`.

1454 1465 

1455**3. Elimina la cartella**1466**3. Elimina la cartella**

1456 1467 

1457Elimina `~/.claude/remote/`. Per rimuovere i file propri di Claude Code in `~/.claude/` e `~/.claude.json`, consulta [Rimuovere i file di configurazione](https://code.claude.com/docs/it/setup.md#remove-configuration-files).1468Elimina `~/.claude/remote/`. Per rimuovere i file di Claude Code stesso in `~/.claude/` e `~/.claude.json`, consulta [Rimuovere i file di configurazione](https://code.claude.com/docs/it/setup.md#remove-configuration-files).

1458 1469 

1459##### Terminare il processo di una sessione1470##### Terminare il processo di una sessione

1460 1471 

1461Per terminare il processo di Claude Code di una sessione, [archivia la sessione](#archive-a-session) in Desktop mentre Desktop è connesso alla macchina remota. Il processo continua a essere eseguito dopo che la sua attività è terminata e dopo che chiudi Desktop.1472Per terminare il processo di Claude Code di una sessione, [archivia la sessione](#archive-a-session) in Desktop mentre Desktop è connesso alla macchina remota. Il processo continua a essere eseguito dopo che la sua attività è completata e dopo che chiudi Desktop.

1462 1473 

1463Prima di archiviare una sessione il cui worktree ha modifiche non sottoposte a commit, consulta [Conservare le modifiche non sottoposte a commit quando una sessione viene archiviata](#keep-uncommitted-changes-when-a-session-is-archived).1474Prima di archiviare una sessione il cui worktree contiene modifiche non sottoposte a commit, consulta [Mantenere le modifiche non sottoposte a commit quando una sessione viene archiviata](#keep-uncommitted-changes-when-a-session-is-archived).

1464 1475 

1465##### Vedere con quale utente vengono eseguiti i processi1476##### Vedere con quale utente vengono eseguiti i processi

1466 1477 

1467L'helper e Claude Code vengono eseguiti come l'utente con cui Desktop accede tramite SSH. Installarli e avviarli non richiede `sudo`. Per verificare l'utente, esegui `ps -o user= -p` sulla macchina remota con un ID di processo elencato da [`pgrep`](#files-and-processes-on-the-remote-machine).1478Il programma di supporto e Claude Code vengono eseguiti come l'utente con cui Desktop accede tramite SSH. Per installarli e avviarli non serve `sudo`. Per verificare l'utente, esegui `ps -o user= -p` sulla macchina remota con un ID di processo che [`pgrep`](#files-and-processes-on-the-remote-machine) elenca.

1468 1479 

1469Anche i programmi avviati da Claude Code, come i comandi della shell e i server MCP, vengono avviati come quell'utente. Esamina i diritti di quell'utente sulla macchina remota, comprese le sue regole `sudo`, come faresti per una persona che esegue comandi lì.1480Anche i programmi che Claude Code avvia, come i comandi della shell e i server MCP, vengono avviati come quell'utente. Esamina i diritti di quell'utente sulla macchina remota, comprese le sue regole `sudo`, come faresti per una persona che esegue comandi lì.

1470 1481 

1471##### Vedere chi si è connesso alla macchina remota1482##### Vedere chi si è connesso alla macchina remota

1472 1483 

1473Per scoprire chi si è connesso a una macchina remota, leggi il log del server SSH su quella macchina, dove un accesso da Desktop appare come uno da un terminale. Con Desktop su macOS o Linux, aspettati una voce ogni volta che Desktop si connette, non una per ogni sessione.1484Per scoprire chi si è connesso a una macchina remota, leggi il log del server SSH su quella macchina, dove un accesso da Desktop appare come uno da un terminale. Con Desktop su macOS o Linux, aspettati una voce ogni volta che Desktop si connette, non una per ogni sessione.

1474 1485 

1475Se il server imposta `MaxSessions 1`, aspettati almeno due voci ogni volta che Desktop si connette o si riconnette. Aspettatene almeno un'altra per ogni scheda del terminale e per ogni sessione di Desktop in cui esegui comandi che iniziano con `!`.1486Se il server imposta `MaxSessions 1`, aspettati almeno due voci ogni volta che Desktop si connette o si riconnette. Aspettati almeno una voce in più per ogni scheda del terminale e per ogni sessione di Desktop in cui esegui comandi che iniziano con `!`.

1476 1487 

1477Non troverai le connessioni SSH di Desktop nelle [metriche ed eventi](https://code.claude.com/docs/it/monitoring-usage.md#available-metrics-and-events) di Claude Code. Per scoprire da essi su quale macchina remota è stata eseguita una sessione SSH, consulta [Attribuire la telemetria alle sessioni SSH di Desktop](https://code.claude.com/docs/it/monitoring-usage.md#attribute-telemetry-to-desktop-ssh-sessions). Per il registro delle connessioni tenuto da Desktop stesso, consulta [Ottenere i log di Desktop per un problema SSH](#get-desktops-logs-for-an-ssh-problem).1488Non troverai le connessioni SSH di Desktop nelle [metriche ed eventi](https://code.claude.com/docs/it/monitoring-usage.md#available-metrics-and-events) di Claude Code. Per scoprire da questi su quale macchina remota è stata eseguita una sessione SSH, consulta [Attribuire la telemetria alle sessioni SSH di Desktop](https://code.claude.com/docs/it/monitoring-usage.md#attribute-telemetry-to-desktop-ssh-sessions). Per il registro delle connessioni tenuto da Desktop stesso, consulta [Ottenere i log di Desktop per un problema SSH](#get-desktops-logs-for-an-ssh-problem).

1478 1489 

1479#### Connessioni che si chiudono prima dell'accesso1490#### Connessioni che si chiudono prima dell'accesso

1480 1491 

1481Se il log del server SSH mostra connessioni che si chiudono prima di qualsiasi accesso, possono essere i test della porta SSH eseguiti da Desktop. Desktop verifica se una macchina risponde, ad esempio dopo che una connessione a essa non è riuscita. Apre una connessione alla porta e la chiude subito, senza inviare nulla. Aspettati un test o diversi di seguito, ad esempio otto in circa due minuti.1492Se il log del server SSH mostra connessioni che si chiudono prima di qualsiasi accesso, possono essere test della porta SSH effettuati da Desktop. Desktop verifica se una macchina risponde, ad esempio dopo che una connessione a essa non è riuscita. Apre una connessione alla porta e la chiude subito, senza inviare nulla. Aspettati un test o diversi di seguito, ad esempio otto in circa due minuti.

1482 1493 

1483Se nulla blocca o rifiuta gli indirizzi per tali connessioni, non devi fare nulla riguardo ai test di Desktop. Se un indirizzo da cui Desktop si connette viene rifiutato o bloccato, verifica [se il server SSH stesso rifiuta l'indirizzo](#check-whether-the-ssh-server-itself-refuses-the-address) e [se fail2ban conta i test di Desktop](#check-whether-fail2ban-counts-desktops-tests).1494Se nulla blocca o rifiuta gli indirizzi per connessioni di questo tipo, non devi fare nulla riguardo ai test di Desktop. Se un indirizzo da cui Desktop si connette viene rifiutato o bloccato, verifica [se il server SSH stesso rifiuta l'indirizzo](#check-whether-the-ssh-server-itself-refuses-the-address) e [se fail2ban conteggia i test di Desktop](#check-whether-fail2ban-counts-desktops-tests).

1484 1495 

1485##### Riconoscere un test nel log del server SSH1496##### Riconoscere un test nel log del server SSH

1486 1497 

1487Confronta le righe del tuo log con quelle che un server OpenSSH su Linux scrive per un test con il `LogLevel` predefinito, nella riga corrispondente alla versione del tuo server. Puoi vedere invece le righe dell'ultima colonna se il saluto del server arriva prima che Desktop chiuda la connessione:1498Confronta le righe del tuo log con quelle che un server OpenSSH su Linux scrive per un test con il `LogLevel` predefinito, nella riga della tabella relativa alla versione del tuo server. Puoi vedere invece le righe dell'ultima colonna se il messaggio di benvenuto del server arriva prima che Desktop chiuda la connessione:

1488 1499 

1489| Versione di OpenSSH | Righe per un test | Righe se il saluto arriva prima |1500| Versione di OpenSSH | Righe per un test | Righe se il messaggio di benvenuto arriva prima |

1490| - | - | - |1501| - | - | - |

1491| Da 6.6 a 7.9 | Una riga con `Did not receive identification string from 203.0.113.7` | La stessa riga |1502| Da 6.6 a 7.9 | Una riga con `Did not receive identification string from 203.0.113.7` | La stessa riga |

1492| Da 8.0 a 8.2 | `error: kex_exchange_identification: Connection closed by remote host` | `error: kex_exchange_identification: read: Connection reset by peer` |1503| Da 8.0 a 8.2 | `error: kex_exchange_identification: Connection closed by remote host` | `error: kex_exchange_identification: read: Connection reset by peer` |


1496 1507 

1497Altri programmi che aprono la porta e la chiudono possono lasciare le stesse righe. Dove una riga contiene un indirizzo, verifica che sia uno da cui si connette un computer con Desktop.1508Altri programmi che aprono la porta e la chiudono possono lasciare le stesse righe. Dove una riga contiene un indirizzo, verifica che sia uno da cui si connette un computer con Desktop.

1498 1509 

1499Le righe delle versioni da 8.0 a 8.2 non contengono un indirizzo. Per ottenerne uno, imposta `LogLevel VERBOSE` in `sshd_config` ed esegui `sshd -T | grep -i loglevel` come root. Se stampa `loglevel VERBOSE`, ricarica il server SSH. Poi cerca una riga con `Connection from 203.0.113.7 port 51234` prima della riga del test.1510Le righe delle versioni da 8.0 a 8.2 non contengono alcun indirizzo. Per ottenerne uno, imposta `LogLevel VERBOSE` in `sshd_config` ed esegui `sshd -T | grep -i loglevel` come root. Se stampa `loglevel VERBOSE`, ricarica il server SSH. Poi cerca una riga con `Connection from 203.0.113.7 port 51234` prima della riga del test.

1500 1511 

1501##### Verificare se il server SSH stesso rifiuta l'indirizzo1512##### Verificare se il server SSH stesso rifiuta l'indirizzo

1502 1513 


1506drop connection #0 from [203.0.113.7]:51234 on [192.0.2.10]:22 penalty: connections without attempting authentication1517drop connection #0 from [203.0.113.7]:51234 on [192.0.2.10]:22 penalty: connections without attempting authentication

1507```1518```

1508 1519 

1509Con il `LogLevel` predefinito, OpenSSH 9.8 e versioni successive possono scrivere una riga di questo tipo quando rifiutano un indirizzo per connessioni che si sono chiuse senza tentare l'accesso, come fanno i test di Desktop. Con le impostazioni predefinite, non vedi una riga del genere dopo solo pochi test.1520Con il `LogLevel` predefinito, OpenSSH 9.8 e versioni successive possono scrivere una riga di questo tipo quando rifiutano un indirizzo per connessioni che si sono chiuse senza tentare l'accesso, come fanno i test di Desktop. Con le impostazioni predefinite, non vedi una riga di questo tipo dopo pochi test soltanto.

1510 1521 

1511Per evitare il rifiuto, imposta `PerSourcePenaltyExemptList` in `sshd_config` sugli indirizzi da cui le persone si connettono, ad esempio `PerSourcePenaltyExemptList 203.0.113.7`. Il server quindi non applica nessuna delle sue penalità a quegli indirizzi, comprese quelle per gli accessi non riusciti. Per verificare il file, esegui `sshd -T | grep -i persourcepenalt` come root. Se stampa il tuo elenco, ricarica il server SSH.1522Per evitare il rifiuto, imposta `PerSourcePenaltyExemptList` in `sshd_config` sugli indirizzi da cui le persone si connettono, ad esempio `PerSourcePenaltyExemptList 203.0.113.7`. Il server quindi non applica nessuna delle sue penalità a quegli indirizzi, comprese quelle per gli accessi non riusciti. Per verificare il file, esegui `sshd -T | grep -i persourcepenalt` come root. Se stampa il tuo elenco, ricarica il server SSH.

1512 1523 

1513##### Verificare se fail2ban conta i test di Desktop1524##### Verificare se fail2ban conteggia i test di Desktop

1514 1525 

1515Se fail2ban 0.10.5 o versione successiva ha bloccato un indirizzo da cui Desktop si connette, trova la modalità della tua jail in `jail.conf`, `jail.local` o sotto `jail.d/`:1526Se fail2ban 0.10.5 o successivo ha bloccato un indirizzo da cui Desktop si connette, trova la modalità della tua jail in `jail.conf`, `jail.local` o in `jail.d/`:

1516 1527 

1517* **Una riga `filter` che indica una modalità tra parentesi quadre**, come `filter = sshd[mode=aggressive]`: usa quella modalità.1528* **Una riga `filter` che indica una modalità tra parentesi quadre**, come `filter = sshd[mode=aggressive]`: usa quella modalità.

1518* **Solo la riga `filter` predefinita**, con `[mode=%(mode)s]`: usa la riga `mode`, oppure `normal` se non ce n'è una.1529* **Solo la riga `filter` predefinita**, con `[mode=%(mode)s]`: usa la riga `mode`, oppure `normal` se non c'è.

1519 1530 

1520Se la modalità è `normal`, fail2ban non conta le righe dei test di Desktop, quindi cerca un'altra causa del blocco.1531Se la modalità è `normal`, fail2ban non conteggia le righe dei test di Desktop, quindi cerca un'altra causa del blocco.

1521 1532 

1522Per un'altra modalità, copia le righe dal tuo log in un file sulla macchina remota. Copia ogni riga per intero, dalla data alla fine, ed entrambe le righe quando un test ne lascia due. Esegui lì `fail2ban-regex` con il file e la modalità della tua jail, ad esempio `aggressive`:1533Per un'altra modalità, copia le righe dal tuo log in un file sulla macchina remota. Copia ogni riga per intero, dalla data fino alla fine, ed entrambe le righe quando un test ne lascia due. Esegui `fail2ban-regex` lì con il file e la modalità della tua jail, ad esempio `aggressive`:

1523 1534 

1524```bash theme={null}1535```bash theme={null}

1525fail2ban-regex -o ip lines.log "sshd[mode=aggressive]"1536fail2ban-regex -o ip lines.log "sshd[mode=aggressive]"

1526```1537```

1527 1538 

1528Per ogni errore che fail2ban conta, il comando stampa l'indirizzo su una riga a sé, come `203.0.113.7`. In tal caso, [evita un blocco](#prevent-a-ban-by-fail2ban). Se non stampa nulla, fail2ban non conta nessuna di quelle righe in quella modalità, quindi cerca un'altra causa del blocco.1539Per ogni errore che fail2ban conteggia, il comando stampa l'indirizzo su una riga a sé, come `203.0.113.7`. In tal caso, [evita un blocco](#prevent-a-ban-by-fail2ban). Se non stampa nulla, fail2ban non conteggia nessuna di quelle righe in quella modalità, quindi cerca un'altra causa del blocco.

1529 1540 

1530##### Evitare un blocco da parte di fail2ban1541##### Evitare un blocco da parte di fail2ban

1531 1542 

1532Per impedire a fail2ban di bloccare un indirizzo a causa dei test di Desktop, modifica una di due impostazioni della jail, ciascuna con un costo:1543Per impedire a fail2ban di bloccare un indirizzo a causa dei test di Desktop, modifica una delle due impostazioni della jail, ciascuna con un costo:

1533 1544 

1534* **`mode`**: impostala su `normal` ovunque la tua jail la imposti, in una riga `mode` o tra le parentesi quadre di una riga come `filter = sshd[mode=aggressive]`. Rinunci a ogni conteggio che solo le altre modalità effettuano, ad esempio dei client che si connettono e se ne vanno senza tentare l'accesso.1545* **`mode`**: impostala su `normal` ovunque la tua jail la imposti, in una riga `mode` o tra le parentesi quadre di una riga come `filter = sshd[mode=aggressive]`. Rinunci a ogni conteggio che fanno solo le altre modalità, ad esempio dei client che si connettono e se ne vanno senza tentare l'accesso.

1535* **`ignoreip`**: impostala sugli indirizzi da cui le persone si connettono, ad esempio `ignoreip = 203.0.113.7`. fail2ban quindi non conta nulla da quegli indirizzi, compresi gli accessi non riusciti.1546* **`ignoreip`**: impostala sugli indirizzi da cui le persone si connettono, ad esempio `ignoreip = 203.0.113.7`. fail2ban quindi non conteggia nulla da quegli indirizzi, compresi gli accessi non riusciti.

1536 1547 

1537#### Usare server MCP configurati sulla macchina remota1548#### Usare i server MCP configurati sulla macchina remota

1538 1549 

1539Per usare un [server MCP](https://code.claude.com/docs/it/mcp.md) da `~/.claude.json` o dal `.mcp.json` di un progetto in una sessione SSH, configuralo in quei file sulla macchina remota. Claude Code avvia lì i loro server stdio, quindi installa sulla macchina remota i comandi che quei server eseguono. Per i server da `claude_desktop_config.json`, consulta [Limiti mentre Desktop è disconnesso](#limits-while-desktop-is-disconnected).1550Per usare un [server MCP](https://code.claude.com/docs/it/mcp.md) da `~/.claude.json` o dal `.mcp.json` di un progetto in una sessione SSH, configuralo in quei file sulla macchina remota. Claude Code avvia lì i loro server stdio, quindi installa sulla macchina remota i comandi che quei server eseguono. Per i server da `claude_desktop_config.json`, consulta [Limiti mentre Desktop è disconnesso](#limits-while-desktop-is-disconnected).

1540 1551 

1541#### Aprire una sessione SSH da un link1552#### Aprire una sessione SSH da un link

1542 1553 

1543Un link `claude://code/new` apre la pagina di nuova sessione di Desktop e può indicare una connessione SSH. Inserisci un link di questo tipo in un runbook, una dashboard o una pagina wiki per aprire Desktop configurato per la macchina e la cartella giuste. Per le piattaforme che rimuovono tali link, consulta [Il link viene visualizzato come testo semplice anziché essere cliccabile](https://code.claude.com/docs/it/deep-links.md#the-link-renders-as-plain-text-instead-of-being-clickable).1554Un link `claude://code/new` apre la pagina di nuova sessione di Desktop e può indicare una connessione SSH. Inserisci un link di questo tipo in un runbook, in una dashboard o in una pagina wiki per aprire Desktop configurato per la macchina e la cartella corrette. Per le piattaforme che rimuovono questi link, consulta [Il link viene visualizzato come testo semplice invece di essere cliccabile](https://code.claude.com/docs/it/deep-links.md#the-link-renders-as-plain-text-instead-of-being-clickable).

1544 1555 

1545I link SSH richiedono Claude Desktop v2.110.0 o versione successiva.1556I link SSH richiedono Claude Desktop v2.110.0 o successivo.

1546 1557 

1547Il link seguente indica l'utente `dev` su `build.example.com`, la porta 2222 e la cartella `/srv/payments`, e compila un prompt:1558Il link seguente indica l'utente `dev` su `build.example.com`, la porta 2222 e la cartella `/srv/payments`, e compila un prompt:

1548 1559 


1554 1565 

1555| Parametro | Valore |1566| Parametro | Valore |

1556| :- | :- |1567| :- | :- |

1557| `ssh_host` | `host` o `user@host`, scritto come nel campo **SSH host**. Il valore non può iniziare con `-`, e la parte host accetta solo lettere, cifre, `.`, `_`, `:` e `-` |1568| `ssh_host` | `host` o `user@host`, scritto come nel campo **SSH host**. Il valore non può iniziare con `-`, e la parte relativa all'host accetta solo lettere, cifre, `.`, `_`, `:` e `-` |

1558| `ssh_port` | Un numero di porta da 1 a 65535 |1569| `ssh_port` | Un numero di porta da 1 a 65535 |

1559| `ssh_folder` | Una cartella sulla macchina remota. Iniziala con `/` o `~/`, oppure usa `~` |1570| `ssh_folder` | Una cartella sulla macchina remota. Falla iniziare con `/` o `~/`, oppure usa `~` |

1560| `q` | Testo con codifica URL per la casella del prompt |1571| `q` | Testo con codifica URL per la casella del prompt |

1561 1572 

1562Un alias da `~/.ssh/config` funziona come `ssh_host` solo per le persone che hanno quella voce. Per corrispondere a una connessione che le persone hanno già, assegna al link lo stesso utente, host e porta di quella connessione.1573Un alias da `~/.ssh/config` funziona come `ssh_host` solo per le persone che hanno quella voce. Per far corrispondere una connessione che le persone hanno già, usa nel link lo stesso utente, host e porta di quella connessione.

1563 1574 

1564Quando apri il link, Desktop ti chiede di confermare prima di selezionare la connessione:1575Quando apri il link, Desktop ti chiede di confermare prima di selezionare la connessione:

1565 1576 

1566* **Una connessione che hai già**: se host, utente e porta corrispondono a una delle tue connessioni, Desktop ti chiede se usarla e ti mostra il nome e l'host della connessione, e la cartella se il link ne indica una.1577* **Una connessione che hai già**: se host, utente e porta corrispondono a una delle tue connessioni, Desktop chiede se usarla e ti mostra il nome e l'host della connessione, e la cartella se il link ne indica una.

1567* **Una nuova connessione**: altrimenti Desktop apre la finestra di dialogo per aggiungere una connessione SSH. Quando aggiungi la connessione, Desktop ti chiede se connetterti prima di salvare qualsiasi cosa e ti mostra l'host dal link, e la porta e la cartella se il link le indica.1578* **Una nuova connessione**: altrimenti Desktop apre la finestra di dialogo per aggiungere una connessione SSH. Quando aggiungi la connessione, Desktop chiede se connettersi prima di salvare qualsiasi cosa e ti mostra l'host dal link, e la porta e la cartella se il link le indica.

1568 1579 

1569Finché non confermi, Desktop non salva l'host, la porta o la cartella dal link e non seleziona né apre una connessione con essi. Se una connessione SSH è già selezionata, la pagina di nuova sessione può comunque connettersi a essa da sola, come fa senza un link, anche quando il link indica lo stesso host. Un link non può contenere un file di chiave, una password o un comando.1580Finché non confermi, Desktop non salva l'host, la porta o la cartella dal link e non seleziona né apre una connessione con essi. Se una connessione SSH è già selezionata, la pagina di nuova sessione può comunque connettersi a essa da sola, come fa senza un link, anche quando il link indica lo stesso host. Un link non può contenere un file di chiave, una password o un comando.

1570 1581 

1571Chiunque può scrivere un link, quindi verifica cosa ha compilato:1582Chiunque può scrivere un link, quindi controlla cosa ha compilato:

1572 1583 

1573* **Prima di confermare**: verifica l'host e la cartella.1584* **Prima di confermare**: controlla l'host e la cartella.

1574* **Prima di inviare**: verifica il prompt e l'ambiente selezionato.1585* **Prima di inviare**: controlla il prompt e l'ambiente selezionato.

1575 1586 

1576Desktop compila il prompt quando il link si apre, al posto di qualsiasi testo che non hai inviato, e non lo invia mai per te. Tratta il prompt come testo semplice, quindi un `/` o `!` iniziale e una menzione di file con `@` non agiscono come un comando o una menzione. Se annulli, il prompt rimane nella casella e l'ambiente che avevi selezionato non cambia.1587Desktop compila il prompt quando il link si apre, al posto di qualsiasi testo che non hai inviato, e non lo invia mai al posto tuo. Tratta il prompt come testo semplice, quindi un `/` o un `!` iniziale e una menzione di file con `@` non funzionano come comando o menzione. Se annulli, il prompt rimane nella casella e l'ambiente che avevi selezionato non cambia.

1577 1588 

1578Un link non aggira [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to). Desktop controlla l'allowlist quando si connette.1589Un link non aggira [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to). Desktop controlla l'allowlist quando si connette.

1579 1590 


1587 1598 

1588#### Creare una connessione SSH da un comando1599#### Creare una connessione SSH da un comando

1589 1600 

1590Se uno strumento da riga di comando crea le tue macchine remote su richiesta, aggiungi il suo comando a `sshHostCommands` in [`~/.claude/settings.json`](https://code.claude.com/docs/it/settings#settings-files). Il selettore dell'ambiente elenca quindi un elemento che prende il nome dalla tua voce, come **Create Dev box**. Quando lo selezioni, Desktop esegue il comando sul tuo computer, salva l'host stampato dal comando come connessione SSH e si connette.1601Se uno strumento da riga di comando crea le tue macchine remote su richiesta, aggiungi il suo comando a `sshHostCommands` in [`~/.claude/settings.json`](https://code.claude.com/docs/it/settings#settings-files). Il selettore dell'ambiente elenca quindi una voce con il nome della tua voce di configurazione, come **Create Dev box**. Quando la selezioni, Desktop esegue il comando sul tuo computer, salva l'host che il comando stampa come connessione SSH e si connette.

1591 1602 

1592> [!NOTE]1603> [!NOTE]

1593>1604>

1594> Le connessioni da un comando richiedono Claude Desktop v3.6556.0 o versione successiva su macOS o Linux, con accesso effettuato tramite un account Claude. Gli amministratori possono [distribuire i comandi a un team](#distribute-commands-to-your-team).1605> Le connessioni da un comando richiedono Claude Desktop v3.6556.0 o successivo su macOS o Linux, con accesso effettuato con un account Claude. Gli amministratori possono [distribuire i comandi a un team](#distribute-commands-to-your-team).

1595 1606 

1596Desktop esegue il comando solo quando crei la connessione o [crei un'altra macchina](#create-another-machine), non ogni volta che ti connetti. Ogni voce è una connessione, che punta all'host che Desktop ha salvato per ultimo dal comando della voce.1607Desktop esegue il comando solo quando crei la connessione o [crei un'altra macchina](#create-another-machine), non ogni volta che ti connetti. Ogni voce è una connessione, che punta all'host che Desktop ha salvato per ultimo dal comando della voce.

1597 1608 

1598> [!WARNING]1609> [!WARNING]

1599>1610>

1600> Desktop non arresta né elimina le macchine. Ciascuna di queste continua a essere in esecuzione, e può continuare a costare denaro, finché non la elimini con il tuo strumento:1611> Desktop non arresta né elimina le macchine. Ciascuna di queste continua a essere eseguita, e può continuare a costare denaro, finché non la elimini con il tuo strumento:

1601>1612>

1602> * Una macchina a cui una voce puntava prima che tu ne [creassi un'altra](#create-another-machine)1613> * Una macchina a cui puntava una voce prima che tu ne [creassi un'altra](#create-another-machine)

1603> * Le macchine di una voce che hai rimosso dal file, o di cui hai modificato l'`id`1614> * Le macchine di una voce che hai rimosso dal file, o il cui `id` hai modificato

1604> * Una macchina che il tuo comando ha creato senza che Desktop ne salvasse l'host, ad esempio in questi casi:1615> * Una macchina che il tuo comando ha creato senza che Desktop ne salvasse l'host, ad esempio in questi casi:

1605> * Il comando non riesce o esaurisce il tempo1616> * Il comando non riesce o supera il tempo limite

1606> * Desktop non può usare l'host stampato, un'altra connessione lo usa già, o la tua organizzazione non lo consente1617> * Desktop non può usare l'host stampato, un'altra connessione lo usa già, oppure la tua organizzazione non lo consente

1607> * Mentre il comando è in esecuzione, lo annulli, rimuovi la sua voce, modifichi il suo `command` o `id`, o chiudi Desktop1618> * Mentre il comando è in esecuzione, lo annulli, rimuovi la sua voce, modifichi il suo `command` o `id`, oppure chiudi Desktop

1608 1619 

1609L'esempio seguente aggiunge una connessione denominata Dev box. Se il file non esiste, crealo. Se contiene già delle impostazioni, aggiungi la chiave accanto a esse. Il comando `acme-dev create` rappresenta il tuo strumento, e `~/project` è la cartella che Desktop seleziona su ogni macchina creata dal tuo comando:1620L'esempio seguente aggiunge una connessione denominata Dev box. Se il file non esiste, crealo. Se contiene già delle impostazioni, aggiungi la chiave accanto a esse. Il comando `acme-dev create` rappresenta il tuo strumento e `~/project` è la cartella che Desktop seleziona su ogni macchina creata dal tuo comando:

1610 1621 

1611```json ~/.claude/settings.json theme={null}1622```json ~/.claude/settings.json theme={null}

1612{1623{


1625 1636 

1626| Campo | Valore |1637| Campo | Valore |

1627| :- | :- |1638| :- | :- |

1628| `id` | Fino a 64 lettere ASCII, cifre, `.`, `_` e `-`, che inizia con una lettera o una cifra. Usa un `id` che nessun'altra voce in `sshHostCommands` o [`sshConfigs`](#pre-configure-ssh-connections-for-your-team) abbia. Desktop conserva l'host della connessione sotto di esso, quindi se lo modifichi, la connessione ricomincia senza host, le sue macchine continuano a essere eseguite e Desktop può [ancora connettersi a esse](#remove-an-entry). |1639| `id` | Fino a 64 lettere ASCII, cifre, `.`, `_` e `-`, iniziando con una lettera o una cifra. Usa un `id` che nessun'altra voce in `sshHostCommands` o [`sshConfigs`](#pre-configure-ssh-connections-for-your-team) abbia. Desktop conserva l'host della connessione associato a esso, quindi se lo modifichi, la connessione ricomincia senza host, le sue macchine continuano a essere eseguite e Desktop può [ancora connettersi a esse](#remove-an-entry). |

1629| `name` | Il nome della connessione nel selettore dell'ambiente, fino a 200 caratteri su una riga |1640| `name` | Il nome della connessione nel selettore dell'ambiente, fino a 200 caratteri su una riga |

1630| `command` | Un programma e i suoi argomenti, come descritto in [Scrivere il comando](#write-the-command) |1641| `command` | Un programma e i suoi argomenti, come descritto in [Scrivere il comando](#write-the-command) |

1631| `sshIdentityFile` | Percorso della tua chiave privata, come `~/.ssh/id_ed25519`. Omettilo per usare la tua configurazione SSH o il tuo agente SSH. |1642| `sshIdentityFile` | Percorso della tua chiave privata, come `~/.ssh/id_ed25519`. Omettilo per usare la tua configurazione SSH o il tuo agente SSH. |

1632| `startDirectory` | La cartella predefinita sulla macchina remota. Iniziala con `/` o `~/`, oppure usa `~`. |1643| `startDirectory` | La cartella predefinita sulla macchina remota. Falla iniziare con `/` o `~/`, oppure usa `~`. |

1633 1644 

1634Per modificare o rimuovere la connessione, modifica la sua voce nel file, perché la finestra di dialogo della connessione SSH dell'app non si apre per essa. Non è necessario riavviare Desktop dopo aver modificato il file. Se la voce non compare o non puoi selezionarla, consulta [Se un comando manca o è grigio](#if-a-command-is-missing-or-gray).1645Per modificare o rimuovere la connessione, modifica la sua voce nel file, perché la finestra di dialogo della connessione SSH dell'app non si apre per essa. Non è necessario riavviare Desktop dopo aver modificato il file. Se la voce non compare o non puoi selezionarla, consulta [Se un comando manca o è grigio](#if-a-command-is-missing-or-gray).

1635 1646 


1637 1648 

1638Desktop avvia il programma direttamente, senza shell e senza terminale:1649Desktop avvia il programma direttamente, senza shell e senza terminale:

1639 1650 

1640* **Programma**: scrivi il suo nome, o il suo percorso completo a partire da `/`, senza spazi. Desktop cerca un nome semplice nel `PATH` esportato dalla tua shell di login. I percorsi relativi come `./acme-dev`, i percorsi che iniziano con `~` e gli alias e le funzioni della shell non funzionano.1651* **Programma**: scrivi il suo nome, o il suo percorso completo a partire da `/`, senza spazi. Desktop cerca un nome semplice nel `PATH` che la tua shell di login esporta. I percorsi relativi come `./acme-dev`, i percorsi che iniziano con `~` e gli alias e le funzioni della shell non funzionano.

1641* **Argomenti**: separa gli argomenti semplici con spazi. Il comando può contenere solo spazi, lettere ASCII, cifre e i caratteri `+,-./:=@_~`, e nessuna parola può iniziare con `~`.1652* **Argomenti**: separa gli argomenti semplici con spazi. Il comando può contenere solo spazi, lettere ASCII, cifre e i caratteri `+,-./:=@_~`, e nessuna parola può iniziare con `~`.

1642* **Script**: se il comando richiede qualcos'altro, come virgolette, pipe, variabili o un URL con `?` o `&`, inseriscilo in uno script. Rendi lo script eseguibile, inizialo con una riga `#!` e imposta `command` sul suo percorso completo, come `/Users/you/bin/make-devbox`. Su macOS, tieni lo script fuori dalle cartelle Documenti, Scrivania e Download, dove macOS può bloccarlo.1653* **Script**: se il comando richiede qualcos'altro, come virgolette, pipe, variabili o un URL con `?` o `&`, inseriscilo in uno script. Rendi lo script eseguibile, fallo iniziare con una riga `#!` e imposta `command` sul suo percorso completo, come `/Users/you/bin/make-devbox`. Su macOS, tieni lo script fuori dalle cartelle Documenti, Scrivania e Download, dove macOS può bloccarlo.

1643* **Input**: il programma non riceve input né terminale, quindi non può chiederti nulla lì. Se il tuo strumento ti fa accedere tramite un browser o una richiesta, accedi prima da un terminale, e di nuovo ogni volta che quell'accesso scade.1654* **Input**: il programma non riceve alcun input né alcun terminale, quindi non può chiederti nulla lì. Se il tuo strumento ti fa accedere tramite un browser o una richiesta, accedi prima da un terminale, e di nuovo ogni volta che quell'accesso scade.

1644* **Ambiente**: il programma viene eseguito nella tua directory home con le variabili esportate dalla tua shell di login. Desktop le legge all'avvio, come fa per [un `ProxyCommand`](#use-variables-from-your-shell-in-a-proxycommand), quindi chiudi e riapri Desktop dopo averle modificate.1655* **Ambiente**: il programma viene eseguito nella tua directory home con le variabili che la tua shell di login esporta. Desktop le legge all'avvio, come fa per [un `ProxyCommand`](#use-variables-from-your-shell-in-a-proxycommand), quindi chiudi e riapri Desktop dopo averle modificate.

1645* **Limite di tempo**: Desktop arresta un programma che è ancora in esecuzione dopo 10 minuti. Il messaggio di avanzamento di Desktop non mostra l'output del programma. Per arrestare il programma prima, seleziona **Cancel** accanto a quel messaggio.1656* **Tempo limite**: Desktop arresta un programma che è ancora in esecuzione dopo 10 minuti. Il messaggio di avanzamento di Desktop non mostra l'output del programma. Per arrestare il programma prima, seleziona **Cancel** accanto a quel messaggio.

1646 1657 

1647Il programma deve uscire con codice 0 e stampare solo l'host sullo standard output, in una di due forme:1658Il programma deve terminare con codice 0 e stampare solo l'host sullo standard output, in una di due forme:

1648 1659 

1649* **Una riga**: `host` o `user@host`, scritto come per `ssh_host` in [un link SSH](#open-an-ssh-session-from-a-link). Per indicare una porta, usa la forma JSON.1660* **Una riga**: `host` o `user@host`, scritto come per `ssh_host` in [un link SSH](#open-an-ssh-session-from-a-link). Per indicare una porta, usa la forma JSON.

1650* **Un oggetto JSON**: `sshHost`, e facoltativamente un `sshPort` numerico e una `startDirectory` che sostituisce quella della voce, come `{"sshHost": "dev@devbox-1234.example.com", "sshPort": 2222}`1661* **Un oggetto JSON**: `sshHost` e, facoltativamente, un `sshPort` numerico e una `startDirectory` che sostituisce quella della voce, come `{"sshHost": "dev@devbox-1234.example.com", "sshPort": 2222}`

1651 1662 

1652Per vedere l'output che Desktop legge, esegui il comando in un terminale senza input e con lo standard output in un file:1663Per vedere l'output che Desktop legge, esegui il comando in un terminale senza input e con lo standard output in un file:

1653 1664 


1657 1668 

1658Il file deve contenere solo l'host. Quando esegui questo test, il tuo strumento crea anche una macchina, quindi eliminala in seguito con il tuo strumento.1669Il file deve contenere solo l'host. Quando esegui questo test, il tuo strumento crea anche una macchina, quindi eliminala in seguito con il tuo strumento.

1659 1670 

1660Se il tuo strumento stampa altre righe prima dell'host, come messaggi di avanzamento, racchiudilo in uno script che stampi solo l'host. Lo script seguente stampa l'ultima riga dell'output del tuo strumento. Se il tuo strumento non riesce, lo script esce con lo stesso codice, in modo che Desktop segnali l'errore:1671Se il tuo strumento stampa altre righe prima dell'host, come messaggi di avanzamento, racchiudilo in uno script che stampa solo l'host. Lo script seguente stampa l'ultima riga dell'output del tuo strumento. Se il tuo strumento non riesce, lo script termina con lo stesso codice, in modo che Desktop segnali l'errore:

1661 1672 

1662```bash theme={null}1673```bash theme={null}

1663#!/bin/bash1674#!/bin/bash


1673 1684 

1674Rispondi a due domande la prima volta che ti connetti a ogni nuovo host:1685Rispondi a due domande la prima volta che ti connetti a ogni nuovo host:

1675 1686 

1676* **Chiave host**: con il controllo predefinito delle chiavi host di OpenSSH, verifica l'impronta digitale della chiave, poi scegli se connetterti. Per saltare la domanda, fai in modo che il tuo comando aggiunga la chiave a `~/.ssh/known_hosts` prima di stampare l'host, usando una chiave che il tuo strumento ha ottenuto quando ha creato la macchina. Per una porta diversa dalla 22, quella riga inizia con `[host]:port`. Se il tuo strumento riutilizza i nomi host, rimuovi anche la riga della vecchia chiave.1687* **Chiave dell'host**: con il controllo predefinito delle chiavi dell'host di OpenSSH, controlla l'impronta digitale della chiave, poi scegli se connetterti. Per saltare la domanda, fai in modo che il tuo comando aggiunga la chiave a `~/.ssh/known_hosts` prima di stampare l'host, usando una chiave che il tuo strumento ha appreso quando ha creato la macchina. Per una porta diversa dalla 22, quella riga inizia con `[host]:port`. Se il tuo strumento riutilizza i nomi host, rimuovi anche la riga della vecchia chiave.

1677* **Cartella**: scegli se ritieni attendibile la cartella che apri lì1688* **Cartella**: scegli se ritieni attendibile la cartella che apri lì

1678 1689 

1679Mantieni attivo il controllo delle chiavi host per questi host e mantieni un file `known_hosts` per essi. Se `StrictHostKeyChecking` è `no` o `accept-new` e anche `UserKnownHostsFile` è `/dev/null` o `none`, nulla registra la chiave. Quando il tuo strumento riutilizza poi un nome, puoi connetterti a una macchina diversa senza alcun avviso.1690Mantieni attivo il controllo delle chiavi dell'host per questi host e mantieni un file `known_hosts` per essi. Se `StrictHostKeyChecking` è `no` o `accept-new` e anche `UserKnownHostsFile` è `/dev/null` o `none`, nulla registra la chiave. Quando poi il tuo strumento riutilizza un nome, puoi connetterti a una macchina diversa senza alcun avviso.

1680 1691 

1681Un nome riutilizzato conta anche senza nessuno al computer, perché Desktop si connette a questi host da solo. Ad esempio, consegna un messaggio che hai inviato mentre l'host non era raggiungibile, una volta che l'host risponde. Anche con il controllo delle chiavi degli host attivo, il messaggio può raggiungere la nuova macchina con quel nome in questi casi, quindi [smetti di usare una macchina](#stop-using-a-machine) prima che venga eliminata:1692Un nome riutilizzato conta anche senza nessuno al computer, perché Desktop si connette a questi host da solo. Ad esempio, recapita un messaggio che hai inviato mentre l'host non era raggiungibile, non appena l'host risponde. Anche con il controllo delle chiavi dell'host attivo, il messaggio può raggiungere la nuova macchina associata al nome in questi casi, quindi [smetti di usare una macchina](#stop-using-a-machine) prima che venga eliminata:

1682 1693 

1683* Tu, il tuo comando o un altro programma avete aggiunto la nuova chiave a `known_hosts` o rimosso la riga della vecchia chiave, come fa il tuo comando se aggiunge chiavi degli host1694* Tu, il tuo comando o un altro programma avete aggiunto la nuova chiave a `known_hosts` o rimosso la riga della vecchia chiave, come fa il tuo comando se aggiunge chiavi dell'host

1684* Le macchine del tuo strumento condividono una chiave dell'host1695* Le macchine del tuo strumento condividono una chiave dell'host

1685* Le macchine del tuo strumento condividono un'autorità di certificazione considerata attendibile da `known_hosts`1696* Le macchine del tuo strumento condividono un'autorità di certificazione che `known_hosts` considera attendibile

1686* Tu o il tuo amministratore avete impostato `KnownHostsCommand` o `VerifyHostKeyDNS yes`, quindi SSH accetta chiavi da fuori `known_hosts`1697* Tu o il tuo amministratore avete impostato `KnownHostsCommand` o `VerifyHostKeyDNS yes`, quindi SSH accetta chiavi provenienti dall'esterno di `known_hosts`

1687 1698 

1688##### Creare un'altra macchina1699##### Creare un'altra macchina

1689 1700 

1690Le tue sessioni sulle macchine precedenti continuano a funzionare dopo che selezioni **Create another Dev box**, e le nuove sessioni usano la nuova macchina. Seleziona l'elemento nel selettore dell'ambiente per creare una macchina nuova o per sostituirne una che non c'è più. Nella pagina di nuova sessione, lo offre anche il messaggio che indica che Desktop non riesce a raggiungere l'host.1701Le tue sessioni sulle macchine precedenti continuano a funzionare dopo che selezioni **Create another Dev box**, e le nuove sessioni usano la nuova macchina. Seleziona la voce nel selettore dell'ambiente per creare una macchina nuova o per sostituirne una che non esiste più. Nella pagina di nuova sessione, anche il messaggio che indica che Desktop non riesce a raggiungere l'host la offre.

1691 1702 

1692* **Sessioni sulle macchine precedenti**: continuale dalla barra laterale, perché il selettore elenca la macchina attuale di Dev box e non quelle precedenti. Desktop può connettersi alle loro macchine da solo, ad esempio all'avvio di Desktop, quindi [smetti di usare una macchina](#stop-using-a-machine) quando hai finito con essa.1703* **Sessioni sulle macchine precedenti**: continuale dalla barra laterale, perché il selettore elenca la macchina corrente di Dev box e non quelle precedenti. Desktop può connettersi alle loro macchine da solo, ad esempio all'avvio di Desktop, quindi [smetti di usare una macchina](#stop-using-a-machine) quando hai finito con essa.

1693* **Un host sostituito prima di Claude Desktop v4.4212.0**: quelle versioni mostrano **Replace Dev box's host** e smettono di connettersi all'host sostituito. Per continuare una sessione su quell'host, apri la sessione, seleziona **Add SSH connection** e salva la connessione che Desktop compila. Aggiorna Desktop prima di sostituire un altro host.1704* **Un host sostituito prima di Claude Desktop v4.4212.0**: quelle versioni mostrano **Replace Dev box's host** e smettono di connettersi all'host sostituito. Per continuare una sessione su quell'host, apri la sessione, seleziona **Add SSH connection** e salva la connessione che Desktop compila. Aggiorna Desktop prima di sostituire un altro host.

1694* **Nuove sessioni su due macchine**: aggiungi una seconda voce a [`sshHostCommands`](#create-an-ssh-connection-from-a-command)1705* **Nuove sessioni su due macchine**: aggiungi una seconda voce a [`sshHostCommands`](#create-an-ssh-connection-from-a-command)

1695* **Un nuovo host che non risponde ancora**: lascia aperta la pagina di nuova sessione fino a 10 minuti mentre continua a tentare di connettersi. Se l'host continua a non rispondere, seleziona **Create another Dev box** nel messaggio della pagina.1706* **Un nuovo host che non risponde ancora**: lascia aperta la pagina di nuova sessione fino a 10 minuti mentre continua a tentare di connettersi. Se l'host ancora non risponde, seleziona **Create another Dev box** nel messaggio della pagina.

1696* **Un'altra macchina poco dopo**: dopo diverse esecuzioni del comando entro un'ora, conferma ogni esecuzione successiva nella finestra di dialogo che Desktop apre, che mostra il comando1707* **Un'altra macchina poco dopo**: dopo diverse esecuzioni del comando entro un'ora, conferma ogni ulteriore esecuzione nella finestra di dialogo che Desktop apre, che mostra il comando

1697 1708 

1698##### Smettere di usare una macchina1709##### Smettere di usare una macchina

1699 1710 


1701 1712 

17021. Trova le sessioni della macchina nella barra laterale. Il [pannello dei dettagli](#see-session-details) di una sessione mostra l'host su cui viene eseguita.17131. Trova le sessioni della macchina nella barra laterale. Il [pannello dei dettagli](#see-session-details) di una sessione mostra l'host su cui viene eseguita.

17032. [Archivia ogni sessione](#archive-a-session) e lasciala archiviata.17142. [Archivia ogni sessione](#archive-a-session) e lasciala archiviata.

17043. Se non hai creato un'altra macchina dalla stessa voce `sshHostCommands` da quando hai creato questa, [creane una](#create-another-machine) oppure [rimuovi la voce](#remove-an-entry). Fino ad allora, la macchina è la connessione salvata della voce, e Desktop può connettersi a essa quando apri la pagina di nuova sessione con quella connessione selezionata.17153. Se non hai creato un'altra macchina dalla stessa voce `sshHostCommands` da quando hai creato questa, [creane una](#create-another-machine) oppure [rimuovi anche la voce](#remove-an-entry). Fino ad allora, la macchina è la connessione salvata della voce e Desktop può connettersi a essa quando apri la pagina di nuova sessione con quella connessione selezionata.

17054. Elimina nell'app qualsiasi altra connessione SSH alla macchina, o rimuovi la sua voce [`sshConfigs`](#pre-configure-ssh-connections-for-your-team).17164. Elimina nell'app qualsiasi altra connessione SSH alla macchina, oppure rimuovi la sua voce [`sshConfigs`](#pre-configure-ssh-connections-for-your-team).

17065. Chiudi e riapri Desktop, il che chiude la sua connessione alla macchina e interrompe i suoi tentativi di raggiungerla.17175. Chiudi e riapri Desktop, il che chiude la sua connessione alla macchina e pone fine ai suoi tentativi di raggiungerla.

17076. Elimina la macchina con il tuo strumento.17186. Elimina la macchina con il tuo strumento.

1708 1719 

1709##### Rimuovere una voce1720##### Rimuovere una voce

1710 1721 

1711Dopo che rimuovi una voce dal file delle impostazioni o ne modifichi l'`id`, le sessioni sulle sue macchine restano, quindi Desktop può ancora connettersi a quelle macchine. Può farlo senza nessuno al computer, ad esempio per ricollegarsi al processo in esecuzione di una sessione o per consegnare un messaggio in attesa di invio. Per impedirlo, archivia le sessioni, come descritto in [Smettere di usare una macchina](#stop-using-a-machine).1722Dopo che rimuovi una voce dal file delle impostazioni o modifichi il suo `id`, le sessioni sulle sue macchine rimangono, quindi Desktop può ancora connettersi a quelle macchine. Può farlo senza nessuno al computer, ad esempio per ricollegarsi al processo in esecuzione di una sessione o per recapitare un messaggio in attesa di invio. Per impedirlo, archivia le sessioni, come descritto in [Smettere di usare una macchina](#stop-using-a-machine).

1712 1723 

1713Se sei un amministratore e hai rimosso una voce gestita, anche le sessioni dei tuoi utenti restano, e ogni utente deve archiviare le proprie. Per bloccare tu stesso le macchine della voce, imposta un [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to) che corrisponda agli host di cui i tuoi utenti hanno ancora bisogno e non ai nomi host delle macchine. Puoi farlo solo dove un pattern distingue le due cose.1724Se sei un amministratore e hai rimosso una voce gestita, rimangono anche le sessioni dei tuoi utenti, e ogni utente deve archiviare le proprie. Per bloccare tu stesso le macchine della voce, imposta un'[`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to) che corrisponda agli host di cui i tuoi utenti hanno ancora bisogno e non ai nomi host delle macchine. Puoi farlo solo dove un pattern distingue i due.

1714 1725 

1715##### Distribuire i comandi al tuo team1726##### Distribuire i comandi al tuo team

1716 1727 

1717Per fornire una connessione al tuo team, imposta `sshHostCommands` nel file di [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md) di Claude Code o nella policy MDM su ogni computer, non nella [policy di gestione dei dispositivi](#device-management-policies) propria dell'app desktop. Gli utenti vedono le tue voci accanto alle proprie, e l'app non offre alcun modo per modificare o rimuovere una voce, né loro né tua.1728Per fornire una connessione al tuo team, imposta `sshHostCommands` nel file delle [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md) di Claude Code o nella policy MDM su ogni computer, non nella [policy di gestione dei dispositivi](#device-management-policies) dell'app desktop stessa. Gli utenti vedono le tue voci accanto alle proprie, e l'app non offre alcun modo per modificare o rimuovere una voce, né la loro né la tua.

1718 1729 

1719Il seguente file di impostazioni gestite fornisce agli utenti una connessione denominata Dev box e disattiva le loro voci, insieme agli hook di Claude Code dalle impostazioni utente, di progetto e locali:1730Il seguente file di impostazioni gestite fornisce agli utenti una connessione denominata Dev box e disattiva le loro voci, insieme agli hook di Claude Code dalle impostazioni utente, di progetto e locali:

1720 1731 


1733 1744 

1734Prima di distribuire la chiave, definisci ciascuno di questi aspetti:1745Prima di distribuire la chiave, definisci ciascuno di questi aspetti:

1735 1746 

1736* **Dove inserire la chiave**: se la tua policy MDM per Claude Code imposta già una [chiave di policy](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources), inseriscila lì. Altrimenti, inseriscila nel file di impostazioni gestite. Per impostazione predefinita, tale policy ha la precedenza sul file, e Desktop ignora quindi le voci nel file. Impostala sul computer anche dove si applicano le [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md): Desktop ignora la chiave lì, e nelle impostazioni di progetto e locali.1747* **Dove inserire la chiave**: se la tua policy MDM per Claude Code imposta già una [chiave di policy](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources), inseriscila lì. Altrimenti, inseriscila nel file delle impostazioni gestite. Per impostazione predefinita, una policy di questo tipo ha la precedenza sul file, e Desktop ignora quindi le voci nel file. Impostala sul computer anche dove si applicano le [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md): Desktop ignora la chiave lì, e nelle impostazioni di progetto e locali.

1737* **L'`id`**: se la voce `sshHostCommands` di un utente ha il tuo `id`, funziona solo la tua. Se qualsiasi altra connessione SSH lo ha, come una nei `sshConfigs` di un utente, la tua voce è grigia. Scegli un `id` che difficilmente gli utenti sceglierebbero.1748* **L'`id`**: se la voce `sshHostCommands` di un utente ha il tuo `id`, funziona solo la tua. Se qualsiasi altra connessione SSH lo ha, come una nelle `sshConfigs` di un utente, la tua voce è grigia. Scegli un `id` che difficilmente gli utenti sceglierebbero.

1738* **Il programma**: indica il suo percorso completo, perché Desktop cerca un nome semplice nel `PATH` di ciascun utente. Il programma viene eseguito come l'utente, con le variabili esportate dalla sua shell di login.1749* **Il programma**: indica il suo percorso completo, perché Desktop cerca un nome semplice nel `PATH` di ciascun utente. Il programma viene eseguito come l'utente, con le variabili che la sua shell di login esporta.

1739* **Le voci degli utenti**: Desktop tratta la voce di un utente come un [hook](https://code.claude.com/docs/it/hooks.md), perché entrambi eseguono un programma sul computer. Per consentire solo le tue voci, imposta [`strictPluginOnlyCustomization`](https://code.claude.com/docs/it/settings-reference#strictpluginonlycustomization) su `["hooks"]`, oppure aggiungi `"hooks"` al suo elenco. Blocchi anche gli hook di Claude Code dalle impostazioni utente, di progetto e locali, senza alcun modo per mantenerli. Se imposti invece quella chiave o [`allowManagedHooksOnly`](https://code.claude.com/docs/it/settings-reference#allowmanagedhooksonly) su `true`, blocchi di più, come indicato nella voce di ciascuna chiave.1750* **Le voci degli utenti**: Desktop tratta la voce di un utente come un [hook](https://code.claude.com/docs/it/hooks.md), perché entrambi eseguono un programma sul computer. Per consentire solo le tue voci, imposta [`strictPluginOnlyCustomization`](https://code.claude.com/docs/it/settings-reference#strictpluginonlycustomization) su `["hooks"]`, oppure aggiungi `"hooks"` al suo elenco. In questo modo blocchi anche gli hook di Claude Code dalle impostazioni utente, di progetto e locali, senza modo di mantenerli. Se invece imposti quella chiave o [`allowManagedHooksOnly`](https://code.claude.com/docs/it/settings-reference#allowmanagedhooksonly) su `true`, blocchi di più, come elenca la voce di ciascuna chiave.

1740* **Ogni voce**: per disattivare anche le tue voci, imposta [`disableAllHooks`](https://code.claude.com/docs/it/settings-reference#disableallhooks) nelle impostazioni gestite. Se imposti [`disableDesktopLocalSessions`](https://code.claude.com/docs/it/settings-reference#disabledesktoplocalsessions), o un `sshHostAllowlist` che non consente alcun host, il selettore non elenca alcun elemento **Create** o **Create another**.1751* **Ogni voce**: per disattivare anche le tue voci, imposta [`disableAllHooks`](https://code.claude.com/docs/it/settings-reference#disableallhooks) nelle impostazioni gestite. Se imposti [`disableDesktopLocalSessions`](https://code.claude.com/docs/it/settings-reference#disabledesktoplocalsessions), o un'`sshHostAllowlist` che non consente alcun host, il selettore non elenca alcuna voce **Create** o **Create another**.

1741* **Dove contano i blocchi**: per queste voci, Desktop legge `allowManagedHooksOnly`, `strictPluginOnlyCustomization` e `disableAllHooks` dalle impostazioni gestite dal server e dal file o dalla policy del computer stesso, e applica il risultato più restrittivo. Ogni voce rimane grigia finché Desktop non ha verificato su claude.ai le impostazioni gestite dal server, anche se la tua organizzazione non ne ha.1752* **Dove contano i blocchi**: per queste voci, Desktop legge `allowManagedHooksOnly`, `strictPluginOnlyCustomization` e `disableAllHooks` dalle impostazioni gestite dal server e dal file o dalla policy del computer stesso, e applica il risultato più restrittivo. Ogni voce rimane grigia finché Desktop non ha verificato le impostazioni gestite dal server su claude.ai, anche se la tua organizzazione non ne ha.

1742* **Host consentiti**: se imposti [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to), assicurati che un pattern corrisponda a ogni nome host stampato dal tuo strumento, e ometti `user@` dal pattern. Desktop verifica il nome stampato solo dopo che il comando è stato eseguito, quindi una macchina rifiutata dall'elenco esiste già, e l'utente deve eliminarla con il tuo strumento. A ogni connessione, deve corrispondere anche l'`HostName` risolto.1753* **Host consentiti**: se imposti [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to), assicurati che un pattern corrisponda a ogni nome host che il tuo strumento stampa, e ometti `user@` dal pattern. Desktop controlla il nome stampato solo dopo che il comando è stato eseguito, quindi una macchina che l'elenco rifiuta esiste già, e l'utente deve eliminarla con il tuo strumento. A ogni connessione, deve corrispondere anche l'`HostName` risolto.

1743 1754 

1744Dopo aver distribuito la chiave, riavvia Desktop su un computer di prova. Nel selettore dell'ambiente della scheda Code, cerca sotto **SSH**, oppure nella singola riga **SSH**. La tua voce compare come elemento **Create**, oppure come elemento grigio che indica il motivo quando ci passi sopra con il puntatore. Se manca, verifica dove hai inserito la chiave, poi i casi in [Se un comando manca o è grigio](#if-a-command-is-missing-or-gray).1755Dopo aver distribuito la chiave, riavvia Desktop su un computer di prova. Nel selettore dell'ambiente della scheda Code, guarda sotto **SSH**, oppure nella singola riga **SSH**. La tua voce compare come voce **Create**, oppure come voce grigia che mostra il motivo quando vi passi sopra il puntatore. Se manca, controlla dove hai inserito la chiave, poi i casi in [Se un comando manca o è grigio](#if-a-command-is-missing-or-gray).

1745 1756 

1746##### Se un comando manca o è grigio1757##### Se un comando manca o è grigio

1747 1758 

1748Il selettore dell'ambiente non elenca alcun elemento **Create** o **Create another** in questi casi:1759Il selettore dell'ambiente non elenca alcuna voce **Create** o **Create another** in questi casi:

1749 1760 

1750* **Il file**: `~/.claude/settings.json` contiene [JSON non valido o un valore rifiutato dallo schema](https://code.claude.com/docs/it/settings.md#fix-a-broken-settings-file), hai scritto male la chiave, oppure l'hai inserita nelle impostazioni di un progetto. Correggi il file.1761* **Il file**: `~/.claude/settings.json` contiene [JSON non valido o un valore che lo schema rifiuta](https://code.claude.com/docs/it/settings.md#fix-a-broken-settings-file), hai scritto male la chiave oppure l'hai inserita nelle impostazioni di un progetto. Correggi il file.

1751* **Piattaforma e account**: usi Windows, oppure un [provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md) anziché un account Claude. Aggiungi tu stesso ogni host come [connessione SSH](#ssh-sessions).1762* **Piattaforma e account**: usi Windows, oppure un [provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md) invece di un account Claude. Aggiungi tu stesso ogni host come [connessione SSH](#ssh-sessions).

1752* **Le impostazioni della tua organizzazione**: il tuo amministratore ha disattivato le sessioni locali o le sessioni SSH. Chiedigli se puoi usare i comandi.1763* **Le impostazioni della tua organizzazione**: il tuo amministratore ha disattivato le sessioni locali o le sessioni SSH. Chiedigli se puoi usare i comandi.

1753* **Nessun programma `ssh`**: Desktop non è riuscito ad avviare il client OpenSSH sul tuo computer. Installalo, o chiedi al tuo amministratore di consentirlo, poi riavvia Desktop.1764* **Nessun programma `ssh`**: Desktop non è riuscito ad avviare il client OpenSSH sul tuo computer. Installalo, oppure chiedi al tuo amministratore di consentirlo, poi riavvia Desktop.

1754 1765 

1755Una voce che non puoi selezionare è grigia. Passaci sopra con il puntatore per vedere il motivo:1766Una voce che non puoi selezionare è grigia. Passaci sopra il puntatore per vedere il motivo:

1756 1767 

1757* **Un errore nella voce**: correggi il campo o il comando indicato dal messaggio. Se l'`id` è già in uso, assegnane un altro alla voce.1768* **Un errore nella voce**: correggi il campo o il comando indicato dal messaggio. Se l'`id` è già in uso, assegna alla voce un altro `id`.

1758* **Un file di impostazioni danneggiato**: finché il tuo file di impostazioni è danneggiato, le voci del tuo amministratore potrebbero essere grigie, con un messaggio che indica il file. [Correggi il file](https://code.claude.com/docs/it/settings.md#fix-a-broken-settings-file).1769* **Un file delle impostazioni danneggiato**: mentre il tuo file delle impostazioni è danneggiato, le voci del tuo amministratore possono essere grigie, con un messaggio che indica il file. [Correggi il file](https://code.claude.com/docs/it/settings.md#fix-a-broken-settings-file).

1759* **Un nuovo host**: [**Create another**](#create-another-machine) è grigio per un minuto dopo che Desktop ha salvato un host. Selezionalo dopo quel minuto. Prima di Claude Desktop v4.4212.0, **Replace Dev box's host** è grigio per 10 minuti.1770* **Un nuovo host**: [**Create another**](#create-another-machine) è grigio per un minuto dopo che Desktop salva un host. Selezionalo dopo quel minuto. Prima di Claude Desktop v4.4212.0, **Replace Dev box's host** è grigio per 10 minuti.

1760* **Gli hook sono disattivati o limitati**: le tue voci funzionano solo dove possono essere eseguiti i tuoi hook. Rimuovi `disableAllHooks` dalle tue impostazioni, oppure chiedi al tuo amministratore.1771* **Gli hook sono disattivati o limitati**: le tue voci funzionano solo dove i tuoi hook possono essere eseguiti. Rimuovi `disableAllHooks` dalle tue impostazioni, oppure chiedi al tuo amministratore.

1761* **Le impostazioni sono ancora in caricamento**: ogni voce è grigia finché Desktop non ha caricato le [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md) della tua organizzazione, di solito pochi secondi dopo l'avvio. Se le voci rimangono grigie, verifica la tua connessione a claude.ai.1772* **Le impostazioni sono ancora in caricamento**: ogni voce è grigia finché Desktop non ha caricato le [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md) della tua organizzazione, di solito pochi secondi dopo l'avvio. Se le voci rimangono grigie, controlla la tua connessione a claude.ai.

1762 1773 

1763#### Preconfigurare le connessioni SSH per il tuo team1774#### Preconfigurare le connessioni SSH per il tuo team

1764 1775 

1765Gli amministratori possono distribuire connessioni SSH ai membri del team impostando `sshConfigs` nelle [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md).1776Gli amministratori possono distribuire connessioni SSH ai membri del team impostando `sshConfigs` nelle [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md).

1766 1777 

1767* **Cosa vedono gli utenti**: le connessioni definite in questo modo compaiono automaticamente nel selettore dell'ambiente di ciascun utente.1778* **Cosa vedono gli utenti**: le connessioni definite in questo modo compaiono automaticamente nel selettore dell'ambiente di ogni utente.

1768* **Cosa possono modificare gli utenti**: gli utenti possono selezionare una connessione gestita e [impostare la propria **Worktree folder**](#set-the-worktree-folder-on-an-existing-connection) per essa. Non possono modificarne gli altri campi né eliminarla nell'app.1779* **Cosa possono modificare gli utenti**: gli utenti possono selezionare una connessione gestita e [impostare la propria **Worktree folder**](#set-the-worktree-folder-on-an-existing-connection) per essa. Non possono modificarne gli altri campi né eliminarla nell'app.

1769 1780 

1770L'esempio seguente preconfigura una singola connessione:1781L'esempio seguente preconfigura una singola connessione:


1785 1796 

1786Ogni voce richiede `id`, `name` e `sshHost`. I campi `sshPort` e `sshIdentityFile` sono facoltativi. Gli utenti possono anche aggiungere `sshConfigs` al proprio `~/.claude/settings.json`.1797Ogni voce richiede `id`, `name` e `sshHost`. I campi `sshPort` e `sshIdentityFile` sono facoltativi. Gli utenti possono anche aggiungere `sshConfigs` al proprio `~/.claude/settings.json`.

1787 1798 

1788Se ometti `user@` da `sshHost`, Desktop si connette come lo `User` che il `~/.ssh/config` di ciascuno sviluppatore imposta per l'host, oppure come il suo nome utente sul proprio computer.1799Se ometti `user@` da `sshHost`, Desktop si connette come lo `User` che il `~/.ssh/config` di ogni sviluppatore imposta per l'host, oppure altrimenti con il suo nome utente sul proprio computer.

1789 1800 

1790#### Limitare gli host SSH a cui gli utenti possono connettersi1801#### Limitare gli host SSH a cui gli utenti possono connettersi

1791 1802 

1792Gli amministratori possono limitare le sessioni SSH di Desktop a un insieme approvato di host impostando `sshHostAllowlist` nelle [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md). Quando è impostata, gli utenti possono connettersi solo agli host il cui nome host risolto corrisponde a uno dei pattern. Impostala su un array vuoto per disattivare le sessioni SSH. La [voce di riferimento di `sshHostAllowlist`](https://code.claude.com/docs/it/settings-reference#sshhostallowlist) spiega come un array vuoto si combina con gli elenchi in altre origini gestite.1803Gli amministratori possono limitare le sessioni SSH di Desktop a un insieme approvato di host impostando `sshHostAllowlist` nelle [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md). Quando è impostata, gli utenti possono connettersi solo a host il cui nome host risolto corrisponde a uno dei pattern. Impostala su un array vuoto per disattivare le sessioni SSH. La [voce di riferimento di `sshHostAllowlist`](https://code.claude.com/docs/it/settings-reference#sshhostallowlist) spiega come un array vuoto si combina con gli elenchi in altre origini gestite.

1793 1804 

1794L'esempio seguente consente le connessioni a qualsiasi host sotto `devboxes.example.com` e a un singolo bastion host specifico:1805L'esempio seguente consente le connessioni a qualsiasi host in `devboxes.example.com` e a un singolo bastion host con nome:

1795 1806 

1796```json theme={null}1807```json theme={null}

1797{1808{


1801 1812 

1802> [!WARNING]1813> [!WARNING]

1803>1814>

1804> Se la tua organizzazione fornisce [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md), imposta `sshHostAllowlist` lì. Per impostazione predefinita, Desktop legge la chiave solo dall'[origine gestita con priorità più alta che fornisce una chiave di policy](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources). Se quell'origine lascia la chiave non impostata, Desktop ignora un elenco in una policy MDM o in un file di impostazioni gestite con priorità inferiore e tratta la chiave come [non impostata](https://code.claude.com/docs/it/settings-reference.md#sshhostallowlist). Desktop non mostra alcun avviso.1815> Se la tua organizzazione fornisce [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md), imposta `sshHostAllowlist` lì. Per impostazione predefinita, Desktop legge la chiave solo dall'[origine gestita con la priorità più alta che fornisce una chiave di policy](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources). Se quell'origine lascia la chiave non impostata, Desktop ignora un elenco in una policy MDM o in un file di impostazioni gestite con priorità inferiore e tratta la chiave come [non impostata](https://code.claude.com/docs/it/settings-reference.md#sshhostallowlist). Desktop non mostra alcun avviso.

1805>1816>

1806> Mantieni inoltre lo stesso elenco sulla macchina di ciascun utente, nella policy MDM o nel file di impostazioni gestite con priorità più alta presente lì. Desktop recupera le impostazioni gestite dal server all'avvio e non ne conserva una copia nella cache, quindi finché un recupero non riesce si applica l'elenco della macchina.1817> Mantieni anche lo stesso elenco sulla macchina di ogni utente, nella policy MDM o nel file di impostazioni gestite con la priorità più alta presente lì. Desktop recupera le impostazioni gestite dal server all'avvio e non ne conserva una copia nella cache, quindi finché un recupero non riesce si applica l'elenco della macchina.

1807 1818 

1808I pattern non fanno distinzione tra maiuscole e minuscole. `*` corrisponde a qualsiasi host, e `*.example.com` corrisponde a `example.com` e a qualsiasi sottodominio. Qualsiasi altro valore è una corrispondenza esatta. Il controllo viene eseguito sul nome host dopo la risoluzione di `~/.ssh/config` tramite `ssh -G`, quindi un alias `Host` è consentito purché il suo `HostName` risolto corrisponda. Anche i [jump host](#allow-jump-hosts) di una sessione devono corrispondere.1819I pattern non fanno distinzione tra maiuscole e minuscole. `*` corrisponde a qualsiasi host e `*.example.com` corrisponde a `example.com` e a qualsiasi sottodominio. Qualsiasi altro valore è una corrispondenza esatta. Il controllo viene eseguito sul nome host dopo la risoluzione di `~/.ssh/config` tramite `ssh -G`, quindi un alias `Host` è consentito purché il suo `HostName` risolto corrisponda. Anche i [jump host](#allow-jump-hosts) di una sessione devono corrispondere.

1809 1820 

1810`sshHostAllowlist` viene letta solo dalle impostazioni gestite; i valori nelle impostazioni utente o di progetto vengono ignorati. Solo l'app Claude Desktop rispetta questa impostazione; la CLI di Claude Code e le estensioni IDE non la leggono, e non limita i comandi `ssh` eseguiti tramite lo strumento Bash. Determina a quali host si connette l'app Desktop, non il traffico di rete in uscita, quindi abbinala ai controlli di rete o zero-trust della tua organizzazione se hai bisogno di un confine rigido.1821`sshHostAllowlist` viene letta solo dalle impostazioni gestite; i valori nelle impostazioni utente o di progetto vengono ignorati. Solo l'app Claude Desktop rispetta questa impostazione; la CLI di Claude Code e le estensioni IDE non la leggono, e non limita i comandi `ssh` eseguiti tramite lo strumento Bash. Regola gli host a cui l'app Desktop si connette, non il traffico di rete in uscita, quindi abbinala ai controlli di rete o zero-trust della tua organizzazione se ti serve un confine rigido.

1811 1822 

1812##### Consentire i jump host1823##### Consentire i jump host

1813 1824 

1814Aggiungi a `sshHostAllowlist` ogni jump host che Desktop verifica, tramite il suo `HostName` risolto. Aggiungi i jump host prima che gli utenti aggiornino a Claude Desktop v3.1623.0 o versione successiva, altrimenti non potranno connettersi attraverso di essi.1825Aggiungi a `sshHostAllowlist` ogni jump host che Desktop controlla, tramite il suo `HostName` risolto. Aggiungi i jump host prima che gli utenti aggiornino a Claude Desktop v3.1623.0 o successivo, altrimenti non potranno connettersi attraverso di essi.

1815 1826 

1816> [!WARNING]1827> [!WARNING]

1817>1828>

1818> L'elenco ha un solo tipo di voce, quindi gli utenti possono anche avviare una sessione su qualsiasi host che elenchi. Elenca solo jump host su cui consentiresti agli utenti anche di eseguire sessioni.1829> L'elenco ha un solo tipo di voce, quindi gli utenti possono anche avviare una sessione su qualsiasi host che elenchi. Elenca solo i jump host su cui consentiresti anche agli utenti di eseguire sessioni.

1819 1830 

1820Desktop verifica i jump host nel `ProxyJump` che il `~/.ssh/config` dell'utente imposta per l'host della sessione, oppure in un `ProxyCommand` scritto come `ssh -W %h:%p <host>`. Se uno di quelli che verifica non è nell'elenco quando Desktop connette o riconnette una sessione, la connessione non riesce. Quando un utente avvia una sessione o invia un messaggio, i dettagli dell'errore riportano l'`HostName` di quel jump host, che è il nome da aggiungere:1831Desktop controlla i jump host nel `ProxyJump` che il `~/.ssh/config` dell'utente imposta per l'host della sessione, oppure in un `ProxyCommand` scritto come `ssh -W %h:%p <host>`. Se uno che controlla non è nell'elenco quando Desktop connette o riconnette una sessione, la connessione non riesce. Quando un utente avvia una sessione o invia un messaggio, i dettagli dell'errore indicano l'`HostName` di quel jump host, che è il nome da aggiungere:

1821 1832 

1822```text theme={null}1833```text theme={null}

1823SSH host "bastion.example.com" is not allowed by your organization's managed settings. It is a jump host on the way to "devbox".1834SSH host "bastion.example.com" is not allowed by your organization's managed settings. It is a jump host on the way to "devbox".


1827 1838 

1828**1. Trova il percorso**1839**1. Trova il percorso**

1829 1840 

1830Esegui `ssh -G` con un host a cui gli utenti si connettono, come `ssh -G devbox`. Cerca una riga `proxyjump`, oppure una riga `proxycommand` scritta come `ssh -W %h:%p <host>`. Il comando conta comunque con una qualsiasi delle opzioni `-l`, `-p`, `-J`, `-q`, `-v`, `-N`, `-T`, `-x` o `-a`, e anche gli host dopo `-J` sono jump host. Se una riga `proxycommand` esegue un programma diverso da `ssh`, non aggiungere nulla per essa.1841Esegui `ssh -G` con un host a cui gli utenti si connettono, come `ssh -G devbox`. Cerca una riga `proxyjump`, oppure una riga `proxycommand` scritta come `ssh -W %h:%p <host>`. Il comando conta comunque con uno qualsiasi tra `-l`, `-p`, `-J`, `-q`, `-v`, `-N`, `-T`, `-x` o `-a`, e anche gli host dopo `-J` sono jump host. Se una riga `proxycommand` esegue un programma diverso da `ssh`, non aggiungere nulla per essa.

1831 1842 

1832**2. Cerca ogni jump host**1843**2. Cerca ogni jump host**

1833 1844 

1834Esegui `ssh -G` con ogni jump host presente su quella riga, senza alcun `:port`, e annota l'`hostname` che stampa. Se l'output per il primo jump host su quella riga contiene una riga di uno dei due tipi, ripeti questo passaggio con essa. Ignora una riga di questo tipo nell'output di un jump host successivo.1845Esegui `ssh -G` con ogni jump host su quella riga, senza alcun `:port`, e annota l'`hostname` che stampa. Se l'output per il primo jump host su quella riga contiene una riga di uno dei due tipi, ripeti questo passaggio con essa. Ignora una riga di questo tipo nell'output di un jump host successivo.

1835 1846 

1836**3. Aggiungi i nomi**1847**3. Aggiungi i nomi**

1837 1848 


1843 1854 

1844> [!NOTE]1855> [!NOTE]

1845>1856>

1846> Questa configurazione è destinata agli utenti che accedono con un account Claude. Con un [provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md), le sessioni SSH sono disattivate per impostazione predefinita, e l'impostazione di `sshHostAllowlist` può attivarle. Leggi [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions) prima di distribuire queste chiavi.1857> Questa configurazione è per gli utenti che accedono con un account Claude. Con un [provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md), le sessioni SSH sono disattivate per impostazione predefinita e impostare `sshHostAllowlist` può attivarle. Leggi [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions) prima di distribuire queste chiavi.

1847 1858 

1848L'esempio seguente disattiva le sessioni locali, aggiunge una connessione e limita le sessioni SSH all'host di quella connessione:1859L'esempio seguente disattiva le sessioni locali, aggiunge una connessione e limita le sessioni SSH all'host di quella connessione:

1849 1860 


1865 1876 

1866* **La CLI**: nessuna delle chiavi impedisce a uno sviluppatore di eseguire la CLI di Claude Code sul proprio computer1877* **La CLI**: nessuna delle chiavi impedisce a uno sviluppatore di eseguire la CLI di Claude Code sul proprio computer

1867* **Cowork**: nessuna delle chiavi si applica alle sessioni di [Cowork](https://claude.com/docs/cowork/overview) o alle attività pianificate di Cowork1878* **Cowork**: nessuna delle chiavi si applica alle sessioni di [Cowork](https://claude.com/docs/cowork/overview) o alle attività pianificate di Cowork

1868* **Sessioni cloud**: nessuna delle chiavi modifica la disponibilità delle [sessioni cloud](#cloud-sessions). Per disattivarle, usa l'impostazione **Cloud sessions** in [Controlli della console di amministrazione](#admin-console-controls).1879* **Sessioni cloud**: nessuna delle chiavi cambia la disponibilità delle [sessioni cloud](#cloud-sessions). Per disattivarle, usa l'impostazione **Cloud sessions** in [Controlli della console di amministrazione](#admin-console-controls).

1869 1880 

1870Quando adatti l'esempio, verifica i nomi host, la versione di Desktop e i permessi del file:1881Quando adatti l'esempio, controlla i nomi host, la versione di Desktop e i permessi del file:

1871 1882 

1872* **Nomi host**: assicurati che un pattern in `sshHostAllowlist` corrisponda al nome host di ogni voce `sshConfigs`, senza `user@`, altrimenti gli sviluppatori non potranno connettersi. Aggiungi anche un pattern che corrisponda a ogni [jump host](#allow-jump-hosts) che Desktop verifica lungo il percorso. Per come Desktop confronta un nome host, consulta [Limitare gli host SSH a cui gli utenti possono connettersi](#restrict-which-ssh-hosts-users-can-connect-to).1883* **Nomi host**: assicurati che un pattern in `sshHostAllowlist` corrisponda al nome host di ogni voce `sshConfigs`, senza `user@`, altrimenti gli sviluppatori non possono connettersi a essa. Aggiungi anche un pattern che corrisponda a ogni [jump host](#allow-jump-hosts) che Desktop controlla lungo il percorso verso di essa. Per sapere come Desktop fa corrispondere un nome host, consulta [Limitare gli host SSH a cui gli utenti possono connettersi](#restrict-which-ssh-hosts-users-can-connect-to).

1873* **Versione**: `disableDesktopLocalSessions` richiede Claude Desktop v1.37937.0 o versione successiva1884* **Versione**: `disableDesktopLocalSessions` richiede Claude Desktop v1.37937.0 o successivo

1874* **Permessi del file**: assicurati che l'account di ciascuno sviluppatore sul computer possa leggere il file di impostazioni gestite. Desktop non applica le chiavi in un file che l'account non può leggere, e anche Claude Code [si avvia senza di esse](https://code.claude.com/docs/it/managed-settings.md#find-entries-claude-code-dropped).1885* **Permessi del file**: assicurati che l'account di ogni sviluppatore sul computer possa leggere il file delle impostazioni gestite. Desktop non applica le chiavi in un file che l'account non può leggere, e anche Claude Code [si avvia senza di esse](https://code.claude.com/docs/it/managed-settings.md#find-entries-claude-code-dropped).

1875 1886 

1876Inserisci le tre chiavi in un'unica [origine gestita](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources), quella con priorità più alta tra quelle che fornisci. Se fornisci [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md), conserva anche una copia delle tre chiavi nella policy MDM o nel file di impostazioni gestite con priorità più alta su ogni computer. Desktop recupera le impostazioni gestite dal server all'avvio, e la copia sul computer si applica finché un recupero non riesce.1887Inserisci le tre chiavi in un'unica [origine gestita](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources), quella con la priorità più alta che fornisci. Se fornisci [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md), mantieni anche una copia delle tre chiavi nella policy MDM o nel file di impostazioni gestite con la priorità più alta su ogni computer. Desktop recupera le impostazioni gestite dal server all'avvio, e la copia sul computer si applica finché un recupero non riesce.

1877 1888 

1878Per confermare che le impostazioni sono applicate, controlla il computer di uno sviluppatore:1889Per confermare che le impostazioni vengano applicate, controlla il computer di uno sviluppatore:

1879 1890 

1880**1. Controlla il selettore dell'ambiente**1891**1. Controlla il selettore dell'ambiente**

1881 1892 

1882Chiudi e riapri Desktop, poi apri il [selettore dell'ambiente](#start-a-session). Le impostazioni sono applicate se mostra:1893Chiudi e riapri Desktop, poi apri il [selettore dell'ambiente](#start-a-session). Le impostazioni sono state applicate se mostra:

1883 1894 

1884* La voce per quel computer, in grigio1895* La voce relativa a quel computer, in grigio

1885* **Shared Dev VM** sotto **SSH**. Se non è elencata lì, fai clic sulla singola riga **SSH**, oppure su **More** alla fine del gruppo.1896* **Shared Dev VM** sotto **SSH**. Se non è elencata lì, fai clic sulla singola riga **SSH**, oppure su **More** alla fine del gruppo.

1886 1897 

1887Se la voce per il computer è ancora disponibile, verifica queste cause:1898Se la voce relativa al computer è ancora disponibile, verifica queste cause:

1888 1899 

1889* **Versione di Desktop**: aggiorna Desktop se è precedente alla v1.37937.0.1900* **Versione di Desktop**: aggiorna Desktop se è precedente alla v1.37937.0.

1890* **File di impostazioni gestite**: assicurati che il file sia JSON valido.1901* **File delle impostazioni gestite**: assicurati che il file sia JSON valido.

1891* **Origine gestita**: assicurati che il computer legga l'[origine gestita](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources) che contiene le chiavi.1902* **Origine gestita**: assicurati che il computer legga l'[origine gestita](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources) che contiene le chiavi.

1892 1903 

1893**2. Aggiungi un host che non è nell'allowlist**1904**2. Aggiungi un host che non è nell'allowlist**

1894 1905 

1895[Aggiungi una connessione SSH](#ssh-sessions) con un nome host che non è nell'allowlist, come `other.example.com`. Desktop salva la connessione ma rifiuta di connettersi, e indica che le impostazioni della tua organizzazione non consentono la connessione.1906[Aggiungi una connessione SSH](#ssh-sessions) con un nome host che non è nell'allowlist, come `other.example.com`. Desktop salva la connessione ma si rifiuta di connettersi, e indica che le impostazioni della tua organizzazione non consentono la connessione.

1896 1907 

1897## Configurazione aziendale1908## Configurazione aziendale

1898 1909 


2290| `<host> is out of disk space` | `[ENOSPC]` o `[EDQUOT]` | Libera spazio o quota sulla macchina remota, nella tua directory home o in `/tmp` |2301| `<host> is out of disk space` | `[ENOSPC]` o `[EDQUOT]` | Libera spazio o quota sulla macchina remota, nella tua directory home o in `/tmp` |

2291| `Free up disk space on this computer` | `[ENOSPC]` o `[EDQUOT]`, in un messaggio che inizia con `Couldn't prepare the deploy locally` | Libera spazio sul tuo computer |2302| `Free up disk space on this computer` | `[ENOSPC]` o `[EDQUOT]`, in un messaggio che inizia con `Couldn't prepare the deploy locally` | Libera spazio sul tuo computer |

2292| `Claude Code won't start on <host>` | `[CLI_UNRESPONSIVE]` | Attendi un minuto, quindi riprova. Se continua a non riuscire, esegui sulla macchina remota il comando indicato nel messaggio per vedere se Claude Code risponde lì. |2303| `Claude Code won't start on <host>` | `[CLI_UNRESPONSIVE]` | Attendi un minuto, quindi riprova. Se continua a non riuscire, esegui sulla macchina remota il comando indicato nel messaggio per vedere se Claude Code risponde lì. |

2304| `Ask <host>'s administrator to let Claude's server run` | `[SERVER_NOT_RUNNABLE]` o `[SETUP_DIR_NOEXEC]` | Chiedi all'amministratore della macchina remota di consentire l'esecuzione di programmi da `~/.claude/remote/` su quella macchina, come indicato nei [requisiti](#remote-machine-requirements-for-ssh-sessions) |

2305| `Try again in a few minutes` | `[DOWNLOAD_BUSY]` | Attendi qualche minuto, quindi riprova. Il server di download di Anthropic o un proxy sulla rete del tuo computer ha segnalato di essere occupato. Se la scheda continua a ripresentarsi, chiedi all'amministratore di quella rete se un proxy limita i download. |

2293 2306 

2294Per qualsiasi altro messaggio, controlla i [requisiti della macchina remota](#remote-machine-requirements-for-ssh-sessions).2307Per qualsiasi altro messaggio, controlla i [requisiti della macchina remota](#remote-machine-requirements-for-ssh-sessions).

2295 2308 

env-vars.md +4 −5

Details

126> * `CLAUDE_CODE_TMUX_TRUECOLOR`126> * `CLAUDE_CODE_TMUX_TRUECOLOR`

127> * `IS_DEMO`127> * `IS_DEMO`

128>128>

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

130 130 

131| Variabile | Scopo |131| Variabile | Scopo |

132| :- | :- |132| :- | :- |


239| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Imposta `1` per interrompere il lavoro in corso di una [sessione in background](https://code.claude.com/docs/it/agent-view.md) quando il [supervisore](https://code.claude.com/docs/it/agent-view.md#the-supervisor-process) arresta, riavvia o aggiorna il processo di quella sessione, invece di passarlo al processo successivo della sessione. Quel lavoro comprende i comandi shell in background in esecuzione della sessione, più i subagent in background a partire dalla v2.1.198. Influisce solo su quel passaggio: spostare una sessione in background con `←` o [`/background`](https://code.claude.com/docs/it/agent-view#from-inside-a-session) trasferisce comunque il lavoro in background in corso. Richiede Claude Code v2.1.196 o successivo |239| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Imposta `1` per interrompere il lavoro in corso di una [sessione in background](https://code.claude.com/docs/it/agent-view.md) quando il [supervisore](https://code.claude.com/docs/it/agent-view.md#the-supervisor-process) arresta, riavvia o aggiorna il processo di quella sessione, invece di passarlo al processo successivo della sessione. Quel lavoro comprende i comandi shell in background in esecuzione della sessione, più i subagent in background a partire dalla v2.1.198. Influisce solo su quel passaggio: spostare una sessione in background con `←` o [`/background`](https://code.claude.com/docs/it/agent-view#from-inside-a-session) trasferisce comunque il lavoro in background in corso. Richiede Claude Code v2.1.196 o successivo |

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

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

242| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Imposta su `1` per mantenere disponibili gli strumenti del browser di [Claude in Chrome](https://code.claude.com/docs/it/chrome.md) omettendo la sezione Chrome del prompt di sistema e la [skill inclusa](https://code.claude.com/docs/it/skills.md#bundled-skills) `/claude-in-chrome`. Pensata per gli host che incorporano Claude Code e forniscono le proprie indicazioni per il browser. Richiede Claude Code v2.1.257 o versioni successive |242| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Per gli host che incorporano Claude Code e forniscono le proprie indicazioni per il browser. Imposta `1` per mantenere disponibili gli strumenti del browser di [Claude in Chrome](https://code.claude.com/docs/it/chrome.md) omettendo la sezione Chrome del prompt di sistema e la [skill inclusa](https://code.claude.com/docs/it/skills.md#bundled-skills) `/claude-in-chrome`. In VS Code, l'estensione alla v2.1.314 o successiva esclude anche le istruzioni di Claude in Chrome dai messaggi di una sessione. Richiede Claude Code v2.1.257 o successivo |

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

244| `CLAUDE_CODE_DISABLE_CRON` | Imposta `1` per disattivare le [attività pianificate con ambito di sessione](https://code.claude.com/docs/it/scheduled-tasks.md). La skill `/loop` e gli strumenti cron diventano non disponibili e le attività già pianificate smettono di attivarsi, incluse quelle già in esecuzione a metà sessione |244| `CLAUDE_CODE_DISABLE_CRON` | Imposta `1` per disattivare le [attività pianificate con ambito di sessione](https://code.claude.com/docs/it/scheduled-tasks.md). La skill `/loop` e gli strumenti cron diventano non disponibili e le attività già pianificate smettono di attivarsi, incluse quelle già in esecuzione a metà sessione |

245| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | Imposta `1` per disattivare il [limite di tempo e i rifiuti](https://code.claude.com/docs/it/permission-modes.md#time-limits-and-denials-in-auto-and-bypasspermissions-modes) di `auto` e `bypassPermissions` sulle rimozioni di percorsi critici. Queste rimozioni passano quindi al classificatore in modalità `auto` e ricevono una richiesta di conferma senza limite di tempo in modalità `bypassPermissions` ovunque Claude Code possa mostrarne una. Impostala nell'ambiente che avvia Claude Code, poiché Claude Code ignora una copia fornita tramite un blocco `env` delle impostazioni. Richiede Claude Code v2.1.281 o successiva |245| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | Imposta `1` per disattivare il [limite di tempo e i rifiuti](https://code.claude.com/docs/it/permission-modes.md#time-limits-and-denials-in-auto-and-bypasspermissions-modes) di `auto` e `bypassPermissions` sulle rimozioni di percorsi critici. Queste rimozioni passano quindi al classificatore in modalità `auto` e ricevono una richiesta di conferma senza limite di tempo in modalità `bypassPermissions` ovunque Claude Code possa mostrarne una. Impostala nell'ambiente che avvia Claude Code, poiché Claude Code ignora una copia fornita tramite un blocco `env` delle impostazioni. Richiede Claude Code v2.1.281 o successiva |


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

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

309| `CLAUDE_CODE_GLOB_NO_IGNORE` | Imposta su `false` per fare in modo che lo [strumento Glob](https://code.claude.com/docs/it/tools-reference.md#glob-tool-behavior) rispetti i pattern di `.gitignore`. Per impostazione predefinita, Glob restituisce tutti i file corrispondenti, compresi quelli ignorati da git. Non influisce sul completamento automatico dei file con `@`, che ha la propria [impostazione `respectGitignore`](https://code.claude.com/docs/it/settings-reference#respectgitignore) |309| `CLAUDE_CODE_GLOB_NO_IGNORE` | Imposta su `false` per fare in modo che lo [strumento Glob](https://code.claude.com/docs/it/tools-reference.md#glob-tool-behavior) rispetti i pattern di `.gitignore`. Per impostazione predefinita, Glob restituisce tutti i file corrispondenti, compresi quelli ignorati da git. Non influisce sul completamento automatico dei file con `@`, che ha la propria [impostazione `respectGitignore`](https://code.claude.com/docs/it/settings-reference#respectgitignore) |

310| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Timeout in secondi per l'individuazione dei file da parte dello strumento Glob. Il valore predefinito è 20 secondi sulla maggior parte delle piattaforme e 60 secondi su WSL |310| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Timeout in secondi per le ricerche degli strumenti [Glob](https://code.claude.com/docs/it/tools-reference.md#glob-tool-behavior) e Grep. Il valore predefinito è 20 secondi sulla maggior parte delle piattaforme e 60 secondi su WSL |

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

312| `CLAUDE_CODE_GZIP_REQUEST_BODIES` | Imposta su `0` per disattivare la compressione gzip dei corpi delle richieste dell'API Claude, della telemetria e di pubblicazione degli [artefatti](https://code.claude.com/docs/it/artifacts.md) inviati a `api.anthropic.com`. Per impostazione predefinita, Claude Code comprime i corpi delle richieste di grandi dimensioni sulle connessioni dirette e salta la compressione quando invii le richieste tramite un proxy, configuri un certificato client o imposti `NODE_EXTRA_CA_CERTS`. Usa `0` se un [proxy con ispezione TLS](https://code.claude.com/docs/it/network-config.md#ca-certificate-store) che Claude Code non riesce a rilevare gestisce male le richieste compresse |312| `CLAUDE_CODE_GZIP_REQUEST_BODIES` | Imposta su `0` per disattivare la compressione gzip dei corpi delle richieste dell'API Claude, della telemetria e di pubblicazione degli [artefatti](https://code.claude.com/docs/it/artifacts.md) inviati a `api.anthropic.com`. Per impostazione predefinita, Claude Code comprime i corpi delle richieste di grandi dimensioni sulle connessioni dirette e salta la compressione quando invii le richieste tramite un proxy, configuri un certificato client o imposti `NODE_EXTRA_CA_CERTS`. Usa `0` se un [proxy con ispezione TLS](https://code.claude.com/docs/it/network-config.md#ca-certificate-store) che Claude Code non riesce a rilevare gestisce male le richieste compresse |

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


469| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Deprecata. Usa invece `ENABLE_PROMPT_CACHING_1H`. Non ha effetto sulle sessioni [Claude apps gateway](https://code.claude.com/docs/it/claude-apps-gateway), anche quando il gateway instrada verso Amazon Bedrock |469| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Deprecata. Usa invece `ENABLE_PROMPT_CACHING_1H`. Non ha effetto sulle sessioni [Claude apps gateway](https://code.claude.com/docs/it/claude-apps-gateway), anche quando il gateway instrada verso Amazon Bedrock |

470| `ENABLE_TOOL_SEARCH` | Controlla la [ricerca degli strumenti MCP](https://code.claude.com/docs/it/mcp.md#scale-with-mcp-tool-search). Se non impostata o `true`, differisce gli strumenti MCP, tranne nei [casi che mantengono disattivata la ricerca degli strumenti](https://code.claude.com/docs/it/mcp.md#configure-tool-search). `auto` attiva la ricerca degli strumenti quando le definizioni raggiungono il 10% della finestra di contesto. `auto:N` imposta una soglia personalizzata, ad esempio `auto:5` per il 5%. `false` carica tutti gli strumenti in anticipo. Se un gateway rifiuta la ricerca degli strumenti, consulta [Ricerca degli strumenti tramite un gateway LLM](https://code.claude.com/docs/it/mcp.md#tool-search-through-a-gateway) |470| `ENABLE_TOOL_SEARCH` | Controlla la [ricerca degli strumenti MCP](https://code.claude.com/docs/it/mcp.md#scale-with-mcp-tool-search). Se non impostata o `true`, differisce gli strumenti MCP, tranne nei [casi che mantengono disattivata la ricerca degli strumenti](https://code.claude.com/docs/it/mcp.md#configure-tool-search). `auto` attiva la ricerca degli strumenti quando le definizioni raggiungono il 10% della finestra di contesto. `auto:N` imposta una soglia personalizzata, ad esempio `auto:5` per il 5%. `false` carica tutti gli strumenti in anticipo. Se un gateway rifiuta la ricerca degli strumenti, consulta [Ricerca degli strumenti tramite un gateway LLM](https://code.claude.com/docs/it/mcp.md#tool-search-through-a-gateway) |

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

472| `FORCE_HYPERLINK` | Imposta a `1` per abilitare i collegamenti ipertestuali OSC 8 cliccabili quando il tuo terminale li supporta ma non viene rilevato automaticamente, oppure a `0` per disabilitarli. Quando non è impostata, Claude Code abilita i collegamenti ipertestuali solo quando rileva il supporto del terminale. Claude Code interpreta questo valore come un numero, non come un booleano, quindi un valore come `false`, `no` o `off` abilita i collegamenti ipertestuali invece di disabilitarli. Il [badge della PR o della merge request](https://code.claude.com/docs/it/interactive-mode.md#pr-review-status) nel piè di pagina viene visualizzato come collegamento ipertestuale anche quando Claude Code non riesce a rilevare il supporto del terminale, ad esempio tramite SSH. Imposta `0` per visualizzare il badge come testo semplice |472| `FORCE_HYPERLINK` | Imposta a `1` per abilitare i collegamenti ipertestuali OSC 8 cliccabili quando il tuo terminale li supporta ma non viene rilevato automaticamente. Quando non è impostata, Claude Code abilita la maggior parte dei collegamenti ipertestuali solo quando rileva il supporto del terminale. Il [badge della PR o della merge request](https://code.claude.com/docs/it/interactive-mode.md#pr-review-status) nel piè di pagina e gli URL di accesso lunghi sono comunque collegamenti. Imposta `0`, `false`, `no` o `off` per visualizzarli tutti come testo semplice. Prima della v2.1.314, `false`, `no` e `off` abilitavano invece i collegamenti ipertestuali |

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

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

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


586* Ottenere il [feedback redatto da Claude](https://code.claude.com/docs/it/tools-reference.md#sendfeedback-tool-behavior), che Claude Code attiva tramite un flag recuperato586* Ottenere il [feedback redatto da Claude](https://code.claude.com/docs/it/tools-reference.md#sendfeedback-tool-behavior), che Claude Code attiva tramite un flag recuperato

587* Fare in modo che Claude [tratti i contenuti incollati di grandi dimensioni come testo incollato anziché digitato](https://code.claude.com/docs/it/terminal-config.md#how-claude-treats-pasted-text); il contenuto dietro un segnaposto `[Pasted text #N]` raggiunge Claude senza contrassegni587* Fare in modo che Claude [tratti i contenuti incollati di grandi dimensioni come testo incollato anziché digitato](https://code.claude.com/docs/it/terminal-config.md#how-claude-treats-pasted-text); il contenuto dietro un segnaposto `[Pasted text #N]` raggiunge Claude senza contrassegni

588* Fare in modo che Claude Code [escluda gli strumenti MCP il cui schema di input verrebbe rifiutato dall'API](https://code.claude.com/docs/it/mcp.md#tools-with-invalid-input-schemas)588* Fare in modo che Claude Code [escluda gli strumenti MCP il cui schema di input verrebbe rifiutato dall'API](https://code.claude.com/docs/it/mcp.md#tools-with-invalid-input-schemas)

589* Fare in modo che Claude Code [compatti una conversazione lunga mentre la sessione del terminale è inattiva](https://code.claude.com/docs/it/settings-reference.md#idlecompaction), poco prima della scadenza di una cache dei prompt di un'ora

590 589 

591### Prima sessione dopo un'installazione o un aggiornamento590### Prima sessione dopo un'installazione o un aggiornamento

592 591 

errors.md +66 −11

Details

59| `Could not resolve authentication method` | [Autenticazione](#could-not-resolve-authentication-method) |59| `Could not resolve authentication method` | [Autenticazione](#could-not-resolve-authentication-method) |

60| `Invalid API key` | [Autenticazione](#invalid-api-key) |60| `Invalid API key` | [Autenticazione](#invalid-api-key) |

61| `Your apiKeyHelper script is failing` | [Autenticazione](#your-apikeyhelper-script-is-failing) |61| `Your apiKeyHelper script is failing` | [Autenticazione](#your-apikeyhelper-script-is-failing) |

62| `Claude Code didn't send your claude.ai login, because the API key helper your administrator set isn't in effect` | [Autenticazione](#claude-code-didnt-send-your-claude-ai-login) |

62| `Invalid auth token · Fix external auth token` | [Autenticazione](#invalid-request-header-value) |63| `Invalid auth token · Fix external auth token` | [Autenticazione](#invalid-request-header-value) |

63| `Invalid ANTHROPIC_CUSTOM_HEADERS · Fix the environment variable` | [Autenticazione](#invalid-request-header-value) |64| `Invalid ANTHROPIC_CUSTOM_HEADERS · Fix the environment variable` | [Autenticazione](#invalid-request-header-value) |

64| `Invalid request header from the environment · Fix the environment variable` | [Autenticazione](#invalid-request-header-value) |65| `Invalid request header from the environment · Fix the environment variable` | [Autenticazione](#invalid-request-header-value) |


326| `MCP server "<name>" tool "<tool>" timed out after <N>s. The server asked the user a question, and no answer came before the time limit.` | [Errori degli strumenti](#mcp-tool-call-timed-out-with-the-servers-question-unanswered) |327| `MCP server "<name>" tool "<tool>" timed out after <N>s. The server asked the user a question, and no answer came before the time limit.` | [Errori degli strumenti](#mcp-tool-call-timed-out-with-the-servers-question-unanswered) |

327| `would be spawned with zero tools — refusing` | [Errori degli strumenti](#agent-would-be-spawned-with-zero-tools) |328| `would be spawned with zero tools — refusing` | [Errori degli strumenti](#agent-would-be-spawned-with-zero-tools) |

328| `File is covered by a Read deny rule in your permission settings` | [Errori degli strumenti](#file-is-covered-by-a-read-deny-rule) |329| `File is covered by a Read deny rule in your permission settings` | [Errori degli strumenti](#file-is-covered-by-a-read-deny-rule) |

330| `<path> is outside <dirs>; the permissions.blockWritesOutsideWorkingDirectories setting blocks writes outside the working directories` | [Errori degli strumenti](#setting-blocks-writes-outside-the-working-directories) |

331| `<path>: Writes outside the working directories are blocked (permissions.blockWritesOutsideWorkingDirectories)` | [Errori degli strumenti](#setting-blocks-writes-outside-the-working-directories) |

332| `Writes to Claude Code settings files are blocked while permissions.blockWritesOutsideWorkingDirectories is on` | [Errori degli strumenti](#writes-to-claude-code-settings-files-are-blocked) |

329| `cannot contain null bytes (\0)` | [Errori degli strumenti](#path-cannot-contain-null-bytes) |333| `cannot contain null bytes (\0)` | [Errori degli strumenti](#path-cannot-contain-null-bytes) |

330| `Path contains null bytes` | [Errori degli strumenti](#path-cannot-contain-null-bytes) |334| `Path contains null bytes` | [Errori degli strumenti](#path-cannot-contain-null-bytes) |

331| `command contains the invisible character U+FEFF (byte order mark) or U+180E (Mongolian vowel separator), and was not run` | [Errori degli strumenti](#command-contains-an-invisible-character) |335| `command contains the invisible character U+FEFF (byte order mark) or U+180E (Mongolian vowel separator), and was not run` | [Errori degli strumenti](#command-contains-an-invisible-character) |


548 552 

549* Controlla [status.claude.com](https://status.claude.com) o la pagina di stato del provider indicata nel messaggio per eventuali incidenti in corso553* Controlla [status.claude.com](https://status.claude.com) o la pagina di stato del provider indicata nel messaggio per eventuali incidenti in corso

550* Aspetta un minuto, quindi invia di nuovo il messaggio. Il tuo messaggio originale è ancora nella conversazione, quindi per un prompt lungo puoi digitare `try again` invece di incollarlo tutto.554* Aspetta un minuto, quindi invia di nuovo il messaggio. Il tuo messaggio originale è ancora nella conversazione, quindi per un prompt lungo puoi digitare `try again` invece di incollarlo tutto.

551* Se [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/it/env-vars) punta a un [gateway LLM](https://code.claude.com/docs/it/llm-gateway) e ogni richiesta non riesce in questo modo, verifica se il tuo gateway rifiuta i campi di ricerca degli strumenti che Claude Code invia per impostazione predefinita. Per verificarlo, imposta `ENABLE_TOOL_SEARCH=false` come descritto in [Ricerca degli strumenti tramite un gateway LLM](https://code.claude.com/docs/it/mcp.md#tool-search-through-a-gateway), quindi riprova. Prima della v2.1.304, la ricerca degli strumenti era disattivata dietro un gateway a meno che non la attivassi con `ENABLE_TOOL_SEARCH`.555* Se [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/it/env-vars) punta a un [gateway LLM](https://code.claude.com/docs/it/llm-gateway) e ogni richiesta non riesce in questo modo, verifica che il tuo gateway e il relativo upstream accettino i campi della [ricerca degli strumenti](https://code.claude.com/docs/it/mcp.md#tool-search-through-a-gateway). Per impostazione predefinita, Claude Code invia i campi degli strumenti `defer_loading` e i blocchi `tool_reference`, con l'intestazione `anthropic-beta` che li abilita. Prima della v2.1.304, la ricerca degli strumenti era disattivata dietro un gateway a meno che non la attivassi con `ENABLE_TOOL_SEARCH`.

552* Se l'errore persiste senza alcun incidente pubblicato, esegui `/feedback` in modo che Anthropic possa indagare con i dettagli della tua richiesta. Consulta [Segnalare un errore](#report-an-error) se `/feedback` non è disponibile nel tuo ambiente.556* Se l'errore persiste senza alcun incidente pubblicato, esegui `/feedback` in modo che Anthropic possa indagare con i dettagli della tua richiesta. Consulta [Segnalare un errore](#report-an-error) se `/feedback` non è disponibile nel tuo ambiente.

553 557 

554### API Error: Repeated 529 Overloaded errors558### API Error: Repeated 529 Overloaded errors


672<model> is temporarily unavailable, so auto mode cannot determine the safety of <tool> right now. Wait a moment and then try this action again.676<model> is temporarily unavailable, so auto mode cannot determine the safety of <tool> right now. Wait a moment and then try this action again.

673```677```

674 678 

675In una sessione interattiva, sotto la chiamata allo strumento appare una riga attenuata `Not run · auto mode's check had no usable answer` al posto di questo messaggio. Premi `Ctrl+O` per leggere il messaggio nel [visualizzatore della trascrizione](https://code.claude.com/docs/it/interactive-mode.md#transcript-viewer). I rifiuti `gave no verdict` descritti in [The server returned no safety verdict](#the-server-returned-no-safety-verdict) mostrano la stessa riga. Prima della v2.1.296, il messaggio appariva sotto la chiamata come errore in rosso.679In una sessione interattiva, sotto la chiamata allo strumento appare una riga attenuata `Not run · auto mode's check had no usable answer` al posto di questo messaggio. La riga può anche sostituire un messaggio che indica che [il server non ha fornito alcun verdetto](#the-server-returned-no-safety-verdict) oppure, al di fuori di una sessione remota, uno che inizia con `Auto mode could not evaluate`. Premi `Ctrl+O` per leggere il suo messaggio nel [visualizzatore della trascrizione](https://code.claude.com/docs/it/interactive-mode.md#transcript-viewer). Prima della v2.1.296, il messaggio appariva come errore in rosso.

676 680 

677Quando Claude Code riesce a determinare la categoria dell'errore, la indica tra parentesi dopo `temporarily unavailable`, ad esempio `<model> is temporarily unavailable (rate-limited), so auto mode cannot determine the safety of <tool> right now`. Le categorie sono `(rate-limited)`, `(overloaded)`, `(server error)`, `(timed out)` e `(connection failed)`. Se `(timed out)` o `(connection failed)` si ripete, controlla la tua connessione; consulta [Unable to connect to API](#unable-to-connect-to-api). Prima della v2.1.229, il messaggio non indicava mai una categoria e diceva `Wait briefly and then try this action again`.681Quando Claude Code riesce a determinare la categoria dell'errore, la indica tra parentesi dopo `temporarily unavailable`, ad esempio `<model> is temporarily unavailable (rate-limited), so auto mode cannot determine the safety of <tool> right now`. Le categorie sono `(rate-limited)`, `(overloaded)`, `(server error)`, `(timed out)` e `(connection failed)`. Se `(timed out)` o `(connection failed)` si ripete, controlla la tua connessione; consulta [Unable to connect to API](#unable-to-connect-to-api). Prima della v2.1.229, il messaggio non indicava mai una categoria e diceva `Wait briefly and then try this action again`.

678 682 


833* Esegui `/usage-credits` per acquistare utilizzo aggiuntivo su Pro, Max e Ultra, o per richiederlo al tuo amministratore su Team ed Enterprise. Vedi [usage credits for paid plans](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) per come viene fatturato.837* Esegui `/usage-credits` per acquistare utilizzo aggiuntivo su Pro, Max e Ultra, o per richiederlo al tuo amministratore su Team ed Enterprise. Vedi [usage credits for paid plans](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) per come viene fatturato.

834* Per aggiornare il tuo piano per limiti di base più elevati, vedi [claude.com/pricing](https://claude.com/pricing)838* Per aggiornare il tuo piano per limiti di base più elevati, vedi [claude.com/pricing](https://claude.com/pricing)

835 839 

836Prima che una finestra si esaurisca, Claude Code può avvertirti che hai utilizzato la maggior parte di essa, con un messaggio come `You've used 85% of your session limit · resets 3:45pm`. Per monitorare l'indennità rimanente continuamente, aggiungi i campi `rate_limits` a una [riga di stato personalizzata](https://code.claude.com/docs/it/statusline.md#rate-limit-usage), oppure nell'app Desktop fai clic sull'[anello di utilizzo](https://code.claude.com/docs/it/desktop.md#check-usage) accanto al selettore di modelli.840Prima che una finestra si esaurisca, Claude Code può avvertirti che hai utilizzato la maggior parte di essa, con un messaggio come `You've used 85% of your session limit · resets 3:45pm`. Per monitorare l'indennità rimanente, aggiungi i campi `rate_limits` a una [riga di stato personalizzata](https://code.claude.com/docs/it/statusline.md#rate-limit-usage), oppure nell'app Desktop fai clic sull'[anello di utilizzo](https://code.claude.com/docs/it/desktop.md#check-usage).

837 841 

838### Usage credits required for 1M context842### Usage credits required for 1M context

839 843 


1074* Esegui `/status` per vedere l'errore e verificare che `apiKeyHelper` sia la fonte di credenziali attiva. La riga `apiKeyHelper` mostra `Failing` con i dettagli dell'ultimo errore, come il codice di uscita e l'output di errore del comando, e scompare dopo la successiva esecuzione riuscita. Prima della v2.1.274, `/status` mostrava solo la fonte delle credenziali, non l'errore.1078* Esegui `/status` per vedere l'errore e verificare che `apiKeyHelper` sia la fonte di credenziali attiva. La riga `apiKeyHelper` mostra `Failing` con i dettagli dell'ultimo errore, come il codice di uscita e l'output di errore del comando, e scompare dopo la successiva esecuzione riuscita. Prima della v2.1.274, `/status` mostrava solo la fonte delle credenziali, non l'errore.

1075* Ogni volta che il comando fallisce, il suo codice di uscita e il suo output di errore compaiono anche in un pannello `Authentication` nel terminale. Prima della v2.1.212, il pannello si intitolava `Cloud authentication`.1079* Ogni volta che il comando fallisce, il suo codice di uscita e il suo output di errore compaiono anche in un pannello `Authentication` nel terminale. Prima della v2.1.212, il pannello si intitolava `Cloud authentication`.

1076 1080 

1081### Claude Code didn't send your claude.ai login

1082 

1083Invia questo messaggio completo al tuo amministratore. Elenca le modifiche che può apportare. Il messaggio significa che Claude Code ha rifiutato il tuo prompt. Finché usi il tuo accesso claude.ai, Claude Code continua a rifiutare i prompt, anche dopo un riavvio:

1084 

1085```text theme={null}

1086Claude Code didn't send your claude.ai login, because the API key helper your administrator set isn't in effect. Your organization's managed settings may be overriding it. Ask your administrator to keep the key helper and its API address in effect, to name Anthropic's API address in those managed settings, or to remove the key helper. Run /status to see your setting sources.

1087```

1088 

1089**Cosa fare:**

1090 

1091* Per comunicare al tuo amministratore quali fonti gestite ha la tua macchina, esegui `/status` al prompt di Claude Code e copia la [riga `Setting sources`](https://code.claude.com/docs/it/managed-settings#read-the-source-in-/status). Se compare una riga `Skipped sources`, copia anche quella

1092* Se sei tu ad amministrare le impostazioni, consulta [perché il key helper della macchina non è in vigore](https://code.claude.com/docs/it/server-managed-settings.md#machine-apikeyhelper-not-in-effect)

1093 

1077### Invalid request header value1094### Invalid request header value

1078 1095 

1079Un valore che Claude Code stava per inviare come header di una richiesta contiene un carattere che gli header HTTP non possono contenere: un a capo, un byte NUL o un carattere oltre `U+00FF`, come una virgoletta curva o uno spazio a larghezza zero. Claude Code interrompe la richiesta prima di inviare qualsiasi cosa e indica la variabile o l'impostazione da correggere. La causa abituale è una credenziale incollata da un documento o da una chat che conteneva un carattere invisibile o un a capo indesiderato.1096Un valore che Claude Code stava per inviare come header di una richiesta contiene un carattere che gli header HTTP non possono contenere: un a capo, un byte NUL o un carattere oltre `U+00FF`, come una virgoletta curva o uno spazio a larghezza zero. Claude Code interrompe la richiesta prima di inviare qualsiasi cosa e indica la variabile o l'impostazione da correggere. La causa abituale è una credenziale incollata da un documento o da una chat che conteneva un carattere invisibile o un a capo indesiderato.


1333* Se `/status` mostra solo il tuo accesso, esegui `/login` una volta. Se la credenziale è stata revocata, un nuovo accesso la sostituisce.1350* Se `/status` mostra solo il tuo accesso, esegui `/login` una volta. Se la credenziale è stata revocata, un nuovo accesso la sostituisce.

1334* Se lo stesso messaggio ricompare per lo stesso account di accesso, l'account o l'organizzazione non è più attivo. Controlla l'account e l'organizzazione riportati da `/status` e chiedi all'amministratore della tua organizzazione di ripristinare l'accesso.1351* Se lo stesso messaggio ricompare per lo stesso account di accesso, l'account o l'organizzazione non è più attivo. Controlla l'account e l'organizzazione riportati da `/status` e chiedi all'amministratore della tua organizzazione di ripristinare l'accesso.

1335* Se [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/it/env-vars) punta a un [gateway LLM](https://code.claude.com/docs/it/llm-gateway), il testo dopo `401` è il messaggio del tuo gateway anziché quello di Anthropic, e `/login` non lo modifica. Correggi invece la credenziale che il tuo gateway si aspetta.1352* Se [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/it/env-vars) punta a un [gateway LLM](https://code.claude.com/docs/it/llm-gateway), il testo dopo `401` è il messaggio del tuo gateway anziché quello di Anthropic, e `/login` non lo modifica. Correggi invece la credenziale che il tuo gateway si aspetta.

1336* Se ogni richiesta fallisce con un `401` anche dopo che il tuo gateway ha ricevuto la credenziale che si aspetta, verifica se il gateway sta rifiutando i campi di ricerca degli strumenti che Claude Code invia per impostazione predefinita. Per verificarlo, imposta `ENABLE_TOOL_SEARCH=false` come descritto in [Ricerca degli strumenti tramite un gateway LLM](https://code.claude.com/docs/it/mcp.md#tool-search-through-a-gateway), poi riprova. Prima della v2.1.304, la ricerca degli strumenti era disattivata dietro un gateway a meno che non la attivassi con `ENABLE_TOOL_SEARCH`.1353* Se ogni richiesta fallisce con un `401` anche quando il tuo gateway ha la credenziale che si aspetta, verifica che il gateway e il suo upstream accettino i campi della [ricerca degli strumenti](https://code.claude.com/docs/it/mcp.md#tool-search-through-a-gateway). Per impostazione predefinita, Claude Code invia i campi degli strumenti `defer_loading` e i blocchi `tool_reference`, con l'header `anthropic-beta` che li abilita. Prima della v2.1.304, la ricerca degli strumenti era disattivata dietro un gateway a meno che non la attivassi con `ENABLE_TOOL_SEARCH`.

1337 1354 

1338### Login expired1355### Login expired

1339 1356 


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

1937* Se sei dietro un proxy aziendale, imposta `HTTPS_PROXY` prima di avviare Claude Code e vedi [Network configuration](https://code.claude.com/docs/it/network-config.md)1954* Se sei dietro un proxy aziendale, imposta `HTTPS_PROXY` prima di avviare Claude Code e vedi [Network configuration](https://code.claude.com/docs/it/network-config.md)

1938* Se instradi attraverso un gateway LLM o un relay, imposta [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/it/env-vars) al suo indirizzo. Vedi [Connect Claude Code to an LLM gateway](https://code.claude.com/docs/it/llm-gateway-connect.md) per la configurazione.1955* Se instradi attraverso un gateway LLM o un relay, imposta [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/it/env-vars) al suo indirizzo. Vedi [Connect Claude Code to an LLM gateway](https://code.claude.com/docs/it/llm-gateway-connect.md) per la configurazione.

1939* Se `ANTHROPIC_BASE_URL` punta già al tuo gateway e ogni richiesta termina con `Connection dropped`, controlla se il tuo gateway rifiuta i campi di ricerca degli strumenti che Claude Code invia per impostazione predefinita. Per verificarlo, imposta `ENABLE_TOOL_SEARCH=false` come descritto in [Ricerca degli strumenti tramite un gateway LLM](https://code.claude.com/docs/it/mcp.md#tool-search-through-a-gateway), quindi riprova. Prima della v2.1.304, la ricerca degli strumenti era disattivata dietro un gateway a meno che non la attivassi con `ENABLE_TOOL_SEARCH`.1956* Se `ANTHROPIC_BASE_URL` punta già al tuo gateway e ogni richiesta termina con `Connection dropped`, controlla che il tuo gateway e il suo upstream accettino i campi della [ricerca degli strumenti](https://code.claude.com/docs/it/mcp.md#tool-search-through-a-gateway). Per impostazione predefinita, Claude Code invia i campi degli strumenti `defer_loading` e i blocchi `tool_reference`, con l'intestazione `anthropic-beta` che li abilita. Prima della v2.1.304, la ricerca degli strumenti era disattivata dietro un gateway a meno che non la attivassi con `ENABLE_TOOL_SEARCH`.

1940* Assicurati che il tuo firewall consenta gli host elencati in [Network access requirements](https://code.claude.com/docs/it/network-config.md#network-access-requirements)1957* Assicurati che il tuo firewall consenta gli host elencati in [Network access requirements](https://code.claude.com/docs/it/network-config.md#network-access-requirements)

1941* I guasti intermittenti vengono [ritentati automaticamente](#automatic-retries)1958* I guasti intermittenti vengono [ritentati automaticamente](#automatic-retries)

1942 1959 


2471**Cosa fare:**2488**Cosa fare:**

2472 2489 

2473* Se il messaggio contiene `context_management: Extra inputs are not permitted`, [aggiorna Claude Code](https://code.claude.com/docs/it/setup.md#update-claude-code) alla v2.1.304 o successiva. Dopo l'aggiornamento, Claude Code risponde a questo rifiuto inviando la richiesta un'altra volta senza il campo. Prima della v2.1.304, Claude Code non riprovava dopo questo rifiuto.2490* Se il messaggio contiene `context_management: Extra inputs are not permitted`, [aggiorna Claude Code](https://code.claude.com/docs/it/setup.md#update-claude-code) alla v2.1.304 o successiva. Dopo l'aggiornamento, Claude Code risponde a questo rifiuto inviando la richiesta un'altra volta senza il campo. Prima della v2.1.304, Claude Code non riprovava dopo questo rifiuto.

2474* Se il messaggio nomina `defer_loading` o `tool_reference`, aggiorna Claude Code o disattiva la [ricerca degli strumenti](https://code.claude.com/docs/it/mcp.md#tool-search-through-a-gateway):2491* Se il messaggio indica `defer_loading` o `tool_reference`, [aggiorna Claude Code](https://code.claude.com/docs/it/setup.md#update-claude-code) alla v2.1.305 o successiva. Claude Code risponde quindi a questo rifiuto [inviando di nuovo la richiesta una volta](https://code.claude.com/docs/it/llm-gateway-protocol.md#retry-without-tool-search) senza i campi della ricerca degli strumenti.

2475 * [Aggiorna Claude Code](https://code.claude.com/docs/it/setup.md#update-claude-code) alla v2.1.305 o successiva. Claude Code risponde quindi a questo rifiuto inviando la richiesta un'altra volta senza i campi della ricerca degli strumenti.

2476 * Se non puoi aggiornare, o se il messaggio compare ancora dopo l'aggiornamento, imposta `ENABLE_TOOL_SEARCH=false` nella tua shell o nell'[`env` delle impostazioni](https://code.claude.com/docs/it/settings-reference#env). Se un file di impostazioni imposta già la variabile, modificala lì, poiché quel valore [può sovrascrivere un export della shell](https://code.claude.com/docs/it/settings-reference.md#how-env-values-interact-with-your-shell). Claude Code carica quindi gli strumenti MCP in anticipo.

2477* Se il tuo gateway scarta l'intestazione, configuralo per inoltrare l'intestazione `anthropic-beta`. Consulta [pass-through delle funzionalità](https://code.claude.com/docs/it/llm-gateway-protocol.md#feature-pass-through) per sapere cosa devono inoltrare i gateway.2492* Se il tuo gateway scarta l'intestazione, configuralo per inoltrare l'intestazione `anthropic-beta`. Consulta [pass-through delle funzionalità](https://code.claude.com/docs/it/llm-gateway-protocol.md#feature-pass-through) per sapere cosa devono inoltrare i gateway.

2478* Come fallback, imposta [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](https://code.claude.com/docs/it/env-vars) prima di avviare. [Disabilita le capacità pre-release](https://code.claude.com/docs/it/llm-gateway-protocol.md#disable-pre-release-capabilities) copre l'ambito esatto.2493* Come fallback, imposta [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](https://code.claude.com/docs/it/env-vars) prima di avviare. [Disabilita le capacità pre-release](https://code.claude.com/docs/it/llm-gateway-protocol.md#disable-pre-release-capabilities) copre l'ambito esatto.

2479 2494 


2552* Usa un alias come `sonnet` o `opus` invece di un ID completo con versione. Gli alias si risolvono in un valore predefinito mantenuto in modo che non diventino obsoleti. Vedi [Configurazione del modello](https://code.claude.com/docs/it/model-config.md).2567* Usa un alias come `sonnet` o `opus` invece di un ID completo con versione. Gli alias si risolvono in un valore predefinito mantenuto in modo che non diventino obsoleti. Vedi [Configurazione del modello](https://code.claude.com/docs/it/model-config.md).

2553* Se il modello sbagliato continua a tornare nella CLI, un ID obsoleto è impostato da qualche parte. Controlla i posti in cui puoi impostare un modello in [ordine di priorità](https://code.claude.com/docs/it/model-config.md#setting-your-model) e rimuovi il valore obsoleto.2568* Se il modello sbagliato continua a tornare nella CLI, un ID obsoleto è impostato da qualche parte. Controlla i posti in cui puoi impostare un modello in [ordine di priorità](https://code.claude.com/docs/it/model-config.md#setting-your-model) e rimuovi il valore obsoleto.

2554* Claude Code segnala un accesso claude.ai scaduto come [Login scaduto](#login-expired), non come questo errore. Prima della v2.1.206, un accesso scaduto che non poteva più essere aggiornato falliva con ogni modello con questo errore; esegui `/login` se lo vedi su una versione precedente.2569* Claude Code segnala un accesso claude.ai scaduto come [Login scaduto](#login-expired), non come questo errore. Prima della v2.1.206, un accesso scaduto che non poteva più essere aggiornato falliva con ogni modello con questo errore; esegui `/login` se lo vedi su una versione precedente.

2555* Se [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/it/env-vars) punta a un [gateway LLM](https://code.claude.com/docs/it/llm-gateway) e ogni modello fallisce in questo modo, verifica se il tuo gateway sta rifiutando i campi della ricerca degli strumenti che Claude Code invia per impostazione predefinita. Per verificarlo, imposta `ENABLE_TOOL_SEARCH=false` come descritto in [Ricerca degli strumenti tramite un gateway LLM](https://code.claude.com/docs/it/mcp.md#tool-search-through-a-gateway), quindi riprova. Prima della v2.1.304, la ricerca degli strumenti era disattivata dietro un gateway a meno che non la attivassi con `ENABLE_TOOL_SEARCH`.2570* Se [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/it/env-vars) punta a un [gateway LLM](https://code.claude.com/docs/it/llm-gateway) e ogni modello fallisce in questo modo, verifica che il tuo gateway e il suo upstream accettino i campi della [ricerca degli strumenti](https://code.claude.com/docs/it/mcp.md#tool-search-through-a-gateway). Per impostazione predefinita, Claude Code invia i campi degli strumenti `defer_loading` e i blocchi `tool_reference`, con l'header `anthropic-beta` che li abilita. Prima della v2.1.304, la ricerca degli strumenti era disattivata dietro un gateway a meno che non la attivassi con `ENABLE_TOOL_SEARCH`.

2556* Per le distribuzioni di Google Cloud's Agent Platform, vedi [Risoluzione dei problemi di Google Cloud's Agent Platform](https://code.claude.com/docs/it/google-vertex-ai.md#troubleshooting).2571* Per le distribuzioni di Google Cloud's Agent Platform, vedi [Risoluzione dei problemi di Google Cloud's Agent Platform](https://code.claude.com/docs/it/google-vertex-ai.md#troubleshooting).

2557 2572 

2558### Model is not a recognized model id2573### Model is not a recognized model id


4563* Se Claude deve poter modificare il file, rimuovi o restringi la regola di negazione `Read` in `/permissions` o nelle [impostazioni](https://code.claude.com/docs/it/settings-reference.md#permission-settings)4578* Se Claude deve poter modificare il file, rimuovi o restringi la regola di negazione `Read` in `/permissions` o nelle [impostazioni](https://code.claude.com/docs/it/settings-reference.md#permission-settings)

4564* Se il file deve rimanere intatto, mantieni la regola e aggiungi una regola di negazione `Edit` per lo stesso percorso per bloccare anche lo strumento NotebookEdit4579* Se il file deve rimanere intatto, mantieni la regola e aggiungi una regola di negazione `Edit` per lo stesso percorso per bloccare anche lo strumento NotebookEdit

4565 4580 

4581### Setting blocks writes outside the working directories

4582 

4583Quando Claude tenta di scrivere un file e la chiamata allo strumento fallisce con questo messaggio, il percorso si trova al di fuori delle [directory di lavoro](https://code.claude.com/docs/it/permissions.md#working-directories) della sessione e [`permissions.blockWritesOutsideWorkingDirectories`](https://code.claude.com/docs/it/settings-reference#permissions-blockwritesoutsideworkingdirectories) è attiva:

4584 

4585```text wrap theme={null}

4586<path> is outside <dirs>; the permissions.blockWritesOutsideWorkingDirectories setting blocks writes outside the working directories. Ask the user to add the directory with /add-dir, or to remove that setting.

4587```

4588 

4589Claude Code rifiuta quella scrittura in ogni modalità di permesso. Il rifiuto può anche riportare:

4590 

4591```text wrap theme={null}

4592<path>: Writes outside the working directories are blocked (permissions.blockWritesOutsideWorkingDirectories). Add the directory with /add-dir, or remove that setting.

4593```

4594 

4595**Cosa fare:**

4596 

4597* Se Claude non deve scrivere lì, non fare nulla

4598* Per consentire a Claude di scrivere in una directory esistente che contiene il percorso, esegui `/add-dir <directory>` nel prompt di Claude Code, oppure passa `--add-dir <directory>` quando avvii Claude Code

4599* Se il percorso è un file di impostazioni di Claude Code, come `~/.claude/settings.json`, modificalo tu stesso. Aggiungere la sua directory con `/add-dir` non serve, perché a quel punto Claude Code rifiuta la scrittura [in quanto file di impostazioni](#writes-to-claude-code-settings-files-are-blocked).

4600* Per mantenere una directory scrivibile in ogni sessione, elencala in [`permissions.additionalDirectories`](https://code.claude.com/docs/it/settings-reference#permissions-additionaldirectories) nelle tue impostazioni utente o nelle impostazioni gestite

4601* Per disattivare `permissions.blockWritesOutsideWorkingDirectories`, rimuovila da ogni file di impostazioni che la imposta, poi riavvia Claude Code

4602* Se nessuno dei tuoi file di impostazioni contiene `permissions.blockWritesOutsideWorkingDirectories`, l'impostazione può provenire da `--settings` o da un'applicazione host. Claude Code rifiuta queste scritture anche finché non riesce a leggere `permissions` nelle tue [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md#keys-that-fail-closed). Chiedi a chi avvia o gestisce la sessione.

4603 

4604### Writes to Claude Code settings files are blocked

4605 

4606Quando Claude tenta di scrivere un file e la chiamata allo strumento fallisce con questo messaggio, Claude Code considera il file uno dei propri file di impostazioni e [`permissions.blockWritesOutsideWorkingDirectories`](https://code.claude.com/docs/it/settings-reference#permissions-blockwritesoutsideworkingdirectories) è attiva:

4607 

4608```text wrap theme={null}

4609<path>: Writes to Claude Code settings files are blocked while permissions.blockWritesOutsideWorkingDirectories is on, because a settings file can lift that block. While a managed settings folder cannot be resolved, any .json file counts as one.

4610```

4611 

4612**Cosa fare:**

4613 

4614* Per modificare un'impostazione, modifica tu stesso il file di impostazioni

4615* Per consentire di nuovo a Claude di modificare i file di impostazioni, rimuovi `permissions.blockWritesOutsideWorkingDirectories` da ogni file di impostazioni che la imposta, poi riavvia Claude Code

4616* Se il file non è uno dei tuoi file di impostazioni, cercalo tra gli altri file che Claude Code considera file di impostazioni:

4617 * **Un file che hai passato a `--agents` o `--mcp-config`**: modificalo tu stesso

4618 * **La copia memorizzata delle [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md#security-considerations) e i file conservati insieme a essa**: chiedi a un [Owner](https://code.claude.com/docs/it/server-managed-settings.md#access-control) di modificare l'impostazione nelle impostazioni gestite dal server.

4619 * **Qualsiasi file `.json`, finché Claude Code non riesce a determinare dove porta la cartella [`managed-settings.d/`](https://code.claude.com/docs/it/managed-settings#split-a-file-based-policy-across-teams)**: chiedi al tuo amministratore di controllare quella cartella

4620 

4566### Path cannot contain null bytes4621### Path cannot contain null bytes

4567 4622 

4568L'argomento percorso o pattern di una chiamata a uno strumento per i file conteneva un byte nullo, che i file system e gli strumenti di ricerca non possono accettare. Read, Write, Edit, NotebookEdit, Glob e Grep effettuano questo controllo, e il messaggio indica lo strumento e l'argomento:4623L'argomento percorso o pattern di una chiamata a uno strumento per i file conteneva un byte nullo, che i file system e gli strumenti di ricerca non possono accettare. Read, Write, Edit, NotebookEdit, Glob e Grep effettuano questo controllo, e il messaggio indica lo strumento e l'argomento:


6147In uno script o harness che legge stderr, abbinare il prefisso `[claude-code:unrecognized_model]`. Dopo il prefisso e uno spazio, Claude Code scrive un oggetto JSON su una riga. Claude Code può aggiungere campi ad esso in una versione successiva, quindi ignorare qualsiasi campo che non vi aspettate. Scrive almeno questi due:6202In uno script o harness che legge stderr, abbinare il prefisso `[claude-code:unrecognized_model]`. Dopo il prefisso e uno spazio, Claude Code scrive un oggetto JSON su una riga. Claude Code può aggiungere campi ad esso in una versione successiva, quindi ignorare qualsiasi campo che non vi aspettate. Scrive almeno questi due:

6148 6203 

6149* `model`: la stringa del modello come l'avete configurata6204* `model`: la stringa del modello come l'avete configurata

6150* `query_source`: il percorso della richiesta che ha usato il modello. Claude Code segnala `sdk` per un'esecuzione `-p` e un valore che inizia con `agent:` per un subagente.6205* `query_source`: il percorso della richiesta che ha usato il modello. Ad esempio, il valore è `sdk` per la conversazione principale di un'esecuzione `-p` e inizia con `agent:` per un subagent.

6151 6206 

6152Claude Code scrive la riga in uno di due posti, a seconda di come la eseguite:6207Claude Code scrive la riga in uno di due posti, a seconda di come la eseguite:

6153 6208 

6154* In [modalità non interattiva](https://code.claude.com/docs/it/headless.md) con `-p`, Claude Code la scrive su stderr sotto ogni `--output-format`, in modo che possiate analizzare stdout senza filtrare la riga6209* In [modalità non interattiva](https://code.claude.com/docs/it/headless.md) con `-p`, Claude Code la scrive su stderr sotto ogni `--output-format`, in modo che possiate analizzare stdout senza filtrare la riga

6155* In una sessione interattiva o una [sessione in background](https://code.claude.com/docs/it/agent-view.md), Claude Code la scrive al log di debug invece; eseguire con `--debug` per catturarla in `~/.claude/debug/<session-id>.txt`6210* In una sessione interattiva o una [sessione in background](https://code.claude.com/docs/it/agent-view.md), Claude Code la scrive al log di debug invece; eseguire con `--debug` per catturarla in `~/.claude/debug/<session-id>.txt`

6156 6211 

6157Claude Code scrive la riga una volta per stringa di modello per processo. Scrive una riga separata per ogni ulteriore ID non riconosciuto, come uno che un [subagente](https://code.claude.com/docs/it/sub-agents.md#choose-a-model) o [funzionalità in background](https://code.claude.com/docs/it/costs.md#background-token-usage) usa.6212Claude Code scrive la riga una volta per ID di modello per processo. Scrive una riga separata per ogni ulteriore ID non riconosciuto, ad esempio uno usato da un [subagent](https://code.claude.com/docs/it/sub-agents.md#choose-a-model) o da una [funzionalità in background](https://code.claude.com/docs/it/model-config.md#environment-variables).

6158 6213 

6159Claude Code non scrive la riga per ID di provider che risolve a un modello che riconosce, come ID Amazon Bedrock `us.anthropic.claude-...`, ID di Google Cloud's Agent Platform con un suffisso di versione `@`, e nomi di distribuzione Microsoft Foundry che contengono un ID di modello Claude. Claude Code controlla il modello dietro un [ARN del profilo di inferenza dell'applicazione](https://code.claude.com/docs/it/amazon-bedrock.md#map-each-model-version-to-an-inference-profile) di Amazon Bedrock piuttosto che l'ARN stesso. Non scrive alcuna riga per un ARN che non può risolvere, come uno digitato male.6214Claude Code non scrive la riga per ID di provider che risolve a un modello che riconosce, come ID Amazon Bedrock `us.anthropic.claude-...`, ID di Google Cloud's Agent Platform con un suffisso di versione `@`, e nomi di distribuzione Microsoft Foundry che contengono un ID di modello Claude. Claude Code controlla il modello dietro un [ARN del profilo di inferenza dell'applicazione](https://code.claude.com/docs/it/amazon-bedrock.md#map-each-model-version-to-an-inference-profile) di Amazon Bedrock piuttosto che l'ARN stesso. Non scrive alcuna riga per un ARN che non può risolvere, come uno digitato male.

6160 6215 

fast-mode.md +8 −1

Details

14 14 

15La modalità veloce non è un modello diverso. Utilizza Claude Opus con una configurazione API diversa che dà priorità alla velocità rispetto all'efficienza dei costi. Ottieni la stessa qualità e capacità con risposte più veloci. La modalità veloce è supportata su Opus 5.5, Opus 5 e Opus 4.8. Non è disponibile su Sonnet, Haiku o altri modelli.15La modalità veloce non è un modello diverso. Utilizza Claude Opus con una configurazione API diversa che dà priorità alla velocità rispetto all'efficienza dei costi. Ottieni la stessa qualità e capacità con risposte più veloci. La modalità veloce è supportata su Opus 5.5, Opus 5 e Opus 4.8. Non è disponibile su Sonnet, Haiku o altri modelli.

16 16 

17> [!WARNING]

18>

19> La modalità veloce per Opus 4.8 è stata deprecata il 30 ottobre 2026 e verrà rimossa il 30 novembre 2026. Se dopo tale data il tuo modello è ancora Opus 4.8 con la modalità veloce attiva, l'API rifiuta le tue richieste. Entro quella data, passa a Opus 5.5 oppure disattiva la modalità veloce nella tua sessione:

20>

21> * **Per mantenere la modalità veloce**: usa [`/model`](https://code.claude.com/docs/it/model-config#setting-your-model) per passare a [Opus 5.5](https://code.claude.com/docs/it/model-config.md#model-aliases), che richiede Claude Code v2.1.280 o versioni successive. La modalità veloce resta attiva dopo il passaggio. Se una nuova sessione si avvia ancora su Opus 4.8, consulta [Una nuova sessione si avvia su un modello diverso da quello scelto](https://code.claude.com/docs/it/model-config.md#a-new-session-starts-on-a-different-model-than-you-picked).

22> * **Per restare su Opus 4.8 a velocità standard**: esegui [`/fast off`](https://code.claude.com/docs/it/commands)

23 

17Opus 4.7 non supporta la modalità veloce, quindi il passaggio ad esso disattiva la modalità veloce. La modalità veloce per Opus 4.7 è stata deprecata il 25 giugno 2026 e rimossa il 24 luglio 2026.24Opus 4.7 non supporta la modalità veloce, quindi il passaggio ad esso disattiva la modalità veloce. La modalità veloce per Opus 4.7 è stata deprecata il 25 giugno 2026 e rimossa il 24 luglio 2026.

18 25 

19Cosa sapere:26Cosa sapere:


88 95 

89* **Pro, Max e Ultra**: paghi la modalità veloce dai tuoi crediti di utilizzo. Vai a [**Settings > Usage**](https://claude.ai/settings/usage) su claude.ai, dove la sezione **Usage credits** mostra quanto hai speso in crediti di utilizzo questo mese. Quella cifra include la modalità veloce ma non la separa singolarmente.96* **Pro, Max e Ultra**: paghi la modalità veloce dai tuoi crediti di utilizzo. Vai a [**Settings > Usage**](https://claude.ai/settings/usage) su claude.ai, dove la sezione **Usage credits** mostra quanto hai speso in crediti di utilizzo questo mese. Quella cifra include la modalità veloce ma non la separa singolarmente.

90* **Team ed Enterprise**: la tua organizzazione paga l'utilizzo della modalità veloce dai suoi crediti di utilizzo. Per vedere la tua spesa in crediti di utilizzo, esegui [`/usage`](https://code.claude.com/docs/it/costs#check-your-usage-credits-spend). Per vedere dove la tua organizzazione vede quella spesa, consulta [Claude per Teams ed Enterprise](https://code.claude.com/docs/it/costs.md#claude-for-teams-and-enterprise).97* **Team ed Enterprise**: la tua organizzazione paga l'utilizzo della modalità veloce dai suoi crediti di utilizzo. Per vedere la tua spesa in crediti di utilizzo, esegui [`/usage`](https://code.claude.com/docs/it/costs#check-your-usage-credits-spend). Per vedere dove la tua organizzazione vede quella spesa, consulta [Claude per Teams ed Enterprise](https://code.claude.com/docs/it/costs.md#claude-for-teams-and-enterprise).

91* **Claude Console**: la tua organizzazione paga la modalità veloce insieme al resto dell'utilizzo della sua API. Sulle pagine [Usage](https://platform.claude.com/usage) e [Cost](https://platform.claude.com/cost) di Console, seleziona **Speed (Research Preview)** nel menu **Group by** per separare la modalità veloce dall'utilizzo a velocità standard. Vedi quell'opzione solo quando l'intervallo di date selezionato include l'utilizzo della modalità veloce.98* **Claude Console**: la tua organizzazione paga la modalità veloce insieme al resto dell'utilizzo della sua API. Sulle pagine [Usage](https://platform.claude.com/usage) e [Cost](https://platform.claude.com/cost) di Console, seleziona **Speed (research preview)** nel menu **Group by** per separare la modalità veloce dall'utilizzo a velocità standard. Vedi quell'opzione solo quando l'intervallo di date selezionato include l'utilizzo della modalità veloce.

92 99 

93## Decidi quando usare la modalità veloce100## Decidi quando usare la modalità veloce

94 101 

Details

192 192 

193Quando Claude Code si avvia con Google Cloud's Agent Platform configurato, verifica che i modelli che intende utilizzare siano accessibili nel tuo progetto.193Quando Claude Code si avvia con Google Cloud's Agent Platform configurato, verifica che i modelli che intende utilizzare siano accessibili nel tuo progetto.

194 194 

195Se hai fissato una versione del modello più vecchia del valore predefinito corrente di Claude Code, e il tuo progetto può invocare la versione più recente, Claude Code ti chiede di aggiornare il fissaggio. Accettare scrive il nuovo ID modello nel tuo [file di impostazioni utente](https://code.claude.com/docs/it/settings.md) e riavvia Claude Code. Rifiutare viene ricordato fino al prossimo cambio di versione predefinita.195Potresti aver fissato una versione del modello più vecchia del valore predefinito corrente di Claude Code. Se il tuo progetto può invocare la versione più recente, Claude Code ti chiede di aggiornare il fissaggio:

196 

197* **Se accetti**: Claude Code scrive il nuovo ID modello nel tuo [file di impostazioni utente](https://code.claude.com/docs/it/settings.md) e si riavvia

198* **Se rifiuti**: Claude Code ricorda la tua scelta fino al prossimo cambio di versione predefinita

199 

200Per un fissaggio nel blocco `env` delle [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md), Claude Code non esegue alcun controllo e non mostra alcuna richiesta di conferma.

196 201 

197Se non hai fissato un modello e il valore predefinito corrente non è disponibile nel tuo progetto, Claude Code ritorna alla versione precedente per la sessione corrente e mostra un avviso. Prova le versioni precedenti del modello predefinito per primo e, quando il valore predefinito è un modello Opus e nessuna versione Opus è disponibile, ritorna al modello Sonnet predefinito. Il ritorno non è persistente. Abilita il modello più recente in [Model Garden](https://console.cloud.google.com/vertex-ai/model-garden) o [fissa una versione](#5-pin-model-versions) per rendere la scelta permanente.202Se non hai fissato un modello e il valore predefinito corrente non è disponibile nel tuo progetto, Claude Code ritorna alla versione precedente per la sessione corrente e mostra un avviso. Prova le versioni precedenti del modello predefinito per primo e, quando il valore predefinito è un modello Opus e nessuna versione Opus è disponibile, ritorna al modello Sonnet predefinito. Il ritorno non è persistente. Abilita il modello più recente in [Model Garden](https://console.cloud.google.com/vertex-ai/model-garden) o [fissa una versione](#5-pin-model-versions) per rendere la scelta permanente.

198 203 

hooks.md +3 −3

Details

580| Campo | Obbligatorio | Descrizione |580| Campo | Obbligatorio | Descrizione |

581| :- | :- | :- |581| :- | :- | :- |

582| `prompt` | sì | Testo del prompt da inviare al modello. Utilizza `$ARGUMENTS` come placeholder per l'input JSON dell'hook. Sfuggi con una barra rovesciata per includere testo letterale: `\$1.00` viene renderizzato come `$1.00` |582| `prompt` | sì | Testo del prompt da inviare al modello. Utilizza `$ARGUMENTS` come placeholder per l'input JSON dell'hook. Sfuggi con una barra rovesciata per includere testo letterale: `\$1.00` viene renderizzato come `$1.00` |

583| `model` | no | Modello da utilizzare per la valutazione. Impostazione predefinita al modello che Claude Code utilizza per la [funzionalità di background](https://code.claude.com/docs/it/costs.md#background-token-usage) |583| `model` | no | Modello da utilizzare per la valutazione. Impostazione predefinita al modello che Claude Code utilizza per la [funzionalità di background](https://code.claude.com/docs/it/model-config.md#environment-variables) |

584 584 

585### Riferisci gli script per percorso585### Riferisci gli script per percorso

586 586 


3914 3914 

3915Invece di eseguire un comando Bash, gli hook basati su prompt:3915Invece di eseguire un comando Bash, gli hook basati su prompt:

3916 3916 

39171. Inviano l'input del hook e il prompt a un modello Claude, per impostazione predefinita quello che Claude Code utilizza per la [funzionalità in background](https://code.claude.com/docs/it/costs.md#background-token-usage)39171. Inviano l'input del hook e il prompt a un modello Claude, per impostazione predefinita quello che Claude Code utilizza per la [funzionalità in background](https://code.claude.com/docs/it/model-config.md#environment-variables)

39182. L'LLM risponde con JSON strutturato contenente una decisione39182. L'LLM risponde con JSON strutturato contenente una decisione

39193. Claude Code elabora automaticamente la decisione39193. Claude Code elabora automaticamente la decisione

3920 3920 


3947| :- | :- | :- |3947| :- | :- | :- |

3948| `type` | sì | Deve essere `"prompt"` |3948| `type` | sì | Deve essere `"prompt"` |

3949| `prompt` | sì | Il testo del prompt da inviare all'LLM. Utilizzare `$ARGUMENTS` come segnaposto per l'input JSON del hook. Se `$ARGUMENTS` non è presente, l'input JSON viene aggiunto al prompt |3949| `prompt` | sì | Il testo del prompt da inviare all'LLM. Utilizzare `$ARGUMENTS` come segnaposto per l'input JSON del hook. Se `$ARGUMENTS` non è presente, l'input JSON viene aggiunto al prompt |

3950| `model` | no | Modello da utilizzare per la valutazione. Impostazione predefinita: il modello che Claude Code utilizza per la [funzionalità in background](https://code.claude.com/docs/it/costs.md#background-token-usage) |3950| `model` | no | Modello da utilizzare per la valutazione. Impostazione predefinita: il modello che Claude Code utilizza per la [funzionalità in background](https://code.claude.com/docs/it/model-config.md#environment-variables) |

3951| `timeout` | no | Timeout in secondi. Impostazione predefinita: 30 |3951| `timeout` | no | Timeout in secondi. Impostazione predefinita: 30 |

3952| `continueOnBlock` | no | Sugli eventi a cui si applica, `true` reinvia un motivo `ok: false` a Claude e continua invece di terminare il turno. Impostazione predefinita: `false`. Vedere [Schema di risposta](#response-schema) per il comportamento per evento |3952| `continueOnBlock` | no | Sugli eventi a cui si applica, `true` reinvia un motivo `ok: false` a Claude e continua invece di terminare il turno. Impostazione predefinita: `false`. Vedere [Schema di risposta](#response-schema) per il comportamento per evento |

3953 3953 

Details

708 708 

709In una [sessione in background](https://code.claude.com/docs/it/agent-view.md#attach-to-a-session) collegata, `Left` si scollega e vi restituisce alla vista agente, anche mentre la risposta sta ancora arrivando. La domanda laterale continua a essere eseguita mentre siete assenti. La prossima volta che vi collegate alla sessione, l'overlay si riapre con la domanda laterale, o con la sua risposta. Prima della v2.1.257, `Left` non si scollegava lì.709In una [sessione in background](https://code.claude.com/docs/it/agent-view.md#attach-to-a-session) collegata, `Left` si scollega e vi restituisce alla vista agente, anche mentre la risposta sta ancora arrivando. La domanda laterale continua a essere eseguita mentre siete assenti. La prossima volta che vi collegate alla sessione, l'overlay si riapre con la domanda laterale, o con la sua risposta. Prima della v2.1.257, `Left` non si scollegava lì.

710 710 

711`/btw` vede la vostra conversazione completa ma non ha strumenti. Un [subagent](https://code.claude.com/docs/it/sub-agents.md) ha strumenti e inizia dal prompt che riceve, o, per un [fork](https://code.claude.com/docs/it/sub-agents.md#fork-the-current-conversation), da una copia di questa conversazione. Usate `/btw` per chiedere informazioni su ciò che Claude già conosce da questa sessione; usate un subagent per andare a scoprire qualcosa di nuovo.711`/btw` vede la tua conversazione completa, o la [trascrizione del subagent che hai aperto](#ask-btw-about-a-subagent), ma non ha strumenti. Un [subagent](https://code.claude.com/docs/it/sub-agents.md) ha strumenti e inizia dal prompt che riceve. Un [fork](https://code.claude.com/docs/it/sub-agents.md#fork-the-current-conversation) inizia da una copia di questa conversazione. Usa `/btw` per chiedere informazioni su ciò che Claude già conosce da questa sessione; usa un subagent per andare a scoprire qualcosa di nuovo.

712 

713### Chiedere a /btw informazioni su un subagent

714 

715Con la [trascrizione di un subagent aperta](https://code.claude.com/docs/it/sub-agents.md#observe-and-steer-running-forks), Claude risponde a `/btw` basandosi su quella trascrizione invece che sulla conversazione principale, così puoi chiedere cosa ha fatto il subagent. Un `/btw` successivo da quella trascrizione vede solo le domande laterali che hai fatto da lì. Richiede Claude Code v2.1.314 o successiva.

716 

717Dalla trascrizione di un membro di un [team di agenti](https://code.claude.com/docs/it/agent-teams.md), Claude risponde basandosi sulla conversazione principale.

712 718 

713## Elenco attività719## Elenco attività

714 720 


749* **Dopo che il computer è andato in sospensione**: se è rimasto in sospensione per più di circa 30 minuti e il limite si è ripristinato durante la sospensione, la prima riga riporta `Your usage limit has reset` e la seconda `Press enter to continue`. Premi `Enter` per continuare. Dopo una sospensione più breve, o terminata prima del ripristino, Claude Code continua automaticamente.755* **Dopo che il computer è andato in sospensione**: se è rimasto in sospensione per più di circa 30 minuti e il limite si è ripristinato durante la sospensione, la prima riga riporta `Your usage limit has reset` e la seconda `Press enter to continue`. Premi `Enter` per continuare. Dopo una sospensione più breve, o terminata prima del ripristino, Claude Code continua automaticamente.

750* **Anticipatamente**: quando completate l'aggiunta di [crediti di utilizzo](https://code.claude.com/docs/it/costs.md#add-usage-credits-to-your-subscription) con `/usage-credits`, effettuate di nuovo l'accesso dopo `/upgrade`, o cambiate modello con `/model` durante l'attesa, Claude Code verifica se l'utilizzo è di nuovo disponibile e continua immediatamente se lo è. Non verifica dopo un aggiornamento o un acquisto che effettuate in un browser da soli. In [`opusplan`](https://code.claude.com/docs/it/model-config#opusplan-model-setting) e altre impostazioni di modello che eseguono la modalità plan su un modello diverso, Claude Code attende il ripristino.756* **Anticipatamente**: quando completate l'aggiunta di [crediti di utilizzo](https://code.claude.com/docs/it/costs.md#add-usage-credits-to-your-subscription) con `/usage-credits`, effettuate di nuovo l'accesso dopo `/upgrade`, o cambiate modello con `/model` durante l'attesa, Claude Code verifica se l'utilizzo è di nuovo disponibile e continua immediatamente se lo è. Non verifica dopo un aggiornamento o un acquisto che effettuate in un browser da soli. In [`opusplan`](https://code.claude.com/docs/it/model-config#opusplan-model-setting) e altre impostazioni di modello che eseguono la modalità plan su un modello diverso, Claude Code attende il ripristino.

751 757 

752L'attività continuata viene eseguita come qualsiasi altro turno. Claude Code continua a chiedere [autorizzazioni](https://code.claude.com/docs/it/permissions.md) come al solito, quindi l'attività può fermarsi su un prompt mentre siete assenti. Se raggiunge di nuovo il limite, Claude Code riattiva l'attesa automaticamente al massimo due volte di seguito, quindi si ferma e mostra `Automatic continue stopped after repeated usage-limit hits · /rate-limit-options to try again`.758Nell'attività continuata, Claude Code continua a chiedere [permessi](https://code.claude.com/docs/it/permissions.md) come al solito, quindi l'attività può fermarsi su una richiesta di permesso mentre sei assente. Se l'attività raggiunge di nuovo il limite, l'attesa ricomincia.

759 

760Dopo tre continuazioni automatiche, la continuazione automatica si ferma e compare la notifica `Automatic continue stopped after repeated usage-limit hits`. Esegui `/rate-limit-options` per scegliere cosa fare dopo. Quando invii un altro prompt, o selezioni un'attesa da quel menu, il conteggio ricomincia da capo. La continuazione automatica si ferma dopo tre continuazioni anche per un [`/goal`](https://code.claude.com/docs/it/goal) o un'[attività pianificata limitata alla sessione](https://code.claude.com/docs/it/scheduled-tasks.md) che attraversa diverse finestre di ripristino.

753 761 

754### Annullare l'attesa762### Annullare l'attesa

755 763 

Details

237* Quando l'upstream rifiuta una voce `role: "system"` all'interno di `messages`, Claude Code riprova una volta senza quei messaggi di sistema a metà conversazione e ne riporta invece il testo nei messaggi utente. Le richieste successive nella conversazione mantengono quella forma finché lo sviluppatore non esegue `/clear` o la conversazione non viene compattata237* Quando l'upstream rifiuta una voce `role: "system"` all'interno di `messages`, Claude Code riprova una volta senza quei messaggi di sistema a metà conversazione e ne riporta invece il testo nei messaggi utente. Le richieste successive nella conversazione mantengono quella forma finché lo sviluppatore non esegue `/clear` o la conversazione non viene compattata

238* Quando l'upstream rifiuta solo il marcatore `cache_control` su un messaggio di sistema a metà conversazione, Claude Code mantiene i messaggi di sistema e riprova una volta con il marcatore spostato. Il marcatore va sull'ultima voce in `messages` che non è un messaggio di sistema, in quel nuovo tentativo e nelle richieste successive finché Claude Code non esce238* Quando l'upstream rifiuta solo il marcatore `cache_control` su un messaggio di sistema a metà conversazione, Claude Code mantiene i messaggi di sistema e riprova una volta con il marcatore spostato. Il marcatore va sull'ultima voce in `messages` che non è un messaggio di sistema, in quel nuovo tentativo e nelle richieste successive finché Claude Code non esce

239* Quando l'upstream rifiuta una [thinking signature](https://platform.claude.com/docs/en/build-with-claude/extended-thinking), incluso con un `400` il cui messaggio dice che il blocco è `bound to a different conversation`, Claude Code rimuove i blocchi di pensiero precedenti dalla richiesta, ritenta, e li mantiene fuori da ogni richiesta successiva. Le nuove risposte includono ancora il pensiero239* Quando l'upstream rifiuta una [thinking signature](https://platform.claude.com/docs/en/build-with-claude/extended-thinking), incluso con un `400` il cui messaggio dice che il blocco è `bound to a different conversation`, Claude Code rimuove i blocchi di pensiero precedenti dalla richiesta, ritenta, e li mantiene fuori da ogni richiesta successiva. Le nuove risposte includono ancora il pensiero

240* Quando il gateway o il suo upstream rifiuta la voce dello [strumento advisor](https://code.claude.com/docs/it/advisor.md) in `tools` come tipo di strumento non riconosciuto, Claude Code ritenta la richiesta una volta senza quella voce e il suo valore `anthropic-beta`. Le richieste successive a quell'URL di base lasciano l'advisor fuori fino a quando Claude Code esce, e `/advisor` non è disponibile allo sviluppatore per quel tempo. Claude Code riconosce questo rifiuto da una risposta `400` o `422` il cui messaggio nomina il tipo di strumento dopo `Input tag`, come `Input tag 'advisor_20260301'`. Prima della v2.1.280, Claude Code non ritentava questo rifiuto240* Quando il gateway o il suo upstream rifiuta la voce dello [strumento advisor](https://code.claude.com/docs/it/advisor.md) in `tools` come tipo di strumento non riconosciuto, Claude Code riprova una volta senza quella voce e il suo valore `anthropic-beta`. Le [richieste successive](#how-long-a-rejected-beta-value-stays-out) li omettono. Claude Code riconosce questo rifiuto da una risposta `400` o `422` il cui messaggio nomina il tipo di strumento dopo `Input tag`, come `Input tag 'advisor_20260301'`. Prima della v2.1.280, Claude Code non riprovava dopo questo rifiuto

241* Quando l'upstream rifiuta `output_config.effort` o il suo valore `anthropic-beta`, Claude Code riprova e non aggiunge né l'uno né l'altro alle richieste per quel modello finché Claude Code non esce. Il tuo gateway non richiede modifiche se inoltra il `400` dell'upstream senza modificarlo e il messaggio:241* Quando l'upstream rifiuta `output_config.effort` o il suo valore `anthropic-beta`, il gateway vede la richiesta ancora una volta senza di essi. Le [richieste successive](#how-long-a-rejected-beta-value-stays-out) li omettono. Il tuo gateway non richiede modifiche se inoltra il `400` dell'upstream senza modificarlo e il messaggio:

242 * Nomina `output_config.effort` insieme a `Extra inputs are not permitted`242 * Nomina `output_config.effort` insieme a `Extra inputs are not permitted`

243 * Dice che il modello non supporta il parametro di sforzo243 * Dice che il modello non supporta il parametro di sforzo

244 * Inizia con `Unexpected value(s)` ed elenca `effort-2025-11-24` per l'intestazione `anthropic-beta`. Richiede la v2.1.310 o successiva. Gli sviluppatori il cui [`ANTHROPIC_BETAS`](https://code.claude.com/docs/it/env-vars) elenca il valore continuano a inviarlo e a ricevere il `400`, quindi chiedi loro di rimuovere quella voce244 * Inizia con `Unexpected value(s)` ed elenca `effort-2025-11-24` per l'intestazione `anthropic-beta`. Richiede la v2.1.310 o successiva. Gli sviluppatori il cui [`ANTHROPIC_BETAS`](https://code.claude.com/docs/it/env-vars) elenca il valore continuano a inviarlo e a ricevere il `400`, quindi chiedi loro di rimuovere quella voce

245* Quando l'upstream rifiuta il campo `context_management` o il suo valore `anthropic-beta`, il gateway vede la richiesta ancora una volta senza di essi. Se il gateway li vede di nuovo in una richiesta successiva e l'upstream li rifiuta di nuovo, segue lo stesso nuovo tentativo. Claude Code riconosce questo rifiuto dal suo messaggio, ad esempio uno contenente `context_management: Extra inputs are not permitted`. Prima della v2.1.304, Claude Code non riprovava dopo questo rifiuto245* Quando l'upstream rifiuta il campo `context_management` o il suo valore `anthropic-beta`, il gateway vede la richiesta ancora una volta senza di essi. Le [richieste successive](#how-long-a-rejected-beta-value-stays-out) li omettono. Claude Code riconosce questo rifiuto dal suo messaggio, ad esempio uno contenente `context_management: Extra inputs are not permitted`. Prima della v2.1.304, Claude Code non riprovava dopo questo rifiuto

246* Quando un `400` rifiuta per nome un altro valore `anthropic-beta`, il gateway vede la richiesta ancora una volta senza di esso se [il nuovo tentativo copre quel valore](#retry-without-a-rejected-beta-value)

246* Quando l'upstream rifiuta un campo beta degli strumenti diverso da `defer_loading`, come `strict`, il `400` raggiunge lo sviluppatore. Prima di ciò, il gateway può vedere di nuovo la richiesta [senza i campi della ricerca degli strumenti](#retry-without-tool-search). Per smettere di inviare tali campi, chiedi agli sviluppatori di impostare [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities)247* Quando l'upstream rifiuta un campo beta degli strumenti diverso da `defer_loading`, come `strict`, il `400` raggiunge lo sviluppatore. Prima di ciò, il gateway può vedere di nuovo la richiesta [senza i campi della ricerca degli strumenti](#retry-without-tool-search). Per smettere di inviare tali campi, chiedi agli sviluppatori di impostare [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities)

247 248 

248Il rifiuto `bound to a different conversation` proviene dal controllo [preserved thinking](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking) dell'API, che fallisce quando il contenuto di `system`, `tools`, o precedenti `messages` differisce dalla richiesta che ha prodotto il pensiero. Un gateway che riscrive uno qualsiasi di quel contenuto può causare il rifiuto stesso; [Libraries, proxies, and gateways](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#libraries-proxies-gateways) copre ciò che passare attraverso invariato.249Il rifiuto `bound to a different conversation` proviene dal controllo [preserved thinking](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking) dell'API, che fallisce quando il contenuto di `system`, `tools`, o precedenti `messages` differisce dalla richiesta che ha prodotto il pensiero. Un gateway che riscrive uno qualsiasi di quel contenuto può causare il rifiuto stesso; [Libraries, proxies, and gateways](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#libraries-proxies-gateways) copre ciò che passare attraverso invariato.

249 250 

250La maggior parte di questa logica dei nuovi tentativi si basa sulla formulazione dell'errore dell'upstream, quindi inoltra i corpi delle risposte di errore senza modificarli. Un gateway che avvolge gli errori upstream nel proprio involucro interrompe il percorso di recupero, anche quando preserva il codice di stato, a meno che il messaggio dell'involucro non contenga un token `capability_rejected:` stabile. [Il gateway delle app Claude sostituisce questi token alla formulazione degli errori dei provider cloud](https://code.claude.com/docs/it/claude-apps-gateway-config.md#upstream-error-messages), ad esempio `capability_rejected: prompt_too_long`.251La maggior parte di questa logica dei nuovi tentativi si basa sulla formulazione dell'errore dell'upstream, quindi inoltra i corpi delle risposte di errore senza modificarli. Un gateway che avvolge gli errori upstream nel proprio involucro interrompe il percorso di recupero, anche quando preserva il codice di stato, a meno che il messaggio dell'involucro non contenga un token `capability_rejected:` stabile. [Il gateway delle app Claude sostituisce questi token alla formulazione degli errori dei provider cloud](https://code.claude.com/docs/it/claude-apps-gateway-config.md#upstream-error-messages), ad esempio `capability_rejected: prompt_too_long`.

251 252 

253#### Riprovare senza un valore beta rifiutato

254 

255Quando un `400` rifiuta per nome un valore `anthropic-beta` coperto da questo nuovo tentativo, il gateway vede la richiesta ancora una volta senza di esso. Le [richieste successive](#how-long-a-rejected-beta-value-stays-out) omettono il valore. La maggior parte dei valori coperti richiede la v2.1.314 o successiva.

256 

257Il tuo gateway non richiede modifiche se il messaggio del `400` che restituisce contiene il valore in una di queste forme:

258 

259* **La frase dell'API**: la frase `Unexpected value(s)` che elenca il valore per l'intestazione `anthropic-beta`

260* **Un token `beta_header:`**: `capability_rejected: beta_header:` seguito dal valore, un [token `capability_rejected:`](#automatic-retry-and-error-forwarding)

261 

262Il nuovo tentativo non copre casi come un valore con un proprio nuovo tentativo, un valore che Claude Code non riconosce o un messaggio che non nomina alcun valore:

263 

264* **Un valore con un proprio nuovo tentativo, come advisor o la ricerca degli strumenti**: il gateway vede invece [il nuovo tentativo specifico di quella capacità](#automatic-retry-and-error-forwarding)

265* **Un valore che Claude Code non riconosce**: un valore che uno sviluppatore ha impostato tramite `ANTHROPIC_BETAS` rimane su ogni richiesta, quindi le richieste dello sviluppatore continuano a fallire con il `400`. Chiedi allo sviluppatore di rimuovere la voce

266* **Un semplice `invalid beta flag`**: Claude Code ipotizza quale valore l'upstream abbia rifiutato. Se la richiesta conteneva un valore tra quelli che ipotizza, il gateway vede di nuovo la richiesta senza quel valore. Se il `400` raggiunge ancora lo sviluppatore, fai in modo che il tuo gateway nomini il valore rifiutato in una di quelle forme

267 

268#### Per quanto tempo un valore beta rifiutato resta escluso

269 

270| L'upstream ha rifiutato | Richieste che lo omettono | Fino a quando |

271| :- | :- | :- |

272| Il tipo di strumento advisor, o il valore `anthropic-beta` dell'advisor | Le richieste allo stesso URL di base. `/advisor` non è disponibile | Claude Code esce |

273| `output_config.effort` o il suo valore `anthropic-beta` | Le richieste per lo stesso modello | Claude Code esce |

274| `context_management` o un altro valore `anthropic-beta` coperto dal [nuovo tentativo per nome](#retry-without-a-rejected-beta-value) | Le richieste nella stessa conversazione | La conversazione termina o Claude Code ricostruisce il suo prompt, ad esempio quando la conversazione principale viene compattata |

275| `context_management` o un altro valore coperto da quel nuovo tentativo, quando il messaggio di errore inizia con la frase dell'API stessa per il rifiuto, come `Unexpected value(s)`, o contiene un token `beta_header:` | Anche le nuove conversazioni sul modello indicato dalla richiesta rifiutata, anche dopo `/clear` | Claude Code esce |

276 

252#### Riprovare senza la ricerca degli strumenti277#### Riprovare senza la ricerca degli strumenti

253 278 

254Sulla v2.1.305 o successiva, una richiesta che contiene [campi `defer_loading` e blocchi `tool_reference`](https://code.claude.com/docs/it/mcp#tool-search-through-a-gateway) può arrivare di nuovo senza di essi dopo un `400` o `422` la cui causa Claude Code non riconosce. Dopo un nuovo tentativo riuscito, anche le richieste successive li omettono.279Sulla v2.1.305 o successiva, Claude Code invia di nuovo una richiesta senza [campi `defer_loading` e blocchi `tool_reference`](https://code.claude.com/docs/it/mcp#tool-search-through-a-gateway) dopo un `400` o `422` che nomina la ricerca degli strumenti o la cui causa non riconosce. Dopo un nuovo tentativo riuscito, anche le richieste successive in quella conversazione li omettono.

255 280 

256Le richieste dello sviluppatore continuano a funzionare senza alcuna modifica al gateway, con i loro strumenti MCP caricati subito. Claude Code riprova la ricerca degli strumenti in seguito, quindi il gateway può vedere un'altra richiesta rifiutata seguita dal relativo nuovo tentativo. Per escludere i campi da ogni richiesta, chiedi agli sviluppatori di impostare `ENABLE_TOOL_SEARCH=false`. Per la ricerca degli strumenti in sé, Claude Code si aspetta che il gateway inoltri i campi `defer_loading` e i blocchi `tool_reference` con il loro valore `anthropic-beta`.281Le richieste dello sviluppatore continuano a funzionare senza alcuna modifica al gateway, con i loro strumenti MCP caricati subito. Quando Claude Code prova di nuovo la ricerca degli strumenti, il gateway vede un'altra richiesta rifiutata seguita dal relativo nuovo tentativo. Per la ricerca degli strumenti in sé, Claude Code si aspetta che il gateway inoltri i campi `defer_loading` e i blocchi `tool_reference` con il loro valore `anthropic-beta`.

257 282 

258### Disabilitare le capacità pre-release283### Disabilitare le capacità pre-release

259 284 

Details

166| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Interroga il `/v1/models` del gateway all'avvio e aggiunge i nomi restituiti al selettore `/model` | Il vostro gateway serve `/v1/models` e volete che i selettori degli sviluppatori siano popolati da esso |166| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Interroga il `/v1/models` del gateway all'avvio e aggiunge i nomi restituiti al selettore `/model` | Il vostro gateway serve `/v1/models` e volete che i selettori degli sviluppatori siano popolati da esso |

167| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Impedisce a Claude Code di inviare intestazioni di capacità pre-release e campi del corpo. [Disabilitare le capacità pre-release](https://code.claude.com/docs/it/llm-gateway-protocol.md#disable-pre-release-capabilities) copre l'ambito esatto | Il vostro gateway inoltra a un upstream Amazon Bedrock o Google Cloud's Agent Platform che rifiuta i campi beta. Vedere [Requisiti del gateway](#gateway-requirements) |167| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Impedisce a Claude Code di inviare intestazioni di capacità pre-release e campi del corpo. [Disabilitare le capacità pre-release](https://code.claude.com/docs/it/llm-gateway-protocol.md#disable-pre-release-capabilities) copre l'ambito esatto | Il vostro gateway inoltra a un upstream Amazon Bedrock o Google Cloud's Agent Platform che rifiuta i campi beta. Vedere [Requisiti del gateway](#gateway-requirements) |

168| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` o `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | Ripristina [fast mode](https://code.claude.com/docs/it/fast-mode.md) quando il suo controllo di disponibilità, che chiama `api.anthropic.com` direttamente piuttosto che seguire `ANTHROPIC_BASE_URL`, fallisce, è intercettato, o è saltato per mancanza di una credenziale Anthropic | La vostra organizzazione usa fast mode, e gli sviluppatori si autenticano con `ANTHROPIC_AUTH_TOKEN` solo, con una chiave emessa dal gateway in `ANTHROPIC_API_KEY` o da un `apiKeyHelper`, o la vostra rete blocca o intercetta le richieste dirette a `api.anthropic.com`; [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) copre quale delle due variabili corrisponde alla vostra configurazione |168| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` o `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | Ripristina [fast mode](https://code.claude.com/docs/it/fast-mode.md) quando il suo controllo di disponibilità, che chiama `api.anthropic.com` direttamente piuttosto che seguire `ANTHROPIC_BASE_URL`, fallisce, è intercettato, o è saltato per mancanza di una credenziale Anthropic | La vostra organizzazione usa fast mode, e gli sviluppatori si autenticano con `ANTHROPIC_AUTH_TOKEN` solo, con una chiave emessa dal gateway in `ANTHROPIC_API_KEY` o da un `apiKeyHelper`, o la vostra rete blocca o intercetta le richieste dirette a `api.anthropic.com`; [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) copre quale delle due variabili corrisponde alla vostra configurazione |

169| `ANTHROPIC_MODEL` o [`ANTHROPIC_DEFAULT_HAIKU_MODEL`](https://code.claude.com/docs/it/model-config) | Impostare quale nome di modello Claude Code richiede per la sessione principale e per il traffico di background | Il vostro gateway instrada nomi di modelli che non corrispondono ai valori predefiniti di Claude Code, o instradare [funzionalità di background](https://code.claude.com/docs/it/costs.md#background-token-usage) a un modello diverso. Instradare sia i nomi di override che i nomi predefiniti di Claude Code al gateway, poiché alcune sub-call possono richiedere il nome predefinito indipendentemente dall'override; la [configurazione del modello](https://code.claude.com/docs/it/model-config.md) copre quale modello ogni parte di una sessione usa |169| `ANTHROPIC_MODEL` o [`ANTHROPIC_DEFAULT_HAIKU_MODEL`](https://code.claude.com/docs/it/model-config) | Imposta quale nome di modello Claude Code richiede per la sessione principale e per il traffico in background | Il tuo gateway instrada nomi di modelli che non corrispondono ai valori predefiniti di Claude Code, oppure instradi le [funzionalità in background](https://code.claude.com/docs/it/model-config.md#environment-variables) a un modello diverso. Instrada sia i nomi di override sia gli ID dei modelli integrati che Claude Code richiede quando non è impostato alcun override, poiché alcune sotto-chiamate in background richiedono un ID integrato indipendentemente dall'override |

170| `ANTHROPIC_BEDROCK_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL`, `ANTHROPIC_FOUNDRY_BASE_URL`, o `ANTHROPIC_AWS_BASE_URL` con le [variabili per quel provider](https://code.claude.com/docs/it/llm-gateway-connect.md#route-to-a-cloud-provider-through-a-gateway) | Puntare Claude Code al gateway attraverso un URL di base specifico del provider. Bedrock e Agent Platform passano anche al formato di richiesta nativo di quei provider | Il vostro gateway fronteggia Bedrock, Agent Platform, Foundry o la Claude Platform su AWS; vedere [Formati API](https://code.claude.com/docs/it/llm-gateway-protocol.md#api-formats) |170| `ANTHROPIC_BEDROCK_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL`, `ANTHROPIC_FOUNDRY_BASE_URL`, o `ANTHROPIC_AWS_BASE_URL` con le [variabili per quel provider](https://code.claude.com/docs/it/llm-gateway-connect.md#route-to-a-cloud-provider-through-a-gateway) | Puntare Claude Code al gateway attraverso un URL di base specifico del provider. Bedrock e Agent Platform passano anche al formato di richiesta nativo di quei provider | Il vostro gateway fronteggia Bedrock, Agent Platform, Foundry o la Claude Platform su AWS; vedere [Formati API](https://code.claude.com/docs/it/llm-gateway-protocol.md#api-formats) |

171 171 

172#### Distribuire tramite impostazioni gestite172#### Distribuire tramite impostazioni gestite

Details

231 231 

232Per fare in modo che Claude Code esegua il merge delle impostazioni padre insieme a una fonte di amministrazione, imposta [`parentSettingsBehavior`](https://code.claude.com/docs/it/settings-reference#parentsettingsbehavior) su `"merge"` nella fonte gestita con priorità più alta; Claude Code legge la chiave solo da quella fonte.232Per fare in modo che Claude Code esegua il merge delle impostazioni padre insieme a una fonte di amministrazione, imposta [`parentSettingsBehavior`](https://code.claude.com/docs/it/settings-reference#parentsettingsbehavior) su `"merge"` nella fonte gestita con priorità più alta; Claude Code legge la chiave solo da quella fonte.

233 233 

234Claude Code quindi mantiene solo i valori dell'host che limitano quello che Claude può fare, con un gap da conoscere: a meno che tu non imposti anche i blocchi `allowManaged*Only`, le regole di autorizzazione dell'host e le allowlist sandbox si applicano ancora. Vedi [Limita le impostazioni padre](https://code.claude.com/docs/it/claude-apps-gateway#restrict-parent-settings) per i blocchi.234Claude Code quindi mantiene solo i valori dell'host che limitano quello che Claude può fare, con un gap da conoscere: a meno che tu non imposti anche i blocchi `allowManaged*Only`, le regole di autorizzazione di tipo allow dell'host e le allowlist sandbox si applicano ancora. Vedi [Limita le impostazioni padre](https://code.claude.com/docs/it/claude-apps-gateway#restrict-parent-settings) per i blocchi.

235 235 

236Un [`policyHelper`](https://code.claude.com/docs/it/settings-reference#policyhelper) può disattivare il merge delle impostazioni padre indipendentemente da questa chiave; la sua voce dice quando.236Un [`policyHelper`](https://code.claude.com/docs/it/settings-reference#policyhelper) può disattivare il merge delle impostazioni padre indipendentemente da questa chiave; la sua voce dice quando.

237 237 

238Claude Code applica anche questi controlli ai valori forniti dal padre da soli:238Claude Code applica anche questi controlli ai valori forniti dal padre da soli:

239 239 

240* Quando qualsiasi fonte di amministrazione imposta `allowManagedPermissionRulesOnly`, Claude Code elimina le [regole di autorizzazione fornite dal padre](https://code.claude.com/docs/it/claude-apps-gateway#restrict-parent-settings) e `additionalDirectories` mentre le legge, anche quando una fonte con priorità più alta lascia la chiave non impostata. L'effetto della chiave sulle tue stesse regole di autorizzazione proviene dalle impostazioni gestite che Claude Code applica, o dalle impostazioni padre di cui hai scelto di fare il merge240* Quando qualsiasi fonte di amministrazione imposta `allowManagedPermissionRulesOnly`, Claude Code elimina le [regole di autorizzazione di tipo allow fornite dal padre](https://code.claude.com/docs/it/claude-apps-gateway#restrict-parent-settings) e `additionalDirectories` mentre le legge, anche quando una fonte con priorità più alta lascia la chiave non impostata. L'effetto della chiave sulle tue stesse regole di autorizzazione proviene dalle impostazioni gestite che Claude Code applica, o dalle impostazioni padre di cui hai scelto di fare il merge

241* Claude Code applica il valore `forceLoginOrgUUID` o `allowedMcpServers` nelle impostazioni gestite che applica e blocca uno fornito dal padre. Se fornisci più di una fonte gestita, vedi [quale fonte fornisce `forceLoginOrgUUID`](#which-managed-source-supplies-login-keys).241* Claude Code applica il valore `forceLoginOrgUUID` o `allowedMcpServers` nelle impostazioni gestite che applica e blocca uno fornito dal padre. Se fornisci più di una fonte gestita, vedi [quale fonte fornisce `forceLoginOrgUUID`](#which-managed-source-supplies-login-keys).

242 242 

243 Su Claude Code v2.1.273 o successivo, mentre `allowManagedMcpServersOnly` è attivo, l'elenco `allowedMcpServers` dalla fonte di amministrazione con ranking più alto che ne imposta uno si applica e blocca quello del padre, come una [chiave cross-source](#keys-read-from-every-admin-source). L'elenco del padre si applica solo quando nessuna fonte di amministrazione ne imposta uno. La voce [`managedSourcesBehavior`](https://code.claude.com/docs/it/settings-reference#managedsourcesbehavior) dice quale fonte fornisce ogni chiave sotto `"merge"`. Prima della v2.1.223, un valore in qualsiasi fonte di amministrazione bloccava quello del padre243 Su Claude Code v2.1.273 o successivo, mentre `allowManagedMcpServersOnly` è attivo, l'elenco `allowedMcpServers` dalla fonte di amministrazione con ranking più alto che ne imposta uno si applica e blocca quello del padre, come una [chiave cross-source](#keys-read-from-every-admin-source). L'elenco del padre si applica solo quando nessuna fonte di amministrazione ne imposta uno. La voce [`managedSourcesBehavior`](https://code.claude.com/docs/it/settings-reference#managedsourcesbehavior) dice quale fonte fornisce ogni chiave sotto `"merge"`. Prima della v2.1.223, un valore in qualsiasi fonte di amministrazione bloccava quello del padre


248 248 

249#### Mantieni l'accesso alla cartella Cowork quando si applicano solo regole gestite249#### Mantieni l'accesso alla cartella Cowork quando si applicano solo regole gestite

250 250 

251[Cowork](https://claude.com/docs/cowork/overview) nell'app Claude Desktop esegue le sue sessioni su Claude Code e concede a ogni sessione l'accesso alle sue cartelle di lavoro, come la cartella che l'utente connette, attraverso le regole di autorizzazione che fornisce quando avvia la sessione. Quando la tua policy gestita imposta [`allowManagedPermissionRulesOnly`](https://code.claude.com/docs/it/settings-reference#allowmanagedpermissionrulesonly), Claude Code mantiene solo le regole di autorizzazione nella policy gestita: elimina le regole di autorizzazione che un host fornisce come impostazioni padre, come `--allowedTools`, o in un file di impostazioni, quindi le scritture in quelle cartelle perdono la loro pre-approvazione. In una sessione Cowork che chiede prima delle modifiche, Cowork non può mostrare il prompt, e Claude segnala ogni scrittura come bloccata perché il percorso si risolve in una posizione protetta o in un percorso al di fuori della cartella connessa.251[Cowork](https://claude.com/docs/cowork/overview) nell'app Claude Desktop esegue le sue sessioni su Claude Code e concede a ogni sessione l'accesso alle sue cartelle di lavoro, come la cartella che l'utente connette, attraverso le regole di autorizzazione di tipo allow che fornisce quando avvia la sessione. Quando la tua policy gestita imposta [`allowManagedPermissionRulesOnly`](https://code.claude.com/docs/it/settings-reference#allowmanagedpermissionrulesonly), Claude Code mantiene solo le regole di autorizzazione di tipo allow nella policy gestita: elimina le regole di autorizzazione di tipo allow che un host fornisce come impostazioni padre, come `--allowedTools`, o in un file di impostazioni, quindi le scritture in quelle cartelle perdono la loro pre-approvazione. In una sessione Cowork che chiede prima delle modifiche, Cowork non può mostrare il prompt, e Claude segnala ogni scrittura come bloccata perché il percorso si risolve in una posizione protetta o in un percorso al di fuori della cartella connessa.

252 252 

253Per ripristinare le scritture, aggiungi regole di autorizzazione per quelle cartelle alla fonte gestita che Claude Code [seleziona](#precedence-within-the-managed-tier) su quelle macchine: su una flotta gestita da MDM, è la policy MDM piuttosto che un file di impostazioni gestite separato. Questo esempio utilizza il modulo file, e una policy MDM prende le stesse chiavi. Mantiene `allowManagedPermissionRulesOnly` impostato e consente le modifiche sotto una cartella `CoworkProjects` nella directory home di ogni utente; sostituisci il percorso con le cartelle che i tuoi utenti connettono:253Per ripristinare le scritture, aggiungi regole di autorizzazione per quelle cartelle alla fonte gestita che Claude Code [seleziona](#precedence-within-the-managed-tier) su quelle macchine: su una flotta gestita da MDM, è la policy MDM piuttosto che un file di impostazioni gestite separato. Questo esempio utilizza il modulo file, e una policy MDM prende le stesse chiavi. Mantiene `allowManagedPermissionRulesOnly` impostato e consente le modifiche sotto una cartella `CoworkProjects` nella directory home di ogni utente; sostituisci il percorso con le cartelle che i tuoi utenti connettono:

254 254 


421| [`pluginTrustMessage`](https://code.claude.com/docs/it/settings-reference#plugintrustmessage) | Messaggio personalizzato aggiunto all'avviso di fiducia del plugin mostrato prima dell'installazione |421| [`pluginTrustMessage`](https://code.claude.com/docs/it/settings-reference#plugintrustmessage) | Messaggio personalizzato aggiunto all'avviso di fiducia del plugin mostrato prima dell'installazione |

422| [`policyHelper`](https://code.claude.com/docs/it/settings-reference#policyhelper) | Eseguibile che calcola le impostazioni gestite all'avvio; vedi [Compute managed settings with a policy helper](https://code.claude.com/docs/it/settings-reference.md#policyhelper) |422| [`policyHelper`](https://code.claude.com/docs/it/settings-reference#policyhelper) | Eseguibile che calcola le impostazioni gestite all'avvio; vedi [Compute managed settings with a policy helper](https://code.claude.com/docs/it/settings-reference.md#policyhelper) |

423| [`sandbox.filesystem.allowManagedReadPathsOnly`](https://code.claude.com/docs/it/settings-reference#sandbox-filesystem-allowmanagedreadpathsonly) | Quando `true`, solo i percorsi `filesystem.allowRead` dalle impostazioni gestite sono rispettati. `denyRead` si unisce ancora da tutte le fonti |423| [`sandbox.filesystem.allowManagedReadPathsOnly`](https://code.claude.com/docs/it/settings-reference#sandbox-filesystem-allowmanagedreadpathsonly) | Quando `true`, solo i percorsi `filesystem.allowRead` dalle impostazioni gestite sono rispettati. `denyRead` si unisce ancora da tutte le fonti |

424| [`sandbox.network.allowManagedDomainsOnly`](https://code.claude.com/docs/it/settings-reference#sandbox-network-allowmanageddomainsonly) | Onora solo le regole di autorizzazione `allowedDomains` e `WebFetch(domain:...)` gestite; blocca altri domini senza chiedere |424| [`sandbox.network.allowManagedDomainsOnly`](https://code.claude.com/docs/it/settings-reference#sandbox-network-allowmanageddomainsonly) | Onora solo le regole di autorizzazione di tipo allow `allowedDomains` e `WebFetch(domain:...)` gestite; blocca altri domini senza chiedere |

425| [`strictKnownMarketplaces`](https://code.claude.com/docs/it/settings-reference#strictknownmarketplaces) | Controlla quali fonti di marketplace di plugin gli utenti possono aggiungere e installare plugin da. Vedi [managed marketplace restrictions](https://code.claude.com/docs/it/plugins/org.md#restrict-what-users-can-install) |425| [`strictKnownMarketplaces`](https://code.claude.com/docs/it/settings-reference#strictknownmarketplaces) | Controlla quali fonti di marketplace di plugin gli utenti possono aggiungere e installare plugin da. Vedi [managed marketplace restrictions](https://code.claude.com/docs/it/plugins/org.md#restrict-what-users-can-install) |

426| [`strictPluginOnlyCustomization`](https://code.claude.com/docs/it/settings-reference#strictpluginonlycustomization) | Blocca skills, agents, hooks e server MCP da fonti utente e progetto; `true` blocca tutti e quattro, un array nomina quale |426| [`strictPluginOnlyCustomization`](https://code.claude.com/docs/it/settings-reference#strictpluginonlycustomization) | Blocca skills, agents, hooks e server MCP da fonti utente e progetto; `true` blocca tutti e quattro, un array nomina quale |

427| [`wslInheritsWindowsSettings`](https://code.claude.com/docs/it/settings-reference#wslinheritswindowssettings) | Quando impostato nel registro HKLM o in un file sotto `C:\Program Files\ClaudeCode`, fai leggere a WSL la catena di policy Windows, e leggi `/etc/claude-code` solo quando [nessun documento admin Windows è presente](#present-admin-documents); la voce fornisce l'ordine |427| [`wslInheritsWindowsSettings`](https://code.claude.com/docs/it/settings-reference#wslinheritswindowssettings) | Quando impostato nel registro HKLM o in un file sotto `C:\Program Files\ClaudeCode`, fai leggere a WSL la catena di policy Windows, e leggi `/etc/claude-code` solo quando [nessun documento admin Windows è presente](#present-admin-documents); la voce fornisce l'ordine |

mcp.md +20 −4

Details

952* Per un server il cui header `Authorization` hai configurato, in `headers` o tramite un [`headersHelper`](#use-dynamic-headers-for-custom-authentication), un `401` o `403` durante la connessione non contrassegna il server, perché la credenziale da correggere è quella che hai configurato. Claude Code segnala invece la connessione come non riuscita. Se hai impostato quell'header da un riferimento `${VAR}`, verifica se quella variabile è una che Claude Code [legge come vuota](#credential-variables-that-read-as-empty).952* Per un server il cui header `Authorization` hai configurato, in `headers` o tramite un [`headersHelper`](#use-dynamic-headers-for-custom-authentication), un `401` o `403` durante la connessione non contrassegna il server, perché la credenziale da correggere è quella che hai configurato. Claude Code segnala invece la connessione come non riuscita. Se hai impostato quell'header da un riferimento `${VAR}`, verifica se quella variabile è una che Claude Code [legge come vuota](#credential-variables-that-read-as-empty).

953* Per un connettore [consegnato a una sessione cloud](#how-connectors-reach-claude-code), Claude Code non esegue un flusso di accesso, perché il proxy della sessione si autentica al connettore con l'autorizzazione che hai concesso in claude.ai. Quando un connettore lì ha bisogno di autorizzazione di nuovo, riconnettilo su [claude.ai/customize/connectors](https://claude.ai/customize/connectors) piuttosto che dalla sessione.953* Per un connettore [consegnato a una sessione cloud](#how-connectors-reach-claude-code), Claude Code non esegue un flusso di accesso, perché il proxy della sessione si autentica al connettore con l'autorizzazione che hai concesso in claude.ai. Quando un connettore lì ha bisogno di autorizzazione di nuovo, riconnettilo su [claude.ai/customize/connectors](https://claude.ai/customize/connectors) piuttosto che dalla sessione.

954 954 

955Quando un server OAuth a cui hai già effettuato l'accesso rifiuta il tuo token archiviato con `401 Unauthorized`, Claude Code aggiorna il token, si riconnette e ritenta la richiesta una volta. Contrassegna il server in `/mcp` solo se anche quel tentativo non riesce. In un'esecuzione `claude -p` o Agent SDK su macOS, una richiesta che Claude Code ha inviato mentre non riusciva a leggere il tuo token archiviato non riesce invece con un [errore delle credenziali archiviate](https://code.claude.com/docs/it/errors.md#couldnt-read-the-stored-credentials-for-mcp-server).955Quando un server OAuth a cui hai già effettuato l'accesso rifiuta il tuo token archiviato con `401 Unauthorized`, Claude Code si riconnette con o senza un nuovo token:

956 

957* **Il tuo accesso archiviato ha un token di aggiornamento**: aggiorna il token, si riconnette e riprova la richiesta una volta. Il server viene contrassegnato in `/mcp` solo se anche quel nuovo tentativo non riesce.

958* **Il tuo accesso archiviato non ha un token di aggiornamento**: si connette una volta senza il token. Se il server risponde, i suoi strumenti funzionano mentre sei disconnesso e il token rifiutato viene eliminato. Se il server rifiuta anche quella connessione, `/mcp` mostra che il server richiede l'autenticazione.

959 

960In un'esecuzione `claude -p` o Agent SDK su macOS, una richiesta che Claude Code ha inviato mentre non riusciva a leggere il tuo token archiviato non riesce con un [errore delle credenziali archiviate](https://code.claude.com/docs/it/errors.md#couldnt-read-the-stored-credentials-for-mcp-server).

956 961 

957Quando il server rifiuta il token di aggiornamento archiviato, Claude Code mostra immediatamente un avviso che punta a `/mcp`. Apri `/mcp` e seleziona **Re-authenticate** sul server per accedere di nuovo prima che la prossima chiamata a uno strumento non riesca.962Quando il server rifiuta il token di aggiornamento archiviato, Claude Code mostra immediatamente un avviso che punta a `/mcp`. Apri `/mcp` e seleziona **Re-authenticate** sul server per accedere di nuovo prima che la prossima chiamata a uno strumento non riesca.

958 963 


1640 1645 

1641## Rispondere alle richieste di elicitazione MCP1646## Rispondere alle richieste di elicitazione MCP

1642 1647 

1643I server MCP possono richiedere input strutturato da voi durante un'attività utilizzando l'elicitazione. Quando un server ha bisogno di informazioni che non può ottenere da solo, Claude Code visualizza una finestra di dialogo interattiva e trasmette la vostra risposta al server. Non è richiesta alcuna configurazione da parte vostra: le finestre di dialogo di elicitazione vengono visualizzate automaticamente quando un server le richiede.1648I server MCP possono richiederti input strutturato durante un'attività utilizzando l'elicitazione. Quando un server ha bisogno di informazioni che non può ottenere da solo, Claude Code visualizza una finestra di dialogo interattiva nel terminale e trasmette la tua risposta al server. Non è richiesta alcuna configurazione da parte tua: le finestre di dialogo di elicitazione vengono visualizzate automaticamente quando un server le richiede.

1644 1649 

1645I server possono richiedere input in due modi:1650I server possono richiedere input in due modi:

1646 1651 


1653 1658 

1654Se state creando un server MCP che utilizza l'elicitazione, consultate la [specifica di elicitazione MCP](https://modelcontextprotocol.io/docs/learn/client-concepts#elicitation) per i dettagli del protocollo e gli esempi di schema.1659Se state creando un server MCP che utilizza l'elicitazione, consultate la [specifica di elicitazione MCP](https://modelcontextprotocol.io/docs/learn/client-concepts#elicitation) per i dettagli del protocollo e gli esempi di schema.

1655 1660 

1661### Rispondere a una richiesta di elicitazione in una sessione cloud

1662 

1663Quando l'attività di Claude nella tua sessione cloud è in attesa della richiesta di un server MCP, il server ha bisogno di qualcosa da te, come un valore o un accesso. Se la richiesta appare come una scheda su claude.ai/code o nella scheda **Code** dell'app Desktop, rispondi sulla scheda:

1664 

1665* **Modalità modulo**: compila i campi, quindi fai clic su **Submit**

1666* **Modalità URL**: fai clic su **Open link**, completa il flusso che si apre, quindi fai clic su **I’m done, continue** sulla scheda

1667 

1668Per rifiutare la richiesta, fai clic su **Decline**. Claude prosegue non appena il server risponde.

1669 

1670Se non vedi alcuna scheda in nessuno dei due punti, non puoi rispondere alla richiesta lì. Nella tua sessione, fai clic sul pulsante di interruzione per terminare il turno.

1671 

1656### Modalità di elicitazione dichiarate da Claude Code1672### Modalità di elicitazione dichiarate da Claude Code

1657 1673 

1658Se crei un server MCP, le capacità client che Claude Code invia quando si connette indicano al tuo server quali modalità di elicitazione può richiedere. Claude Code dichiara `elicitation: {form: {}, url: {}}` sulle seguenti connessioni, quindi un server su una qualsiasi di esse può richiedere entrambe le modalità:1674Se crei un server MCP, le capacità client che Claude Code invia quando si connette indicano al tuo server quali modalità di elicitazione può richiedere. Claude Code dichiara `elicitation: {form: {}, url: {}}` sulle seguenti connessioni, quindi un server su una qualsiasi di esse può richiedere entrambe le modalità:


1815> * **Hai impostato `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`**: consulta [come influisce sulla ricerca di strumenti](#configure-tool-search)1831> * **Hai impostato `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`**: consulta [come influisce sulla ricerca di strumenti](#configure-tool-search)

1816> * **Una richiesta è fallita con un errore che menziona `defer_loading` o `tool_reference`**: consulta [Extra inputs are not permitted](https://code.claude.com/docs/it/errors.md#extra-inputs-are-not-permitted)1832> * **Una richiesta è fallita con un errore che menziona `defer_loading` o `tool_reference`**: consulta [Extra inputs are not permitted](https://code.claude.com/docs/it/errors.md#extra-inputs-are-not-permitted)

1817 1833 

1818Quando `ANTHROPIC_BASE_URL` punta a un gateway, la ricerca di strumenti è attiva per impostazione predefinita, quindi le richieste includono i campi degli strumenti `defer_loading` e i blocchi `tool_reference` che il gateway deve inoltrare. Mentre la ricerca di strumenti è attiva, gli strumenti MCP vengono [rimandati](#scale-with-mcp-tool-search). Per caricare invece tutti gli strumenti in anticipo, imposta `ENABLE_TOOL_SEARCH=false` nella tua shell o nel campo [`env` delle impostazioni](https://code.claude.com/docs/it/settings-reference#env). Prima della v2.1.304, la ricerca di strumenti era disattivata dietro un gateway a meno che `ENABLE_TOOL_SEARCH` non fosse `true`, `auto` o `auto:N`.1834Quando `ANTHROPIC_BASE_URL` punta a un gateway, Claude Code si aspetta che il gateway inoltri i campi degli strumenti `defer_loading` e i blocchi `tool_reference` [insieme all'intestazione `anthropic-beta`](https://code.claude.com/docs/it/llm-gateway-protocol#beta-header-and-body-field-pairs). La ricerca di strumenti è attiva per impostazione predefinita dietro il gateway, quindi gli strumenti MCP vengono [rimandati](#scale-with-mcp-tool-search) e le richieste includono quei campi e blocchi. Prima della v2.1.304, la ricerca di strumenti era disattivata dietro un gateway a meno che `ENABLE_TOOL_SEARCH` non fosse `true`, `auto` o `auto:N`.

1819 1835 

1820Su v2.1.305 o successivo, Claude Code può [riprovare una richiesta senza la ricerca di strumenti](https://code.claude.com/docs/it/llm-gateway-protocol.md#retry-without-tool-search) dopo un `400` o `422` di cui non riconosce la causa. Quando il nuovo tentativo riesce, sullo schermo non appare nulla e non devi fare niente: gli strumenti MCP vengono invece caricati in anticipo. Claude Code riprova la ricerca di strumenti più tardi, al costo di un'altra richiesta rifiutata. Per evitare queste richieste, imposta `ENABLE_TOOL_SEARCH=false`.1836Su v2.1.305 o successivo, Claude Code può [riprovare una richiesta senza la ricerca di strumenti](https://code.claude.com/docs/it/llm-gateway-protocol.md#retry-without-tool-search) dopo un `400` o `422`. Quando il nuovo tentativo riesce, sullo schermo non appare nulla e non devi fare niente: gli strumenti MCP vengono invece caricati in anticipo. Claude Code riprova la ricerca di strumenti più tardi, al costo di un'altra richiesta rifiutata.

1821 1837 

1822#### Strumenti che restano rimandati sotto la soglia `ENABLE_TOOL_SEARCH=auto`1838#### Strumenti che restano rimandati sotto la soglia `ENABLE_TOOL_SEARCH=auto`

1823 1839 

memory.md +6 −5

Details

206- Includi commenti di documentazione OpenAPI206- Includi commenti di documentazione OpenAPI

207```207```

208 208 

209Le regole senza un campo `paths` vengono caricate incondizionatamente e si applicano a tutti i file. Una regola con ambito di percorso si carica quando Claude utilizza lo strumento Read, Write o Edit su un file corrispondente. Si carica anche quando Claude visualizza un file corrispondente con un comando Bash che [conta come lettura](https://code.claude.com/docs/it/tools-reference.md#edit-tool-behavior), come `cat` o `head` su un singolo file. La corrispondenza funziona anche quando Claude raggiunge un file attraverso un percorso che è un collegamento simbolico alla directory del progetto, ad esempio in un checkout collegato tramite collegamento simbolico.209Una regola con ambito di percorso si carica quando Claude utilizza lo strumento Read, Write o Edit su un file corrispondente. Si carica anche quando Claude visualizza un file corrispondente con un comando Bash che [conta come lettura](https://code.claude.com/docs/it/tools-reference.md#edit-tool-behavior), come `cat` o `head` su un singolo file. La corrispondenza funziona anche quando Claude raggiunge un file attraverso un percorso che è un collegamento simbolico alla directory del progetto, ad esempio in un checkout collegato tramite collegamento simbolico.

210 210 

211Ogni modello è relativo alla directory di base della regola:211Ogni modello è relativo alla directory di base della regola:

212 212 


219 219 

220| Modello | Corrisponde a |220| Modello | Corrisponde a |

221| - | - |221| - | - |

222| `**/*.ts` | Tutti i file TypeScript in qualsiasi directory |222| `**/*.ts` | File `.ts` in qualsiasi punto sotto la directory di base |

223| `src/**/*` | Tutti i file sotto la directory `src/` |223| `src/**/*` | Tutti i file sotto `src/` della directory di base |

224| `*.md` | File Markdown nella radice del progetto |224| `*.md` | File `.md` in qualsiasi punto sotto la directory di base |

225| `src/components/*.tsx` | Componenti React in una directory specifica |225| `/*.md` | File `.md` direttamente nella directory di base, non nelle sottocartelle |

226| `src/components/*.tsx` | File `.tsx` direttamente in `src/components/` della directory di base, non nelle sottocartelle |

226 227 

227Puoi specificare più modelli e utilizzare l'espansione tra parentesi graffe per far corrispondere più estensioni in un unico modello:228Puoi specificare più modelli e utilizzare l'espansione tra parentesi graffe per far corrispondere più estensioni in un unico modello:

228 229 

model-config.md +1 −1

Details

933| `ANTHROPIC_DEFAULT_FABLE_MODEL` | Il modello da usare per `fable`, e l'ID del modello che Claude Code riconosce come modello Fable per il [fallback automatico del modello](#automatic-model-fallback) su provider di terze parti |933| `ANTHROPIC_DEFAULT_FABLE_MODEL` | Il modello da usare per `fable`, e l'ID del modello che Claude Code riconosce come modello Fable per il [fallback automatico del modello](#automatic-model-fallback) su provider di terze parti |

934| `ANTHROPIC_DEFAULT_OPUS_MODEL` | Il modello da usare per `opus`, o per `opusplan` quando Plan Mode è attivo. |934| `ANTHROPIC_DEFAULT_OPUS_MODEL` | Il modello da usare per `opus`, o per `opusplan` quando Plan Mode è attivo. |

935| `ANTHROPIC_DEFAULT_SONNET_MODEL` | Il modello da usare per `sonnet`, o per `opusplan` quando Plan Mode non è attivo. |935| `ANTHROPIC_DEFAULT_SONNET_MODEL` | Il modello da usare per `sonnet`, o per `opusplan` quando Plan Mode non è attivo. |

936| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | Il modello da usare per `haiku`, o per le [funzionalità in background](https://code.claude.com/docs/it/costs.md#background-token-usage) |936| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | Il modello da usare per `haiku`, o per le funzionalità in background |

937| `CLAUDE_CODE_SUBAGENT_MODEL` | Il modello predefinito per i [subagent](https://code.claude.com/docs/it/sub-agents.md#choose-a-model), i membri di un [team di agenti](https://code.claude.com/docs/it/agent-teams.md#specify-teammates-and-models) e gli agenti dei [workflow](https://code.claude.com/docs/it/workflows.md) a cui non è assegnato un modello in un altro modo. Accetta un alias come `haiku` o un nome di modello completo. Un modello per singola invocazione o il campo `model` di una definizione, incluso `inherit`, ha la precedenza. Per cambiare questo comportamento, imposta [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](https://code.claude.com/docs/it/sub-agents#run-every-subagent-on-one-model) |937| `CLAUDE_CODE_SUBAGENT_MODEL` | Il modello predefinito per i [subagent](https://code.claude.com/docs/it/sub-agents.md#choose-a-model), i membri di un [team di agenti](https://code.claude.com/docs/it/agent-teams.md#specify-teammates-and-models) e gli agenti dei [workflow](https://code.claude.com/docs/it/workflows.md) a cui non è assegnato un modello in un altro modo. Accetta un alias come `haiku` o un nome di modello completo. Un modello per singola invocazione o il campo `model` di una definizione, incluso `inherit`, ha la precedenza. Per cambiare questo comportamento, imposta [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](https://code.claude.com/docs/it/sub-agents#run-every-subagent-on-one-model) |

938 938 

939Sui provider di terze parti, [Personalizzare la visualizzazione e le capacità del modello fissato](#customize-pinned-model-display-and-capabilities) descrive cosa mostra la riga di un modello fissato nel selettore `/model`.939Sui provider di terze parti, [Personalizzare la visualizzazione e le capacità del modello fissato](#customize-pinned-model-display-and-capabilities) descrive cosa mostra la riga di un modello fissato nel selettore `/model`.

Details

1559 1559 

1560> [!NOTE]1560> [!NOTE]

1561>1561>

1562> Le metriche di costo sono approssimazioni. Per i dati di fatturazione ufficiali, consulta il tuo provider API (Claude Console, Amazon Bedrock, o Google Cloud's Agent Platform).1562> Le metriche di costo sono approssimazioni. Per i dati di fatturazione ufficiali, consulta [Gestire i costi per la tua organizzazione](https://code.claude.com/docs/it/costs.md#manage-costs-for-your-organization).

1563 1563 

1564Claude Code conta ogni risposta in streaming verso le metriche di costo e token esattamente una volta, incluso quando un gateway o proxy dietro `ANTHROPIC_BASE_URL` trasmette l'utilizzo progressivamente su più frame.1564Claude Code conta ogni risposta in streaming verso le metriche di costo e token esattamente una volta, incluso quando un gateway o proxy dietro `ANTHROPIC_BASE_URL` trasmette l'utilizzo progressivamente su più frame.

1565 1565 

Details

41* Le letture al di fuori delle directory di lavoro mentre [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/it/settings-reference#permissions-blockreadsoutsideworkingdirectories) è attivo: i comandi Bash riconosciuti come letture di file chiedono conferma anche in modalità auto e in modalità `bypassPermissions`, e lo stesso vale per qualsiasi [nuovo tentativo fuori dalla sandbox](https://code.claude.com/docs/it/sandboxing.md#the-unsandboxed-retry-escape-hatch) che richiede l'approvazione per essere eseguito al di fuori della sandbox. Richiede Claude Code v2.1.257 o versioni successive.41* Le letture al di fuori delle directory di lavoro mentre [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/it/settings-reference#permissions-blockreadsoutsideworkingdirectories) è attivo: i comandi Bash riconosciuti come letture di file chiedono conferma anche in modalità auto e in modalità `bypassPermissions`, e lo stesso vale per qualsiasi [nuovo tentativo fuori dalla sandbox](https://code.claude.com/docs/it/sandboxing.md#the-unsandboxed-retry-escape-hatch) che richiede l'approvazione per essere eseguito al di fuori della sandbox. Richiede Claude Code v2.1.257 o versioni successive.

42 42 

43 Un comando che il parser della shell non riesce a tracciare, ad esempio uno che cambia directory più di una volta o che esegue una subshell, chiede conferma allo stesso modo anche quando non nomina alcun percorso esterno. Questa richiesta di conferma non si applica quando il comando viene eseguito nella [sandbox](https://code.claude.com/docs/it/sandboxing.md) e la sandbox applica il blocco.43 Un comando che il parser della shell non riesce a tracciare, ad esempio uno che cambia directory più di una volta o che esegue una subshell, chiede conferma allo stesso modo anche quando non nomina alcun percorso esterno. Questa richiesta di conferma non si applica quando il comando viene eseguito nella [sandbox](https://code.claude.com/docs/it/sandboxing.md) e la sandbox applica il blocco.

44* Le scritture al di fuori delle directory di lavoro mentre [`permissions.blockWritesOutsideWorkingDirectories`](https://code.claude.com/docs/it/settings-reference#permissions-blockwritesoutsideworkingdirectories) è attivo: Claude Code rifiuta lì le chiamate `Write`, `Edit` e `NotebookEdit`, a parte [alcuni dei suoi file](https://code.claude.com/docs/it/settings-reference.md#what-the-write-block-refuses-and-what-stays-writable). La chiave non limita i comandi della shell, gli strumenti MCP né i programmi eseguiti dagli hook, quindi usa il [sandboxing](https://code.claude.com/docs/it/sandboxing.md) per limitare dove scrivono i comandi della shell. Richiede Claude Code v2.1.314 o versioni successive.

44 45 

45## Configurazioni comuni46## Configurazioni comuni

46 47 


531Qualunque sia la tua risposta, Claude continua a lavorare:532Qualunque sia la tua risposta, Claude continua a lavorare:

532 533 

533* **Sì, e continua a consentire qualsiasi lettura al di fuori delle directory di lavoro**: la lettura viene eseguita, le letture successive al di fuori delle directory di lavoro vengono eseguite come prima, e Claude Code registra la tua risposta in modo che la richiesta non appaia di nuovo534* **Sì, e continua a consentire qualsiasi lettura al di fuori delle directory di lavoro**: la lettura viene eseguita, le letture successive al di fuori delle directory di lavoro vengono eseguite come prima, e Claude Code registra la tua risposta in modo che la richiesta non appaia di nuovo

534* **No, e blocca le letture al di fuori delle directory di lavoro da ora in poi**: la lettura viene rifiutata, e Claude Code imposta [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/it/settings-reference#permissions-blockreadsoutsideworkingdirectories) su `true` nelle tue impostazioni utente, il che fa sì che gli strumenti per i file rifiutino tali letture in ogni sessione successiva e in ogni modalità di permesso. Per consentire a Claude di leggere un tale percorso in seguito, aggiungi la sua directory con `/add-dir` o rimuovi l'impostazione.535* **No, e blocca le letture al di fuori delle directory di lavoro da ora in poi**: la lettura viene rifiutata, e Claude Code imposta [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/it/settings-reference#permissions-blockreadsoutsideworkingdirectories) su `true` nelle tue impostazioni utente, il che fa sì che gli strumenti per i file rifiutino tali letture in questa e in ogni sessione successiva e in ogni modalità di permesso. Per rimuovere il blocco, elimina l'impostazione da ogni [file di impostazioni](https://code.claude.com/docs/it/settings.md#settings-files-and-who-they-affect) che la imposta, poi riavvia ogni sessione in esecuzione. Per una singola directory in questa sessione, usa `/add-dir`.

535* **No, e chiedi di nuovo la prossima volta**: la lettura viene rifiutata, e la prossima lettura al di fuori delle directory di lavoro chiede di nuovo536* **No, e chiedi di nuovo la prossima volta**: la lettura viene rifiutata, e la prossima lettura al di fuori delle directory di lavoro chiede di nuovo

536* **Sì, ma chiedi di nuovo la prossima volta**: la lettura viene eseguita, nulla viene salvato, e la prossima lettura al di fuori delle directory di lavoro chiede di nuovo537* **Sì, ma chiedi di nuovo la prossima volta**: la lettura viene eseguita, nulla viene salvato, e la prossima lettura al di fuori delle directory di lavoro chiede di nuovo

537 538 


553 554 

554Quando la modalità auto non può approvare le azioni della tua sessione, cosa succede dipende dal caso:555Quando la modalità auto non può approvare le azioni della tua sessione, cosa succede dipende dal caso:

555 556 

556* **Un'azione bloccata**: Claude Code mostra una notifica ed elenca l'azione in `/permissions` nella scheda **Recently denied**, dove puoi premere `r` per riprovarla con un'approvazione manuale.557* **Un'azione bloccata**: Claude Code mostra una notifica ed elenca l'azione in `/permissions` nella scheda **Recently blocked**, dove puoi [approvare l'azione in modo che Claude possa riprovare](https://code.claude.com/docs/it/auto-mode-config.md#review-denials).

557* **Blocchi ripetuti**: se il classificatore blocca un'azione 3 volte di seguito o 20 volte in totale, la modalità auto si mette in pausa e Claude Code riprende a chiedere conferma. Approvare l'azione richiesta riattiva la modalità auto. Vedi [Soglie di blocco ripetuto](#repeated-block-thresholds) per come vengono contati i blocchi.558* **Blocchi ripetuti**: se il classificatore blocca un'azione 3 volte di seguito o 20 volte in totale, la modalità auto si mette in pausa e Claude Code riprende a chiedere conferma. Approvare l'azione richiesta riattiva la modalità auto. Vedi [Soglie di blocco ripetuto](#repeated-block-thresholds) per come vengono contati i blocchi.

558* **Nessun verdetto dal classificatore**: quando un controllo di sicurezza separato dalla modalità auto rifiuta la richiesta del classificatore stesso, o la risposta del classificatore non può essere analizzata, Claude Code nega l'azione senza la notifica o la voce **Recently denied**. Vedi [Auto mode cannot determine the safety of an action](https://code.claude.com/docs/it/errors.md#auto-mode-cannot-determine-the-safety-of-an-action) per il messaggio mostrato in ciascun caso e cosa fare.559* **Nessun verdetto dal classificatore**: quando un controllo di sicurezza separato dalla modalità auto rifiuta la richiesta del classificatore stesso, o la risposta del classificatore non può essere analizzata, Claude Code blocca l'azione senza la notifica o la voce **Recently blocked**. Vedi [Auto mode cannot determine the safety of an action](https://code.claude.com/docs/it/errors.md#auto-mode-cannot-determine-the-safety-of-an-action) per il messaggio mostrato in ciascun caso e cosa fare.

559* **Nessun verdetto dal server**: con la [revisione del classificatore lato server](#server-side-classifier-review), Claude Code nega un'azione per cui il server non dà un verdetto, e interrompe il turno dopo dieci risposte di seguito senza verdetto. Vedi [Il server non ha restituito un verdetto di sicurezza](https://code.claude.com/docs/it/errors.md#the-server-returned-no-safety-verdict).560* **Nessun verdetto dal server**: con la [revisione del classificatore lato server](#server-side-classifier-review), Claude Code nega un'azione per cui il server non dà un verdetto, e interrompe il turno dopo dieci risposte di seguito senza verdetto. Vedi [Il server non ha restituito un verdetto di sicurezza](https://code.claude.com/docs/it/errors.md#the-server-returned-no-safety-verdict).

560* **Un cambio di modalità durante un controllo**: se cambi modalità di permesso mentre un controllo del classificatore è in sospeso, Claude Code scarta un verdetto che la nuova modalità non avrebbe richiesto. Ti viene invece chiesta un'approvazione, oppure l'azione viene negata automaticamente in [modalità `dontAsk`](#allow-only-pre-approved-tools-with-dontask-mode).561* **Un cambio di modalità durante un controllo**: se cambi modalità di permesso mentre un controllo del classificatore è in sospeso, Claude Code scarta un verdetto che la nuova modalità non avrebbe richiesto. Ti viene invece chiesta un'approvazione, oppure l'azione viene negata automaticamente in [modalità `dontAsk`](#allow-only-pre-approved-tools-with-dontask-mode).

561 562 


738 739 

739In una sessione avviata con [`--restricted`](https://code.claude.com/docs/it/cli-reference#cli-flags), che richiede Claude Code v2.1.248 o successivo, il classificatore non può approvare le scritture su percorsi protetti.740In una sessione avviata con [`--restricted`](https://code.claude.com/docs/it/cli-reference#cli-flags), che richiede Claude Code v2.1.248 o successivo, il classificatore non può approvare le scritture su percorsi protetti.

740 741 

742Mentre [`permissions.blockWritesOutsideWorkingDirectories`](https://code.claude.com/docs/it/settings-reference#permissions-blockwritesoutsideworkingdirectories) è attivo, Claude Code rifiuta le scritture `Write`, `Edit` e `NotebookEdit` sui file di impostazioni in ogni modalità di permesso.

743 

741Nelle modalità che instradano le scritture su percorsi protetti al classificatore, una scrittura che il [controllo dei symlink](https://code.claude.com/docs/it/permissions.md#symlinks) risolve in un percorso protetto richiede conferma quando il percorso richiesto da Claude non è esso stesso protetto.744Nelle modalità che instradano le scritture su percorsi protetti al classificatore, una scrittura che il [controllo dei symlink](https://code.claude.com/docs/it/permissions.md#symlinks) risolve in un percorso protetto richiede conferma quando il percorso richiesto da Claude non è esso stesso protetto.

742 745 

743Le regole [`permissions.allow`](https://code.claude.com/docs/it/permissions#manage-permissions) nei file di impostazioni non pre-approvano le scritture su percorsi protetti. Il controllo di sicurezza viene eseguito prima che Claude Code valuti le regole allow dalle impostazioni, quindi una voce come `Edit(.claude/**)` in `~/.claude/settings.json` o `.claude/settings.json` non modifica il risultato per modalità nella tabella precedente. Nelle modalità che richiedono conferma, il prompt per una scrittura nella cartella `.claude/` del progetto o in `~/.claude/` può offrire una di queste opzioni con ambito di sessione:746Le regole [`permissions.allow`](https://code.claude.com/docs/it/permissions#manage-permissions) nei file di impostazioni non pre-approvano le scritture su percorsi protetti. Il controllo di sicurezza viene eseguito prima che Claude Code valuti le regole allow dalle impostazioni, quindi una voce come `Edit(.claude/**)` in `~/.claude/settings.json` o `.claude/settings.json` non modifica il risultato per modalità nella tabella precedente. Nelle modalità che richiedono conferma, il prompt per una scrittura nella cartella `.claude/` del progetto o in `~/.claude/` può offrire una di queste opzioni con ambito di sessione:


776* `.devcontainer.json`779* `.devcontainer.json`

777* `.ripgreprc`, `pyrightconfig.json`780* `.ripgreprc`, `pyrightconfig.json`

778* `.mcp.json`, `.claude.json`781* `.mcp.json`, `.claude.json`

782* `remote-settings.json`, la copia memorizzata delle [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md) della tua organizzazione, e i file di firma, sincronizzazione e consenso che Claude Code conserva insieme a essa, in `~/.claude` o nella directory a cui punta [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/it/env-vars)

779* Un file che hai passato a [`--settings`](https://code.claude.com/docs/it/cli-reference#cli-flags), `--mcp-config` o `--agents` quando hai avviato la sessione783* Un file che hai passato a [`--settings`](https://code.claude.com/docs/it/cli-reference#cli-flags), `--mcp-config` o `--agents` quando hai avviato la sessione

780* Il file a cui punta il tuo [file di impostazioni](https://code.claude.com/docs/it/settings.md#settings-files-and-who-they-affect) utente, di progetto o locale quando il file di impostazioni è esso stesso un collegamento simbolico, ad esempio verso un repository di dotfile. Nelle modalità che instradano le scritture su percorsi protetti al classificatore, una scrittura su questo file richiede invece conferma, anche quando corrisponde una regola allow. Se il percorso del file stesso è anche quello di un file di impostazioni, come `.claude/settings.json` in un'altra cartella, la scrittura va al classificatore come le altre scritture su percorsi protetti784* Il file a cui punta il tuo [file di impostazioni](https://code.claude.com/docs/it/settings.md#settings-files-and-who-they-affect) utente, di progetto o locale quando il file di impostazioni è esso stesso un collegamento simbolico, ad esempio verso un repository di dotfile. Nelle modalità che instradano le scritture su percorsi protetti al classificatore, una scrittura su questo file richiede invece conferma, anche quando corrisponde una regola allow. Se il percorso del file stesso è anche quello di un file di impostazioni, come `.claude/settings.json` in un'altra cartella, la scrittura va al classificatore come le altre scritture su percorsi protetti

781 785 

permissions.md +9 −2

Details

668 668 

669Non potete aggiungere la maggior parte dei [percorsi di rete](https://code.claude.com/docs/it/errors.md#working-directory-is-a-network-path), come la condivisione UNC `\\server\share`, come directory di lavoro, perché cercarli può contattare l'host che nominano. Su Windows, mappate la condivisione a una lettera di unità e passate l'unità con `--add-dir` all'avvio.669Non potete aggiungere la maggior parte dei [percorsi di rete](https://code.claude.com/docs/it/errors.md#working-directory-is-a-network-path), come la condivisione UNC `\\server\share`, come directory di lavoro, perché cercarli può contattare l'host che nominano. Su Windows, mappate la condivisione a una lettera di unità e passate l'unità con `--add-dir` all'avvio.

670 670 

671Impostate [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/it/settings-reference#permissions-blockreadsoutsideworkingdirectories) per fare in modo che gli strumenti di file rifiutino i percorsi che racchiude in ogni modalità di autorizzazione. In modalità auto, Claude Code offre di attivarlo la prima volta che Claude [legge al di fuori delle directory di lavoro](https://code.claude.com/docs/it/permission-modes.md#first-read-outside-the-working-directories).

672 

673Nelle sessioni in background su macOS, l'host della sessione richiede l'accesso a cartelle protette come `~/Desktop`, `~/Documents` e `~/Downloads` separatamente dal vostro terminale quando Claude ha bisogno di leggere o scrivere file lì; se le letture lì falliscono con `Operation not permitted`, consultate [come concedere l'accesso alle cartelle alle sessioni in background](https://code.claude.com/docs/it/agent-view.md#background-sessions-can%E2%80%99t-read-desktop-documents-or-downloads-on-macos).671Nelle sessioni in background su macOS, l'host della sessione richiede l'accesso a cartelle protette come `~/Desktop`, `~/Documents` e `~/Downloads` separatamente dal vostro terminale quando Claude ha bisogno di leggere o scrivere file lì; se le letture lì falliscono con `Operation not permitted`, consultate [come concedere l'accesso alle cartelle alle sessioni in background](https://code.claude.com/docs/it/agent-view.md#background-sessions-can%E2%80%99t-read-desktop-documents-or-downloads-on-macos).

674 672 

673### Bloccare letture e scritture degli strumenti di file al di fuori delle directory di lavoro

674 

675Per fare in modo che gli strumenti di file di Claude rifiutino i percorsi al di fuori delle directory di lavoro in ogni modalità di permesso, incluso `bypassPermissions`, imposta su `true` una o entrambe queste chiavi:

676 

677* **[`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/it/settings-reference#permissions-blockreadsoutsideworkingdirectories)**: gli strumenti di file rifiutano le letture lì, a parte i file di cui Claude Code stesso ha bisogno. In modalità auto, Claude Code offre di attivarla la prima volta che Claude [legge al di fuori delle directory di lavoro](https://code.claude.com/docs/it/permission-modes.md#first-read-outside-the-working-directories).

678* **[`permissions.blockWritesOutsideWorkingDirectories`](https://code.claude.com/docs/it/settings-reference#permissions-blockwritesoutsideworkingdirectories)**: gli strumenti `Write`, `Edit` e `NotebookEdit` rifiutano le scritture lì, a parte alcuni file di Claude Code stesso, come i file di piano. La chiave non limita i comandi shell, gli strumenti MCP o i programmi eseguiti dagli hook, quindi usa il [sandboxing](https://code.claude.com/docs/it/sandboxing.md) per limitare dove scrivono i comandi shell. Richiede Claude Code v2.1.314 o successivo.

679 

680Per mantenere raggiungibile una directory esterna mentre una delle due chiavi è `true`, [aggiungila come directory di lavoro](https://code.claude.com/docs/it/settings-reference.md#let-one-directory-through-the-read-or-write-block).

681 

675### Spostare la sessione in un'altra directory682### Spostare la sessione in un'altra directory

676 683 

677Per spostare la sessione in una directory di lavoro primaria diversa, piuttosto che [aggiungere una directory](#working-directories) insieme a quella attuale, esegui `/cd <path>`. Claude Code mantiene la conversazione, carica il `CLAUDE.md` della nuova directory e ti chiede di [considerare attendibile il workspace](#project-allow-rules-and-workspace-trust) se non ci hai mai lavorato prima. Successivamente, Claude Code [trova la sessione spostata](https://code.claude.com/docs/it/sessions.md#where-the-session-picker-looks) quando esegui `--resume` dalla nuova directory.684Per spostare la sessione in una directory di lavoro primaria diversa, piuttosto che [aggiungere una directory](#working-directories) insieme a quella attuale, esegui `/cd <path>`. Claude Code mantiene la conversazione, carica il `CLAUDE.md` della nuova directory e ti chiede di [considerare attendibile il workspace](#project-allow-rules-and-workspace-trust) se non ci hai mai lavorato prima. Successivamente, Claude Code [trova la sessione spostata](https://code.claude.com/docs/it/sessions.md#where-the-session-picker-looks) quando esegui `--resume` dalla nuova directory.

Details

256 256 

257### Interrompere il lavoro in background257### Interrompere il lavoro in background

258 258 

259I timer si fermano quando il modulo viene ricaricato. Per il lavoro di lunga durata all'interno di un hook, [`next.signal`](https://code.claude.com/docs/it/plugins/mods/reference#the-hook-function) è un `AbortSignal` che viene annullato quando l'evento gestito dal tuo hook viene abbandonato, ad esempio quando l'utente interrompe, quindi passalo a qualsiasi operazione di lunga durata.259I timer si fermano quando il modulo viene ricaricato. Per il lavoro di lunga durata all'interno di un hook, [`next.signal`](https://code.claude.com/docs/it/plugins/mods/reference#the-hook-function) è un `AbortSignal` che viene annullato quando l'evento gestito dal tuo hook viene abbandonato, ad esempio quando l'utente interrompe. Passalo a qualsiasi operazione di lunga durata.

260 260 

261### Chiamate e lavoro in background dopo che l'utente interrompe un turno261### Chiamate e lavoro in background dopo che l'utente interrompe un turno

262 262 

Details

738})738})

739```739```

740 740 

741Ora Claude Code esegue il tuo hook `ui.render` una volta al secondo. Il timer si arresta quando il modulo viene ricaricato, e la nuova istanza del modulo avvia il proprio.741Ora Claude Code esegue il tuo hook `ui.render` una volta al secondo. Il timer si arresta dopo che il modulo viene ricaricato, e la nuova istanza del modulo avvia il proprio.

742 742 

743### Con quale frequenza un sito può essere ridisegnato743### Con quale frequenza un sito può essere ridisegnato

744 744 

plugins/org.md +1 −1

Details

339Per eseguire canali stabili e ad accesso anticipato, ospitare due marketplace che puntano a ref diversi degli stessi plugin. Quindi assegnare a ogni gruppo di utenti il proprio marketplace attraverso impostazioni gestite da endpoint separate o una politica gateway. Le impostazioni gestite dal server dalla console di amministrazione [si applicano a ogni utente della tua organizzazione](https://code.claude.com/docs/it/server-managed-settings.md#current-limitations), quindi non possono assegnare impostazioni diverse a gruppi diversi.339Per eseguire canali stabili e ad accesso anticipato, ospitare due marketplace che puntano a ref diversi degli stessi plugin. Quindi assegnare a ogni gruppo di utenti il proprio marketplace attraverso impostazioni gestite da endpoint separate o una politica gateway. Le impostazioni gestite dal server dalla console di amministrazione [si applicano a ogni utente della tua organizzazione](https://code.claude.com/docs/it/server-managed-settings.md#current-limitations), quindi non possono assegnare impostazioni diverse a gruppi diversi.

340 340 

341* Distribuire [impostazioni gestite da endpoint](https://code.claude.com/docs/it/managed-settings.md#delivery-mechanisms) separate, come un file di impostazioni gestite o un profilo MDM, ai dispositivi di ogni gruppo. Per verificare se il file o il profilo per gruppo si applica su un dispositivo che ha anche un'origine a livello di organizzazione, consultare [Come Claude Code combina le origini gestite](https://code.claude.com/docs/it/managed-settings.md#precedence-within-the-managed-tier).341* Distribuire [impostazioni gestite da endpoint](https://code.claude.com/docs/it/managed-settings.md#delivery-mechanisms) separate, come un file di impostazioni gestite o un profilo MDM, ai dispositivi di ogni gruppo. Per verificare se il file o il profilo per gruppo si applica su un dispositivo che ha anche un'origine a livello di organizzazione, consultare [Come Claude Code combina le origini gestite](https://code.claude.com/docs/it/managed-settings.md#precedence-within-the-managed-tier).

342* Definire una [politica gateway delle app Claude](https://code.claude.com/docs/it/claude-apps-gateway-config.md#managed) per ogni gruppo. Il gateway applica la prima politica la cui regola di corrispondenza si adatta a un utente, quindi ordinare le politiche in modo che ogni utente raggiunga la politica del suo gruppo. La mappa `extraKnownMarketplaces` di quella politica non si unisce con quella di nessun'altra politica, quindi elencare ogni marketplace di cui il gruppo ha bisogno in essa, non solo il suo marketplace del canale.342* Definisci una [politica gateway delle app Claude](https://code.claude.com/docs/it/claude-apps-gateway-config.md#managed) per ogni gruppo. Per impostazione predefinita, il gateway applica la prima politica la cui regola di corrispondenza si adatta a un utente, quindi ordina le politiche in modo che ogni utente raggiunga la politica del suo gruppo. Della mappa `extraKnownMarketplaces` di quella politica non viene fatto il merge con quella di nessun'altra politica, quindi elenca in essa ogni marketplace di cui il gruppo ha bisogno, non solo il suo marketplace del canale.

343 343 

344Con uno dei due meccanismi, il gruppo stabile riceve questa configurazione:344Con uno dei due meccanismi, il gruppo stabile riceve questa configurazione:

345 345 

Details

51>51>

52> Fino a quando non si accetta la conferma una tantum di Remote Control, `claude remote-control` spiega cosa fa e chiede `Enable Remote Control? (y/n)` prima di avviare il server. Rispondere `y` per accettare e avviare il server. Se si rifiuta, Claude Code esce senza avviare il server e chiede di nuovo la prossima volta che si esegue il comando.52> Fino a quando non si accetta la conferma una tantum di Remote Control, `claude remote-control` spiega cosa fa e chiede `Enable Remote Control? (y/n)` prima di avviare il server. Rispondere `y` per accettare e avviare il server. Se si rifiuta, Claude Code esce senza avviare il server e chiede di nuovo la prossima volta che si esegue il comando.

53>53>

54> Il processo rimane in esecuzione nel terminale in modalità server, in attesa di connessioni remote. Visualizza un URL di sessione che è possibile utilizzare per [connettersi da un altro dispositivo](#connect-from-another-device), e si può premere la barra spaziatrice per visualizzare un codice QR per un accesso rapido dal telefono. Mentre una sessione remota è attiva, il terminale mostra lo stato della connessione e l'attività degli strumenti.54> Il processo rimane in esecuzione nel terminale in modalità server, in attesa di connessioni remote. Visualizza un URL che puoi utilizzare per [connetterti da un altro dispositivo](#connect-from-another-device), e puoi premere la barra spaziatrice per visualizzare un codice QR per un accesso rapido dal telefono. Mentre una sessione remota è attiva, il terminale mostra lo stato della connessione e l'attività degli strumenti.

55>55>

56> Passare uno qualsiasi di questi flag dopo `remote-control`:56> Passare uno qualsiasi di questi flag dopo `remote-control`:

57>57>


151 151 

152Una volta che una sessione Remote Control è attiva, hai alcuni modi per connetterti da un altro dispositivo:152Una volta che una sessione Remote Control è attiva, hai alcuni modi per connetterti da un altro dispositivo:

153 153 

154* **Apri l'URL della sessione** in qualsiasi browser per andare direttamente alla sessione su [claude.ai/code](https://claude.ai/code).154* **Apri l'URL visualizzato da Claude Code** in qualsiasi browser per andare su [claude.ai/code](https://claude.ai/code).

155* **Scansiona il codice QR** mostrato accanto all'URL della sessione per aprirlo direttamente nell'app Claude. Con `claude remote-control`, premere la barra spaziatrice per attivare/disattivare la visualizzazione del codice QR.155* **Scansiona il codice QR** mostrato accanto all'URL per aprirlo nell'app Claude. Con `claude remote-control`, premi la barra spaziatrice per attivare/disattivare la visualizzazione del codice QR.

156* **Apri [claude.ai/code](https://claude.ai/code) o l'app Claude** e trova la sessione per nome nell'elenco delle sessioni. Nell'app mobile Claude, tocca **Code** nella navigazione per raggiungere l'elenco delle sessioni. Le sessioni Remote Control mostrano un'icona del computer con un punto di stato verde quando sono online.156* **Apri [claude.ai/code](https://claude.ai/code) o l'app Claude** e trova la sessione per nome nell'elenco delle sessioni. Nell'app mobile Claude, tocca **Code** nella navigazione per raggiungere l'elenco delle sessioni. Le sessioni Remote Control mostrano un'icona del computer con un punto di stato verde quando sono online.

157 157 

158Quando ti connetti, il dispositivo mostra tutti i subagent e i flussi di lavoro che la sessione ha già in esecuzione in background. Arresta uno di essi dal dispositivo, e Claude Code arresta quel compito sulla tua macchina.158Quando ti connetti, il dispositivo mostra tutti i subagent e i flussi di lavoro che la sessione ha già in esecuzione in background. Arresta uno di essi dal dispositivo, e Claude Code arresta quel compito sulla tua macchina.

routines.md +1 −1

Details

105 105 

106**5. Seleziona un ambiente**106**5. Seleziona un ambiente**

107 107 

108Dopo aver selezionato un repository, sotto di esso compare **Cloud environment**. Scegli un [ambiente cloud](https://code.claude.com/docs/it/cloud-environments.md) per l'attività. Gli ambienti controllano a cosa ha accesso la sessione cloud:108Dopo aver selezionato un repository, sotto di esso compare **Cloud environment**. Scegli un [ambiente cloud](https://code.claude.com/docs/it/cloud-environments.md) per l'attività. Se un ambiente è già selezionato, puoi mantenerlo o selezionarne uno diverso. Gli ambienti controllano a cosa ha accesso la sessione cloud:

109 109 

110* **Network access**: imposta il livello di accesso a Internet disponibile durante ogni esecuzione110* **Network access**: imposta il livello di accesso a Internet disponibile durante ogni esecuzione

111* **Environment variables**: fornisci valori che Claude può utilizzare durante ogni esecuzione. Sono [visibili a chiunque utilizzi l'ambiente](https://code.claude.com/docs/it/cloud-environments.md#what-carries-over-from-your-setup), quindi in un ambiente ospitato da Anthropic archivia invece le chiavi per le API che Claude chiama durante un'esecuzione come [segreti di rete](https://code.claude.com/docs/it/cloud-environments.md#add-network-secrets). Quella sezione elenca anche le richieste che non ricevono mai un segreto111* **Environment variables**: fornisci valori che Claude può utilizzare durante ogni esecuzione. Sono [visibili a chiunque utilizzi l'ambiente](https://code.claude.com/docs/it/cloud-environments.md#what-carries-over-from-your-setup), quindi in un ambiente ospitato da Anthropic archivia invece le chiavi per le API che Claude chiama durante un'esecuzione come [segreti di rete](https://code.claude.com/docs/it/cloud-environments.md#add-network-secrets). Quella sezione elenca anche le richieste che non ricevono mai un segreto

Details

157* **Chiavi di accesso di prima parte**: [`forceLoginOrgUUID`](https://code.claude.com/docs/it/settings-reference#forceloginorguuid) e i valori `"claudeai"` e `"console"` di [`forceLoginMethod`](https://code.claude.com/docs/it/settings-reference#forceloginmethod). Se distribuisci anche una policy MDM o un file di impostazioni gestite, impostale lì e nelle impostazioni gestite dal server da claude.ai finché tutti i client non eseguono la v2.1.299 o successiva. Per sapere dove impostare le chiavi in seguito, e quale valore di origine si applica, consulta [Quale origine gestita fornisce le chiavi di accesso](https://code.claude.com/docs/it/managed-settings.md#which-managed-source-supplies-login-keys).157* **Chiavi di accesso di prima parte**: [`forceLoginOrgUUID`](https://code.claude.com/docs/it/settings-reference#forceloginorguuid) e i valori `"claudeai"` e `"console"` di [`forceLoginMethod`](https://code.claude.com/docs/it/settings-reference#forceloginmethod). Se distribuisci anche una policy MDM o un file di impostazioni gestite, impostale lì e nelle impostazioni gestite dal server da claude.ai finché tutti i client non eseguono la v2.1.299 o successiva. Per sapere dove impostare le chiavi in seguito, e quale valore di origine si applica, consulta [Quale origine gestita fornisce le chiavi di accesso](https://code.claude.com/docs/it/managed-settings.md#which-managed-source-supplies-login-keys).

158* **Chiavi di accesso al gateway**: Claude Code non legge mai [`forceLoginGatewayUrl`](https://code.claude.com/docs/it/settings-reference#forcelogingatewayurl), [`gatewayInternalNetworks`](https://code.claude.com/docs/it/settings-reference#gatewayinternalnetworks) o il valore `"gateway"` di [`forceLoginMethod`](https://code.claude.com/docs/it/settings-reference#forceloginmethod) dalle impostazioni gestite dal server, quindi un valore lì né si applica né nasconde un valore impostato in una policy MDM o in un file di impostazioni gestite. La [voce `managedSourcesBehavior`](https://code.claude.com/docs/it/settings-reference#managedsourcesbehavior) indica quale origine dell'amministratore sulla macchina li fornisce.158* **Chiavi di accesso al gateway**: Claude Code non legge mai [`forceLoginGatewayUrl`](https://code.claude.com/docs/it/settings-reference#forcelogingatewayurl), [`gatewayInternalNetworks`](https://code.claude.com/docs/it/settings-reference#gatewayinternalnetworks) o il valore `"gateway"` di [`forceLoginMethod`](https://code.claude.com/docs/it/settings-reference#forceloginmethod) dalle impostazioni gestite dal server, quindi un valore lì né si applica né nasconde un valore impostato in una policy MDM o in un file di impostazioni gestite. La [voce `managedSourcesBehavior`](https://code.claude.com/docs/it/settings-reference#managedsourcesbehavior) indica quale origine dell'amministratore sulla macchina li fornisce.

159 159 

160#### Quando l'`apiKeyHelper` di una macchina non è in vigore

161 

162Quando le tue impostazioni gestite dal server sono l'origine selezionata, un `apiKeyHelper` nel file di impostazioni gestite o nella policy MDM di una macchina non è in vigore. Claude Code allora [rifiuta i prompt](https://code.claude.com/docs/it/errors.md#claude-code-didnt-send-your-claude-ai-login) in una sessione che userebbe un accesso a claude.ai salvato, a condizione che valgano entrambe queste condizioni:

163 

164* Il file o la policy attiva un provider cloud, oppure una qualsiasi origine imposta un indirizzo API diverso da quello di Anthropic

165* Le impostazioni gestite dal server non impostano alcun helper e non indicano l'indirizzo API di Anthropic

166 

167Per eliminare il rifiuto, mantieni in vigore l'helper e il suo indirizzo API, indica l'indirizzo API di Anthropic nelle impostazioni gestite dal server, oppure rimuovi l'helper dalla policy della macchina. Il rifiuto richiede Claude Code v2.1.314 o successivo.

168 

160### Comportamento di recupero e della cache169### Comportamento di recupero e della cache

161 170 

162Claude Code recupera le impostazioni dai server di Anthropic all'avvio e verifica la presenza di aggiornamenti ogni ora durante le sessioni attive.171Claude Code recupera le impostazioni dai server di Anthropic all'avvio e verifica la presenza di aggiornamenti ogni ora durante le sessioni attive.

settings.md +3 −0

Details

184* [`model`](https://code.claude.com/docs/it/settings-reference#model): usate [`/model`](https://code.claude.com/docs/it/model-config#setting-your-model) per cambiare a metà sessione. Ogni modello ha la sua cache di prompt, quindi la prima richiesta dopo un cambio rilegge l'intera conversazione senza cache; vedere [Cambio di modelli](https://code.claude.com/docs/it/prompt-caching.md#switching-models)184* [`model`](https://code.claude.com/docs/it/settings-reference#model): usate [`/model`](https://code.claude.com/docs/it/model-config#setting-your-model) per cambiare a metà sessione. Ogni modello ha la sua cache di prompt, quindi la prima richiesta dopo un cambio rilegge l'intera conversazione senza cache; vedere [Cambio di modelli](https://code.claude.com/docs/it/prompt-caching.md#switching-models)

185* [`effortLevel`](https://code.claude.com/docs/it/settings-reference#effortlevel) e [`modelSettings`](https://code.claude.com/docs/it/settings-reference#modelsettings): usate [`/effort`](https://code.claude.com/docs/it/model-config#adjust-effort-level) per modificare lo sforzo a metà sessione185* [`effortLevel`](https://code.claude.com/docs/it/settings-reference#effortlevel) e [`modelSettings`](https://code.claude.com/docs/it/settings-reference#modelsettings): usate [`/effort`](https://code.claude.com/docs/it/model-config#adjust-effort-level) per modificare lo sforzo a metà sessione

186 186 

187Se rimuovi [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/it/settings-reference#permissions-blockreadsoutsideworkingdirectories) a metà sessione, gli strumenti per i file mantengono il blocco nella sessione in esecuzione. Per toglierlo, rimuovi la chiave da ogni file di impostazioni che la imposta, quindi riavvia ogni sessione in esecuzione.

188 

187### Confermate cosa è stato caricato189### Confermate cosa è stato caricato

188 190 

189Eseguite `/status` dentro Claude Code per vedere quali fonti di impostazioni sono attive. La scheda **Status** include una riga `Setting sources` che elenca ogni file di impostazioni che Claude Code ha caricato per la sessione corrente, come `User settings` o `Project local settings`. Quando le [impostazioni gestite](https://code.claude.com/docs/it/admin-setup.md#decide-how-settings-reach-devices) sono in vigore, la voce delle impostazioni gestite mostra tra parentesi come hanno raggiunto la vostra macchina.191Eseguite `/status` dentro Claude Code per vedere quali fonti di impostazioni sono attive. La scheda **Status** include una riga `Setting sources` che elenca ogni file di impostazioni che Claude Code ha caricato per la sessione corrente, come `User settings` o `Project local settings`. Quando le [impostazioni gestite](https://code.claude.com/docs/it/admin-setup.md#decide-how-settings-reach-devices) sono in vigore, la voce delle impostazioni gestite mostra tra parentesi come hanno raggiunto la vostra macchina.


307| [`enableArtifact`](https://code.claude.com/docs/it/settings-reference#enableartifact) | `false` da qualsiasi ambito, e `disableArtifact: true` da qualsiasi ambito | Rispettato anche quando una fonte gestita imposta `true`; niente riattiva lo [strumento Artifact](https://code.claude.com/docs/it/artifacts.md#disable-artifacts). Richiede Claude Code v2.1.242 o successiva |309| [`enableArtifact`](https://code.claude.com/docs/it/settings-reference#enableartifact) | `false` da qualsiasi ambito, e `disableArtifact: true` da qualsiasi ambito | Rispettato anche quando una fonte gestita imposta `true`; niente riattiva lo [strumento Artifact](https://code.claude.com/docs/it/artifacts.md#disable-artifacts). Richiede Claude Code v2.1.242 o successiva |

308| [`isolatePeerMachines`](https://code.claude.com/docs/it/settings-reference#isolatepeermachines) | `true` da qualsiasi ambito | Rispettato anche quando una fonte gestita imposta `false` |310| [`isolatePeerMachines`](https://code.claude.com/docs/it/settings-reference#isolatepeermachines) | `true` da qualsiasi ambito | Rispettato anche quando una fonte gestita imposta `false` |

309| [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/it/settings-reference#permissions-blockreadsoutsideworkingdirectories) | `true` da qualsiasi ambito | Rispettato anche quando una fonte gestita imposta `false`. Richiede Claude Code v2.1.257 o successiva |311| [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/it/settings-reference#permissions-blockreadsoutsideworkingdirectories) | `true` da qualsiasi ambito | Rispettato anche quando una fonte gestita imposta `false`. Richiede Claude Code v2.1.257 o successiva |

312| [`permissions.blockWritesOutsideWorkingDirectories`](https://code.claude.com/docs/it/settings-reference#permissions-blockwritesoutsideworkingdirectories) | `true` da qualsiasi ambito | Rispettato anche quando una fonte gestita imposta `false`. Richiede Claude Code v2.1.314 o successiva |

310| [`autoMode.classifyAllShell`](https://code.claude.com/docs/it/settings-reference#automode-classifyallshell) | `true` da `~/.claude/settings.json` o `--settings` | Rispettato anche quando una fonte gestita imposta `false` |313| [`autoMode.classifyAllShell`](https://code.claude.com/docs/it/settings-reference#automode-classifyallshell) | `true` da `~/.claude/settings.json` o `--settings` | Rispettato anche quando una fonte gestita imposta `false` |

311| [`remoteControlAtStartup`](https://code.claude.com/docs/it/settings-reference#remotecontrolatstartup) | `false` da `.claude/settings.json` o `.claude/settings.local.json` | Rispettato anche quando una fonte gestita imposta `true`; un `true` di progetto o locale viene ignorato |314| [`remoteControlAtStartup`](https://code.claude.com/docs/it/settings-reference#remotecontrolatstartup) | `false` da `.claude/settings.json` o `.claude/settings.local.json` | Rispettato anche quando una fonte gestita imposta `true`; un `true` di progetto o locale viene ignorato |

312| [`crossSessionInbound`](https://code.claude.com/docs/it/settings-reference#crosssessioninbound) | Un valore più restrittivo da `.claude/settings.json` o `.claude/settings.local.json`, sulla scala `accept` \< `hold` \< `refuse` | Rispettato rispetto ai valori gestiti, di `--settings` e utente; un valore di progetto o locale che non sia più restrittivo viene ignorato |315| [`crossSessionInbound`](https://code.claude.com/docs/it/settings-reference#crosssessioninbound) | Un valore più restrittivo da `.claude/settings.json` o `.claude/settings.local.json`, sulla scala `accept` \< `hold` \< `refuse` | Rispettato rispetto ai valori gestiti, di `--settings` e utente; un valore di progetto o locale che non sia più restrittivo viene ignorato |

Details

144| [`permissions.allow`](#permissions-allow) | Approva gli [usi degli strumenti](https://code.claude.com/docs/it/permissions.md#permission-rule-syntax) elencati senza richiesta di conferma | Impostazioni dei permessi | Any file |144| [`permissions.allow`](#permissions-allow) | Approva gli [usi degli strumenti](https://code.claude.com/docs/it/permissions.md#permission-rule-syntax) elencati senza richiesta di conferma | Impostazioni dei permessi | Any file |

145| [`permissions.ask`](#permissions-ask) | Chiedi sempre conferma prima degli [usi degli strumenti](https://code.claude.com/docs/it/permissions.md#permission-rule-syntax) elencati | Impostazioni dei permessi | Any file |145| [`permissions.ask`](#permissions-ask) | Chiedi sempre conferma prima degli [usi degli strumenti](https://code.claude.com/docs/it/permissions.md#permission-rule-syntax) elencati | Impostazioni dei permessi | Any file |

146| [`permissions.blockReadsOutsideWorkingDirectories`](#permissions-blockreadsoutsideworkingdirectories) | Fai in modo che gli strumenti per i file rifiutino le letture al di fuori delle [directory di lavoro](https://code.claude.com/docs/it/permissions.md#working-directories) in ogni modalità di permesso | Impostazioni dei permessi | Any file |146| [`permissions.blockReadsOutsideWorkingDirectories`](#permissions-blockreadsoutsideworkingdirectories) | Fai in modo che gli strumenti per i file rifiutino le letture al di fuori delle [directory di lavoro](https://code.claude.com/docs/it/permissions.md#working-directories) in ogni modalità di permesso | Impostazioni dei permessi | Any file |

147| [`permissions.blockWritesOutsideWorkingDirectories`](#permissions-blockwritesoutsideworkingdirectories) | Fai in modo che gli strumenti `Write`, `Edit` e `NotebookEdit` rifiutino i percorsi al di fuori delle [directory di lavoro](https://code.claude.com/docs/it/permissions.md#working-directories) in ogni modalità di permesso, tranne [alcuni file di Claude Code stesso](#what-the-write-block-refuses-and-what-stays-writable) | Impostazioni dei permessi | Any file |

147| [`permissions.defaultMode`](#permissions-defaultmode) | Imposta la [modalità di permesso](https://code.claude.com/docs/it/permission-modes.md#which-mode-a-session-starts-in) con cui iniziano le nuove sessioni | Impostazioni dei permessi | Any file |148| [`permissions.defaultMode`](#permissions-defaultmode) | Imposta la [modalità di permesso](https://code.claude.com/docs/it/permission-modes.md#which-mode-a-session-starts-in) con cui iniziano le nuove sessioni | Impostazioni dei permessi | Any file |

148| [`permissions.deny`](#permissions-deny) | Blocca gli [usi degli strumenti](https://code.claude.com/docs/it/permissions.md#permission-rule-syntax) elencati, incluse le letture di file che contengono segreti | Impostazioni dei permessi | Any file |149| [`permissions.deny`](#permissions-deny) | Blocca gli [usi degli strumenti](https://code.claude.com/docs/it/permissions.md#permission-rule-syntax) elencati, incluse le letture di file che contengono segreti | Impostazioni dei permessi | Any file |

149| [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) | Impedisci a chiunque di entrare nella [modalità bypassPermissions](https://code.claude.com/docs/it/permission-modes.md#skip-all-checks-with-bypasspermissions-mode) | Impostazioni dei permessi | Any file |150| [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) | Impedisci a chiunque di entrare nella [modalità bypassPermissions](https://code.claude.com/docs/it/permission-modes.md#skip-all-checks-with-bypasspermissions-mode) | Impostazioni dei permessi | Any file |


901Controlla quali strumenti Claude può utilizzare senza chiedere, per quali chiede sempre conferma e quali sono bloccati, e imposta la [modalità di permesso](https://code.claude.com/docs/it/permission-modes.md) in cui inizia una sessione. Ogni chiave `permissions.*` di seguito si annida sotto questo oggetto.902Controlla quali strumenti Claude può utilizzare senza chiedere, per quali chiede sempre conferma e quali sono bloccati, e imposta la [modalità di permesso](https://code.claude.com/docs/it/permission-modes.md) in cui inizia una sessione. Ogni chiave `permissions.*` di seguito si annida sotto questo oggetto.

902 903 

903* **Ambito**: [`Any file`](#scopes)904* **Ambito**: [`Any file`](#scopes)

904* **Tipo**: oggetto con `allow`, `ask`, `deny`, `additionalDirectories`, `blockReadsOutsideWorkingDirectories`, `defaultMode`, `disableBypassPermissionsMode` e `disableAutoMode`905* **Tipo**: oggetto con `allow`, `ask`, `deny`, `additionalDirectories`, `blockReadsOutsideWorkingDirectories`, `blockWritesOutsideWorkingDirectories`, `defaultMode`, `disableBypassPermissionsMode` e `disableAutoMode`

905* **Predefinito**: non impostato906* **Predefinito**: non impostato

906 907 

907Questo esempio approva i comandi `npm run` senza chiedere, chiede conferma prima di `git push`, blocca le letture di `.env` e avvia le sessioni in `acceptEdits`:908Questo esempio approva i comandi `npm run` senza chiedere, chiede conferma prima di `git push`, blocca le letture di `.env` e avvia le sessioni in `acceptEdits`:


1062}1063}

1063```1064```

1064 1065 

1066Per rimuovere il blocco, elimina la chiave da ogni file di impostazioni che la imposta, quindi riavvia ogni sessione in esecuzione.

1067 

1065Le directory che aggiungi con `--add-dir`, `/add-dir` o `additionalDirectories` nelle tue impostazioni utente o gestite contano come directory di lavoro per il blocco. Le directory aggiunte solo nelle impostazioni del repository non contano: quelle in `.claude/settings.json` e quelle in `.claude/settings.local.json`, a meno che git non segnali quel file come non tracciato. In una directory che non è un repository git, o quando git traccia il file, Claude Code tratta `.claude/settings.local.json` come impostazioni del repository, quindi metti invece le directory che vuoi mantenere leggibili nelle tue impostazioni utente.1068Le directory che aggiungi con `--add-dir`, `/add-dir` o `additionalDirectories` nelle tue impostazioni utente o gestite contano come directory di lavoro per il blocco. Le directory aggiunte solo nelle impostazioni del repository non contano: quelle in `.claude/settings.json` e quelle in `.claude/settings.local.json`, a meno che git non segnali quel file come non tracciato. In una directory che non è un repository git, o quando git traccia il file, Claude Code tratta `.claude/settings.local.json` come impostazioni del repository, quindi metti invece le directory che vuoi mantenere leggibili nelle tue impostazioni utente.

1066 1069 

1067Quando [`autoMemoryDirectory`](#automemorydirectory) proviene dal `.claude/settings.json` del progetto, o da un `.claude/settings.local.json` [trattato come fornito dal repository](https://code.claude.com/docs/it/permissions.md#when-your-local-settings-file-needs-trust), Claude Code non carica alcuna [memoria automatica](https://code.claude.com/docs/it/memory.md#storage-location) da quella directory e non vi salva nulla.1070Quando [`autoMemoryDirectory`](#automemorydirectory) proviene dal `.claude/settings.json` del progetto, o da un `.claude/settings.local.json` [trattato come fornito dal repository](https://code.claude.com/docs/it/permissions.md#when-your-local-settings-file-needs-trust), Claude Code non carica alcuna [memoria automatica](https://code.claude.com/docs/it/memory.md#storage-location) da quella directory e non vi salva nulla.

1068 1071 

1069Per rimuovere il blocco, elimina la chiave da ogni file di impostazioni che la imposta, quindi avvia una nuova sessione.

1070 

1071#### Comandi in sandbox sotto il blocco1072#### Comandi in sandbox sotto il blocco

1072 1073 

1073Quando il [sandboxing](https://code.claude.com/docs/it/sandboxing.md) è attivo, il blocco copre anche i comandi in sandbox. Claude Code nega loro l'accesso in lettura alla tua directory home e alle altre radici che contengono file utente: `/Users`, `/home`, `/root`, `/Volumes`, `/mnt`, `/media`, `/run/media` e `/srv`. Quindi riapre le directory di lavoro, i [worktree](https://code.claude.com/docs/it/worktrees.md) che Claude Code crea nella sessione, la directory temporanea della sessione e le parti di `~/.claude` di cui i comandi hanno bisogno, come skill e plugin. Mentre il blocco è in vigore, le voci `allowRead` e `allowWrite` dalle impostazioni del repository non contano.1074Quando il [sandboxing](https://code.claude.com/docs/it/sandboxing.md) è attivo, il blocco copre anche i comandi in sandbox. Claude Code nega loro l'accesso in lettura alla tua directory home e alle altre radici che contengono file utente: `/Users`, `/home`, `/root`, `/Volumes`, `/mnt`, `/media`, `/run/media` e `/srv`. Quindi riapre le directory di lavoro, i [worktree](https://code.claude.com/docs/it/worktrees.md) che Claude Code crea nella sessione, la directory temporanea della sessione e le parti di `~/.claude` di cui i comandi hanno bisogno, come skill e plugin. Mentre il blocco è in vigore, le voci `allowRead` e `allowWrite` dalle impostazioni del repository non contano.


1092 1093 

1093Se un file riaperto contiene un segreto, come un token `http.extraHeader`, aggiungi il suo percorso a [`sandbox.filesystem.denyRead`](#sandbox-filesystem-denyread). Una voce `denyRead` che copre un file ha sempre la precedenza su questa riapertura.1094Se un file riaperto contiene un segreto, come un token `http.extraHeader`, aggiungi il suo percorso a [`sandbox.filesystem.denyRead`](#sandbox-filesystem-denyread). Una voce `denyRead` che copre un file ha sempre la precedenza su questa riapertura.

1094 1095 

1096### `permissions.blockWritesOutsideWorkingDirectories`

1097 

1098Fai sì che gli strumenti `Write`, `Edit` e `NotebookEdit` rifiutino i percorsi al di fuori delle tue [directory di lavoro](https://code.claude.com/docs/it/permissions.md#working-directories) in ogni modalità di permesso, inclusa `bypassPermissions`, a parte [alcuni file di Claude Code stesso](#what-the-write-block-refuses-and-what-stays-writable). La chiave non limita i comandi shell, gli strumenti MCP o i programmi eseguiti dagli hook. Per limitare dove scrivono i comandi shell, attiva il [sandboxing](https://code.claude.com/docs/it/sandboxing.md). Richiede Claude Code v2.1.314 o successivo.

1099 

1100Una volta attivata la chiave, Claude Code rimuove anche gli strumenti `EnterWorktree` e `ExitWorktree` o rifiuta le chiamate a essi. Per continuare a lavorare nei worktree, segui [Claude non ha lo strumento `EnterWorktree`](https://code.claude.com/docs/it/worktrees#claude-has-no-enterworktree-tool).

1101 

1102* **Ambito**: [`Any file`](#scopes). Un `true` in qualsiasi file caricato dalla sessione si applica, quindi un repository può attivare il blocco per se stesso ma non può rimuovere il tuo. In una [sessione cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md), Claude Code potrebbe non applicare la chiave, perché gli strumenti di file vengono eseguiti in un container che costituisce esso stesso il confine.

1103* **Tipo**: Booleano

1104 * `true`: attiva il blocco

1105 * `false`: equivale a non impostato; il blocco si applica comunque se un altro file imposta `true`

1106* **Predefinito**: non impostato, quindi le scritture al di fuori delle directory di lavoro seguono la tua [modalità di permesso](https://code.claude.com/docs/it/permission-modes.md). Il blocco è attivo anche finché Claude Code non riesce a leggere l'oggetto `permissions` nelle tue [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md#keys-that-fail-closed).

1107 

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

1109{

1110 "permissions": {

1111 "blockWritesOutsideWorkingDirectories": true

1112 }

1113}

1114```

1115 

1116Per testare il blocco, chiedi a Claude di usare lo strumento Write per creare un file al di fuori delle tue directory di lavoro, come `~/block-test.txt` se la tua directory home non è una di esse. Claude Code rifiuta la chiamata, e il rifiuto indica che l'[impostazione blocca le scritture al di fuori delle directory di lavoro](https://code.claude.com/docs/it/errors.md#setting-blocks-writes-outside-the-working-directories).

1117 

1118Per rimuovere il blocco, elimina la chiave da ogni file di impostazioni che la imposta, quindi riavvia Claude Code.

1119 

1120#### Cosa rifiuta il blocco delle scritture e cosa rimane scrivibile

1121 

1122Alcuni file di Claude Code stesso rimangono scrivibili, come i file di piano, lo [scratchpad](https://code.claude.com/docs/it/claude-directory.md#session-scratchpad-directory), la directory `tmp` di una [sessione in background](https://code.claude.com/docs/it/agent-view.md) e i file `.md` nella [memoria automatica](https://code.claude.com/docs/it/memory.md#storage-location) di questo progetto.

1123 

1124Oltre ai tuoi file al di fuori delle directory di lavoro, il blocco rifiuta le scritture in:

1125 

1126* **File di impostazioni di Claude Code**: Claude Code [rifiuta queste scritture](https://code.claude.com/docs/it/errors.md#writes-to-claude-code-settings-files-are-blocked) anche all'interno delle directory di lavoro, perché un file di impostazioni può rimuovere il blocco. Modifica tu stesso i file di impostazioni.

1127* **Una directory aggiunta solo dalle impostazioni del repository**: una che [`additionalDirectories`](#permissions-additionaldirectories) elenca solo in `.claude/settings.json`, o in `.claude/settings.local.json` a meno che git non segnali quel file come non tracciato

1128* **Il worktree di un subagent**: le modifiche ai file di un subagent [`isolation: worktree`](https://code.claude.com/docs/it/worktrees#isolate-subagents-with-worktrees) vengono rifiutate quando il suo worktree si trova al di fuori delle directory di lavoro

1129* **Memoria automatica in una directory scelta dal repository**: una directory che [`autoMemoryDirectory`](#automemorydirectory) nomina nelle impostazioni del repository

1130 

1131I file di impostazioni restano rifiutati qualunque cosa tu aggiunga. Per far passare una scrittura in uno qualsiasi degli altri casi, [aggiungi una directory di lavoro](#let-one-directory-through-the-read-or-write-block). `/add-dir` richiede una directory esistente, quindi per i worktree dei subagent indica la directory `.claude/worktrees` nella radice del repository.

1132 

1133#### Far passare una directory attraverso il blocco delle letture o delle scritture

1134 

1135Per consentire a Claude di raggiungere una directory al di fuori del progetto mentre `blockReadsOutsideWorkingDirectories` o `blockWritesOutsideWorkingDirectories` è `true`, aggiungila come directory di lavoro. Esegui `/add-dir <directory>` nella sessione, passa `--add-dir <directory>` quando avvii Claude Code, oppure elencala sotto `additionalDirectories` nelle tue impostazioni utente o gestite. Nessuna [regola di consenso](https://code.claude.com/docs/it/permissions.md#read-and-edit) permette agli strumenti di file di Claude di superare l'uno o l'altro blocco.

1136 

1095### `permissions.defaultMode`1137### `permissions.defaultMode`

1096 1138 

1097Imposta la [modalità di permesso](https://code.claude.com/docs/it/permission-modes.md) in cui iniziano le nuove sessioni. Quando la lasci non impostata, le sessioni iniziano nel [predefinito integrato](https://code.claude.com/docs/it/permission-modes.md#which-mode-a-session-starts-in) per la tua superficie.1139Imposta la [modalità di permesso](https://code.claude.com/docs/it/permission-modes.md) in cui iniziano le nuove sessioni. Quando la lasci non impostata, le sessioni iniziano nel [predefinito integrato](https://code.claude.com/docs/it/permission-modes.md#which-mode-a-session-starts-in) per la tua superficie.


2427* **Sessione**: sei in una sessione interattiva del terminale, nel pannello chat dell'estensione VS Code o nella scheda Code dell'app desktop quando la sessione viene eseguita sul tuo computer o tramite SSH2469* **Sessione**: sei in una sessione interattiva del terminale, nel pannello chat dell'estensione VS Code o nella scheda Code dell'app desktop quando la sessione viene eseguita sul tuo computer o tramite SSH

2428* **Compattazione automatica**: [`autoCompactEnabled`](#autocompactenabled) è attiva2470* **Compattazione automatica**: [`autoCompactEnabled`](#autocompactenabled) è attiva

2429* **Cache del prompt**: la conversazione usa il [TTL di un'ora della cache del prompt](https://code.claude.com/docs/it/prompt-caching.md#which-ttl-each-request-gets)2471* **Cache del prompt**: la conversazione usa il [TTL di un'ora della cache del prompt](https://code.claude.com/docs/it/prompt-caching.md#which-ttl-each-request-gets)

2430* **Feature flag**: Claude Code può [recuperare i feature flag da Anthropic](https://code.claude.com/docs/it/env-vars.md#features-that-need-feature-flag-fetching)

2431* **Dimensione**: il contesto della conversazione ha raggiunto la soglia di token, che puoi [modificare](#change-the-idle-compaction-threshold) rispetto al valore predefinito di 200.0002472* **Dimensione**: il contesto della conversazione ha raggiunto la soglia di token, che puoi [modificare](#change-the-idle-compaction-threshold) rispetto al valore predefinito di 200.000

2432* **Tempo di inattività**: è trascorsa circa un'ora dall'ultima richiesta, e il tuo computer resta attivo fino ad allora2473* **Tempo di inattività**: è trascorsa circa un'ora dall'ultima richiesta, e il tuo computer resta attivo fino ad allora

2433 2474 


2449Per disattivare o attivare la compattazione durante l'inattività dall'interno di una sessione del terminale, esegui `/config` e modifica la riga **Idle compaction**. La tua scelta viene salvata nelle tue impostazioni utente e si applica subito. La riga richiede Claude Code v2.1.302 o successiva. Se esegui una di queste versioni e `/config` non mostra la riga, verifica queste cause:2490Per disattivare o attivare la compattazione durante l'inattività dall'interno di una sessione del terminale, esegui `/config` e modifica la riga **Idle compaction**. La tua scelta viene salvata nelle tue impostazioni utente e si applica subito. La riga richiede Claude Code v2.1.302 o successiva. Se esegui una di queste versioni e `/config` non mostra la riga, verifica queste cause:

2450 2491 

2451* **Un'altra fonte di impostazioni imposta la chiave**: un valore nelle impostazioni gestite, nel flag `--settings` o in un file di impostazioni di progetto o locale sovrascrive le tue impostazioni utente. Modifica invece la chiave in quella fonte2492* **Un'altra fonte di impostazioni imposta la chiave**: un valore nelle impostazioni gestite, nel flag `--settings` o in un file di impostazioni di progetto o locale sovrascrive le tue impostazioni utente. Modifica invece la chiave in quella fonte

2452* **I feature flag non sono disponibili**: dove Claude Code non può [recuperare i feature flag da Anthropic](https://code.claude.com/docs/it/env-vars.md#features-that-need-feature-flag-fetching), la compattazione durante l'inattività non viene eseguita, quindi non c'è nulla da disattivare2493* **I feature flag non sono disponibili in una versione precedente alla v2.1.314**: dove Claude Code non può [recuperare i feature flag da Anthropic](https://code.claude.com/docs/it/env-vars.md#features-that-need-feature-flag-fetching), la compattazione durante l'inattività non viene eseguita, quindi non c'è nulla da disattivare

2453 2494 

2454La chiave richiede Claude Code v2.1.290 o successiva. In una versione precedente, che ignora questa chiave, disattiva [`autoCompactEnabled`](#autocompactenabled) per fermare la compattazione durante l'inattività.2495La chiave richiede Claude Code v2.1.290 o successiva. In una versione precedente, che ignora questa chiave, disattiva [`autoCompactEnabled`](#autocompactenabled) per fermare la compattazione durante l'inattività.

2455 2496 

slack.md +9 −11

Details

49 49 

501. Apri l'app Claude in Slack facendo clic su "Claude" nella tua sezione App501. Apri l'app Claude in Slack facendo clic su "Claude" nella tua sezione App

512. Apri la scheda App Home512. Apri la scheda App Home

523. Fai clic su "Connect" per collegare il tuo account Slack al tuo account Claude523. Fai clic su **Connect Claude account** per collegare il tuo account Slack al tuo account Claude

534. Completa il flusso di autenticazione nel tuo browser534. Completa il flusso di autenticazione nel tuo browser

54 54 

55**3. Configura le sessioni cloud**55**3. Configura le sessioni cloud**


71 71 

72> [!NOTE]72> [!NOTE]

73>73>

74> In modalità Code + Chat, se Claude instrada un messaggio a Chat ma desideravi una sessione di codifica, puoi fare clic su "Retry as Code" per creare una sessione Claude Code. Allo stesso modo, se viene instradato a Code ma desideravi una sessione Chat, puoi scegliere quell'opzione in quel thread.74> In modalità Code + Chat, se Claude risponde in Chat ma desideravi una sessione di codifica, fai clic su **Switch to code repo...** nella risposta e seleziona un repository. Claude avvierà invece una sessione Claude Code con il tuo messaggio.

75 75 

76**5. Aggiungi Claude ai canali**76**5. Aggiungi Claude ai canali**

77 77 


1072. **Rilevamento**: Claude analizza il tuo messaggio e rileva l'intento di codifica1072. **Rilevamento**: Claude analizza il tuo messaggio e rileva l'intento di codifica

1083. **Creazione della sessione**: Una nuova sessione Claude Code viene creata su claude.ai/code1083. **Creazione della sessione**: Una nuova sessione Claude Code viene creata su claude.ai/code

1094. **Aggiornamenti di avanzamento**: Claude pubblica aggiornamenti di stato nel tuo thread Slack mentre il lavoro progredisce1094. **Aggiornamenti di avanzamento**: Claude pubblica aggiornamenti di stato nel tuo thread Slack mentre il lavoro progredisce

1105. **Completamento**: Al termine, Claude ti @menziona con un riepilogo e pulsanti di azione1105. **Completamento**: Al termine, Claude aggiorna il suo messaggio nel thread con la risposta finale e i pulsanti di azione, e ti invia un messaggio diretto con un link al messaggio

1116. **Revisione**: Fai clic su "View Session" per vedere la trascrizione completa, o "Create PR" per aprire una pull request1116. **Revisione**: Fai clic su **View session** per vedere la trascrizione completa, o su **Create PR** per aprire una pull request

112 112 

113## Elementi dell'interfaccia utente113## Elementi dell'interfaccia utente

114 114 

115### Azioni sui messaggi115### Azioni sui messaggi

116 116 

117* **View Session**: Apre la sessione Claude Code completa nel tuo browser dove puoi vedere tutto il lavoro eseguito, continuare la sessione o fare richieste aggiuntive.117* **View session**: Apre la sessione Claude Code completa nel tuo browser dove puoi vedere tutto il lavoro eseguito, continuare la sessione o fare richieste aggiuntive.

118* **Create PR**: Crea una pull request direttamente dalle modifiche della sessione.118* **Create PR**: Apre la pagina di confronto di GitHub per il branch della sessione, dove crei la pull request. Compare sul messaggio di stato che Claude ha pubblicato all'avvio della sessione, una volta che la sessione è terminata.

119* **Retry as Code**: Se Claude inizialmente risponde come assistente chat ma desideravi una sessione di codifica, fai clic su questo pulsante per riprovare la richiesta come un compito Claude Code.119* **Switch to code repo...**: Se Claude risponde in Chat ma desideravi una sessione di codifica, fai clic su questo pulsante e seleziona un repository, e Claude avvia una sessione Claude Code con la tua richiesta originale.

120* **Change Repo**: Ti consente di selezionare un repository diverso se Claude ha scelto in modo errato.

121 120 

122### Selezione del repository121### Selezione del repository

123 122 

124Claude seleziona automaticamente un repository in base al contesto della tua conversazione Slack. Se più repository potrebbero applicarsi, Claude potrebbe visualizzare un menu a discesa che ti consente di scegliere quello corretto.123Claude seleziona automaticamente un repository in base al contesto della tua conversazione Slack. Se Claude non riesce a capire a quale repository ti riferisci, ti chiede di sceglierlo: fai clic su **Select repository** e selezionane uno dall'elenco.

125 124 

126## Accesso e autorizzazioni125## Accesso e autorizzazioni

127 126 


219 218 

220### Repository selezionato errato219### Repository selezionato errato

221 220 

2221. Fai clic sul pulsante "Change Repo" per selezionare un repository diverso221Includi il nome del repository nella tua richiesta per una selezione più accurata.

2232. Includi il nome del repository nella tua richiesta per una selezione più accurata

224 222 

225### Errori di autenticazione223### Errori di autenticazione

226 224 

sub-agents.md +2 −2

Details

1048 1048 

1049Valuta invece le [skill](https://code.claude.com/docs/it/skills.md) quando vuoi prompt o workflow riutilizzabili che vengano eseguiti nel contesto della conversazione principale anziché nel contesto isolato di un subagent.1049Valuta invece le [skill](https://code.claude.com/docs/it/skills.md) quando vuoi prompt o workflow riutilizzabili che vengano eseguiti nel contesto della conversazione principale anziché nel contesto isolato di un subagent.

1050 1050 

1051Per una domanda su qualcosa che è già nella tua conversazione, usa [`/btw`](https://code.claude.com/docs/it/interactive-mode#side-questions-with-%2Fbtw) invece di un subagent. Vede tutto il tuo contesto ma non ha accesso agli strumenti, e la risposta non viene aggiunta alla cronologia.1051Per una domanda su qualcosa che è già nella tua conversazione, usa [`/btw`](https://code.claude.com/docs/it/interactive-mode#side-questions-with-%2Fbtw) invece di un subagent. Non ha accesso agli strumenti, e la risposta non viene aggiunta alla cronologia.

1052 1052 

1053### Permettere ai subagent di avviare i propri subagent1053### Permettere ai subagent di avviare i propri subagent

1054 1054 


1242| `x` | Interrompi il fork selezionato se è in esecuzione, oppure chiudi la sua riga se non è più in esecuzione. Sulla riga della sessione principale, o sulla riga del fork di cui hai aperto la trascrizione con `Enter`, `x` viene invece digitato nel prompt |1242| `x` | Interrompi il fork selezionato se è in esecuzione, oppure chiudi la sua riga se non è più in esecuzione. Sulla riga della sessione principale, o sulla riga del fork di cui hai aperto la trascrizione con `Enter`, `x` viene invece digitato nel prompt |

1243| `Esc` | Riporta il focus sull'input del prompt |1243| `Esc` | Riporta il focus sull'input del prompt |

1244 1244 

1245Con la trascrizione di un fork o di un subagent aperta, i messaggi di follow-up e le [skill](https://code.claude.com/docs/it/skills.md) vanno a quell'agente, mentre i comandi integrati vanno alla tua conversazione principale, con queste tutele:1245Con la trascrizione di un fork o di un subagent aperta, i messaggi di follow-up e le [skill](https://code.claude.com/docs/it/skills.md) vanno a quell'agente. In Claude Code v2.1.314 o successiva, [`/btw`](https://code.claude.com/docs/it/interactive-mode#ask-btw-about-a-subagent) risponde a partire dalla trascrizione aperta. Gli altri comandi integrati vanno alla tua conversazione principale, con queste tutele:

1246 1246 

1247* `/compact`, `/clear` e `/rewind` agiscono sulla conversazione principale, quindi Claude Code ti chiede conferma prima di eseguirne uno da questa vista.1247* `/compact`, `/clear` e `/rewind` agiscono sulla conversazione principale, quindi Claude Code ti chiede conferma prima di eseguirne uno da questa vista.

1248* `/model` e `/fast` impostano il modello e la modalità veloce della conversazione principale, non quelli dell'agente visualizzato, quindi non vengono eseguiti da questa vista. Un avviso te ne spiega il motivo.1248* `/model` e `/fast` impostano il modello e la modalità veloce della conversazione principale, non quelli dell'agente visualizzato, quindi non vengono eseguiti da questa vista. Un avviso te ne spiega il motivo.

tools-reference.md +31 −22

Details

4 4 

5# Riferimento degli strumenti5# Riferimento degli strumenti

6 6 

7> Riferimento completo per gli strumenti che Claude Code può utilizzare, inclusi i requisiti di autorizzazione e il comportamento per strumento.7> Riferimento completo per gli strumenti che Claude Code può utilizzare, inclusi i requisiti di permesso e il comportamento per strumento.

8 8 

9Claude Code ha accesso a un set di strumenti integrati che lo aiutano a comprendere e modificare la tua base di codice. I nomi degli strumenti sono le stringhe esatte che utilizzi nelle [regole di autorizzazione](https://code.claude.com/docs/it/permissions.md#tool-specific-permission-rules), negli [elenchi di strumenti dei subagent](https://code.claude.com/docs/it/sub-agents.md) e nei [matcher di hook](https://code.claude.com/docs/it/hooks.md).9Claude Code ha accesso a un set di strumenti integrati che lo aiutano a comprendere e modificare il tuo codebase. I nomi degli strumenti sono le stringhe esatte che utilizzi nelle [regole di permesso](https://code.claude.com/docs/it/permissions.md#tool-specific-permission-rules), negli [elenchi di strumenti dei subagent](https://code.claude.com/docs/it/sub-agents.md) e nei [matcher degli hook](https://code.claude.com/docs/it/hooks.md).

10 10 

11Per controllare quali strumenti Claude può utilizzare e quando chiede prima, configura le [regole di autorizzazione](https://code.claude.com/docs/it/permissions.md#tool-specific-permission-rules) nelle tue impostazioni, negli [hook](https://code.claude.com/docs/it/hooks.md) o nell'[elenco di strumenti di un subagent](https://code.claude.com/docs/it/sub-agents.md#supported-frontmatter-fields). Vedi [Configurare gli strumenti con regole di autorizzazione e hook](#configure-tools-with-permission-rules-and-hooks) per ogni luogo che accetta un nome di strumento.11Per controllare quali strumenti Claude può utilizzare e quando chiede prima, configura le [regole di permesso](https://code.claude.com/docs/it/permissions.md#tool-specific-permission-rules) nelle tue impostazioni, negli [hook](https://code.claude.com/docs/it/hooks.md) o nell'[elenco di strumenti di un subagent](https://code.claude.com/docs/it/sub-agents.md#supported-frontmatter-fields). Vedi [Configurare gli strumenti con regole di permesso e hook](#configure-tools-with-permission-rules-and-hooks) per ogni luogo che accetta un nome di strumento.

12 12 

13Per aggiungere strumenti personalizzati, connetti un [server MCP](https://code.claude.com/docs/it/mcp.md). Per estendere Claude con flussi di lavoro basati su prompt riutilizzabili, scrivi una [skill](https://code.claude.com/docs/it/skills.md), che viene eseguita attraverso lo strumento `Skill` esistente piuttosto che aggiungere una nuova voce di strumento.13Per aggiungere strumenti personalizzati, connetti un [server MCP](https://code.claude.com/docs/it/mcp.md). Per estendere Claude con workflow riutilizzabili basati su prompt, scrivi una [skill](https://code.claude.com/docs/it/skills.md), che viene eseguita attraverso lo strumento `Skill` esistente piuttosto che aggiungere una nuova voce di strumento.

14 14 

15> [!NOTE]15> [!NOTE]

16>16>

17> In [modalità automatica](https://code.claude.com/docs/it/permission-modes.md#eliminate-prompts-with-auto-mode), un classificatore decide la maggior parte dei prompt di autorizzazione invece di te. La colonna `Permission required` mostra se lo strumento richiede prompt in [modalità manuale](https://code.claude.com/docs/it/permission-modes.md) per i percorsi all'interno della directory di lavoro. Gli strumenti di accesso ai file contrassegnati No, inclusi `Read`, `Grep` e `Glob`, richiedono comunque prompt per i percorsi al di fuori della [directory di lavoro e delle directory aggiuntive](https://code.claude.com/docs/it/permissions.md#working-directories). `Bash` è contrassegnato Yes ma esegue un set integrato di [comandi di sola lettura](https://code.claude.com/docs/it/permissions.md#read-only-commands) senza richiedere prompt.17> In [modalità auto](https://code.claude.com/docs/it/permission-modes.md#eliminate-prompts-with-auto-mode), un classificatore decide la maggior parte delle richieste di permesso al posto tuo. La colonna `Permission required` mostra se lo strumento chiede conferma in [modalità Manual](https://code.claude.com/docs/it/permission-modes.md) per i percorsi all'interno della directory di lavoro. Gli strumenti di accesso ai file contrassegnati No, inclusi `Read`, `Grep` e `Glob`, chiedono comunque conferma per i percorsi al di fuori della [directory di lavoro e delle directory aggiuntive](https://code.claude.com/docs/it/permissions.md#working-directories). `Bash` è contrassegnato Yes ma esegue un set integrato di [comandi di sola lettura](https://code.claude.com/docs/it/permissions.md#read-only-commands) senza chiedere conferma.

18 18 

19| Strumento | Descrizione | Autorizzazione richiesta |19| Strumento | Descrizione | Permesso richiesto |

20| :- | :- | :- |20| :- | :- | :- |

21| `Agent` | Genera un [subagent](https://code.claude.com/docs/it/sub-agents.md) con la propria finestra di contesto per gestire un'attività. Con i [team di agenti](https://code.claude.com/docs/it/agent-teams.md) abilitati, una chiamata che porta un `name` può avviare un [compagno di squadra](https://code.claude.com/docs/it/agent-teams.md#how-claude-starts-agent-teams) invece. Vedi [Comportamento dello strumento Agent](#agent-tool-behavior) | No |21| `Agent` | Genera un [subagent](https://code.claude.com/docs/it/sub-agents.md) con la propria finestra di contesto per gestire un'attività. Con i [team di agenti](https://code.claude.com/docs/it/agent-teams.md) abilitati, una chiamata che porta un `name` può invece avviare un [compagno di squadra](https://code.claude.com/docs/it/agent-teams.md#how-claude-starts-agent-teams). Vedi [Comportamento dello strumento Agent](#agent-tool-behavior) | No |

22| `Artifact` | Pubblica un file HTML o Markdown su claude.ai come [artefatto](https://code.claude.com/docs/it/artifacts.md): una pagina privata e interattiva. Puoi condividerla con un link pubblico, o all'interno della tua organizzazione nei piani Team ed Enterprise, dove la condivisione pubblica richiede a un Owner di [abilitarla](https://code.claude.com/docs/it/artifacts.md#control-public-sharing). Richiede un piano Pro, Max, Ultra, Team o Enterprise e autenticazione `/login`; vedi [Disponibilità](https://code.claude.com/docs/it/artifacts.md#availability) | Yes |22| `Artifact` | Pubblica un file HTML o Markdown su claude.ai come [artefatto](https://code.claude.com/docs/it/artifacts.md): una pagina privata e interattiva. Puoi condividerla con un link pubblico, o all'interno della tua organizzazione nei piani Team ed Enterprise, dove la condivisione pubblica richiede a un Owner di [abilitarla](https://code.claude.com/docs/it/artifacts.md#control-public-sharing). Richiede un piano Pro, Max, Ultra, Team o Enterprise e autenticazione `/login`; vedi [Disponibilità](https://code.claude.com/docs/it/artifacts.md#availability) | Yes |

23| `AskUserQuestion` | Pone domande a scelta multipla per raccogliere requisiti o chiarire ambiguità. Le domande rimangono aperte finché non le rispondi per impostazione predefinita. Vedi [Comportamento dello strumento AskUserQuestion](#askuserquestion-tool-behavior) | No |23| `AskUserQuestion` | Pone domande a scelta multipla per raccogliere requisiti o chiarire ambiguità. Per impostazione predefinita, le domande rimangono aperte finché non rispondi. Vedi [Comportamento dello strumento AskUserQuestion](#askuserquestion-tool-behavior) | No |

24| `Bash` | Esegue comandi shell nel tuo ambiente. Vedi [Comportamento dello strumento Bash](#bash-tool-behavior) | Yes |24| `Bash` | Esegue comandi shell nel tuo ambiente. Vedi [Comportamento dello strumento Bash](#bash-tool-behavior) | Yes |

25| `CronCreate` | Pianifica un prompt ricorrente o una tantum all'interno della sessione corrente. Le attività hanno ambito di sessione e vengono ripristinate su `--resume` o `--continue` se non scadute. Vedi [attività pianificate con ambito di sessione](https://code.claude.com/docs/it/scheduled-tasks.md) | No |25| `CronCreate` | Pianifica un prompt ricorrente o una tantum all'interno della sessione corrente. Le attività hanno ambito di sessione e vengono ripristinate su `--resume` o `--continue` se non scadute. Vedi [attività pianificate con ambito di sessione](https://code.claude.com/docs/it/scheduled-tasks.md) | No |

26| `CronDelete` | Annulla un'attività pianificata con ambito di sessione per ID | No |26| `CronDelete` | Annulla un'attività pianificata con ambito di sessione per ID | No |

27| `CronList` | Elenca tutte le attività pianificate con ambito di sessione | No |27| `CronList` | Elenca tutte le attività pianificate con ambito di sessione | No |

28| `Edit` | Effettua modifiche mirate a file specifici. Vedi [Comportamento dello strumento Edit](#edit-tool-behavior) | Yes |28| `Edit` | Effettua modifiche mirate a file specifici. Vedi [Comportamento dello strumento Edit](#edit-tool-behavior) | Yes |

29| `EndConversation` | Termina la sessione, in rari casi di input abusivo sostenuto o quando chiedi a Claude di dimostrare lo strumento. Vedi [Comportamento dello strumento EndConversation](#endconversation-tool-behavior) | No |29| `EndConversation` | Termina la sessione, in rari casi di input abusivo sostenuto o quando chiedi a Claude di dimostrare lo strumento. Vedi [Comportamento dello strumento EndConversation](#endconversation-tool-behavior) | No |

30| `EnterPlanMode` | Passa a Plan Mode per progettare un approccio prima di codificare | No |30| `EnterPlanMode` | Passa al plan mode per progettare un approccio prima di scrivere codice | No |

31| `EnterWorktree` | Crea un [git worktree](https://code.claude.com/docs/it/worktrees.md) isolato e vi entra. Passa un `path` per entrare in un worktree esistente invece di crearne uno nuovo. Al primo ingresso il target può essere un worktree del repository corrente o, in uno spazio di lavoro multi-repo, di un repository annidato al suo interno. Prima della v2.1.203, un worktree di un repository annidato era rifiutato. Un `path` al di fuori di `.claude/worktrees/` richiede la tua approvazione prima di entrare, poiché sposta la directory di lavoro della sessione e l'accesso in scrittura a quella posizione. La creazione di nuovi worktree e i percorsi sotto `.claude/worktrees/` non richiedono prompt. Prima della v2.1.206, Claude entrava nei percorsi al di fuori di `.claude/worktrees/` senza un prompt. Da una sessione worktree, o da un subagent con una directory di lavoro fissata come [`isolation: worktree`](https://code.claude.com/docs/it/sub-agents#supported-frontmatter-fields), è disponibile solo il modulo `path` e il target deve trovarsi sotto `.claude/worktrees/` del repository della sessione | Yes |31| `EnterWorktree` | Crea un [git worktree](https://code.claude.com/docs/it/worktrees.md) isolato e vi entra, oppure entra in un worktree esistente. Vedi [Comportamento dello strumento EnterWorktree](#enterworktree-tool-behavior) | Yes |

32| `ExitPlanMode` | Presenta un piano per l'approvazione ed esce da Plan Mode | Yes |32| `ExitPlanMode` | Presenta un piano per l'approvazione ed esce dal plan mode | Yes |

33| `ExitWorktree` | Esce da una sessione worktree e ritorna alla directory originale. Non disponibile per i subagent che già vengono eseguiti nella propria directory di lavoro, come con [`isolation: worktree`](https://code.claude.com/docs/it/sub-agents#supported-frontmatter-fields) | No |33| `ExitWorktree` | Esce da una sessione worktree e ritorna alla directory originale. Non disponibile per i subagent che già vengono eseguiti nella propria directory di lavoro, come con [`isolation: worktree`](https://code.claude.com/docs/it/sub-agents#supported-frontmatter-fields). Rimosso o rifiutato quando [`permissions.blockWritesOutsideWorkingDirectories`](https://code.claude.com/docs/it/settings-reference#permissions-blockwritesoutsideworkingdirectories) è attivo | No |

34| `Glob` | Trova file in base alla corrispondenza di pattern. Assente per impostazione predefinita su macOS, Linux e WSL. Vedi [Comportamento dello strumento Glob](#glob-tool-behavior) | No |34| `Glob` | Trova file in base alla corrispondenza di pattern. Assente per impostazione predefinita su macOS, Linux e WSL. Vedi [Comportamento dello strumento Glob](#glob-tool-behavior) | No |

35| `Grep` | Cerca pattern nei contenuti dei file. Assente per impostazione predefinita su macOS, Linux e WSL. Vedi [Comportamento dello strumento Grep](#grep-tool-behavior) | No |35| `Grep` | Cerca pattern nei contenuti dei file. Assente per impostazione predefinita su macOS, Linux e WSL. Vedi [Comportamento dello strumento Grep](#grep-tool-behavior) | No |

36| `ListAgents` | Elenca gli agenti con cui Claude può inviare messaggi con `SendMessage`: subagent nella sessione, compagni di squadra del [team di agenti](https://code.claude.com/docs/it/agent-teams.md), le tue altre sessioni locali di Claude Code e, mentre questa sessione è connessa a [Remote Control](https://code.claude.com/docs/it/remote-control.md), le tue [sessioni cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md) e le tue sessioni Remote Control su altre macchine. Supporta il comando `/list-agents`. Vedi [messaggistica tra sessioni](https://code.claude.com/docs/it/cross-session-messaging.md). Richiede Claude Code v2.1.224 o successivo e appare solo nelle sessioni in cui la [messaggistica tra sessioni è abilitata](https://code.claude.com/docs/it/cross-session-messaging.md#availability). Le righe dei compagni di squadra e la prima riga che mostra il nome della sessione stessa richiedono v2.1.239 o successivo | No |36| `ListAgents` | Elenca gli agenti a cui Claude può inviare messaggi con `SendMessage`: subagent nella sessione, compagni di squadra del [team di agenti](https://code.claude.com/docs/it/agent-teams.md), le tue altre sessioni locali di Claude Code e, mentre questa sessione è connessa a [Remote Control](https://code.claude.com/docs/it/remote-control.md), le tue [sessioni cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md) e le tue sessioni Remote Control su altre macchine. Supporta il comando `/list-agents`. Vedi [messaggistica tra sessioni](https://code.claude.com/docs/it/cross-session-messaging.md). Richiede Claude Code v2.1.224 o successivo e appare solo nelle sessioni in cui la [messaggistica tra sessioni è abilitata](https://code.claude.com/docs/it/cross-session-messaging.md#availability). Le righe dei compagni di squadra e la prima riga che mostra il nome della sessione stessa richiedono v2.1.239 o successivo | No |

37| `ListMcpResourcesTool` | Elenca le risorse esposte dai [server MCP](https://code.claude.com/docs/it/mcp.md) connessi, escludendo le [risorse dell'interfaccia utente delle app MCP](https://code.claude.com/docs/it/mcp.md#reference-mcp-resources), che sono pagine per un'applicazione host da renderizzare | No |37| `ListMcpResourcesTool` | Elenca le risorse esposte dai [server MCP](https://code.claude.com/docs/it/mcp.md) connessi, escludendo le [risorse dell'interfaccia utente delle app MCP](https://code.claude.com/docs/it/mcp.md#reference-mcp-resources), che sono pagine per un'applicazione host da renderizzare | No |

38| `LSP` | Intelligenza del codice tramite language server: salta alle definizioni, trova riferimenti, segnala errori di tipo e avvisi. Vedi [Comportamento dello strumento LSP](#lsp-tool-behavior) | No |38| `LSP` | Intelligenza del codice tramite language server: salta alle definizioni, trova riferimenti, segnala errori di tipo e avvisi. Vedi [Comportamento dello strumento LSP](#lsp-tool-behavior) | No |

39| `Monitor` | Esegue un comando in background e restituisce ogni riga di output a Claude, in modo che possa reagire alle voci di log, ai cambiamenti di file o allo stato sottoposto a polling a metà conversazione. Può anche aprire un WebSocket e trattare ogni messaggio in arrivo come un evento. Vedi [Strumento Monitor](#monitor-tool) | Yes |39| `Monitor` | Esegue un comando in background e restituisce ogni riga di output a Claude, in modo che possa reagire alle voci di log, ai cambiamenti di file o allo stato sottoposto a polling a metà conversazione. Può anche aprire un WebSocket e trattare ogni messaggio in arrivo come un evento. Vedi [Strumento Monitor](#monitor-tool) | Yes |


44| `ReadMcpResourceTool` | Legge una risorsa MCP specifica per URI | No |44| `ReadMcpResourceTool` | Legge una risorsa MCP specifica per URI | No |

45| `RemoteTrigger` | Crea, aggiorna, esegue ed elenca le [attività pianificate cloud](https://code.claude.com/docs/it/routines.md), in precedenza routine, su claude.ai. Supporta il comando `/schedule`. Il [riferimento di input di `RemoteTrigger`](https://code.claude.com/docs/it/agent-sdk/typescript#remotetrigger) documenta ogni azione e le policy dell'organizzazione che rimuovono lo strumento. Le attività pianificate cloud risiedono su claude.ai e richiedono un piano Pro, Max, Ultra, Team o Enterprise. Questo strumento quindi non è accessibile da Amazon Bedrock, Claude Platform su AWS, Google Cloud's Agent Platform o Microsoft Foundry | No |45| `RemoteTrigger` | Crea, aggiorna, esegue ed elenca le [attività pianificate cloud](https://code.claude.com/docs/it/routines.md), in precedenza routine, su claude.ai. Supporta il comando `/schedule`. Il [riferimento di input di `RemoteTrigger`](https://code.claude.com/docs/it/agent-sdk/typescript#remotetrigger) documenta ogni azione e le policy dell'organizzazione che rimuovono lo strumento. Le attività pianificate cloud risiedono su claude.ai e richiedono un piano Pro, Max, Ultra, Team o Enterprise. Questo strumento quindi non è accessibile da Amazon Bedrock, Claude Platform su AWS, Google Cloud's Agent Platform o Microsoft Foundry | No |

46| `ReportFindings` | Segnala i risultati della code review come un elenco strutturato, con un file, un riepilogo e uno scenario di errore per ogni risultato, in modo che Claude Code possa renderizzarli invece di stamparli come testo. Claude lo chiama quando le istruzioni di code review attive glielo indicano. Un risultato può anche includere uno slug `category` opzionale, come `correctness` o `test-coverage`, mostrato accanto alla posizione del file nell'elenco renderizzato | No |46| `ReportFindings` | Segnala i risultati della code review come un elenco strutturato, con un file, un riepilogo e uno scenario di errore per ogni risultato, in modo che Claude Code possa renderizzarli invece di stamparli come testo. Claude lo chiama quando le istruzioni di code review attive glielo indicano. Un risultato può anche includere uno slug `category` opzionale, come `correctness` o `test-coverage`, mostrato accanto alla posizione del file nell'elenco renderizzato | No |

47| `ScheduleWakeup` | Riprogramma l'iterazione successiva di un [`/loop` auto-paced](https://code.claude.com/docs/it/scheduled-tasks#let-claude-choose-the-interval). Claude lo chiama alla fine di ogni iterazione per scegliere quando viene eseguita la successiva, tra un minuto e un'ora; non lo chiami direttamente. Per terminare invece il loop, Claude lo chiama con `stop: true`, che annulla il wakeup in sospeso. Il wakeup in sospeso appare in `session_crons` nell'[input Stop hook](https://code.claude.com/docs/it/hooks.md#stop-input) | No |47| `ScheduleWakeup` | Riprogramma l'iterazione successiva di un [`/loop` auto-paced](https://code.claude.com/docs/it/scheduled-tasks#let-claude-choose-the-interval). Claude lo chiama alla fine di ogni iterazione per scegliere quando viene eseguita la successiva, tra un minuto e un'ora; non lo chiami direttamente. Per terminare invece il loop, Claude lo chiama con `stop: true`, che annulla il wakeup in sospeso. Il wakeup in sospeso appare in `session_crons` nell'[input dell'hook Stop](https://code.claude.com/docs/it/hooks.md#stop-input) | No |

48| `SendFeedback` | Redige un rapporto di feedback su Claude Code, coprendo un problema di prodotto o il comportamento di Claude stesso nella sessione, e lo mette in coda sulla tua macchina per te da rivedere. Claude Code non invia nulla finché non scegli di inviare la bozza. Vedi [Comportamento dello strumento SendFeedback](#sendfeedback-tool-behavior). Richiede Claude Code v2.1.238 o successivo | No |48| `SendFeedback` | Redige un rapporto di feedback su Claude Code, relativo a un problema di prodotto o al comportamento di Claude stesso nella sessione, e lo mette in coda sulla tua macchina affinché tu possa rivederlo. Claude Code non invia nulla finché non scegli di inviare la bozza. Vedi [Comportamento dello strumento SendFeedback](#sendfeedback-tool-behavior). Richiede Claude Code v2.1.238 o successivo | No |

49| `SendMessage` | Invia un messaggio a un altro agente: un compagno di squadra del [team di agenti](https://code.claude.com/docs/it/agent-teams.md), un [subagent che riprende](https://code.claude.com/docs/it/sub-agents.md#resume-subagents) per ID agente o nome, o una delle tue altre sessioni di Claude Code, su questa macchina o oltre. La messaggistica di altre sessioni richiede Claude Code v2.1.224 o successivo. La [messaggistica tra sessioni](https://code.claude.com/docs/it/cross-session-messaging.md) copre quali sessioni Claude può raggiungere, [come appare un messaggio quando arriva](https://code.claude.com/docs/it/cross-session-messaging.md#what-a-message-looks-like) e [come Claude riceve un avviso quando un'altra sessione diventa inattiva](https://code.claude.com/docs/it/cross-session-messaging.md#get-a-notice-when-another-session-goes-idle). Claude può includere un input `summary` opzionale, tipicamente 5-10 parole, che Claude Code mostra come anteprima su una riga. Quando Claude lo omette su un [messaggio di testo semplice](https://code.claude.com/docs/it/cross-session-messaging.md#limitations), Claude Code utilizza la prima riga del messaggio come riepilogo. Claude Code tronca un riepilogo più lungo di 200 caratteri con un'ellissi | No |49| `SendMessage` | Invia un messaggio a un altro agente: un compagno di squadra del [team di agenti](https://code.claude.com/docs/it/agent-teams.md), un [subagent che riprende](https://code.claude.com/docs/it/sub-agents.md#resume-subagents) per ID agente o nome, o una delle tue altre sessioni di Claude Code, su questa macchina o oltre. La messaggistica verso altre sessioni richiede Claude Code v2.1.224 o successivo. La [messaggistica tra sessioni](https://code.claude.com/docs/it/cross-session-messaging.md) copre quali sessioni Claude può raggiungere, [come appare un messaggio quando arriva](https://code.claude.com/docs/it/cross-session-messaging.md#what-a-message-looks-like) e [come Claude riceve un avviso quando un'altra sessione diventa inattiva](https://code.claude.com/docs/it/cross-session-messaging.md#get-a-notice-when-another-session-goes-idle). Claude può includere un input `summary` opzionale, tipicamente 5-10 parole, che Claude Code mostra come anteprima su una riga. Quando Claude lo omette su un [messaggio di testo semplice](https://code.claude.com/docs/it/cross-session-messaging.md#limitations), Claude Code utilizza la prima riga del messaggio come riepilogo. Claude Code tronca un riepilogo più lungo di 200 caratteri con un'ellissi | No |

50| `SendUserFile` | Ti invia file dalla sessione con una didascalia opzionale, in modo che un rapporto generato, un diagramma, uno screenshot o un artefatto di build raggiunga il tuo dispositivo invece di essere solo menzionato nella trascrizione. L'input `display` opzionale controlla la presentazione: `render` apre il file inline nel client, `attach` mostra solo una scheda di download e, quando non è impostato, il client decide in base al tipo di file. Disponibile quando un client [Remote Control](https://code.claude.com/docs/it/remote-control.md) è connesso o in una [sessione cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md). La consegna avviene tramite l'infrastruttura ospitata da Anthropic, quindi lo strumento non è disponibile su Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry | No |50| `SendUserFile` | Ti invia file dalla sessione con una didascalia opzionale, in modo che un rapporto generato, un diagramma, uno screenshot o un artefatto di build raggiunga il tuo dispositivo invece di essere solo menzionato nella trascrizione. L'input `display` opzionale controlla la presentazione: `render` apre il file inline nel client, `attach` mostra solo una scheda di download e, quando non è impostato, il client decide in base al tipo di file. Disponibile quando un client [Remote Control](https://code.claude.com/docs/it/remote-control.md) è connesso o in una [sessione cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md). La consegna avviene tramite l'infrastruttura ospitata da Anthropic, quindi lo strumento non è disponibile su Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry | No |

51| `ShareOnboardingGuide` | Carica `ONBOARDING.md` e restituisce un link di condivisione che i compagni di squadra possono aprire in Claude Code. Chiamato da `/team-onboarding` dopo che la guida è stata scritta. Disponibile per gli abbonati a claude.ai nei piani Team ed Enterprise | Yes |51| `ShareOnboardingGuide` | Carica `ONBOARDING.md` e restituisce un link di condivisione che i compagni di squadra possono aprire in Claude Code. Chiamato da `/team-onboarding` dopo che la guida è stata scritta. Disponibile per gli abbonati a claude.ai nei piani Team ed Enterprise | Yes |

52| `Skill` | Esegue una [skill](https://code.claude.com/docs/it/skills.md#control-who-invokes-a-skill) all'interno della conversazione principale | Yes |52| `Skill` | Esegue una [skill](https://code.claude.com/docs/it/skills.md#control-who-invokes-a-skill) all'interno della conversazione principale | Yes |

53| `SubagentHandback` | Consegna il rapporto finale di un subagent a qualunque conversazione riceva il risultato di quel subagent. Fornito solo in [modalità automatica](https://code.claude.com/docs/it/permission-modes.md#eliminate-prompts-with-auto-mode), ai subagent che lo strumento Agent esegue localmente diversi dai [fork](https://code.claude.com/docs/it/sub-agents.md#fork-the-current-conversation), e disponibile nel CLI del terminale, nelle estensioni IDE, nelle sessioni cloud e nell'Agent SDK; il classificatore esamina il rapporto prima che venga consegnato. Richiede Claude Code v2.1.271 o successivo | No |53| `SubagentHandback` | Consegna il rapporto finale di un subagent a qualunque conversazione riceva il risultato di quel subagent. Fornito solo in [modalità auto](https://code.claude.com/docs/it/permission-modes.md#eliminate-prompts-with-auto-mode), ai subagent che lo strumento Agent esegue localmente diversi dai [fork](https://code.claude.com/docs/it/sub-agents.md#fork-the-current-conversation), e disponibile nella CLI del terminale, nelle estensioni IDE, nelle sessioni cloud e nell'Agent SDK; il classificatore esamina il rapporto prima che venga consegnato. Richiede Claude Code v2.1.271 o successivo | No |

54| `TaskCreate` | Crea una nuova attività nell'elenco delle attività. Fornito per impostazione predefinita solo sui modelli elencati in [Disponibilità dello strumento Task](#task-tool-availability) e su altri modelli quando accetti | No |54| `TaskCreate` | Crea una nuova attività nell'elenco delle attività. Fornito per impostazione predefinita solo sui modelli elencati in [Disponibilità dello strumento Task](#task-tool-availability) e su altri modelli quando lo abiliti esplicitamente | No |

55| `TaskGet` | Recupera i dettagli completi per un'attività specifica. Fornito per impostazione predefinita solo sui modelli elencati in [Disponibilità dello strumento Task](#task-tool-availability) e su altri modelli quando accetti | No |55| `TaskGet` | Recupera i dettagli completi per un'attività specifica. Fornito per impostazione predefinita solo sui modelli elencati in [Disponibilità dello strumento Task](#task-tool-availability) e su altri modelli quando lo abiliti esplicitamente | No |

56| `TaskList` | Elenca tutte le attività con il loro stato attuale. Fornito per impostazione predefinita solo sui modelli elencati in [Disponibilità dello strumento Task](#task-tool-availability) e su altri modelli quando accetti | No |56| `TaskList` | Elenca tutte le attività con il loro stato attuale. Fornito per impostazione predefinita solo sui modelli elencati in [Disponibilità dello strumento Task](#task-tool-availability) e su altri modelli quando lo abiliti esplicitamente | No |

57| `TaskOutput` | Rimosso nella v2.1.277. In precedenza recuperava l'output da un'attività in background; Claude ora legge invece il [file di output](https://code.claude.com/docs/it/interactive-mode.md#how-backgrounding-works) di un'attività in background con `Read` | No |57| `TaskOutput` | Rimosso nella v2.1.277. In precedenza recuperava l'output da un'attività in background; Claude ora legge invece il [file di output](https://code.claude.com/docs/it/interactive-mode.md#how-backgrounding-works) di un'attività in background con `Read` | No |

58| `TaskStop` | Arresta un'attività in background in esecuzione per ID. Accetta anche un [compagno di squadra del team di agenti](https://code.claude.com/docs/it/agent-teams.md) o un agente in background con nome, per ID agente o nome. Quando nessuna attività corrisponde all'ID, l'errore elenca gli agenti in background in esecuzione per ID e descrizione, inclusi gli agenti generati da un altro agente | No |58| `TaskStop` | Arresta un'attività in background in esecuzione per ID. Accetta anche un [compagno di squadra del team di agenti](https://code.claude.com/docs/it/agent-teams.md) o un agente in background con nome, per ID agente o nome. Quando nessuna attività corrisponde all'ID, l'errore elenca gli agenti in background in esecuzione per ID e descrizione, inclusi gli agenti generati da un altro agente | No |

59| `TaskUpdate` | Aggiorna lo stato dell'attività, le dipendenze, i dettagli o elimina le attività. Fornito per impostazione predefinita solo sui modelli elencati in [Disponibilità dello strumento Task](#task-tool-availability) e su altri modelli quando accetti | No |59| `TaskUpdate` | Aggiorna lo stato dell'attività, le dipendenze, i dettagli o elimina le attività. Fornito per impostazione predefinita solo sui modelli elencati in [Disponibilità dello strumento Task](#task-tool-availability) e su altri modelli quando lo abiliti esplicitamente | No |

60| `TodoWrite` | Gestisce l'elenco di controllo delle attività della sessione. Disabilitato per impostazione predefinita a favore di `TaskCreate`, `TaskGet`, `TaskList` e `TaskUpdate`. Imposta `CLAUDE_CODE_ENABLE_TASKS=0` per riabilitarlo nelle [sessioni che hanno gli strumenti di tracciamento delle attività](#task-tool-availability) | No |60| `TodoWrite` | Gestisce l'elenco di controllo delle attività della sessione. Disabilitato per impostazione predefinita a favore di `TaskCreate`, `TaskGet`, `TaskList` e `TaskUpdate`. Imposta `CLAUDE_CODE_ENABLE_TASKS=0` per riabilitarlo nelle [sessioni che hanno gli strumenti di tracciamento delle attività](#task-tool-availability) | No |

61| `ToolSearch` | Cerca e carica strumenti differiti quando la [ricerca di strumenti](https://code.claude.com/docs/it/mcp.md#scale-with-mcp-tool-search) è abilitata | No |61| `ToolSearch` | Cerca e carica strumenti differiti quando la [ricerca di strumenti](https://code.claude.com/docs/it/mcp.md#scale-with-mcp-tool-search) è abilitata | No |

62| `WaitForMcpServers` | Attende uno o più [server MCP](https://code.claude.com/docs/it/mcp.md) che si stanno ancora connettendo in background, in modo che una richiesta possa utilizzare i loro strumenti senza riavviare la sessione. Claude lo chiama quando un server necessario non è ancora connesso. Appare solo quando la [ricerca di strumenti](https://code.claude.com/docs/it/mcp.md#scale-with-mcp-tool-search) è disabilitata, poiché `ToolSearch` gestisce l'attesa quando è abilitata | No |62| `WaitForMcpServers` | Attende uno o più [server MCP](https://code.claude.com/docs/it/mcp.md) che si stanno ancora connettendo in background, in modo che una richiesta possa utilizzare i loro strumenti senza riavviare la sessione. Claude lo chiama quando un server necessario non è ancora connesso. Appare solo quando la [ricerca di strumenti](https://code.claude.com/docs/it/mcp.md#scale-with-mcp-tool-search) è disabilitata, poiché `ToolSearch` gestisce l'attesa quando è abilitata | No |

63| `WebFetch` | Recupera il contenuto da un URL specificato. Vedi [Comportamento dello strumento WebFetch](#webfetch-tool-behavior) | Yes |63| `WebFetch` | Recupera il contenuto da un URL specificato. Vedi [Comportamento dello strumento WebFetch](#webfetch-tool-behavior) | Yes |

64| `WebSearch` | Esegue ricerche web. Vedi [Comportamento dello strumento WebSearch](#websearch-tool-behavior) | Yes |64| `WebSearch` | Esegue ricerche web. Vedi [Comportamento dello strumento WebSearch](#websearch-tool-behavior) | Yes |

65| `Workflow` | Esegue un [flusso di lavoro dinamico](https://code.claude.com/docs/it/workflows.md): uno script che orchestra molti subagent in background e restituisce un risultato consolidato | Yes |65| `Workflow` | Esegue un [workflow dinamico](https://code.claude.com/docs/it/workflows.md): uno script che orchestra molti subagent in background e restituisce un unico risultato consolidato | Yes |

66| `Write` | Crea o sovrascrive file. Vedi [Comportamento dello strumento Write](#write-tool-behavior) | Yes |66| `Write` | Crea o sovrascrive file. Vedi [Comportamento dello strumento Write](#write-tool-behavior) | Yes |

67 67 

68## Configurare gli strumenti con regole di autorizzazione e hook68## Configurare gli strumenti con regole di autorizzazione e hook


299* **Modalità di avvio**: non una sessione [`--bare`](https://code.claude.com/docs/it/headless#start-faster-with-bare-mode). La modalità bare carica solo gli strumenti shell e file, quindi lo strumento non viene mai registrato lì.299* **Modalità di avvio**: non una sessione [`--bare`](https://code.claude.com/docs/it/headless#start-faster-with-bare-mode). La modalità bare carica solo gli strumenti shell e file, quindi lo strumento non viene mai registrato lì.

300* **Provider**: non disponibile su [Amazon Bedrock](https://code.claude.com/docs/it/amazon-bedrock.md), [Claude Platform su AWS](https://code.claude.com/docs/it/claude-platform-on-aws.md), [Google Cloud's Agent Platform](https://code.claude.com/docs/it/google-vertex-ai.md) o [Microsoft Foundry](https://code.claude.com/docs/it/microsoft-foundry.md), o su sessioni accedute tramite un [cloud gateway](https://code.claude.com/docs/it/claude-apps-gateway).300* **Provider**: non disponibile su [Amazon Bedrock](https://code.claude.com/docs/it/amazon-bedrock.md), [Claude Platform su AWS](https://code.claude.com/docs/it/claude-platform-on-aws.md), [Google Cloud's Agent Platform](https://code.claude.com/docs/it/google-vertex-ai.md) o [Microsoft Foundry](https://code.claude.com/docs/it/microsoft-foundry.md), o su sessioni accedute tramite un [cloud gateway](https://code.claude.com/docs/it/claude-apps-gateway).

301 301 

302## Comportamento dello strumento EnterWorktree

303 

304Lo strumento EnterWorktree crea un [git worktree](https://code.claude.com/docs/it/worktrees.md) isolato e vi passa. Se riceve un `path`, passa a un worktree esistente invece di crearne uno nuovo.

305 

306* **Quali worktree può indicare `path`**: al primo ingresso la destinazione può essere un worktree del repository corrente. In un repository che contiene altri repository, può essere anche un worktree di un repository annidato al suo interno.

307* **Quando ti viene chiesta conferma**: un `path` al di fuori di `.claude/worktrees/` chiede la tua approvazione prima dell'ingresso, poiché sposta la directory di lavoro della sessione e l'accesso in scrittura in quella posizione. La creazione di un nuovo worktree e i percorsi sotto `.claude/worktrees/` non richiedono conferma. Prima della v2.1.206, Claude entrava nei percorsi al di fuori di `.claude/worktrees/` senza alcuna richiesta di conferma.

308* **Dall'interno di un worktree**: all'interno di una sessione in un worktree, è disponibile solo la forma con `path` e la destinazione deve trovarsi sotto `.claude/worktrees/` del repository della sessione. Lo stesso vale per un subagent con una directory di lavoro fissata, come [`isolation: worktree`](https://code.claude.com/docs/it/sub-agents#supported-frontmatter-fields).

309* **Quando lo strumento manca**: quando [`permissions.blockWritesOutsideWorkingDirectories`](https://code.claude.com/docs/it/settings-reference#permissions-blockwritesoutsideworkingdirectories) è attivo, Claude Code rimuove `EnterWorktree` e `ExitWorktree` oppure ne rifiuta le chiamate. Per continuare a lavorare nei worktree, consulta [Claude non ha lo strumento `EnterWorktree`](https://code.claude.com/docs/it/worktrees#claude-has-no-enterworktree-tool).

310 

302## Comportamento dello strumento Glob311## Comportamento dello strumento Glob

303 312 

304Lo strumento Glob trova file in base al modello di nome. Su Windows, fa parte del set di strumenti predefinito. Su macOS, Linux e WSL, Claude Code esclude Glob e [Grep](#grep-tool-behavior) dal set di strumenti predefinito, e Claude esegue ricerche con `find` e `grep` attraverso lo strumento Bash. Nella shell di Claude questi due comandi eseguono versioni incorporate di `bfs` e `ugrep`, e le ricerche raggiungono i tuoi hook e le regole di permesso come chiamate `Bash`.313Lo strumento Glob trova file in base al modello di nome. Su Windows, fa parte del set di strumenti predefinito. Su macOS, Linux e WSL, Claude Code esclude Glob e [Grep](#grep-tool-behavior) dal set di strumenti predefinito, e Claude esegue ricerche con `find` e `grep` attraverso lo strumento Bash. Nella shell di Claude questi due comandi eseguono versioni incorporate di `bfs` e `ugrep`, e le ricerche raggiungono i tuoi hook e le regole di permesso come chiamate `Bash`.

worktrees.md +17 −3

Details

41 41 

42### Chiedere a Claude di creare un worktree42### Chiedere a Claude di creare un worktree

43 43 

44Potete anche chiedere a Claude di "lavorare in un worktree" durante una sessione, e creerà uno con lo strumento [`EnterWorktree`](https://code.claude.com/docs/it/tools-reference). Una volta in un worktree, Claude può passare direttamente a un altro sotto `.claude/worktrees/` chiamando `EnterWorktree` con il percorso di destinazione; il worktree precedente rimane su disco intatto.44Puoi anche chiedere a Claude di "lavorare in un worktree" durante una sessione, e ne creerà uno con lo strumento [`EnterWorktree`](https://code.claude.com/docs/it/tools-reference#enterworktree-tool-behavior). Una volta in un worktree, Claude può passare direttamente a un altro sotto `.claude/worktrees/` chiamando `EnterWorktree` con il percorso di destinazione; il worktree precedente rimane su disco intatto.

45 45 

46Quando Claude entra in un percorso al di fuori della directory `.claude/worktrees/` del repository, Claude Code chiede prima la tua approvazione. Lo spostamento porta in quella posizione la directory di lavoro della sessione, l'accesso in scrittura e la configurazione del progetto come `CLAUDE.md` e le impostazioni. Una [regola di permesso](https://code.claude.com/docs/it/permissions.md) `EnterWorktree` o la scelta di "non chiedere di nuovo" non sopprime questa richiesta; solo la modalità `bypassPermissions` la salta.46Quando Claude entra in un percorso al di fuori della directory `.claude/worktrees/` del repository, Claude Code chiede prima la tua approvazione. Lo spostamento porta in quella posizione la directory di lavoro della sessione, l'accesso in scrittura e la configurazione del progetto come `CLAUDE.md` e le impostazioni. Una [regola di permesso](https://code.claude.com/docs/it/permissions.md) `EnterWorktree` o la scelta di "non chiedere di nuovo" non sopprime questa richiesta; solo la modalità `bypassPermissions` la salta.

47 47 


52> * **`${CLAUDE_PROJECT_DIR}` rimane fermo**: punta ancora alla radice del progetto dove la sessione è iniziata, quindi un comando hook come `${CLAUDE_PROJECT_DIR}/.claude/hooks/check-style.sh` esegue ancora lo script nel checkout principale.52> * **`${CLAUDE_PROJECT_DIR}` rimane fermo**: punta ancora alla radice del progetto dove la sessione è iniziata, quindi un comando hook come `${CLAUDE_PROJECT_DIR}/.claude/hooks/check-style.sh` esegue ancora lo script nel checkout principale.

53> * **`cwd` segue Claude**: il campo `cwd` nel [JSON di input](https://code.claude.com/docs/it/hooks.md#common-input-fields) dell'hook è la radice del worktree, e si sposta di nuovo quando Claude esegue `cd`. Leggetelo quando un hook ha bisogno del percorso del worktree.53> * **`cwd` segue Claude**: il campo `cwd` nel [JSON di input](https://code.claude.com/docs/it/hooks.md#common-input-fields) dell'hook è la radice del worktree, e si sposta di nuovo quando Claude esegue `cd`. Leggetelo quando un hook ha bisogno del percorso del worktree.

54 54 

55#### Claude non ha lo strumento `EnterWorktree`

56 

57Se chiedi a Claude di lavorare in un worktree e non ha lo strumento `EnterWorktree` o `ExitWorktree`, verifica se [`permissions.blockWritesOutsideWorkingDirectories`](https://code.claude.com/docs/it/settings-reference#permissions-blockwritesoutsideworkingdirectories) è attiva. Quando la chiave è attiva, Claude Code rimuove entrambi gli strumenti per i worktree o rifiuta le chiamate a essi.

58 

59Puoi continuare a lavorare nei worktree mentre la chiave è attiva:

60 

61* **Sessioni interattive**: avvia la sessione in un worktree con `claude --worktree`.

62* **[Sessioni in background](https://code.claude.com/docs/it/agent-view.md#how-file-edits-are-isolated)**: Claude Code rifiuta le modifiche di una sessione in background nel tuo checkout principale finché la sessione non chiama `EnterWorktree`, che non ha a disposizione. Una qualsiasi di queste opzioni consente alla sessione di apportare modifiche:

63 * Avviala con `claude --bg --worktree`

64 * Imposta [`worktree.bgIsolation`](https://code.claude.com/docs/it/settings-reference#worktree-bgisolation) su `"none"`

65 * Fai in modo che Claude apporti modifiche in un worktree creato con `git worktree add` sotto la directory in cui è iniziata la sessione

66 

67Per riavere gli strumenti, esegui `/status` nella sessione per elencare le [fonti di impostazioni che ha caricato](https://code.claude.com/docs/it/settings.md#check-what-loaded) e rimuovi la chiave da ogni file che la imposta. Poi riavvia Claude Code. Se la chiave è impostata dalle impostazioni gestite, chiedi al tuo amministratore se la policy debba essere modificata.

68 

55## Pulire i worktree69## Pulire i worktree

56 70 

57Quando uscite da una sessione di worktree interattiva, Claude controlla il worktree per il lavoro che la rimozione eliminerebbe: file modificati o non tracciati, lavoro non committato all'interno di submodule estratti, e nuovi commit. Queste regole si applicano ai worktree che Claude ha creato con git. Per un worktree che il vostro [hook WorktreeCreate](https://code.claude.com/docs/it/hooks.md#worktreecreate) ha creato, consultate invece [WorktreeRemove](https://code.claude.com/docs/it/hooks.md#worktreeremove).71Quando uscite da una sessione di worktree interattiva, Claude controlla il worktree per il lavoro che la rimozione eliminerebbe: file modificati o non tracciati, lavoro non committato all'interno di submodule estratti, e nuovi commit. Queste regole si applicano ai worktree che Claude ha creato con git. Per un worktree che il vostro [hook WorktreeCreate](https://code.claude.com/docs/it/hooks.md#worktreecreate) ha creato, consultate invece [WorktreeRemove](https://code.claude.com/docs/it/hooks.md#worktreeremove).


67 81 

68## Riprendere una sessione di worktree82## Riprendere una sessione di worktree

69 83 

70Quando riprendete una sessione che era terminata all'interno di un worktree senza [uscirne](#clean-up-worktrees), Claude Code restituisce la sessione a quel worktree. Questo vale per le riprese interattive, per `--continue` e `--resume` in [modalità non interattiva](https://code.claude.com/docs/it/headless.md) con `-p`, e per l'Agent SDK. `--continue` seleziona la sessione più recente registrata nella directory da cui lanciate. Di nuovo all'interno del worktree, Claude può ancora uscirne con lo strumento [`ExitWorktree`](https://code.claude.com/docs/it/tools-reference).84Quando riprendi una sessione che era terminata all'interno di un worktree senza [uscirne](#clean-up-worktrees), Claude Code restituisce la sessione a quel worktree. Questo vale per le riprese interattive, per `--continue` e `--resume` in [modalità non interattiva](https://code.claude.com/docs/it/headless.md) con `-p`, e per l'Agent SDK. `--continue` seleziona la sessione più recente registrata nella directory da cui avvii. Di nuovo all'interno del worktree, Claude può uscirne con lo strumento [`ExitWorktree`](https://code.claude.com/docs/it/tools-reference) [quando la sessione dispone di quello strumento](#claude-has-no-enterworktree-tool).

71 85 

72Prima di restituire la sessione al suo worktree, Claude Code verifica che il worktree sia ancora un checkout separato da quello principale, e rifiuta di rientrare in un worktree che fallisce il controllo. Per un git worktree, il controllo legge i suoi metadati git. Un worktree senza metadati git, come uno che un hook [`WorktreeCreate`](#non-git-version-control) ha creato, può passare il controllo; i casi che Claude Code ancora rifiuta sono elencati con i loro recuperi sotto [Claude Code rifiuta di usare un worktree](#claude-code-refuses-to-use-a-worktree). Per i messaggi e come recuperare da ognuno, vedere [La sessione riprende al di fuori del suo worktree](#the-session-resumes-outside-its-worktree).86Prima di restituire la sessione al suo worktree, Claude Code verifica che il worktree sia ancora un checkout separato da quello principale, e rifiuta di rientrare in un worktree che fallisce il controllo. Per un git worktree, il controllo legge i suoi metadati git. Un worktree senza metadati git, come uno che un hook [`WorktreeCreate`](#non-git-version-control) ha creato, può passare il controllo; i casi che Claude Code ancora rifiuta sono elencati con i loro recuperi sotto [Claude Code rifiuta di usare un worktree](#claude-code-refuses-to-use-a-worktree). Per i messaggi e come recuperare da ognuno, vedere [La sessione riprende al di fuori del suo worktree](#the-session-resumes-outside-its-worktree).

73 87 


91 105 

92Claude Code applica quattro controlli:106Claude Code applica quattro controlli:

93 107 

94* **Modifiche ai file**: Claude Code blocca un `Edit`, `Write`, o `NotebookEdit` che ha come target un percorso nel checkout principale.108* **Modifiche ai file**: Claude Code blocca un `Edit`, `Write`, o `NotebookEdit` che ha come target un percorso nel checkout principale. Per modificare un file nel checkout principale, modificalo tu stesso o avvia lì una sessione interattiva.

95* **Directory di lavoro del comando**: Claude Code blocca un comando Bash, PowerShell, o Monitor la cui directory di lavoro si risolve nel checkout principale, o la cui directory di lavoro non può verificare che rimanga al di fuori di esso.109* **Directory di lavoro del comando**: Claude Code blocca un comando Bash, PowerShell, o Monitor la cui directory di lavoro si risolve nel checkout principale, o la cui directory di lavoro non può verificare che rimanga al di fuori di esso.

96* **Reindirizzamenti git**: Claude Code blocca un comando Bash o Monitor che reindirizza git nel checkout principale. Il reindirizzamento può provenire attraverso `git -C`, `--git-dir`, una variabile `GIT_DIR` o `GIT_WORK_TREE`, o un `cd` nel checkout principale prima di eseguire git.110* **Reindirizzamenti git**: Claude Code blocca un comando Bash o Monitor che reindirizza git nel checkout principale. Il reindirizzamento può provenire attraverso `git -C`, `--git-dir`, una variabile `GIT_DIR` o `GIT_WORK_TREE`, o un `cd` nel checkout principale prima di eseguire git.

97* **Forma del comando**: Claude Code blocca un comando Bash o Monitor quando non può verificare dal testo del comando che qualsiasi git che il comando esegue rimane all'interno del worktree. Questo accade, ad esempio, quando il nome del comando è calcolato a runtime, quando la sintassi non può essere analizzata, o quando un'espansione come `${!name}` o `${ command; }` potrebbe eseguire un comando che il testo non esplicita. Claude Code dice a Claude come riscrivere il comando rifiutato, come dividerlo in comandi semplici e separati. Non potete disattivare questo controllo.111* **Forma del comando**: Claude Code blocca un comando Bash o Monitor quando non può verificare dal testo del comando che qualsiasi git che il comando esegue rimane all'interno del worktree. Questo accade, ad esempio, quando il nome del comando è calcolato a runtime, quando la sintassi non può essere analizzata, o quando un'espansione come `${!name}` o `${ command; }` potrebbe eseguire un comando che il testo non esplicita. Claude Code dice a Claude come riscrivere il comando rifiutato, come dividerlo in comandi semplici e separati. Non potete disattivare questo controllo.