SpyBara
Go Premium

Documentation 2026-09-29 23:58 UTC to 2026-09-30 12:00 UTC

65 files changed +997 −556. View all changes and history on the product overview
2026
Wed 30 12:58 Tue 29 23:58 Mon 28 22:59 Fri 25 23:58 Thu 24 22:57 Wed 23 23:57 Tue 22 23:59 Mon 21 22:59 Sun 20 23:59 Sat 19 23:57 Fri 18 23:58 Tue 15 23:58 Mon 14 22:58 Sun 13 21:00 Sat 12 03:02 Thu 10 23:00 Wed 9 22:58 Tue 8 20:00 Tue 1 21:02

agent-view.md +28 −2

Details

64 </Step>64 </Step>

65</Steps>65</Steps>

66 66 

67Puoi usare `claude agents` come tuo punto di ingresso principale invece di `claude`: invia ogni attività da agent view, collegati quando vuoi la conversazione completa, e premi `←` per tornare alla tabella.

68 

69All'interno di una sessione `claude` regolare, l'hint `←` del footer del prompt conta gli agenti in background che stanno aspettando te, come `← 2 agents`, e ritorna a `← for agents` quando nessuno ha bisogno di input. I conteggi superiori a 99 vengono visualizzati come `99+`. Il conteggio si aggiorna circa ogni dieci secondi mentre il terminale è focalizzato e immediatamente quando il focus ritorna. Cambia brevemente colore quando si sposta e quando un agente si completa, e quando una sessione in background si completa mentre nessuno ha bisogno del tuo input mostra brevemente il numero completato, come `← 2 done`. Entrambi i flash sono disattivati quando l'impostazione [`prefersReducedMotion`](/docs/it/settings-reference#prefersreducedmotion) è attiva, e l'hint è nascosto in [modalità screen reader](/docs/it/accessibility).67All'interno di una sessione `claude` regolare, l'hint `←` del footer del prompt conta gli agenti in background che stanno aspettando te, come `← 2 agents`, e ritorna a `← for agents` quando nessuno ha bisogno di input. I conteggi superiori a 99 vengono visualizzati come `99+`. Il conteggio si aggiorna circa ogni dieci secondi mentre il terminale è focalizzato e immediatamente quando il focus ritorna. Cambia brevemente colore quando si sposta e quando un agente si completa, e quando una sessione in background si completa mentre nessuno ha bisogno del tuo input mostra brevemente il numero completato, come `← 2 done`. Entrambi i flash sono disattivati quando l'impostazione [`prefersReducedMotion`](/docs/it/settings-reference#prefersreducedmotion) è attiva, e l'hint è nascosto in [modalità screen reader](/docs/it/accessibility).

70 68 

69<h3 id="open-agent-view-by-default">

70 Apri agent view per impostazione predefinita

71</h3>

72 

73Per fare in modo che `claude` senza argomenti apra agent view invece di una nuova conversazione, attiva un'impostazione `/config`.

74 

75<Steps>

76 <Step title="Attiva l'impostazione">

77 In una sessione `claude` regolare, esegui `/config` e attiva **Open agents view by default**. Per saltare il menu, imposta direttamente la chiave [`defaultToAgentsView`](/docs/it/settings-reference#defaulttoagentsview):

78 

79 ```text theme={null}

80 /config defaultToAgentsView=true

81 ```

82 </Step>

83 

84 <Step title="Avvia Claude Code">

85 Esci dalla sessione, quindi esegui `claude` senza argomenti:

86 

87 ```bash theme={null}

88 claude

89 ```

90 

91 Agent view si apre al posto di una nuova conversazione.

92 </Step>

93</Steps>

94 

95Per avviare una sessione regolare mentre l'impostazione è attiva, passa un prompt: `claude "fix the login test"`. Per disattivare l'impostazione, esegui `/config defaultToAgentsView=false` in una sessione regolare o in una a cui ti colleghi da agent view.

96 

71<h2 id="monitor-sessions-with-agent-view">97<h2 id="monitor-sessions-with-agent-view">

72 Monitorare le sessioni con agent view98 Monitorare le sessioni con agent view

73</h2>99</h2>

Details

482 482 

483Claude Sonnet 5, Opus 4.6 e versioni successive, e Sonnet 4.6 supportano la [finestra di contesto da 1M token](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) su Amazon Bedrock. Sonnet 5 funziona sempre con la finestra da 1M sia sull'API Invoke che sull'[endpoint Mantle](#use-the-mantle-endpoint), senza alcuna variante `[1m]` da selezionare. Per gli altri modelli sull'API Invoke, Claude Code abilita automaticamente la finestra di contesto estesa quando selezioni una variante di modello da 1M.483Claude Sonnet 5, Opus 4.6 e versioni successive, e Sonnet 4.6 supportano la [finestra di contesto da 1M token](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) su Amazon Bedrock. Sonnet 5 funziona sempre con la finestra da 1M sia sull'API Invoke che sull'[endpoint Mantle](#use-the-mantle-endpoint), senza alcuna variante `[1m]` da selezionare. Per gli altri modelli sull'API Invoke, Claude Code abilita automaticamente la finestra di contesto estesa quando selezioni una variante di modello da 1M.

484 484 

485La [procedura guidata di configurazione](#sign-in-with-bedrock) offre un'opzione di contesto da 1M quando fissa i modelli. Per abilitarla per un modello fissato manualmente, aggiungi `[1m]` all'ID del modello. Vedi [Fissa i modelli per distribuzioni di terze parti](/docs/it/model-config#pin-models-for-third-party-deployments) per i dettagli.485La [procedura guidata di configurazione](#sign-in-with-bedrock) offre un'opzione di contesto da 1M quando fissa i modelli. Per abilitarla per un modello fissato manualmente, aggiungi `[1m]` all'ID del modello. Vedi [Fissa i modelli per distribuzioni di terze parti](/docs/it/model-config#pin-models-for-third-party-deployments) per i dettagli, incluso come utilizzare la finestra da 1M senza modificare il pin.

486 486 

487<h2 id="service-tiers">487<h2 id="service-tiers">

488 Livelli di servizio488 Livelli di servizio

artifacts.md +11 −11

Details

100Chi potete condividere dipende dal vostro piano:100Chi potete condividere dipende dal vostro piano:

101 101 

102* **All'interno della vostra organizzazione**: nei piani Team e Enterprise, concedete l'accesso a persone specifiche della vostra organizzazione, o a tutti. I visualizzatori effettuano l'accesso a claude.ai come membri della vostra organizzazione per vedere la pagina.102* **All'interno della vostra organizzazione**: nei piani Team e Enterprise, concedete l'accesso a persone specifiche della vostra organizzazione, o a tutti. I visualizzatori effettuano l'accesso a claude.ai come membri della vostra organizzazione per vedere la pagina.

103* **Pubblicamente**: condividete un collegamento che chiunque su internet può aprire, senza richiedere l'accesso a claude.ai. Nei piani Pro e Max, un collegamento pubblico è l'unico modo per condividere un artifact. Nei piani Team e Enterprise, la condivisione pubblica è disattivata finché un Owner non la [abilita per l'organizzazione](#control-public-sharing).103* **Pubblicamente**: condividete un collegamento che chiunque su internet può aprire, senza richiedere l'accesso a claude.ai. Nei piani Team e Enterprise, la condivisione pubblica è disattivata finché un Owner non la [abilita per l'organizzazione](#control-public-sharing).

104 104 

105<h3 id="let-someone-edit-with-you">105<h3 id="let-someone-edit-with-you">

106 Permettere a qualcuno di modificare con voi106 Permettere a qualcuno di modificare con voi


122 Raccogliere commenti su un artefatto122 Raccogliere commenti su un artefatto

123</h2>123</h2>

124 124 

125Quando condividi un artefatto all'interno della tua organizzazione, le persone con cui lo condividi possono lasciare commenti sulla pagina, e tu puoi chiedere a Claude di leggere quei commenti e rispondere. Hai bisogno di Claude Code v2.1.221 o successivo e di un piano Team o Enterprise, perché solo un artefatto che [condividi all'interno della tua organizzazione](#share-an-artifact) riceve commenti. Claude legge i commenti in due casi:125Quando condividi un artefatto all'interno della tua organizzazione, le persone con cui lo condividi possono lasciare commenti sulla pagina, e tu puoi chiedere a Claude di leggere quei commenti e rispondere. Hai bisogno di Claude Code v2.1.221 o successivo. Claude legge i commenti in due casi:

126 126 

127* **Tu chiedi a Claude di leggerli**: fornisci a Claude l'URL dell'artefatto e chiedi i commenti. Claude elenca ogni thread e contrassegna i commenti che qualcuno che può modificare l'artefatto ha inviato.127* **Tu chiedi a Claude di leggerli**: fornisci a Claude l'URL dell'artefatto e chiedi i commenti. Claude elenca ogni thread e contrassegna i commenti che qualcuno che può modificare l'artefatto ha inviato.

128* **Qualcuno che può modificare l'artefatto invia un commento a Claude**: in un thread sulla pagina, invia un commento con **Send to Claude**, o menziona `@claude` in uno. In entrambi i casi, attivano il thread.128* **Qualcuno che può modificare l'artefatto invia un commento a Claude**: in un thread sulla pagina, invia un commento con **Send to Claude**, o menziona `@claude` in uno. In entrambi i casi, attivano il thread.

129 129 

130Claude può rispondere o risolvere solo un thread attivato. Gli altri thread rimangono aperti finché una persona non li risolve sulla pagina. I visualizzatori vedono ogni risposta attribuita a Claude, tramite te.130Claude può rispondere o risolvere solo un thread attivato. Gli altri thread rimangono aperti finché una persona non li risolve sulla pagina. I visualizzatori vedono ogni risposta attribuita a Claude, tramite te.

131 131 

132Se condividi un artefatto pubblicamente, i visualizzatori non possono commentare: la pagina dice `Comments aren't available while this Artifact is shared publicly.` Per passare un artefatto che ha già thread di commenti a un link pubblico, elimina prima i thread.132Se condividi un artefatto pubblicamente, le persone il cui unico accesso è il link pubblico non vedono i suoi commenti e non possono aggiungerne. I thread di commenti esistenti rimangono sull'artefatto, e tu e i suoi editor potete ancora leggerli e rispondere.

133 133 

134Per chiedere i commenti tu stesso, fornisci a Claude l'URL:134Per chiedere i commenti tu stesso, fornisci a Claude l'URL:

135 135 


195 195 

196Quando pianifichi di condividere una pagina supportata da un connettore, chiedi a Claude di includere un messaggio di fallback in ogni sezione live che nomini il connettore di cui ha bisogno. Un visualizzatore che manca della connessione vede quindi cosa connettere invece di una sezione vuota.196Quando pianifichi di condividere una pagina supportata da un connettore, chiedi a Claude di includere un messaggio di fallback in ogni sezione live che nomini il connettore di cui ha bisogno. Un visualizzatore che manca della connessione vede quindi cosa connettere invece di una sezione vuota.

197 197 

198Un artifact che chiama connettori non può essere condiviso a un link pubblico su nessun piano. Nei piani Team ed Enterprise, puoi mantenerlo privato o [condividerlo all'interno della tua organizzazione](#share-an-artifact). Nei piani Pro e Max, dove un link pubblico è l'unico modo per condividere, un artifact supportato da un connettore rimane privato per te.198Puoi [condividere una pagina supportata da un connettore](#share-an-artifact) all'interno della tua organizzazione o pubblicamente, come consentito dal tuo piano e dalle impostazioni dell'organizzazione. Le chiamate ai connettori non vengono eseguite per un visualizzatore che apre il link pubblico senza accedere a claude.ai, o da fuori della tua organizzazione. Quel visualizzatore vede la pagina senza le sue sezioni live.

199 199 

200<h3 id="the-page-shows-no-live-data-for-a-viewer">200<h3 id="the-page-shows-no-live-data-for-a-viewer">

201 La pagina non mostra dati live per un visualizzatore201 La pagina non mostra dati live per un visualizzatore

202</h3>202</h3>

203 203 

204Quando una pagina supportata da un connettore viene renderizzata ma le sue sezioni live rimangono vuote per qualcuno con cui l'hai condivisa, esamina queste cause:204Quando una pagina supportata da un connettore viene renderizzata ma le sue sezioni live rimangono vuote per un visualizzatore nella tua organizzazione, esamina queste cause:

205 205 

206* **Il visualizzatore non ha connesso il connettore**: i connettori sono per account, quindi ogni visualizzatore ha bisogno della propria connessione a ogni connettore che la pagina chiama. Possono aggiungerne uno in **Settings > Connectors** su claude.ai, quindi ricaricare la pagina.206* **Il visualizzatore non ha connesso il connettore**: i connettori sono per account, quindi ogni visualizzatore ha bisogno della propria connessione a ogni connettore che la pagina chiama. Possono aggiungerne uno in **Settings > Connectors** su claude.ai, quindi ricaricare la pagina.

207* **Il visualizzatore ha rifiutato la richiesta di permesso**: un rifiuto dura per il resto di quel caricamento di pagina. Ricaricare la pagina riporta la richiesta di permesso.207* **Il visualizzatore ha rifiutato la richiesta di permesso**: un rifiuto dura per il resto di quel caricamento di pagina. Ricaricare la pagina riporta la richiesta di permesso.


375 375 

376| Requirement | Available when |376| Requirement | Available when |

377| :- | :- |377| :- | :- |

378| Plan | Pro, Max, Team o Enterprise. Sui piani Pro e Max, gli artifact sono privati per te fino a quando non li condividi, e non si applica alcuna gestione amministrativa. Sui piani Team, gli artifact sono abilitati per impostazione predefinita. Sui piani Enterprise, un Owner [li abilita](#manage-artifacts-for-your-organization) nelle impostazioni admin di claude.ai. |378| Plan | Pro, Max, Team o Enterprise. Sui piani Pro e Max, gli artifact sono privati per te fino a quando non li condividi, e non si applica alcuna gestione amministrativa. Sui piani Team ed Enterprise, gli artifact sono abilitati per impostazione predefinita, e un Owner può [disattivarli per l'organizzazione](#manage-artifacts-for-your-organization) nelle impostazioni admin di claude.ai. |

379| Authentication | La sessione è supportata da un account claude.ai: accedi con `/login` nell'app CLI o desktop. Le sessioni Claude Tag sono autenticate attraverso l'identità dell'agente, quindi non è necessario alcun passaggio. Le sessioni che utilizzano una chiave API, [gateway token](/docs/it/llm-gateway) o credenziale del provider cloud non possono pubblicare. |379| Authentication | La sessione è supportata da un account claude.ai: accedi con `/login` nell'app CLI o desktop. Le sessioni Claude Tag sono autenticate attraverso l'identità dell'agente, quindi non è necessario alcun passaggio. Le sessioni che utilizzano una chiave API, [gateway token](/docs/it/llm-gateway) o credenziale del provider cloud non possono pubblicare. |

380| Model provider | Anthropic API. Non disponibile su [Amazon Bedrock](/docs/it/amazon-bedrock), [Google Cloud's Agent Platform](/docs/it/google-vertex-ai) o [Microsoft Foundry](/docs/it/microsoft-foundry). |380| Model provider | Anthropic API. Non disponibile su [Amazon Bedrock](/docs/it/amazon-bedrock), [Google Cloud's Agent Platform](/docs/it/google-vertex-ai) o [Microsoft Foundry](/docs/it/microsoft-foundry). |

381| Organization policy | Le chiavi di crittografia gestite dal cliente (CMEK), HIPAA e [Zero Data Retention](/docs/it/zero-data-retention) non sono abilitate per l'organizzazione. |381| Organization policy | Le chiavi di crittografia gestite dal cliente (CMEK), HIPAA e [Zero Data Retention](/docs/it/zero-data-retention) non sono abilitate per l'organizzazione. |


408 Manage artifacts for your organization408 Manage artifacts for your organization

409</h2>409</h2>

410 410 

411I proprietari sui piani Team e Enterprise controllano gli artifact dalle [impostazioni admin di claude.ai](https://claude.ai/admin-settings/claude-code). Il contenuto dell'artifact è archiviato su infrastruttura gestita da Anthropic ed è visibile solo ai membri autenticati dell'organizzazione che pubblica, a meno che l'artifact non sia [condiviso pubblicamente](#control-public-sharing).411I proprietari sui piani Team e Enterprise controllano gli artifact dalle [impostazioni admin di claude.ai](https://claude.ai/admin-settings/artifacts). Il contenuto dell'artifact è archiviato su infrastruttura gestita da Anthropic ed è visibile solo ai membri autenticati dell'organizzazione che pubblica e alle persone con cui lo condividono, a meno che l'artifact non sia [condiviso pubblicamente](#control-public-sharing).

412 412 

413<h3 id="enable-or-disable-artifacts">413<h3 id="enable-or-disable-artifacts">

414 Enable or disable artifacts414 Enable or disable artifacts

415</h3>415</h3>

416 416 

417Per abilitare o disabilitare gli artifact per l'intera organizzazione, vai a [**Settings > Claude Code > Capabilities**](https://claude.ai/admin-settings/claude-code) e usa l'interruttore **Artifacts**. Sui piani Enterprise con controllo dell'accesso basato su ruoli, puoi inoltre limitare gli artifact a ruoli specifici: vai a [**Settings > Roles**](https://claude.ai/admin-settings/roles), modifica un ruolo e imposta l'autorizzazione **Artifacts** nel gruppo **Claude Code**.417Per abilitare o disabilitare gli artifact per l'intera organizzazione, vai a [**Organization settings > Artifacts**](https://claude.ai/admin-settings/artifacts) e usa l'interruttore **Artifacts**. Sui piani Enterprise con controllo dell'accesso basato su ruoli, puoi inoltre limitare gli artifact a ruoli specifici: vai a [**Organization settings > Roles**](https://claude.ai/admin-settings/roles), modifica un ruolo e imposta l'autorizzazione **Artifacts**.

418 418 

419<h3 id="control-connector-calls-from-artifacts">419<h3 id="control-connector-calls-from-artifacts">

420 Control connector calls from artifacts420 Control connector calls from artifacts

421</h3>421</h3>

422 422 

423Le [chiamate ai connettori dagli artifact](#pull-live-data-with-mcp-connectors) hanno il loro interruttore dedicato, separato dall'interruttore **Artifacts** che attiva o disattiva gli artifact. Vai a [**Settings > Capabilities**](https://claude.ai/admin-settings/capabilities) e usa l'interruttore **Enable artifact connectors**. Lo stesso interruttore governa le chiamate ai connettori dagli artifact creati nelle conversazioni di claude.ai, motivo per cui si trova sotto **Settings > Capabilities** piuttosto che sotto **Settings > Claude Code**.423Le [chiamate ai connettori dagli artifact](#pull-live-data-with-mcp-connectors) hanno il loro interruttore dedicato, separato dall'interruttore **Artifacts** che attiva o disattiva gli artifact. Vai a [**Organization settings > Capabilities**](https://claude.ai/admin-settings/capabilities) e usa l'interruttore **Enable artifact connectors**. Lo stesso interruttore governa le chiamate ai connettori dagli artifact creati nelle conversazioni di claude.ai.

424 424 

425<h3 id="control-public-sharing">425<h3 id="control-public-sharing">

426 Control public sharing426 Control public sharing

427</h3>427</h3>

428 428 

429La condivisione pubblica è disattivata per impostazione predefinita sui piani Team e Enterprise, quindi i membri possono condividere gli artifact solo all'interno dell'organizzazione finché un proprietario non la attiva. Per consentire ai membri di pubblicare artifact su link pubblici che chiunque può visualizzare senza accedere, vai a **Settings > Claude Code > Capabilities** e attiva **External sharing** sotto l'interruttore **Artifacts**. Disattivarla di nuovo blocca l'accesso tramite link pubblici esistenti senza modificare il pubblico di ogni artifact; l'accesso riprende se lo riabiliti.429La condivisione pubblica è disattivata per impostazione predefinita sui piani Team e Enterprise. Per consentire ai membri di pubblicare artifact su link pubblici che chiunque può visualizzare senza accedere, vai a [**Organization settings > Artifacts**](https://claude.ai/admin-settings/artifacts) e attiva **External sharing** sotto l'interruttore **Artifacts**. Disattivarla di nuovo blocca l'accesso tramite link pubblici esistenti senza modificare il pubblico di ogni artifact; l'accesso riprende se lo riabiliti.

430 430 

431<h3 id="set-a-retention-policy">431<h3 id="set-a-retention-policy">

432 Set a retention policy432 Set a retention policy

433</h3>433</h3>

434 434 

435Per impostare quanto tempo gli artifact vengono conservati prima dell'eliminazione automatica, vai a [**Settings > Data & privacy controls**](https://claude.ai/admin-settings/data-privacy-controls). Puoi impostare periodi di conservazione separati per gli artifact che sono ancora privati al loro autore e gli artifact che sono stati condivisi.435Per impostare quanto tempo gli artifact vengono conservati prima dell'eliminazione automatica, vai a [**Organization settings > Data and privacy**](https://claude.ai/admin-settings/data-privacy-controls). Puoi impostare periodi di conservazione separati per gli artifact che sono ancora privati al loro autore e gli artifact che sono stati condivisi.

436 436 

437<h3 id="review-the-audit-log">437<h3 id="review-the-audit-log">

438 Review the audit log438 Review the audit log

Details

32 32 

33Per disconnettervi e autenticarvi di nuovo, digitate `/logout` al prompt di Claude Code. La disconnessione ripristina anche lo stato di configurazione al primo avvio, quindi la prossima volta che eseguite `claude` vi guida attraverso l'accesso e la configurazione di nuovo.33Per disconnettervi e autenticarvi di nuovo, digitate `/logout` al prompt di Claude Code. La disconnessione ripristina anche lo stato di configurazione al primo avvio, quindi la prossima volta che eseguite `claude` vi guida attraverso l'accesso e la configurazione di nuovo.

34 34 

35Se avete difficoltà ad accedere, consultate la sezione [risoluzione dei problemi di autenticazione](/docs/it/troubleshoot-install#login-and-authentication).

36 

37<h3 id="log-in-with-multiple-accounts">

38 Accedi con più account

39</h3>

40 

35Per restare connessi a più account contemporaneamente, come account di lavoro e personali, assegnate a ogni account la propria directory di configurazione. Quando avviate `claude`, impostate la variabile di ambiente [`CLAUDE_CONFIG_DIR`](/docs/it/env-vars#variables) sulla directory per l'account che desiderate utilizzare. Ogni directory ha le proprie impostazioni, cronologia della sessione e accesso a claude.ai o chiave API. Ad esempio, in Bash o Zsh, aggiungete questo alias a `~/.bashrc` o `~/.zshrc` in modo che `claude-work` utilizzi il vostro account di lavoro mentre `claude` mantiene quello personale:41Per restare connessi a più account contemporaneamente, come account di lavoro e personali, assegnate a ogni account la propria directory di configurazione. Quando avviate `claude`, impostate la variabile di ambiente [`CLAUDE_CONFIG_DIR`](/docs/it/env-vars#variables) sulla directory per l'account che desiderate utilizzare. Ogni directory ha le proprie impostazioni, cronologia della sessione e accesso a claude.ai o chiave API. Ad esempio, in Bash o Zsh, aggiungete questo alias a `~/.bashrc` o `~/.zshrc` in modo che `claude-work` utilizzi il vostro account di lavoro mentre `claude` mantiene quello personale:

36 42 

37```bash theme={null}43```bash theme={null}


40 46 

41Dopo aver aperto un nuovo terminale ed eseguito `claude-work` per la prima volta, Claude Code vi guida attraverso l'accesso e la configurazione per la nuova directory. Le directory separate non mantengono due accessi a Claude Console [senza una chiave API](#sign-in-without-an-api-key) separati, perché Claude Code memorizza questo tipo di accesso al di fuori della directory di configurazione.47Dopo aver aperto un nuovo terminale ed eseguito `claude-work` per la prima volta, Claude Code vi guida attraverso l'accesso e la configurazione per la nuova directory. Le directory separate non mantengono due accessi a Claude Console [senza una chiave API](#sign-in-without-an-api-key) separati, perché Claude Code memorizza questo tipo di accesso al di fuori della directory di configurazione.

42 48 

43Se avete difficoltà ad accedere, consultate la sezione [risoluzione dei problemi di autenticazione](/docs/it/troubleshoot-install#login-and-authentication).

44 

45<h2 id="set-up-team-authentication">49<h2 id="set-up-team-authentication">

46 Configurare l'autenticazione del team50 Configurare l'autenticazione del team

47</h2>51</h2>

Details

163 Il payload arriva nel contesto di Claude come un tag `<channel>`:163 Il payload arriva nel contesto di Claude come un tag `<channel>`:

164 164 

165 ```text theme={null}165 ```text theme={null}

166 <channel source="webhook" path="/" method="POST">build failed on main: https://ci.example.com/run/1234</channel>166 <channel source="webhook" path="/" method="POST">

167 build failed on main: https://ci.example.com/run/1234

168 </channel>

167 ```169 ```

168 170 

169 Il tuo terminale renderizza l'evento come un riepilogo a una riga, `← webhook: build failed on main: https://ci.example.com/run/1234`, piuttosto che il tag grezzo. Vedrai quindi Claude iniziare a rispondere: leggendo file, eseguendo comandi, o qualsiasi cosa il messaggio richieda. Questo è un canale unidirezionale, quindi Claude agisce nella tua sessione ma non invia nulla indietro tramite il webhook. Per aggiungere risposte, vedi [Esponi uno strumento di risposta](#expose-a-reply-tool).171 Il tuo terminale renderizza l'evento come un riepilogo a una riga, `← webhook: build failed on main: https://ci.example.com/run/1234`, piuttosto che il tag grezzo. Vedrai quindi Claude iniziare a rispondere: leggendo file, eseguendo comandi, o qualsiasi cosa il messaggio richieda. Questo è un canale unidirezionale, quindi Claude agisce nella tua sessione ma non invia nulla indietro tramite il webhook. Per aggiungere risposte, vedi [Esponi uno strumento di risposta](#expose-a-reply-tool).

chrome.md +5 −2

Details

98* **Not now**: continua l'attività senza strumenti del browser. Claude Code può chiedere di nuovo in una sessione successiva.98* **Not now**: continua l'attività senza strumenti del browser. Claude Code può chiedere di nuovo in una sessione successiva.

99* **Don't ask again**: interrompe il prompt nelle sessioni future. Puoi comunque configurare l'integrazione in qualsiasi momento con `/chrome`.99* **Don't ask again**: interrompe il prompt nelle sessioni future. Puoi comunque configurare l'integrazione in qualsiasi momento con `/chrome`.

100 100 

101Se la tua organizzazione blocca il server MCP `claude-in-chrome` con l'[impostazione gestita `deniedMcpServers`](/docs/it/managed-mcp#policy-based-control-with-allowlists-and-denylists), Claude Code non mostra il prompt di installazione.101Due politiche MCP gestite disattivano il prompt:

102 

103* Se la tua organizzazione blocca il server MCP `claude-in-chrome` con l'[impostazione gestita `deniedMcpServers`](/docs/it/managed-mcp#policy-based-control-with-allowlists-and-denylists), Claude Code non mostra il prompt di installazione.

104* Se la tua organizzazione distribuisce un file [`managed-mcp.json`](/docs/it/managed-mcp#exclusive-control-with-managed-mcp-json) senza [consentire Claude in Chrome insieme al set gestito](/docs/it/managed-mcp#allow-claude-in-chrome-alongside-the-managed-set), Claude Code non mostra il prompt di installazione.

102 105 

103<h3 id="enable-chrome-by-default">106<h3 id="enable-chrome-by-default">

104 Abilita Chrome per impostazione predefinita107 Abilita Chrome per impostazione predefinita


118 Gestisci le autorizzazioni del sito121 Gestisci le autorizzazioni del sito

119</h3>122</h3>

120 123 

121Le autorizzazioni a livello di sito vengono ereditate dall'estensione Chrome. Gestisci le autorizzazioni nelle impostazioni dell'estensione Chrome per controllare quali siti Claude può navigare, fare clic e digitare.124Le autorizzazioni a livello di sito vengono ereditate dall'estensione Chrome. Gestisci le autorizzazioni nelle impostazioni dell'estensione Chrome per controllare quali siti Claude può navigare, fare clic e digitare. In [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode), quando il classificatore della modalità auto stesso approva una chiamata del browser a un sito, l'estensione salta il suo controllo per sito per quella chiamata, a meno che le tue regole di autorizzazione neghino qualsiasi sito a Claude in Chrome.

122 125 

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

124 Strumenti del browser in plan mode127 Strumenti del browser in plan mode

Details

263 Connetti gli sviluppatori263 Connetti gli sviluppatori

264</h2>264</h2>

265 265 

266Gli sviluppatori si connettono dai loro laptop con un accesso al browser, utilizzando il loro account di lavoro aziendale. Non hanno bisogno di un account claude.ai, una chiave API o un abbonamento, perché le richieste al modello passano attraverso il gateway utilizzando la credenziale upstream dell'organizzazione. La connessione è guidata dalle [impostazioni gestite lato client](/docs/it/claude-apps-gateway-config#client-side-managed-settings) che spingere tramite MDM, quindi non c'è configurazione manuale sul lato dello sviluppatore; questa sezione copre cosa configura l'amministratore.266Gli sviluppatori si connettono dai loro laptop con un singolo accesso al browser utilizzando il loro account di lavoro aziendale. Non hanno bisogno di un account claude.ai, di una chiave API o di un abbonamento, perché le richieste al modello passano attraverso il gateway utilizzando le credenziali upstream dell'organizzazione. La connessione è guidata dalle [impostazioni gestite lato client](/docs/it/claude-apps-gateway-config#client-side-managed-settings) che distribuisci tramite MDM, quindi non c'è alcuna configurazione manuale dal lato dello sviluppatore; questa sezione copre ciò che l'amministratore configura.

267 267 

268Il CLI impronta digitale il certificato foglia TLS del gateway al primo collegamento e lo blocca per nome host. Controlla di nuovo quel pin durante l'accesso, sui refresh di sessione silenziosi e sui recuperi di impostazioni gestite, mentre le richieste di inferenza utilizzano la convalida TLS standard senza il pin. Le richieste instradate attraverso un proxy HTTPS saltano il controllo del pin, quindi aggiungere l'host del gateway a `NO_PROXY` per mantenerle dirette.268La CLI acquisisce l'impronta digitale del certificato TLS foglia del gateway al primo collegamento e la fissa per hostname. La verifica di nuovo durante l'accesso, durante gli aggiornamenti di sessione silenziosi e durante i recuperi di impostazioni gestite, mentre le richieste di inferenza utilizzano la convalida TLS standard senza l'impronta. Le richieste instradate attraverso un proxy HTTPS saltano il controllo dell'impronta, quindi aggiungi l'host del gateway a `NO_PROXY` per mantenerle dirette.

269 269 

270Pubblica l'impronta digitale SHA-256 prevista insieme all'URL del gateway in modo che gli sviluppatori abbiano qualcosa da confrontare. Il prompt `/login` mostra i primi 16 caratteri dell'impronta digitale come esadecimale minuscolo senza due punti. Per stampare l'impronta digitale completa in quella forma dal file del certificato, eseguire:270Pubblica l'impronta digitale SHA-256 prevista insieme all'URL del gateway in modo che gli sviluppatori abbiano qualcosa da confrontare. Il prompt `/login` mostra i primi 16 caratteri dell'impronta come esadecimale minuscolo senza due punti. Per stampare l'impronta completa in quella forma dal file del certificato, esegui:

271 271 

272```bash theme={null}272```bash theme={null}

273openssl x509 -noout -fingerprint -sha256 -in cert.pem | cut -d= -f2 | tr -d : | tr 'A-F' 'a-f'273openssl x509 -noout -fingerprint -sha256 -in cert.pem | cut -d= -f2 | tr -d : | tr 'A-F' 'a-f'

274```274```

275 275 

276Quando il certificato ruota, ogni sviluppatore vede di nuovo il prompt di fiducia, quindi tratta le rotazioni come un evento pianificato e ripubblica l'impronta digitale. Se la politica del gateway include [impostazioni che necessitano di approvazione](/docs/it/server-managed-settings#security-approval-dialogs), lo sviluppatore vede anche di nuovo quel dialogo di approvazione dopo aver accettato il nuovo certificato, perché Claude Code [memoria di approvazione](/docs/it/server-managed-settings#approval-memory) delle chiavi al certificato bloccato.276Quando il certificato ruota, ogni sviluppatore vede di nuovo il prompt di fiducia, quindi tratta le rotazioni come un evento pianificato e ripubblica l'impronta. Se la politica del gateway include [impostazioni che richiedono approvazione](/docs/it/server-managed-settings#security-approval-dialogs), lo sviluppatore vede anche di nuovo il dialogo di approvazione dopo aver accettato il nuovo certificato, perché Claude Code associa la [memoria di approvazione](/docs/it/server-managed-settings#approval-memory) al certificato fissato.

277 277 

278Un gateway può restituire il campo facoltativo `email` nella sua risposta di token per nominare l'account che un accesso ha utilizzato. Quando lo fa, lo sviluppatore conferma l'account prima che Claude Code salvi la credenziale. Dopo un accesso confermato, `/status` mostra l'account.278Un gateway può restituire il campo facoltativo `email` nella sua risposta di token per denominare l'account utilizzato da un accesso. Quando lo fa, lo sviluppatore conferma l'account prima che Claude Code salvi la credenziale. Dopo un accesso confermato, `/status` mostra l'account.

279 279 

280La conferma richiede Claude Code v2.1.275 o successivo sulla macchina dello sviluppatore; un client al di sotto di quella versione ignora il campo. Il server del gateway nel binario `claude` non restituisce il campo, quindi i suoi accessi si completano senza la conferma.280La conferma richiede Claude Code v2.1.275 o successivo sulla macchina dello sviluppatore; un client al di sotto di quella versione ignora il campo. Il server gateway nel binario `claude` non restituisce il campo, quindi i suoi accessi si completano senza la conferma.

281 281 

282Una volta che lo sviluppatore accede, il [selettore di modelli](/docs/it/model-config) mostra i modelli nell'elenco di autorizzazione `availableModels` dello sviluppatore. Le impostazioni gestite si applicano all'avvio e si aggiornano ogni ora, e la telemetria si instrada al tuo raccoglitore.282Una volta che lo sviluppatore accede, il [selettore di modelli](/docs/it/model-config) mostra i modelli nella loro lista di autorizzazione `availableModels`. Le impostazioni gestite si applicano all'avvio e si aggiornano ogni ora, e la telemetria viene instradata al tuo raccoglitore.

283 283 

284Le sessioni si aggiornano silenziosamente prima della scadenza di `ttl_hours`. Quando un aggiornamento non riesce dopo il deprovision IdP, Claude Code richiede allo sviluppatore di accedere di nuovo.284Le sessioni si aggiornano silenziosamente prima della scadenza di `ttl_hours`. Quando un aggiornamento non riesce dopo il deprovisioning dell'IdP, Claude Code chiede allo sviluppatore di accedere di nuovo.

285 285 

286<h3 id="set-the-gateway-url">286<h3 id="set-the-gateway-url">

287 Imposta l'URL del gateway287 Imposta l'URL del gateway

288</h3>288</h3>

289 289 

290Tre chiavi vanno nel file di [impostazioni gestite](/docs/it/managed-settings#delivery-mechanisms) per OS che distribuisci tramite MDM o direttamente su disco. `forceLoginMethod` e `forceLoginGatewayUrl` aprono `/login` direttamente sulla schermata **Cloud gateway** con l'URL compilato, e `parentSettingsBehavior: "merge"` consente a Claude Desktop di consegnare l'elenco di autorizzazione di uscita del gateway alle sessioni di Claude Code che avvia, spiegato in [Consegna la politica alle sessioni di Claude Desktop](#deliver-policy-to-claude-desktop-sessions):290Tre chiavi vanno nel file [impostazioni gestite](/docs/it/managed-settings#delivery-mechanisms) per OS che distribuisci tramite MDM o direttamente su disco. `forceLoginMethod` e `forceLoginGatewayUrl` aprono `/login` direttamente sulla schermata **Cloud gateway** con l'URL compilato, e `parentSettingsBehavior: "merge"` consente a Claude Desktop di fornire la lista di autorizzazione dell'uscita del gateway alle sessioni di Claude Code che avvia, spiegato in [Fornisci la politica alle sessioni di Claude Desktop](#deliver-policy-to-claude-desktop-sessions):

291 291 

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

293{293{


297}297}

298```298```

299 299 

300Lo sviluppatore preme Invio per connettersi. Il [prompt dell'impronta digitale TLS del primo collegamento](#connect-developers) appare ancora. Una volta che il file è su una macchina, uno sviluppatore che non ha completato l'accesso al gateway vede uno dei messaggi descritti in [La politica dell'amministratore richiede un accesso al Cloud gateway](/docs/it/errors#administrator-policy-requires-a-cloud-gateway-sign-in). Gli sviluppatori che selezionano un provider cloud attraverso una variabile di ambiente come `CLAUDE_CODE_USE_BEDROCK` non hanno bisogno dell'accesso al gateway.300Lo sviluppatore preme Invio per connettersi. Il [prompt di impronta TLS al primo collegamento](#connect-developers) appare ancora. Una volta che il file è su una macchina, uno sviluppatore che non ha completato l'accesso al gateway vede uno dei messaggi descritti in [La politica dell'amministratore richiede un accesso al gateway Cloud](/docs/it/errors#administrator-policy-requires-a-cloud-gateway-sign-in). Gli sviluppatori che selezionano un provider cloud tramite una variabile di ambiente come `CLAUDE_CODE_USE_BEDROCK` non hanno bisogno dell'accesso al gateway.

301 301 

302Uno sviluppatore non può configurare questo manualmente. Il selettore di accesso non ha opzione gateway e `forceLoginGatewayUrl` viene ignorato nei file di impostazioni personali di uno sviluppatore. `forceLoginMethod` da solo, senza un URL, lascia lo sviluppatore con un messaggio "Contatta il tuo amministratore IT". Le chiavi di accesso appartengono al file che spingere alle macchine, non al blocco `managed.policies[].cli` del gateway, che raggiunge solo i client già connessi.302Uno sviluppatore non può configurarlo manualmente. Il selettore di accesso non ha opzione gateway, e `forceLoginGatewayUrl` viene ignorato nei file di impostazioni dello sviluppatore. `forceLoginMethod` da solo, senza un URL, lascia lo sviluppatore con un messaggio "Contatta il tuo amministratore IT". Le chiavi di accesso appartengono al file che distribuisci alle macchine, non al blocco `managed.policies[].cli` del gateway, che raggiunge solo i client già connessi.

303 303 

304<h3 id="allow-a-gateway-on-public-address-space-you-own">304<h3 id="allow-a-gateway-on-public-address-space-you-own">

305 Consenti un gateway su spazio di indirizzi pubblici che possiedi305 Consenti un gateway su spazio di indirizzi pubblici che possiedi

306</h3>306</h3>

307 307 

308Alcune organizzazioni numerano la loro rete interna da un blocco IPv4 pubblico che possiedono, come lo spazio di indirizzi proprio di un operatore o un `/8` legacy, quindi il loro gateway non può avere un indirizzo privato. Elenca quei blocchi nell'impostazione gestita `gatewayInternalNetworks`. `/login` quindi accetta un gateway all'interno di un blocco elencato quando la macchina dello sviluppatore si connette ad esso da un indirizzo all'interno dello stesso blocco. Questo richiede Claude Code v2.1.268 o successivo sulla macchina dello sviluppatore; le versioni precedenti ignorano la chiave e applicano la regola dell'indirizzo privato.308Alcune organizzazioni numerano la loro rete interna da un blocco IPv4 pubblico che possiedono, come lo spazio di indirizzi proprio di un operatore o un `/8` legacy, quindi il loro gateway non può avere un indirizzo privato. Elenca questi blocchi nell'impostazione gestita `gatewayInternalNetworks`. `/login` quindi accetta un gateway all'interno di un blocco elencato quando la macchina dello sviluppatore si connette ad esso da un indirizzo all'interno dello stesso blocco. Ciò richiede Claude Code v2.1.268 o successivo sulla macchina dello sviluppatore; le versioni precedenti ignorano la chiave e applicano la regola dell'indirizzo privato.

309 309 

310<Warning>310<Warning>

311 `gatewayInternalNetworks` è per le reti interne che accadono ad essere numerate da spazio di indirizzi pubblici. Non rende sicuro esporre un gateway a Internet: un gateway affidabile può spingere impostazioni che eseguono comandi sulle macchine degli sviluppatori.311 `gatewayInternalNetworks` è per le reti interne che si trovano ad essere numerate da spazio di indirizzi pubblici. Non rende sicuro esporre un gateway a Internet: un gateway affidabile può inviare impostazioni che eseguono comandi sulle macchine degli sviluppatori.

312 312 

313 Mantieni il gateway irraggiungibile dall'esterno della tua rete con le regole del tuo firewall o del bilanciatore di carico. Imposta il [`access_control.allow_cidrs`](/docs/it/claude-apps-gateway-config#http-tuning) del gateway agli stessi blocchi che dichiari qui, quindi il gateway stesso rifiuta i client da qualsiasi altro luogo. Dietro un bilanciatore di carico o un ingresso, imposta anche `listen.trusted_proxies` a quel front end, perché il gateway altrimenti corrisponde a `allow_cidrs` rispetto all'indirizzo del front end stesso piuttosto che a quello dello sviluppatore.313 Mantieni il gateway irraggiungibile dall'esterno della tua rete con le regole del firewall o del load balancer. Imposta il [`access_control.allow_cidrs`](/docs/it/claude-apps-gateway-config#http-tuning) del gateway agli stessi blocchi che dichiari qui, in modo che il gateway stesso rifiuti i client da qualsiasi altro luogo. Dietro un load balancer o ingress, imposta anche `listen.trusted_proxies` su quel front end, perché il gateway altrimenti confronta `allow_cidrs` con l'indirizzo del front end stesso piuttosto che con quello dello sviluppatore.

314</Warning>314</Warning>

315 315 

316Aggiungi la chiave alla stessa fonte di impostazioni gestite delle chiavi di accesso: il file di impostazioni gestite, il profilo MDM o la politica del registro. Claude Code la ignora nelle impostazioni gestite da utente, progetto e server.316Aggiungi la chiave alla stessa fonte di impostazioni gestite delle chiavi di accesso: il file di impostazioni gestite, il profilo MDM o la politica del registro. Claude Code la ignora nelle impostazioni gestite da utente, progetto e server.


323}323}

324```324```

325 325 

326Claude Code convalida l'elenco a `/login` prima di contattare qualsiasi gateway:326Claude Code convalida l'elenco in `/login` prima di contattare qualsiasi gateway:

327 327 

328* Ogni voce è un blocco IPv4 scritto come il suo primo indirizzo e un prefisso da `/8` a `/32`.328* Ogni voce è un blocco IPv4 scritto come il suo primo indirizzo e un prefisso da `/8` a `/32`.

329* L'elenco contiene al massimo quattro blocchi e nessuno si sovrappone.329* L'elenco contiene al massimo quattro blocchi e nessuno si sovrappone.

330* Nessun blocco si sovrappone allo spazio di indirizzi privati: `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`, `127.0.0.0/8`, `169.254.0.0/16` e `100.64.0.0/10`. `/login` accetta già un gateway lì senza questa chiave.330* Nessun blocco si sovrappone allo spazio di indirizzi privati: `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`, `127.0.0.0/8`, `169.254.0.0/16` e `100.64.0.0/10`. `/login` accetta già un gateway lì senza questa chiave.

331* Nessun blocco si sovrappone allo spazio che non è mai la rete di un'organizzazione: `198.18.0.0/15` e `192.0.0.0/24`, che i client VPN e NAT64 mantengono come indirizzi locali; gli intervalli di documentazione `192.0.2.0/24`, `198.51.100.0/24` e `203.0.113.0/24`; e gli intervalli riservati `0.0.0.0/8`, `192.88.99.0/24` e multicast `224.0.0.0/4`. Puoi dichiarare blocchi all'interno di `240.0.0.0/4`, che alcune reti grandi utilizzano come spazio unicast interno.331* Nessun blocco si sovrappone allo spazio che non è mai la rete di un'organizzazione: `198.18.0.0/15` e `192.0.0.0/24`, che i client VPN e NAT64 mantengono come indirizzi locali; gli intervalli di documentazione `192.0.2.0/24`, `198.51.100.0/24` e `203.0.113.0/24`; e gli intervalli riservati `0.0.0.0/8`, `192.88.99.0/24` e multicast `224.0.0.0/4`. Puoi dichiarare blocchi all'interno di `240.0.0.0/4`, che alcune reti di grandi dimensioni utilizzano come spazio unicast interno.

332 332 

333I blocchi da `managed-settings.json` e i suoi file drop-in `managed-settings.d/` si combinano in un elenco e questi limiti si applicano all'elenco combinato. Per restringere un blocco, sostituisci la sua voce piuttosto che aggiungerne una seconda, sovrapposta in un drop-in; `/login` rifiuta la sovrapposizione.333I blocchi da `managed-settings.json` e i suoi file drop-in `managed-settings.d/` si combinano in un elenco, e questi limiti si applicano all'elenco combinato. Per restringere un blocco, sostituisci la sua voce piuttosto che aggiungerne una seconda, sovrapposta in un drop-in; `/login` rifiuta la sovrapposizione.

334 334 

335Se una voce infrange una regola o il valore non è un elenco di stringhe, Claude Code rifiuta ogni nuovo accesso al gateway su quella macchina e nomina il problema nel messaggio. L'accesso a un gateway su un indirizzo privato fallisce anche e gli accessi esistenti continuano a funzionare. Prova il valore su una macchina prima di distribuirlo. Claude Code elenca anche un valore digitato erroneamente tra le [impostazioni gestite non valide che segnala](/docs/it/managed-settings#keys-that-fail-closed).335Se una voce viola una regola, o il valore non è un elenco di stringhe, Claude Code rifiuta ogni nuovo accesso al gateway su quella macchina e nomina il problema nel messaggio. L'accesso a un gateway su un indirizzo privato non riesce anche, e gli accessi esistenti continuano a funzionare. Prova il valore su una macchina prima di distribuirlo. Claude Code elenca anche un valore digitato erroneamente tra le [impostazioni gestite non valide che segnala](/docs/it/managed-settings#keys-that-fail-closed).

336 336 

337Con un elenco valido, `/login` applica tre controlli a un gateway il cui indirizzo è all'interno di un blocco elencato:337Con un elenco valido, `/login` applica tre controlli a un gateway il cui indirizzo è all'interno di un blocco elencato:

338 338 

339* Ogni indirizzo a cui il nome host del gateway si risolve è all'interno di quel blocco. Claude Code rifiuta un nome che ha anche record al di fuori di esso, indirizzi privati e IPv6 inclusi.339* Ogni indirizzo a cui il nome host del gateway si risolve è all'interno di quel blocco. Claude Code rifiuta un nome che ha anche record al di fuori di esso, indirizzi privati e IPv6 inclusi.

340* La macchina dello sviluppatore si connette dall'interno dello stesso blocco. Claude Code rifiuta una macchina dietro NAT, all'interno di un contenitore o WSL2 o su una VPN il cui pool di indirizzi si trova al di fuori del blocco e nomina l'indirizzo da cui la macchina si è connessa.340* La macchina dello sviluppatore si connette dall'interno dello stesso blocco. Claude Code rifiuta una macchina dietro NAT, all'interno di un contenitore o WSL2, o su una VPN il cui pool di indirizzi si trova al di fuori del blocco, e nomina l'indirizzo da cui la macchina si è connessa.

341* La connessione è diretta. Se `HTTPS_PROXY` si applica all'host del gateway, `/login` rifiuta e nomina la voce `NO_PROXY` da aggiungere.341* La connessione è diretta. Se `HTTPS_PROXY` si applica all'host del gateway, `/login` rifiuta e nomina la voce `NO_PROXY` da aggiungere.

342 342 

343Quando tutti e tre passano, il [prompt di fiducia](#connect-developers) aggiunge una riga che nomina l'indirizzo della macchina, l'indirizzo del gateway e il blocco dichiarato che contiene entrambi.343Quando tutti e tre passano, il [prompt di fiducia](#connect-developers) aggiunge una riga che nomina l'indirizzo della macchina, l'indirizzo del gateway e il blocco dichiarato che contiene entrambi.

344 344 

345La chiave non cambia nulla per altri gateway: l'accesso a uno su un indirizzo privato funziona come prima e l'accesso a uno su un indirizzo pubblico al di fuori di ogni blocco elencato viene rifiutato come prima.345La chiave non cambia nulla per altri gateway: l'accesso a uno su un indirizzo privato funziona come prima, e l'accesso a uno su un indirizzo pubblico al di fuori di ogni blocco elencato viene rifiutato come prima.

346 346 

347Un blocco dichiarato restringe chi può accedere ma non prova dove si trova una macchina, quindi dichiara solo spazio di indirizzi che la tua organizzazione controlla. Un blocco condiviso con altri tenant, come un intervallo pubblico di un provider cloud, lascia che chiunque al suo interno passi lo stesso controllo.347Un blocco dichiarato restringe chi può accedere ma non prova dove si trova una macchina, quindi dichiara solo lo spazio di indirizzi che la tua organizzazione controlla. Un blocco condiviso con altri tenant, come un intervallo pubblico di un provider cloud, consente a chiunque al suo interno di superare lo stesso controllo.

348 348 

349<h3 id="deliver-policy-to-claude-desktop-sessions">349<h3 id="deliver-policy-to-claude-desktop-sessions">

350 Consegna la politica alle sessioni di Claude Desktop350 Fornisci la politica alle sessioni di Claude Desktop

351</h3>351</h3>

352 352 

353Claude Desktop esegue le sue schede Cowork e Code, più la scheda Chat quando la abiliti, su sessioni di Claude Code incorporate e invia le loro richieste di modello attraverso il gateway. Passa la politica a ciascuna di quelle sessioni, costruita dalla configurazione che il gateway serve a `/user/bootstrap`: l'elenco di autorizzazione dei modelli, gli strumenti disabilitati e l'elenco di autorizzazione di uscita derivato dal blocco `cli` della politica corrispondente, più l'[overlay `desktop`](/docs/it/claude-apps-gateway-config#claude-desktop-overlay).353Claude Desktop esegue le sue schede Cowork e Code, più la scheda Chat quando la abiliti, su sessioni di Claude Code incorporate e invia le loro richieste di modello attraverso il gateway. Passa la politica a ciascuna di quelle sessioni, costruita dalla configurazione che il gateway serve a `/user/bootstrap`: la lista di autorizzazione dei modelli, gli strumenti disabilitati e la lista di autorizzazione dell'uscita derivata dal blocco `cli` della politica corrispondente, più l'[overlay `desktop`](/docs/it/claude-apps-gateway-config#claude-desktop-overlay).

354 354 

355Altre chiavi `cli`, come hooks, `env` e regole di autorizzazione con ambito come `Bash(npm *)`, raggiungono solo i client che accedono tramite `/login`. Claude Desktop legge l'URL del gateway dalla sua propria configurazione gestita e accede con il suo proprio flusso, separato dalle chiavi `forceLoginMethod` e `forceLoginGatewayUrl` in [Imposta l'URL del gateway](#set-the-gateway-url).355Altre chiavi `cli`, come hooks, `env` e regole di autorizzazione scoped come `Bash(npm *)`, raggiungono solo i client che accedono tramite `/login`. Claude Desktop legge l'URL del gateway dalla sua propria configurazione gestita e accede con il suo proprio flusso, separato dalle chiavi `forceLoginMethod` e `forceLoginGatewayUrl` in [Imposta l'URL del gateway](#set-the-gateway-url).

356 356 

357Le impostazioni passate da un processo di avvio sono impostazioni padre. Claude Code ignora le impostazioni padre su qualsiasi macchina che ha una fonte gestita distribuita dall'amministratore, a meno che la [fonte che consegna la politica](/docs/it/managed-settings#which-managed-source-claude-code-uses) non imposti `parentSettingsBehavior: "merge"`.357Le impostazioni passate da un processo di avvio sono impostazioni padre. Claude Code ignora le impostazioni padre su qualsiasi macchina che ha una fonte gestita distribuita dall'amministratore, a meno che la [fonte che fornisce la politica](/docs/it/managed-settings#which-managed-source-claude-code-uses) non imposti `parentSettingsBehavior: "merge"`.

358 358 

359<h4 id="which-machines-need-the-opt-in">359<h4 id="which-machines-need-the-opt-in">

360 Quali macchine hanno bisogno dell'opt-in360 Quali macchine hanno bisogno dell'opt-in

361</h4>361</h4>

362 362 

363Le macchine che eseguono solo Claude Desktop ne hanno bisogno. Claude Desktop applica l'elenco di modelli e l'elenco di strumenti disabilitati alle sessioni incorporate stesso, ma l'elenco di autorizzazione di uscita le raggiunge solo come impostazioni padre, sotto forma di regole di dominio `WebFetch` e regole di rete sandbox. Senza l'opt-in, quelle sessioni vengono eseguite senza la restrizione di uscita e nulla ti avverte. Il gateway rifiuta comunque le richieste di inferenza per i modelli che la politica non concede.363Le macchine che eseguono solo Claude Desktop ne hanno bisogno. Claude Desktop applica la lista dei modelli e la lista degli strumenti disabilitati alle sessioni incorporate stesse, ma la lista di autorizzazione dell'uscita le raggiunge solo come impostazioni padre, sotto forma di regole di dominio `WebFetch` e regole di rete sandbox. Senza l'opt-in, quelle sessioni vengono eseguite senza la restrizione dell'uscita, e nulla ti avverte. Il gateway rifiuta comunque le richieste di inferenza per i modelli che la politica non concede.

364 

365Una lista di autorizzazione del marketplace dei plugin raggiunge anche le sessioni incorporate solo come impostazioni padre. Quando disattivi i marketplace dei plugin aggiunti dall'utente nella configurazione gestita di Claude Desktop, Claude Desktop 2.16120.0 o successivo nasconde i marketplace che la tua organizzazione non ha fornito e rifiuta gli install da essi. Per impedire alle sessioni incorporate di caricare i plugin già installati da quei marketplace, invia loro una lista `strictKnownMarketplaces` come impostazioni padre. Senza l'opt-in, Claude Code ignora quella lista e quei plugin continuano a caricarsi.

364 366 

365Le macchine in cui gli sviluppatori accedono tramite `/login` non ne hanno bisogno; ogni sessione di Claude Code recupera la sua politica dal gateway.367Le macchine in cui gli sviluppatori accedono tramite `/login` non ne hanno bisogno; ogni sessione di Claude Code recupera la sua politica dal gateway.

366 368 


374 376 

375<Steps>377<Steps>

376 <Step title="Distribuisci l'opt-in nel file di impostazioni gestite">378 <Step title="Distribuisci l'opt-in nel file di impostazioni gestite">

377 Lo [snippet sopra](#set-the-gateway-url) include già `parentSettingsBehavior: "merge"`, quindi il file che spingere alle macchine lo contiene.379 Lo [snippet sopra](#set-the-gateway-url) include già `parentSettingsBehavior: "merge"`, quindi il file che distribuisci alle macchine lo contiene.

378 </Step>380 </Step>

379 381 

380 <Step title="Specchia lo snippet su qualsiasi fonte che supera il file">382 <Step title="Specchia lo snippet su qualsiasi fonte che supera il file">

381 Claude Code legge `parentSettingsBehavior` solo dalla [fonte selezionata](/docs/it/managed-settings#which-managed-source-claude-code-uses). Aggiungere qualsiasi chiave di politica a una fonte può rendere quella fonte quella selezionata, quindi in una fonte lato client, specchia l'intero snippet piuttosto che solo `parentSettingsBehavior`. [Le impostazioni gestite lato client](/docs/it/claude-apps-gateway-config#client-side-managed-settings) copre le flotte che consegnano la politica tramite Group Policy o profili di configurazione. Un plist di preferenze gestite su macOS o una politica HKLM su Windows supera il file `managed-settings.json` e le impostazioni gestite remote del gateway superano entrambi, quindi su macchine che accedono al gateway, imposta anche `parentSettingsBehavior` nel blocco [`cli`](/docs/it/claude-apps-gateway-config#managed) della politica del gateway.383 Claude Code legge `parentSettingsBehavior` solo dalla [fonte selezionata](/docs/it/managed-settings#which-managed-source-claude-code-uses). Aggiungere qualsiasi chiave di politica a una fonte può rendere quella fonte quella selezionata, quindi in una fonte lato client, specchia l'intero snippet piuttosto che solo `parentSettingsBehavior`. [Le impostazioni gestite lato client](/docs/it/claude-apps-gateway-config#client-side-managed-settings) copre le flotte che forniscono la politica tramite Group Policy o profili di configurazione. Un plist di preferenze gestite su macOS o una politica HKLM su Windows supera il file `managed-settings.json`, e le impostazioni gestite remote del gateway superano entrambi, quindi su macchine che accedono al gateway, imposta anche `parentSettingsBehavior` nel blocco [`cli`](/docs/it/claude-apps-gateway-config#managed) della politica del gateway.

382 </Step>384 </Step>

383 385 

384 <Step title="Controlla quale fonte è selezionata">386 <Step title="Controlla quale fonte è selezionata">

385 Su una macchina che esegue solo Claude Desktop, chiama il [`resolveSettings()`](/docs/it/agent-sdk/typescript#resolvesettings) dell'Agent SDK e leggi `policyOrigin` sulla voce `managed` nel suo elenco `sources`. Il valore nomina la fonte lato client selezionata, `plist`, `hklm` o `file`, che è la fonte che deve contenere lo snippet. Le sessioni incorporate di Claude Desktop non recuperano la politica del gateway, quindi il blocco `cli` del gateway non conta mai come fonte selezionata per loro.387 Su una macchina che esegue solo Claude Desktop, chiama il [`resolveSettings()`](/docs/it/agent-sdk/typescript#resolvesettings) dell'Agent SDK e leggi `policyOrigin` sulla voce `managed` nel suo elenco `sources`. Il valore nomina la fonte lato client selezionata, `plist`, `hklm` o `file`, che è la fonte che deve contenere lo snippet. Le sessioni incorporate di Claude Desktop non recuperano la politica del gateway, quindi il blocco `cli` del gateway non conta mai come la fonte selezionata per loro.

386 </Step>388 </Step>

387</Steps>389</Steps>

388 390 


392 394 

393Una volta che distribuisci `parentSettingsBehavior: "merge"`, qualsiasi processo host che avvia Claude Code può fornire impostazioni padre, non solo Claude Desktop ma anche un'applicazione Agent SDK o un'estensione IDE.395Una volta che distribuisci `parentSettingsBehavior: "merge"`, qualsiasi processo host che avvia Claude Code può fornire impostazioni padre, non solo Claude Desktop ma anche un'applicazione Agent SDK o un'estensione IDE.

394 396 

395Claude Code filtra le impostazioni padre rispetto a un elenco di autorizzazione di chiavi restrittive, ma alcune chiavi consentite possono concedere accesso piuttosto che limitarlo. A meno che non imposti i blocchi `allowManaged*Only`, le regole di autorizzazione di autorizzazione e gli elenchi di autorizzazione sandbox forniti dall'host si applicano comunque. Le regole di negazione e richiesta della tua politica rimangono in vigore comunque; [vengono valutate prima di qualsiasi regola di autorizzazione](/docs/it/permissions#manage-permissions).397Claude Code filtra le impostazioni padre rispetto a una lista di autorizzazione di chiavi restrittive, ma alcune chiavi consentite possono concedere accesso piuttosto che limitarlo. A meno che tu non imposti i blocchi `allowManaged*Only`, le regole di autorizzazione di permesso e le liste di autorizzazione sandbox fornite dall'host si applicano comunque. Le regole di negazione e richiesta della tua politica rimangono in vigore comunque; [vengono valutate prima di qualsiasi regola di autorizzazione](/docs/it/permissions#manage-permissions).

396 398 

397Claude Code inoltra le voci [`sandbox.credentials`](/docs/it/settings-reference#sandbox-credentials) fornite dal padre in forma spogliata:399Claude Code inoltra le voci [`sandbox.credentials`](/docs/it/settings-reference#sandbox-credentials) fornite dal padre in forma spogliata:

398 400 

399* **Voci `deny`**: inoltrate con solo il loro `path` o `name` e la modalità.401* **Voci `deny`**: inoltrate con solo il loro `path` o `name` e la modalità.

400* **Voci di file con [`mode: mask`](/docs/it/sandboxing#mask-credential-files)**: inoltrate solo sentinel, come una maschera di file intero il cui `injectHosts` è l'elenco vuoto, quindi il proxy non sostituisce mai il valore reale per una voce fornita dal padre su nessuna piattaforma. Tutti i campi di mascheramento strutturato vengono eliminati anche, quindi un modello di estrazione fornito dal padre non può spostare una maschera più ristretta che un'altra fonte imposta per lo stesso percorso.402* **Voci di file con [`mode: mask`](/docs/it/sandboxing#mask-credential-files)**: inoltrate solo sentinel, come una maschera di file intero il cui `injectHosts` è l'elenco vuoto, quindi il proxy non sostituisce mai il valore reale per una voce fornita dal padre su nessuna piattaforma. Tutti i campi di mascheramento strutturato vengono eliminati anche, quindi un modello di estrazione fornito dal padre non può spostare una maschera più ristretta che un'altra fonte imposta per lo stesso percorso.

401* **Voci `envVars` con `mode: mask`**: non inoltrate. `deny` è l'unica restrizione che il canale padre può esprimere attraverso le voci `envVars`.403* **Voci `envVars` con `mode: mask`**: non inoltrate. `deny` è l'unica restrizione che il canale padre può esprimere attraverso le voci `envVars`.

402* **[`awsPairs` e `sigv4`](/docs/it/sandboxing#re-sign-aws-requests)**: inoltrate solo restrizione. Da `sigv4`, vengono mantenuti solo i valori `deny` e un padre che definisce un blocco `sigv4` affatto blocca tutti e tre i moduli di richiesta, `streaming`, `presigned` e `sigv4a`, a `deny`. Una coppia `awsPairs` non viene mai inoltrata in una forma che può ri-firmare; una coppia che nomina una delle variabili AWS convenzionali viene sostituita da una voce inerte che mantiene l'accoppiamento automatico di `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` e `AWS_SESSION_TOKEN` soppresso.404* **[`awsPairs` e `sigv4`](/docs/it/sandboxing#re-sign-aws-requests)**: inoltrate solo restrizione. Da `sigv4`, vengono mantenuti solo i valori `deny`, e un padre che definisce un blocco `sigv4` affatto fissa tutti e tre i moduli di richiesta, `streaming`, `presigned` e `sigv4a`, a `deny`. Una coppia `awsPairs` non viene mai inoltrata in una forma che possa ri-firmare; una coppia che nomina una delle variabili AWS convenzionali viene sostituita da una voce inerte che mantiene l'accoppiamento automatico di `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` e `AWS_SESSION_TOKEN` soppresso.

403 405 

404<h4 id="deploy-the-locks">406<h4 id="deploy-the-locks">

405 Distribuisci i blocchi407 Distribuisci i blocchi

406</h4>408</h4>

407 409 

408Per mantenere le impostazioni padre il più vicino possibile a solo restrizione come il filtro supporta, aggiungi tutti e cinque i blocchi `allowManaged*Only` e gli elenchi di autorizzazione che governano, alle stesse fonti come l'opt-in di unione:410Per mantenere le impostazioni padre il più vicino possibile a solo restrizione come il filtro supporta, aggiungi tutti e cinque i blocchi `allowManaged*Only` e le liste di autorizzazione che governano, alle stesse fonti come l'opt-in di unione:

409 411 

410```json theme={null}412```json theme={null}

411{413{


430}432}

431```433```

432 434 

433Una politica del sistema operativo, come una politica del registro HKLM o un plist di preferenze gestite, supera questo file, quindi consegna l'intero snippet attraverso di esso invece del file. Le impostazioni gestite remote del gateway superano le fonti della politica del sistema operativo e del file ma raggiungono solo i client connessi. Specchia i blocchi, gli elenchi di autorizzazione e l'opt-in di unione nel blocco [`cli`](/docs/it/claude-apps-gateway-config#managed) della politica e mantieni questo file distribuito, perché le macchine che non si connettono mai, incluse quelle che eseguono solo Claude Desktop, ottengono la loro politica dal file solo.435Una politica del sistema operativo, come una politica del registro HKLM o un plist di preferenze gestite, supera questo file, quindi fornisci l'intero snippet attraverso di esso invece del file. Le impostazioni gestite remote del gateway superano le fonti della politica del sistema operativo e del file ma raggiungono solo i client connessi. Specchia i blocchi, le liste di autorizzazione e l'opt-in di unione nel blocco [`cli`](/docs/it/claude-apps-gateway-config#managed) della politica e mantieni questo file distribuito, perché le macchine che non si connettono mai, incluse quelle che eseguono solo Claude Desktop, ottengono la loro politica dal file solo.

434 436 

435<h4 id="lock-behavior-across-sources">437<h4 id="lock-behavior-across-sources">

436 Comportamento del blocco tra le fonti438 Comportamento del blocco tra le fonti


438 440 

439Impostare un blocco non limita gli altri; ogni chiave è documentata nel [riferimento delle impostazioni](/docs/it/settings-reference#all-settings).441Impostare un blocco non limita gli altri; ogni chiave è documentata nel [riferimento delle impostazioni](/docs/it/settings-reference#all-settings).

440 442 

441Da una fonte amministrativa sotto il vincitore, i due blocchi sandbox si applicano comunque e `allowManagedPermissionRulesOnly` blocca comunque le regole di autorizzazione fornite dal padre e `additionalDirectories`. Su Claude Code v2.1.273 o successivo, il blocco del server MCP si applica anche da una fonte sotto il vincitore e, mentre è attivo, l'elenco gestito `allowedMcpServers` proviene dalla fonte amministrativa con priorità più alta che ne imposta uno.443Da una fonte amministrativa al di sotto del vincitore, i due blocchi sandbox si applicano comunque, e `allowManagedPermissionRulesOnly` blocca comunque le regole di autorizzazione fornite dal padre e `additionalDirectories`. Su Claude Code v2.1.273 o successivo, il blocco del server MCP si applica anche da una fonte al di sotto del vincitore, e mentre è attivo, la lista `allowedMcpServers` gestita proviene dalla fonte amministrativa con la priorità più alta che ne imposta una.

442 444 

443I blocchi hooks e `allowManagedPermissionRulesOnly` e l'effetto sulle regole personali dello sviluppatore hanno bisogno della fonte vincente per impostazione predefinita; secondo l'opt-in di unione `managedSourcesBehavior` in [come Claude Code combina le fonti gestite](/docs/it/managed-settings#how-claude-code-combines-managed-sources), Claude Code applica il valore più rigoroso che qualsiasi fonte imposta per ogni blocco. Sulle flotte [`policyHelper`](/docs/it/settings-reference#policyhelper), i blocchi vengono letti solo dall'output dell'helper.445Il blocco dei hooks e l'effetto di `allowManagedPermissionRulesOnly` sulle regole dello sviluppatore hanno bisogno della fonte vincente per impostazione predefinita; secondo l'opt-in di unione `managedSourcesBehavior` in [come Claude Code combina le fonti gestite](/docs/it/managed-settings#how-claude-code-combines-managed-sources), Claude Code applica il valore più rigoroso che qualsiasi fonte imposta per ogni blocco. Su flotte [`policyHelper`](/docs/it/settings-reference#policyhelper), Claude Code legge i blocchi solo dall'output dell'helper.

444 446 

445Ogni blocco fa sì che Claude Code ignori le voci personali dello sviluppatore per quella impostazione, quindi includi gli elenchi di autorizzazione della tua organizzazione accanto ai blocchi:447Ogni blocco fa sì che Claude Code ignori le voci dello sviluppatore per quella impostazione, quindi includi le liste di autorizzazione della tua organizzazione accanto ai blocchi:

446 448 

447* **Domini di rete**: bloccare con un elenco di dominio gestito vuoto blocca tutto il traffico in uscita in sandbox.449* **Domini di rete**: il blocco con una lista di domini gestiti vuota blocca tutto il traffico in uscita sandbox.

448* **Server MCP**: bloccare senza `allowedMcpServers` gestito in nessuna fonte amministrativa o nelle impostazioni fornite dal padre carica ogni server che `deniedMcpServers` non blocca.450* **Server MCP**: il blocco senza `allowedMcpServers` in nessuna fonte amministrativa o nelle impostazioni fornite dal padre carica ogni server che `deniedMcpServers` non blocca.

449* **Percorsi di lettura**: le voci `allowRead` solo ri-consentono i percorsi all'interno delle regioni `denyRead`, quindi abbinale a un `denyRead` gestito.451* **Percorsi di lettura**: le voci `allowRead` solo ri-consentono i percorsi all'interno delle regioni `denyRead`, quindi abbinale a un `denyRead` gestito.

450 452 

451<h4 id="settings-the-locks-don’t-cover">453<h4 id="settings-the-locks-don’t-cover">

452 Impostazioni che i blocchi non coprono454 Impostazioni che i blocchi non coprono

453</h4>455</h4>

454 456 

455Sei impostazioni fornite dal padre passano il filtro anche con tutti e cinque i blocchi impostati. Secondo l'impostazione predefinita first-wins, il valore amministrativo che blocca quello del padre è quello nella fonte amministrativa con priorità più alta, tranne per `allowedMcpServers` mentre il [blocco del server MCP](#lock-behavior-across-sources) è attivo. Secondo l'opt-in di unione `managedSourcesBehavior`, [come Claude Code combina le fonti gestite](/docs/it/managed-settings#how-claude-code-combines-managed-sources) dice quale valore della fonte si applica invece.457Sei impostazioni fornite dal padre passano il filtro anche con tutti e cinque i blocchi impostati. Secondo l'impostazione predefinita first-wins, un valore amministrativo blocca quello del padre solo quando si trova nella fonte amministrativa con la priorità più alta, tranne per `allowedMcpServers` mentre il [blocco del server MCP](#lock-behavior-across-sources) è attivo. Secondo l'opt-in di unione `managedSourcesBehavior`, [come Claude Code combina le fonti gestite](/docs/it/managed-settings#how-claude-code-combines-managed-sources) dice quale valore della fonte si applica invece.

456 458 

457* **`forceLoginOrgUUID`**: Claude Code onora un valore fornito dal padre quando la fonte amministrativa con priorità più alta non imposta un UUID org. L'accesso al gateway non controlla questa chiave, quindi importa solo per le flotte che utilizzano anche accessi Anthropic di prima parte. Un UUID org nella fonte amministrativa con priorità più alta blocca il valore del padre ed è quello che Claude Code applica, quindi imposta `forceLoginOrgUUID` lì.459* **`forceLoginOrgUUID`**: Claude Code onora un valore fornito dal padre quando la fonte amministrativa con la priorità più alta non imposta un UUID org. L'accesso al gateway non controlla questa chiave. Un UUID org nella fonte amministrativa con la priorità più alta blocca il valore del padre ed è quello che Claude Code applica.

458* **`allowedMcpServers`**: Claude Code onora un elenco di autorizzazione fornito dal padre quando nessuna fonte amministrativa ne imposta uno. `allowManagedMcpServersOnly` non lo blocca, perché il blocco applica qualunque elenco vinca come valore gestito, incluso un elenco fornito dal padre quando nessuna fonte amministrativa ne imposta uno. Un elenco nella fonte amministrativa con priorità più alta blocca quello del padre ed è l'elenco che Claude Code applica, quindi imposta `allowedMcpServers` lì, accanto al blocco. Prima della v2.1.223, un valore per una delle due chiavi in qualsiasi fonte amministrativa bloccava quello del padre.460* **`allowedMcpServers`**: Claude Code onora una lista di autorizzazione fornita dal padre quando nessuna lista amministrativa è in vigore. `allowManagedMcpServersOnly` non la blocca, perché il blocco applica qualsiasi lista vinca come valore gestito, inclusa una fornita dal padre quando nessuna fonte amministrativa fornisce una lista. Una lista nella fonte amministrativa con la priorità più alta blocca quella del padre ed è la lista che Claude Code applica, quindi imposta `allowedMcpServers` lì, accanto al blocco. Prima della v2.1.223, un valore per una delle due chiavi in qualsiasi fonte amministrativa bloccava quella del padre.

459* **`availableModels`**: Claude Code onora un elenco di modelli fornito dal padre quando la fonte gestita vincente non ne imposta uno. Se la tua flotta limita i modelli, imposta `availableModels` nella fonte vincente.461* **`availableModels`**: Claude Code onora una lista di modelli fornita dal padre quando la fonte gestita vincente non ne imposta una. Se la tua flotta limita i modelli, imposta `availableModels` nella fonte vincente.

460* **`strictKnownMarketplaces`**: Claude Code onora un elenco di autorizzazione del marketplace di plugin fornito dal padre quando la fonte gestita vincente non ne imposta uno. Se la tua flotta limita i marketplace, imposta `strictKnownMarketplaces` nella fonte vincente. Richiede Claude Code v2.1.282 o successivo.462* **`strictKnownMarketplaces`**: Claude Code onora una lista di autorizzazione del marketplace dei plugin fornita dal padre quando la fonte gestita vincente non ne imposta una. Claude Desktop 2.16120.0 o successivo ne invia una quando la sua configurazione gestita disattiva i marketplace dei plugin aggiunti dall'utente. Se la tua flotta limita i marketplace, imposta `strictKnownMarketplaces` nella fonte vincente. Richiede Claude Code v2.1.282 o successivo.

461* **`blockedMarketplaces`**: un elenco di blocco del marketplace fornito dal padre passa e si aggiunge a qualsiasi elenco di blocco che una fonte gestita imposta, poiché un elenco di blocco può solo limitare ulteriormente. Richiede Claude Code v2.1.282 o successivo.463* **`blockedMarketplaces`**: una lista di blocco del marketplace fornita dal padre passa e si aggiunge a qualsiasi lista di blocco che una fonte gestita imposta, poiché una lista di blocco può solo limitare ulteriormente. Richiede Claude Code v2.1.282 o successivo.

462* **`strictPluginOnlyCustomization`**: questa chiave passa il filtro indipendentemente da qualsiasi blocco e fa sì che Claude Code ignori la personalizzazione personale dello sviluppatore, inclusi gli hooks protettivi. Nessun blocco lo blocca.464* **`strictPluginOnlyCustomization`**: questa chiave passa il filtro indipendentemente da qualsiasi blocco, e fa sì che Claude Code ignori la personalizzazione dello sviluppatore, inclusi i hooks protettivi. Nessun blocco la blocca.

463 465 

464<h3 id="connect-claude-desktop">466<h3 id="connect-claude-desktop">

465 Connetti Claude Desktop467 Connetti Claude Desktop

466</h3>468</h3>

467 469 

468[Claude Desktop](/docs/it/desktop) si connette allo stesso gateway attraverso una chiave MDM diversa: imposta `bootstrapUrl` nella [configurazione gestita](https://claude.com/docs/third-party/claude-desktop/configuration) di Claude Desktop a `<listen.public_url>/user/bootstrap` e opt-in della politica dell'utente con una chiave `desktop`. [L'overlay di Claude Desktop](/docs/it/claude-apps-gateway-config#claude-desktop-overlay) copre entrambe le metà. Richiede Claude Code v2.1.203 o successivo sul server del gateway.470[Claude Desktop](/docs/it/desktop) si connette allo stesso gateway attraverso una chiave MDM diversa: imposta `bootstrapUrl` nella [configurazione gestita](https://claude.com/docs/third-party/claude-desktop/configuration) di Claude Desktop a `<listen.public_url>/user/bootstrap`, e opt-in della politica dell'utente con una chiave `desktop`. [L'overlay di Claude Desktop](/docs/it/claude-apps-gateway-config#claude-desktop-overlay) copre entrambe le metà. Richiede Claude Code v2.1.203 o successivo sul server gateway.

469 471 

470Claude Desktop firma lo sviluppatore attraverso il provider di identità del gateway con lo stesso passaggio SSO del browser, quindi recupera la sua configurazione dal gateway invece che da Anthropic. L'accesso ai modelli e la politica seguono le stesse regole per gruppo come il CLI. Uno sviluppatore che utilizza sia il CLI che Claude Desktop accede a ciascuno separatamente; la sessione del gateway non è condivisa tra loro.472Claude Desktop accede allo sviluppatore tramite il provider di identità del gateway con lo stesso passaggio SSO del browser, quindi recupera la sua configurazione dal gateway invece che da Anthropic. L'accesso al modello e la politica seguono le stesse regole per gruppo dell'interfaccia della riga di comando. Uno sviluppatore che utilizza sia l'interfaccia della riga di comando che Claude Desktop accede a ciascuno separatamente; la sessione del gateway non è condivisa tra loro.

471 473 

472Una volta connesso, Claude Desktop invia richieste di modello da ogni scheda abilitata attraverso il gateway. Mostra le schede Cowork e Code per impostazione predefinita. Per attivare anche la scheda Chat, imposta `chatTabEnabled` a `true` nella [configurazione gestita](https://claude.com/docs/third-party/claude-desktop/configuration) di Claude Desktop o nel blocco [`desktop`](/docs/it/claude-apps-gateway-config#claude-desktop-overlay) della politica su un gateway che esegue Claude Code v2.1.227 o successivo.474Una volta connesso, Claude Desktop invia richieste di modello da ogni scheda abilitata attraverso il gateway. Mostra le schede Cowork e Code per impostazione predefinita. Per attivare anche la scheda Chat, imposta `chatTabEnabled` a `true` nella [configurazione gestita](https://claude.com/docs/third-party/claude-desktop/configuration) di Claude Desktop, o nel blocco [`desktop`](/docs/it/claude-apps-gateway-config#claude-desktop-overlay) della politica su un gateway che esegue Claude Code v2.1.227 o successivo.

473 475 

474<h3 id="ci-pipelines-and-remote-machines">476<h3 id="ci-pipelines-and-remote-machines">

475 Pipeline CI e macchine remote477 Pipeline CI e macchine remote

476</h3>478</h3>

477 479 

478Non c'è flusso di token di servizio per pipeline non presenziate. L'accesso al gateway esegue sempre il flusso del dispositivo del browser, quindi un lavoro CI senza uno sviluppatore per approvare l'accesso non può autenticarsi; configura quelli direttamente contro il tuo provider.480Non esiste un flusso di token di servizio per le pipeline non presenziate. L'accesso al gateway esegue sempre il flusso del dispositivo del browser, quindi un lavoro CI senza uno sviluppatore per approvare l'accesso non può autenticarsi; configura quelli direttamente contro il tuo provider.

479 481 

480Una volta che uno sviluppatore ha effettuato l'accesso, ogni sessione di Claude Code su quella macchina utilizza la sessione del gateway, incluse le esecuzioni non interattive `claude -p` e le sessioni avviate da Agent SDK. Claude Code applica la [politica del gateway](/docs/it/claude-apps-gateway-config#managed) a ciascuna di esse.482Una volta che uno sviluppatore ha effettuato l'accesso, ogni sessione di Claude Code su quella macchina utilizza la sessione del gateway, incluse le esecuzioni non interattive `claude -p` e le sessioni avviate dall'Agent SDK. Claude Code applica la [politica del gateway](/docs/it/claude-apps-gateway-config#managed) a ciascuna di esse.

481 483 

482Il flusso del dispositivo separa il CLI di polling dal browser di approvazione, quindi una scatola di sviluppo remoto senza display funziona ancora: lo sviluppatore esegue `/login` su SSH sulla macchina remota e apre il link di verifica nel browser sul suo laptop.484Il flusso del dispositivo separa l'interfaccia della riga di comando di polling dal browser di approvazione, quindi una casella di sviluppo remota senza display funziona comunque: lo sviluppatore esegue `/login` su SSH sulla macchina remota e apre il collegamento di verifica nel browser sul suo laptop.

483 485 

484<h3 id="whats-enforced-on-developers">486<h3 id="whats-enforced-on-developers">

485 Cosa viene applicato agli sviluppatori487 Cosa viene applicato agli sviluppatori

486</h3>488</h3>

487 489 

488Queste garanzie si applicano a ogni sessione connessa tramite `/login`. Le sessioni incorporate che Claude Desktop avvia ottengono la loro politica come descritto in [Consegna la politica alle sessioni di Claude Desktop](#deliver-policy-to-claude-desktop-sessions) e il punto di telemetria dice dove vanno le loro esportazioni.490Queste garanzie si applicano a ogni sessione connessa tramite `/login`. Le sessioni incorporate che Claude Desktop avvia ottengono la loro politica come descritto in [Fornisci la politica alle sessioni di Claude Desktop](#deliver-policy-to-claude-desktop-sessions), e il punto della telemetria dice dove vanno le loro esportazioni.

489 491 

490* **Accesso ai modelli**: le richieste per modelli che la politica non concede restituiscono 400 e il selettore `/model` viene filtrato all'elenco di autorizzazione `availableModels` della politica. Imposta [`enforceAvailableModels: true`](/docs/it/model-config#default-model-behavior) nella politica in modo che l'opzione Predefinita si risolva in un modello all'interno di `availableModels` invece che al valore predefinito integrato di Claude Code; senza di esso, Predefinita rimane selezionabile e viene rifiutata al momento della richiesta se quel modello non è concesso.492* **Accesso al modello**: le richieste per i modelli che la politica non concede restituiscono 400, e il selettore `/model` viene filtrato alla lista di autorizzazione `availableModels` della politica. Imposta [`enforceAvailableModels: true`](/docs/it/model-config#default-model-behavior) nella politica in modo che l'opzione Predefinito si risolva in un modello all'interno di `availableModels` invece che nel predefinito integrato di Claude Code; senza di esso, Predefinito rimane selezionabile e viene rifiutato al momento della richiesta se quel modello non è concesso.

491* **Destinazione telemetria**: nelle sessioni connesse tramite `/login`, il CLI invia le sue esportazioni OTLP/HTTP al gateway piuttosto che a un `OTEL_EXPORTER_OTLP_ENDPOINT` impostato localmente, a meno che una politica non [nomini il tuo raccoglitore come endpoint](/docs/it/claude-apps-gateway-config#export-directly-to-your-collector). Il gateway inoltra le esportazioni che riceve alle destinazioni in [`telemetry.forward_to`](/docs/it/claude-apps-gateway-config#telemetry).493* **Destinazione della telemetria**: nelle sessioni connesse tramite `/login`, l'interfaccia della riga di comando invia le sue esportazioni OTLP/HTTP al gateway piuttosto che a un `OTEL_EXPORTER_OTLP_ENDPOINT` impostato localmente, a meno che una politica non [nomini il tuo raccoglitore come endpoint](/docs/it/claude-apps-gateway-config#export-directly-to-your-collector). Il gateway inoltra le esportazioni che riceve alle destinazioni in [`telemetry.forward_to`](/docs/it/claude-apps-gateway-config#telemetry).

492 * Nelle sessioni incorporate che [Claude Desktop avvia](#connect-claude-desktop), il CLI invia le sue esportazioni all'`OTEL_EXPORTER_OTLP_ENDPOINT` configurato. Il CLI allega il token di sessione del gateway a quelle esportazioni solo quando quell'endpoint punta al gateway stesso.494 * Nelle sessioni incorporate che [Claude Desktop avvia](#connect-claude-desktop), l'interfaccia della riga di comando invia le sue esportazioni al `OTEL_EXPORTER_OTLP_ENDPOINT` configurato. L'interfaccia della riga di comando allega il token di sessione del gateway a quelle esportazioni solo quando quell'endpoint punta al gateway stesso.

493 * Senza una destinazione configurata per un segnale, il gateway lo accetta e lo scarta.495 * Senza una destinazione configurata per un segnale, il gateway lo accetta e lo scarta.

494 * Se raccogli già la telemetria di Claude Code direttamente, aggiungi il tuo raccoglitore come destinazione `forward_to` o nominalo in una politica per saltare il relay.496 * Se raccogli già la telemetria di Claude Code direttamente, aggiungi il tuo raccoglitore come destinazione `forward_to`, o nominalo in una politica per saltare l'inoltro.

495* **Credenziali**: il token del gateway è l'unica credenziale della sessione. [Profili Anthropic](/docs/it/authentication#anthropic-profiles-and-federation-credentials) e qualsiasi accesso precedente a claude.ai vengono ignorati mentre connesso, quindi gli sviluppatori non hanno bisogno di disconnettersi da claude.ai per primo. Per una credenziale `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper` configurata, vedi [La politica dell'amministratore richiede un accesso al Cloud gateway](/docs/it/errors#administrator-policy-requires-a-cloud-gateway-sign-in).497* **Credenziali**: il token del gateway è l'unica credenziale della sessione. I [profili Anthropic](/docs/it/authentication#anthropic-profiles-and-federation-credentials) e qualsiasi accesso precedente a claude.ai vengono ignorati mentre connessi, quindi gli sviluppatori non hanno bisogno di disconnettersi da claude.ai prima. Per una credenziale `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper` configurata, o una chiave API salvata da un accesso precedente a Claude Console, vedi [La politica dell'amministratore richiede un accesso al gateway Cloud](/docs/it/errors#administrator-policy-requires-a-cloud-gateway-sign-in).

496* **Impostazioni gestite**: le chiavi bloccate non possono essere ignorate localmente. Il CLI applica la politica all'avvio e applica le modifiche su ogni sondaggio orario, a parte le [modifiche che si applicano solo al prossimo avvio](/docs/it/server-managed-settings#fetch-and-caching-behavior).498* **Impostazioni gestite**: le chiavi bloccate non possono essere ignorate localmente. L'interfaccia della riga di comando applica la politica all'avvio e applica le modifiche ad ogni sondaggio orario, a parte i [cambiamenti che si applicano solo al prossimo avvio](/docs/it/server-managed-settings#fetch-and-caching-behavior).

497* **Avvio con il gateway irraggiungibile**: le sessioni connesse escono all'avvio con un errore dopo circa 10 secondi piuttosto che iniziare senza le loro impostazioni.499* **Avvio con il gateway irraggiungibile**: le sessioni connesse escono all'avvio con un errore dopo circa 10 secondi piuttosto che avviarsi senza le loro impostazioni.

498* **Avvio dopo che il gateway termina la sessione**: vedi [Applica fail-closed startup](/docs/it/server-managed-settings#enforce-fail-closed-startup) per i lanci che si aprono disconnessi dal gateway e quelli che escono quando il gateway risponde con un `401`.500* **Avvio dopo che il gateway termina la sessione**: vedi [Applica l'avvio fail-closed](/docs/it/server-managed-settings#enforce-fail-closed-startup) per gli avvii che si aprono disconnessi dal gateway e quelli che escono quando il gateway risponde con un `401`.

499* **Deprovision**: una sessione il cui utente è disabilitato nell'IdP scade entro `ttl_hours` quando il prossimo aggiornamento fallisce.501* **Deprovisioning**: una sessione il cui utente è disabilitato nell'IdP scade entro `ttl_hours` quando il prossimo aggiornamento non riesce.

500* **Sign-out**: `/logout` elimina la credenziale del gateway dalla macchina dello sviluppatore.502* **Disconnessione**: `/logout` elimina la credenziale del gateway dalla macchina dello sviluppatore.

501 * Quando il documento di scoperta del gateway pubblicizza un `revocation_endpoint` sullo schema, host e porta dell'URL del gateway, `/logout` invia anche i token archiviati a quell'endpoint in modo che il gateway possa terminare la sessione dal suo lato. La richiesta è best effort, quindi il sign-out si completa sulla macchina dello sviluppatore indipendentemente dal fatto che l'endpoint risponda. La revoca richiede Claude Code v2.1.275 o successivo sulla macchina dello sviluppatore.503 * Quando il documento di scoperta del gateway pubblicizza un `revocation_endpoint` sullo schema, host e porta dell'URL del gateway, `/logout` invia anche i token archiviati a quell'endpoint in modo che il gateway possa terminare la sessione dal suo lato. La richiesta è best effort, quindi la disconnessione si completa sulla macchina dello sviluppatore indipendentemente dal fatto che l'endpoint risponda. La revoca richiede Claude Code v2.1.275 o successivo sulla macchina dello sviluppatore.

502 * Il server del gateway nel binario `claude` non ne pubblicizza nessuno, quindi un sign-out da esso termina la sessione sulla macchina dello sviluppatore solo. Per forzare le sessioni fuori lato server, vedi [Rotazione della chiave JWT](/docs/it/claude-apps-gateway-deploy#jwt-secret-rotation).504 * Il server gateway nel binario `claude` non ne pubblicizza nessuno, quindi una disconnessione da esso termina la sessione sulla macchina dello sviluppatore solo. Per forzare le sessioni fuori dal lato server, vedi [Rotazione della chiave JWT](/docs/it/claude-apps-gateway-deploy#jwt-secret-rotation).

503 505 

504<h3 id="what-the-organization-can-see">506<h3 id="what-the-organization-can-see">

505 Cosa può vedere l'organizzazione507 Cosa può vedere l'organizzazione

506</h3>508</h3>

507 509 

508La telemetria di utilizzo porta l'identità dello sviluppatore, i conteggi di token, il modello e la latenza al raccoglitore dell'organizzazione. Il gateway non registra o archivia il contenuto del prompt o del completamento. Se viene raccolta una telemetria più ricca come log e tracce, che può includere comandi e percorsi di file, è la [scelta per destinazione](/docs/it/claude-apps-gateway-config#telemetry) dell'organizzazione.510La telemetria di utilizzo contiene l'identità dello sviluppatore, i conteggi dei token, il modello e la latenza al raccoglitore dell'organizzazione. Il gateway non registra o archivia il contenuto del prompt o del completamento. Se viene raccolta una telemetria più ricca come log e tracce, che può includere comandi e percorsi di file, è la [scelta per destinazione](/docs/it/claude-apps-gateway-config#telemetry) dell'organizzazione.

509 511 

510<h2 id="availability-and-limitations">512<h2 id="availability-and-limitations">

511 Disponibilità e limitazioni513 Disponibilità e limitazioni

Details

303| - | - | - |303| - | - | - |

304| Inferenza (prompt, completamenti) | CLI → gateway → il tuo upstream | Solo se l'API Anthropic è un upstream configurato |304| Inferenza (prompt, completamenti) | CLI → gateway → il tuo upstream | Solo se l'API Anthropic è un upstream configurato |

305| Telemetria (metriche OTLP, più [log e tracce opt-in](/docs/it/claude-apps-gateway-config#telemetry)) | CLI → gateway → il tuo collettore | Mai |305| Telemetria (metriche OTLP, più [log e tracce opt-in](/docs/it/claude-apps-gateway-config#telemetry)) | CLI → gateway → il tuo collettore | Mai |

306| Identità (email, gruppi, sub) | IdP → gateway → JWT → CLI; il CLI lo marca sulle esportazioni OTLP. Se attivi [`forward_user_identity`](/docs/it/claude-apps-gateway-config#per-user-identity-headers-for-a-proxy-you-run), il gateway invia anche l'email dello sviluppatore e il soggetto IdP come intestazioni al tuo proxy | Mai |306| Identità (email, gruppi, sub) | IdP → gateway → CLI; il CLI lo marca sulle esportazioni OTLP. Se attivi [`forward_user_identity`](/docs/it/claude-apps-gateway-config#per-user-identity-headers-for-a-proxy-you-run), il gateway invia anche l'email dello sviluppatore e il soggetto IdP come intestazioni al tuo proxy | Mai |

307| Impostazioni gestite | Il tuo gateway YAML → CLI | Mai |307| Impostazioni gestite | Il tuo gateway YAML → CLI | Mai |

308| Log di audit | Gateway stderr → il tuo aggregatore | Mai |308| Log di audit | Gateway stderr → il tuo aggregatore | Mai |

309 309 

Details

514 Telemetria514 Telemetria

515</h2>515</h2>

516 516 

517Il gateway vi fornisce metriche di utilizzo per sviluppatore senza alcuna configurazione OTEL per macchina. Claude Code emette metriche, log e tracce OpenTelemetry (OTLP) opt-in; [Monitoraggio dell'utilizzo](/docs/it/monitoring-usage) copre tutto ciò che il CLI segnala. Sulle sessioni del gateway il CLI marca ogni esportazione con gli attributi di identità IdP autenticati `user.id`, `user.email` e `user.groups`, quindi l'utilizzo si accumula per sviluppatore senza alcun plumbing `OTEL_RESOURCE_ATTRIBUTES`.517Il gateway vi fornisce metriche di utilizzo per sviluppatore senza alcuna configurazione OTEL per macchina. Claude Code emette metriche, log e tracce OpenTelemetry (OTLP) opt-in; [Monitoraggio dell'utilizzo](/docs/it/monitoring-usage) copre tutto ciò che il CLI segnala. Nelle sessioni accedute tramite `/login`, il CLI marca ogni esportazione con gli attributi di identità IdP autenticati `user.id`, `user.email` e `user.groups`, quindi l'utilizzo si accumula per sviluppatore.

518 518 

519Il gateway stesso è un relè OTLP autenticato. Impostate [`telemetry.forward_to`](/docs/it/claude-apps-gateway-config#telemetry) insieme a `listen.public_url`, e spinge le impostazioni dell'esportatore OTEL a ogni client connesso e inoltra il loro traffico OTLP verbatim a ogni destinazione che elencate. Ogni destinazione opta per metriche, log e tracce indipendentemente, e l'impostazione predefinita è solo metriche; consultate il [riferimento `telemetry`](/docs/it/claude-apps-gateway-config#telemetry) per i campi per segnale e i loro compromessi di sensibilità. Il gateway non memorizza nel buffer, aggrega o archivia la telemetria, quindi dove i dati finiscono è interamente la configurazione dell'esportatore del collettore.519Il gateway stesso è un relè OTLP autenticato. Impostate [`telemetry.forward_to`](/docs/it/claude-apps-gateway-config#telemetry) insieme a `listen.public_url`, e spinge le impostazioni dell'esportatore OTEL a ogni client connesso e inoltra il loro traffico OTLP verbatim a ogni destinazione che elencate. Ogni destinazione opta per metriche, log e tracce indipendentemente, e l'impostazione predefinita è solo metriche; consultate il [riferimento `telemetry`](/docs/it/claude-apps-gateway-config#telemetry) per i campi per segnale e i loro compromessi di sensibilità. Il gateway non memorizza nel buffer, aggrega o archivia la telemetria, quindi dove i dati finiscono è interamente la configurazione dell'esportatore del collettore.

520 520 

Details

150* La directory deve essere un repository git con almeno un commit150* La directory deve essere un repository git con almeno un commit

151* Il repository raggruppato deve essere inferiore a 100 MB. I repository più grandi ricadono nel raggruppamento solo del ramo attuale, quindi in uno snapshot squashed singolo dell'albero di lavoro e falliscono solo se lo snapshot è ancora troppo grande151* Il repository raggruppato deve essere inferiore a 100 MB. I repository più grandi ricadono nel raggruppamento solo del ramo attuale, quindi in uno snapshot squashed singolo dell'albero di lavoro e falliscono solo se lo snapshot è ancora troppo grande

152* I file non tracciati non sono inclusi; esegui `git add` sui file che desideri che la sessione cloud veda152* I file non tracciati non sono inclusi; esegui `git add` sui file che desideri che la sessione cloud veda

153* Su macOS, Linux e WSL, Claude Code rifiuta l'upload quando non riesce a seguire un'impostazione git che influisce su quali regole di attributi si applicano ai tuoi file, come `core.attributesFile` impostato in un file di configurazione incluso. Il [messaggio di rifiuto](/docs/it/errors#the-repository-upload-cant-follow-a-git-setting) nomina l'impostazione e la correzione

153* Le sessioni create da un bundle possono eseguire il push di nuovo a un remoto GitHub solo quando la tua [connessione GitHub](#github-authentication-options) ha accesso push a quel repository154* Le sessioni create da un bundle possono eseguire il push di nuovo a un remoto GitHub solo quando la tua [connessione GitHub](#github-authentication-options) ha accesso push a quel repository

154 155 

155<h3 id="send-follow-ups-from-the-cli">156<h3 id="send-follow-ups-from-the-cli">

Details

1569| `feedback/drafts/` | [Feedback redatto da Claude](/docs/it/tools-reference#sendfeedback-tool-behavior) in coda in attesa della tua revisione in `/feedback`. Pulito dopo `cleanupPeriodDays` o 30 giorni, a seconda di quale sia più breve. Quando la coda raggiunge il limite di 10 bozze, Claude Code elimina la bozza più vecchia per fare spazio. |1569| `feedback/drafts/` | [Feedback redatto da Claude](/docs/it/tools-reference#sendfeedback-tool-behavior) in coda in attesa della tua revisione in `/feedback`. Pulito dopo `cleanupPeriodDays` o 30 giorni, a seconda di quale sia più breve. Quando la coda raggiunge il limite di 10 bozze, Claude Code elimina la bozza più vecchia per fare spazio. |

1570| `usage-data/` | `report.html` e copie di report con timestamp scritte da [`/insights`](/docs/it/costs#analyze-your-usage-patterns), più dati di analisi per sessione memorizzati nella cache utilizzati per costruirli |1570| `usage-data/` | `report.html` e copie di report con timestamp scritte da [`/insights`](/docs/it/costs#analyze-your-usage-patterns), più dati di analisi per sessione memorizzati nella cache utilizzati per costruirli |

1571| `skills/.trash/`, `plugins/.trash/` | [Skills](/docs/it/skills#how-synced-skills-behave) e [plugins](/docs/it/plugins/loading#synced-plugins) che il sync da claude.ai ha rimosso, ad esempio dopo che ne hai disattivato uno su claude.ai o hai smesso di sincronizzare. I file rimangono qui in modo che tu possa recuperarli fino a quando la pulizia non li elimina |1571| `skills/.trash/`, `plugins/.trash/` | [Skills](/docs/it/skills#how-synced-skills-behave) e [plugins](/docs/it/plugins/loading#synced-plugins) che il sync da claude.ai ha rimosso, ad esempio dopo che ne hai disattivato uno su claude.ai o hai smesso di sincronizzare. I file rimangono qui in modo che tu possa recuperarli fino a quando la pulizia non li elimina |

1572| `plugins/installed_plugins.set-aside.<date>.<hash>.json`, `plugins/installed_plugins.unreadable.<date>.<hash>.kept` | Copie datate che Claude Code crea prima di riscrivere [`installed_plugins.json`](/docs/it/plugins/loading#find-plugins-on-disk): record di installazione che ha eliminato, e il contenuto di un file che non poteva leggere. |

1572| `todos/`, `statsig/`, `logs/` | Directory legacy da versioni precedenti. Non più scritte. La pulizia rimuove i loro contenuti e poi la directory vuota. |1573| `todos/`, `statsig/`, `logs/` | Directory legacy da versioni precedenti. Non più scritte. La pulizia rimuove i loro contenuti e poi la directory vuota. |

1573 1574 

1574I file di sessione in `sessions/`, la memoria automatica e le trascrizioni di Claude Desktop e Cowork seguono ciascuno la propria regola di conservazione:1575I file di sessione in `sessions/`, la memoria automatica e le trascrizioni di Claude Desktop e Cowork seguono ciascuno la propria regola di conservazione:


1715| `~/.claude/policy-limits.json` | Nulla. Aggiornato automaticamente. |1716| `~/.claude/policy-limits.json` | Nulla. Aggiornato automaticamente. |

1716| `~/.claude/tasks/` | Elenchi di attività che una sessione ripresa raccoglierebbe |1717| `~/.claude/tasks/` | Elenchi di attività che una sessione ripresa raccoglierebbe |

1717| `~/.claude/skills/.trash/`, `~/.claude/plugins/.trash/` | La possibilità di recuperare [skills sincronizzate](/docs/it/skills#how-synced-skills-behave) e [plugins sincronizzati](/docs/it/plugins/loading#synced-plugins) che Claude Code ha rimosso |1718| `~/.claude/skills/.trash/`, `~/.claude/plugins/.trash/` | La possibilità di recuperare [skills sincronizzate](/docs/it/skills#how-synced-skills-behave) e [plugins sincronizzati](/docs/it/plugins/loading#synced-plugins) che Claude Code ha rimosso |

1719| `~/.claude/plugins/installed_plugins.set-aside.<date>.<hash>.json`, `~/.claude/plugins/installed_plugins.unreadable.<date>.<hash>.kept` | Le copie dei record di installazione dei plugin che Claude Code ha eliminato o non poteva leggere. Nulla le legge di nuovo |

1718| `~/.claude/debug/`, `~/.claude/plans/`, `~/.claude/session-env/`, `~/.claude/shell-snapshots/`, `~/.claude/backups/` | Nulla di visibile all'utente |1720| `~/.claude/debug/`, `~/.claude/plans/`, `~/.claude/session-env/`, `~/.claude/shell-snapshots/`, `~/.claude/backups/` | Nulla di visibile all'utente |

1719| `~/.claude/todos/`, `~/.claude/statsig/`, `~/.claude/logs/`, `~/.claude/image-cache/` | Nulla. Directory legacy non scritte dalle versioni correnti. |1721| `~/.claude/todos/`, `~/.claude/statsig/`, `~/.claude/logs/`, `~/.claude/image-cache/` | Nulla. Directory legacy non scritte dalle versioni correnti. |

1720 1722 

claude-projects.md +78 −64

Details

4 4 

5# Lascia che Claude coordini il lavoro in corso con Projects5# Lascia che Claude coordini il lavoro in corso con Projects

6 6 

7> Fornisci a Claude un corpo di lavoro correlato in una conversazione e lascia che coordini sessioni cloud parallele che condividono repository, istruzioni e memoria.7> Fornisci a Claude un flusso di lavoro correlato in una conversazione e lascia che lo esegua come sessioni cloud parallele che condividono repository, istruzioni e memoria.

8 8 

9<Note>9<Note>

10 Projects è in beta pubblica sui piani Pro e Max e sta venendo implementato gradualmente, a partire da account che hanno utilizzato [sessioni cloud](/docs/it/claude-code-on-the-web) e non hanno progetti esistenti in claude.ai chat o Cowork. Non sono ancora disponibili sui piani Team o Enterprise. Se **Projects** non appare nella barra laterale su [claude.ai/code](https://claude.ai/code) o nella scheda Code dell'[app desktop](/docs/it/desktop), l'implementazione non ha ancora raggiunto il tuo account, e puoi [unirti alla lista d'attesa](https://claude.com/form/projects). [Esegui agenti in parallelo](/docs/it/agents) elenca cosa puoi utilizzare nel frattempo.10 Projects è in beta pubblica sui piani Pro e Max e sta venendo implementato gradualmente, a partire da account che hanno utilizzato [sessioni cloud](/docs/it/claude-code-on-the-web) e non hanno progetti esistenti in claude.ai chat o Cowork. Non sono ancora disponibili sui piani Team o Enterprise. Se **Projects** non appare nella barra laterale su [claude.ai/code](https://claude.ai/code) o nella scheda Code dell'[app desktop](/docs/it/desktop), l'implementazione non ha ancora raggiunto il tuo account, e puoi [unirti alla lista d'attesa](https://claude.com/form/projects). [Esegui agenti in parallelo](/docs/it/agents) elenca cosa puoi utilizzare nel frattempo.


80Crei e usi i project su [claude.ai/code](https://claude.ai/code), nella scheda Code dell'app desktop, o nell'app mobile Claude per [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) e [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude). Nel browser e nell'app desktop ci sono due modi per avviare un project:80Crei e usi i project su [claude.ai/code](https://claude.ai/code), nella scheda Code dell'app desktop, o nell'app mobile Claude per [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) e [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude). Nel browser e nell'app desktop ci sono due modi per avviare un project:

81 81 

82* **Da zero**, quando conosci il flusso di lavoro che vuoi che Claude esegua: apri la finestra di dialogo **New project** e assegnagli un nome. [Avvia un nuovo project da zero](#start-a-new-project-from-scratch) ti guida attraverso la finestra di dialogo.82* **Da zero**, quando conosci il flusso di lavoro che vuoi che Claude esegua: apri la finestra di dialogo **New project** e assegnagli un nome. [Avvia un nuovo project da zero](#start-a-new-project-from-scratch) ti guida attraverso la finestra di dialogo.

83* **Da una sessione cloud che sta già facendo il lavoro**: scegli **Continue as a project** dal menu di quella sessione, e Claude propone la configurazione del project da quello che la sessione stava facendo. Vedi [Avvia da una sessione cloud esistente](#start-from-an-existing-cloud-session).83* **Da una sessione cloud che sta già facendo il lavoro**: scegli **Continue as project** dal menu di quella sessione, e Claude propone la configurazione del project da quello che la sessione stava facendo. Vedi [Avvia da una sessione cloud esistente](#start-from-an-existing-cloud-session).

84 84 

85In entrambi i casi, [controlla i prerequisiti](#check-the-prerequisites) prima.85In entrambi i casi, [controlla i prerequisiti](#check-the-prerequisites) prima.

86 86 


131 Avvia da una sessione cloud esistente131 Avvia da una sessione cloud esistente

132</h3>132</h3>

133 133 

134Se hai già una sessione cloud che sta facendo lavoro che appartiene a un project, apri il menu della sessione nella barra laterale e scegli **Continue as a project** o **Move to project**:134Se hai già una sessione cloud che sta facendo lavoro che appartiene a un project, apri il menu della sessione nella barra laterale e scegli **Continue as project** o **Move to project**:

135 135 

136* **Continue as a project** crea un nuovo project denominato dopo la sessione e lo apre. Claude legge la sessione e pubblica **Setup recommendations** nella conversazione per te da confermare. La sessione originale rimane nel tuo elenco di sessioni, e se era nel mezzo di un turno continua a funzionare, quindi fermala da solo se non vuoi che entrambi funzionino contemporaneamente. Se usi il banner **Set up project** che può apparire sopra la casella di messaggio della sessione cloud, il risultato è lo stesso, tranne che il turno in esecuzione della sessione si ferma una volta che il project si apre.136* **Continue as project** crea un nuovo project denominato dopo la sessione e lo apre. Claude legge la sessione e pubblica **Setup recommendations** nella conversazione per te da confermare. La sessione originale rimane nel tuo elenco di sessioni, e se era nel mezzo di un turno continua a funzionare, quindi fermala da solo se non vuoi che entrambi funzionino contemporaneamente. Se usi il banner **Set up project** che può apparire sopra la casella di messaggio della sessione cloud, il risultato è lo stesso, tranne che il turno in esecuzione della sessione si ferma una volta che il project si apre.

137* **Move to project** porta il lavoro della sessione in un project esistente. Pubblica un messaggio in quella conversazione del project chiedendo a Claude di leggere la sessione e riprendere da dove l'ha lasciata, e il nuovo lavoro continua nei propri thread del project. La sessione originale rimane nel tuo elenco di sessioni, invariata.137* **Move to project** porta il lavoro della sessione in un project esistente. Pubblica un messaggio in quella conversazione del project chiedendo a Claude di leggere la sessione e riprendere da dove l'ha lasciata, e il nuovo lavoro continua nei propri thread del project. La sessione originale rimane nel tuo elenco di sessioni, invariata.

138 138 

139Una sessione locale non ha queste opzioni. Per continuare il suo lavoro in un project, descrivi il lavoro nella conversazione del project, o esegui il push del suo ramo, aggiungi quel repository al project, e nomina il ramo nel compito.

140 

139<h3 id="set-up-github-access">141<h3 id="set-up-github-access">

140 Configura l'accesso a GitHub142 Configura l'accesso a GitHub

141</h3>143</h3>


159Quando uno di questi passaggi è incompleto, la finestra di dialogo **New project** e la pagina del project denominano il passaggio mancante e collegano a dove lo completi. Completa il passaggio lì, quindi fai clic su **Check again** se la finestra di dialogo lo offre. Se un repository è ancora mancante dall'elenco in seguito, apri l'installazione dell'app Claude GitHub su GitHub, su [github.com/settings/installations](https://github.com/settings/installations) per un account personale, e conferma che il repository è elencato sotto **Repository access**. Per i messaggi di errore che un thread o il project segnala quando l'accesso è ancora sbagliato, vedi [Errori di accesso al repository](#repository-access-errors).161Quando uno di questi passaggi è incompleto, la finestra di dialogo **New project** e la pagina del project denominano il passaggio mancante e collegano a dove lo completi. Completa il passaggio lì, quindi fai clic su **Check again** se la finestra di dialogo lo offre. Se un repository è ancora mancante dall'elenco in seguito, apri l'installazione dell'app Claude GitHub su GitHub, su [github.com/settings/installations](https://github.com/settings/installations) per un account personale, e conferma che il repository è elencato sotto **Repository access**. Per i messaggi di errore che un thread o il project segnala quando l'accesso è ancora sbagliato, vedi [Errori di accesso al repository](#repository-access-errors).

160 162 

161<h2 id="work-in-a-project">163<h2 id="work-in-a-project">

162 Lavora in un project164 Lavora in un progetto

163</h2>165</h2>

164 166 

165Dai a Claude il lavoro attraverso la conversazione del project: compiti uno alla volta o più contemporaneamente, più aggiornamenti e pensieri sciolti mentre si presentano. Claude instrada ogni messaggio, e i thread fanno il lavoro e riportano.167Assegna lavoro a Claude attraverso la conversazione del progetto: attività una alla volta o più contemporaneamente, più aggiornamenti e pensieri sparsi man mano che emergono. Claude instrada ogni messaggio e i thread svolgono il lavoro e riferiscono i risultati.

166 168 

167<h3 id="your-first-batch">169<h3 id="your-first-batch">

168 Il tuo primo batch170 Il tuo primo batch

169</h3>171</h3>

170 172 

171Prima di inviare a un nuovo project un batch di lavoro, configuralo in modo che i primi thread tornino nel modo che vuoi:173Prima di inviare a un nuovo progetto un batch di lavoro, configuralo in modo che i primi thread tornino nel modo che desideri:

172 174 

1731. [Scrivi le istruzioni del project](#write-project-instructions): il briefing da cui ogni thread inizia, come quale branch scegliere come destinazione, come un thread controlla il suo lavoro e cosa ha bisogno della tua approvazione.1751. [Scrivi le istruzioni del progetto](#write-project-instructions): il brief da cui ogni thread inizia, ad esempio quale branch puntare, come un thread verifica il suo lavoro e cosa ha bisogno della tua approvazione.

1742. Invia un piccolo pezzo del lavoro reale, o avvia uno dei thread che Claude ha suggerito se ne ha offerti, e apri il thread quando finisce per vedere come riporta e cosa ha fatto sul suo branch. Se ha assunto qualcosa di sbagliato o non poteva raggiungere quello che aveva bisogno, [I thread hanno indovinato o si sono bloccati invece di chiedere](#threads-guessed-or-stalled-instead-of-asking) copre dove correggere.1762. Invia un piccolo pezzo del lavoro reale, o avvia uno dei thread che Claude ha suggerito se ne ha offerti, e apri il thread quando finisce per vedere come riferisce i risultati e cosa ha fatto sul suo branch. Se ha assunto qualcosa di sbagliato o non ha potuto raggiungere quello di cui aveva bisogno, [I thread hanno indovinato o si sono bloccati invece di chiedere](#threads-guessed-or-stalled-instead-of-asking) copre dove correggere questo.

1753. Controlla **Thread model** e **Thread effort** in **Project settings > General**. Un nuovo project esegue ogni thread su Opus ad alto sforzo, che attinge al tuo piano più velocemente; [Scegli modelli e lascia che Claude gestisca il contesto](#choose-models-and-let-claude-manage-context) copre le alternative.1773. Controlla **Thread model** e **Thread effort** in **Project settings > General**. Un nuovo progetto esegue ogni thread su Opus con sforzo elevato, che consuma il tuo piano più velocemente; [Scegli modelli e lascia che Claude gestisca il contesto](#choose-models-and-let-claude-manage-context) copre le alternative.

1764. Chiedi a Claude di [proporre thread prima di avviarli e di eseguirne pochi contemporaneamente](#tune-how-claude-runs-a-project), e abbassa quei limiti una volta che pochi thread tornano nel modo che vuoi.1784. Chiedi a Claude di [proporre thread prima di avviarli e di eseguirne alcuni contemporaneamente](#tune-how-claude-runs-a-project), e rimuovi quei limiti una volta che alcuni thread tornano nel modo che desideri.

177 179 

178<h3 id="send-work-and-read-results">180<h3 id="send-work-and-read-results">

179 Invia il lavoro e leggi i risultati181 Invia lavoro e leggi i risultati

180</h3>182</h3>

181 183 

182Claude decide dove va ogni messaggio che invii nella conversazione:184Claude decide dove va ogni messaggio che invii nella conversazione:

183 185 

184* Una domanda rapida di solito ottiene una risposta nella conversazione.186* Una domanda veloce di solito riceve una risposta nella conversazione.

185* Il nuovo lavoro va a un nuovo thread o a un thread già al lavoro in quell'area, e Claude ti dice quale. Ogni nuovo thread appare sotto il tuo messaggio come una carta: una scatola con il titolo e lo stato del thread, che fai clic per aprire il thread.187* Il nuovo lavoro va a un nuovo thread o a un thread già al lavoro in quell'area, e Claude ti dice quale. Ogni nuovo thread appare sotto il tuo messaggio come una card: una casella con il titolo e lo stato del thread, che fai clic per aprire il thread.

186* Diversi compiti non correlati in un messaggio diventano thread separati.188* Diversi compiti non correlati in un messaggio diventano thread separati.

187 189 

188Se Claude instrada qualcosa diversamente da come volevi, dillo. [Sintonizza come Claude esegue un project](#tune-how-claude-runs-a-project) elenca le cose che puoi dirgli, come riutilizzare un thread esistente per i follow-up o rispondere sul posto invece di avviare un thread.190Se Claude instrada qualcosa diversamente da come volevi, dillo. [Sintonizza come Claude esegue un progetto](#tune-how-claude-runs-a-project) elenca le cose che puoi dirgli, ad esempio riutilizzare un thread esistente per i follow-up o rispondere al posto di avviare un thread.

189 191 

190I risultati completi di un thread rimangono nel thread, e apri la sua carta nella conversazione per leggerli. I file che un thread ha prodotto sono anche sulla scheda **Library** in **Overview**.192I risultati completi di un thread rimangono nel thread e apri la sua card nella conversazione per leggerli. I file che un thread ha prodotto sono anche nella scheda **Library** in **Overview**.

191 193 

192A volte Claude propone thread invece di avviarli, in un elenco **Suggested threads**. Fai clic sulla freccia su un suggerimento per avviare quel thread. Quando più sono elencati, un pulsante sotto l'elenco avvia tutti loro.194A volte Claude propone thread invece di avviarli, in un elenco **Suggested threads**. Fai clic sulla freccia su un suggerimento per avviare quel thread. Quando diversi sono elencati, un pulsante sotto l'elenco avvia tutti loro.

193 195 

194<h3 id="review-a-thread’s-pull-request">196<h3 id="review-a-thread’s-pull-request">

195 Rivedi la pull request di un thread197 Rivedi la pull request di un thread

196</h3>198</h3>

197 199 

198Quando un thread cambia il codice, questo è quello che fa a meno che tu non gli dica diversamente:200Quando un cloud thread cambia il codice, questo è quello che fa a meno che tu non gli dica diversamente:

199 201 

200* **Branch**: lavora su un nuovo branch, iniziato dal branch predefinito del repository.202* **Branch**: lavora su un nuovo branch, avviato dal branch predefinito del repository.

201* **Pull request**: apre una quando chiedi, e può aprirne una da sola per una correzione di bug o un altro cambiamento concreto.203* **Pull request**: apre una quando chiedi, e può aprirne una da sola per una correzione di bug o un altro cambiamento concreto.

202* **Dopo che si apre**: guarda la pull request con [auto-fix](/docs/it/claude-code-on-the-web#auto-fix-pull-requests) attivato, indipendentemente dal fatto che auto-fix sia attivato per le tue altre sessioni cloud. Spinge correzioni quando CI fallisce, affronta i commenti di revisione, e risponde nel thread quando i controlli passano e la pull request è pronta per te.204* **Dopo che l'apre**: osserva la pull request con [auto-fix](/docs/it/claude-code-on-the-web#auto-fix-pull-requests) attivato, indipendentemente dal fatto che auto-fix sia attivo per le tue altre sessioni cloud. Spinge correzioni quando CI fallisce, affronta i commenti di revisione e risponde nel thread quando i controlli passano e la pull request è pronta per te.

203 205 

204Quando un thread ha spinto un branch o aperto una pull request, la sua carta nella conversazione può mostrare un pulsante per il prossimo passo:206Quando un thread ha spinto un branch o aperto una pull request, la sua card nella conversazione può mostrare un pulsante per il passo successivo:

205 207 

206* **Resolve conflicts**, **Fix CI**, **Address comments**, e **Merge it** inviano quell'istruzione al thread come messaggio da te, quindi puoi spingere il thread da solo invece di aspettare che reagisca alla pull request.208* **Resolve conflicts**, **Fix CI**, **Address comments** e **Merge it** inviano quell'istruzione al thread come messaggio da te, così puoi richiedere il thread stesso invece di aspettare che reagisca alla pull request.

207* **Review PR** apre la pull request su GitHub.209* **Review PR** apre la pull request su GitHub.

208* **Create PR** appare quando un thread inattivo ha spinto un branch ma non ha aperto una pull request. Facendovi clic crei la pull request da quel branch direttamente piuttosto che inviare al thread un'istruzione per aprirne una.210* **Create PR** appare quando un thread inattivo ha spinto un branch ma non ha aperto una pull request. Facendo clic su di esso crea la pull request da quel branch direttamente piuttosto che inviare al thread un'istruzione per aprirne una.

209 211 

210Per cambiare quando i thread aprono le pull request, ad esempio solo quando chiedi, o quale branch iniziano, dillo nel compito o nelle [istruzioni del project](#write-project-instructions).212Per cambiare quando i thread aprono le pull request, ad esempio solo quando chiedi, o quale branch iniziano, dillo nell'attività o nelle [istruzioni del progetto](#write-project-instructions).

211 213 

212<h3 id="see-what-needs-you-in-overview">214<h3 id="see-what-needs-you-in-overview">

213 Vedi cosa ti serve in Overview215 Vedi cosa ha bisogno di te in Overview

214</h3>216</h3>

215 217 

216Il riquadro **Overview** accanto alla conversazione traccia i thread del project. È già aperto la prima volta che apri un nuovo project. Il pulsante **Overview** nell'intestazione del project lo chiude e lo riapre, e mostra un punto quando un thread ti sta aspettando.218Il riquadro **Overview** accanto alla conversazione traccia i thread del progetto. È già aperto la prima volta che apri un nuovo progetto. Il pulsante **Overview** nell'intestazione del progetto lo chiude e lo riapre, e mostra un punto quando un thread è in attesa di te.

217 219 

218Nell'app desktop, ricevi anche una notifica desktop quando Claude pubblica nella conversazione, un thread colpisce un errore, o un thread ha bisogno del tuo input, quindi non devi tenere il project aperto per scoprirlo. Per riceverne anche una ogni volta che un thread finisce un turno, o per disattivarle per un project, scegli **Notifications** nel menu della barra laterale del project. Queste notifiche sono solo desktop: in un browser, controlla il punto sul pulsante **Overview**.220Nell'app desktop, ricevi anche una notifica desktop quando Claude pubblica nella conversazione, un thread raggiunge un errore, o un thread ha bisogno del tuo input, così non devi tenere il progetto aperto per scoprirlo. Per riceverne una anche ogni volta che un thread finisce un turno, o per disattivarle per un progetto, scegli **Notifications** nel menu della barra laterale del progetto. Queste notifiche sono solo desktop: in un browser, controlla il punto sul pulsante **Overview**.

219 221 

220La scheda **Threads** del riquadro raggruppa i thread per stato:222La scheda **Threads** del riquadro raggruppa i thread per stato:

221 223 

222| Gruppo | Cosa c'è dentro |224| Gruppo | Cosa contiene |

223| :- | :- |225| :- | :- |

224| **Ready for review** | Thread la cui pull request è aperta e in attesa di revisione |226| **Ready for review** | Thread la cui pull request è aperta e in attesa di revisione |

225| **Waiting on you** | Thread che hanno bisogno della tua risposta o approvazione, o che hanno fallito |227| **Waiting on you** | Thread che hanno bisogno della tua risposta o approvazione, o che hanno fallito |

226| **Working** | Thread ancora in esecuzione |228| **Working** | Thread ancora in esecuzione |

227| **Landing** | Thread la cui pull request è approvata o in coda per l'unione |229| **Landing** | Thread la cui pull request è approvata o in coda per il merge |

228| **Idle** | Thread che hanno finito e non stanno aspettando nulla |230| **Idle** | Thread che hanno finito e non sono in attesa di nulla |

229| **Resolved** | Thread contrassegnati come fatto: da te dal menu del thread, da Claude una volta che hai preso l'ultimo passo, come unire la sua pull request, o automaticamente dopo una settimana senza attività. Puoi riaprirne uno dallo stesso menu |231| **Resolved** | Thread contrassegnati come completati: da te dal menu del thread, da Claude una volta che hai preso l'ultimo passo, ad esempio unendo la sua pull request, o automaticamente dopo una settimana senza attività. Puoi riaprirne uno dallo stesso menu |

230 232 

231Le altre schede del riquadro sono **Library** per i file e le cartelle che hai aggiunto e i file che i thread hanno prodotto, **Pull requests** una volta che i thread ne hanno aperto, e **Routines** per le [routine](/docs/it/routines) che Claude ha configurato da questo project.233Le altre schede del riquadro sono **Library** per i file e le cartelle che hai aggiunto e i file che i thread hanno prodotto, **Pull requests** una volta che i thread hanno aperto qualcuno, e **Routines** per le [routine](/docs/it/routines) che Claude ha configurato da questo progetto.

232 234 

233<h3 id="open-a-thread-when-you-need-control">235<h3 id="open-a-thread-when-you-need-control">

234 Apri un thread quando hai bisogno di controllo236 Apri un thread quando hai bisogno di controllo

235</h3>237</h3>

236 238 

237Fai clic sulla carta di un thread nella conversazione o sulla sua riga in **Overview** per aprire la sua trascrizione nel riquadro Overview. Da lì puoi:239Fai clic sulla card di un thread nella conversazione o sulla sua riga in **Overview** per aprire la sua trascrizione nel riquadro Overview. Da lì puoi:

238 240 

239* Leggere quello che Claude ha fatto, passo dopo passo.241* Leggere cosa ha fatto Claude, passo dopo passo.

240* Guidare il compito scrivendo nella casella di messaggio del thread. Un messaggio lì va direttamente a quel thread, mentre un follow-up nella conversazione del project lo raggiunge solo quando Claude abbina il follow-up a quel thread.242* Guidare l'attività scrivendo nella casella di messaggio del thread. Un messaggio lì va direttamente a quel thread, mentre un follow-up nella conversazione del progetto lo raggiunge solo quando Claude abbina il follow-up a quel thread.

241* Rispondere a un prompt di permesso su cui il thread sta aspettando.243* Rispondere a un prompt di autorizzazione su cui il thread è in attesa.

242* Interrompere il thread con **Stop**, che sostituisce il pulsante di invio mentre il thread sta funzionando, o premendo Esc.244* Interrompere il thread con **Stop**, che sostituisce il pulsante di invio mentre il thread è al lavoro, o premendo Esc.

243 245 

244<h3 id="choose-models-and-let-claude-manage-context">246<h3 id="choose-models-and-let-claude-manage-context">

245 Scegli modelli e lascia che Claude gestisca il contesto247 Scegli modelli e lascia che Claude gestisca il contesto

246</h3>248</h3>

247 249 

248Imposta modelli e sforzo in **Project settings > General**. Un nuovo project esegue Opus ovunque, con alto [sforzo](/docs/it/model-config#adjust-effort-level) per i thread e basso sforzo per la conversazione:250Imposta modelli e sforzo in **Project settings > General**. Un nuovo progetto esegue Opus ovunque, con [sforzo](/docs/it/model-config#adjust-effort-level) elevato per i thread e sforzo basso per la conversazione:

249 251 

250* **Thread model** e **Thread effort** si applicano ai thread. Per usare un modello diverso per un compito, chiedilo nel compito; per un thread già in esecuzione, usa il selettore di modello di quel thread.252* **Thread model** e **Thread effort** si applicano ai thread. Per usare un modello diverso per un'attività, chiedilo nell'attività; per un thread già in esecuzione, usa il selettore di modello di quel thread.

251* **Coordinator model** e **Coordinator effort** si applicano a Claude nella conversazione del project.253* **Coordinator model** e **Coordinator effort** si applicano a Claude nella conversazione del progetto.

252 254 

253Non gestisci le finestre di contesto in un project. I thread si compattano automaticamente, e la conversazione funziona da messaggi recenti, thread recenti e project memory piuttosto che dalla sua storia completa, quindi continua finché il project funziona. Metti qualsiasi cosa che non deve mai essere eliminata in [project memory](#give-a-project-standing-context). Se un thread supera il suo contesto, mostra [Claude ha esaurito il contesto in questo turno](#context-limit).255Non gestisci le finestre di contesto in un progetto. I thread si compattano automaticamente, e la conversazione funziona da messaggi recenti, thread recenti e memoria del progetto piuttosto che dalla sua storia completa, così continua per tutto il tempo che il progetto è in esecuzione. Metti qualsiasi cosa che non deve mai essere eliminata nella [memoria del progetto](#give-a-project-standing-context). Se un thread supera il suo contesto, mostra [Claude ha esaurito il contesto in questo turno](#context-limit).

254 256 

255<h3 id="tune-how-claude-runs-a-project">257<h3 id="tune-how-claude-runs-a-project">

256 Sintonizza come Claude esegue un project258 Sintonizza come Claude esegue un progetto

257</h3>259</h3>

258 260 

259Dì a Claude nella conversazione quanti thread eseguire contemporaneamente, quando pubblicare aggiornamenti e quando aprire pull request. Se Claude sta coordinando in un modo che non vuoi, dillo. Ad esempio, puoi dire:261Dì a Claude nella conversazione quanti thread eseguire contemporaneamente, quando pubblicare aggiornamenti e quando aprire pull request. Se Claude sta coordinando in un modo che non vuoi, dillo. Ad esempio, puoi dire:


265* "Fai questo compito con un modello più piccolo"267* "Fai questo compito con un modello più piccolo"

266* "Non aprire una pull request finché non ho visto il piano"268* "Non aprire una pull request finché non ho visto il piano"

267* "Dimmi cosa c'è di sbagliato in questi repository e non correggere nulla ancora", quando vuoi esaminare i risultati prima che uno di loro diventi un thread269* "Dimmi cosa c'è di sbagliato in questi repository e non correggere nulla ancora", quando vuoi esaminare i risultati prima che uno di loro diventi un thread

268* "Rispondi qui invece di avviare un thread", quando Claude avvia un thread per qualcosa che intendevi come una domanda rapida270* "Rispondi qui invece di avviare un thread", quando Claude avvia un thread per qualcosa che intendevi come una domanda veloce

269 271 

270Claude salva preferenze come queste in [project memory](#give-a-project-standing-context) da solo e le segue nei thread successivi. Sono istruzioni che Claude segue, non impostazioni applicate, quindi un limite di thread che dai in questo modo non è un limite rigido. Aggiungine uno alle istruzioni del project quando vuoi che sia formulato esattamente e applicato a ogni thread dall'inizio.272Claude salva preferenze come queste nella [memoria del progetto](#give-a-project-standing-context) da solo e le segue nei successivi cloud thread. Sono istruzioni che Claude segue, non impostazioni applicate, quindi un limite di thread che dai in questo modo non è un limite rigido. Aggiungine uno alle istruzioni del progetto quando vuoi che sia formulato esattamente e applicato a ogni thread dall'inizio.

271 273 

272<h3 id="unblock-a-thread-waiting-on-approval">274<h3 id="unblock-a-thread-waiting-on-approval">

273 Sblocca un thread in attesa di approvazione275 Sblocca un thread in attesa di approvazione

274</h3>276</h3>

275 277 

276I thread vengono eseguiti in [auto mode](/docs/it/permission-modes#eliminate-prompts-with-auto-mode) quando il modello del thread lo supporta, quindi la maggior parte delle chiamate di strumento vengono eseguite senza chiederti. Quando un thread ha bisogno della tua approvazione, il prompt è dentro quel thread e il thread aspetta finché non rispondi lì. Dire a Claude nella conversazione del project di procedere non lo raggiunge.278I thread vengono eseguiti in [auto mode](/docs/it/permission-modes#eliminate-prompts-with-auto-mode) quando il modello del thread lo supporta, quindi la maggior parte delle chiamate di strumento vengono eseguite senza chiederti. Quando un thread ha bisogno della tua approvazione, il prompt è dentro quel thread e il thread aspetta finché non rispondi lì. Dire a Claude nella conversazione del progetto di procedere non lo raggiunge.

277 279 

278Ogni approvazione copre quel prompt, o il resto di quel thread se scegli l'opzione più ampia. Per lasciare che ogni thread esegua determinati comandi senza chiedere, o per bloccarne alcuni, aggiungi [regole di permesso](/docs/it/permissions) al `.claude/settings.json` del repository. I thread le applicano solo in un project con un repository; vedi [Cosa i thread raccolgono dai tuoi repository](#what-threads-pick-up-from-your-repositories).280Ogni approvazione copre quel prompt, o il resto di quel thread se scegli l'opzione più ampia. Per consentire a ogni thread di eseguire determinati comandi senza chiedere, o per bloccarne alcuni, aggiungi [regole di autorizzazione](/docs/it/permissions) al `.claude/settings.json` del repository. I cloud thread le applicano solo in un progetto con un repository; vedi [Cosa i thread raccolgono dai tuoi repository](#what-threads-pick-up-from-your-repositories). In un progetto con diversi repository, nessuna regola di autorizzazione del repository raggiunge un cloud thread, quindi fai affidamento su auto mode e sulle approvazioni che dai dentro ogni thread.

279 281 

280<h3 id="run-a-thread-on-your-own-computer">282<h3 id="run-a-thread-on-your-own-computer">

281 Esegui un thread sul tuo computer283 Esegui un thread sul tuo computer

282</h3>284</h3>

283 285 

284Quando un compito ha bisogno di qualcosa che solo il tuo computer ha, come un database locale, un emulatore di dispositivo, o un'API dietro il tuo VPN, chiedi a Claude di eseguire il thread per quel compito sul tuo computer invece che nel cloud. Quando chiedi nella conversazione del project, il thread è una sessione Claude Code in una cartella sulla tua macchina, connessa attraverso [Remote Control](/docs/it/remote-control). Gli altri thread del project continuano a funzionare nel cloud. Rispetto a un thread cloud, un thread sul tuo computer:286Quando un'attività ha bisogno di qualcosa che solo il tuo computer ha, ad esempio un database locale, un emulatore di dispositivo o un'API dietro il tuo VPN, chiedi a Claude di eseguire il thread per quell'attività sul tuo computer invece che nel cloud. Quando chiedi nella conversazione del progetto, il thread è una sessione Claude Code in una cartella sulla tua macchina, connessa tramite [Remote Control](/docs/it/remote-control). Gli altri thread del progetto continuano a essere eseguiti nel cloud. Rispetto a un cloud thread, un thread sul tuo computer:

285 287 

286* Funziona con i file, gli strumenti, i server MCP e le impostazioni Claude Code su quella macchina invece dell'ambiente cloud del project288* Funziona con i file, gli strumenti, i server MCP e le impostazioni di Claude Code su quella macchina, inclusi i suoi hook e le regole di autorizzazione, invece dell'ambiente cloud del progetto

287* Inizia con le istruzioni del project, ma non con i suoi file di memoria caricati289* Inizia con le istruzioni del progetto, ma non con i suoi file di memoria caricati

288* Funziona solo mentre quel computer è sveglio con Remote Control attivato290* Viene eseguito solo mentre quel computer è sveglio con Remote Control attivato

289 291 

290<Steps>292<Steps>

291 <Step title="Connetti la cartella">293 <Step title="Connetti la cartella">

292 Sul computer che ha la cartella di cui il compito ha bisogno, rendila disponibile attraverso Remote Control in uno di due modi. Entrambi hanno bisogno di Claude Code v2.1.280 o successivo su quel computer.294 Sul computer che ha la cartella di cui l'attività ha bisogno, rendila disponibile tramite Remote Control in uno dei due modi. Entrambi hanno bisogno di Claude Code v2.1.280 o successivo su quel computer.

293 295 

294 * **Nell'app desktop Claude**: apri **Settings > Claude Code**, attiva **Use this computer from your phone and claude.ai**, e aggiungi la cartella all'elenco sotto quel switch. I thread possono funzionare su questo computer mentre l'app è aperta.296 * **Nell'app desktop Claude**: apri **Settings > Claude Code**, attiva **Use this computer from your phone and claude.ai**, e aggiungi la cartella all'elenco sotto quel switch. I thread possono essere eseguiti su questo computer mentre l'app è aperta.

295 * **In un terminale**: esegui `claude remote-control` nella cartella e lascialo funzionare.297 * **In un terminale**: esegui `claude remote-control` nella cartella e lascialo in esecuzione. In un repository git, aggiungi `--spawn worktree` per dare a ogni thread lì il suo [worktree](/docs/it/worktrees) invece della cartella stessa.

296 </Step>298 </Step>

297 299 

298 <Step title="Chiedi il compito con Work locally">300 <Step title="Chiedi l'attività con Work locally">

299 Nella conversazione del project, scegli **Work locally** dal menu **+** accanto alla casella di messaggio, che etichetta il tuo messaggio **Local**, e scrivi cosa vuoi che sia fatto. Dire nel messaggio che il compito dovrebbe funzionare sul tuo computer funziona anche.301 Nella conversazione del progetto, scegli **Work locally** dal menu **+** accanto alla casella di messaggio, che etichetta il tuo messaggio **Local**, e scrivi cosa vuoi che sia fatto. Dire nel messaggio che l'attività dovrebbe essere eseguita sul tuo computer funziona anche.

300 </Step>302 </Step>

301 303 

302 <Step title="Consentigli sulla carta">304 <Step title="Consentigli sulla card">

303 Claude risponde con una carta **Allow Claude to work in a folder on your device**. Scegli la cartella se ne hai connesse più di una. Poi fai clic su **Allow once**.305 Claude risponde con una card **Allow Claude to work in a folder on your device**. Scegli la cartella se ne hai connesse diverse. Due thread che lavorano in una cartella contemporaneamente possono sovrascrivere i cambiamenti l'uno dell'altro, quindi se la cartella è un repository git, puoi attivare **Worktree** nelle opzioni della cartella per dare a questo thread il suo worktree invece. Quindi fai clic su **Allow once**.

304 </Step>306 </Step>

305</Steps>307</Steps>

306 308 

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

308 310 

309Mentre il thread funziona, un'icona di laptop nel suo intestazione mostra se il tuo computer è connesso. Fai clic su di essa per vedere quale cartella il thread sta usando o per disattivare la connessione. Il thread si mette in pausa mentre quel computer è addormentato, e si ferma se l'app desktop o `claude remote-control` esce. [Lost contact with your folder](#lost-contact-with-your-folder) copre come farlo funzionare di nuovo. Nell'app desktop, attiva **Keep this computer awake for Remote Control** sotto **Settings > Claude Code** per impedire al computer di addormentarsi da solo.311Mentre il thread è in esecuzione, un'icona del laptop nel suo header mostra se il tuo computer è connesso. Fai clic su di esso per vedere quale cartella il thread sta usando o per disattivare la connessione. Il thread si mette in pausa mentre quel computer è in sospensione, e si ferma se l'app desktop o `claude remote-control` si chiude. [Perso il contatto con la tua cartella](#lost-contact-with-your-folder) copre come farlo funzionare di nuovo. Nell'app desktop, attiva **Keep this computer awake for Remote Control** sotto **Settings > Claude Code** per impedire al computer di andare in sospensione da solo.

310 312 

311Un project non può eseguire un thread sul tuo computer mentre [**Require trusted devices**](/docs/it/remote-control#trusted-devices) è attivato per il tuo account.313Un progetto non può eseguire un thread sul tuo computer mentre [**Require trusted devices**](/docs/it/remote-control#trusted-devices) è attivato per il tuo account.

312 314 

313<h2 id="give-a-project-standing-context">315<h2 id="give-a-project-standing-context">

314 Fornire contesto permanente al progetto316 Fornire contesto permanente al progetto


320| :- | :- | :- |322| :- | :- | :- |

321| Memoria del progetto | Note che Claude mantiene sul progetto, come requisiti, decisioni e insidie, archiviate come file. Ogni thread cloud legge il file di indice `MEMORY.md` quando inizia e apre gli altri file quando ne ha bisogno | Chiedi a Claude nella conversazione del progetto o in qualsiasi thread cloud di ricordare un requisito, una decisione o un'insidia, oppure di dimenticarla. Leggi, modifica ed elimina i file in **Project settings > Memory** |323| Memoria del progetto | Note che Claude mantiene sul progetto, come requisiti, decisioni e insidie, archiviate come file. Ogni thread cloud legge il file di indice `MEMORY.md` quando inizia e apre gli altri file quando ne ha bisogno | Chiedi a Claude nella conversazione del progetto o in qualsiasi thread cloud di ricordare un requisito, una decisione o un'insidia, oppure di dimenticarla. Leggi, modifica ed elimina i file in **Project settings > Memory** |

322| Istruzioni del progetto | Testo inviato a ogni nuovo thread e a Claude nella conversazione del progetto, fino a 16.000 caratteri. [Write project instructions](#write-project-instructions) copre cosa inserirvi | **Project settings > Memory > Project instructions**, oppure chiedi a Claude di modificare le istruzioni |324| Istruzioni del progetto | Testo inviato a ogni nuovo thread e a Claude nella conversazione del progetto, fino a 16.000 caratteri. [Write project instructions](#write-project-instructions) copre cosa inserirvi | **Project settings > Memory > Project instructions**, oppure chiedi a Claude di modificare le istruzioni |

323| Repository, file e ambiente | I repository che ogni thread cloud clona, le cartelle e i file che può leggere in `/mnt/project-files`, e l'ambiente cloud in cui vengono eseguiti i thread | Repository e ambiente in **Project settings > Environment**, oppure chiedi a Claude nella conversazione di aggiungere un repository al progetto. File e cartelle da **Add** nella scheda **Library** in **Overview** |325| Repository, file e ambiente | I repository che ogni thread cloud clona, le cartelle e i file che può leggere in `/mnt/project-files`, e l'ambiente cloud in cui vengono eseguiti i thread | Repository e ambiente in **Project settings > Environment**, oppure chiedi a Claude nella conversazione di aggiungere un repository al progetto. [File e cartelle](#add-files-and-folders) da **Add** nella scheda **Library** in **Overview** |

324 326 

325**Project settings > Memory** elenca questi file in **Auto memory**, perché Claude li scrive da solo mentre lavora nel progetto. Sono separati dall'[auto memory](/docs/it/memory) che Claude Code mantiene sulla tua macchina, anche se entrambi utilizzano un indice `MEMORY.md`. La memoria del progetto è anche separata dai file `CLAUDE.md` nei repository del progetto. Ogni thread cloud legge comunque quei file `CLAUDE.md` dal suo clone quando inizia, quindi inserisci le istruzioni su un repository nel suo `CLAUDE.md` e le note sul progetto nella memoria del progetto.327**Project settings > Memory** elenca questi file in **Auto memory**, perché Claude li scrive da solo mentre lavora nel progetto. Sono separati dall'[auto memory](/docs/it/memory) che Claude Code mantiene sulla tua macchina, anche se entrambi utilizzano un indice `MEMORY.md`. La memoria del progetto è anche separata dai file `CLAUDE.md` nei repository del progetto. Ogni thread cloud legge comunque quei file `CLAUDE.md` dal suo clone quando inizia, quindi inserisci le istruzioni su un repository nel suo `CLAUDE.md` e le note sul progetto nella memoria del progetto.

326 328 


364 366 

365Per un progetto che si estende su molti repository, come una funzionalità con codice server, web, mobile e desktop, aggiungi uno o due repository che quasi ogni compito tocca e nomina gli altri nelle [istruzioni del progetto](#write-project-instructions) in modo che Claude sappia dove vive il resto del codice. I thread iniziano quindi in piccolo e tirano in gli altri repository solo per i compiti che ne hanno bisogno.367Per un progetto che si estende su molti repository, come una funzionalità con codice server, web, mobile e desktop, aggiungi uno o due repository che quasi ogni compito tocca e nomina gli altri nelle [istruzioni del progetto](#write-project-instructions) in modo che Claude sappia dove vive il resto del codice. I thread iniziano quindi in piccolo e tirano in gli altri repository solo per i compiti che ne hanno bisogno.

366 368 

369<h3 id="add-files-and-folders">

370 Aggiungi file e cartelle

371</h3>

372 

373Aggiungi i file e le cartelle che desideri che i thread leggano nel campo **Context** della finestra di dialogo **New project**, oppure successivamente con **Add** nella scheda **Library** in **Overview**. Questi limiti si applicano a ciò che aggiungi:

374 

375* **Scheda Library**: fino a 100 file e 2 GB in una selezione, con un singolo file fino a 480 MB.

376* **Finestra di dialogo New project**: i file superiori a 30 MB vengono saltati, quindi aggiungi file più grandi dalla scheda **Library** dopo aver creato il progetto.

377* **Cartelle**: quando aggiungi una cartella da uno dei due posti, il progetto riceve una copia dei suoi primi 100 file fino a 200 MB, senza alcun file superiore a 30 MB, file nascosti o `node_modules`. Un progetto contiene fino a 10 cartelle e cartelle Google Drive combinate, e i singoli file non contano verso quel limite.

378* **Modifiche dopo il caricamento**: i caricamenti sono copie, quindi una modifica che fai sul tuo computer in seguito non raggiunge il progetto fino a quando non carichi di nuovo il file e scegli **Replace** quando ti viene chiesto del nome esistente.

379 

367<h3 id="what-threads-pick-up-from-your-repositories">380<h3 id="what-threads-pick-up-from-your-repositories">

368 Cosa i thread prendono dai tuoi repository381 Cosa i thread prendono dai tuoi repository

369</h3>382</h3>


472Diverse funzioni Claude Code permettono a più di una sessione di funzionare contemporaneamente, quindi eseguire il lavoro in parallelo non è di per sé quello per cui è un project. In un project, Claude avvia e traccia le sessioni invece di te, e ognuno inizia dalle stesse istruzioni. Ecco come ogni funzione vicina si connette a un project:485Diverse funzioni Claude Code permettono a più di una sessione di funzionare contemporaneamente, quindi eseguire il lavoro in parallelo non è di per sé quello per cui è un project. In un project, Claude avvia e traccia le sessioni invece di te, e ognuno inizia dalle stesse istruzioni. Ecco come ogni funzione vicina si connette a un project:

473 486 

474* **Claude Tag**: [Claude Tag](https://claude.com/docs/claude-tag/overview) è Claude nei canali Slack del tuo team, su piani Team e Enterprise. Chiunque in un canale può dargli lavoro, tutti nel canale lo vedono e lo guidano, e usa connessioni che un admin ha configurato per quel canale. Un project è solo tuo: sei l'unico che gli invia lavoro o vede i suoi thread, usa il tuo accesso GitHub e i tuoi connectors, ed è su Pro e Max. [Come Claude Tag differisce da Cowork e Claude Code](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code) ha il confronto fianco a fianco.487* **Claude Tag**: [Claude Tag](https://claude.com/docs/claude-tag/overview) è Claude nei canali Slack del tuo team, su piani Team e Enterprise. Chiunque in un canale può dargli lavoro, tutti nel canale lo vedono e lo guidano, e usa connessioni che un admin ha configurato per quel canale. Un project è solo tuo: sei l'unico che gli invia lavoro o vede i suoi thread, usa il tuo accesso GitHub e i tuoi connectors, ed è su Pro e Max. [Come Claude Tag differisce da Cowork e Claude Code](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code) ha il confronto fianco a fianco.

475* **Sessioni cloud**: ogni thread è una [sessione cloud](/docs/it/claude-code-on-the-web) a meno che non chiedi a Claude di eseguirla sulla tua macchina. In entrambi i casi, Claude la avvia e la traccia invece di te. Una sessione cloud che hai avviato da solo può diventare un project o alimentarne uno attraverso [**Continue as a project** o **Move to project**](#start-from-an-existing-cloud-session).488* **Sessioni cloud**: ogni thread è una [sessione cloud](/docs/it/claude-code-on-the-web) a meno che non chiedi a Claude di eseguirla sulla tua macchina. In entrambi i casi, Claude la avvia e la traccia invece di te. Una sessione cloud che hai avviato da solo può diventare un project o alimentarne uno attraverso [**Continue as project** o **Move to project**](#start-from-an-existing-cloud-session).

476* **Routine**: quando chiedi il lavoro programmato in un project, Claude crea una [routine](/docs/it/routines) che viene eseguita come thread in quel project e appare sulla sua scheda **Routines**. Le routine che crei al di fuori di un project continuano a funzionare da sole.489* **Routine**: quando chiedi il lavoro programmato in un project, Claude crea una [routine](/docs/it/routines) che viene eseguita come thread in quel project e appare sulla sua scheda **Routines**. Le routine che crei al di fuori di un project continuano a funzionare da sole.

477* **Remote Control**: [Remote Control](/docs/it/remote-control) connette claude.ai a una sessione Claude Code in esecuzione sulla tua macchina. Quando chiedi a Claude in un project di eseguire un thread sul tuo computer, il project [usa Remote Control per farlo](#run-a-thread-on-your-own-computer).490* **Remote Control**: [Remote Control](/docs/it/remote-control) connette claude.ai a una sessione Claude Code in esecuzione sulla tua macchina. Quando chiedi a Claude in un project di eseguire un thread sul tuo computer, il project [usa Remote Control per farlo](#run-a-thread-on-your-own-computer).

478* **Sessioni locali e agent view**: una sessione che avvii da solo nel tuo terminale, IDE o nell'ambiente locale dell'app desktop non può essere aggiunta a un project. [Agent view](/docs/it/agent-view) è una schermata per tracciare diverse sessioni locali fianco a fianco, e tu avvii ancora ognuna e le dai il suo compito da solo.491* **Sessioni locali e agent view**: una sessione che avvii da solo nel tuo terminale, IDE o nell'ambiente locale dell'app desktop non può essere aggiunta a un project. [Agent view](/docs/it/agent-view) è una schermata per tracciare diverse sessioni locali fianco a fianco, e tu avvii ancora ognuna e le dai il suo compito da solo.

479* **Worktrees**: un [worktree](/docs/it/worktrees) dà a ogni sessione locale la sua copia di lavoro di un repository in modo che le sessioni parallele sulla tua macchina non si sovrascrivano a vicenda. I thread cloud non ne hanno bisogno: ognuno clona i suoi repository nella sua sandbox cloud e lavora sul suo branch.492* **Worktrees**: un [worktree](/docs/it/worktrees) dà a ogni sessione locale la sua copia di lavoro di un repository in modo che le sessioni parallele sulla tua macchina non si sovrascrivano a vicenda. I thread cloud non ne hanno bisogno: ognuno clona i suoi repository nella sua sandbox cloud e lavora sul suo branch.

480* **Agent teams**: un [agent team](/docs/it/agent-teams) è una sessione che avvia sessioni di compagno per un singolo compito, sulla tua macchina o dentro una sessione cloud, e finisce con quel compito.493* **Agent teams**: un [agent team](/docs/it/agent-teams) è una sessione che avvia sessioni di compagno per un singolo compito, sulla tua macchina o dentro una sessione cloud, e finisce con quel compito.

494* **Subagents**: un [subagent](/docs/it/sub-agents) viene eseguito dentro una sessione, esegue un compito secondario nella sua finestra di contesto propria, e restituisce un riepilogo a quella sessione. I thread di un project sono sessioni intere che Claude avvia e che riferiscono di nuovo alla conversazione del project, e un thread può comunque usare subagent per i suoi propri compiti secondari.

481* **Projects in claude.ai chat e Cowork**: l'[esperienza Projects precedente](https://support.claude.com/en/articles/9517075-what-are-projects), che raggruppa conversazioni e file di riferimento senza thread o un coordinatore. Questi project continuano a funzionare come fanno oggi fino a quando l'esperienza riprogettata li raggiunge.495* **Projects in claude.ai chat e Cowork**: l'[esperienza Projects precedente](https://support.claude.com/en/articles/9517075-what-are-projects), che raggruppa conversazioni e file di riferimento senza thread o un coordinatore. Questi project continuano a funzionare come fanno oggi fino a quando l'esperienza riprogettata li raggiunge.

482 496 

483[Esegui agenti in parallelo](/docs/it/agents) confronta queste opzioni fianco a fianco.497[Esegui agenti in parallelo](/docs/it/agents) confronta queste opzioni fianco a fianco.


486 Limitazioni500 Limitazioni

487</h2>501</h2>

488 502 

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

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

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

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

493* Un project appartiene a un utente. Non puoi condividere un project o i suoi thread con un altro utente, e le trascrizioni dei thread non hanno l'opzione di condivisione che hanno altre sessioni cloud. Non ci sono controlli a livello di organizzazione per i project durante la beta.507* Un project appartiene a un utente. Non puoi condividere un project o i suoi thread con un altro utente, e le trascrizioni dei thread non hanno l'opzione di condivisione che hanno altre sessioni cloud. Non ci sono controlli a livello di organizzazione per i project durante la beta.

494* Un thread appartiene all'unico project che l'ha avviato. Non puoi spostare o copiare un thread in un altro project, o spostarlo fuori per stare da solo. [**Move to project**](#start-from-an-existing-cloud-session) va solo nell'altro modo: porta il lavoro di una sessione cloud in un project.508* Un thread appartiene all'unico project che l'ha avviato. Non potete spostare o copiare un thread in un altro project, o spostarlo fuori per stare da solo. [**Move to project**](#start-from-an-existing-cloud-session) va solo nell'altro modo: porta il lavoro di una sessione cloud in un project. Non potete unire due project in uno.

495 509 

496<h2 id="troubleshooting">510<h2 id="troubleshooting">

497 Risoluzione dei problemi511 Risoluzione dei problemi

claude-security.md +23 −10

Details

4 4 

5# Scansiona il tuo codebase per le vulnerabilità5# Scansiona il tuo codebase per le vulnerabilità

6 6 

7> Installa il plugin Claude Security per scansionare il tuo codebase alla ricerca di vulnerabilità in una sessione Claude Code e trasforma i risultati in patch che esamini e applichi.7> Installa il Claude Security plugin per scansionare il tuo codebase alla ricerca di vulnerabilità in una sessione Claude Code e trasforma i risultati in patch che esamini e applichi.

8 8 

9Il plugin Claude Security esegue una scansione multi-agente delle vulnerabilità del tuo codebase all'interno di una sessione Claude Code. Un team di agenti Claude mappa la tua architettura, costruisce un modello di minaccia, ricerca le vulnerabilità e esamina indipendentemente ogni risultato prima di scrivere il rapporto. Utilizza il plugin per scansionare un intero repository o [solo un set di modifiche](#scan-only-your-changes), come il diff di un branch, il diff di una pull request o un singolo commit, quindi trasforma i risultati che scegli in patch che esamini e applichi tu stesso.9Il Claude Security plugin esegue una scansione multi-agente delle vulnerabilità del tuo codebase all'interno di una sessione Claude Code. Un team di agenti Claude mappa la tua architettura, costruisce un modello di minaccia, ricerca le vulnerabilità e esamina in modo indipendente ogni risultato prima di scrivere il rapporto. Utilizza il plugin per scansionare un intero repository o [solo un set di modifiche](#scan-only-your-changes), come il diff di un branch, il diff di una pull request o un singolo commit, quindi trasforma i risultati che scegli in patch che esamini e applichi tu stesso.

10 10 

11Il plugin viene eseguito localmente nella tua sessione, utilizza i modelli a cui hai accesso in Claude Code, e ogni scansione conta rispetto ai limiti di utilizzo del tuo piano. Se desideri un servizio gestito che monitori i tuoi repository, o desideri eseguire scansioni su [Claude Mythos 5](https://platform.claude.com/docs/en/about-claude/models/introducing-claude-fable-5-and-claude-mythos-5), consulta il prodotto [Claude Security](https://claude.com/product/claude-security), disponibile nel piano Enterprise. Il plugin raggiunge il codice che il prodotto gestito non può raggiungere, come i repository ospitati su GitLab o Bitbucket, o su reti che non consentono connessioni in entrata.11Il plugin viene eseguito localmente nella tua sessione, utilizza [qualsiasi modello tu abbia accesso in Claude Code](#models-and-providers), e ogni scansione conta verso il tuo [utilizzo](/docs/it/costs). Se desideri un servizio gestito che monitori i tuoi repository, o desideri eseguire scansioni su [Claude Mythos](https://platform.claude.com/docs/en/about-claude/models/introducing-claude-fable-5-and-claude-mythos-5), consulta il prodotto [Claude Security](https://claude.com/product/claude-security), disponibile nel piano Enterprise. Il plugin raggiunge il codice che il prodotto gestito non può raggiungere, come i repository ospitati su GitLab o Bitbucket, o su reti che non consentono connessioni in entrata.

12 12 

13Il plugin è anche distinto dagli strumenti di revisione già presenti in Claude Code: il [plugin security guidance](/docs/it/security-guidance) esamina il codice mentre Claude lo scrive, [`/security-review`](/docs/it/commands#all-commands) esegue un singolo passaggio sul tuo branch, e [Code Review](/docs/it/code-review) esamina le pull request. Per capire come i livelli si sovrappongono, consulta [Come il plugin si integra con altri strumenti di sicurezza](#how-the-plugin-fits-with-other-security-tools).13Il plugin è anche distinto dagli strumenti di revisione già presenti in Claude Code: il [plugin di guida sulla sicurezza](/docs/it/security-guidance) esamina il codice mentre Claude lo scrive, [`/security-review`](/docs/it/commands#all-commands) esegue un singolo passaggio sul tuo branch, e [Code Review](/docs/it/code-review) esamina le pull request. Per come i livelli si sovrappongono, consulta [Come il plugin si integra con altri strumenti di sicurezza](#how-the-plugin-fits-with-other-security-tools).

14 14 

15<h2 id="prerequisites">15<h2 id="prerequisites">

16 Prerequisiti16 Prerequisiti

17</h2>17</h2>

18 18 

19Per eseguire il plugin, hai bisogno di:19Per eseguire il plugin, è necessario:

20 20 

21* Un piano a pagamento, per i [dynamic workflows](/docs/it/workflows) che la scansione utilizza per orchestrare i suoi agenti. Su Pro, attivali dalla riga Dynamic workflows in `/config`.21* Un piano a pagamento, accesso all'API Anthropic, o un [provider di terze parti](#models-and-providers), per i [flussi di lavoro dinamici](/docs/it/workflows) che la scansione utilizza per orchestrare i suoi agenti. Su Pro, attivateli dalla riga Dynamic workflows in `/config`.

22* Python 3.9 o successivo disponibile nel tuo `PATH` come `python3`. Verifica con `python3 --version`. Gli strumenti del plugin utilizzano solo la libreria standard di Python, quindi non viene installato nulla.22* Python 3.9 o versione successiva disponibile nel vostro `PATH` come `python3`. Verificate con `python3 --version`. Gli strumenti del plugin utilizzano solo la libreria standard di Python, quindi non viene installato nulla.

23* Linux, macOS o Windows.23* Linux, macOS, o Windows.

24* Git, per le scansioni di modifiche e per trasformare i risultati in patch; questi lavori non supportano altri sistemi di controllo versione. Una scansione completa funziona in qualsiasi directory, con o senza controllo versione.24* Git, per le scansioni delle modifiche e per trasformare i risultati in patch; questi lavori non supportano altri sistemi di controllo versione. Una scansione completa funziona in qualsiasi directory, con o senza controllo versione.

25 

26<h2 id="models-and-providers">

27 Models and providers

28</h2>

29 

30Una scansione viene eseguita all'interno della sessione Claude Code. Il plugin non effettua chiamate di modello proprie, quindi non c'è una chiave API separata o un'impostazione del provider da configurare.

31 

32* **Model**: gli agenti che cercano vulnerabilità, verificano i risultati e scrivono e revisionano le patch vengono eseguiti su [il modello della sessione](/docs/it/sub-agents#choose-a-model). Per modificarlo, esegui [`/model`](/docs/it/model-config#setting-your-model) nella sessione prima di avviare una scansione. Alcuni passaggi di supporto, come la mappatura del repository, utilizzano invece l'[alias `sonnet`](/docs/it/model-config#model-aliases).

33* **Provider**: le scansioni vengono eseguite su un piano a pagamento, con accesso all'API Anthropic, o su un [provider di terze parti](/docs/it/third-party-integrations) come [Amazon Bedrock](/docs/it/amazon-bedrock), [Google Cloud's Agent Platform](/docs/it/google-vertex-ai), o [Microsoft Foundry](/docs/it/microsoft-foundry).

34 

35Su un provider di terze parti, l'alias `sonnet` può risolvere a una versione diversa rispetto a quella dell'API Anthropic. Se il tuo account non può utilizzare quella versione, [fissa le versioni del modello](/docs/it/model-config#pin-models-for-third-party-deployments), incluso `ANTHROPIC_DEFAULT_SONNET_MODEL`.

36 

37[Automatic model fallback](/docs/it/model-config#automatic-model-fallback) riesegue una richiesta che i meccanismi di sicurezza di un modello contrassegnano. Su Amazon Bedrock, Google Cloud's Agent Platform e Microsoft Foundry, la richiesta può terminare con un messaggio di rifiuto, a seconda di [come è configurata la distribuzione](/docs/it/model-config#enable-fallback-on-bedrock-agent-platform-and-foundry).

25 38 

26<h2 id="install-the-plugin">39<h2 id="install-the-plugin">

27 Installa il plugin40 Installa il plugin


156 169 

157**Il menu `/claude-security` si apre con un avviso Python.** Il plugin ha bisogno di `python3` 3.9 o successivo nel tuo `PATH`. Quando non riesce a trovare `python3` affatto, il menu avverte che Claude Security non funzionerà finché uno non viene installato; quando il primo `python3` nel tuo `PATH` è più vecchio, l'avviso nomina la versione che ha trovato. Installa Python 3, o metti un `python3` più recente per primo nel tuo `PATH`, quindi avvia una nuova sessione.170**Il menu `/claude-security` si apre con un avviso Python.** Il plugin ha bisogno di `python3` 3.9 o successivo nel tuo `PATH`. Quando non riesce a trovare `python3` affatto, il menu avverte che Claude Security non funzionerà finché uno non viene installato; quando il primo `python3` nel tuo `PATH` è più vecchio, l'avviso nomina la versione che ha trovato. Installa Python 3, o metti un `python3` più recente per primo nel tuo `PATH`, quindi avvia una nuova sessione.

158 171 

159**Potresti vedere un avviso "safeguards flagged this message" quando esegui la scansione su un modello Fable.** Il messaggio nomina il modello, ad esempio "I safeguards di Fable 5.1 hanno contrassegnato questo messaggio". I classificatori di sicurezza della cibersicurezza di Fable contrassegnano determinate richieste, e Claude Code riesegue una richiesta contrassegnata su un modello Opus attraverso il [fallback automatico del modello](/docs/it/model-config#automatic-model-fallback). Questo è previsto, e la scansione dovrebbe comunque completarsi con successo.172**Potresti vedere un avviso "safeguards flagged this message" quando esegui la scansione su un modello Fable.** Il messaggio nomina il modello che stai eseguendo. I classificatori di sicurezza della cibersicurezza di Fable contrassegnano determinate richieste, e Claude Code riesegue una richiesta contrassegnata su un modello Opus attraverso il [fallback automatico del modello](/docs/it/model-config#automatic-model-fallback). Questo è previsto. Quando la richiesta viene rieseguita, la scansione dovrebbe comunque completarsi con successo.

160 173 

161<h2 id="related-resources">174<h2 id="related-resources">

162 Risorse correlate175 Risorse correlate

Details

22| `claude -c -p "query"` | Continua tramite SDK | `claude -c -p "Check for type errors"` |22| `claude -c -p "query"` | Continua tramite SDK | `claude -c -p "Check for type errors"` |

23| `claude -r "<session>" "query"` | Riprendi sessione per ID o nome | `claude -r "auth-refactor" "Finish this PR"` |23| `claude -r "<session>" "query"` | Riprendi sessione per ID o nome | `claude -r "auth-refactor" "Finish this PR"` |

24| `claude update` | Aggiorna alla versione più recente | `claude update` |24| `claude update` | Aggiorna alla versione più recente | `claude update` |

25| `claude gateway` | Avvia il server [gateway di app Claude](/docs/it/claude-apps-gateway) auto-ospitato, per gli amministratori che distribuiscono SSO e policy davanti a Claude Code su Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry. Richiede `--config` che punta a un [`gateway.yaml`](/docs/it/claude-apps-gateway-config). Disponibile in Claude Code v2.1.195 e successivo. | `claude gateway --config gateway.yaml` |25| `claude gateway` | Avvia il server [gateway di app Claude](/docs/it/claude-apps-gateway) auto-ospitato, per gli amministratori che distribuiscono SSO e policy davanti a Claude Code su Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry. Richiede `--config` che punta a un [`gateway.yaml`](/docs/it/claude-apps-gateway-config). | `claude gateway --config gateway.yaml` |

26| `claude install [version]` | Installa o reinstalla il binario nativo. Accetta una versione come `2.1.118`, oppure `stable` o `latest`. Vedi [Installa una versione specifica](/docs/it/setup#install-a-specific-version) | `claude install stable` |26| `claude install [version]` | Installa o reinstalla il binario nativo. Accetta una versione come `2.1.118`, oppure `stable` o `latest`. Vedi [Installa una versione specifica](/docs/it/setup#install-a-specific-version) | `claude install stable` |

27| `claude auth login` | Accedi al tuo account Anthropic. Usa `--email` per pre-compilare il tuo indirizzo email, `--sso` per forzare l'autenticazione SSO e `--console` per accedere con Anthropic Console per la fatturazione dell'utilizzo dell'API invece di un abbonamento Claude | `claude auth login --console` |27| `claude auth login` | Accedi al tuo account Anthropic. Usa `--email` per pre-compilare il tuo indirizzo email, `--sso` per forzare l'autenticazione SSO e `--console` per accedere con Anthropic Console per la fatturazione dell'utilizzo dell'API invece di un abbonamento Claude | `claude auth login --console` |

28| `claude auth logout` | Esci dal tuo account Anthropic | `claude auth logout` |28| `claude auth logout` | Esci dal tuo account Anthropic | `claude auth logout` |

Details

566 * platform.claude.com566 * platform.claude.com

567 * code.claude.com567 * code.claude.com

568 * claude.ai568 * claude.ai

569 * claude.com

570 * support.claude.com

571 * anthropic.com

572 * [www.anthropic.com](http://www.anthropic.com)

569 </Accordion>573 </Accordion>

570 574 

571 <Accordion title="Controllo versione">575 <Accordion title="Controllo versione">


596 * hub.docker.com600 * hub.docker.com

597 * [www.docker.com](http://www.docker.com)601 * [www.docker.com](http://www.docker.com)

598 * production.cloudflare.docker.com602 * production.cloudflare.docker.com

603 * production.cloudfront.docker.com

599 * download.docker.com604 * download.docker.com

600 * gcr.io605 * gcr.io

601 * \*.gcr.io606 * \*.gcr.io

commands.md +6 −3

Details

56| `/add-dir <path>` | Aggiungere una directory di lavoro per l'accesso ai file durante la sessione corrente. Digitate un percorso parziale per vedere i suggerimenti di directory corrispondenti; premete `Tab` per accettarne uno. La maggior parte della configurazione `.claude/` [non viene scoperta](/docs/it/permissions#additional-directories-grant-file-access-not-configuration) dalla directory aggiunta. Non potete aggiungere la maggior parte dei [percorsi di rete](/docs/it/errors#working-directory-is-a-network-path), come `\\server\share`. Dopo un'aggiunta riuscita, vengono eseguiti i vostri [`DirectoryAdded` hooks](/docs/it/hooks#directoryadded). Quando lo eseguite mentre Claude sta rispondendo, Claude Code vi chiede di confermare la directory subito, e una volta confermata, la prossima chiamata di strumento di Claude nello stesso turno può accedervi. Prima della v2.1.234, Claude Code metteva in coda il comando fino al termine del turno |56| `/add-dir <path>` | Aggiungere una directory di lavoro per l'accesso ai file durante la sessione corrente. Digitate un percorso parziale per vedere i suggerimenti di directory corrispondenti; premete `Tab` per accettarne uno. La maggior parte della configurazione `.claude/` [non viene scoperta](/docs/it/permissions#additional-directories-grant-file-access-not-configuration) dalla directory aggiunta. Non potete aggiungere la maggior parte dei [percorsi di rete](/docs/it/errors#working-directory-is-a-network-path), come `\\server\share`. Dopo un'aggiunta riuscita, vengono eseguiti i vostri [`DirectoryAdded` hooks](/docs/it/hooks#directoryadded). Quando lo eseguite mentre Claude sta rispondendo, Claude Code vi chiede di confermare la directory subito, e una volta confermata, la prossima chiamata di strumento di Claude nello stesso turno può accedervi. Prima della v2.1.234, Claude Code metteva in coda il comando fino al termine del turno |

57| `/advisor [model\|off]` | Abilitare o disabilitare lo [strumento advisor](/docs/it/advisor), che consulta un secondo modello per una guida nei momenti chiave durante un'attività. Accetta `fable`, `opus`, `sonnet`, o un ID modello completo. `fable` richiede l'[accesso a Fable](/docs/it/advisor#choose-an-advisor-model). Senza un argomento, apre un selettore. In una sessione senza un terminale interattivo, o su [Remote Control](/docs/it/remote-control#limitations), passate il modello o `off` come argomento; senza argomento lì, il comando stampa l'advisor corrente come testo. Questi moduli richiedono Claude Code v2.1.260 o successivo |57| `/advisor [model\|off]` | Abilitare o disabilitare lo [strumento advisor](/docs/it/advisor), che consulta un secondo modello per una guida nei momenti chiave durante un'attività. Accetta `fable`, `opus`, `sonnet`, o un ID modello completo. `fable` richiede l'[accesso a Fable](/docs/it/advisor#choose-an-advisor-model). Senza un argomento, apre un selettore. In una sessione senza un terminale interattivo, o su [Remote Control](/docs/it/remote-control#limitations), passate il modello o `off` come argomento; senza argomento lì, il comando stampa l'advisor corrente come testo. Questi moduli richiedono Claude Code v2.1.260 o successivo |

58| `/agents` | A partire dalla v2.1.198, l'esecuzione di `/agents` stampa un promemoria per chiedere a Claude di creare o gestire [subagent](/docs/it/sub-agents), o di modificare direttamente `.claude/agents/` o `~/.claude/agents/`. Sulla v2.1.197 e precedenti, apre un'interfaccia interattiva per creare e gestire configurazioni di subagent |58| `/agents` | A partire dalla v2.1.198, l'esecuzione di `/agents` stampa un promemoria per chiedere a Claude di creare o gestire [subagent](/docs/it/sub-agents), o di modificare direttamente `.claude/agents/` o `~/.claude/agents/`. Sulla v2.1.197 e precedenti, apre un'interfaccia interattiva per creare e gestire configurazioni di subagent |

59| `/artifact-capabilities` | **[Skill](/docs/it/skills#bundled-skills).** Caricare il riferimento per le capacità di runtime che un [artifact](/docs/it/artifacts) pubblicato può utilizzare, come [chiamare i vostri connettori](/docs/it/artifacts#pull-live-data-with-mcp-connectors) o [offrire un download di file](/docs/it/artifacts#offer-a-file-download), inclusi quelli che il vostro account ha. Claude normalmente lo carica autonomamente prima di costruire una pagina che ne utilizza uno. Disponibile dove gli [artifact](/docs/it/artifacts#availability) sono disponibili |

60| `/artifact-diagramming` | **[Skill](/docs/it/skills#bundled-skills).** Caricare la guida ai diagrammi per Claude da seguire negli [artifact](/docs/it/artifacts): quando un diagramma aiuta, cosa disegnare e come scrivere SVG inline che rimane leggibile nei temi chiari e scuri. Richiede Claude Code v2.1.221 o successivo |

59| `/artifacts` | Elencare gli [artifact](/docs/it/artifacts#find-an-artifact-again) che possedete o che sono condivisi con voi, quindi allegarne uno alla sessione, aprirlo nel vostro browser, o copiarne il link. Disponibile dove gli [artifact](/docs/it/artifacts#availability) sono disponibili. Richiede Claude Code v2.1.208 o successivo; l'allegamento con `Enter` richiede v2.1.216 |61| `/artifacts` | Elencare gli [artifact](/docs/it/artifacts#find-an-artifact-again) che possedete o che sono condivisi con voi, quindi allegarne uno alla sessione, aprirlo nel vostro browser, o copiarne il link. Disponibile dove gli [artifact](/docs/it/artifacts#availability) sono disponibili. Richiede Claude Code v2.1.208 o successivo; l'allegamento con `Enter` richiede v2.1.216 |

60| `/auto-mode-setup` | [Bozza di voci `autoMode.environment`](/docs/it/auto-mode-config#generate-environment-entries) dal vostro progetto e dalle sessioni recenti, quindi rivedete la bozza e salvatela nelle impostazioni utente. Richiede un piano Pro, Max o Team e Claude Code v2.1.228 o successivo. Su Windows nativo, richiede v2.1.233 o successivo |62| `/auto-mode-setup` | [Bozza di voci `autoMode.environment`](/docs/it/auto-mode-config#generate-environment-entries) dal vostro progetto e dalle sessioni recenti, quindi rivedete la bozza e salvatela nelle impostazioni utente. Richiede un piano Pro, Max o Team e Claude Code v2.1.228 o successivo. Su Windows nativo, richiede v2.1.233 o successivo |

61| `/autocompact [auto\|<tokens>]` | Impostare la finestra auto-compact: quanto piena diventa la finestra di contesto prima che Claude Code compatti automaticamente. Passate una dimensione come `500k`, o `auto` per tornare alla finestra ottimizzata per il vostro modello. Claude Code salva il valore nelle impostazioni utente e lo applica alla sessione corrente. Consultate [Impostare la finestra auto-compact](/docs/it/model-config#set-the-auto-compact-window) per i valori accettati e cosa lo sostituisce. Senza un argomento, apre una finestra di dialogo che mostra la finestra corrente. Richiede Claude Code v2.1.221 o successivo |63| `/autocompact [auto\|<tokens>]` | Impostare la finestra auto-compact: quanto piena diventa la finestra di contesto prima che Claude Code compatti automaticamente. Passate una dimensione come `500k`, o `auto` per tornare alla finestra ottimizzata per il vostro modello. Claude Code salva il valore nelle impostazioni utente e lo applica alla sessione corrente. Consultate [Impostare la finestra auto-compact](/docs/it/model-config#set-the-auto-compact-window) per i valori accettati e cosa lo sostituisce. Senza un argomento, apre una finestra di dialogo che mostra la finestra corrente. Richiede Claude Code v2.1.221 o successivo |


67| `/bug [report]` | Segnalare un bug o condividere la vostra conversazione. Scegliete quanto storico della sessione includere e confermate su una schermata di consenso prima che qualsiasi cosa venga inviata. Quando siete connessi ad Anthropic su una connessione di prima parte, il rapporto va ad Anthropic; su un provider di terze parti, o senza credenziali Anthropic, Claude Code scrive il rapporto in un [archivio locale sotto `~/.claude/feedback-bundles/`](/docs/it/data-usage#telemetry-services) che inoltrate voi stessi. Nell'[estensione VS Code](/docs/it/vs-code#use-the-prompt-box), `/bug` apre invece la finestra di dialogo di feedback dell'estensione; richiede Claude Code v2.1.229 o successivo. Quando lo eseguite mentre Claude sta rispondendo, Claude Code apre la finestra di dialogo immediatamente. Prima della v2.1.232, Claude Code metteva in coda il comando fino al termine del turno. Alias: `/share`. Prima della v2.1.212, `/bug` e `/share` erano alias di `/feedback` |69| `/bug [report]` | Segnalare un bug o condividere la vostra conversazione. Scegliete quanto storico della sessione includere e confermate su una schermata di consenso prima che qualsiasi cosa venga inviata. Quando siete connessi ad Anthropic su una connessione di prima parte, il rapporto va ad Anthropic; su un provider di terze parti, o senza credenziali Anthropic, Claude Code scrive il rapporto in un [archivio locale sotto `~/.claude/feedback-bundles/`](/docs/it/data-usage#telemetry-services) che inoltrate voi stessi. Nell'[estensione VS Code](/docs/it/vs-code#use-the-prompt-box), `/bug` apre invece la finestra di dialogo di feedback dell'estensione; richiede Claude Code v2.1.229 o successivo. Quando lo eseguite mentre Claude sta rispondendo, Claude Code apre la finestra di dialogo immediatamente. Prima della v2.1.232, Claude Code metteva in coda il comando fino al termine del turno. Alias: `/share`. Prima della v2.1.212, `/bug` e `/share` erano alias di `/feedback` |

68| `/cd <path>` | Spostare questa sessione in una nuova directory di lavoro, mantenendo la conversazione. Digitate un percorso parziale per vedere i suggerimenti di directory corrispondenti; premete `Tab` per accettarne uno. I suggerimenti richiedono Claude Code v2.1.206 o successivo. Per ciò che Claude Code applica dalla nuova directory non appena vi spostate, e come `/cd` differisce da `/add-dir`, consultate [Spostare la sessione in un'altra directory](/docs/it/permissions#move-the-session-to-another-directory) |70| `/cd <path>` | Spostare questa sessione in una nuova directory di lavoro, mantenendo la conversazione. Digitate un percorso parziale per vedere i suggerimenti di directory corrispondenti; premete `Tab` per accettarne uno. I suggerimenti richiedono Claude Code v2.1.206 o successivo. Per ciò che Claude Code applica dalla nuova directory non appena vi spostate, e come `/cd` differisce da `/add-dir`, consultate [Spostare la sessione in un'altra directory](/docs/it/permissions#move-the-session-to-another-directory) |

69| `/chrome` | Configurare le impostazioni di [Claude in Chrome](/docs/it/chrome) |71| `/chrome` | Configurare le impostazioni di [Claude in Chrome](/docs/it/chrome) |

70| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb]` | **[Skill](/docs/it/skills#bundled-skills).** Caricare il materiale di riferimento di [Claude API](https://platform.claude.com/docs/en/api/overview) e [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) per il linguaggio del vostro progetto. Si attiva anche automaticamente quando il vostro codice importa `anthropic` o `@anthropic-ai/sdk`. Eseguite `migrate` per aggiornare il codice Claude API esistente a un modello più recente. Eseguite `upgrade` per spostare la dipendenza Anthropic SDK del vostro progetto attraverso una versione principale, attualmente il pacchetto Python `anthropic` da 0.x a 1.x. Eseguite `managed-agents-onboard` per una procedura guidata che crea un nuovo Managed Agent. Eseguite `prompt-audit` per contrassegnare le istruzioni scritte per modelli più vecchi nei vostri prompt, skill e descrizioni di strumenti e proporre correzioni come diff. Eseguite `cost-optimize` per profilare dove va la spesa Claude API del vostro progetto e proporre risparmi da opzioni come prompt caching, riduzione di token di input e output non necessari, elaborazione batch, sforzo e scelta del modello, una modifica alla volta. Eseguite `build-eval` per costruire un set di eval per la vostra app basata su Claude, e `hillclimb` per migliorare iterativamente l'app rispetto a un eval esistente. Il subcomando `prompt-audit` richiede Claude Code v2.1.221 o successivo, `upgrade` richiede v2.1.236 o successivo, `cost-optimize` richiede v2.1.247 o successivo, e `build-eval` e `hillclimb` richiedono v2.1.259 o successivo |72| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[Skill](/docs/it/skills#bundled-skills).** Caricare il materiale di riferimento di [Claude API](https://platform.claude.com/docs/en/api/overview) e [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) per il linguaggio del vostro progetto. Si attiva anche automaticamente quando il vostro codice importa `anthropic` o `@anthropic-ai/sdk`. Per ciò che ogni subcomando fa e la versione che richiede, consultate [Lavorare su progetti Claude API](/docs/it/skills#work-on-claude-api-projects) |

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

71| `/clear [name]` | Avviare una nuova conversazione con contesto vuoto. Passate un nome per etichettare la conversazione precedente nel selettore `/resume`. Per liberare contesto continuando la stessa conversazione, usate `/compact` invece. Riprendete la conversazione precedente con `/resume`, o, nello stesso processo Claude Code, ripristinatela dal [menu rewind della voce sessione precedente](/docs/it/checkpointing#rewind-past-a-cleared-conversation). Alias: `/reset`, `/new` |74| `/clear [name]` | Avviare una nuova conversazione con contesto vuoto. Passate un nome per etichettare la conversazione precedente nel selettore `/resume`. Per liberare contesto continuando la stessa conversazione, usate `/compact` invece. Riprendete la conversazione precedente con `/resume`, o, nello stesso processo Claude Code, ripristinatela dal [menu rewind della voce sessione precedente](/docs/it/checkpointing#rewind-past-a-cleared-conversation). Alias: `/reset`, `/new` |

72| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/it/skills#bundled-skills).** Rivedere il diff corrente, o un numero PR, ramo o percorso che passate, per bug di correttezza. A seconda del vostro modello e livello di sforzo, la revisione copre anche opportunità di pulizia. Passate `--fix` per applicare i risultati, `--comment` per pubblicarli sulla PR GitHub o sulla richiesta di merge GitLab, o `ultra` per eseguire una [revisione cloud](/docs/it/ultrareview) profonda. La pubblicazione su una richiesta di merge GitLab richiede Claude Code v2.1.257 o successivo. Con `ultra` su un target PR `github.com`, passate `--post` per preselezionare la [pubblicazione dei risultati finiti sulla PR](/docs/it/ultrareview#post-findings-to-the-pull-request) nella finestra di dialogo di avvio; `--post` richiede Claude Code v2.1.227 o successivo. Consultate [Rivedere un diff localmente](/docs/it/code-review#review-a-diff-locally) per i livelli di sforzo, il targeting e come si relaziona a `/simplify`. Alias: `/review` |75| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/it/skills#bundled-skills).** Rivedere il diff corrente, o un numero PR, ramo o percorso che passate, per bug di correttezza. A seconda del vostro modello e livello di sforzo, la revisione copre anche opportunità di pulizia. Passate `--fix` per applicare i risultati, `--comment` per pubblicarli sulla PR GitHub o sulla richiesta di merge GitLab, o `ultra` per eseguire una [revisione cloud](/docs/it/ultrareview) profonda. La pubblicazione su una richiesta di merge GitLab richiede Claude Code v2.1.257 o successivo. Con `ultra` su un target PR `github.com`, passate `--post` per preselezionare la [pubblicazione dei risultati finiti sulla PR](/docs/it/ultrareview#post-findings-to-the-pull-request) nella finestra di dialogo di avvio; `--post` richiede Claude Code v2.1.227 o successivo. Consultate [Rivedere un diff localmente](/docs/it/code-review#review-a-diff-locally) per i livelli di sforzo, il targeting e come si relaziona a `/simplify`. Alias: `/review` |

73| `/color [color\|default]` | Impostare il colore della barra dei prompt per la sessione corrente. Colori disponibili: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Usate `default` per ripristinare, o eseguite senza argomento per scegliere un colore casuale. Quando [Remote Control](/docs/it/remote-control) è connesso, il colore si sincronizza con claude.ai/code. Disponibile anche in modalità non interattiva (`-p`); richiede Claude Code v2.1.205 o successivo |76| `/color [color\|default]` | Impostare il colore della barra dei prompt per la sessione corrente. Colori disponibili: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Usate `default` per ripristinare, o eseguite senza argomento per scegliere un colore casuale. Quando [Remote Control](/docs/it/remote-control) è connesso, il colore si sincronizza con claude.ai/code. Disponibile anche in modalità non interattiva (`-p`); richiede Claude Code v2.1.205 o successivo |


91| `/fast [on\|off]` | Attivare o disattivare la [modalità veloce](/docs/it/fast-mode). Eseguitelo mentre Claude sta rispondendo e Claude Code attiva/disattiva la modalità veloce senza aspettare il termine del turno, anche se il turno in esecuzione finisce alla sua velocità originale. Prima della v2.1.242, Claude Code decideva da un flag di funzionalità che recuperava da Anthropic se eseguire il comando a metà turno o metterlo in coda fino al termine del turno, e lo metteva sempre in coda in una sessione che non [recupera flag di funzionalità](/docs/it/env-vars#features-that-need-feature-flag-fetching). La disponibilità in modalità non interattiva con `-p` è limitata; consultate [Attivare/disattivare la modalità veloce](/docs/it/fast-mode#toggle-fast-mode). Richiede Claude Code v2.1.205 o successivo |94| `/fast [on\|off]` | Attivare o disattivare la [modalità veloce](/docs/it/fast-mode). Eseguitelo mentre Claude sta rispondendo e Claude Code attiva/disattiva la modalità veloce senza aspettare il termine del turno, anche se il turno in esecuzione finisce alla sua velocità originale. Prima della v2.1.242, Claude Code decideva da un flag di funzionalità che recuperava da Anthropic se eseguire il comando a metà turno o metterlo in coda fino al termine del turno, e lo metteva sempre in coda in una sessione che non [recupera flag di funzionalità](/docs/it/env-vars#features-that-need-feature-flag-fetching). La disponibilità in modalità non interattiva con `-p` è limitata; consultate [Attivare/disattivare la modalità veloce](/docs/it/fast-mode#toggle-fast-mode). Richiede Claude Code v2.1.205 o successivo |

92| `/feedback [report]` | Inviare feedback sui prodotti su Claude Code. Apre la stessa finestra di dialogo di [`/bug`](#all-commands), con lo stesso passaggio di consenso, regole di invio e comportamento a metà turno. In sessioni con [feedback redatto da Claude](/docs/it/tools-reference#sendfeedback-tool-behavior), `/feedback` senza argomento apre invece la coda di bozze, dove rivedete, modificate, inviate o scartate le bozze che Claude ha messo in coda; la coda include un'opzione per scrivere un nuovo rapporto nella finestra di dialogo. Con un argomento, e per `/bug` sempre, la finestra di dialogo si apre direttamente |95| `/feedback [report]` | Inviare feedback sui prodotti su Claude Code. Apre la stessa finestra di dialogo di [`/bug`](#all-commands), con lo stesso passaggio di consenso, regole di invio e comportamento a metà turno. In sessioni con [feedback redatto da Claude](/docs/it/tools-reference#sendfeedback-tool-behavior), `/feedback` senza argomento apre invece la coda di bozze, dove rivedete, modificate, inviate o scartate le bozze che Claude ha messo in coda; la coda include un'opzione per scrivere un nuovo rapporto nella finestra di dialogo. Con un argomento, e per `/bug` sempre, la finestra di dialogo si apre direttamente |

93| `/fewer-permission-prompts` | **[Skill](/docs/it/skills#bundled-skills).** Scansionare i vostri trascritti per comuni chiamate di strumenti Bash e MCP di sola lettura, quindi aggiungere un elenco di autorizzazioni prioritizzato al progetto `.claude/settings.json` per ridurre i prompt di autorizzazione |96| `/fewer-permission-prompts` | **[Skill](/docs/it/skills#bundled-skills).** Scansionare i vostri trascritti per comuni chiamate di strumenti Bash e MCP di sola lettura, quindi aggiungere un elenco di autorizzazioni prioritizzato al progetto `.claude/settings.json` per ridurre i prompt di autorizzazione |

94| `/focus` | Attivare/disattivare la vista focus, che mostra solo il vostro ultimo prompt, un riassunto di una riga della chiamata di strumento con diffstat di modifica, e la risposta finale. Il riassunto della chiamata di strumento conta anche i subagent lanciati nel turno e comprime le notifiche di attività background completate in un singolo conteggio. La selezione persiste tra le sessioni; impostare [`viewMode`](/docs/it/settings-reference#viewmode) nelle impostazioni per sostituirla. Disponibile solo nel [rendering fullscreen](/docs/it/fullscreen). L'[estensione VS Code](/docs/it/vs-code#use-the-prompt-box) offre la sua propria vista Focus come un toggle del menu dei comandi, archiviata come impostazione dell'estensione, indipendente da `viewMode` |97| `/focus` | Attivare/disattivare la vista focus, che mostra solo il vostro ultimo prompt, un riassunto di una riga della chiamata di strumento con diffstat di modifica, e la risposta finale. Il riassunto della chiamata di strumento conta anche i subagent lanciati nel turno e comprime le notifiche di attività background completate in un singolo conteggio. La selezione persiste tra le sessioni; impostare [`viewMode`](/docs/it/settings-reference#viewmode) nelle impostazioni per sostituirla. Disponibile solo nel [rendering fullscreen](/docs/it/fullscreen). Da un client [Remote Control](/docs/it/remote-control), eseguite `/focus [on\|off]` per attivare o disattivare la vista focus per la sessione corrente solo, senza cambiare la vostra selezione salvata; questo richiede Claude Code v2.1.281 o successivo. L'[estensione VS Code](/docs/it/vs-code#use-the-prompt-box) offre la sua propria vista Focus come un toggle del menu dei comandi, archiviata come impostazione dell'estensione, indipendente da `viewMode` |

95| `/fork [prompt]` | [Copiare la conversazione corrente](/docs/it/agent-view#copy-the-session-with-%2Ffork) in una nuova sessione background e continuare a lavorare qui. Passate un prompt e la copia inizia a lavorarvi immediatamente; senza uno aspetta in agent view per il suo primo prompt. Tranne quando la copia [modifica in place](/docs/it/agent-view#how-file-edits-are-isolated), Claude Code le istruisce di creare un worktree proprio prima di apportare modifiche al codice; l'istruzione di isolamento richiede Claude Code v2.1.221 o successivo. Per affidare un'attività laterale a un subagent il cui risultato torna in questa conversazione, usate `/subtask`; per spostarvi in una copia voi stessi, usate `/branch`. Richiede Claude Code v2.1.212 o successivo; su v2.1.161 attraverso v2.1.211, e ogni volta che [agent view è disattivato](/docs/it/agent-view#turn-off-agent-view), `/fork` avvia un [subagent con fork](/docs/it/sub-agents#fork-the-current-conversation) invece |98| `/fork [prompt]` | [Copiare la conversazione corrente](/docs/it/agent-view#copy-the-session-with-%2Ffork) in una nuova sessione background e continuare a lavorare qui. Passate un prompt e la copia inizia a lavorarvi immediatamente; senza uno aspetta in agent view per il suo primo prompt. Tranne quando la copia [modifica in place](/docs/it/agent-view#how-file-edits-are-isolated), Claude Code le istruisce di creare un worktree proprio prima di apportare modifiche al codice; l'istruzione di isolamento richiede Claude Code v2.1.221 o successivo. Per affidare un'attività laterale a un subagent il cui risultato torna in questa conversazione, usate `/subtask`; per spostarvi in una copia voi stessi, usate `/branch`. Richiede Claude Code v2.1.212 o successivo; su v2.1.161 attraverso v2.1.211, e ogni volta che [agent view è disattivato](/docs/it/agent-view#turn-off-agent-view), `/fork` avvia un [subagent con fork](/docs/it/sub-agents#fork-the-current-conversation) invece |

96| `/goal [condition\|clear]` | Impostare un [goal](/docs/it/goal): Claude continua a lavorare tra i turni finché la condizione non è soddisfatta o il goal [si cancella per un altro motivo](/docs/it/goal#how-evaluation-works). Senza argomento, mostra il goal corrente o più recentemente raggiunto. `clear`, `stop`, `off`, `reset`, `none`, o `cancel` rimuove un goal attivo in anticipo |99| `/goal [condition\|clear]` | Impostare un [goal](/docs/it/goal): Claude continua a lavorare tra i turni finché la condizione non è soddisfatta o il goal [si cancella per un altro motivo](/docs/it/goal#how-evaluation-works). Senza argomento, mostra il goal corrente o più recentemente raggiunto. `clear`, `stop`, `off`, `reset`, `none`, o `cancel` rimuove un goal attivo in anticipo |

97| `/heapdump` | Scrivere uno snapshot heap JavaScript e un breakdown della memoria su `~/Desktop`, o la vostra home directory su Linux senza una cartella Desktop, per diagnosticare un utilizzo elevato della memoria. Allegate solo il file `-diagnostics.json` quando segnalate un problema di memoria; il `.heapsnapshot` contiene la vostra conversazione completa e le credenziali, quindi non condividetelo. [Nascosto dal menu dei comandi](#how-the-command-menu-matches-what-you-type); digitate per intero. Consultate [cosa fare con l'output](/docs/it/troubleshooting#high-cpu-or-memory-usage) |100| `/heapdump` | Scrivere uno snapshot heap JavaScript e un breakdown della memoria su `~/Desktop`, o la vostra home directory su Linux senza una cartella Desktop, per diagnosticare un utilizzo elevato della memoria. Allegate solo il file `-diagnostics.json` quando segnalate un problema di memoria; il `.heapsnapshot` contiene la vostra conversazione completa e le credenziali, quindi non condividetelo. [Nascosto dal menu dei comandi](#how-the-command-menu-matches-what-you-type); digitate per intero. Consultate [cosa fare con l'output](/docs/it/troubleshooting#high-cpu-or-memory-usage) |


121| `/pr-comments [PR]` | Rimosso nella v2.1.91. Chiedete direttamente a Claude di visualizzare i commenti della richiesta di pull. Sulle versioni precedenti, recupera e visualizza i commenti da una richiesta di pull GitHub; rileva automaticamente la PR per il ramo corrente, o passate un URL o numero di PR. Richiede la CLI `gh` |124| `/pr-comments [PR]` | Rimosso nella v2.1.91. Chiedete direttamente a Claude di visualizzare i commenti della richiesta di pull. Sulle versioni precedenti, recupera e visualizza i commenti da una richiesta di pull GitHub; rileva automaticamente la PR per il ramo corrente, o passate un URL o numero di PR. Richiede la CLI `gh` |

122| `/privacy-settings` | Visualizzare e aggiornare le vostre impostazioni di privacy. Disponibile solo per gli abbonati ai piani Pro e Max |125| `/privacy-settings` | Visualizzare e aggiornare le vostre impostazioni di privacy. Disponibile solo per gli abbonati ai piani Pro e Max |

123| `/radio` | Aprire Claude FM lo-fi radio nel vostro browser. Stampa l'URL del flusso quando nessun browser è disponibile |126| `/radio` | Aprire Claude FM lo-fi radio nel vostro browser. Stampa l'URL del flusso quando nessun browser è disponibile |

124| `/rate-limit-options` | Mostrare i modi per continuare a lavorare quando un limite di utilizzo claude.ai blocca una richiesta: aspettare e [continuare automaticamente quando il limite si ripristina](/docs/it/interactive-mode#wait-for-a-usage-limit-to-reset), aggiungere [crediti di utilizzo](/docs/it/costs#add-usage-credits-to-your-subscription), o aggiornare il vostro piano. Claude Code può anche aprire questo menu autonomamente quando raggiungete un limite al vostro terminale. Consultate [Disattivare la continuazione automatica](/docs/it/interactive-mode#turn-automatic-continue-off). Richiede un abbonamento claude.ai. Non appare nel menu dei comandi; digitate per intero. Le righe di attesa e continuazione richiedono Claude Code v2.1.234 o successivo |127| `/rate-limit-options` | Mostrare i modi per continuare a lavorare quando un limite di utilizzo claude.ai blocca una richiesta: aspettare e [continuare automaticamente quando il limite si ripristina](/docs/it/interactive-mode#wait-for-a-usage-limit-to-reset), aggiungere [crediti di utilizzo](/docs/it/costs#add-usage-credits-to-your-subscription), o aggiornare il vostro piano. Claude Code può anche aprire questo menu autonomamente quando raggiungete un limite al vostro terminale. Consultate [Disattivare la continuazione automatica](/docs/it/interactive-mode#turn-automatic-continue-off). Richiede un abbonamento claude.ai. Le righe di attesa e continuazione richiedono Claude Code v2.1.234 o successivo |

125| `/recap` | Generare un riassunto di una riga della sessione corrente su richiesta. Consultate [Recap della sessione](/docs/it/interactive-mode#session-recap) per il recap automatico che appare dopo che siete stati assenti |128| `/recap` | Generare un riassunto di una riga della sessione corrente su richiesta. Consultate [Recap della sessione](/docs/it/interactive-mode#session-recap) per il recap automatico che appare dopo che siete stati assenti |

126| `/release-notes` | Visualizzare il changelog in un selettore di versione interattivo. Selezionate una versione specifica per vedere le sue note di rilascio, o scegliete di mostrare tutte le versioni. Le note appaiono nel vostro trascritto senza entrare nella conversazione che Claude vede |129| `/release-notes` | Visualizzare il changelog in un selettore di versione interattivo. Selezionate una versione specifica per vedere le sue note di rilascio, o scegliete di mostrare tutte le versioni. Le note appaiono nel vostro trascritto senza entrare nella conversazione che Claude vede |

127| `/reload-plugins [--force]` | Ricaricare tutti i [plugin](/docs/it/plugins/overview) attivi per applicare le modifiche in sospeso senza riavviare. Segnala i conteggi per ogni componente ricaricato e contrassegna eventuali errori di caricamento. Quando il ricaricamento cambierebbe quali strumenti MCP sono caricati e invaliderebbe la cache del prompt, il comando avverte e salta a meno che non passiate `--force`. Disponibile anche in modalità non interattiva (`-p`), l'Agent SDK e l'app desktop, dove viene eseguito solo su input digitato direttamente nella sessione e non applica le modifiche del server MCP del plugin; richiede Claude Code v2.1.260 o successivo. Consultate [Applicare le modifiche del plugin senza riavviare](/docs/it/plugins/cli-reference#reload-plugins) |130| `/reload-plugins [--force]` | Ricaricare tutti i [plugin](/docs/it/plugins/overview) attivi per applicare le modifiche in sospeso senza riavviare. Segnala i conteggi per ogni componente ricaricato e contrassegna eventuali errori di caricamento. Quando il ricaricamento cambierebbe quali strumenti MCP sono caricati e invaliderebbe la cache del prompt, il comando avverte e salta a meno che non passiate `--force`. Disponibile anche in modalità non interattiva (`-p`), l'Agent SDK e l'app desktop, dove viene eseguito solo su input digitato direttamente nella sessione e non applica le modifiche del server MCP del plugin; richiede Claude Code v2.1.260 o successivo. Consultate [Applicare le modifiche del plugin senza riavviare](/docs/it/plugins/cli-reference#reload-plugins) |

costs.md +2 −0

Details

96 96 

97Esegui [`/insights`](/docs/it/commands#all-commands) per un rapporto su come lavori piuttosto che su quanti token hai utilizzato. Analizza le tue sessioni recenti su questa macchina e scrive un rapporto HTML che copre su cosa lavori, punti di attrito come richieste fraintese o codice buggy, e suggerimenti per utilizzare Claude Code più efficacemente. Una singola esecuzione analizza fino a 200 sessioni che non ha ancora visto e salta quelle molto brevi. Quando le sessioni vengono omesse, l'intestazione del rapporto mostra il conteggio analizzato con il totale tra parentesi, ad esempio `200 sessions (412 total)`.97Esegui [`/insights`](/docs/it/commands#all-commands) per un rapporto su come lavori piuttosto che su quanti token hai utilizzato. Analizza le tue sessioni recenti su questa macchina e scrive un rapporto HTML che copre su cosa lavori, punti di attrito come richieste fraintese o codice buggy, e suggerimenti per utilizzare Claude Code più efficacemente. Una singola esecuzione analizza fino a 200 sessioni che non ha ancora visto e salta quelle molto brevi. Quando le sessioni vengono omesse, l'intestazione del rapporto mostra il conteggio analizzato con il totale tra parentesi, ad esempio `200 sessions (412 total)`.

98 98 

99Quando la [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode) è disponibile per la sessione e le tue sessioni recenti per lo più sono state eseguite senza di essa, il rapporto può anche includere una stima di quanti prompt di autorizzazione la modalità auto avrebbe potuto gestire in quelle sessioni.

100 

99Claude Code scrive l'ultimo rapporto in `~/.claude/usage-data/report.html` e salva una copia con timestamp di ogni esecuzione nella stessa directory, quindi i rapporti precedenti non vengono sovrascritti. Claude Code elimina i rapporti secondo la stessa pianificazione del resto dei tuoi dati di sessione: all'avvio, rimuove i file più vecchi di [`cleanupPeriodDays`](/docs/it/claude-directory#cleaned-up-automatically), 30 giorni per impostazione predefinita.101Claude Code scrive l'ultimo rapporto in `~/.claude/usage-data/report.html` e salva una copia con timestamp di ogni esecuzione nella stessa directory, quindi i rapporti precedenti non vengono sovrascritti. Claude Code elimina i rapporti secondo la stessa pianificazione del resto dei tuoi dati di sessione: all'avvio, rimuove i file più vecchi di [`cleanupPeriodDays`](/docs/it/claude-directory#cleaned-up-automatically), 30 giorni per impostazione predefinita.

100 102 

101Puoi eseguire `/insights` su qualsiasi piano e con qualsiasi provider. L'analisi viene eseguita attraverso lo stesso provider e account delle tue sessioni regolari, e i token contano rispetto al tuo utilizzo del piano o dell'API. Le sessioni da altri dispositivi e da claude.ai non sono incluse.103Puoi eseguire `/insights` su qualsiasi piano e con qualsiasi provider. L'analisi viene eseguita attraverso lo stesso provider e account delle tue sessioni regolari, e i token contano rispetto al tuo utilizzo del piano o dell'API. Le sessioni da altri dispositivi e da claude.ai non sono incluse.

desktop.md +6 −0

Details

834* **Remote Control**: abilita o disabilita [Remote Control](/docs/it/remote-control) per la tua organizzazione834* **Remote Control**: abilita o disabilita [Remote Control](/docs/it/remote-control) per la tua organizzazione

835* **Disable Bypass permissions mode**: impedisci agli utenti della tua organizzazione di abilitare la modalità bypass permissions835* **Disable Bypass permissions mode**: impedisci agli utenti della tua organizzazione di abilitare la modalità bypass permissions

836 836 

837<Note>

838 Il modulo OpenTelemetry per Cowork sotto **Monitoring** nelle [impostazioni di Data and privacy](https://claude.ai/admin-settings/data-privacy-controls) della console di amministrazione si applica solo alle sessioni Cowork. In una sessione Cowork su questa macchina, l'app desktop passa quel collector a Claude Code come variabili di ambiente `OTEL_*`, quindi il modulo ha effetto anche se Claude Code in quella sessione [non recupera mai le impostazioni della console di amministrazione](#managed-settings).

839 

840 Per esportare la telemetria dalle sessioni della scheda Code, imposta `CLAUDE_CODE_ENABLE_TELEMETRY` e le variabili `OTEL_*` nel blocco `env` delle tue impostazioni gestite di Claude Code, come mostrato in [configurazione dell'amministratore per il monitoraggio](/docs/it/monitoring-usage#administrator-configuration). Le sessioni locali, cloud e SSH leggono ciascuna [impostazioni gestite da fonti diverse](#managed-settings). Per gli host che una sessione cloud può raggiungere, vedi [accesso alla rete](/docs/it/cloud-environments#network-access). Per il `service.name` che le sessioni della scheda Code segnalano, vedi [informazioni sul servizio](/docs/it/monitoring-usage#service-information).

841</Note>

842 

837<h3 id="managed-settings">843<h3 id="managed-settings">

838 Impostazioni gestite844 Impostazioni gestite

839</h3>845</h3>

errors.md +61 −10

Details

152| `There's an issue with the selected model` | [Errori di richiesta](#theres-an-issue-with-the-selected-model) |152| `There's an issue with the selected model` | [Errori di richiesta](#theres-an-issue-with-the-selected-model) |

153| `Model ... is not a recognized model id` | [Errori di richiesta](#model-is-not-a-recognized-model-id) |153| `Model ... is not a recognized model id` | [Errori di richiesta](#model-is-not-a-recognized-model-id) |

154| `Model ... not found` | [Errori di richiesta](#model-not-found) |154| `Model ... not found` | [Errori di richiesta](#model-not-found) |

155| `Couldn't confirm model ... with the API` | [Errori di richiesta](#couldnt-confirm-model-with-the-api) |

155| `API error: ... · model not changed` | [Errori di richiesta](#api-error-model-not-changed) |156| `API error: ... · model not changed` | [Errori di richiesta](#api-error-model-not-changed) |

156| `Claude Opus is not available with the Claude Pro plan` | [Errori di richiesta](#claude-opus-is-not-available-with-the-claude-pro-plan) |157| `Claude Opus is not available with the Claude Pro plan` | [Errori di richiesta](#claude-opus-is-not-available-with-the-claude-pro-plan) |

157| `Claude Code ... does not support this model; version ... or newer is required` | [Errori di richiesta](#claude-code-does-not-support-this-model) |158| `Claude Code ... does not support this model; version ... or newer is required` | [Errori di richiesta](#claude-code-does-not-support-this-model) |


219| `Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected` | [Errori della riga di comando](#no-github-account-is-connected-to-your-claude-account) |220| `Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected` | [Errori della riga di comando](#no-github-account-is-connected-to-your-claude-account) |

220| `Your connected GitHub account can't see <owner>/<repo>` | [Errori della riga di comando](#your-connected-github-account-cant-see-the-repository) |221| `Your connected GitHub account can't see <owner>/<repo>` | [Errori della riga di comando](#your-connected-github-account-cant-see-the-repository) |

221| `The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead` | [Errori della riga di comando](#the-github-app-preflight-failed-transiently) |222| `The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead` | [Errori della riga di comando](#the-github-app-preflight-failed-transiently) |

223| `Not uploading this working tree` with `the upload cannot follow that setting` | [Errori della riga di comando](#the-repository-upload-cant-follow-a-git-setting) |

222| `GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud` | [Errori della riga di comando](#github-isnt-connected-to-your-claude-account) |224| `GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud` | [Errori della riga di comando](#github-isnt-connected-to-your-claude-account) |

223| `Single sign-on authorization needed` | [Errori della riga di comando](#single-sign-on-authorization-needed) |225| `Single sign-on authorization needed` | [Errori della riga di comando](#single-sign-on-authorization-needed) |

224| `Failed to resume the conversation` | [Errori della riga di comando](#failed-to-resume-the-conversation) |226| `Failed to resume the conversation` | [Errori della riga di comando](#failed-to-resume-the-conversation) |


252| `Plugin "<name>@synced" is required by your organization and can't be disabled here` | [Errori dei plugin](#plugin-is-required-by-your-organization) |254| `Plugin "<name>@synced" is required by your organization and can't be disabled here` | [Errori dei plugin](#plugin-is-required-by-your-organization) |

253| `"<plugin>" was not uninstalled: it is still switched on in <file>` | [Errori dei plugin](#plugin-was-not-uninstalled) |255| `"<plugin>" was not uninstalled: it is still switched on in <file>` | [Errori dei plugin](#plugin-was-not-uninstalled) |

254| `"<plugin>" was not uninstalled: <file> is there and could not be read` | [Errori dei plugin](#plugin-was-not-uninstalled) |256| `"<plugin>" was not uninstalled: <file> is there and could not be read` | [Errori dei plugin](#plugin-was-not-uninstalled) |

257| `Plugin "<plugin>" was not uninstalled: installed_plugins.json` | [Risoluzione dei problemi dei plugin](/docs/it/plugins/troubleshooting#installed-plugins-json-holds-a-record-this-version-cannot-read) |

255| `would be spawned with zero tools — refusing` | [Errori degli strumenti](#agent-would-be-spawned-with-zero-tools) |258| `would be spawned with zero tools — refusing` | [Errori degli strumenti](#agent-would-be-spawned-with-zero-tools) |

256| `File is covered by a Read deny rule in your permission settings` | [Errori degli strumenti](#file-is-covered-by-a-read-deny-rule) |259| `File is covered by a Read deny rule in your permission settings` | [Errori degli strumenti](#file-is-covered-by-a-read-deny-rule) |

257| `cannot contain null bytes (\0)` | [Errori degli strumenti](#path-cannot-contain-null-bytes) |260| `cannot contain null bytes (\0)` | [Errori degli strumenti](#path-cannot-contain-null-bytes) |


2346 Il modello non è un ID modello riconosciuto2349 Il modello non è un ID modello riconosciuto

2347</h3>2350</h3>

2348 2351 

2349La stringa di modello che avete passato a un cambio di modello non è un alias di modello, un ID di modello che questa versione di Claude Code conosce, o un ID che inizia con `claude-`. Le cause solite sono un errore di battitura nell'ID, un nome visualizzato come `Sonnet 5` dove è previsto l'ID `claude-sonnet-5`, o un alias che solo le versioni più recenti di Claude Code riconoscono. Claude Code rifiuta il cambio immediatamente. Prima della v2.1.200, Claude Code salvava la stringa e falliva alla richiesta successiva con [There's an issue with the selected model](#theres-an-issue-with-the-selected-model).2352La stringa che avete passato a un cambio di modello non è un alias di modello, un ID di modello che Claude Code può usare, quindi ha rifiutato il cambio senza inviare una richiesta e la sessione mantiene il suo modello corrente. Potete ottenere questo errore quando un modello è impostato attraverso il metodo [Agent SDK](/docs/it/agent-sdk/typescript) `setModel()`, da un'app che esegue la CLI di Claude Code per voi, come l'[app Desktop](/docs/it/desktop), o quando scegliete un modello da un dispositivo connesso attraverso [Remote Control](/docs/it/remote-control). Prima della v2.1.200, Claude Code salvava la stringa e falliva alla richiesta successiva con [There's an issue with the selected model](#theres-an-issue-with-the-selected-model).

2350 2353 

2351```text theme={null}2354```text theme={null}

2352Model "claud-sonnet-5" is not a recognized model id. Did you mean 'claude-sonnet-5'?2355Model "Sonnet5" is not a recognized model id. Did you mean 'claude-sonnet-5'?

2353```2356```

2354 2357 

2355L'hint finale nomina l'alias o l'ID modello più simile. Quando nulla è abbastanza simile, recita `Run /model to see available models.` invece. In una sessione che l'[app Desktop](/docs/it/desktop) avvia per voi, l'hint senza corrispondenza recita `Switch to a different model.`2358In questo esempio un'app ha inviato il nome visualizzato `Sonnet 5`, che il messaggio ripete senza il suo spazio. L'hint finale nomina l'alias o l'ID modello più simile. Quando nulla è abbastanza simile, recita `Run /model to see available models.` invece. In una sessione che l'[app Desktop](/docs/it/desktop) avvia per voi, l'hint senza corrispondenza recita `Switch to a different model.`

2356 2359 

2357Claude Code produce questo errore localmente nel momento in cui il cambio è richiesto, prima che venga effettuata qualsiasi richiesta API. Si applica quando un modello è impostato attraverso il metodo [Agent SDK](/docs/it/agent-sdk/typescript) `setModel()`, da un'app come l'[app Desktop](/docs/it/desktop) che esegue la CLI di Claude Code per voi, o quando scegliete un modello da un dispositivo connesso attraverso [Remote Control](/docs/it/remote-control). Prima della v2.1.260, il controllo non copriva le scelte di Remote Control, quindi Claude Code applicava la scelta e la richiesta successiva falliva con [There's an issue with the selected model](#theres-an-issue-with-the-selected-model).2360Quando cambiate attraverso l'Agent SDK o un'app sull'API Anthropic, solo una stringa che non può essere un ID modello riceve questo errore, come un nome visualizzato o una stringa vuota.

2361 

2362Quando scegliete un modello da un dispositivo Remote Control, Claude Code controlla la stringa localmente. Qualsiasi stringa che non sia un alias di modello, un modello che Claude Code elenca o che avete configurato, o un ID che inizia con `claude-` riceve questo errore, un ID errato come `claud-sonnet-5` incluso. Prima della v2.1.260, questo controllo non copriva le scelte di Remote Control, quindi una stringa non riconosciuta veniva applicata e falliva alla richiesta successiva.

2358 2363 

2359**Cosa fare:**2364**Cosa fare:**

2360 2365 

2361* Eseguite `/model` senza argomenti per aprire il selettore e scegliere dai modelli disponibili per il Vostro account, quindi passate l'alias o l'ID mostrato lì2366* Eseguite `/model` senza argomenti per aprire il selettore e scegliere dai modelli disponibili per il Vostro account, quindi passate l'alias o l'ID mostrato lì

2362* Se avete usato un alias che una versione più recente di Claude Code supporta, eseguite `claude update`. Un ID completo che inizia con `claude-` passa questo controllo locale anche quando il modello è più recente della Vostra versione di Claude Code. Il server può comunque richiedere una versione minima per quel modello; vedete [Claude Code does not support this model](#claude-code-does-not-support-this-model).2367* Se avete usato un alias che solo una versione più recente di Claude Code supporta, eseguite `claude update`, oppure passate l'ID completo del modello. Il server può comunque richiedere una versione minima di Claude Code per quel modello; vedete [Claude Code does not support this model](#claude-code-does-not-support-this-model).

2363* Un modello salvato prima della v2.1.200 non viene riparato da questo controllo. Se un valore obsoleto continua a tornare, rimuovetelo dalle posizioni elencate sotto [Setting your model](/docs/it/model-config#setting-your-model).2368* Un modello salvato prima della v2.1.200 non viene riparato da questo controllo. Se un valore obsoleto continua a tornare, rimuovetelo dalle posizioni elencate sotto [Setting your model](/docs/it/model-config#setting-your-model).

2364* Il controllo viene eseguito solo sull'API Anthropic. Su qualsiasi altro provider o gateway, incluso un `ANTHROPIC_BASE_URL` personalizzato, il provider definisce i nomi dei modelli, quindi Claude Code accetta qualsiasi stringa e lo passa. Claude Code può comunque scrivere la [riga diagnostica di modello non riconosciuto](#unrecognized-model-id-on-a-request) al momento della richiesta, su ogni provider.2369* Su qualsiasi provider diverso dall'API Anthropic, o dietro un gateway o un `ANTHROPIC_BASE_URL` personalizzato, solo una stringa vuota riceve questo errore. Claude Code può comunque scrivere la [riga diagnostica di modello non riconosciuto](#unrecognized-model-id-on-a-request) al momento della richiesta, su ogni provider.

2365 2370 

2366<h3 id="model-not-found">2371<h3 id="model-not-found">

2367 Modello non trovato2372 Modello non trovato

2368</h3>2373</h3>

2369 2374 

2370Avete scelto un modello con `/model <name>` e Claude Code non ha potuto confermare che esista un modello con quel nome. Quando il nome non è un [alias di modello](/docs/it/model-config#model-aliases) o un'altra ortografia che Claude Code accetta localmente, `/model` lo verifica con una richiesta API minima, e questo errore è solitamente la risposta del Vostro endpoint API. Un nome che non può essere un ID modello affatto, come uno contenente spazi, riceve lo stesso messaggio.2375Avete scelto un modello per nome e Claude Code non ha potuto confermare che esista un modello con quel nome. Quando il nome non è un [alias di modello](/docs/it/model-config#model-aliases) o un'altra ortografia che Claude Code accetta localmente, Claude Code lo verifica con una richiesta API minima, e questo errore è solitamente la risposta del Vostro endpoint API. Con `/model <name>`, un nome che non può essere un ID modello affatto, come uno contenente spazi, riceve lo stesso messaggio.

2371 2376 

2372```text theme={null}2377```text theme={null}

2373Model 'claude-opus-9' not found2378Model 'claude-opus-9' not found


2379 2384 

2380* Eseguite `/model` senza argomenti e scegliete dai modelli disponibili per il Vostro account, oppure usate un [alias di modello](/docs/it/model-config#model-aliases) come `sonnet`, che si risolve in un valore predefinito mantenuto2385* Eseguite `/model` senza argomenti e scegliete dai modelli disponibili per il Vostro account, oppure usate un [alias di modello](/docs/it/model-config#model-aliases) come `sonnet`, che si risolve in un valore predefinito mantenuto

2381* Se avete digitato un ID completo, controllarlo rispetto al catalogo dei modelli del Vostro provider. Un modello appena lanciato può essere disponibile sull'API Anthropic prima che il Vostro provider o regione lo offra.2386* Se avete digitato un ID completo, controllarlo rispetto al catalogo dei modelli del Vostro provider. Un modello appena lanciato può essere disponibile sull'API Anthropic prima che il Vostro provider o regione lo offra.

2387* Nell'Agent SDK, `setModel()` fallisce con questo messaggio e la sessione continua a funzionare sul suo modello precedente. Nel TypeScript SDK, chiamate [`supportedModels()`](/docs/it/agent-sdk/typescript#query-object) per elencare i modelli a cui potete passare.

2382* Prima della v2.1.265, `/model` rifiutava anche l'ortografia dell'alias `opusplan[1m]` con questo errore. Su quelle versioni, aggiornate Claude Code, oppure impostate il modello in [settings](/docs/it/model-config#setting-your-model) o con `--model` invece.2388* Prima della v2.1.265, `/model` rifiutava anche l'ortografia dell'alias `opusplan[1m]` con questo errore. Su quelle versioni, aggiornate Claude Code, oppure impostate il modello in [settings](/docs/it/model-config#setting-your-model) o con `--model` invece.

2383 2389 

2390<h3 id="couldnt-confirm-model-with-the-api">

2391 Impossibile confermare il modello con l'API

2392</h3>

2393 

2394Avete scelto modelli attraverso il metodo [Agent SDK](/docs/it/agent-sdk/typescript) `setModel()` o un'app che esegue la CLI di Claude Code per voi, come l'[app Desktop](/docs/it/desktop), e la richiesta che conferma l'ID modello con il Vostro endpoint API non ha ricevuto risposta entro cinque secondi. La sessione mantiene il suo modello corrente.

2395 

2396```text theme={null}

2397Couldn't confirm model "claude-sonnet-5" with the API. Try again, or run /model to see available models.

2398```

2399 

2400In una sessione che l'[app Desktop](/docs/it/desktop) avvia per voi, il messaggio termina a `Try again.`

2401 

2402**Cosa fare:**

2403 

2404* Cambiate il modello di nuovo

2405* Se il cambio continua a fallire, controllate che Claude Code possa raggiungere il Vostro endpoint API; vedete [Network and connection errors](#network-and-connection-errors)

2406 

2384<h3 id="api-error-model-not-changed">2407<h3 id="api-error-model-not-changed">

2385 Errore API durante il controllo del modello scelto2408 Errore API durante il controllo del modello scelto

2386</h3>2409</h3>


2432API Error: 400 Claude Code 2.1.240 is older than the minimum version required by your organization's policy. Run 'claude update', or update the Claude desktop app, to continue.2455API Error: 400 Claude Code 2.1.240 is older than the minimum version required by your organization's policy. Run 'claude update', or update the Claude desktop app, to continue.

2433```2456```

2434 2457 

2458La versione che l'API controlla è quella segnalata dal binario Claude Code che ha effettuato la richiesta.

2459 

2435**Cosa fare:**2460**Cosa fare:**

2436 2461 

2437* Eseguite `claude update`, oppure aggiornate l'app Claude desktop, quindi avviate una nuova sessione2462Aggiornate quel binario, quindi avviate una nuova sessione. Da dove proviene il binario decide come, tranne in un [ambiente auto-ospitato](/docs/it/self-hosted-environments-deploy#pin-the-version):

2438* Per la dicitura per modello, potete continuare a lavorare nella sessione corrente passando a un altro modello con `/model`2463 

2464| Il binario che ha effettuato la richiesta | Come aggiornarlo |

2465| :- | :- |

2466| Un Claude Code che avete installato | Eseguite `claude update` |

2467| L'app Claude desktop | Aggiornate l'app |

2468| Il binario che l'[estensione VS Code](/docs/it/vs-code) raggruppa | Aggiornate l'estensione |

2469| Il binario che un pacchetto Agent SDK raggruppa | [Aggiornate il pacchetto SDK](/docs/it/agent-sdk/hosting#runtime-dependencies), quindi riavviate la Vostra applicazione. In un [eseguibile a file singolo compilato](/docs/it/agent-sdk/typescript#compile-to-a-single-executable), ricostruitelo |

2470 

2471* Per la dicitura per modello, potete continuare a lavorare nella sessione corrente passando a un altro modello: eseguite `/model` nella CLI, chiamate [`setModel()`](/docs/it/agent-sdk/typescript#query-object) sull'oggetto `Query` del TypeScript SDK in modalità di input in streaming, oppure chiamate [`set_model()`](/docs/it/agent-sdk/python#claudesdkclient) su `ClaudeSDKClient` del Python SDK

2439* Per la dicitura della politica organizzativa, aggiornate prima di continuare2472* Per la dicitura della politica organizzativa, aggiornate prima di continuare

2440 2473 

2441<h3 id="model-is-restricted-by-your-organizations-settings">2474<h3 id="model-is-restricted-by-your-organizations-settings">


3376 3409 

3377Prima della v2.1.251, Claude Code terminava il messaggio con `Please set up GitHub on https://claude.ai/code` anche quando il controllo GitHub falliva solo transitoriamente, e il consiglio di configurazione non può chiarire un fallimento transitorio.3410Prima della v2.1.251, Claude Code terminava il messaggio con `Please set up GitHub on https://claude.ai/code` anche quando il controllo GitHub falliva solo transitoriamente, e il consiglio di configurazione non può chiarire un fallimento transitorio.

3378 3411 

3412<h3 id="the-repository-upload-cant-follow-a-git-setting">

3413 Il caricamento del repository non può seguire un'impostazione git

3414</h3>

3415 

3416Hai avviato una [sessione cloud che carica il tuo repository locale](/docs/it/claude-code-on-the-web#send-local-repositories-without-github), o un [ultrareview](/docs/it/ultrareview) di un branch, e il caricamento non può seguire una delle impostazioni git che decidono quali regole di attributo si applicano ai tuoi file. Se il caricamento fosse andato avanti e avesse perso una regola, un file che git trasforma prima di memorizzarlo, come uno che un filtro clean crittografa, potrebbe raggiungere il cloud come è su disco. Claude Code rifiuta il caricamento invece, e nulla viene caricato:

3417 

3418```text theme={null}

3419Not uploading this working tree: core.ignoreCase (which decides whether .gitattributes patterns match file names regardless of letter case) is set in <file>, and the upload cannot follow that setting, so a file git would change before storing it (to encrypt it, for example) could be uploaded as it is on disk. Move the core.ignoreCase line into this repository's .git/config or directly into your ~/.gitconfig, then retry.

3420```

3421 

3422Il messaggio nomina l'impostazione e dove è impostata, e termina con la correzione per il caso che hai colpito. Lo stesso rifiuto appare per `core.attributesFile` e `attr.tree`, ognuno con la sua propria correzione.

3423 

3424Il messaggio può nominare un file di configurazione che la tua configurazione git estrae attraverso una direttiva `include` o `includeIf`, anche quando quella condizione della direttiva non si applica a questo repository.

3425 

3426**Cosa fare:**

3427 

3428* Applica la correzione nella frase finale del messaggio

3429 

3379<h3 id="github-isnt-connected-to-your-claude-account">3430<h3 id="github-isnt-connected-to-your-claude-account">

3380 GitHub non è connesso al tuo account Claude3431 GitHub non è connesso al tuo account Claude

3381</h3>3432</h3>


3888 Plugin was not uninstalled3939 Plugin was not uninstalled

3889</h3>3940</h3>

3890 3941 

3891Avete eseguito [`claude plugin uninstall`](/docs/it/plugins/cli-reference#plugin-uninstall), o scelto **Uninstall** nella scheda **Installed** di `/plugin`, e la disinstallazione si è fermata con un messaggio che inizia `"<plugin>" was not uninstalled:`.3942Avete eseguito [`claude plugin uninstall`](/docs/it/plugins/cli-reference#plugin-uninstall), o scelto **Uninstall** nella scheda **Installed** di `/plugin`, e la disinstallazione si è fermata con un messaggio che inizia `"<plugin>" was not uninstalled:`. Se il testo dopo quel due punti inizia con `installed_plugins.json` invece di nominare un file di impostazioni, la causa è il contenuto in `installed_plugins.json` che questa versione di Claude Code non può leggere. Per quella forma, vedere [`installed_plugins.json` holds a record this version can't read](/docs/it/plugins/troubleshooting#installed-plugins-json-holds-a-record-this-version-cannot-read).

3892 3943 

3893Quando Claude Code ha rimosso la voce del plugin da `enabledPlugins` e ha letto di nuovo i file delle impostazioni di quel scope, il plugin era ancora attivato lì, oppure un file che potrebbe attivarlo non poteva essere letto o controllato. Eliminare le opzioni salvate del plugin, i segreti e i dati mentre una voce delle impostazioni potrebbe riattivarlo comporterebbe la loro perdita, quindi la disinstallazione si ferma invece: il plugin rimane installato e nulla che ha salvato viene eliminato.3944Quando Claude Code ha rimosso la voce del plugin da `enabledPlugins` e ha letto di nuovo i file delle impostazioni di quel scope, il plugin era ancora attivato lì, oppure un file che potrebbe attivarlo non poteva essere letto o controllato. Eliminare le opzioni salvate del plugin, i segreti e i dati mentre una voce delle impostazioni potrebbe riattivarlo comporterebbe la loro perdita, quindi la disinstallazione si ferma invece: il plugin rimane installato e nulla che ha salvato viene eliminato.

3894 3945 

fast-mode.md +2 −0

Details

72 72 

73Digita `/fast on` nella sessione per attivare la modalità veloce. Rimane attiva solo per quella sessione e non viene salvata come impostazione predefinita. I [requisiti](#requirements) si applicano anche nelle sessioni cloud.73Digita `/fast on` nella sessione per attivare la modalità veloce. Rimane attiva solo per quella sessione e non viene salvata come impostazione predefinita. I [requisiti](#requirements) si applicano anche nelle sessioni cloud.

74 74 

75Nel browser su [claude.ai/code](https://claude.ai/code), puoi anche attivare e disattivare la modalità veloce dal menu del modello sulla casella dei messaggi. Il menu mostra l'interruttore quando il tuo piano include la modalità veloce e il modello selezionato la supporta.

76 

75<h2 id="understand-the-cost-tradeoff">77<h2 id="understand-the-cost-tradeoff">

76 Comprendi il compromesso di costo78 Comprendi il compromesso di costo

77</h2>79</h2>

Details

312| [Computer use](/docs/it/computer-use) | ✓ | ✓ | ✗ | ✗ |312| [Computer use](/docs/it/computer-use) | ✓ | ✓ | ✗ | ✗ |

313| Dispatch ([Desktop](/docs/it/desktop#sessions-from-dispatch)) | ✓ | ✓ | ✗ | ✗ |313| Dispatch ([Desktop](/docs/it/desktop#sessions-from-dispatch)) | ✓ | ✓ | ✗ | ✗ |

314| [Code Review](/docs/it/code-review) | ✗ | ✗ | ✓ | ✓ |314| [Code Review](/docs/it/code-review) | ✗ | ✗ | ✓ | ✓ |

315| [Artifacts](/docs/it/artifacts) | ✓ | ✓ | ✓ | Admin-enabled |315| [Artifacts](/docs/it/artifacts) | ✓ | ✓ | ✓ | ✓ |

316| [Dashboard analytics e metriche di contribuzione](/docs/it/analytics) | ✗ | ✗ | ✓ | ✓ |316| [Dashboard analytics e metriche di contribuzione](/docs/it/analytics) | ✗ | ✗ | ✓ | ✓ |

317| [Enterprise Analytics API](/docs/it/analytics#access-data-programmatically) | ✗ | ✗ | ✗ | ✓ |317| [Enterprise Analytics API](/docs/it/analytics#access-data-programmatically) | ✗ | ✗ | ✗ | ✓ |

318| [Impostazioni gestite dal server](/docs/it/server-managed-settings) | ✗ | ✗ | ✓ | ✓ |318| [Impostazioni gestite dal server](/docs/it/server-managed-settings) | ✗ | ✗ | ✓ | ✓ |

fullscreen.md +1 −1

Details

294 294 

295Con la cattura del mouse disabilitata, lo scorrimento da tastiera con `PgUp`, `PgDn`, `Ctrl+Home` e `Ctrl+End` funziona ancora, e il vostro terminale gestisce la selezione in modo nativo. Perdete il click-per-posizionare-il-cursore, il click-per-espandere, il click-su-URL e lo scorrimento con la rotella all'interno di Claude Code.295Con la cattura del mouse disabilitata, lo scorrimento da tastiera con `PgUp`, `PgDn`, `Ctrl+Home` e `Ctrl+End` funziona ancora, e il vostro terminale gestisce la selezione in modo nativo. Perdete il click-per-posizionare-il-cursore, il click-per-espandere, il click-su-URL e lo scorrimento con la rotella all'interno di Claude Code.

296 296 

297Per mantenere lo scorrimento con la rotella ma disattivare la gestione di click, trascinamento e hover, impostate invece `CLAUDE_CODE_DISABLE_MOUSE_CLICKS=1`. Richiede Claude Code v2.1.195 o successivo. `CLAUDE_CODE_DISABLE_MOUSE` ha la precedenza quando entrambe le variabili sono impostate.297Per mantenere lo scorrimento con la rotella ma disattivare la gestione di click, trascinamento e hover, impostate invece `CLAUDE_CODE_DISABLE_MOUSE_CLICKS=1`. `CLAUDE_CODE_DISABLE_MOUSE` ha la precedenza quando entrambe le variabili sono impostate.

298 298 

299Con i click disabilitati, Claude Code cattura ancora il mouse, quindi la rotella e il touchpad scorrono la conversazione ma i click sinistri non fanno nulla all'interno di Claude Code. Dovete comunque tenere premuto il tasto del vostro terminale per la selezione nativa con click-and-drag. Il click destro e la colla con il tasto centrale continuano a funzionare sui terminali che li supportano.299Con i click disabilitati, Claude Code cattura ancora il mouse, quindi la rotella e il touchpad scorrono la conversazione ma i click sinistri non fanno nulla all'interno di Claude Code. Dovete comunque tenere premuto il tasto del vostro terminale per la selezione nativa con click-and-drag. Il click destro e la colla con il tasto centrale continuano a funzionare sui terminali che li supportano.

300 300 

Details

43 43 

44Claude Code quindi spinge un ramo con i file di flusso di lavoro che selezioni, già impostati per usare quel secret, e apre GitHub nel tuo browser con una pull request pronta per essere creata. Crea e unisci quella pull request, e `@claude` funziona nel repository.44Claude Code quindi spinge un ramo con i file di flusso di lavoro che selezioni, già impostati per usare quel secret, e apre GitHub nel tuo browser con una pull request pronta per essere creata. Crea e unisci quella pull request, e `@claude` funziona nel repository.

45 45 

46Per interrompere la configurazione a metà strada, premi Esc. Un passaggio già in corso si completa e nessun passaggio successivo inizia. Il messaggio di chiusura elenca ciò che è già accaduto nel repository, come un ramo spinto o un secret salvato.

47 

46Se selezioni il flusso di lavoro di revisione, Claude pubblica ogni revisione sulla pull request stessa, come commento inline su ogni problema che trova o come un commento di riepilogo quando non ne trova nessuno. Claude salta alcune pull request, come le bozze. L'[esempio del flusso di lavoro di revisione](#run-a-skill) usa la stessa skill e le elenca. Prima della v2.1.229, Claude scriveva la sua revisione solo nel log di esecuzione del flusso di lavoro.48Se selezioni il flusso di lavoro di revisione, Claude pubblica ogni revisione sulla pull request stessa, come commento inline su ogni problema che trova o come un commento di riepilogo quando non ne trova nessuno. Claude salta alcune pull request, come le bozze. L'[esempio del flusso di lavoro di revisione](#run-a-skill) usa la stessa skill e le elenca. Prima della v2.1.229, Claude scriveva la sua revisione solo nel log di esecuzione del flusso di lavoro.

47 49 

48Per aggiornare un flusso di lavoro di revisione che una versione precedente ha generato, fai uno dei seguenti:50Per aggiornare un flusso di lavoro di revisione che una versione precedente ha generato, fai uno dei seguenti:

Details

95 Requisiti di rete95 Requisiti di rete

96</h3>96</h3>

97 97 

98Per le sessioni ospitate da Anthropic, la tua istanza GHES deve essere raggiungibile dall'infrastruttura Anthropic in modo che Claude possa clonare repository e pubblicare commenti di revisione. Se la tua istanza GHES è dietro un firewall, inserisci nella whitelist gli [indirizzi IP in uscita](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses) di Anthropic. Le sessioni in un [ambiente self-hosted](/docs/it/self-hosted-environments-deploy#configure-git) clonano dall'interno della tua rete, a meno che il runner non opti per il [proxy git Anthropic](/docs/it/self-hosted-environments-deploy#use-the-anthropic-git-proxy), che recupera dal lato di Anthropic e necessita della stessa raggiungibilità; il [connettore SCM](/docs/it/self-hosted-environments-reference#scm-connector-flags) copre i flussi pre-sessione ospitati, come il selettore di repository, per un host GHES che è instradabile solo internamente.98Per le sessioni ospitate da Anthropic, la tua istanza GHES deve essere raggiungibile dall'infrastruttura Anthropic in modo che Claude possa clonare repository e pubblicare commenti di revisione. Se la tua istanza GHES è dietro un firewall, inserisci nella whitelist gli [indirizzi IP in uscita](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses) di Anthropic. Le sessioni in un [ambiente self-hosted](/docs/it/self-hosted-environments-deploy#configure-git) clonano dall'interno della tua rete, a meno che il runner non opti per il [proxy git Anthropic](/docs/it/self-hosted-environments-deploy#use-the-anthropic-git-proxy), che recupera dal lato di Anthropic e necessita della stessa raggiungibilità. I flussi pre-sessione ospitati, come il selettore di repository, vengono eseguiti dal lato di Anthropic prima dell'inizio di una sessione. Hanno bisogno che la tua istanza GHES sia raggiungibile dall'infrastruttura Anthropic anche quando la sessione viene eseguita in un ambiente self-hosted. Il [connettore SCM](/docs/it/self-hosted-environments-reference#scm-connector-flags) non è disponibile, quindi questi flussi non possono raggiungere un host GHES che è instradabile solo internamente.

99 99 

100<h2 id="developer-workflow">100<h2 id="developer-workflow">

101 Flusso di lavoro dello sviluppatore101 Flusso di lavoro dello sviluppatore


246 Istanza GHES non raggiungibile246 Istanza GHES non raggiungibile

247</h3>247</h3>

248 248 

249Se le revisioni o le sessioni cloud ospitate da Anthropic si esauriscono, la tua istanza GHES potrebbe non essere raggiungibile dall'infrastruttura Anthropic. Conferma che il tuo firewall consente connessioni in entrata dagli [indirizzi IP in uscita di Anthropic](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses). Le sessioni in un [ambiente self-hosted](/docs/it/self-hosted-environments) raggiungono GHES dall'interno della tua rete, quindi per loro controlla il percorso di rete del runner stesso e il [connettore SCM](/docs/it/self-hosted-environments-reference#scm-connector-flags) invece.249Se le revisioni o le sessioni cloud ospitate da Anthropic si esauriscono, la tua istanza GHES potrebbe non essere raggiungibile dall'infrastruttura Anthropic. Conferma che il tuo firewall consente connessioni in entrata dagli [indirizzi IP in uscita di Anthropic](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses). Le sessioni in un [ambiente self-hosted](/docs/it/self-hosted-environments) raggiungono GHES dall'interno della tua rete, quindi quando uno di essi non riesce a clonare, controlla il percorso di rete del runner stesso. Per il selettore di repository e altri flussi pre-sessione ospitati, vedi [Requisiti di rete](#network-requirements).

250 250 

251<h3 id="session-start-fails-with-unable-to-get-organization-uuid">251<h3 id="session-start-fails-with-unable-to-get-organization-uuid">

252 L'avvio della sessione fallisce con `Unable to get organization UUID`252 L'avvio della sessione fallisce con `Unable to get organization UUID`

glossary.md +1 −1

Details

56 Artifact56 Artifact

57</h3>57</h3>

58 58 

59Una pagina web live e interattiva che Claude Code pubblica dalla tua sessione a un URL privato su claude.ai, così puoi vedere l'output visivamente o condividerlo invece di leggere il testo del terminale. La pagina si aggiorna sul posto quando la sessione viene ripubblicata. Gli artifact che crei da Claude Code appaiono nella stessa galleria degli artifact creati nelle conversazioni di claude.ai. La condivisione dipende dal tuo piano: su Pro e Max, un link pubblico che chiunque può aprire; su Team ed Enterprise, la condivisione all'interno della tua organizzazione, più link pubblici una volta che un Owner li abilita.59Una pagina web live e interattiva che Claude Code pubblica dalla tua sessione a un URL privato su claude.ai, così puoi vedere l'output visivamente o condividerlo invece di leggere il testo del terminale. La pagina si aggiorna sul posto quando la sessione viene ripubblicata. Gli artifact che crei da Claude Code appaiono nella stessa galleria degli artifact creati nelle conversazioni di claude.ai. Le opzioni di condivisione dipendono dal tuo piano: vedi [Share an artifact](/docs/it/artifacts#share-an-artifact).

60 60 

61Scopri di più: [Share session output as artifacts](/docs/it/artifacts)61Scopri di più: [Share session output as artifacts](/docs/it/artifacts)

62 62 

Details

315 315 

316Claude Sonnet 5, Opus 4.6 e versioni successive, e Sonnet 4.6 supportano la [finestra di contesto da 1M token](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) su Google Cloud's Agent Platform. Sonnet 5 funziona sempre con la finestra da 1M, senza alcuna variante `[1m]` da selezionare. Per gli altri modelli, Claude Code abilita automaticamente la finestra di contesto estesa quando selezioni una variante di modello 1M.316Claude Sonnet 5, Opus 4.6 e versioni successive, e Sonnet 4.6 supportano la [finestra di contesto da 1M token](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) su Google Cloud's Agent Platform. Sonnet 5 funziona sempre con la finestra da 1M, senza alcuna variante `[1m]` da selezionare. Per gli altri modelli, Claude Code abilita automaticamente la finestra di contesto estesa quando selezioni una variante di modello 1M.

317 317 

318La [procedura guidata di configurazione](#sign-in-with-agent-platform) offre un'opzione di contesto 1M quando fissa i modelli. Per abilitarla per un modello fissato manualmente, aggiungi `[1m]` all'ID del modello. Consulta [Fissa i modelli per le distribuzioni di terze parti](/docs/it/model-config#pin-models-for-third-party-deployments) per i dettagli.318La [procedura guidata di configurazione](#sign-in-with-agent-platform) offre un'opzione di contesto 1M quando fissa i modelli. Per abilitarla per un modello fissato manualmente, aggiungi `[1m]` all'ID del modello. Consulta [Fissa i modelli per le distribuzioni di terze parti](/docs/it/model-config#pin-models-for-third-party-deployments) per i dettagli, incluso come utilizzare la finestra 1M senza modificare il pin.

319 319 

320<h2 id="troubleshooting">320<h2 id="troubleshooting">

321 Risoluzione dei problemi321 Risoluzione dei problemi

hooks.md +217 −210

Details

274 274 

275Gli hook dai file di impostazioni, dalle impostazioni di policy gestite e dai plugin vengono eseguiti anche all'interno di [subagenti](/docs/it/sub-agents). Quando un subagent chiama uno strumento, gli eventi dello strumento come `PreToolUse` e `PostToolUse` attivano gli stessi hook configurati della conversazione principale, e l'input contiene i campi di input comuni `agent_id` e `agent_type` [](#common-input-fields) che identificano il subagent.275Gli hook dai file di impostazioni, dalle impostazioni di policy gestite e dai plugin vengono eseguiti anche all'interno di [subagenti](/docs/it/sub-agents). Quando un subagent chiama uno strumento, gli eventi dello strumento come `PreToolUse` e `PostToolUse` attivano gli stessi hook configurati della conversazione principale, e l'input contiene i campi di input comuni `agent_id` e `agent_type` [](#common-input-fields) che identificano il subagent.

276 276 

277Gli amministratori aziendali possono utilizzare `allowManagedHooksOnly` per limitare quali hook vengono eseguiti:277Gli amministratori possono utilizzare [`allowManagedHooksOnly`](/docs/it/settings-reference#allowmanagedhooksonly) nelle [impostazioni gestite](/docs/it/managed-settings) per limitare quali hook vengono eseguiti:

278 278 

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

280* Claude Code restringe anche le tue impostazioni [`statusLine`](/docs/it/statusline), [`fileSuggestion`](/docs/it/settings-reference#filesuggestion), e [`subagentStatusLine`](/docs/it/statusline#subagent-status-lines) alle impostazioni gestite280* Claude Code restringe anche le tue impostazioni [`statusLine`](/docs/it/statusline), [`fileSuggestion`](/docs/it/settings-reference#filesuggestion), e [`subagentStatusLine`](/docs/it/statusline#subagent-status-lines) alle impostazioni gestite


304 304 

305Un matcher sul percorso dell'espressione regolare viene testato con `RegExp.prototype.test` di JavaScript, che ha successo su una corrispondenza in qualsiasi punto del valore. `Edit.*` corrisponde sia a `Edit` che a `NotebookEdit`; racchiudi il pattern in `^` e `$`, come in `^Edit$`, quando hai bisogno di una corrispondenza di intera stringa.305Un matcher sul percorso dell'espressione regolare viene testato con `RegExp.prototype.test` di JavaScript, che ha successo su una corrispondenza in qualsiasi punto del valore. `Edit.*` corrisponde sia a `Edit` che a `NotebookEdit`; racchiudi il pattern in `^` e `$`, come in `^Edit$`, quando hai bisogno di una corrispondenza di intera stringa.

306 306 

307I trattini nel set di corrispondenza esatta richiedono Claude Code v2.1.195 o successivo. Nelle versioni precedenti un nome con trattino come `code-reviewer` viene valutato come un'espressione regolare non ancorata, quindi si attiva anche per `senior-code-reviewer`; ancoratelo come `^code-reviewer$` in quelle versioni per corrispondere solo a quel nome.

308 

309`FileChanged` e `StopFailure` utilizzano un set di corrispondenza esatta più ristretto di sole lettere, cifre, `_`, e `|`. Un trattino, spazio, o virgola in un matcher per questi due eventi lo mantiene sul percorso dell'espressione regolare, e solo `|` separa le alternative. Ogni altro evento con supporto matcher nella tabella che segue accetta `|` o `,`.307`FileChanged` e `StopFailure` utilizzano un set di corrispondenza esatta più ristretto di sole lettere, cifre, `_`, e `|`. Un trattino, spazio, o virgola in un matcher per questi due eventi lo mantiene sul percorso dell'espressione regolare, e solo `|` separa le alternative. Ogni altro evento con supporto matcher nella tabella che segue accetta `|` o `,`.

310 308 

311L'evento `FileChanged` non segue queste regole quando costruisce la sua lista di osservazione. Vedi [FileChanged](#filechanged).309L'evento `FileChanged` non segue queste regole quando costruisce la sua lista di osservazione. Vedi [FileChanged](#filechanged).


380* `mcp__brave-search__.*` corrisponde a tutti i tool da un server il cui nome contiene un trattino378* `mcp__brave-search__.*` corrisponde a tutti i tool da un server il cui nome contiene un trattino

381* `mcp__.*__write.*` corrisponde a qualsiasi tool il cui nome inizia con `write` da qualsiasi server379* `mcp__.*__write.*` corrisponde a qualsiasi tool il cui nome inizia con `write` da qualsiasi server

382 380 

383I trattini nel set di corrispondenza esatta richiedono Claude Code v2.1.195 o successivo. Nelle versioni precedenti un prefisso nudo con trattino come `mcp__brave-search` viene valutato come un'espressione regolare non ancorata e corrisponde a ogni tool da quel server. La forma `mcp__brave-search__.*` funziona su ogni versione.

384 

385I tool da un [server MCP fornito da plugin](/docs/it/mcp#plugin-provided-mcp-servers) utilizzano un segmento di server con scope che include il nome del plugin: `mcp__plugin_<plugin-name>_<server-name>__<tool>`. Un matcher scritto rispetto alla chiave del server nudo non si attiva mai per questi tool. Per un plugin denominato `my-plugin` che raggruppa un server sotto la chiave `db`, un tool `query` appare come `mcp__plugin_my-plugin_db__query`, quindi il matcher per ogni tool da quel server è `mcp__plugin_my-plugin_db__.*`. Utilizza lo stesso nome di tool con scope nel campo [`if`](#common-fields) di un handler. Vedi [Plugin-provided MCP servers](/docs/it/mcp#plugin-provided-mcp-servers) per come viene costruito il nome con scope.381I tool da un [server MCP fornito da plugin](/docs/it/mcp#plugin-provided-mcp-servers) utilizzano un segmento di server con scope che include il nome del plugin: `mcp__plugin_<plugin-name>_<server-name>__<tool>`. Un matcher scritto rispetto alla chiave del server nudo non si attiva mai per questi tool. Per un plugin denominato `my-plugin` che raggruppa un server sotto la chiave `db`, un tool `query` appare come `mcp__plugin_my-plugin_db__query`, quindi il matcher per ogni tool da quel server è `mcp__plugin_my-plugin_db__.*`. Utilizza lo stesso nome di tool con scope nel campo [`if`](#common-fields) di un handler. Vedi [Plugin-provided MCP servers](/docs/it/mcp#plugin-provided-mcp-servers) per come viene costruito il nome con scope.

386 382 

387Questo esempio registra tutte le operazioni del server memory e convalida le operazioni di scrittura da qualsiasi server MCP:383Questo esempio registra tutte le operazioni del server memory e convalida le operazioni di scrittura da qualsiasi server MCP:


919| :- | :- | :- |915| :- | :- | :- |

920| `PreToolUse` | Sì | Blocca la chiamata dello strumento |916| `PreToolUse` | Sì | Blocca la chiamata dello strumento |

921| `PermissionRequest` | No | Il codice di uscita 2 non è onorato per questo evento e il flusso di autorizzazione procede invariato. Nega attraverso l'oggetto [`decision`](#permissionrequest-decision-control) invece |917| `PermissionRequest` | No | Il codice di uscita 2 non è onorato per questo evento e il flusso di autorizzazione procede invariato. Nega attraverso l'oggetto [`decision`](#permissionrequest-decision-control) invece |

922| `UserPromptSubmit` | Sì | Blocca l'elaborazione del prompt e cancella il prompt |918| `UserPromptSubmit` | Sì | Blocca il prompt, quindi non raggiunge mai Claude. Consultare [What a blocked prompt leaves behind](#what-a-blocked-prompt-leaves-behind) |

923| `UserPromptExpansion` | Sì | Blocca l'espansione |919| `UserPromptExpansion` | Sì | Blocca l'espansione |

924| `Stop` | Sì | Impedisce a Claude di fermarsi, continua la conversazione |920| `Stop` | Sì | Impedisce a Claude di fermarsi, continua la conversazione |

925| `SubagentStop` | Sì | Impedisce al subagent di fermarsi |921| `SubagentStop` | Sì | Impedisce al subagent di fermarsi |


1177 1173 

1178Si esegue quando Claude Code avvia una nuova sessione o riprende una sessione esistente. Utile per caricare il contesto di sviluppo come problemi esistenti o modifiche recenti al tuo codebase, o per configurare variabili di ambiente. Per il contesto statico che non richiede uno script, usa [CLAUDE.md](/docs/it/memory) invece.1174Si esegue quando Claude Code avvia una nuova sessione o riprende una sessione esistente. Utile per caricare il contesto di sviluppo come problemi esistenti o modifiche recenti al tuo codebase, o per configurare variabili di ambiente. Per il contesto statico che non richiede uno script, usa [CLAUDE.md](/docs/it/memory) invece.

1179 1175 

1180SessionStart si esegue su ogni sessione, quindi mantieni questi hook veloci. Solo gli hook `type: "command"` e `type: "mcp_tool"` sono supportati. Vedi [Campi hook MCP tool](#mcp-tool-hook-fields) per quando gli hook `mcp_tool` si eseguono.1176SessionStart si esegue su ogni sessione, quindi mantieni questi hook veloci. Solo gli hook `type: "command"` e `type: "mcp_tool"` sono supportati. Vedi [MCP tool hook fields](#mcp-tool-hook-fields) per quando gli hook `mcp_tool` si eseguono.

1181 1177 

1182Il valore del matcher corrisponde a come la sessione è stata avviata:1178Il valore del matcher corrisponde a come la sessione è stata avviata:

1183 1179 


1187| `resume` | `--resume`, `--continue`, o `/resume` |1183| `resume` | `--resume`, `--continue`, o `/resume` |

1188| `clear` | `/clear` |1184| `clear` | `/clear` |

1189| `compact` | Compattazione automatica o manuale |1185| `compact` | Compattazione automatica o manuale |

1190| `fork` | Una nuova sessione creata da una sessione esistente: `--fork-session` con `--resume` o `--continue`, la copia di background `/fork`, o `/branch` |1186| `fork` | Una nuova sessione creata da una sessione esistente: `--fork-session` con `--resume` o `--continue`, la copia di background `/fork`, `/branch`, o una conversazione che [sposti in background](/docs/it/agent-view#from-inside-a-session) |

1191 1187 

1192Prima della v2.1.214, le sessioni create da fork segnalano la sorgente `"resume"`.1188Prima della v2.1.214, le sessioni create da fork segnalano la sorgente `"resume"`.

1193 1189 

1194Quando avvii una sessione interattiva, riprendi una conversazione al lancio con `--continue` o `--resume`, o esegui `/clear`, gli hook SessionStart si eseguono in background. Puoi digitare subito, e una conversazione che hai ripreso appare senza aspettare gli hook. La prima risposta di Claude attende comunque che gli hook finiscano, quindi il loro contesto raggiunge Claude.1190Quando avvii una sessione interattiva, riprendi una conversazione al lancio con `--continue` o `--resume`, o esegui `/clear`, gli hook SessionStart si eseguono in background. Puoi digitare subito, e una conversazione che hai ripreso appare senza aspettare gli hook. La prima risposta di Claude attende comunque che gli hook finiscano, quindi il loro contesto raggiunge Claude.

1195 1191 

1196Quando cambi conversazione con `/resume` all'interno di una sessione, il cambio attende che gli hook finiscano. Se esegui `/clear` o cambi a un'altra conversazione mentre gli hook di background sono ancora in esecuzione, nulla di ciò che restituiscono si applica alla sessione.1192Quando cambi conversazioni con `/resume` all'interno di una sessione, il cambio attende che gli hook finiscano. Se esegui `/clear` o cambi a un'altra conversazione mentre gli hook di background sono ancora in esecuzione, nulla di ciò che restituiscono si applica alla sessione.

1197 1193 

1198Lo stesso attesa si applica al lancio, inclusa una sessione ripresa: un prompt che invii mentre gli hook SessionStart sono ancora in esecuzione non raggiunge Claude fino a quando non finiscono.1194Lo stesso attesa si applica al lancio, inclusa una sessione ripresa: un prompt che invii mentre gli hook SessionStart sono ancora in esecuzione non raggiunge Claude finché non finiscono.

1199 1195 

1200Durante uno qualsiasi di questi attese, premi `Esc` per riprendere il prompt nell'input senza inviarlo. Gli hook continuano a eseguirsi.1196Durante uno qualsiasi di questi attese, premi `Esc` per riprendere il prompt nell'input senza inviarlo. Gli hook continuano a essere eseguiti.

1201 1197 

1202<h4 id="sessionstart-input">1198<h4 id="sessionstart-input">

1203 Input SessionStart1199 Input SessionStart

1204</h4>1200</h4>

1205 1201 

1206Oltre ai [campi di input comuni](#common-input-fields), gli hook SessionStart ricevono `source` e opzionalmente `model`, `agent_type`, e `session_title`:1202Oltre ai [campi di input comuni](#common-input-fields), gli hook SessionStart ricevono `source` e facoltativamente `model`, `agent_type`, e `session_title`:

1207 1203 

1208| Campo | Descrizione |1204| Campo | Descrizione |

1209| :- | :- |1205| :- | :- |


1212| `agent_type` | Il nome dell'agente, presente quando avvii Claude Code con `claude --agent <name>` |1208| `agent_type` | Il nome dell'agente, presente quando avvii Claude Code con `claude --agent <name>` |

1213| `session_title` | Il titolo della sessione corrente se già impostato, ad esempio tramite `--name` o `/rename`. Un hook che emette `sessionTitle` può controllare `session_title` prima per evitare di sovrascrivere un titolo che l'utente ha impostato esplicitamente |1209| `session_title` | Il titolo della sessione corrente se già impostato, ad esempio tramite `--name` o `/rename`. Un hook che emette `sessionTitle` può controllare `session_title` prima per evitare di sovrascrivere un titolo che l'utente ha impostato esplicitamente |

1214 1210 

1215Quando `source` è `"resume"` o `"fork"` e la trascrizione contiene almeno una risposta da Claude, gli hook SessionStart ricevono anche i quattro campi seguenti. Il tuo hook può usarli per segnalare quale costo ha riprendere una conversazione stantia prima della prima richiesta, ad esempio in un [`systemMessage`](#json-output). Questi campi richiedono Claude Code v2.1.251 o successivo.1211Quando `source` è `"resume"` o `"fork"` e la trascrizione contiene almeno una risposta da Claude, gli hook SessionStart ricevono anche i quattro campi seguenti. Il tuo hook può usarli per segnalare quale costo ha la ripresa di una conversazione obsoleta prima della prima richiesta, ad esempio in un [`systemMessage`](#json-output). Questi campi richiedono Claude Code v2.1.251 o successivo.

1216 1212 

1217| Campo | Descrizione |1213| Campo | Descrizione |

1218| :- | :- |1214| :- | :- |

1219| `seconds_since_last_response` | Secondi di tempo reale trascorsi dall'ultima risposta nella trascrizione ripresa |1215| `seconds_since_last_response` | Secondi di tempo reale dalla risposta più recente nella trascrizione ripresa |

1220| `context_tokens` | Token che la prima richiesta della sessione ripresa reinvia come suo prompt |1216| `context_tokens` | Token che la prima richiesta della sessione ripresa invia di nuovo come suo prompt |

1221| `prompt_cache_likely_expired` | `true` quando l'ultima risposta è più vecchia della [durata della cache del prompt](/docs/it/prompt-caching#cache-lifetime) della sessione o una compattazione successiva ha sostituito la conversazione in cache |1217| `prompt_cache_likely_expired` | `true` quando l'ultima risposta è più vecchia della [durata della cache del prompt](/docs/it/prompt-caching#cache-lifetime) della sessione o una compattazione successiva ha sostituito la conversazione memorizzata nella cache |

1222| `estimated_cache_write_usd` | Costo stimato in dollari USA della scrittura di `context_tokens` nella cache del prompt sul modello della sessione, escludendo la risposta |1218| `estimated_cache_write_usd` | Costo stimato in dollari USA della scrittura di `context_tokens` nella cache del prompt sul modello della sessione, escludendo la risposta |

1223 1219 

1224Questo esempio mostra l'input per una sessione ripresa 90 minuti dopo la sua ultima risposta:1220Questo esempio mostra l'input per una sessione ripresa 90 minuti dopo la sua ultima risposta:


1247| Campo | Descrizione |1243| Campo | Descrizione |

1248| :- | :- |1244| :- | :- |

1249| `additionalContext` | Stringa aggiunta al contesto di Claude all'inizio della conversazione, prima del primo prompt. Vedi [Aggiungi contesto per Claude](#add-context-for-claude) per come il testo viene consegnato e cosa metterci |1245| `additionalContext` | Stringa aggiunta al contesto di Claude all'inizio della conversazione, prima del primo prompt. Vedi [Aggiungi contesto per Claude](#add-context-for-claude) per come il testo viene consegnato e cosa metterci |

1250| `initialUserMessage` | Stringa usata come primo messaggio utente della sessione. Si applica in [modalità non interattiva](/docs/it/headless) con il flag `-p`, dove diventa il primo turno anche se non viene fornito alcun prompt. Se viene fornito un prompt, segue come turno successivo. A differenza di `additionalContext`, che si allega a un turno esistente, questo crea il turno |1246| `initialUserMessage` | Stringa utilizzata come primo messaggio utente della sessione. Si applica in [modalità non interattiva](/docs/it/headless) con il flag `-p`, dove diventa il primo turno anche se non viene fornito alcun prompt. Se viene fornito un prompt, segue come turno successivo. A differenza di `additionalContext`, che si allega a un turno esistente, questo crea il turno |

1251| `sessionTitle` | Imposta il titolo della sessione, con lo stesso effetto di `/rename`. Usa per nominare le sessioni automaticamente dalla cartella di lancio, dal ramo git, o dal nome del worktree. Si applica quando `source` è `"startup"`, `"resume"`, o `"fork"`; ignorato su `"clear"` e `"compact"` |1247| `sessionTitle` | Imposta il titolo della sessione, con lo stesso effetto di `/rename`. Usa per nominare le sessioni automaticamente dalla cartella di lancio, dal ramo git, o dal nome del worktree. Si applica quando `source` è `"startup"`, `"resume"`, o `"fork"`; ignorato su `"clear"` e `"compact"` |

1252| `watchPaths` | Array di percorsi assoluti da osservare per gli eventi [FileChanged](#filechanged) durante questa sessione |1248| `watchPaths` | Array di percorsi assoluti da osservare per gli eventi [FileChanged](#filechanged) durante questa sessione |

1253| `reloadSkills` | Booleano. Quando `true`, Claude Code ripete la scansione delle directory [skill](/docs/it/skills) e command dopo che gli hook SessionStart completano, quindi le skill che l'hook ha installato sono disponibili nella stessa sessione, a partire dal primo prompt |1249| `reloadSkills` | Booleano. Quando `true`, Claude Code ripete la scansione delle directory [skill](/docs/it/skills) e command dopo che gli hook SessionStart completano, quindi le skill che l'hook ha installato sono disponibili nella stessa sessione, a partire dal primo prompt |


1262}1258}

1263```1259```

1264 1260 

1265Poiché lo stdout semplice raggiunge già Claude per questo evento, un hook che carica solo contesto può stampare su stdout direttamente senza costruire JSON. Usa il modulo JSON quando hai bisogno di combinare il contesto con altri campi come `sessionTitle`.1261Poiché lo stdout semplice raggiunge già Claude per questo evento, un hook che carica solo il contesto può stampare su stdout direttamente senza costruire JSON. Usa il modulo JSON quando hai bisogno di combinare il contesto con altri campi come `sessionTitle`.

1266 1262 

1267Usa `reloadSkills` quando un hook SessionStart installa o aggiorna skill. La scoperta delle skill normalmente si esegue prima che gli hook SessionStart finiscano, quindi i file che l'hook scrive in `~/.claude/skills/` o `.claude/skills/` altrimenti apparirebbero solo nella sessione successiva. Questo esempio sincronizza un repository di skill condiviso e richiede la ripetizione della scansione:1263Usa `reloadSkills` quando un hook SessionStart installa o aggiorna skill. La scoperta delle skill normalmente si esegue prima che gli hook SessionStart finiscano, quindi i file che l'hook scrive in `~/.claude/skills/` o `.claude/skills/` altrimenti apparirebbero solo nella sessione successiva. Questo esempio sincronizza un repository di skill condiviso e richiede la ripetizione della scansione:

1268 1264 


1281 Persistere variabili di ambiente1277 Persistere variabili di ambiente

1282</h4>1278</h4>

1283 1279 

1284Gli hook SessionStart hanno accesso alla variabile di ambiente `CLAUDE_ENV_FILE`, che fornisce un percorso di file dove puoi persistere variabili di ambiente per i comandi Bash successivi.1280Gli hook SessionStart hanno accesso alla variabile di ambiente `CLAUDE_ENV_FILE`, che fornisce un percorso di file dove puoi persistere le variabili di ambiente per i comandi Bash successivi.

1285 1281 

1286Per impostare singole variabili di ambiente, scrivi istruzioni `export` su `CLAUDE_ENV_FILE`. Usa append (`>>`) per preservare le variabili impostate da altri hook:1282Per impostare singole variabili di ambiente, scrivi istruzioni `export` in `CLAUDE_ENV_FILE`. Usa append (`>>`) per preservare le variabili impostate da altri hook:

1287 1283 

1288```bash theme={null}1284```bash theme={null}

1289#!/bin/bash1285#!/bin/bash


1324 Setup1320 Setup

1325</h3>1321</h3>

1326 1322 

1327Si attiva solo quando avvii Claude Code con `--init-only`, o con `--init` o `--maintenance` in [modalità non interattiva](/docs/it/headless) con il flag `-p`. Non si attiva all'avvio normale. Usalo per l'installazione di dipendenze una tantum o la pulizia programmata che attivi esplicitamente da CI o script, separato dall'avvio della sessione normale. Per l'inizializzazione per sessione, usa [SessionStart](#sessionstart) invece.1323Si esegue solo quando avvii Claude Code con `--init-only`, o con `--init` o `--maintenance` in [modalità non interattiva](/docs/it/headless) con il flag `-p`. Non si esegue all'avvio normale. Usalo per l'installazione di dipendenze una tantum o la pulizia programmata che attivi esplicitamente da CI o script, separato dall'avvio della sessione normale. Per l'inizializzazione per sessione, usa [SessionStart](#sessionstart) invece.

1328 1324 

1329Il valore del matcher corrisponde al flag CLI che ha attivato l'hook:1325Il valore del matcher corrisponde al flag CLI che ha attivato l'hook:

1330 1326 


1339 1335 

1340Al successo, `--init-only` non stampa nulla al terminale. Per confermare che gli hook si sono eseguiti, avvia con `claude --debug-file <path> --init-only`, sostituendo `<path>` con una posizione di file di log, e controlla il log per le voci degli hook Setup e SessionStart.1336Al successo, `--init-only` non stampa nulla al terminale. Per confermare che gli hook si sono eseguiti, avvia con `claude --debug-file <path> --init-only`, sostituendo `<path>` con una posizione di file di log, e controlla il log per le voci degli hook Setup e SessionStart.

1341 1337 

1342Poiché Setup non si attiva ad ogni lancio, un plugin che ha bisogno di una dipendenza installata non può fare affidamento solo su Setup. Il modello pratico è controllare la dipendenza al primo utilizzo e installare se assente, ad esempio un hook o una skill che testa per `${CLAUDE_PLUGIN_DATA}/node_modules` ed esegue `npm install` se assente. Vedi la [directory di dati persistenti](/docs/it/plugins/components#path-variables-and-persistent-data) per dove archiviare le dipendenze installate. Se distribuisci il tuo plugin tramite un marketplace, potresti non aver bisogno di questo modello: Claude Code [installa automaticamente le dipendenze del pacchetto Node.js idonee](/docs/it/plugins/loading#node-js-package-dependencies) quando memorizza il plugin nella cache.1338Poiché Setup non si esegue ad ogni lancio, un plugin che ha bisogno di una dipendenza installata non può fare affidamento solo su Setup. Il modello pratico è controllare la dipendenza al primo utilizzo e installare se assente, ad esempio un hook o una skill che testa per `${CLAUDE_PLUGIN_DATA}/node_modules` ed esegue `npm install` se assente. Vedi la [directory di dati persistenti](/docs/it/plugins/components#path-variables-and-persistent-data) per dove archiviare le dipendenze installate. Se distribuisci il tuo plugin tramite un marketplace, potresti non aver bisogno di questo modello: Claude Code [installa automaticamente le dipendenze del pacchetto Node.js idonee](/docs/it/plugins/loading#node-js-package-dependencies) quando memorizza il plugin nella cache.

1343 1339 

1344<h4 id="setup-input">1340<h4 id="setup-input">

1345 Input Setup1341 Input Setup


1361 Controllo decisionale Setup1357 Controllo decisionale Setup

1362</h4>1358</h4>

1363 1359 

1364Gli hook Setup non possono bloccare; l'esecuzione continua su qualsiasi codice di uscita. Su ogni codice di uscita, Claude Code scarta i [campi di output JSON](#json-output) di un hook Setup, come `systemMessage`, `continue`, e `hookSpecificOutput.additionalContext`. Con `-p`, lo stdout, stderr e il codice di uscita di un hook Setup appaiono nell'output dell'esecuzione solo come [eventi `hook_response`](/docs/it/headless#read-session-metadata) quando avvii con `--output-format stream-json --verbose`.1360Gli hook Setup non possono bloccare; l'esecuzione continua su qualsiasi codice di uscita. Su ogni codice di uscita, Claude Code scarta i [campi di output JSON](#json-output) di un hook Setup, come `systemMessage`, `continue`, e `hookSpecificOutput.additionalContext`. Con `-p`, lo stdout, stderr e il codice di uscita di un hook Setup appaiono nell'output dell'esecuzione solo come [`hook_response` events](/docs/it/headless#read-session-metadata) quando avvii con `--output-format stream-json --verbose`.

1365 1361 

1366Gli hook Setup hanno accesso a `CLAUDE_ENV_FILE`. Le variabili scritte su quel file persistono nei comandi Bash successivi per la sessione, proprio come negli [hook SessionStart](#persist-environment-variables). Solo gli hook `type: "command"` si eseguono su `Setup`. Un hook `type: "mcp_tool"` su `Setup` viene sempre saltato, come descritto sotto [Campi hook MCP tool](#mcp-tool-hook-fields).1362Gli hook Setup hanno accesso a `CLAUDE_ENV_FILE`. Le variabili scritte in quel file persistono nei comandi Bash successivi per la sessione, proprio come negli [hook SessionStart](#persist-environment-variables). Solo gli hook `type: "command"` si eseguono su `Setup`. Un hook `type: "mcp_tool"` su `Setup` viene sempre saltato, come descritto sotto [MCP tool hook fields](#mcp-tool-hook-fields).

1367 1363 

1368<h3 id="instructionsloaded">1364<h3 id="instructionsloaded">

1369 InstructionsLoaded1365 InstructionsLoaded

1370</h3>1366</h3>

1371 1367 

1372Si attiva quando un file `CLAUDE.md` o `.claude/rules/*.md` viene caricato nel contesto. Questo evento si attiva all'avvio della sessione per i file caricati con entusiasmo e di nuovo più tardi quando i file vengono caricati pigrizia, ad esempio quando Claude accede a una sottodirectory che contiene un `CLAUDE.md` annidato o quando le regole condizionali con frontmatter `paths:` corrispondono. L'hook non supporta il blocco o il controllo decisionale. Si esegue in modo asincrono per scopi di osservabilità.1368Si esegue quando un file `CLAUDE.md` o `.claude/rules/*.md` viene caricato nel contesto. Questo evento si esegue all'avvio della sessione per i file caricati con entusiasmo e di nuovo più tardi quando i file vengono caricati pigrizia, ad esempio quando Claude accede a una sottodirectory che contiene un `CLAUDE.md` annidato o quando le regole condizionali con frontmatter `paths:` corrispondono. L'hook non supporta il blocco o il controllo decisionale. Si esegue in modo asincrono per scopi di osservabilità.

1373 1369 

1374Questo evento non si attiva quando Claude [legge `AGENTS.md` direttamente](/docs/it/memory#agents-md) tramite l'impostazione **Project instructions**. Si attiva quando un `CLAUDE.md` importa il tuo `AGENTS.md`, con `load_reason` impostato su `include` come per qualsiasi altro file importato, e quando `CLAUDE.md` è un symlink ad esso, come un caricamento `CLAUDE.md` normale.1370Questo evento non si esegue quando Claude [legge `AGENTS.md` direttamente](/docs/it/memory#agents-md) tramite l'impostazione **Project instructions**. Si esegue quando un `CLAUDE.md` importa il tuo `AGENTS.md`, con `load_reason` impostato su `include` come per qualsiasi altro file importato, e quando `CLAUDE.md` è un symlink ad esso, come un caricamento `CLAUDE.md` normale.

1375 1371 

1376Il matcher viene eseguito su `load_reason`. Ad esempio, usa `"matcher": "session_start"` per attivarsi solo per i file caricati all'avvio della sessione, o `"matcher": "path_glob_match|nested_traversal"` per attivarsi solo per i caricamenti pigri.1372Il matcher viene eseguito su `load_reason`. Ad esempio, usa `"matcher": "session_start"` per eseguire solo per i file caricati all'avvio della sessione, o `"matcher": "path_glob_match|nested_traversal"` per eseguire solo per i caricamenti pigri.

1377 1373 

1378<h4 id="instructionsloaded-input">1374<h4 id="instructionsloaded-input">

1379 Input InstructionsLoaded1375 Input InstructionsLoaded


1385| :- | :- |1381| :- | :- |

1386| `file_path` | Percorso assoluto al file di istruzioni che è stato caricato |1382| `file_path` | Percorso assoluto al file di istruzioni che è stato caricato |

1387| `memory_type` | Ambito del file: `"User"`, `"Project"`, `"Local"`, o `"Managed"` |1383| `memory_type` | Ambito del file: `"User"`, `"Project"`, `"Local"`, o `"Managed"` |

1388| `load_reason` | Perché il file è stato caricato: `"session_start"`, `"nested_traversal"`, `"path_glob_match"`, `"include"`, o `"compact"`. Il valore `"compact"` si attiva quando i file di istruzioni vengono ricaricati dopo un evento di compattazione |1384| `load_reason` | Perché il file è stato caricato: `"session_start"`, `"nested_traversal"`, `"path_glob_match"`, `"include"`, o `"compact"`. Il valore `"compact"` si esegue quando i file di istruzioni vengono ricaricati dopo un evento di compattazione |

1389| `globs` | Modelli di glob di percorso dal frontmatter `paths:` del file, se presenti. Presente solo per i caricamenti `path_glob_match` |1385| `globs` | Modelli di glob di percorso dal frontmatter `paths:` del file, se presenti. Presente solo per i caricamenti `path_glob_match` |

1390| `trigger_file_path` | Percorso al file il cui accesso ha attivato questo caricamento, per i caricamenti pigri |1386| `trigger_file_path` | Percorso al file il cui accesso ha attivato questo caricamento, per i caricamenti pigri |

1391| `parent_file_path` | Percorso al file di istruzioni genitore che ha incluso questo, per i caricamenti `include` |1387| `parent_file_path` | Percorso al file di istruzioni genitore che ha incluso questo, per i caricamenti `include` |


1414 1410 

1415Si esegue quando l'utente invia un prompt, prima che Claude lo elabori. Questo ti consente di aggiungere contesto aggiuntivo basato sul prompt/conversazione, convalidare i prompt, o bloccare determinati tipi di prompt.1411Si esegue quando l'utente invia un prompt, prima che Claude lo elabori. Questo ti consente di aggiungere contesto aggiuntivo basato sul prompt/conversazione, convalidare i prompt, o bloccare determinati tipi di prompt.

1416 1412 

1417Gli hook `UserPromptSubmit` hanno un timeout predefinito di 30 secondi per i tipi `command`, `http`, e `mcp_tool`, più breve del default di 600 secondi per quei tipi sulla maggior parte degli altri eventi. Poiché questo hook si esegue prima di ogni prompt e blocca l'elaborazione del modello fino al completamento, un hook bloccato blocca la sessione. Se il tuo hook ha bisogno di più tempo, imposta il campo `timeout` nella voce dell'hook.1413Gli hook `UserPromptSubmit` hanno un timeout predefinito di 30 secondi per i tipi `command`, `http`, e `mcp_tool`, più breve del default di 600 secondi per quei tipi sulla maggior parte degli altri eventi. Poiché questo hook si esegue prima di ogni prompt e blocca l'elaborazione del modello finché non completa, un hook bloccato blocca la sessione. Se il tuo hook ha bisogno di più tempo, imposta il campo `timeout` nella voce dell'hook.

1418 1414 

1419A parte un hook di comando che esegui con [`async: true`](#run-hooks-in-the-background), un hook UserPromptSubmit di comando, HTTP, o MCP tool che raggiunge il suo timeout viene annullato e il suo output, incluso qualsiasi `additionalContext`, viene scartato. Il prompt raggiunge comunque Claude senza quel contesto. La trascrizione mostra un avviso che nomina l'hook, il timeout che si è attivato, e che l'output è stato scartato.1415A parte un hook di comando che esegui con [`async: true`](#run-hooks-in-the-background), un hook `UserPromptSubmit` di comando, HTTP, o MCP tool che raggiunge il suo timeout viene annullato e il suo output, incluso qualsiasi `additionalContext`, viene scartato. Il prompt raggiunge comunque Claude senza quel contesto. La trascrizione mostra un avviso che nomina l'hook, il timeout che si è attivato, e che l'output è stato scartato.

1420 1416 

1421Un [hook di callback Agent SDK](/docs/it/agent-sdk/hooks) su `UserPromptSubmit` che raggiunge il suo timeout blocca il prompt con un messaggio che nomina l'hook e il timeout, perché un callback lì può agire come un gate di policy che non deve fallire aperto. La sessione continua. Prima della v2.1.208, un timeout di callback su quell'evento terminava il turno con un errore di esecuzione.1417Un [hook di callback Agent SDK](/docs/it/agent-sdk/hooks) su `UserPromptSubmit` che raggiunge il suo timeout blocca il prompt con un messaggio che nomina l'hook e il timeout, perché un callback lì può agire come un gate di policy che non deve fallire aperto. La sessione continua. Prima della v2.1.208, un timeout di callback su quell'evento terminava il turno con un errore di esecuzione.

1422 1418 


1448* **Stdout di testo semplice**: Claude Code aggiunge stdout che [tratta come testo semplice](#exit-code-0) al contesto di Claude1444* **Stdout di testo semplice**: Claude Code aggiunge stdout che [tratta come testo semplice](#exit-code-0) al contesto di Claude

1449* **JSON con `additionalContext`**: usa il formato JSON sottostante per più controllo. Il campo `additionalContext` viene aggiunto come contesto1445* **JSON con `additionalContext`**: usa il formato JSON sottostante per più controllo. Il campo `additionalContext` viene aggiunto come contesto

1450 1446 

1451Nessuno dei due canali produce una voce di trascrizione visibile. Lo stdout semplice e il valore `additionalContext` vengono ciascuno iniettati come un promemoria di sistema che inizia con il nome dell'hook; Claude legge entrambi. Per confermare la consegna, controlla il [log di debug](#debug-hooks).1447Nessuno dei due canali produce una voce di trascrizione visibile. Lo stdout semplice e il valore `additionalContext` vengono ciascuno iniettati come un promemoria di sistema che inizia con il nome dell'hook; Claude legge entrambi. Per confermare la consegna, controlla il [debug log](#debug-hooks).

1452 1448 

1453Per bloccare un prompt, restituisci un oggetto JSON con `decision` impostato su `"block"`:1449Per bloccare un prompt, restituisci un oggetto JSON con `decision` impostato su `"block"`:

1454 1450 

1455| Campo | Descrizione |1451| Campo | Descrizione |

1456| :- | :- |1452| :- | :- |

1457| `decision` | `"block"` impedisce l'elaborazione del prompt e lo cancella dal contesto. Ometti per consentire al prompt di procedere |1453| `decision` | `"block"` ferma il prompt prima che raggiunga Claude. Ometti per consentire al prompt di procedere |

1458| `reason` | Mostrato all'utente quando `decision` è `"block"`. Non aggiunto al contesto |1454| `reason` | Mostrato all'utente quando `decision` è `"block"`. Non aggiunto al contesto |

1459| `additionalContext` | Stringa aggiunta al contesto di Claude insieme al prompt inviato. Vedi [Aggiungi contesto per Claude](#add-context-for-claude) |1455| `additionalContext` | Stringa aggiunta al contesto di Claude insieme al prompt inviato. Vedi [Aggiungi contesto per Claude](#add-context-for-claude) |

1460| `sessionTitle` | Imposta il titolo della sessione. Usa per nominare le sessioni automaticamente in base al contenuto del prompt |1456| `sessionTitle` | Imposta il titolo della sessione. Usa per nominare le sessioni automaticamente in base al contenuto del prompt |

1461| `suppressOriginalPrompt` | Se `true` quando `decision` è `"block"`, omette il testo del prompt originale dal messaggio di blocco mostrato all'utente |1457| `suppressOriginalPrompt` | Se `true` quando l'hook blocca il prompt, lascia il testo del prompt fuori dal messaggio di blocco. Vedi [Cosa lascia dietro un prompt bloccato](#what-a-blocked-prompt-leaves-behind) |

1462 1458 

1463Un hook che blocca uscendo con 2 si instrada allo stesso modo di `reason`: il messaggio di blocco mostra il testo stderr all'utente, e non viene aggiunto al contesto.1459Un hook che blocca uscendo con 2 si instrada allo stesso modo di `reason`: il messaggio di blocco mostra il testo stderr all'utente, e non viene aggiunto al contesto.

1464 1460 


1469 "hookSpecificOutput": {1465 "hookSpecificOutput": {

1470 "hookEventName": "UserPromptSubmit",1466 "hookEventName": "UserPromptSubmit",

1471 "additionalContext": "My additional context here",1467 "additionalContext": "My additional context here",

1472 "sessionTitle": "My session title"1468 "sessionTitle": "My session title",

1469 "suppressOriginalPrompt": true

1473 }1470 }

1474}1471}

1475```1472```

1476 1473 

1474<h4 id="what-a-blocked-prompt-leaves-behind">

1475 Cosa lascia dietro un prompt bloccato

1476</h4>

1477 

1478Un prompt bloccato non raggiunge mai Claude, ma il suo testo non viene rimosso ovunque. Per impostazione predefinita il messaggio di blocco mostrato all'utente termina con `Original prompt:` seguito dal testo inviato, e Claude Code scrive quel messaggio nel file di trascrizione della sessione su disco. Per lasciare il testo fuori dal messaggio, stampa JSON con `"suppressOriginalPrompt": true` dentro `hookSpecificOutput`. Questo funziona se l'hook blocca con `decision: "block"` o uscendo con 2. Un hook di uscita-2 che non stampa JSON ottiene sempre il testo del prompt nel suo messaggio di blocco.

1479 

1480`suppressOriginalPrompt` cambia solo il messaggio di blocco. Il testo inviato può ancora apparire in file locali come la trascrizione della sessione e la tua cronologia dei prompt, quindi un hook di blocco non è un modo per mantenere un segreto fuori dal disco. Per limitare o rimuovere quei file, vedi [Plaintext storage](/docs/it/claude-directory#plaintext-storage) e [Clear local data](/docs/it/claude-directory#clear-local-data).

1481 

1477<h3 id="userpromptexpansion">1482<h3 id="userpromptexpansion">

1478 UserPromptExpansion1483 UserPromptExpansion

1479</h3>1484</h3>

1480 1485 

1481Si esegue quando un comando digitato dall'utente si espande in un prompt prima di raggiungere Claude. Usalo per bloccare comandi specifici dall'invocazione diretta, iniettare contesto per una skill particolare, o registrare quali comandi gli utenti invocano. Ad esempio, un hook che corrisponde a `deploy` può bloccare `/deploy` a meno che un file di approvazione non sia presente, o un hook che corrisponde a una skill di revisione può aggiungere la checklist di revisione del team come `additionalContext`.1486Si esegue quando un comando digitato dall'utente si espande in un prompt prima di raggiungere Claude. Usa questo per bloccare comandi specifici dall'invocazione diretta, iniettare contesto per una skill particolare, o registrare quali comandi gli utenti invocano. Ad esempio, un hook che corrisponde a `deploy` può bloccare `/deploy` a meno che un file di approvazione non sia presente, o un hook che corrisponde a una skill di revisione può aggiungere la lista di controllo di revisione del team come `additionalContext`.

1482 1487 

1483Questo evento copre il percorso che `PreToolUse` non copre: un hook `PreToolUse` che corrisponde allo strumento `Skill` si attiva solo quando Claude chiama lo strumento, ma digitare `/skillname` direttamente bypassa `PreToolUse`. `UserPromptExpansion` si attiva su quel percorso diretto.1488Questo evento copre il percorso che `PreToolUse` non copre: un hook `PreToolUse` che corrisponde allo strumento `Skill` si esegue solo quando Claude chiama lo strumento, ma digitare `/skillname` direttamente bypassa `PreToolUse`. `UserPromptExpansion` si esegue su quel percorso diretto.

1484 1489 

1485Corrisponde a `command_name`. Lascia il matcher vuoto per attivarsi su ogni comando di tipo prompt.1490Corrisponde su `command_name`. Lascia il matcher vuoto per eseguire su ogni comando di tipo prompt.

1486 1491 

1487<h4 id="userpromptexpansion-input">1492<h4 id="userpromptexpansion-input">

1488 Input UserPromptExpansion1493 Input UserPromptExpansion


1513 1518 

1514| Campo | Descrizione |1519| Campo | Descrizione |

1515| :- | :- |1520| :- | :- |

1516| `decision` | `"block"` impedisce l'espansione del comando. Ometti per consentire al comando di procedere |1521| `decision` | `"block"` impedisce al comando di espandersi. Ometti per consentirgli di procedere |

1517| `reason` | Mostrato all'utente quando `decision` è `"block"` |1522| `reason` | Mostrato all'utente quando `decision` è `"block"` |

1518| `additionalContext` | Stringa aggiunta al contesto di Claude insieme al prompt espanso. Vedi [Aggiungi contesto per Claude](#add-context-for-claude) |1523| `additionalContext` | Stringa aggiunta al contesto di Claude insieme al prompt espanso. Vedi [Aggiungi contesto per Claude](#add-context-for-claude) |

1519 1524 


1534 MessageDisplay1539 MessageDisplay

1535</h3>1540</h3>

1536 1541 

1537Si esegue mentre un messaggio dell'assistente scorre sullo schermo. Claude Code visualizza il messaggio in incrementi: ogni volta che un batch di righe appena completate è pronto per il rendering, l'hook si esegue una volta con quelle righe e Claude Code esegue il rendering del testo di sostituzione dell'hook al loro posto. Un messaggio lungo produce diverse chiamate; un messaggio breve potrebbe produrne solo una.1542Si esegue mentre un messaggio dell'assistente scorre sullo schermo. Claude Code visualizza il messaggio in incrementi: ogni volta che un batch di righe appena completate è pronto per il rendering, l'hook si esegue una volta con quelle righe e Claude Code esegue il rendering del testo di sostituzione dell'hook al loro posto. Un messaggio lungo produce diverse chiamate; un messaggio breve può produrne solo una.

1538 1543 

1539Usa MessageDisplay per:1544Usa MessageDisplay per:

1540 1545 

1541* rimuovere il markdown per una visualizzazione minima1546* rimuovere markdown per una visualizzazione minima

1542* trasformare il testo che un'applicazione Agent SDK mostra ai suoi utenti1547* trasformare il testo che un'applicazione Agent SDK mostra ai suoi utenti

1543* redarre chiavi API o nomi host interni dalle risposte di Claude1548* redarre chiavi API o nomi host interni dalle risposte di Claude

1544 1549 

1545Claude Code tiene ogni batch fino a quando il tuo hook non ritorna, quindi mantieni l'hook veloce. Se l'hook fallisce o scade, Claude Code visualizza il testo originale. Il timeout predefinito per questo evento è 10 secondi; se il tuo hook ha bisogno di più tempo, imposta il campo `timeout` nella voce dell'hook.1550Claude Code tiene ogni batch finché il tuo hook non ritorna, quindi mantieni l'hook veloce. Se l'hook fallisce o scade, Claude Code visualizza il testo originale. Il timeout predefinito per questo evento è 10 secondi; se il tuo hook ha bisogno di più tempo, imposta il campo `timeout` nella voce dell'hook.

1546 1551 

1547MessageDisplay è solo per la visualizzazione: il testo di sostituzione cambia solo ciò che viene renderizzato sullo schermo. La trascrizione e ciò che Claude vede mantengono il testo originale, quindi Claude non vede mai la sostituzione, e la modalità verbose mostra l'originale. L'hook riceve solo il testo del messaggio dell'assistente, quindi i risultati degli strumenti e il testo che digiti vengono renderizzati invariati.1552MessageDisplay è solo visualizzazione: il testo di sostituzione cambia solo ciò che viene renderizzato sullo schermo. La trascrizione e ciò che Claude vede mantengono il testo originale, quindi Claude non vede mai la sostituzione, e la modalità verbose mostra l'originale. L'hook riceve solo il testo del messaggio dell'assistente, quindi i risultati degli strumenti e il testo che digiti vengono renderizzati invariati.

1548 1553 

1549MessageDisplay non supporta i matcher e si attiva per ogni messaggio dell'assistente che scorre il testo; i messaggi senza testo, come le risposte solo di chiamate di strumenti, non lo attivano.1554MessageDisplay non supporta i matcher e si esegue per ogni messaggio dell'assistente che scorre il testo; i messaggi senza testo, come le risposte solo di chiamate di strumenti, non lo attivano.

1550 1555 

1551Nelle esecuzioni non interattive, incluse le query Agent SDK e `claude -p`, MessageDisplay si esegue una volta per messaggio dell'assistente invece che una volta per batch di righe. La singola chiamata arriva dopo il completamento del messaggio e porta il testo completo del messaggio: `index` è `0`, `final` è `true`, e `delta` contiene l'intero messaggio. Un hook che raccoglie il testo `delta` per ogni messaggio riceve lo stesso testo totale in entrambe le modalità.1556Nelle esecuzioni non interattive, incluse le query Agent SDK e `claude -p`, MessageDisplay si esegue una volta per messaggio dell'assistente invece che una volta per batch di righe. La singola chiamata arriva dopo che il messaggio completa e porta il testo completo del messaggio: `index` è `0`, `final` è `true`, e `delta` contiene l'intero messaggio. Un hook che raccoglie il testo `delta` per ogni messaggio riceve lo stesso testo totale in entrambe le modalità.

1552 1557 

1553<h4 id="messagedisplay-input">1558<h4 id="messagedisplay-input">

1554 Input MessageDisplay1559 Input MessageDisplay


1559| Campo | Descrizione |1564| Campo | Descrizione |

1560| :- | :- |1565| :- | :- |

1561| `turn_id` | UUID del turno corrente |1566| `turn_id` | UUID del turno corrente |

1562| `message_id` | UUID del messaggio dell'assistente visualizzato. Stabile in ogni batch dello stesso messaggio. Questo non è l'ID API `msg_…`, quindi non può essere correlato con gli ID dei messaggi della trascrizione |1567| `message_id` | UUID del messaggio dell'assistente visualizzato. Stabile in ogni batch dello stesso messaggio. Questo non è l'ID API `msg_…`, quindi non può essere correlato con gli ID dei messaggi di trascrizione |

1563| `index` | Indice a base zero di questo batch all'interno del messaggio |1568| `index` | Indice a base zero di questo batch all'interno del messaggio |

1564| `final` | `true` sul batch finale del messaggio. Ogni messaggio ha esattamente un batch finale |1569| `final` | `true` sul batch finale del messaggio. Ogni messaggio ha esattamente un batch finale |

1565| `delta` | Le righe appena completate dall'ultimo batch, incluse le newline finali. Sempre righe intere, tranne il batch finale che potrebbe terminare a metà riga. Nelle esecuzioni interattive, il delta del batch finale è vuoto quando il messaggio termina su una newline, quindi tratta `final`, non un delta non vuoto, come il segnale di fine messaggio. Nelle esecuzioni Agent SDK e `claude -p`, la singola chiamata porta l'intero messaggio |1570| `delta` | Le righe appena completate dalla batch precedente, incluse le newline finali. Sempre righe intere, tranne il batch finale che può terminare a metà riga. Nelle esecuzioni interattive, il delta del batch finale è vuoto quando il messaggio termina su una newline, quindi tratta `final`, non un delta non vuoto, come il segnale di fine messaggio. Nelle esecuzioni Agent SDK e `claude -p`, la singola chiamata porta l'intero messaggio |

1566 1571 

1567```json theme={null}1572```json theme={null}

1568{1573{


1672 PreToolUse1677 PreToolUse

1673</h3>1678</h3>

1674 1679 

1675Si esegue dopo che Claude crea i parametri dello strumento e prima dell'elaborazione della chiamata dello strumento. Corrisponde a qualsiasi nome di strumento tranne `EndConversation`: strumenti incorporati come `Bash`, `PowerShell`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `Workflow`, `WebFetch`, `WebSearch`, `AskUserQuestion`, e `ExitPlanMode`, e qualsiasi [nome di strumento MCP](#match-mcp-tools).1680Si esegue dopo che Claude crea i parametri dello strumento e prima di elaborare la chiamata dello strumento. Corrisponde a qualsiasi nome di strumento tranne `EndConversation`: strumenti incorporati come `Bash`, `PowerShell`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `Workflow`, `WebFetch`, `WebSearch`, `AskUserQuestion`, e `ExitPlanMode`, e qualsiasi [nome di strumento MCP](#match-mcp-tools).

1676 1681 

1677Per eseguire un hook quando un file specifico cambia su disco, indipendentemente da chi lo ha scritto, usa [FileChanged](#filechanged) invece di corrispondere ai nomi degli strumenti di modifica dei file. A differenza di PreToolUse, Claude Code esegue gli hook FileChanged dopo il cambiamento, e non hanno controllo decisionale, quindi non possono bloccare la scrittura.1682Per eseguire un hook quando un file specifico cambia su disco, qualunque cosa lo abbia scritto, usa [FileChanged](#filechanged) invece di corrispondere ai file-editing tools per nome. A differenza di PreToolUse, Claude Code esegue gli hook FileChanged dopo il cambio, e non hanno controllo decisionale, quindi non possono bloccare la scrittura.

1678 1683 

1679<Warning>1684<Warning>

1680 PreToolUse si esegue solo quando Claude chiama uno strumento. I file che [riferisci con `@` nel tuo prompt](/docs/it/common-workflows#reference-files-and-directories) vengono aggiunti senza alcuna chiamata di strumento: Claude Code inserisce i loro contenuti mentre costruisce il prompt, quindi nessun hook PreToolUse si attiva per loro, inclusi gli hook che corrispondono a `Read`. Per bloccare percorsi specifici dai riferimenti `@`, usa una [regola di negazione `Read`](/docs/it/permissions#read-and-edit) invece.1685 PreToolUse si esegue solo quando Claude chiama uno strumento. I file che [riferisci con `@` nel tuo prompt](/docs/it/common-workflows#reference-files-and-directories) vengono aggiunti senza alcuna chiamata di strumento: Claude Code inserisce i loro contenuti mentre costruisce il prompt, quindi nessun hook PreToolUse si esegue per loro, inclusi gli hook che corrispondono a `Read`. Per bloccare percorsi specifici dai riferimenti `@`, usa una [regola di negazione `Read`](/docs/it/permissions#read-and-edit) invece.

1681 1686 

1682 PreToolUse inoltre non si attiva per [`EndConversation`](/docs/it/tools-reference#endconversation-tool-behavior).1687 PreToolUse inoltre non si esegue per [`EndConversation`](/docs/it/tools-reference#endconversation-tool-behavior).

1683</Warning>1688</Warning>

1684 1689 

1685Usa il [controllo decisionale PreToolUse](#pretooluse-decision-control) per consentire, negare, chiedere, o differire la chiamata dello strumento.1690Usa [Controllo decisionale PreToolUse](#pretooluse-decision-control) per consentire, negare, chiedere, o differire la chiamata dello strumento.

1686 1691 

1687Un [hook di callback Agent SDK](/docs/it/agent-sdk/hooks) su `PreToolUse` che supera il suo timeout blocca la chiamata dello strumento, e Claude riceve un risultato di errore che nomina il timeout. Un'esplicita negazione restituita da un altro hook ha ancora la precedenza.1692Un [hook di callback Agent SDK](/docs/it/agent-sdk/hooks) su `PreToolUse` che supera il suo timeout blocca la chiamata dello strumento, e Claude riceve un risultato di errore che nomina il timeout. Un'esplicita negazione restituita da un altro hook ha ancora la precedenza.

1688 1693 


1734 1739 

1735Quando un comando Bash cambia i file in un repository Git, Claude Code può registrare cosa è cambiato. Registra i cambiamenti in ogni modalità di permesso quando l'impostazione [`bashEditDiffEnabled`](/docs/it/settings-reference#basheditdiffenabled) attiva la registrazione; la voce di quell'impostazione dice quali file possono impostarla. Altrimenti la registra solo in modalità auto e modalità `bypassPermissions`, e solo quando Claude Code dirige Claude a modificare i file tramite Bash. Imposta `bashEditDiffEnabled` su `false` per disattivare la registrazione. I comandi di background e i comandi di sola lettura non portano alcun diff.1740Quando un comando Bash cambia i file in un repository Git, Claude Code può registrare cosa è cambiato. Registra i cambiamenti in ogni modalità di permesso quando l'impostazione [`bashEditDiffEnabled`](/docs/it/settings-reference#basheditdiffenabled) attiva la registrazione; la voce di quell'impostazione dice quali file possono impostarla. Altrimenti la registra solo in modalità auto e modalità `bypassPermissions`, e solo quando Claude Code dirige Claude a modificare i file tramite Bash. Imposta `bashEditDiffEnabled` su `false` per disattivare la registrazione. I comandi di background e i comandi di sola lettura non portano alcun diff.

1736 1741 

1737Il tuo [hook PostToolUse](#posttooluse) riceve quindi i file modificati in `tool_response.bashEditDiff`. L'elenco copre ciò che è cambiato nel repository mentre il comando era in esecuzione. I file che Git ignora e i file nei submoduli non sono elencati. Richiede Claude Code v2.1.269 o successivo.1742Il tuo [hook PostToolUse](#posttooluse) riceve quindi i file modificati in `tool_response.bashEditDiff`. L'elenco copre ciò che è cambiato sotto il repository mentre il comando era in esecuzione. I file che Git ignora e i file nei submoduli non sono elencati. Richiede Claude Code v2.1.269 o successivo.

1738 1743 

1739<Note>1744<Note>

1740 L'elenco è best effort e in beta pubblica. Claude Code può perdere un cambiamento, includere un file che un altro processo ha cambiato nello stesso momento, o fermarsi ai suoi limiti di dimensione. La forma del campo potrebbe cambiare. Usa l'elenco per trovare cosa rivedere, non per applicare una policy.1745 L'elenco è best effort e in beta pubblica. Claude Code può perdere un cambio, includere un file che un altro processo ha cambiato nello stesso momento, o fermarsi ai suoi limiti di dimensione. La forma del campo può cambiare. Usa l'elenco per trovare cosa rivedere, non per applicare una policy.

1741</Note>1746</Note>

1742 1747 

1743`changedFiles` e `files` elencano ciò che il comando ha cambiato; i campi rimanenti dicono quanto è completo e quanto è affidabile quell'elenco.1748`changedFiles` e `files` elencano ciò che il comando ha cambiato; i campi rimanenti dicono quanto è completo e quanto è affidabile quell'elenco.


1749| `moreFiles` | number | `2` | Conteggio dei file modificati senza diff in `files` |1754| `moreFiles` | number | `2` | Conteggio dei file modificati senza diff in `files` |

1750| `unavailable` | boolean | `true` | Impostato quando il diff è incompleto o non poteva essere preso |1755| `unavailable` | boolean | `true` | Impostato quando il diff è incompleto o non poteva essere preso |

1751| `skipped` | boolean | `true` | Impostato per un comando Git che sposta l'albero di lavoro, come `git checkout` o `git stash`, quindi Claude Code non prende alcun diff |1756| `skipped` | boolean | `true` | Impostato per un comando Git che sposta l'albero di lavoro, come `git checkout` o `git stash`, quindi Claude Code non prende alcun diff |

1752| `shared` | boolean | `true` | Impostato quando un'altra chiamata dello strumento Bash, come quella di un subagente, si è eseguita nello stesso repository nello stesso momento, quindi alcuni cambiamenti elencati potrebbero essere di quel comando |1757| `shared` | boolean | `true` | Impostato quando un'altra chiamata di strumento Bash, come quella di un subagente, si è eseguita nello stesso repository nello stesso momento, quindi alcuni cambiamenti elencati possono essere di quel comando |

1753 1758 

1754<a id="powershell" />1759<a id="powershell" />

1755 1760 


1768| `timeout` | number | `120000` | Timeout facoltativo in millisecondi |1773| `timeout` | number | `120000` | Timeout facoltativo in millisecondi |

1769| `run_in_background` | boolean | `false` | Se eseguire il comando in background |1774| `run_in_background` | boolean | `false` | Se eseguire il comando in background |

1770 1775 

1771Corrisponde a `Bash|PowerShell` negli hook che ispezionano i comandi shell, in modo che coprano entrambi gli strumenti:1776Corrisponde a `Bash|PowerShell` negli hook che ispezionano i comandi shell, quindi coprono entrambi gli strumenti:

1772 1777 

1773* Su Windows, ovunque lo strumento PowerShell sia abilitato, Claude tratta PowerShell come la shell primaria e instrada i comandi shell attraverso di esso.1778* Su Windows, ovunque lo strumento PowerShell sia abilitato, Claude tratta PowerShell come la shell primaria e instrada i comandi shell attraverso di esso.

1774* Su Windows senza Git Bash, lo strumento è abilitato automaticamente e Claude Code non registra affatto lo strumento Bash.1779* Su Windows senza Git Bash, lo strumento è abilitato automaticamente e Claude Code non registra affatto lo strumento Bash.

1775* Un hook che corrisponde solo a `Bash` non si attiva mai lì.1780* Un hook che corrisponde solo a `Bash` non si esegue mai lì.

1776 1781 

1777<h5 id="write">1782<h5 id="write">

1778 Write1783 Write


1802 Read1807 Read

1803</h5>1808</h5>

1804 1809 

1805Legge il contenuto dei file.1810Legge i contenuti del file.

1806 1811 

1807| Campo | Tipo | Esempio | Descrizione |1812| Campo | Tipo | Esempio | Descrizione |

1808| :- | :- | :- | :- |1813| :- | :- | :- | :- |


1825 Grep1830 Grep

1826</h5>1831</h5>

1827 1832 

1828Cerca il contenuto dei file con espressioni regolari.1833Cerca i contenuti dei file con espressioni regolari.

1829 1834 

1830| Campo | Tipo | Esempio | Descrizione |1835| Campo | Tipo | Esempio | Descrizione |

1831| :- | :- | :- | :- |1836| :- | :- | :- | :- |

1832| `pattern` | string | `"TODO.*fix"` | Modello di espressione regolare da cercare |1837| `pattern` | string | `"TODO.*fix"` | Modello di espressione regolare da cercare |

1833| `path` | string | `"/path/to/dir"` | File o directory facoltativa da cercare |1838| `path` | string | `"/path/to/dir"` | File o directory facoltativo da cercare |

1834| `glob` | string | `"*.ts"` | Modello glob facoltativo per filtrare i file |1839| `glob` | string | `"*.ts"` | Modello glob facoltativo per filtrare i file |

1835| `output_mode` | string | `"content"` | `"content"`, `"files_with_matches"`, o `"count"`. Predefinito a `"files_with_matches"` |1840| `output_mode` | string | `"content"` | `"content"`, `"files_with_matches"`, o `"count"`. Predefinito a `"files_with_matches"` |

1836| `-i` | boolean | `true` | Ricerca senza distinzione tra maiuscole e minuscole |1841| `-i` | boolean | `true` | Ricerca senza distinzione tra maiuscole e minuscole |

1837| `multiline` | boolean | `false` | Abilita la corrispondenza multiriga |1842| `multiline` | boolean | `false` | Abilita la corrispondenza multilinea |

1838 1843 

1839<h5 id="webfetch">1844<h5 id="webfetch">

1840 WebFetch1845 WebFetch


1870| `prompt` | string | `"Find all API endpoints"` | L'attività per l'agente da eseguire |1875| `prompt` | string | `"Find all API endpoints"` | L'attività per l'agente da eseguire |

1871| `description` | string | `"Find API endpoints"` | Breve descrizione dell'attività |1876| `description` | string | `"Find API endpoints"` | Breve descrizione dell'attività |

1872| `subagent_type` | string | `"Explore"` | Tipo di agente specializzato da usare |1877| `subagent_type` | string | `"Explore"` | Tipo di agente specializzato da usare |

1873| `model` | string | `"sonnet"` | Alias del modello facoltativo per sovrascrivere il predefinito |1878| `model` | string | `"sonnet"` | Alias di modello facoltativo per sovrascrivere il predefinito |

1874 1879 

1875Quando una chiamata Agent in primo piano si completa, il tuo [hook PostToolUse](#posttooluse) riceve il risultato del subagente e la telemetria di esecuzione in `tool_response`. Leggi questi campi per ispezionare l'esecuzione; per i rollup di token e costo tra i subagenti, usa i [contatori di token e costo](/docs/it/monitoring-usage#token-counter) filtrati a `query_source` `"subagent"`, poiché `totalTokens` e `usage` coprono solo la richiesta finale:1880Quando una chiamata Agent in primo piano completa, il tuo [hook PostToolUse](#posttooluse) riceve il risultato del subagente e la telemetria di esecuzione in `tool_response`. Leggi questi campi per ispezionare l'esecuzione; per i rollup di token e costo tra i subagenti, usa i [contatori di token e costo](/docs/it/monitoring-usage#token-counter) filtrati a `query_source` `"subagent"`, poiché `totalTokens` e `usage` coprono solo la richiesta finale:

1876 1881 

1877| Campo | Tipo | Esempio | Descrizione |1882| Campo | Tipo | Esempio | Descrizione |

1878| :- | :- | :- | :- |1883| :- | :- | :- | :- |

1879| `status` | string | `"completed"` | `"completed"` per i subagenti in primo piano, `"async_launched"` per i subagenti di background. A partire dalla v2.1.198, i subagenti si eseguono in background per impostazione predefinita, quindi un `run_in_background` omesso produce anche `"async_launched"` |1884| `status` | string | `"completed"` | `"completed"` per i subagenti in primo piano, `"async_launched"` per i subagenti di background. A partire dalla v2.1.198, i subagenti si eseguono in background per impostazione predefinita, quindi un `run_in_background` omesso produce anche `"async_launched"` |

1880| `agentId` | string | `"a4d2c8f1e0b3a297"` | Identificatore per l'esecuzione del subagente |1885| `agentId` | string | `"a4d2c8f1e0b3a297"` | Identificatore per l'esecuzione del subagente |

1881| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | I blocchi di testo finali del subagente, o, per un subagente il cui rapporto passa attraverso `SubagentHandback`, una breve nota su quel hand-back al loro posto |1886| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | I blocchi di testo finali del subagente, o, per un subagente il cui rapporto passa attraverso `SubagentHandback`, una breve nota su quel hand-back al loro posto |

1882| `resolvedModel` | string | `"claude-sonnet-4-5"` | Modello su cui il subagente ha iniziato, che potrebbe differire dal modello richiesto |1887| `resolvedModel` | string | `"claude-sonnet-4-5"` | Modello su cui il subagente ha iniziato, che può differire dal modello richiesto |

1883| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | Modelli usati in ordine, con ripetizioni consecutive compresse; impostato solo quando il modello è stato scambiato a metà esecuzione. Richiede Claude Code v2.1.212 o successivo |1888| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | Modelli usati in ordine, con ripetizioni consecutive collassate; impostato solo quando il modello è stato scambiato a metà esecuzione. Richiede Claude Code v2.1.212 o successivo |

1884| `totalTokens` | number | `12450` | Conteggio dei token dalla richiesta API finale del subagente: token di input, output, e cache combinati. Questo non è un totale su tutta l'esecuzione |1889| `totalTokens` | number | `12450` | Conteggio dei token dalla richiesta API finale del subagente: token di input, output, e cache combinati. Questo non è un totale su tutta l'esecuzione |

1885| `totalDurationMs` | number | `48211` | Durata di tempo reale dell'esecuzione del subagente |1890| `totalDurationMs` | number | `48211` | Durata di tempo reale dell'esecuzione del subagente |

1886| `totalToolUseCount` | number | `7` | Conteggio delle chiamate di strumenti che il subagente ha effettuato |1891| `totalToolUseCount` | number | `7` | Conteggio delle chiamate di strumento che il subagente ha fatto |

1887| `usage` | object | `{"input_tokens": 8320, ...}` | Breakdown dei token per tipo della richiesta API finale: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |1892| `usage` | object | `{"input_tokens": 8320, ...}` | Breakdown dei token per tipo della richiesta API finale: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |

1888 1893 

1889Su Claude Code v2.1.271 o successivo, un subagente che si esegue con lo strumento [`SubagentHandback`](/docs/it/tools-reference), che Claude Code fornisce in [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode), consegna il suo rapporto attraverso quello strumento piuttosto che restituirlo come testo. Il campo `content` del suo risultato `completed` porta quindi una breve nota su quel hand-back piuttosto che il rapporto stesso. Per leggere il rapporto, corrisponde a un hook `PreToolUse` o `PostToolUse` su `SubagentHandback` e leggi `tool_input.message`.1894Su Claude Code v2.1.271 o successivo, un subagente che si esegue con lo strumento [`SubagentHandback`](/docs/it/tools-reference), che Claude Code fornisce in [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode), consegna il suo rapporto attraverso quello strumento piuttosto che restituirlo come testo. Il campo `content` del suo risultato `completed` porta quindi una breve nota su quel hand-back piuttosto che il rapporto stesso. Per leggere il rapporto, corrisponde a un hook `PreToolUse` o `PostToolUse` su `SubagentHandback` e leggi `tool_input.message`.

1890 1895 

1891Per i subagenti di background, lo strumento ritorna quando l'attività passa al background, quindi `tool_response` non porta campi di utilizzo: un lancio di background ritorna immediatamente, e un'attività in primo piano che Claude Code passa al background a metà esecuzione ritorna a quella transizione. Ha `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile`, e `resolvedModel`.1896Per i subagenti di background, lo strumento ritorna quando l'attività si sposta in background, quindi `tool_response` non porta campi di utilizzo: un lancio di background ritorna immediatamente, e un'attività in primo piano che Claude Code sposta in background a metà esecuzione ritorna a quella transizione. Ha `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile`, e `resolvedModel`.

1892 1897 

1893Su una risposta `completed`, `resolvedModel` nomina il modello su cui il subagente ha iniziato, che può differire dal valore `model` in `tool_input`, come quando `availableModels` o un altro override si applica. Su una risposta `async_launched`, `resolvedModel` nomina il modello in uso quando l'agente è passato al background, quindi uno scambio che è accaduto prima del passaggio al background si riflette lì. `modelsUsed` e il comportamento `resolvedModel` al momento del passaggio al background richiedono Claude Code v2.1.212 o successivo.1898Su una risposta `completed`, `resolvedModel` nomina il modello su cui il subagente ha iniziato, che può differire dal valore `model` in `tool_input`, come quando `availableModels` o un altro override si applica. Su una risposta `async_launched`, `resolvedModel` nomina il modello in uso quando l'agente si è spostato in background, quindi uno scambio che è accaduto prima dello spostamento in background si riflette lì. `modelsUsed` e il comportamento `resolvedModel` al momento dello spostamento in background richiedono Claude Code v2.1.212 o successivo.

1894 1899 

1895<a id="askuserquestion" />1900<a id="askuserquestion" />

1896 1901 


1903| Campo | Tipo | Esempio | Descrizione |1908| Campo | Tipo | Esempio | Descrizione |

1904| :- | :- | :- | :- |1909| :- | :- | :- | :- |

1905| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | Domande da presentare, ciascuna con una stringa `question`, un breve `header`, un array `options`, e un flag `multiSelect` facoltativo |1910| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | Domande da presentare, ciascuna con una stringa `question`, un breve `header`, un array `options`, e un flag `multiSelect` facoltativo |

1906| `answers` | object | `{"Which framework?": "React"}` | Facoltativo. Mappa il testo della domanda all'etichetta dell'opzione selezionata. Le risposte multi-select uniscono le etichette con virgole. Claude non imposta questo campo; forniscilo tramite `updatedInput` per rispondere programmaticamente |1911| `answers` | object | `{"Which framework?": "React"}` | Facoltativo. Mappa il testo della domanda all'etichetta dell'opzione selezionata. Le risposte multi-selezione uniscono le etichette con virgole. Claude non imposta questo campo; forniscilo tramite `updatedInput` per rispondere programmaticamente |

1907 1912 

1908<h5 id="exitplanmode">1913<h5 id="exitplanmode">

1909 ExitPlanMode1914 ExitPlanMode


1915| :- | :- | :- | :- |1920| :- | :- | :- | :- |

1916| `plan` | string | `"## Refactor auth\n1. Extract..."` | Contenuto del piano in Markdown. Iniettato dal file del piano su disco |1921| `plan` | string | `"## Refactor auth\n1. Extract..."` | Contenuto del piano in Markdown. Iniettato dal file del piano su disco |

1917| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | Percorso al file del piano. Iniettato |1922| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | Percorso al file del piano. Iniettato |

1918| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | Deprecato. Claude Code accetta il campo ma lo ignora. Prima della v2.1.205, portava permessi basati su prompt che Claude ha richiesto per implementare il piano |1923| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | Deprecato. Claude Code accetta il campo ma lo ignora. Prima della v2.1.205, portava permessi basati su prompt che Claude ha richiesto di implementare il piano |

1919 1924 

1920In `PostToolUse`, `tool_response` è un oggetto con campi `plan` e `filePath` che contengono il piano approvato, più flag di stato interni. Leggi `tool_response.plan` per il contenuto del piano piuttosto che rileggere il file da disco.1925In `PostToolUse`, `tool_response` è un oggetto con campi `plan` e `filePath` che contengono il piano approvato, più flag di stato interno. Leggi `tool_response.plan` per il contenuto del piano piuttosto che rileggere il file da disco.

1921 1926 

1922<h4 id="pretooluse-decision-control">1927<h4 id="pretooluse-decision-control">

1923 Controllo decisionale PreToolUse1928 Controllo decisionale PreToolUse

1924</h4>1929</h4>

1925 1930 

1926Gli hook `PreToolUse` possono controllare se una chiamata di strumento procede. A differenza di altri hook che usano un campo `decision` di livello superiore, PreToolUse restituisce la sua decisione all'interno di un oggetto `hookSpecificOutput`. Questo gli dà un controllo più ricco: quattro risultati (consenti, nega, chiedi, o differisci) più la capacità di modificare l'input dello strumento prima dell'esecuzione.1931Gli hook `PreToolUse` possono controllare se una chiamata di strumento procede. A differenza di altri hook che usano un campo `decision` di livello superiore, PreToolUse restituisce la sua decisione dentro un oggetto `hookSpecificOutput`. Questo gli dà un controllo più ricco: quattro risultati (consenti, nega, chiedi, o differisci) più la capacità di modificare l'input dello strumento prima dell'esecuzione.

1927 1932 

1928| Campo | Descrizione |1933| Campo | Descrizione |

1929| :- | :- |1934| :- | :- |

1930| `permissionDecision` | `"allow"` salta il prompt di permesso, tranne per le [azioni che nessuna modalità auto-approva](/docs/it/permission-modes#actions-no-mode-auto-approves) e per `AskUserQuestion` e `ExitPlanMode`, che hanno bisogno di [`updatedInput` accoppiato con esso](#allow-with-updatedinput). `"deny"` impedisce la chiamata dello strumento. `"ask"` chiede all'utente di confermare. `"defer"` esce correttamente in modo che lo strumento possa essere ripreso in seguito. Le [regole di negazione e richiesta](/docs/it/permissions#manage-permissions) vengono comunque valutate indipendentemente da ciò che l'hook restituisce |1935| `permissionDecision` | `"allow"` salta il prompt di permesso, tranne per le [azioni che nessuna modalità auto-approva](/docs/it/permission-modes#actions-no-mode-auto-approves) e per `AskUserQuestion` e `ExitPlanMode`, che hanno bisogno di [`updatedInput` accoppiato con esso](#allow-with-updatedinput). `"deny"` impedisce la chiamata dello strumento. `"ask"` chiede all'utente di confermare. `"defer"` esce con grazia in modo che lo strumento possa essere ripreso in seguito. Le [regole di negazione e richiesta](/docs/it/permissions#manage-permissions) vengono comunque valutate indipendentemente da ciò che l'hook restituisce |

1931| `permissionDecisionReason` | Per `"ask"`, mostrato all'utente ma non a Claude. Per `"deny"`, mostrato a Claude. Per `"allow"` e `"defer"`, scritto nel [log di debug](#debug-hooks) solo |1936| `permissionDecisionReason` | Per `"ask"`, mostrato all'utente ma non a Claude. Per `"deny"`, mostrato a Claude. Per `"allow"` e `"defer"`, scritto nel [debug log](#debug-hooks) solo |

1932| `updatedInput` | Modifica i parametri di input dello strumento prima dell'esecuzione. Sostituisce l'intero oggetto di input, quindi includi i campi invariati insieme a quelli modificati. Claude Code valuta le regole di permesso e l'idoneità [auto-background](/docs/it/tools-reference#background-commands) di un comando Bash rispetto all'input che il tuo hook restituisce, non l'input che Claude ha inviato. Combina con `"allow"` per auto-approvare, o `"ask"` per mostrare l'input modificato all'utente. Per `"defer"`, ignorato |1937| `updatedInput` | Modifica i parametri di input dello strumento prima dell'esecuzione. Sostituisce l'intero oggetto di input, quindi includi i campi invariati insieme a quelli modificati. Claude Code valuta le regole di permesso e l'idoneità [auto-background](/docs/it/tools-reference#background-commands) di un comando Bash rispetto all'input che il tuo hook restituisce, non l'input che Claude ha inviato. Combina con `"allow"` per auto-approvare, o `"ask"` per mostrare l'input modificato all'utente. Per `"defer"`, ignorato |

1933| `additionalContext` | Stringa aggiunta al contesto di Claude insieme al risultato dello strumento. Ignorato quando `permissionDecision` è `"defer"`. Vedi [Aggiungi contesto per Claude](#add-context-for-claude) |1938| `additionalContext` | Stringa aggiunta al contesto di Claude insieme al risultato dello strumento. Ignorato quando `permissionDecision` è `"defer"`. Vedi [Aggiungi contesto per Claude](#add-context-for-claude) |

1934 1939 


1938 1943 

1939Quando un hook restituisce `"ask"`, il prompt di permesso visualizzato all'utente include un'etichetta che identifica da dove viene l'hook: `[settings]` per un hook da qualsiasi file di impostazioni o dal frontmatter dell'agente, `[plugin:<name>]` per l'hook di un plugin, o `[skill]` per un hook dal frontmatter della skill. Questo aiuta gli utenti a capire quale fonte di configurazione sta richiedendo la conferma.1944Quando un hook restituisce `"ask"`, il prompt di permesso visualizzato all'utente include un'etichetta che identifica da dove viene l'hook: `[settings]` per un hook da qualsiasi file di impostazioni o dal frontmatter dell'agente, `[plugin:<name>]` per l'hook di un plugin, o `[skill]` per un hook dal frontmatter della skill. Questo aiuta gli utenti a capire quale fonte di configurazione sta richiedendo la conferma.

1940 1945 

1941Un `"ask"` di un hook forza anche un prompt di permesso in [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode): il classificatore può comunque negare la chiamata dello strumento, ma non può approvare la chiamata silenziosamente. Prima della v2.1.211, il classificatore potrebbe approvare un comando Bash in esecuzione al di fuori della [sandbox](/docs/it/sandboxing) senza mostrare il prompt che l'hook ha richiesto; il classificatore ha comunque applicato le sue stesse regole di sicurezza a quel comando, e un `"deny"` dell'hook è sempre stato onorato.1946Un `"ask"` di un hook forza anche un prompt di permesso in [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode): il classificatore può ancora negare la chiamata dello strumento, ma non può approvare la chiamata silenziosamente. Prima della v2.1.211, il classificatore poteva approvare un comando Bash in esecuzione al di fuori della [sandbox](/docs/it/sandboxing) senza mostrare il prompt che l'hook ha richiesto; il classificatore ha comunque applicato le sue stesse regole di sicurezza a quel comando, e un `"deny"` di un hook è sempre stato onorato.

1942 1947 

1943```json theme={null}1948```json theme={null}

1944{1949{


1956 1961 

1957<span id="allow-with-updatedinput" />1962<span id="allow-with-updatedinput" />

1958 1963 

1959In [modalità non interattiva](/docs/it/headless) con il flag `-p`, Claude Code offre `AskUserQuestion` e `ExitPlanMode` solo quando l'esecuzione ha un [host di permesso](/docs/it/headless#turn-off-permission-prompts-in-unattended-runs) per ricevere il prompt, come un callback `canUseTool` di Agent SDK. Questi strumenti richiedono l'interazione dell'utente. Restituire `permissionDecision: "allow"` insieme a `updatedInput` soddisfa quel requisito: l'hook legge l'input dello strumento da stdin, raccoglie la risposta attraverso la tua UI, e la restituisce in `updatedInput` in modo che lo strumento si esegua senza chiedere. Restituire `"allow"` da solo non è sufficiente per questi strumenti. Per `AskUserQuestion`, ripeti l'array `questions` originale e aggiungi un oggetto [`answers`](#askuserquestion) che mappa il testo di ogni domanda alla risposta scelta.1964In [modalità non interattiva](/docs/it/headless) con il flag `-p`, Claude Code offre `AskUserQuestion` e `ExitPlanMode` solo quando l'esecuzione ha un [permission host](/docs/it/headless#turn-off-permission-prompts-in-unattended-runs) per ricevere il prompt, come un callback `canUseTool` di Agent SDK. Questi strumenti richiedono l'interazione dell'utente. Restituire `permissionDecision: "allow"` insieme a `updatedInput` soddisfa quel requisito: l'hook legge l'input dello strumento da stdin, raccoglie la risposta attraverso la tua UI, e la restituisce in `updatedInput` in modo che lo strumento si esegua senza chiedere. Restituire `"allow"` da solo non è sufficiente per questi strumenti. Per `AskUserQuestion`, ripeti l'array `questions` originale e aggiungi un oggetto [`answers`](#askuserquestion) che mappa il testo di ogni domanda alla risposta scelta.

1960 1965 

1961A partire dalla v2.1.199, uno strumento MCP il cui server lo contrassegna con [`_meta["anthropic/requiresUserInteraction"]`](/docs/it/mcp#require-approval-for-a-specific-tool) è più rigoroso: un hook non può saltare il suo prompt di approvazione con `"allow"`, con o senza `updatedInput`, perché Claude Code non può confermare che l'hook ha raccolto l'interazione di cui lo strumento ha bisogno.1966A partire dalla v2.1.199, uno strumento MCP il cui server lo contrassegna con [`_meta["anthropic/requiresUserInteraction"]`](/docs/it/mcp#require-approval-for-a-specific-tool) è più rigoroso: un hook non può saltare il suo prompt di approvazione con `"allow"`, con o senza `updatedInput`, perché Claude Code non può confermare che l'hook ha raccolto l'interazione di cui lo strumento ha bisogno.

1962 1967 

1963<Note>1968<Note>

1964 PreToolUse in precedenza usava campi `decision` e `reason` di livello superiore, ma questi sono deprecati per questo evento. Usa `hookSpecificOutput.permissionDecision` e `hookSpecificOutput.permissionDecisionReason` invece. I valori deprecati `"approve"` e `"block"` si mappano a `"allow"` e `"deny"` rispettivamente. Altri eventi come PostToolUse e Stop continuano a usare `decision` e `reason` di livello superiore come loro formato attuale.1969 PreToolUse in precedenza usava campi `decision` e `reason` di livello superiore, ma questi sono deprecati per questo evento. Usa `hookSpecificOutput.permissionDecision` e `hookSpecificOutput.permissionDecisionReason` invece. I valori deprecati `"approve"` e `"block"` si mappano a `"allow"` e `"deny"` rispettivamente. Altri eventi come PostToolUse e Stop continuano a usare `decision` e `reason` di livello superiore come loro formato corrente.

1965</Note>1970</Note>

1966 1971 

1967<h4 id="defer-a-tool-call-for-later">1972<h4 id="defer-a-tool-call-for-later">


1970 1975 

1971`"defer"` è per le integrazioni che eseguono `claude -p` come un sottoprocesso e leggono il suo output JSON, come un'app Agent SDK o un'UI personalizzata costruita su Claude Code. Ti consente a quel processo di chiamata di mettere in pausa Claude a una chiamata di strumento, raccogliere l'input attraverso la sua interfaccia, e riprendere da dove si era fermato. Claude Code onora questo valore solo in [modalità non interattiva](/docs/it/headless) con il flag `-p`. Nelle sessioni interattive registra un avviso e ignora il risultato dell'hook.1976`"defer"` è per le integrazioni che eseguono `claude -p` come un sottoprocesso e leggono il suo output JSON, come un'app Agent SDK o un'UI personalizzata costruita su Claude Code. Ti consente a quel processo di chiamata di mettere in pausa Claude a una chiamata di strumento, raccogliere l'input attraverso la sua interfaccia, e riprendere da dove si era fermato. Claude Code onora questo valore solo in [modalità non interattiva](/docs/it/headless) con il flag `-p`. Nelle sessioni interattive registra un avviso e ignora il risultato dell'hook.

1972 1977 

1973Lo strumento `AskUserQuestion` è il caso tipico: Claude vuole chiedere qualcosa all'utente, ma non c'è terminale per rispondere. Un'esecuzione `-p` offre `AskUserQuestion` solo quando ha un [host di permesso](/docs/it/headless#turn-off-permission-prompts-in-unattended-runs), come uno strumento MCP che passi con `--permission-prompt-tool`, quindi avvia l'esecuzione con uno. Il round trip funziona così:1978Lo strumento `AskUserQuestion` è il caso tipico: Claude vuole chiedere qualcosa all'utente, ma non c'è terminale per rispondere. Un'esecuzione `-p` offre `AskUserQuestion` solo quando ha un [permission host](/docs/it/headless#turn-off-permission-prompts-in-unattended-runs), come uno strumento MCP che passi con `--permission-prompt-tool`, quindi avvia l'esecuzione con uno. Il round trip funziona così:

1974 1979 

19751. Claude chiama `AskUserQuestion`. L'hook `PreToolUse` si attiva.19801. Claude chiama `AskUserQuestion`. L'hook `PreToolUse` si esegue.

19762. L'hook restituisce `permissionDecision: "defer"`. Lo strumento non si esegue. Il processo esce con `stop_reason: "tool_deferred"` e la chiamata dello strumento in sospeso preservata nella trascrizione.19812. L'hook restituisce `permissionDecision: "defer"`. Lo strumento non si esegue. Il processo esce con `stop_reason: "tool_deferred"` e la chiamata dello strumento in sospeso preservata nella trascrizione.

19773. Il processo di chiamata legge `deferred_tool_use` dal risultato dell'SDK, visualizza la domanda nella sua UI, e attende una risposta.19823. Il processo di chiamata legge `deferred_tool_use` dal risultato dell'SDK, visualizza la domanda nella sua UI, e attende una risposta.

19784. Il processo di chiamata esegue `claude -p --resume <session-id>` con lo stesso host di permesso. La stessa chiamata dello strumento attiva `PreToolUse` di nuovo.19834. Il processo di chiamata esegue `claude -p --resume <session-id>` con lo stesso permission host. La stessa chiamata dello strumento esegue `PreToolUse` di nuovo.

19795. L'hook restituisce `permissionDecision: "allow"` con la risposta in `updatedInput`. Lo strumento si esegue e Claude continua.19845. L'hook restituisce `permissionDecision: "allow"` con la risposta in `updatedInput`. Lo strumento si esegue e Claude continua.

1980 1985 

1981Il campo `deferred_tool_use` porta l'`id` dello strumento, il `name`, e l'`input`. L'`input` è i parametri che Claude ha generato per la chiamata dello strumento, catturati prima dell'esecuzione:1986Il campo `deferred_tool_use` porta l'`id` dello strumento, il `name`, e l'`input`. L'`input` è i parametri che Claude ha generato per la chiamata dello strumento, catturati prima dell'esecuzione:


1994}1999}

1995```2000```

1996 2001 

1997Non c'è timeout o limite di tentativi. La sessione rimane su disco fino a quando non la riprendi, soggetta alla spazzata di conservazione [`cleanupPeriodDays`](/docs/it/settings-reference#cleanupperioddays), che elimina i file di sessione dopo 30 giorni per impostazione predefinita, seguendo le [regole di spazzata di conservazione](/docs/it/claude-directory#cleaned-up-automatically). Se la risposta non è pronta quando riprendi, l'hook può restituire `"defer"` di nuovo e il processo esce allo stesso modo. Il processo di chiamata controlla quando interrompere il loop restituendo infine `"allow"` o `"deny"` dall'hook.2002Non c'è timeout o limite di tentativi. La sessione rimane su disco finché non la riprendi, soggetta alla spazzata di conservazione [`cleanupPeriodDays`](/docs/it/settings-reference#cleanupperioddays), che elimina i file di sessione dopo 30 giorni per impostazione predefinita, seguendo le [regole di spazzata di conservazione](/docs/it/claude-directory#cleaned-up-automatically). Se la risposta non è pronta quando riprendi, l'hook può restituire `"defer"` di nuovo e il processo esce allo stesso modo. Il processo di chiamata controlla quando interrompere il ciclo restituendo infine `"allow"` o `"deny"` dall'hook.

1998 2003 

1999`"defer"` funziona solo quando Claude effettua una singola chiamata di strumento nel turno. Se Claude effettua diverse chiamate di strumenti contemporaneamente, `"defer"` viene ignorato con un avviso e lo strumento procede attraverso il flusso di permesso normale. Il vincolo esiste perché resume può solo rieseguire uno strumento: non c'è modo di differire una chiamata da un batch senza lasciare le altre irrisolte.2004`"defer"` funziona solo quando Claude fa una singola chiamata di strumento nel turno. Se Claude fa diverse chiamate di strumento contemporaneamente, `"defer"` viene ignorato con un avviso e lo strumento procede attraverso il flusso di permesso normale. Il vincolo esiste perché la ripresa può solo ri-eseguire uno strumento: non c'è modo di differire una chiamata da un batch senza lasciare le altre irrisolte.

2000 2005 

2001Se lo strumento differito non è più disponibile quando riprendi, il processo esce con `stop_reason: "tool_deferred_unavailable"` e `is_error: true` prima che l'hook si attivi. Questo accade quando un server MCP che ha fornito lo strumento non è connesso per la sessione ripresa. Il payload `deferred_tool_use` è ancora incluso in modo che tu possa identificare quale strumento è scomparso.2006Se lo strumento differito non è più disponibile quando riprendi, il processo esce con `stop_reason: "tool_deferred_unavailable"` e `is_error: true` prima che l'hook si esegua. Questo accade quando un server MCP che ha fornito lo strumento non è connesso per la sessione ripresa. Il payload `deferred_tool_use` è ancora incluso in modo che tu possa identificare quale strumento è scomparso.

2002 2007 

2003<Note>2008<Note>

2004 Per riprendere una sessione differita in modalità piano, passa [`--permission-prompt-tool`](/docs/it/cli-reference#cli-flags) insieme a `--resume` in modo che Claude Code possa presentare il piano per l'approvazione. Se passi certi altri flag di lancio, l'esecuzione ripresa non ritorna alla modalità piano; vedi [Riprendi in modalità piano con `-p`](/docs/it/sessions#resume-in-plan-mode-with-p). Richiede Claude Code v2.1.246 o successivo.2009 Per riprendere una sessione differita in modalità piano, passa [`--permission-prompt-tool`](/docs/it/cli-reference#cli-flags) insieme a `--resume` in modo che Claude Code possa presentare il piano per l'approvazione. Se passi certi altri flag di lancio, l'esecuzione ripresa non ritorna alla modalità piano; vedi [Riprendi in modalità piano con `-p`](/docs/it/sessions#resume-in-plan-mode-with-p). Richiede Claude Code v2.1.246 o successivo.

2005 2010 

2006 Quando riprendi con `-p`, Claude Code non ripristina alcun'altra modalità di permesso archiviata. Avvia l'esecuzione nella modalità di permesso che una nuova esecuzione `claude -p` avvierebbe, quindi passa `--permission-mode` o `--dangerously-skip-permissions` di nuovo se la sessione differita ne ha usata una. Quando riprendi con `claude --resume <session-id>` senza `-p`, Claude Code ripristina la modalità di permesso archiviata, con le eccezioni elencate in [modalità di permesso su resume](/docs/it/sessions#permission-mode-on-resume).2011 Quando riprendi con `-p`, Claude Code non ripristina alcun'altra modalità di permesso archiviata. Avvia l'esecuzione nella modalità di permesso che una nuova esecuzione `claude -p` avvierebbe, quindi passa `--permission-mode` o `--dangerously-skip-permissions` di nuovo se la sessione differita ne ha usata una. Quando riprendi con `claude --resume <session-id>` senza `-p`, Claude Code ripristina la modalità di permesso archiviata, con le eccezioni elencate in [modalità di permesso alla ripresa](/docs/it/sessions#permission-mode-on-resume).

2007</Note>2012</Note>

2008 2013 

2009<h3 id="permissionrequest">2014<h3 id="permissionrequest">


2011</h3>2016</h3>

2012 2017 

2013Si esegue quando Claude Code sta per chiederti il permesso di usare uno strumento. Nelle sessioni che non possono mostrare un prompt, come i subagenti di background in [modalità non interattiva](/docs/it/headless), Claude Code esegue comunque questi hook, e se nessun hook restituisce una decisione, nega la chiamata dello strumento.2018Si esegue quando Claude Code sta per chiederti il permesso di usare uno strumento. Nelle sessioni che non possono mostrare un prompt, come i subagenti di background in [modalità non interattiva](/docs/it/headless), Claude Code esegue comunque questi hook, e se nessun hook restituisce una decisione, nega la chiamata dello strumento.

2014Usa il [controllo decisionale PermissionRequest](#permissionrequest-decision-control) per consentire o negare per conto dell'utente.2019Usa [Controllo decisionale PermissionRequest](#permissionrequest-decision-control) per consentire o negare per conto dell'utente.

2015 2020 

2016Usa questo evento quando hai bisogno di un segnale nel momento in cui Claude chiede il permesso di usare uno strumento. Claude Code esegue un hook [Notification](#notification) con il tipo `permission_prompt` solo dopo che il prompt ha atteso circa sei secondi.2021Usa questo evento quando hai bisogno di un segnale nel momento in cui Claude chiede il permesso di usare uno strumento. Claude Code esegue un hook [Notification](#notification) con il tipo `permission_prompt` solo dopo che il prompt ha atteso circa sei secondi.

2017 2022 

2018Claude Code non esegue hook PermissionRequest per la [richiesta di rete](/docs/it/sandboxing#network-isolation) di un comando in sandbox. Per ottenere un segnale per quel prompt, usa il tipo di notifica `permission_prompt`.2023Claude Code non esegue hook PermissionRequest per la [richiesta di rete](/docs/it/sandboxing#network-isolation) di un comando sandboxed. Per ottenere un segnale per quel prompt, usa il tipo di notifica `permission_prompt`.

2019 2024 

2020Corrisponde al nome dello strumento, gli stessi valori di PreToolUse.2025Corrisponde al nome dello strumento, stessi valori di PreToolUse.

2021 2026 

2022<h4 id="permissionrequest-input">2027<h4 id="permissionrequest-input">

2023 Input PermissionRequest2028 Input PermissionRequest


2025 2030 

2026Gli hook PermissionRequest ricevono i campi `tool_name` e `tool_input` come gli hook PreToolUse, ma senza `tool_use_id`. Per uno strumento MCP, ricevono anche l'oggetto [`mcp_server`](#pretooluse-input). Un array `permission_suggestions` facoltativo contiene gli [aggiornamenti di permesso](#permission-update-entries) che Claude Code suggerisce per questa richiesta, come aggiungere una regola di consentimento o cambiare la modalità di permesso.2031Gli hook PermissionRequest ricevono i campi `tool_name` e `tool_input` come gli hook PreToolUse, ma senza `tool_use_id`. Per uno strumento MCP, ricevono anche l'oggetto [`mcp_server`](#pretooluse-input). Un array `permission_suggestions` facoltativo contiene gli [aggiornamenti di permesso](#permission-update-entries) che Claude Code suggerisce per questa richiesta, come aggiungere una regola di consentimento o cambiare la modalità di permesso.

2027 2032 

2028L'array `permission_suggestions` non è un elenco esatto delle opzioni che vedi, perché ogni dialogo di permesso costruisce le sue stesse opzioni. Alcuni dialoghi, come quello per le modifiche ai file, non leggono affatto l'array e derivano le loro opzioni dalla richiesta stessa. Un dialogo che lo legge può comunque trattenere un'opzione il cui suggerimento rimane nell'array, ad esempio quando [`allowManagedPermissionRulesOnly`](/docs/it/settings-reference#allowmanagedpermissionrulesonly) nasconde le opzioni di salvataggio delle regole. Può anche offrire opzioni che non hanno voce di suggerimento, come [**Sì, e passa alla modalità auto**](/docs/it/permission-modes#switch-permission-modes), che cambia la modalità di permesso direttamente piuttosto che attraverso un aggiornamento di permesso.2033L'array `permission_suggestions` non è un elenco esatto delle opzioni che vedi, perché ogni dialogo di permesso costruisce le sue stesse opzioni. Alcuni dialoghi, come quello per le modifiche ai file, non leggono affatto l'array e derivano le loro opzioni dalla richiesta stessa. Un dialogo che lo legge può comunque trattenere un'opzione il cui suggerimento rimane nell'array, ad esempio quando [`allowManagedPermissionRulesOnly`](/docs/it/settings-reference#allowmanagedpermissionrulesonly) nasconde le opzioni di salvataggio delle regole. Può anche offrire opzioni che non hanno una voce di suggerimento, come [**Yes, and switch to auto mode**](/docs/it/permission-modes#switch-permission-modes), che cambia la modalità di permesso direttamente piuttosto che attraverso un aggiornamento di permesso.

2029 2034 

2030Gli hook PreToolUse si eseguono prima di ogni chiamata di strumento, indipendentemente dal fatto che abbia bisogno di permesso. Gli hook PermissionRequest si eseguono solo quando Claude Code sta per chiederti il permesso, o quando altrimenti auto-negherebbe una chiamata che non può chiedere. Nessuno dei due eventi si attiva per [`EndConversation`](/docs/it/tools-reference#endconversation-tool-behavior).2035Gli hook PreToolUse si eseguono prima di ogni chiamata di strumento, indipendentemente dal fatto che abbia bisogno di permesso. Gli hook PermissionRequest si eseguono solo quando Claude Code sta per chiederti il permesso, o quando altrimenti auto-negherebbe una chiamata che non può chiedere. Nessuno dei due eventi si esegue per [`EndConversation`](/docs/it/tools-reference#endconversation-tool-behavior).

2031 2036 

2032```json theme={null}2037```json theme={null}

2033{2038{


2086 Voci di aggiornamento di permesso2091 Voci di aggiornamento di permesso

2087</h4>2092</h4>

2088 2093 

2089Il campo di output `updatedPermissions` e il campo di input [`permission_suggestions`](#permissionrequest-input) usano entrambi lo stesso array di oggetti di voce. Ogni voce ha un `type` che determina i suoi altri campi, e una `destination` che controlla dove viene scritto il cambiamento.2094Sia il campo di output `updatedPermissions` che il campo di input [`permission_suggestions`](#permissionrequest-input) usano lo stesso array di oggetti di voce. Ogni voce ha un `type` che determina i suoi altri campi, e una `destination` che controlla dove il cambio viene scritto.

2090 2095 

2091| `type` | Campi | Effetto |2096| `type` | Campi | Effetto |

2092| :- | :- | :- |2097| :- | :- | :- |


2103 `bypassPermissions` non viene mai persistito come `defaultMode` indipendentemente da `destination`.2108 `bypassPermissions` non viene mai persistito come `defaultMode` indipendentemente da `destination`.

2104</Note>2109</Note>

2105 2110 

2106Il campo `destination` su ogni voce determina se il cambiamento rimane in memoria o persiste in un file di impostazioni.2111Il campo `destination` su ogni voce determina se il cambio rimane in memoria o persiste in un file di impostazioni.

2107 2112 

2108| `destination` | Scrive su |2113| `destination` | Scrive in |

2109| :- | :- |2114| :- | :- |

2110| `session` | solo in memoria, scartato quando la sessione termina |2115| `session` | solo in memoria, scartato quando la sessione termina |

2111| `localSettings` | `.claude/settings.local.json` |2116| `localSettings` | `.claude/settings.local.json` |


2118 PostToolUse2123 PostToolUse

2119</h3>2124</h3>

2120 2125 

2121Si esegue immediatamente dopo che uno strumento si completa con successo.2126Si esegue immediatamente dopo che uno strumento completa con successo.

2122 2127 

2123Corrisponde al nome dello strumento, gli stessi valori di PreToolUse.2128Corrisponde al nome dello strumento, stessi valori di PreToolUse.

2124 2129 

2125Corrisponde più ampiamente quando il nome dello strumento non è il filtro giusto:2130Corrisponde più ampiamente quando il nome dello strumento non è il filtro giusto:

2126 2131 

2127* Per eseguire un hook dopo che qualsiasi strumento si completa con successo, ometti il `matcher` o impostalo su `"*"`. Il tuo hook può quindi scoprire cosa è cambiato da solo, ad esempio eseguendo `git status --porcelain`, che elenca anche i file non tracciati che `git diff` perde. Per le chiamate di strumenti che falliscono, aggiungi lo stesso hook sotto [PostToolUseFailure](#posttoolusefailure).2132* Per eseguire un hook dopo che qualsiasi strumento completa con successo, ometti il `matcher` o impostalo su `"*"`. Il tuo hook può quindi scoprire cosa è cambiato da solo, ad esempio eseguendo `git status --porcelain`, che elenca anche i file non tracciati che `git diff` perde. Per le chiamate di strumento che falliscono, aggiungi lo stesso hook sotto [PostToolUseFailure](#posttoolusefailure).

2128* Per eseguire un hook quando un file specifico cambia su disco, indipendentemente da chi lo ha scritto, usa [FileChanged](#filechanged). Claude Code non esegue un hook `PostToolUse` che corrisponde a `Edit|Write` quando un comando `Bash` o un processo al di fuori di Claude Code riscrive lo stesso file.2133* Per eseguire un hook quando un file specifico cambia su disco, qualunque cosa lo abbia scritto, usa [FileChanged](#filechanged). Claude Code non esegue un hook `PostToolUse` che corrisponde a `Edit|Write` quando un comando `Bash` o un processo al di fuori di Claude Code riscrive lo stesso file.

2129 2134 

2130<h4 id="posttooluse-input">2135<h4 id="posttooluse-input">

2131 Input PostToolUse2136 Input PostToolUse

2132</h4>2137</h4>

2133 2138 

2134Gli hook `PostToolUse` si attivano dopo che uno strumento si è già eseguito con successo. L'input include sia `tool_input`, gli argomenti inviati allo strumento, che `tool_response`, il risultato che ha restituito. Lo schema esatto per entrambi dipende dallo strumento. I percorsi `tool_input` dello strumento di file arrivano nello stesso formato di [PreToolUse](#pretooluse-input): sempre assoluti, con i separatori nativi della piattaforma, quindi backslash su Windows. Per uno strumento MCP, l'input porta anche l'oggetto [`mcp_server`](#pretooluse-input).2139Gli hook `PostToolUse` si eseguono dopo che uno strumento si è già eseguito con successo. L'input include sia `tool_input`, gli argomenti inviati allo strumento, che `tool_response`, il risultato che ha restituito. Lo schema esatto per entrambi dipende dallo strumento. I percorsi `tool_input` degli strumenti di file arrivano nello stesso formato di [PreToolUse](#pretooluse-input): sempre assoluti, con i separatori nativi della piattaforma, quindi backslash su Windows. Per uno strumento MCP, l'input porta anche l'oggetto [`mcp_server`](#pretooluse-input).

2135 2140 

2136```json theme={null}2141```json theme={null}

2137{2142{


2191```2196```

2192 2197 

2193<Warning>2198<Warning>

2194 `updatedToolOutput` cambia solo ciò che Claude vede. Lo strumento si è già eseguito nel momento in cui l'hook si attiva, quindi tutti i file scritti, i comandi eseguiti, o le richieste di rete inviate hanno già avuto effetto. La telemetria come gli span degli strumenti OpenTelemetry e gli eventi di analisi catturano anche l'output originale prima che l'hook si esegua. Per prevenire o modificare una chiamata di strumento prima che si esegua, usa un hook [PreToolUse](#pretooluse) invece.2199 `updatedToolOutput` cambia solo ciò che Claude vede. Lo strumento si è già eseguito nel momento in cui l'hook si esegue, quindi qualsiasi file scritto, comando eseguito, o richiesta di rete inviata ha già avuto effetto. La telemetria come gli span di strumenti OpenTelemetry e gli eventi di analitiche catturano anche l'output originale prima che l'hook si esegua. Per prevenire o modificare una chiamata di strumento prima che si esegua, usa un hook [PreToolUse](#pretooluse) invece.

2195 2200 

2196 Il valore di sostituzione deve corrispondere alla forma di output dello strumento. Gli strumenti incorporati restituiscono oggetti strutturati piuttosto che stringhe semplici. Ad esempio, `Bash` restituisce un oggetto con campi `stdout`, `stderr`, `interrupted`, e `isImage`. Per gli strumenti incorporati, un valore che non corrisponde allo schema di output dello strumento viene ignorato e viene usato l'output originale. L'output dello strumento MCP viene passato senza convalida dello schema. Rimuovere i dettagli di errore di cui Claude ha bisogno può causare che proceda su un'assunzione falsa.2201 Il valore di sostituzione deve corrispondere alla forma di output dello strumento. Gli strumenti incorporati restituiscono oggetti strutturati piuttosto che stringhe semplici. Ad esempio, `Bash` restituisce un oggetto con campi `stdout`, `stderr`, `interrupted`, e `isImage`. Per gli strumenti incorporati, un valore che non corrisponde allo schema di output dello strumento viene ignorato e viene usato l'output originale. L'output dello strumento MCP viene passato senza convalida dello schema. Rimuovere i dettagli di errore di cui Claude ha bisogno può causargli di procedere su un'assunzione falsa.

2197</Warning>2202</Warning>

2198 2203 

2199<h4 id="annotate-a-result-for-the-auto-mode-classifier">2204<h4 id="annotate-a-result-for-the-auto-mode-classifier">


2216Quanto peso il classificatore dà alla nota dipende da dove hai configurato l'hook:2221Quanto peso il classificatore dà alla nota dipende da dove hai configurato l'hook:

2217 2222 

2218* **Hook configurati in Claude Code**: per gli hook dai file di impostazioni, dai plugin, dalle skill, e dal frontmatter dell'agente, il classificatore tratta la nota come contesto non verificato fornito dall'applicazione. La nota non stabilisce mai l'intento dell'utente, e se afferma che hai approvato o richiesto qualcosa, il classificatore controlla quell'affermazione rispetto ai tuoi stessi messaggi nella conversazione2223* **Hook configurati in Claude Code**: per gli hook dai file di impostazioni, dai plugin, dalle skill, e dal frontmatter dell'agente, il classificatore tratta la nota come contesto non verificato fornito dall'applicazione. La nota non stabilisce mai l'intento dell'utente, e se afferma che hai approvato o richiesto qualcosa, il classificatore controlla quell'affermazione rispetto ai tuoi stessi messaggi nella conversazione

2219* **Callback Agent SDK in-process**: quando un'applicazione che incorpora Claude Code registra l'hook come un [callback SDK TypeScript](/docs/it/agent-sdk/hooks) e restituisce la nota durante la sessione dal vivo, il classificatore potrebbe pesare un'affermazione dell'utente trasmessa nella nota come intento dell'utente. Tale affermazione può soddisfare un requisito di consenso che il classificatore accetterebbe da un messaggio che invii, ma non solleva mai un blocco che il tuo stesso messaggio non potrebbe sollevare neanche. Dopo che una sessione riprende, Claude Code tratta le note ripristinate come contesto non verificato. Quando gli hook di entrambi i gruppi annotano la stessa chiamata, il classificatore tratta la nota combinata come non verificata2224* **Callback Agent SDK in-process**: quando un'applicazione che incorpora Claude Code registra l'hook come un [callback SDK TypeScript](/docs/it/agent-sdk/hooks) e restituisce la nota durante la sessione dal vivo, il classificatore può pesare un'affermazione dell'utente trasmessa nella nota come intento dell'utente. Tale affermazione può soddisfare un requisito di consenso che il classificatore accetterebbe da un messaggio che invii, ma non solleva mai un blocco che il tuo stesso messaggio non potrebbe sollevare neanche. Dopo che una sessione riprende, Claude Code tratta le note ripristinate come contesto non verificato. Quando gli hook di entrambi i gruppi annotano la stessa chiamata, il classificatore tratta la nota combinata come non verificata

2220 2225 

2221Claude Code applica questi limiti quando consegna la nota:2226Claude Code applica questi limiti quando consegna la nota:

2222 2227 

2223* **Lunghezza**: Claude Code limita le note per una chiamata di strumento a 2.000 caratteri e tronca il resto. Il limite è condiviso tra ogni hook che risponde a quella chiamata2228* **Lunghezza**: Claude Code limita le note per una chiamata di strumento a 2.000 caratteri e tronca il resto. Il limite è condiviso tra ogni hook che risponde a quella chiamata

2224* **Solo risposte sincrone**: Claude Code ignora il campo nella risposta di un hook che [si esegue in background](#run-hooks-in-the-background), perché quella risposta arriva dopo che Claude Code registra il risultato dello strumento2229* **Solo risposte sincrone**: Claude Code ignora il campo nella risposta di un hook che [si esegue in background](#run-hooks-in-the-background), perché quella risposta arriva dopo che Claude Code registra il risultato dello strumento

2225* **Chiamate che il classificatore non registra**: la trascrizione del classificatore omette le ricerche di sola lettura come le letture di file e le ricerche. Claude Code scarta una nota allegata a una di quelle chiamate2230* **Chiamate che il classificatore non registra**: la trascrizione del classificatore omette le ricerche di sola lettura come le letture di file e le ricerche. Claude Code scarta una nota allegata a una di quelle chiamate

2226* **Interazione con le riscritture**: quando la nota descrive l'output che stai sostituendo con `updatedToolOutput`, restituisci entrambi i campi nella stessa risposta dell'hook. Claude Code scarta la nota se quella riscrittura viene rifiutata o un'altra riscrittura dell'hook la sostituisce. Claude Code consegna una nota che restituisci senza una riscrittura anche quando un altro hook riscrive l'output2231* **Interazione con le riscritture**: quando la nota descrive l'output che stai sostituendo con `updatedToolOutput`, restituisci entrambi i campi nella stessa risposta dell'hook. Claude Code scarta la nota se quella riscrittura viene rifiutata o la riscrittura di un altro hook la sostituisce. Claude Code consegna una nota che restituisci senza una riscrittura anche quando un altro hook riscrive l'output

2227 2232 

2228<Warning>2233<Warning>

2229 Il classificatore legge il contenuto che metti in `classifierContext` come informazioni dall'applicazione che ospita la sessione, quindi non copiare l'output dello strumento non attendibile o il testo di terze parti in esso. Mantieni la nota a una breve affermazione su questa una chiamata, come un fatto sulla sua origine o un'affermazione dell'utente su di essa; non usare il campo per consegnare messaggi non correlati o un flusso di eventi.2234 Il classificatore legge il contenuto che metti in `classifierContext` come informazioni dall'applicazione che ospita la sessione, quindi non copiare l'output dello strumento non attendibile o il testo di terze parti in esso. Mantieni la nota a una breve affermazione su questa una chiamata, come un fatto sulla sua origine o un'affermazione dell'utente su di essa; non usare il campo per consegnare messaggi non correlati o un flusso di eventi.


2233 PostToolUseFailure2238 PostToolUseFailure

2234</h3>2239</h3>

2235 2240 

2236Si esegue quando uno strumento che ha iniziato a eseguirsi fallisce: lo strumento ha lanciato un errore, o uno strumento MCP ha restituito un risultato di errore. Usalo per registrare i fallimenti, inviare avvisi, o fornire feedback correttivo a Claude.2241Si esegue quando uno strumento che ha iniziato a eseguirsi fallisce: lo strumento ha lanciato un errore, o uno strumento MCP ha restituito un risultato di errore. Usa questo per registrare i fallimenti, inviare avvisi, o fornire feedback correttivo a Claude.

2237 2242 

2238Corrisponde al nome dello strumento, gli stessi valori di PreToolUse.2243Corrisponde al nome dello strumento, stessi valori di PreToolUse.

2239 2244 

2240<Note>2245<Note>

2241 Questo evento non si attiva per le chiamate di strumenti rifiutate prima dell'esecuzione: un nome di strumento sconosciuto, input che fallisce la convalida dello schema o specifica dello strumento, o una negazione di permesso. I rifiuti di convalida vengono restituiti come risultati `tool_use_error` e accadono prima che gli hook si eseguano, quindi non attivano né `PreToolUse` né `PostToolUseFailure`. Le negazioni di permesso attivano `PreToolUse` ma non questo evento; vedi [PermissionDenied](#permissiondenied).2246 Questo evento non si esegue per le chiamate di strumento rifiutate prima dell'esecuzione: un nome di strumento sconosciuto, input che fallisce la convalida dello schema o specifica dello strumento, o una negazione di permesso. I rifiuti di convalida vengono restituiti come risultati `tool_use_error` e accadono prima che gli hook si eseguano, quindi non eseguono né `PreToolUse` né `PostToolUseFailure`. Le negazioni di permesso eseguono `PreToolUse` ma non questo evento; vedi [PermissionDenied](#permissiondenied).

2242</Note>2247</Note>

2243 2248 

2244<h4 id="posttoolusefailure-input">2249<h4 id="posttoolusefailure-input">


2269| Campo | Descrizione |2274| Campo | Descrizione |

2270| :- | :- |2275| :- | :- |

2271| `error` | Stringa che descrive cosa è andato male. Il formato dipende dallo strumento che ha fallito |2276| `error` | Stringa che descrive cosa è andato male. Il formato dipende dallo strumento che ha fallito |

2272| `is_interrupt` | Booleano facoltativo. True quando il fallimento ha raggiunto Claude Code come un'interruzione piuttosto che come un errore che lo strumento ha segnalato. L'annullamento di uno strumento in esecuzione non attiva questo hook; il risultato dello strumento porta il messaggio di interruzione invece |2277| `is_interrupt` | Booleano facoltativo. True quando il fallimento ha raggiunto Claude Code come un'interruzione piuttosto che come un errore che lo strumento ha segnalato. L'annullamento di uno strumento in esecuzione non esegue questo hook; il risultato dello strumento porta il messaggio di interruzione invece |

2273| `duration_ms` | Facoltativo. Tempo di esecuzione dello strumento in millisecondi. Esclude il tempo trascorso nei prompt di permesso e negli hook PreToolUse |2278| `duration_ms` | Facoltativo. Tempo di esecuzione dello strumento in millisecondi. Esclude il tempo trascorso nei prompt di permesso e negli hook PreToolUse |

2274 2279 

2275La stringa `error` è generalmente lo stesso testo che Claude riceve come risultato dello strumento fallito. Il suo formato varia per strumento e fallimento. Chiavi il tuo hook su `tool_name`, `is_interrupt`, e la prima riga `Exit code N`; tratta il resto della stringa come testo di visualizzazione, non un formato stabile.2280La stringa `error` è generalmente lo stesso testo che Claude riceve come risultato dello strumento fallito. Il suo formato varia per strumento e fallimento. Chiavi il tuo hook su `tool_name`, `is_interrupt`, e la prima riga `Exit code N`; tratta il resto della stringa come testo di visualizzazione, non un formato stabile.

2276 2281 

2277* Per Bash e PowerShell, un comando che si è eseguito e ha uscito produce una prima riga `Exit code N`, quindi qualsiasi output che il comando ha prodotto come un blocco con stdout e stderr intercalati2282* Per Bash e PowerShell, un comando che si è eseguito e ha uscito produce una prima riga `Exit code N`, quindi qualsiasi output che il comando ha prodotto come un blocco con stdout e stderr intercalati

2278* Un payload potrebbe anche portare un messaggio di fallimento nudo senza una riga di codice di uscita, quando Claude Code non poteva avviare il processo shell stesso2283* Un payload può anche portare un messaggio di fallimento nudo senza una riga di codice di uscita, quando Claude Code non poteva avviare il processo shell stesso

2279* Claude Code tronca nel mezzo le stringhe lunghe intorno a un marcatore `... [N characters truncated] ...`, e può inserire righe proprie, come `Command timed out after 2m 0s`2284* Claude Code tronca nel mezzo le stringhe lunghe intorno a un marcatore `... [N characters truncated] ...`, e può inserire righe proprie, come `Command timed out after 2m 0s`

2280 2285 

2281<h4 id="posttoolusefailure-decision-control">2286<h4 id="posttoolusefailure-decision-control">


2301 PostToolBatch2306 PostToolBatch

2302</h3>2307</h3>

2303 2308 

2304Si esegue una volta dopo che ogni chiamata di strumento in un batch si è risolta, prima che Claude Code invii la richiesta successiva al modello. `PostToolUse` si attiva una volta per strumento, il che significa che si attiva contemporaneamente quando Claude effettua chiamate di strumenti parallele. `PostToolBatch` si attiva esattamente una volta con il batch completo, quindi è il posto giusto per iniettare contesto che dipende dall'insieme di strumenti che si sono eseguiti piuttosto che da qualsiasi singolo strumento. Non c'è matcher per questo evento.2309Si esegue una volta dopo che ogni chiamata di strumento in un batch si è risolta, prima che Claude Code invii la richiesta successiva al modello. `PostToolUse` si esegue una volta per strumento, il che significa che si esegue contemporaneamente quando Claude fa chiamate di strumento parallele. `PostToolBatch` si esegue esattamente una volta con il batch completo, quindi è il posto giusto per iniettare contesto che dipende dall'insieme di strumenti che si sono eseguiti piuttosto che da qualsiasi singolo strumento. Non c'è matcher per questo evento.

2305 2310 

2306<h4 id="posttoolbatch-input">2311<h4 id="posttoolbatch-input">

2307 Input PostToolBatch2312 Input PostToolBatch


2333}2338}

2334```2339```

2335 2340 

2336`tool_response` contiene lo stesso contenuto che il modello riceve nel blocco `tool_result` corrispondente. Il valore è una stringa serializzata o un array di blocchi di contenuto, esattamente come lo strumento lo ha emesso. Per `Read`, questo significa testo con prefisso numero di riga piuttosto che contenuti di file grezzi. Le risposte possono essere grandi, quindi analizza solo i campi di cui hai bisogno.2341`tool_response` contiene lo stesso contenuto che il modello riceve nel blocco `tool_result` corrispondente. Il valore è una stringa serializzata o un array di blocchi di contenuto, esattamente come lo strumento l'ha emesso. Per `Read`, questo significa testo con prefisso numero di riga piuttosto che contenuti di file grezzi. Le risposte possono essere grandi, quindi analizza solo i campi di cui hai bisogno.

2337 2342 

2338<Note>2343<Note>

2339 La forma `tool_response` differisce da quella di `PostToolUse`. `PostToolUse` passa l'oggetto `Output` strutturato dello strumento, come `{filePath: "...", type: "create"}` per `Write`; `PostToolBatch` passa il contenuto `tool_result` serializzato che il modello vede.2344 La forma `tool_response` differisce da quella di `PostToolUse`. `PostToolUse` passa l'oggetto `Output` strutturato dello strumento, come `{filePath: "...", type: "create"}` per `Write`; `PostToolBatch` passa il contenuto `tool_result` serializzato che il modello vede.


2358}2363}

2359```2364```

2360 2365 

2361Restituire `decision: "block"` o `continue: false` ferma il loop agentivo prima della richiesta del modello successivo. Il messaggio di blocco viene da `reason` JSON o `stopReason`, o da stderr all'uscita 2. Lo vedi come un avviso nella trascrizione, e rimane nella conversazione, quindi Claude lo vede quando la conversazione continua.2366Restituire `decision: "block"` o `continue: false` ferma il loop agentivo prima della richiesta del modello successivo. Il messaggio di blocco viene dal JSON `reason` o `stopReason`, o da stderr all'uscita 2. Lo vedi come un avviso nella trascrizione, e rimane nella conversazione, quindi Claude lo vede quando la conversazione continua.

2362 2367 

2363<h3 id="permissiondenied">2368<h3 id="permissiondenied">

2364 PermissionDenied2369 PermissionDenied

2365</h3>2370</h3>

2366 2371 

2367Si esegue quando la [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode) nega una chiamata di strumento, incluso quando nega senza un verdetto del classificatore perché [un controllo di sicurezza separato dalla modalità auto ha rifiutato la richiesta del classificatore stesso](/docs/it/errors#auto-mode-cannot-determine-the-safety-of-an-action) o la sua risposta non ha analizzato. Questo hook si attiva solo in modalità auto: non si esegue quando neghi manualmente un dialogo di permesso, quando un hook `PreToolUse` blocca una chiamata, o quando una regola `deny` corrisponde. Usalo per registrare le negazioni, regolare la configurazione, o dire al modello che potrebbe riprovare la chiamata dello strumento.2372Si esegue quando la [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode) nega una chiamata di strumento, incluso quando nega senza un verdetto del classificatore perché [un controllo di sicurezza separato dalla modalità auto ha rifiutato la richiesta del classificatore stesso](/docs/it/errors#auto-mode-cannot-determine-the-safety-of-an-action) o la sua risposta non ha analizzato. Questo hook si esegue solo in modalità auto: non si esegue quando neghi manualmente un dialogo di permesso, quando un hook `PreToolUse` blocca una chiamata, o quando una regola `deny` corrisponde. Usalo per registrare le negazioni, regolare la configurazione, o dire al modello che può ritentare la chiamata dello strumento.

2368 2373 

2369Corrisponde al nome dello strumento, gli stessi valori di PreToolUse.2374Corrisponde al nome dello strumento, stessi valori di PreToolUse.

2370 2375 

2371<h4 id="permissiondenied-input">2376<h4 id="permissiondenied-input">

2372 Input PermissionDenied2377 Input PermissionDenied


2399 Controllo decisionale PermissionDenied2404 Controllo decisionale PermissionDenied

2400</h4>2405</h4>

2401 2406 

2402Gli hook PermissionDenied possono dire al modello che potrebbe riprovare la chiamata dello strumento negata. Restituisci un oggetto JSON con `hookSpecificOutput.retry` impostato su `true`:2407Gli hook PermissionDenied possono dire al modello che può ritentare la chiamata dello strumento negata. Restituisci un oggetto JSON con `hookSpecificOutput.retry` impostato su `true`:

2403 2408 

2404```json theme={null}2409```json theme={null}

2405{2410{


2410}2415}

2411```2416```

2412 2417 

2413Quando `retry` è `true`, Claude Code aggiunge un messaggio alla conversazione dicendo al modello che potrebbe riprovare la chiamata dello strumento. Claude Code non inverte la negazione stessa. Se il tuo hook non restituisce JSON, o restituisce `retry: false`, la negazione rimane e il modello riceve il messaggio di rifiuto originale.2418Quando `retry` è `true`, Claude Code aggiunge un messaggio alla conversazione dicendo al modello che può ritentare la chiamata dello strumento. Claude Code non inverte la negazione stessa. Se il tuo hook non restituisce JSON, o restituisce `retry: false`, la negazione rimane e il modello riceve il messaggio di rifiuto originale.

2414 2419 

2415Claude Code ignora `retry: true` quando il classificatore ha prodotto [nessun verdetto sull'azione](/docs/it/errors#auto-mode-cannot-determine-the-safety-of-an-action): la sua risposta non ha analizzato, o un controllo di sicurezza separato dalla modalità auto ha rifiutato la richiesta del classificatore. Per quelle negazioni, Claude Code già dice al modello nel messaggio di rifiuto se riprovare più tardi o andare avanti.2420Claude Code ignora `retry: true` quando il classificatore ha prodotto [nessun verdetto sull'azione](/docs/it/errors#auto-mode-cannot-determine-the-safety-of-an-action): la sua risposta non ha analizzato, o un controllo di sicurezza separato dalla modalità auto ha rifiutato la richiesta del classificatore. Per quelle negazioni, Claude Code già dice al modello nel messaggio di rifiuto se ritentare più tardi o procedere.

2416 2421 

2417<h3 id="notification">2422<h3 id="notification">

2418 Notification2423 Notification


2420 2425 

2421Si esegue quando Claude Code invia notifiche. Corrisponde al tipo di notifica. Ometti il matcher per eseguire gli hook per tutti i tipi di notifica.2426Si esegue quando Claude Code invia notifiche. Corrisponde al tipo di notifica. Ometti il matcher per eseguire gli hook per tutti i tipi di notifica.

2422 2427 

2423Ricevi questi eventi di hook anche con le notifiche desktop disattivate: l'impostazione `preferredNotifChannel`, incluso `notifications_disabled`, cambia solo come sei avvisato, non se il tuo hook si esegue.2428Ricevi questi eventi hook anche con le notifiche desktop disattivate: l'impostazione `preferredNotifChannel`, incluso `notifications_disabled`, cambia solo come sei avvisato, non se il tuo hook si esegue.

2424 2429 

2425| Matcher | Quando si attiva |2430| Matcher | Quando si attiva |

2426| :- | :- |2431| :- | :- |

2427| `permission_prompt` | Claude ha bisogno della tua approvazione per usare uno strumento o la [richiesta di rete](/docs/it/sandboxing#network-isolation) di un comando in sandbox, e il prompt ha atteso circa sei secondi |2432| `permission_prompt` | Claude ha bisogno della tua approvazione per usare uno strumento o la [richiesta di rete](/docs/it/sandboxing#network-isolation) di un comando sandboxed, e il prompt ha atteso circa sei secondi |

2428| `idle_prompt` | Claude ha finito di rispondere circa 60 secondi fa e non hai digitato da allora |2433| `idle_prompt` | Claude ha finito di rispondere circa 60 secondi fa e non hai digitato da allora |

2429| `auth_success` | L'autenticazione si completa |2434| `auth_success` | L'autenticazione completa |

2430| `elicitation_dialog` | Un server MCP apre un modulo di elicitazione e non hai digitato per circa sei secondi |2435| `elicitation_dialog` | Un server MCP apre un modulo di elicitazione e non hai digitato per circa sei secondi |

2431| `elicitation_url_dialog` | Un server MCP ti chiede di aprire un URL del browser e non hai digitato per circa sei secondi |2436| `elicitation_url_dialog` | Un server MCP ti chiede di aprire un URL del browser e non hai digitato per circa sei secondi |

2432| `elicitation_complete` | Un server MCP segnala che un'[elicitazione in modalità URL](#elicitation-input) è completa |2437| `elicitation_complete` | Un server MCP segnala che un'[elicitazione in modalità URL](#elicitation-input) è completa |

2433| `elicitation_response` | Una risposta di elicitazione MCP viene inviata al server |2438| `elicitation_response` | Una risposta di elicitazione MCP viene inviata di nuovo al server |

2434| `agent_needs_input` | Una sessione di background inizia ad aspettare il tuo input mentre la [vista agente](/docs/it/agent-view) è aperta in un terminale, o la sessione corrente ti chiede una domanda di configurazione del terminale di un [compagno di squadra del team agente](/docs/it/agent-teams#choose-a-display-mode) e non hai digitato per circa sei secondi |2439| `agent_needs_input` | Una sessione di background inizia ad aspettare il tuo input mentre la [vista agente](/docs/it/agent-view) è aperta in un terminale. Si esegue anche quando una sessione di terminale ti mostra una [domanda di configurazione del terminale del compagno di squadra dell'agente](/docs/it/agent-teams#choose-a-display-mode) o l'avviso della modalità auto sui [costi di richiesta del classificatore](/docs/it/auto-mode-classifier-billing) e non hai digitato per circa sei secondi |

2435| `agent_completed` | Una sessione di background finisce o fallisce. Si attiva solo mentre la [vista agente](/docs/it/agent-view) è aperta in un terminale |2440| `agent_completed` | Una sessione di background finisce o fallisce. Si esegue solo mentre la [vista agente](/docs/it/agent-view) è aperta in un terminale |

2436| `quota_auto_resume_fired` | Claude Code continua il tuo compito dopo che un limite di utilizzo di claude.ai lo ha messo in pausa: al reset, o prima quando qualcosa che fai in Claude Code durante l'attesa, come aggiungere crediti di utilizzo, aggiornare il tuo piano, o cambiare modelli, rende l'utilizzo disponibile di nuovo, con l'[eccezione dell'impostazione del modello](/docs/it/interactive-mode#wait-for-a-usage-limit-to-reset) |2441| `quota_auto_resume_fired` | Claude Code continua il tuo compito dopo che un limite di utilizzo di claude.ai lo ha messo in pausa: al reset, o prima quando qualcosa che fai in Claude Code durante l'attesa, come aggiungere crediti di utilizzo, aggiornare il tuo piano, o cambiare modelli, rende l'utilizzo disponibile di nuovo, con l'[eccezione dell'impostazione del modello](/docs/it/interactive-mode#wait-for-a-usage-limit-to-reset) |

2437| `quota_auto_resume_stale` | Un limite di utilizzo di claude.ai si è resettato mentre il tuo computer dormiva per più di circa 30 minuti. Claude Code attende che tu prema `Enter` invece di continuare. Dopo un sonno più breve continua e attiva `quota_auto_resume_fired` invece |2442| `quota_auto_resume_stale` | Un limite di utilizzo di claude.ai si è resettato mentre il tuo computer dormiva per più di circa 30 minuti. Claude Code attende che tu prema `Enter` invece di continuare. Dopo un sonno più breve continua e esegue `quota_auto_resume_fired` invece |

2438| `quota_auto_resume_disabled` | Claude Code termina l'attesa per un limite di utilizzo di claude.ai senza continuare il tuo compito: [`autoContinueAtUsageLimit`](/docs/it/settings-reference#autocontinueatusagelimit) è stato disattivato o il reset si è spostato più di 24 ore lontano durante un'attesa che Claude Code ha avviato da solo, il compito continuato ha continuato a colpire il limite, o la continuazione è stata bloccata prima di raggiungere il modello. Non si attiva quando premi `Esc` o `Ctrl+C`, o scegli **Non continuare automaticamente** |2443| `quota_auto_resume_disabled` | Claude Code termina la sua attesa per un limite di utilizzo di claude.ai senza continuare il tuo compito: [`autoContinueAtUsageLimit`](/docs/it/settings-reference#autocontinueatusagelimit) è stato disattivato o il reset si è spostato più di 24 ore lontano durante un'attesa che Claude Code ha avviato da solo, il compito continuato ha continuato a colpire il limite, o la continuazione è stata bloccata prima di raggiungere il modello. Non si esegue quando premi `Esc` o `Ctrl+C`, o scegli **Don't continue automatically** |

2439 2444 

2440I tipi `agent_needs_input` e `agent_completed` richiedono Claude Code v2.1.198 o successivo.2445I tipi `agent_needs_input` e `agent_completed` richiedono Claude Code v2.1.198 o successivo.

2441 2446 

2442I tipi `quota_auto_resume_fired`, `quota_auto_resume_stale`, e `quota_auto_resume_disabled` richiedono Claude Code v2.1.234 o successivo.2447I tipi `quota_auto_resume_fired`, `quota_auto_resume_stale`, e `quota_auto_resume_disabled` richiedono Claude Code v2.1.234 o successivo.

2443 2448 

2444Nelle sessioni di terminale, `permission_prompt` per la richiesta di rete di un comando in sandbox richiede Claude Code v2.1.246 o successivo.2449Nelle sessioni di terminale, `permission_prompt` per la richiesta di rete di un comando sandboxed richiede Claude Code v2.1.246 o successivo.

2445 2450 

2446`agent_needs_input` per la domanda di configurazione del terminale di un compagno di squadra richiede Claude Code v2.1.248 o successivo.2451`agent_needs_input` per una domanda di configurazione del terminale del compagno di squadra richiede Claude Code v2.1.248 o successivo.

2447 2452 

2448<Note>2453<Note>

2449 I tipi `permission_prompt`, `idle_prompt`, `elicitation_dialog`, e `elicitation_url_dialog` condividono il loro timing con le notifiche desktop, quindi nelle sessioni di terminale li vedi solo quando sembri essere lontano dal terminale:2454 I tipi `permission_prompt`, `idle_prompt`, `elicitation_dialog`, e `elicitation_url_dialog` condividono il loro timing con le notifiche desktop, quindi nelle sessioni di terminale li vedi solo quando sembri essere lontano dal terminale:

2450 2455 

2451 * Aspettati `permission_prompt` una volta che non hai digitato per circa sei secondi. Il timer inizia quando il prompt di permesso appare, e ogni pressione di tasto lo rinvia. Per eseguire un hook immediatamente quando Claude chiede il permesso di usare uno strumento, usa [PermissionRequest](#permissionrequest) invece.2456 * Aspettati `permission_prompt` una volta che non hai digitato per circa sei secondi. Il timer inizia quando il prompt di permesso appare, e ogni pressione di tasto lo rinvia. Per eseguire un hook immediatamente quando Claude chiede il permesso di usare uno strumento, usa [PermissionRequest](#permissionrequest) invece.

2452 * Aspettati `idle_prompt` circa 60 secondi dopo che Claude finisce di rispondere, e solo se non hai digitato da allora. Claude Code non invia `idle_prompt` mentre attende che un limite di utilizzo di claude.ai si resetti. Quando l'attesa termina da sola, uno dei tipi `quota_auto_resume_*` si attiva invece.2457 * Aspettati `idle_prompt` circa 60 secondi dopo che Claude finisce di rispondere, e solo se non hai digitato da allora. Claude Code non invia `idle_prompt` mentre attende che un limite di utilizzo di claude.ai si resetti. Quando l'attesa termina da sola, uno dei tipi `quota_auto_resume_*` si esegue invece.

2453 * Aspettati `elicitation_dialog` per un modulo di elicitazione, o `elicitation_url_dialog` per una richiesta di URL del browser, una volta che non hai digitato per circa sei secondi. Entrambi condividono lo stesso gate di sei secondi di `permission_prompt`: il timer inizia quando il dialogo appare, e ogni pressione di tasto lo rinvia.2458 * Aspettati `elicitation_dialog` per un modulo di elicitazione, o `elicitation_url_dialog` per una richiesta di URL del browser, una volta che non hai digitato per circa sei secondi. Entrambi condividono lo stesso gate di sei secondi di `permission_prompt`: il timer inizia quando il dialogo appare, e ogni pressione di tasto lo rinvia.

2454 2459 

2455 Una richiesta di permesso o elicitazione che arriva mentre un altro dialogo è sullo schermo mantiene lo stesso gate di sei secondi, cronometrato da quando la richiesta arriva. La sua notifica può raggiungerti mentre la richiesta attende ancora dietro il dialogo aperto.2460 Una richiesta di permesso o elicitazione che arriva mentre un altro dialogo è sullo schermo mantiene lo stesso gate di sei secondi, cronometrato da quando la richiesta arriva. La sua notifica può raggiungerti mentre la richiesta attende ancora dietro il dialogo aperto.


2458Claude Code cronometra `permission_prompt` diversamente nelle sessioni in cui invia richieste di permesso al callback [`canUseTool`](/docs/it/agent-sdk/user-input) dell'Agent SDK, che è come Claude Desktop e l'estensione VS Code ospitano Claude Code:2463Claude Code cronometra `permission_prompt` diversamente nelle sessioni in cui invia richieste di permesso al callback [`canUseTool`](/docs/it/agent-sdk/user-input) dell'Agent SDK, che è come Claude Desktop e l'estensione VS Code ospitano Claude Code:

2459 2464 

2460* Aspettati `permission_prompt` circa sei secondi dopo che Claude chiede il permesso. Claude Code non lo rinvia mentre digiti.2465* Aspettati `permission_prompt` circa sei secondi dopo che Claude chiede il permesso. Claude Code non lo rinvia mentre digiti.

2461* Se tu o un hook [PermissionRequest](#permissionrequest) rispondi prima, Claude Code non esegue `permission_prompt`.2466* Se tu o un hook [PermissionRequest](#permissionrequest) rispondete prima, Claude Code non esegue `permission_prompt`.

2462* Imposta [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/it/env-vars) su `1` per disattivare `permission_prompt` in queste sessioni.2467* Imposta [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/it/env-vars) su `1` per disattivare `permission_prompt` in queste sessioni.

2463 2468 

2464Prima della v2.1.233, `permission_prompt` non si attivava in queste sessioni.2469Prima della v2.1.233, `permission_prompt` non si eseguiva in queste sessioni.

2465 2470 

2466Usa matcher separati per eseguire diversi gestori a seconda del tipo di notifica. Questa configurazione attiva uno script di avviso specifico per il permesso quando Claude ha bisogno dell'approvazione del permesso e una notifica diversa quando Claude è stato inattivo:2471Usa matcher separati per eseguire diversi handler a seconda del tipo di notifica. Questa configurazione attiva uno script di avviso specifico per il permesso quando Claude ha bisogno dell'approvazione del permesso e una notifica diversa quando Claude è stato inattivo:

2467 2472 

2468```json theme={null}2473```json theme={null}

2469{2474{


2496 Input Notification2501 Input Notification

2497</h4>2502</h4>

2498 2503 

2499Oltre ai [campi di input comuni](#common-input-fields), gli hook Notification ricevono `message` con il testo della notifica, un `title` facoltativo, e `notification_type` che indica quale tipo si è attivato.2504Oltre ai [campi di input comuni](#common-input-fields), gli hook Notification ricevono `message` con il testo della notifica, un `title` facoltativo, e `notification_type` che indica quale tipo si è eseguito.

2500 2505 

2501```json theme={null}2506```json theme={null}

2502{2507{


2516 SubagentStart2521 SubagentStart

2517</h3>2522</h3>

2518 2523 

2519Si esegue quando Claude genera un subagente con lo strumento Agent, quando Claude [riprende un subagente](/docs/it/sub-agents#resume-subagents), e ogni volta che un compagno di squadra del [team agente](/docs/it/agent-teams) in-process gestisce un nuovo messaggio. Supporta i matcher per filtrare per nome del tipo di agente. Per gli agenti incorporati, questo è il nome dell'agente come `general-purpose`, `Explore`, o `Plan`. Per gli [agenti personalizzati](/docs/it/sub-agents), questo è il campo `name` dal frontmatter dell'agente, non il nome del file.2524Si esegue quando Claude genera un subagente con lo strumento Agent, quando Claude [riprende un subagente](/docs/it/sub-agents#resume-subagents), e ogni volta che un compagno di squadra dell'[agente team](/docs/it/agent-teams) in-process gestisce un nuovo messaggio. Supporta i matcher per filtrare per nome del tipo di agente. Per gli agenti incorporati, questo è il nome dell'agente come `general-purpose`, `Explore`, o `Plan`. Per i [subagenti personalizzati](/docs/it/sub-agents), questo è il campo `name` dal frontmatter dell'agente, non il nome del file.

2520 2525 

2521Per i subagenti spediti da un [plugin](/docs/it/plugins/overview), il tipo di agente è l'identificatore con ambito del plugin come `my-plugin:reviewer`, non il nome del frontmatter nudo. I due punti mettono un nome con ambito del plugin sul percorso dell'espressione regolare, quindi ancora il matcher con `^` e `$` per una corrispondenza esatta: `^my-plugin:reviewer$`.2526Per i subagenti forniti da un [plugin](/docs/it/plugins/overview), il tipo di agente è l'identificatore con ambito del plugin come `my-plugin:reviewer`, non il nome del frontmatter nudo. I due punti mettono un nome con ambito del plugin sul percorso dell'espressione regolare, quindi ancora il matcher con `^` e `$` per una corrispondenza esatta: `^my-plugin:reviewer$`.

2522 2527 

2523<h4 id="subagentstart-input">2528<h4 id="subagentstart-input">

2524 Input SubagentStart2529 Input SubagentStart

2525</h4>2530</h4>

2526 2531 

2527Oltre ai [campi di input comuni](#common-input-fields), gli hook SubagentStart ricevono `agent_id` con l'identificatore univoco per il subagente e `agent_type` con il nome dell'agente che il matcher filtra.2532Oltre ai [campi di input comuni](#common-input-fields), gli hook SubagentStart ricevono `agent_id` con l'identificatore univoco per il subagente e `agent_type` con il nome dell'agente su cui il matcher filtra.

2528 2533 

2529```json theme={null}2534```json theme={null}

2530{2535{


2552}2557}

2553```2558```

2554 2559 

2555Quando l'hook si esegue di nuovo per lo stesso subagente, Claude Code inietta il contesto restituito solo quando il contesto del subagente non contiene già la copia da un'esecuzione precedente. La copia iniettata al lancio rimane al suo posto, lasciando intatta la [cache del prompt](/docs/it/prompt-caching#subagents-and-the-cache) del subagente. Dopo che la [compattazione automatica](/docs/it/sub-agents#auto-compaction) scarta quella copia, Claude Code inietta il contesto dell'esecuzione successiva di nuovo.2560Quando l'hook si esegue di nuovo per lo stesso subagente, Claude Code inietta il contesto restituito solo quando il contesto del subagente non contiene già la copia da un'esecuzione precedente. La copia iniettata al lancio rimane al suo posto, lasciando la [cache del prompt](/docs/it/prompt-caching#subagents-and-the-cache) del subagente intatta. Dopo che la [compattazione automatica](/docs/it/sub-agents#auto-compaction) scarta quella copia, Claude Code inietta il contesto dell'esecuzione successiva di nuovo.

2556 2561 

2557<h3 id="subagentstop">2562<h3 id="subagentstop">

2558 SubagentStop2563 SubagentStop

2559</h3>2564</h3>

2560 2565 

2561Si esegue quando un subagente di Claude Code ha finito di rispondere. Corrisponde al tipo di agente, gli stessi valori di SubagentStart.2566Si esegue quando un subagente di Claude Code ha finito di rispondere. Corrisponde al tipo di agente, stessi valori di SubagentStart.

2562 2567 

2563<h4 id="subagentstop-input">2568<h4 id="subagentstop-input">

2564 Input SubagentStop2569 Input SubagentStop

2565</h4>2570</h4>

2566 2571 

2567Oltre ai [campi di input comuni](#common-input-fields), gli hook SubagentStop ricevono `stop_hook_active`, `agent_id`, `agent_type`, `agent_transcript_path`, e `last_assistant_message`. Il campo `agent_type` è il valore usato per il filtraggio del matcher. Il `transcript_path` è la trascrizione della sessione principale, mentre `agent_transcript_path` è la trascrizione propria del subagente archiviata in una cartella `subagents/` annidato. Il campo `last_assistant_message` contiene il contenuto di testo della risposta finale del subagente, quindi gli hook possono accedervi senza analizzare il file della trascrizione.2572Oltre ai [campi di input comuni](#common-input-fields), gli hook SubagentStop ricevono `stop_hook_active`, `agent_id`, `agent_type`, `agent_transcript_path`, e `last_assistant_message`. Il campo `agent_type` è il valore usato per il filtraggio del matcher. Il `transcript_path` è la trascrizione della sessione principale, mentre `agent_transcript_path` è la trascrizione propria del subagente archiviata in una cartella `subagents/` annidato. Il campo `last_assistant_message` contiene il contenuto di testo della risposta finale del subagente, quindi gli hook possono accedervi senza analizzare il file di trascrizione.

2568 2573 

2569Non ogni evento SubagentStop proviene da un subagente che Claude ha generato. Claude Code esegue anche agenti interni per alcune delle sue stesse funzionalità, come i [suggerimenti di prompt](/docs/it/interactive-mode#prompt-suggestions) e le [domande laterali `/btw`](/docs/it/interactive-mode#side-questions-with-%2Fbtw), e SubagentStop si attiva quando uno di quelli finisce anche. Per quegli eventi, `agent_type` è il nome dell'agente che la sessione stessa esegue, come uno impostato con [`--agent`](/docs/it/cli-reference#cli-flags) o l'[impostazione `agent`](/docs/it/settings-reference#agent), e una stringa vuota quando la sessione si esegue senza uno.2574Non ogni evento SubagentStop viene da un subagente che Claude ha generato. Claude Code esegue anche agenti interni per alcune delle sue stesse funzionalità, come i [suggerimenti di prompt](/docs/it/interactive-mode#prompt-suggestions) e le [domande laterali `/btw`](/docs/it/interactive-mode#side-questions-with-%2Fbtw), e SubagentStop si esegue quando uno di quelli finisce anche. Per quegli eventi, `agent_type` è il nome dell'agente che la sessione stessa esegue, come uno impostato con [`--agent`](/docs/it/cli-reference#cli-flags) o l'impostazione [`agent`](/docs/it/settings-reference#agent), e una stringa vuota quando la sessione si esegue senza uno.

2570 2575 

2571Un `matcher` che nomina i tipi di agente non corrisponde a un `agent_type` vuoto. Un hook il cui matcher è omesso, `""`, o `"*"`, o è un'espressione regolare che corrisponde a una stringa vuota, si esegue anche per gli eventi con un `agent_type` vuoto.2576Un `matcher` che nomina i tipi di agente non corrisponde a un `agent_type` vuoto. Un hook il cui matcher è omesso, `""`, o `"*"`, o è un'espressione regolare che corrisponde a una stringa vuota, si esegue per gli eventi con un `agent_type` vuoto anche.

2572 2577 

2573Su Claude Code v2.1.271 o successivo, un subagente che si esegue con lo strumento [`SubagentHandback`](/docs/it/tools-reference) consegna il suo rapporto attraverso quello strumento prima che si fermi. Il campo `last_assistant_message` contiene quindi il testo di chiusura del subagente, se presente, che non è il rapporto consegnato. Il rapporto è l'input `message` di quella chiamata, che un hook `PreToolUse` o `PostToolUse` che corrisponde a `SubagentHandback` riceve come `tool_input.message`.2578Su Claude Code v2.1.271 o successivo, un subagente che si esegue con lo strumento [`SubagentHandback`](/docs/it/tools-reference) consegna il suo rapporto attraverso quello strumento prima che si fermi. Il campo `last_assistant_message` contiene il testo di chiusura del subagente, se presente, che non è il rapporto consegnato. Il rapporto è l'input `message` di quella chiamata, che un hook `PreToolUse` o `PostToolUse` che corrisponde a `SubagentHandback` riceve come `tool_input.message`.

2574 2579 

2575Gli hook SubagentStop ricevono anche gli array `background_tasks` e `session_crons` descritti sotto [Input Stop](#stop-input). Entrambi gli array sono limitati alla sessione genitore, non al subagente.2580Gli hook SubagentStop ricevono anche gli array `background_tasks` e `session_crons` descritti sotto [Input Stop](#stop-input). Entrambi gli array sono limitati alla sessione genitore, non al subagente.

2576 2581 


2591}2596}

2592```2597```

2593 2598 

2594Gli hook SubagentStop usano lo stesso formato di controllo decisionale degli [hook Stop](#stop-decision-control), incluso `hookSpecificOutput.additionalContext` con `hookEventName` impostato su `"SubagentStop"`, per il feedback non di errore che mantiene il subagente in esecuzione. Restituire `decision: "block"` con un `reason` mantiene il subagente in esecuzione e consegna `reason` al subagente come sua istruzione successiva. Un hook che blocca uscendo con 2 consegna il suo messaggio stderr allo stesso modo. Per iniettare contesto nella sessione genitore dopo che un subagente ritorna, usa un hook [`PostToolUse`](#posttooluse) su lo strumento `Agent` invece.2599Gli hook SubagentStop usano lo stesso formato di controllo decisionale degli [hook Stop](#stop-decision-control), incluso `hookSpecificOutput.additionalContext` con `hookEventName` impostato su `"SubagentStop"`, per il feedback non di errore che mantiene il subagente in esecuzione. Restituire `decision: "block"` con un `reason` mantiene il subagente in esecuzione e consegna `reason` al subagente come sua istruzione successiva. Un hook che blocca uscendo con 2 consegna il suo messaggio stderr allo stesso modo. Per iniettare contesto nella sessione genitore dopo che un subagente ritorna, usa un hook [`PostToolUse`](#posttooluse) sullo strumento `Agent` invece.

2595 2600 

2596<h3 id="taskcreated">2601<h3 id="taskcreated">

2597 TaskCreated2602 TaskCreated

2598</h3>2603</h3>

2599 2604 

2600Si esegue quando un'attività viene creata tramite lo strumento `TaskCreate`. Usalo per applicare convenzioni di denominazione, richiedere descrizioni di attività, o prevenire la creazione di determinate attività. In una [sessione senza gli strumenti Task](/docs/it/tools-reference#task-tool-availability), questo evento non si attiva.2605Si esegue quando un'attività viene creata tramite lo strumento `TaskCreate`. Usalo per applicare convenzioni di denominazione, richiedere descrizioni di attività, o prevenire la creazione di determinate attività. In una [sessione senza gli strumenti Task](/docs/it/tools-reference#task-tool-availability), questo evento non si esegue.

2601 2606 

2602Gli hook TaskCreated non supportano i matcher e si attivano su ogni occorrenza.2607Gli hook TaskCreated non supportano i matcher e si eseguono su ogni occorrenza.

2603 2608 

2604<h4 id="taskcreated-input">2609<h4 id="taskcreated-input">

2605 Input TaskCreated2610 Input TaskCreated

2606</h4>2611</h4>

2607 2612 

2608Oltre ai [campi di input comuni](#common-input-fields), gli hook TaskCreated ricevono `task_id`, `task_subject`, e opzionalmente `task_description`, `teammate_name`, e `team_name`.2613Oltre ai [campi di input comuni](#common-input-fields), gli hook TaskCreated ricevono `task_id`, `task_subject`, e facoltativamente `task_description`, `teammate_name`, e `team_name`.

2609 2614 

2610```json theme={null}2615```json theme={null}

2611{2616{


2625| :- | :- |2630| :- | :- |

2626| `task_id` | Identificatore dell'attività in fase di creazione |2631| `task_id` | Identificatore dell'attività in fase di creazione |

2627| `task_subject` | Titolo dell'attività |2632| `task_subject` | Titolo dell'attività |

2628| `task_description` | Descrizione dettagliata dell'attività. Potrebbe essere assente |2633| `task_description` | Descrizione dettagliata dell'attività. Può essere assente |

2629| `teammate_name` | Nome del compagno di squadra che crea l'attività. Potrebbe essere assente |2634| `teammate_name` | Nome del compagno di squadra che crea l'attività. Può essere assente |

2630| `team_name` | Deprecato. Nome del team derivato dalla sessione; verrà rimosso in una versione futura |2635| `team_name` | Deprecato. Nome del team derivato dalla sessione; verrà rimosso in una versione futura |

2631 2636 

2632<h4 id="taskcreated-decision-control">2637<h4 id="taskcreated-decision-control">


2657 TaskCompleted2662 TaskCompleted

2658</h3>2663</h3>

2659 2664 

2660Si esegue quando un'attività viene contrassegnata come completata. Questo si attiva in due situazioni: quando qualsiasi agente contrassegna esplicitamente un'attività come completata tramite lo strumento TaskUpdate, o quando un compagno di squadra del [team agente](/docs/it/agent-teams) finisce il suo turno con attività in corso. Usalo per applicare criteri di completamento come il passaggio dei test o dei controlli di lint prima che un'attività possa chiudersi.2665Si esegue quando un'attività viene contrassegnata come completata. Questo si esegue in due situazioni: quando qualsiasi agente contrassegna esplicitamente un'attività come completata tramite lo strumento TaskUpdate, o quando un compagno di squadra dell'[agente team](/docs/it/agent-teams) finisce il suo turno con attività in corso. Usalo per applicare criteri di completamento come il passaggio dei test o dei controlli lint prima che un'attività possa chiudersi.

2661 2666 

2662Gli hook TaskCompleted non supportano i matcher e si attivano su ogni occorrenza.2667Gli hook TaskCompleted non supportano i matcher e si eseguono su ogni occorrenza.

2663 2668 

2664<h4 id="taskcompleted-input">2669<h4 id="taskcompleted-input">

2665 Input TaskCompleted2670 Input TaskCompleted

2666</h4>2671</h4>

2667 2672 

2668Oltre ai [campi di input comuni](#common-input-fields), gli hook TaskCompleted ricevono `task_id`, `task_subject`, e opzionalmente `task_description`, `teammate_name`, e `team_name`.2673Oltre ai [campi di input comuni](#common-input-fields), gli hook TaskCompleted ricevono `task_id`, `task_subject`, e facoltativamente `task_description`, `teammate_name`, e `team_name`.

2669 2674 

2670```json theme={null}2675```json theme={null}

2671{2676{


2686| :- | :- |2691| :- | :- |

2687| `task_id` | Identificatore dell'attività in fase di completamento |2692| `task_id` | Identificatore dell'attività in fase di completamento |

2688| `task_subject` | Titolo dell'attività |2693| `task_subject` | Titolo dell'attività |

2689| `task_description` | Descrizione dettagliata dell'attività. Potrebbe essere assente |2694| `task_description` | Descrizione dettagliata dell'attività. Può essere assente |

2690| `teammate_name` | Nome del compagno di squadra che completa l'attività. Potrebbe essere assente |2695| `teammate_name` | Nome del compagno di squadra che completa l'attività. Può essere assente |

2691| `team_name` | Deprecato. Nome del team derivato dalla sessione; verrà rimosso in una versione futura |2696| `team_name` | Deprecato. Nome del team derivato dalla sessione; verrà rimosso in una versione futura |

2692 2697 

2693<h4 id="taskcompleted-decision-control">2698<h4 id="taskcompleted-decision-control">


2719 Stop2724 Stop

2720</h3>2725</h3>

2721 2726 

2722Si esegue quando l'agente Claude Code principale ha finito di rispondere. Non si esegue se l'arresto è avvenuto a causa di un'interruzione dell'utente. Gli errori API attivano [StopFailure](#stopfailure) invece.2727Si esegue quando l'agente Claude Code principale ha finito di rispondere. Non si esegue se l'arresto è avvenuto a causa di un'interruzione dell'utente. Gli errori API eseguono [StopFailure](#stopfailure) invece.

2723 2728 

2724<Tip>2729<Tip>

2725 Il comando [`/goal`](/docs/it/goal) è una scorciatoia incorporata per un hook Stop con ambito di sessione basato su prompt. Usalo quando vuoi che Claude continui a lavorare verso una condizione senza scrivere la configurazione dell'hook.2730 Il comando [`/goal`](/docs/it/goal) è un collegamento incorporato per un hook Stop con ambito di sessione basato su prompt. Usalo quando vuoi che Claude continui a lavorare verso una condizione senza scrivere la configurazione dell'hook.

2726</Tip>2731</Tip>

2727 2732 

2728<h4 id="stop-input">2733<h4 id="stop-input">


2731 2736 

2732Oltre ai [campi di input comuni](#common-input-fields), gli hook Stop ricevono `stop_hook_active`, `last_assistant_message`, `background_tasks`, e `session_crons`. Il campo `stop_hook_active` è `true` quando Claude Code sta già continuando come risultato di un hook stop. Controlla questo valore o elabora la trascrizione per evitare di bloccarsi su una condizione che non si risolverà mai. Claude Code applica un limite di 8 continuazioni consecutive: dopo che gli hook stop hanno continuato il turno otto volte di fila, Claude Code sovrascrive il blocco successivo e termina il turno. Per aumentare il limite, imposta [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/it/env-vars).2737Oltre ai [campi di input comuni](#common-input-fields), gli hook Stop ricevono `stop_hook_active`, `last_assistant_message`, `background_tasks`, e `session_crons`. Il campo `stop_hook_active` è `true` quando Claude Code sta già continuando come risultato di un hook stop. Controlla questo valore o elabora la trascrizione per evitare di bloccarsi su una condizione che non si risolverà mai. Claude Code applica un limite di 8 continuazioni consecutive: dopo che gli hook stop hanno continuato il turno otto volte di fila, Claude Code sovrascrive il blocco successivo e termina il turno. Per aumentare il limite, imposta [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/it/env-vars).

2733 2738 

2734Il campo `last_assistant_message` contiene il contenuto di testo della risposta finale di Claude, quindi gli hook possono accedervi senza analizzare il file della trascrizione. Per gli hook che agiscono sul turno appena completato, come gli hook di lettura ad alta voce o notifica, usa questo campo piuttosto che leggere `transcript_path`: il file della trascrizione non è garantito che includa il messaggio finale al momento di Stop su tutte le versioni.2739Il campo `last_assistant_message` contiene il contenuto di testo della risposta finale di Claude, quindi gli hook possono accedervi senza analizzare il file di trascrizione. Per gli hook che agiscono sul turno appena completato, come gli hook di lettura ad alta voce o notifica, usa questo campo piuttosto che leggere `transcript_path`: il file di trascrizione non è garantito di includere il messaggio finale al momento di Stop su tutte le versioni.

2735 2740 

2736Gli array `background_tasks` e `session_crons` consentono agli hook di distinguere "la sessione è finita" da "la sessione è in pausa in attesa che il lavoro di background la risvegli". Entrambi gli array sono presenti quando il registro delle attività è raggiungibile e sono vuoti quando nulla è in volo o programmato.2741Gli array `background_tasks` e `session_crons` consentono agli hook di distinguere "la sessione è finita" da "la sessione è in pausa in attesa che il lavoro di background la risvegli di nuovo". Entrambi gli array sono presenti quando il registro delle attività è raggiungibile e sono vuoti quando nulla è in volo o programmato.

2737 2742 

2738Ogni voce in `background_tasks` descrive un'attività in volo e usa questi campi:2743Ogni voce in `background_tasks` descrive un'attività in volo e usa questi campi:

2739 2744 


2741| :- | :- |2746| :- | :- |

2742| `id` | Identificatore dell'attività |2747| `id` | Identificatore dell'attività |

2743| `type` | Etichetta del tipo di attività amichevole come `shell`, `subagent`, `monitor`, `workflow`, `teammate`, `cloud session`, o `MCP task`. Ogni etichetta identifica quale funzionalità di Claude Code ha creato l'attività. Ritorna al discriminante grezzo per i tipi non riconosciuti |2748| `type` | Etichetta del tipo di attività amichevole come `shell`, `subagent`, `monitor`, `workflow`, `teammate`, `cloud session`, o `MCP task`. Ogni etichetta identifica quale funzionalità di Claude Code ha creato l'attività. Ritorna al discriminante grezzo per i tipi non riconosciuti |

2744| `status` | Stato attuale dell'attività |2749| `status` | Stato dell'attività corrente |

2745| `description` | Descrizione in testo libero, limitata a 1000 caratteri con un marcatore `… [+N chars]` in-stringa quando ritagliato |2750| `description` | Descrizione in testo libero, limitata a 1000 caratteri con un marcatore `… [+N chars]` in-stringa quando ritagliato |

2746| `command` | Riga di comando shell, limitata a 1000 caratteri. Presente solo per le attività `shell` |2751| `command` | Riga di comando shell, limitata a 1000 caratteri. Presente solo per le attività `shell` |

2747| `agent_type` | Nome del tipo di subagente. Presente solo per le attività `subagent` |2752| `agent_type` | Nome del tipo di subagente. Presente solo per le attività `subagent` |


2801| `reason` | Richiesto quando `decision` è `"block"`. Dice a Claude perché dovrebbe continuare |2806| `reason` | Richiesto quando `decision` è `"block"`. Dice a Claude perché dovrebbe continuare |

2802| `hookSpecificOutput.additionalContext` | Feedback non di errore per Claude. La conversazione continua in modo che Claude possa agire su di esso, ma a differenza di `decision: "block"` viene mostrato nella trascrizione come feedback dell'hook piuttosto che un errore dell'hook |2807| `hookSpecificOutput.additionalContext` | Feedback non di errore per Claude. La conversazione continua in modo che Claude possa agire su di esso, ma a differenza di `decision: "block"` viene mostrato nella trascrizione come feedback dell'hook piuttosto che un errore dell'hook |

2803 2808 

2804Un hook che blocca uscendo con 2 si instrada allo stesso modo di `reason`: Claude riceve il messaggio stderr come spiegazione del perché dovrebbe continuare.2809Un hook che blocca uscendo con 2 si instrada allo stesso modo di `reason`: Claude riceve il messaggio stderr come la spiegazione del perché dovrebbe continuare.

2805 2810 

2806```json theme={null}2811```json theme={null}

2807{2812{


2810}2815}

2811```2816```

2812 2817 

2813Usa `additionalContext` quando l'hook funziona come progettato e dà a Claude una guida, come "esegui la suite di test prima di finire". Mantiene la conversazione in corso attraverso le stesse protezioni di loop di `decision: "block"`, vale a dire l'input `stop_hook_active` e il limite di 8 continuazioni consecutive, ma la trascrizione lo etichetta come `Stop hook feedback` e nessuna notifica di errore dell'hook viene mostrata:2818Usa `additionalContext` quando l'hook funziona come progettato e dà a Claude una guida, come "esegui la suite di test prima di finire". Mantiene la conversazione attraverso gli stessi loop protections di `decision: "block"`, vale a dire l'input `stop_hook_active` e il limite di 8 continuazioni consecutive, ma la trascrizione lo etichetta come `Stop hook feedback` e nessuna notifica di errore dell'hook viene mostrata:

2814 2819 

2815```json theme={null}2820```json theme={null}

2816{2821{


2825 StopFailure2830 StopFailure

2826</h3>2831</h3>

2827 2832 

2828Si esegue al posto di [Stop](#stop) quando il turno termina a causa di un errore API. Claude Code ignora l'output e il codice di uscita dell'hook, a parte [`terminalSequence`](#emit-terminal-notifications). Usalo per registrare i fallimenti, inviare avvisi, o intraprendere azioni di recupero quando Claude non può completare una risposta a causa di limiti di velocità, problemi di autenticazione, o altri errori API.2833Si esegue invece di [Stop](#stop) quando il turno termina a causa di un errore API. Claude Code ignora l'output e il codice di uscita dell'hook, a parte [`terminalSequence`](#emit-terminal-notifications). Usalo per registrare i fallimenti, inviare avvisi, o intraprendere azioni di recupero quando Claude non può completare una risposta a causa di limiti di velocità, problemi di autenticazione, o altri errori API.

2829 2834 

2830<h4 id="stopfailure-input">2835<h4 id="stopfailure-input">

2831 Input StopFailure2836 Input StopFailure


2857 TeammateIdle2862 TeammateIdle

2858</h3>2863</h3>

2859 2864 

2860Si esegue quando un compagno di squadra del [team agente](/docs/it/agent-teams) sta per andare inattivo dopo aver finito il suo turno. Usalo per applicare gate di qualità prima che un compagno di squadra smetta di lavorare, come richiedere il passaggio dei controlli di lint o verificare che i file di output esistano.2865Si esegue quando un compagno di squadra dell'[agente team](/docs/it/agent-teams) sta per andare inattivo dopo aver finito il suo turno. Usalo per applicare gate di qualità prima che un compagno di squadra smetta di lavorare, come richiedere il passaggio dei controlli lint o verificare che i file di output esistano.

2861 2866 

2862Gli hook TeammateIdle non supportano i matcher e si attivano su ogni occorrenza.2867Gli hook TeammateIdle non supportano i matcher e si eseguono su ogni occorrenza.

2863 2868 

2864<h4 id="teammateidle-input">2869<h4 id="teammateidle-input">

2865 Input TeammateIdle2870 Input TeammateIdle


2948 Input ConfigChange2953 Input ConfigChange

2949</h4>2954</h4>

2950 2955 

2951Oltre ai [campi di input comuni](#common-input-fields), gli hook ConfigChange ricevono `source` e opzionalmente `file_path`. Il campo `source` indica quale tipo di configurazione è cambiato, e `file_path` fornisce il percorso al file specifico che è stato modificato.2956Oltre ai [campi di input comuni](#common-input-fields), gli hook ConfigChange ricevono `source` e facoltativamente `file_path`. Il campo `source` indica quale tipo di configurazione è cambiato, e `file_path` fornisce il percorso al file specifico che è stato modificato.

2952 2957 

2953```json theme={null}2958```json theme={null}

2954{2959{


2965 Controllo decisionale ConfigChange2970 Controllo decisionale ConfigChange

2966</h4>2971</h4>

2967 2972 

2968Gli hook ConfigChange possono bloccare i cambiamenti di configurazione dall'avere effetto. Usa il codice di uscita 2 o un JSON `decision` per prevenire il cambiamento. Quando bloccato, le nuove impostazioni non vengono applicate alla sessione in esecuzione.2973Gli hook ConfigChange possono bloccare i cambiamenti di configurazione dal prendere effetto. Usa il codice di uscita 2 o un JSON `decision` per prevenire il cambio. Quando bloccato, le nuove impostazioni non vengono applicate alla sessione in esecuzione.

2969 2974 

2970| Campo | Descrizione |2975| Campo | Descrizione |

2971| :- | :- |2976| :- | :- |

2972| `decision` | `"block"` impedisce l'applicazione del cambiamento di configurazione. Ometti per consentire il cambiamento |2977| `decision` | `"block"` impedisce l'applicazione del cambio di configurazione. Ometti per consentire il cambio |

2973| `reason` | Accettato ma mai mostrato |2978| `reason` | Accettato ma mai mostrato |

2974 2979 

2975```json theme={null}2980```json theme={null}


2979}2984}

2980```2985```

2981 2986 

2982I cambiamenti `policy_settings` non possono essere bloccati. Gli hook si attivano comunque per le fonti `policy_settings` quando un file di impostazioni gestite sulla macchina cambia, quindi puoi usarli per registrare quelle modifiche, ma qualsiasi decisione di blocco viene ignorata. Questo assicura che le impostazioni gestite dall'azienda abbiano sempre effetto. Claude Code non esegue gli hook `ConfigChange` quando le [impostazioni gestite dal server](/docs/it/server-managed-settings) arrivano o si aggiornano.2987I cambiamenti di `policy_settings` non possono essere bloccati. Gli hook si eseguono comunque per le fonti `policy_settings` quando un file di impostazioni gestite sulla macchina cambia, quindi puoi usarli per registrare quelle modifiche, ma qualsiasi decisione di blocco viene ignorata. Questo assicura che le impostazioni gestite dall'azienda abbiano sempre effetto. Claude Code non esegue gli hook `ConfigChange` quando le [impostazioni gestite dal server](/docs/it/server-managed-settings) arrivano o si aggiornano.

2983 2988 

2984Claude Code agisce sulla decisione di blocco dall'output JSON di un hook ConfigChange e scarta `systemMessage` e `continue`. Un cambiamento bloccato non mostra alcun messaggio a te o a Claude, indipendentemente dal fatto che blocchi con `reason` o con stderr all'uscita 2. Claude Code scrive solo una riga nel log di debug.2989Claude Code agisce sulla decisione di blocco dall'output JSON di un hook ConfigChange e scarta `systemMessage` e `continue`. Un cambio bloccato non mostra alcun messaggio a te o a Claude, indipendentemente dal fatto che blocchi con `reason` o con stderr all'uscita 2. Claude Code scrive solo una riga nel debug log.

2985 2990 

2986<h3 id="cwdchanged">2991<h3 id="cwdchanged">

2987 CwdChanged2992 CwdChanged

2988</h3>2993</h3>

2989 2994 

2990Si esegue quando un comando shell nella conversazione principale cambia la directory di lavoro, ad esempio quando Claude esegue un comando `cd`. Usalo per reagire ai cambiamenti di directory: ricaricare le variabili di ambiente, attivare i toolchain specifici del progetto, o eseguire script di configurazione automaticamente. Si accoppia con [FileChanged](#filechanged) per strumenti come [direnv](https://direnv.net/) che gestiscono l'ambiente per directory.2995Si esegue quando un comando shell nella conversazione principale cambia la directory di lavoro, ad esempio quando Claude esegue un comando `cd`. Usalo per reagire ai cambiamenti di directory: ricaricare le variabili di ambiente, attivare toolchain specifiche del progetto, o eseguire script di configurazione automaticamente. Si accoppia con [FileChanged](#filechanged) per strumenti come [direnv](https://direnv.net/) che gestiscono l'ambiente per directory.

2991 2996 

2992Gli hook CwdChanged hanno accesso a [`CLAUDE_ENV_FILE`](#persist-environment-variables). Le variabili scritte su quel file persistono nei comandi Bash successivi fino al prossimo evento [CwdChanged](#cwdchanged), quando Claude Code le cancella.2997Gli hook CwdChanged hanno accesso a [`CLAUDE_ENV_FILE`](#persist-environment-variables). Le variabili scritte in quel file persistono nei comandi Bash successivi finché il prossimo evento CwdChanged, quando Claude Code le cancella.

2993 2998 

2994CwdChanged non supporta i matcher e si attiva su ogni occorrenza.2999CwdChanged non supporta i matcher e si esegue su ogni occorrenza.

2995 3000 

2996<h4 id="cwdchanged-input">3001<h4 id="cwdchanged-input">

2997 Input CwdChanged3002 Input CwdChanged


3020| :- | :- |3025| :- | :- |

3021| `watchPaths` | Array di percorsi assoluti. Sostituisce l'elenco di osservazione dinamico corrente. I percorsi dalla tua configurazione `matcher` vengono sempre osservati. Restituire un array vuoto cancella l'elenco dinamico, che è tipico quando si entra in una nuova directory |3026| `watchPaths` | Array di percorsi assoluti. Sostituisce l'elenco di osservazione dinamico corrente. I percorsi dalla tua configurazione `matcher` vengono sempre osservati. Restituire un array vuoto cancella l'elenco dinamico, che è tipico quando si entra in una nuova directory |

3022 3027 

3023Gli hook CwdChanged non hanno controllo decisionale. Non possono bloccare il cambiamento di directory.3028Gli hook CwdChanged non hanno controllo decisionale. Non possono bloccare il cambio di directory.

3024 3029 

3025Claude Code legge `watchPaths` e `systemMessage` dal loro output JSON e scarta `continue`. Nelle sessioni interattive, mostra il `systemMessage` come una breve notifica di terminale. Il messaggio non raggiunge il flusso di messaggi dell'SDK.3030Claude Code legge `watchPaths` e `systemMessage` dal loro output JSON e scarta `continue`. Nelle sessioni interattive, mostra il `systemMessage` come una breve notifica di terminale. Il messaggio non raggiunge il flusso di messaggi dell'SDK.

3026 3031 


3030 3035 

3031Si esegue dopo che aggiungi una directory di lavoro a metà sessione con il comando `/add-dir`, o dopo che un client SDK ne aggiunge una con la richiesta di controllo `register_repo_root`. Usalo per preparare un repository appena aggiunto, ad esempio installando le sue dipendenze.3036Si esegue dopo che aggiungi una directory di lavoro a metà sessione con il comando `/add-dir`, o dopo che un client SDK ne aggiunge una con la richiesta di controllo `register_repo_root`. Usalo per preparare un repository appena aggiunto, ad esempio installando le sue dipendenze.

3032 3037 

3033Claude Code non attiva questo evento quando:3038Claude Code non esegue questo evento quando:

3034 3039 

3035* Passi una directory con il flag di avvio `--add-dir`; [SessionStart](#sessionstart) copre quelle directory3040* Passi una directory con il flag di avvio `--add-dir`; [SessionStart](#sessionstart) copre quelle directory

3036* Aggiungi una directory sulla scheda Workspace `/permissions`3041* Aggiungi una directory sulla scheda Workspace `/permissions`

3037* Aggiungi una directory che è già una directory di lavoro o dentro una3042* Aggiungi una directory che è già una directory di lavoro o dentro una

3038 3043 

3039Claude Code attiva DirectoryAdded dopo aver aggiornato lo stato della sandbox e del permesso, quindi gli strumenti in sandbox vedono già la nuova directory quando il tuo hook si esegue. I comandi dell'hook stessi si eseguono non in sandbox.3044Claude Code esegue DirectoryAdded dopo aver aggiornato lo stato della sandbox e del permesso, quindi gli strumenti sandboxed vedono già la nuova directory quando il tuo hook si esegue. I comandi dell'hook stessi si eseguono non sandboxed.

3040 3045 

3041Claude Code non attende l'hook: l'aggiunta si completa immediatamente, e l'hook si esegue in background con il timeout predefinito di 600 secondi.3046Claude Code non attende l'hook: l'aggiunta completa immediatamente, e l'hook si esegue in background con il timeout predefinito di 600 secondi.

3042 3047 

3043Il matcher filtra su come la directory è stata aggiunta:3048Il matcher filtra su come la directory è stata aggiunta:

3044 3049 


3071 3076 

3072Gli hook DirectoryAdded non hanno controllo decisionale. Non possono bloccare l'aggiunta, che si è già completata quando l'hook si esegue. Claude Code scarta il campo `continue` dal loro output JSON e visualizza il resto diversamente per fonte:3077Gli hook DirectoryAdded non hanno controllo decisionale. Non possono bloccare l'aggiunta, che si è già completata quando l'hook si esegue. Claude Code scarta il campo `continue` dal loro output JSON e visualizza il resto diversamente per fonte:

3073 3078 

3074* `slash_command`: Claude Code consegna il `systemMessage` dell'hook a Claude come contesto sul turno di conversazione successivo, piuttosto che mostrartelo. Un conteggio degli hook falliti appare nella trascrizione. L'output di fallimento completo va al log di debug3079* `slash_command`: Claude Code consegna il `systemMessage` dell'hook a Claude come contesto sul turno di conversazione successivo, piuttosto che mostrartelo. Un conteggio degli hook falliti appare nella trascrizione. L'output di fallimento completo va nel debug log

3075* `register_repo_root`: Claude Code scrive l'output `systemMessage` e l'output di fallimento nel log di debug solo3080* `register_repo_root`: Claude Code scrive l'output `systemMessage` e l'output di fallimento nel debug log solo

3076 3081 

3077<h3 id="filechanged">3082<h3 id="filechanged">

3078 FileChanged3083 FileChanged

3079</h3>3084</h3>

3080 3085 

3081Si esegue quando un file osservato cambia su disco. Claude Code rileva i cambiamenti con un osservatore del file system, non ispezionando le chiamate di strumenti, quindi esegue l'hook indipendentemente da cosa ha cambiato il file: una chiamata di strumento `Edit` o `Write`, uno script che Claude esegue con `Bash`, o un processo al di fuori di Claude Code interamente. Un uso comune è ricaricare le variabili di ambiente quando i file di configurazione del progetto cambiano.3086Si esegue quando un file osservato cambia su disco. Claude Code rileva i cambiamenti con un osservatore del file system, non ispezionando le chiamate di strumento, quindi esegue l'hook indipendentemente da cosa ha cambiato il file: una chiamata di strumento `Edit` o `Write`, uno script che Claude esegue con `Bash`, o un processo al di fuori di Claude Code interamente. Un uso comune è ricaricare le variabili di ambiente quando i file di configurazione del progetto cambiano.

3082 3087 

3083Il `matcher` per questo evento serve due ruoli:3088Il `matcher` per questo evento serve due ruoli:

3084 3089 

3085* **Costruisci l'elenco di osservazione**: il valore è diviso su `|` e ogni segmento è registrato come un nome di file letterale nella directory di lavoro, quindi `".envrc|.env"` osserva esattamente quei due file. I modelli regex non sono utili qui: un valore come `^\.env` osserverebbe un file letteralmente denominato `^\.env`.3090* **Costruisci l'elenco di osservazione**: il valore viene diviso su `|` e ogni segmento viene registrato come un nome di file letterale nella directory di lavoro, quindi `".envrc|.env"` osserva esattamente quei due file. I modelli regex non sono utili qui: un valore come `^\.env` osserverebbe un file letteralmente denominato `^\.env`.

3086* **Filtra quali hook si eseguono**: quando un file osservato cambia, lo stesso valore filtra quali gruppi di hook si eseguono usando le [regole di matcher](#matcher-patterns) standard rispetto al basename del file modificato.3091* **Filtra quali hook si eseguono**: quando un file osservato cambia, lo stesso valore filtra quali gruppi di hook si eseguono usando le [regole di matcher](#matcher-patterns) standard rispetto al basename del file modificato.

3087 3092 

3088Questo esempio normalizza le terminazioni di riga in `data.csv` dopo qualsiasi cambiamento, incluso un comando `Bash` o uno script esterno che riscrive il file:3093Questo esempio normalizza le terminazioni di riga in `data.csv` dopo qualsiasi cambio, incluso un comando `Bash` o uno script esterno che riscrive il file:

3089 3094 

3090```json theme={null}3095```json theme={null}

3091{3096{


3105}3110}

3106```3111```

3107 3112 

3108L'hook legge il percorso assoluto del file modificato dal campo `file_path` dell'[input JSON](#filechanged-input) su stdin. La sua guardia `grep` testa la stessa cosa che `perl` rimuove, un CR alla fine di una riga, quindi l'esecuzione dopo una normalizzazione esce senza toccare il file. Una guardia più sciatta si ripete per sempre, perché `perl -i` riscrive il file anche quando non sostituisce nulla e Claude Code esegue l'hook di nuovo dopo ogni riscrittura. Salva questo script in `/path/to/normalize-line-endings.sh` e rendilo eseguibile:3113L'hook legge il percorso assoluto del file modificato dal campo `file_path` dell'[input JSON](#filechanged-input) su stdin. La sua guardia `grep` testa la stessa cosa che `perl` rimuove, un CR alla fine di una riga, quindi l'esecuzione dopo una normalizzazione esce senza toccare il file. Una guardia più sciolta si cicla per sempre, perché `perl -i` riscrive il file anche quando non sostituisce nulla e Claude Code esegue l'hook di nuovo dopo ogni riscrittura. Salva questo script in `/path/to/normalize-line-endings.sh` e rendilo eseguibile:

3109 3114 

3110```bash theme={null}3115```bash theme={null}

3111#!/bin/bash3116#!/bin/bash


3117 3122 

3118Per confermare che l'hook funziona, chiedi a Claude di aggiungere una riga CRLF a `data.csv` con un comando `Bash`. Claude Code esegue l'hook e il file finisce con terminazioni LF.3123Per confermare che l'hook funziona, chiedi a Claude di aggiungere una riga CRLF a `data.csv` con un comando `Bash`. Claude Code esegue l'hook e il file finisce con terminazioni LF.

3119 3124 

3120Per osservare i file che non puoi nominare in anticipo, restituisci [`watchPaths`](#filechanged-output) da un hook per aggiornare l'elenco di osservazione dinamicamente. Claude Code avvia l'osservatore solo quando qualcosa nomina un file da osservare, quindi semina l'elenco con un gruppo FileChanged il cui matcher nomina almeno un file, o con un hook [SessionStart](#sessionstart-decision-control) o [CwdChanged](#cwdchanged) che restituisce `watchPaths`. Il matcher filtra comunque quali gruppi di hook si eseguono quando un file osservato cambia, quindi dai al gruppo che gestisce i percorsi dinamici un matcher omesso, che corrisponde a ogni file osservato e non aggiunge nulla all'elenco di osservazione. Un matcher `"*"` corrisponde anche a ogni file, ma Claude Code lo registra nell'elenco di osservazione come un file letterale denominato `*`.3125Per osservare i file che non puoi nominare in anticipo, restituisci [`watchPaths`](#filechanged-output) da un hook per aggiornare l'elenco di osservazione dinamicamente. Claude Code avvia l'osservatore solo quando qualcosa nomina un file da osservare, quindi semina l'elenco con un gruppo FileChanged il cui matcher nomina almeno un file, o con un hook [SessionStart](#sessionstart-decision-control) o [CwdChanged](#cwdchanged-output) che restituisce `watchPaths`. Il matcher filtra comunque quali gruppi di hook si eseguono quando un file osservato cambia, quindi dai al gruppo che gestisce i percorsi dinamici un matcher omesso, che corrisponde a ogni file osservato e non aggiunge nulla all'elenco di osservazione. Un matcher `"*"` corrisponde anche a ogni file, ma Claude Code lo registra nell'elenco di osservazione come qualsiasi altro valore, come un file letterale denominato `*`.

3121 3126 

3122Gli hook FileChanged hanno accesso a [`CLAUDE_ENV_FILE`](#persist-environment-variables). Le variabili scritte su quel file persistono nei comandi Bash successivi fino al prossimo evento [CwdChanged](#cwdchanged), quando Claude Code le cancella.3127Gli hook FileChanged hanno accesso a [`CLAUDE_ENV_FILE`](#persist-environment-variables). Le variabili scritte in quel file persistono nei comandi Bash successivi finché il prossimo evento [CwdChanged](#cwdchanged), quando Claude Code le cancella.

3123 3128 

3124<h4 id="filechanged-input">3129<h4 id="filechanged-input">

3125 Input FileChanged3130 Input FileChanged


3147 Output FileChanged3152 Output FileChanged

3148</h4>3153</h4>

3149 3154 

3150Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, gli hook FileChanged possono restituire `watchPaths` per aggiornare dinamicamente quali percorsi di file sono osservati:3155Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, gli hook FileChanged possono restituire `watchPaths` per aggiornare dinamicamente quali percorsi di file vengono osservati:

3151 3156 

3152| Campo | Descrizione |3157| Campo | Descrizione |

3153| :- | :- |3158| :- | :- |

3154| `watchPaths` | Array di percorsi assoluti. Sostituisce l'elenco di osservazione dinamico corrente. I percorsi dalla tua configurazione `matcher` vengono sempre osservati. Usalo quando il tuo script hook scopre file aggiuntivi da osservare in base al file modificato |3159| `watchPaths` | Array di percorsi assoluti. Sostituisce l'elenco di osservazione dinamico corrente. I percorsi dalla tua configurazione `matcher` vengono sempre osservati. Usalo quando il tuo script hook scopre file aggiuntivi da osservare in base al file modificato |

3155 3160 

3156Gli hook FileChanged non hanno controllo decisionale. Non possono bloccare il cambiamento del file dall'occorrenza.3161Gli hook FileChanged non hanno controllo decisionale. Non possono bloccare il cambio del file dal verificarsi.

3157 3162 

3158Claude Code legge `watchPaths` e `systemMessage` dal loro output JSON e scarta `continue`. Nelle sessioni interattive, mostra il `systemMessage` come una breve notifica di terminale. Il messaggio non raggiunge il flusso di messaggi dell'SDK.3163Claude Code legge `watchPaths` e `systemMessage` dal loro output JSON e scarta `continue`. Nelle sessioni interattive, mostra il `systemMessage` come una breve notifica di terminale. Il messaggio non raggiunge il flusso di messaggi dell'SDK.

3159 3164 


3163 3168 

3164Si esegue quando un worktree viene creato, sia da `claude --worktree`, da un [subagente che usa `isolation: "worktree"`](/docs/it/sub-agents#choose-the-subagent-scope), o per una [sessione di background](/docs/it/agent-view#how-file-edits-are-isolated) che Claude Code isola nel suo proprio worktree. Per impostazione predefinita Claude Code crea la copia di lavoro isolata con `git worktree`. Configurare un hook WorktreeCreate sostituisce quel comportamento git predefinito, permettendoti di usare un sistema di controllo della versione diverso come SVN, Perforce, o Mercurial.3169Si esegue quando un worktree viene creato, sia da `claude --worktree`, da un [subagente che usa `isolation: "worktree"`](/docs/it/sub-agents#choose-the-subagent-scope), o per una [sessione di background](/docs/it/agent-view#how-file-edits-are-isolated) che Claude Code isola nel suo proprio worktree. Per impostazione predefinita Claude Code crea la copia di lavoro isolata con `git worktree`. Configurare un hook WorktreeCreate sostituisce quel comportamento git predefinito, permettendoti di usare un sistema di controllo della versione diverso come SVN, Perforce, o Mercurial.

3165 3170 

3166Poiché l'hook sostituisce completamente il comportamento predefinito, [`.worktreeinclude`](/docs/it/worktrees#copy-gitignored-files-into-worktrees) non viene elaborato. Se hai bisogno di copiare file di configurazione locale come `.env` nel nuovo worktree, fallo dentro il tuo script hook.3171Poiché l'hook sostituisce completamente il comportamento predefinito, [`.worktreeinclude`](/docs/it/worktrees#copy-gitignored-files-into-worktrees) non viene elaborato. Se hai bisogno di copiare file di configurazione locali come `.env` nel nuovo worktree, fallo dentro il tuo script hook.

3167 3172 

3168L'hook deve restituire il percorso alla directory del worktree creato. Claude Code usa questo percorso come directory di lavoro per la sessione isolata. Vedi [Output WorktreeCreate](#worktreecreate-output) per come ogni tipo di hook restituisce il percorso.3173L'hook deve restituire il percorso alla directory del worktree creato. Claude Code usa questo percorso come directory di lavoro per la sessione isolata. Vedi [Output WorktreeCreate](#worktreecreate-output) per come ogni tipo di hook restituisce il percorso.

3169 3174 

3175Claude Code agisce sul successo dell'hook e sul percorso restituito, e scarta `systemMessage` e `continue`.

3176 

3170Questo esempio crea una copia di lavoro SVN e stampa il percorso per Claude Code da usare. Sostituisci l'URL del repository con il tuo:3177Questo esempio crea una copia di lavoro SVN e stampa il percorso per Claude Code da usare. Sostituisci l'URL del repository con il tuo:

3171 3178 

3172```json theme={null}3179```json theme={null}


3186}3193}

3187```3194```

3188 3195 

3189L'hook legge il `name` del worktree dall'input JSON su stdin, controlla una copia fresca in una nuova directory, e stampa il percorso della directory. L'`echo` sull'ultima riga è ciò che Claude Code legge come percorso del worktree. Reindirizza qualsiasi altro output a stderr in modo che non interferisca con il percorso.3196L'hook legge il `name` del worktree dall'input JSON su stdin, controlla una copia fresca in una nuova directory, e stampa il percorso della directory. L'`echo` sull'ultima riga è ciò che Claude Code legge come il percorso del worktree. Reindirizza qualsiasi altro output a stderr in modo che non interferisca con il percorso.

3190 3197 

3191<h4 id="worktreecreate-input">3198<h4 id="worktreecreate-input">

3192 Input WorktreeCreate3199 Input WorktreeCreate


3208 Output WorktreeCreate3215 Output WorktreeCreate

3209</h4>3216</h4>

3210 3217 

3211Gli hook WorktreeCreate non usano il modello di decisione di consentimento/blocco standard. Invece, il successo o il fallimento dell'hook determina il risultato. L'hook deve restituire il percorso alla directory del worktree creato:3218Gli hook WorktreeCreate non usano il modello di decisione standard consenti/blocca. Invece, il successo o il fallimento dell'hook determina il risultato. L'hook deve restituire il percorso alla directory del worktree creato:

3212 3219 

3213* **Hook di comando** (`type: "command"`): stampa il percorso come l'ultima riga non vuota di stdout. Claude Code rimuove i codici di escape ANSI prima di leggere quella riga, quindi i banner di avvio della shell stampati prima del tuo `echo` vengono ignorati. Reindirizza qualsiasi altro output dell'hook a stderr.3220* **Hook di comando** (`type: "command"`): stampa il percorso come l'ultima riga non vuota di stdout. Claude Code rimuove i codici di escape ANSI prima di leggere quella riga, quindi i banner di avvio della shell stampati prima del tuo `echo` vengono ignorati. Reindirizza qualsiasi altro output dell'hook a stderr.

3214* **Hook HTTP** (`type: "http"`): restituisci `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }` nel corpo della risposta.3221* **Hook HTTP** (`type: "http"`): restituisci `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }` nel corpo della risposta.

3215 3222 

3216Se l'hook fallisce o non produce un percorso, la creazione del worktree fallisce con un errore.3223Se l'hook fallisce o non produce alcun percorso, la creazione del worktree fallisce con un errore.

3217 3224 

3218Claude Code risolve un percorso relativo rispetto alla directory in cui l'hook si è eseguito, comprimendo qualsiasi segmento `.` o `..` in esso. Se il percorso risultante non è una directory in cui Claude Code può entrare, la sessione stampa un errore che nomina il percorso ed esce con codice 1.3225Claude Code risolve un percorso relativo rispetto alla directory in cui l'hook si è eseguito, collassando qualsiasi segmento `.` o `..` in esso. Se il percorso risultante non è una directory in cui Claude Code può entrare, la sessione stampa un errore che nomina il percorso ed esce con codice 1.

3219 3226 

3220Claude Code rifiuta un percorso assoluto che contiene segmenti `.` o `..`, e qualsiasi percorso che passa attraverso un symlink al di sotto della radice del repository, perché un symlink impegnato nel repository potrebbe reindirizzare il worktree al di fuori di esso. L'errore nomina il componente rifiutato. Restituisci un percorso normalizzato che non passa attraverso un symlink dentro il repository. Prima della v2.1.216, la creazione del worktree seguiva il percorso dell'hook senza questo screening.3227Claude Code rifiuta un percorso assoluto che contiene segmenti `.` o `..`, e qualsiasi percorso che passa attraverso un symlink sotto la radice del repository, perché un symlink committato nel repository potrebbe reindirizzare il worktree al di fuori di esso. L'errore nomina il componente rifiutato. Restituisci un percorso normalizzato che non passa attraverso un symlink dentro il repository. Prima della v2.1.216, la creazione del worktree seguiva il percorso dell'hook senza questo screening.

3221 3228 

3222<h3 id="worktreeremove">3229<h3 id="worktreeremove">

3223 WorktreeRemove3230 WorktreeRemove

3224</h3>3231</h3>

3225 3232 

3226Si esegue quando un worktree viene rimosso. Questo è la controparte di pulizia di [WorktreeCreate](#worktreecreate). L'evento si attiva quando:3233Si esegue quando un worktree viene rimosso. Questo è il contrapparte di pulizia di [WorktreeCreate](#worktreecreate). L'evento si esegue quando:

3227 3234 

3228* esci da una sessione `--worktree` e scegli di rimuoverla3235* esci da una sessione `--worktree` e scegli di rimuoverla

3229* un subagente con `isolation: "worktree"` finisce3236* un subagente con `isolation: "worktree"` finisce


3231 3238 

3232Per i worktree basati su git, Claude Code gestisce la pulizia automaticamente con `git worktree remove`. Se hai configurato un hook WorktreeCreate, accoppialo con un hook WorktreeRemove per controllare la pulizia dei worktree che crea:3239Per i worktree basati su git, Claude Code gestisce la pulizia automaticamente con `git worktree remove`. Se hai configurato un hook WorktreeCreate, accoppialo con un hook WorktreeRemove per controllare la pulizia dei worktree che crea:

3233 3240 

3234* **Nessun hook WorktreeRemove**: quando esci da una sessione `--worktree` e scegli la rimozione, Claude Code ritorna a `git worktree remove --force` sul percorso che il tuo hook WorktreeCreate ha restituito, quindi un worktree che git riconosce viene rimosso. Un worktree che git non riconosce, ad esempio uno che il tuo hook ha creato con un sistema di controllo della versione non git, rimane su disco. Per cosa elimina una [sessione di background](/docs/it/agent-view#what-deleting-a-session-removes) con un worktree creato da hook, vedi le regole di eliminazione della vista agente.3241* **Nessun hook WorktreeRemove**: quando esci da una sessione `--worktree` e scegli la rimozione, Claude Code ritorna a `git worktree remove --force` sul percorso che il tuo hook WorktreeCreate ha restituito, quindi un worktree che git riconosce viene rimosso. Un worktree che git non riconosce, ad esempio uno che il tuo hook ha creato con un sistema di controllo della versione non git, rimane su disco. Per cosa elimina una [sessione di background](/docs/it/agent-view#what-deleting-a-session-removes), vedi le regole di eliminazione della vista agente.

3235* **L'hook esce con 0**: il worktree conta come rimosso. Claude Code non legge nient'altro dall'hook, quindi assicurati che il tuo hook abbia eliminato la directory.3242* **L'hook esce con 0**: il worktree conta come rimosso. Claude Code non legge nient'altro dall'hook, quindi assicurati che il tuo hook abbia eliminato la directory.

3236* **L'hook esce con non-zero**: la rimozione fallisce se la directory in `worktree_path` esiste ancora dopo, e il worktree rimane su disco senza fallback git. Un hook che ha eliminato la directory prima di uscire con non-zero conta come rimosso. Per come il fallimento viene segnalato, vedi [Input WorktreeRemove](#worktreeremove-input).3243* **L'hook esce con non-zero**: la rimozione fallisce se la directory in `worktree_path` esiste ancora dopo, e il worktree rimane su disco senza fallback git. Un hook che ha eliminato la directory prima di uscire con non-zero conta come rimosso. Per come il fallimento viene segnalato, vedi [Input WorktreeRemove](#worktreeremove-input).

3237 3244 


3239 3246 

3240Claude Code scarta i [campi di output JSON](#json-output) di un hook WorktreeRemove, come `systemMessage` e `continue`.3247Claude Code scarta i [campi di output JSON](#json-output) di un hook WorktreeRemove, come `systemMessage` e `continue`.

3241 3248 

3242Per un'eliminazione di sessione di background, Claude Code verifica il percorso del worktree archiviato prima di eseguire l'hook e rifiuta un percorso che è un symlink o passa attraverso uno al di sotto della radice del repository. L'hook si esegue per un worktree che contiene ancora file solo quando confermi l'eliminazione nella [vista agente](/docs/it/agent-view#what-deleting-a-session-removes); per un worktree di questo tipo, [`claude rm`](/docs/it/agent-view#manage-sessions-from-the-shell) mantiene la sessione e il worktree invece. Prima della v2.1.216, l'hook si eseguiva sul percorso archiviato senza questi controlli.3249Per un'eliminazione di sessione di background, Claude Code verifica il percorso del worktree archiviato prima di eseguire l'hook e rifiuta un percorso che è un symlink o passa attraverso uno sotto la radice del repository. L'hook si esegue per un worktree che contiene ancora file solo quando confermi l'eliminazione nella [vista agente](/docs/it/agent-view#what-deleting-a-session-removes); per tale worktree, [`claude rm`](/docs/it/agent-view#manage-sessions-from-the-shell) mantiene la sessione e il worktree invece. Prima della v2.1.216, l'hook si eseguiva sul percorso archiviato senza questi controlli.

3243 3250 

3244Claude Code passa il percorso restituito da WorktreeCreate come `worktree_path` nell'input dell'hook. Questo esempio legge quel percorso e rimuove la directory:3251Claude Code passa il percorso restituito da WorktreeCreate come `worktree_path` nell'input dell'hook. Questo esempio legge quel percorso e rimuove la directory:

3245 3252 


3278 3285 

3279Il codice di uscita di un hook WorktreeRemove decide il risultato. Quando un hook esce con non-zero e la directory in `worktree_path` esiste ancora dopo, la rimozione fallisce:3286Il codice di uscita di un hook WorktreeRemove decide il risultato. Quando un hook esce con non-zero e la directory in `worktree_path` esiste ancora dopo, la rimozione fallisce:

3280 3287 

3281* Il worktree rimane su disco, e il comando dell'hook e stderr vanno al [log di debug](#debug-hooks).3288* Il worktree rimane su disco, e il comando dell'hook e stderr vanno nel [debug log](#debug-hooks).

3282* Se stavi eliminando una sessione di background, la sessione rimane anche. Il messaggio di rifiuto nella [vista agente](/docs/it/agent-view#what-deleting-a-session-removes) segnala come l'hook è terminato, come `exited 1`, cita l'inizio del suo stderr, e dice se eliminare la sessione di nuovo rimuove comunque la directory.3289* Se stavi eliminando una sessione di background, la sessione rimane anche. Il messaggio di rifiuto nella [vista agente](/docs/it/agent-view#what-deleting-a-session-removes) segnala come l'hook è terminato, come `exited 1`, cita l'inizio del suo stderr, e dice se eliminare la sessione di nuovo rimuove comunque la directory.

3283 3290 

3284<h3 id="precompact">3291<h3 id="precompact">


3296 3303 

3297Esci con codice 2 per bloccare la compattazione. Per un `/compact` manuale, il messaggio stderr viene mostrato all'utente. Puoi anche bloccare restituendo JSON con `"decision": "block"`.3304Esci con codice 2 per bloccare la compattazione. Per un `/compact` manuale, il messaggio stderr viene mostrato all'utente. Puoi anche bloccare restituendo JSON con `"decision": "block"`.

3298 3305 

3299Bloccare la compattazione automatica ha effetti diversi a seconda di quando si attiva. Se la compattazione è stata attivata in modo proattivo prima del limite di contesto, Claude Code la salta e la conversazione continua non compattata. Se la compattazione è stata attivata per recuperare da un errore di limite di contesto già restituito dall'API, l'errore sottostante emerge e la richiesta corrente fallisce.3306Bloccare la compattazione automatica ha effetti diversi a seconda di quando si esegue. Se la compattazione è stata attivata in modo proattivo prima del limite di contesto, Claude Code la salta e la conversazione continua non compattata. Se la compattazione è stata attivata per recuperare da un errore di limite di contesto già restituito dall'API, l'errore sottostante emerge e la richiesta corrente fallisce.

3300 3307 

3301Claude Code scarta i campi `systemMessage` e `continue` di un hook PreCompact.3308Claude Code scarta i campi `systemMessage` e `continue` di un hook PreCompact.

3302 3309 


3353 PreModelSwitch3360 PreModelSwitch

3354</h3>3361</h3>

3355 3362 

3356Si esegue prima che Claude Code applichi un cambio di modello che hai richiesto tu o un client. Usalo per bloccare un cambio, richiedere conferma, o mostrare quale sarà il costo del cambio prima che accada.3363Si esegue prima che Claude Code applichi un cambio di modello che hai richiesto tu o un client. Usalo per bloccare un cambio, richiedere conferma, o mostrare quale costo avrà il cambio prima che accada.

3357 3364 

3358PreModelSwitch richiede Claude Code v2.1.251 o successivo. Claude Code lo esegue per queste richieste:3365PreModelSwitch richiede Claude Code v2.1.251 o successivo. Claude Code lo esegue per queste richieste:

3359 3366 

3360* `/model <name>` e il selettore `/model`3367* `/model <name>` e il picker `/model`

3361* Il selettore del modello `Option+P` o `Alt+P`3368* Il picker del modello `Option+P` o `Alt+P`

3362* L'impostazione Model in `/config`3369* L'impostazione Model in `/config`

3363* Attivare la [modalità veloce](/docs/it/fast-mode) quando questo cambia il modello della sessione3370* Attivare la [modalità veloce](/docs/it/fast-mode) quando questo cambia il modello della sessione

3364* Una richiesta `set_model`, o un cambiamento di modello in una richiesta `apply_flag_settings`, da un host [Agent SDK](/docs/it/agent-sdk/typescript#query-object) o [Remote Control](/docs/it/remote-control)3371* Una richiesta `set_model`, o un cambio di modello in una richiesta `apply_flag_settings`, da un host [Agent SDK](/docs/it/agent-sdk/typescript#query-object) o [Remote Control](/docs/it/remote-control)

3365 3372 

3366Claude Code non esegue gli hook PreModelSwitch per i cambi che fa da solo, come un [fallback di modello automatico](/docs/it/model-config#automatic-model-fallback) o il ripristino del modello quando riprendi una sessione. Quei cambi raggiungono [PostModelSwitch](#postmodelswitch) solo.3373Claude Code non esegue gli hook PreModelSwitch per i cambi che fa da solo, come un [fallback di modello automatico](/docs/it/model-config#automatic-model-fallback) o il ripristino del modello quando riprendi una sessione. Quei cambi raggiungono [PostModelSwitch](#postmodelswitch) solo.

3367 3374 


3441 Input PreModelSwitch3448 Input PreModelSwitch

3442</h4>3449</h4>

3443 3450 

3444Oltre ai [campi di input comuni](#common-input-fields), gli hook PreModelSwitch ricevono i campi in questa tabella. Gli ultimi cinque descrivono quale costo ha reinviare la conversazione al nuovo modello, quindi un hook può mostrare quella cifra prima che il cambio accada.3451Oltre ai [campi di input comuni](#common-input-fields), gli hook PreModelSwitch ricevono i campi in questa tabella. Gli ultimi cinque descrivono quale costo ha il reinvio della conversazione al nuovo modello, quindi un hook può mostrare quella cifra prima che il cambio accada.

3445 3452 

3446| Campo | Tipo | Descrizione |3453| Campo | Tipo | Descrizione |

3447| :- | :- | :- |3454| :- | :- | :- |

3448| `from_model` | string | ID del modello da cui il cambio cambia |3455| `from_model` | string | ID del modello da cui il cambio cambia |

3449| `to_model` | string | ID del modello a cui il cambio cambia. Il matcher confronta rispetto al nome canonico di questo modello |3456| `to_model` | string | ID del modello a cui il cambio cambia. Il matcher confronta rispetto al nome canonico di questo modello |

3450| `requested_model` | string o `null` | Il modello che la richiesta ha nominato: un alias come `opus`, un ID di modello completo, o `null` quando la richiesta era per il modello predefinito |3457| `requested_model` | string o `null` | Il modello che la richiesta ha nominato: un alias come `opus`, un ID di modello completo, o `null` quando la richiesta era per il modello predefinito |

3451| `source` | string | Da dove proviene la richiesta: `"command"` per `/model <name>`, l'impostazione Model in `/config`, o l'attivazione della modalità veloce; `"picker"` per un selettore di modello; `"sdk"` per una richiesta `set_model`, o un cambiamento di modello in una richiesta `apply_flag_settings`, da un host Agent SDK o Remote Control |3458| `source` | string | Da dove viene la richiesta: `"command"` per `/model <name>`, l'impostazione Model in `/config`, o l'attivazione della modalità veloce; `"picker"` per un picker di modello; `"sdk"` per una richiesta `set_model`, o un cambio di modello in una richiesta `apply_flag_settings`, da un host Agent SDK o Remote Control |

3452| `context_tokens` | number | Token che la richiesta successiva reinvia come suo prompt: l'input, la lettura della cache, la creazione della cache, e i token di output dell'ultima risposta nella conversazione principale, combinati. `0` prima della prima risposta |3459| `context_tokens` | number | Token che la richiesta successiva invia di nuovo come suo prompt: i token di input, lettura della cache, creazione della cache, e output dell'ultima risposta nella conversazione principale, combinati. `0` prima della prima risposta |

3453| `prompt_cache_warm` | boolean | Se la cache del prompt del modello corrente è probabilmente ancora calda, il che significa che il cambio la perde |3460| `prompt_cache_warm` | boolean | Se la cache del prompt del modello corrente è probabilmente ancora calda, il che significa che il cambio la perde |

3454| `cache_ttl` | string | [Durata della cache del prompt](/docs/it/prompt-caching#cache-lifetime) che Claude Code richiede per questa sessione: `"5m"` o `"1h"` |3461| `cache_ttl` | string | [Durata della cache del prompt](/docs/it/prompt-caching#cache-lifetime) che Claude Code richiede per questa sessione: `"5m"` o `"1h"` |

3455| `estimated_cache_write_usd` | number | Costo stimato in dollari USA della scrittura di `context_tokens` nella cache del prompt su `to_model` al tasso `cache_ttl`, escludendo la risposta successiva. Il server potrebbe non aver bisogno di ri-memorizzare l'intero contesto, quindi trattalo come una stima |3462| `estimated_cache_write_usd` | number | Costo stimato in dollari USA della scrittura di `context_tokens` nella cache del prompt su `to_model` al tasso `cache_ttl`, escludendo la richiesta successiva. Il server potrebbe non aver bisogno di ri-memorizzare l'intero contesto, quindi trattalo come una stima |

3456| `pricing` | string | Come Claude Code ha prezzato `estimated_cache_write_usd`: `"configured"` ai tuoi tassi organizzativi quando li ha configurati, `"catalog"` al prezzo di listino, o `"default"` quando `to_model` non ha un prezzo noto e Claude Code ha assunto un tasso predefinito |3463| `pricing` | string | Come Claude Code ha prezzato `estimated_cache_write_usd`: `"configured"` ai tuoi tassi organizzativi quando li ha configurati, `"catalog"` al prezzo di listino, o `"default"` quando `to_model` non ha un prezzo noto e Claude Code ha assunto un tasso predefinito |

3457 3464 

3458Questo esempio mostra l'input per `/model opus` in una sessione che esegue Sonnet 5:3465Questo esempio mostra l'input per `/model opus` in una sessione che esegue Sonnet 5:


3506 3513 

3507Claude Code mostra all'utente qualsiasi `systemMessage` che il tuo hook restituisce indipendentemente dalla decisione, quindi un hook di rapporto dei costi può restituire `{"systemMessage": "..."}` e uscire con 0.3514Claude Code mostra all'utente qualsiasi `systemMessage` che il tuo hook restituisce indipendentemente dalla decisione, quindi un hook di rapporto dei costi può restituire `{"systemMessage": "..."}` e uscire con 0.

3508 3515 

3509Un hook PreModelSwitch che non risponde prima del suo timeout blocca il cambio. Su [PreToolUse](#timeouts), al contrario, un hook di comando che scade consente alla chiamata dello strumento di continuare. Il timeout predefinito per questo evento è 30 secondi. `PreModelSwitch` esegue solo gli hook `command`, `http`, e `mcp_tool`, quindi i default `prompt` e `agent` non si applicano.3516Un hook PreModelSwitch che non risponde prima del suo timeout blocca il cambio. Su [PreToolUse](#timeouts), al contrario, un hook di comando che scade lascia che la chiamata dello strumento continui. Il timeout predefinito per questo evento è 30 secondi. `PreModelSwitch` esegue solo gli hook `command`, `http`, e `mcp_tool`, quindi i default `prompt` e `agent` non si applicano.

3510 3517 

3511Un hook che esce con un codice diverso da 0 o 2 e non stampa alcuna decisione JSON non blocca: Claude Code mostra il suo stderr e applica il cambio, come descritto sotto [Altri codici di uscita](#other-exit-codes).3518Un hook che esce con un codice diverso da 0 o 2 e non stampa alcuna decisione JSON non blocca: Claude Code mostra il suo stderr e applica il cambio, come descritto sotto [Codici di uscita diversi](#other-exit-codes).

3512 3519 

3513<h3 id="postmodelswitch">3520<h3 id="postmodelswitch">

3514 PostModelSwitch3521 PostModelSwitch


3547}3554}

3548```3555```

3549 3556 

3550Per confermare che l'hook funziona, passa a un modello Opus da una sessione che esegue un modello diverso, ad esempio esegui `/model opus` da una sessione Sonnet, quindi chiedi a Claude quale guida ha sul modello corrente.3557Per confermare che l'hook funziona, cambia a un modello Opus da una sessione che esegue un modello diverso, ad esempio esegui `/model opus` da una sessione Sonnet, quindi chiedi a Claude quale guida ha sul modello corrente.

3551 3558 

3552<h4 id="postmodelswitch-input">3559<h4 id="postmodelswitch-input">

3553 Input PostModelSwitch3560 Input PostModelSwitch

3554</h4>3561</h4>

3555 3562 

3556Gli hook PostModelSwitch ricevono gli stessi campi di [PreModelSwitch](#premodelswitch-input), con `hook_event_name` impostato su `"PostModelSwitch"` e due valori `source` aggiuntivi: `"auto"` per un fallback automatico o un altro cambiamento che Claude Code ha fatto da solo, e `"resume"` per il modello ripristinato quando riprendi una sessione.3563Gli hook PostModelSwitch ricevono gli stessi campi di [PreModelSwitch](#premodelswitch-input), con `hook_event_name` impostato su `"PostModelSwitch"` e due valori `source` aggiuntivi: `"auto"` per un fallback automatico o un altro cambio che Claude Code ha fatto da solo, e `"resume"` per il modello ripristinato quando riprendi una sessione.

3557 3564 

3558`requested_model` è `null` quando `source` è `"auto"`. Quando `source` è `"resume"`, è l'impostazione del modello salvato che Claude Code ha ripristinato.3565`requested_model` è `null` quando `source` è `"auto"`. Quando `source` è `"resume"`, è l'impostazione del modello salvato che Claude Code ha ripristinato.

3559 3566 


3561 Controllo decisionale PostModelSwitch3568 Controllo decisionale PostModelSwitch

3562</h4>3569</h4>

3563 3570 

3564Claude Code prende il tuo stdout in testo semplice dell'hook all'uscita 0, o `additionalContext` dall'output JSON, e lo consegna a Claude con la richiesta successiva dopo il cambio. Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, puoi restituire:3571Claude Code prende il tuo stdout di [testo semplice](#exit-code-0) dell'hook all'uscita 0, o `additionalContext` dall'output JSON, e lo consegna a Claude con la richiesta successiva dopo il cambio. Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, puoi restituire:

3565 3572 

3566| Campo | Descrizione |3573| Campo | Descrizione |

3567| :- | :- |3574| :- | :- |

3568| `additionalContext` | Stringa aggiunta al contesto di Claude con la richiesta successiva. Vedi [Aggiungi contesto per Claude](#add-context-for-claude) |3575| `additionalContext` | Stringa aggiunta al contesto di Claude con la richiesta successiva. Vedi [Aggiungi contesto per Claude](#add-context-for-claude) |

3569 3576 

3570Se l'hook non finisce entro cinque secondi dopo che invii la richiesta successiva, Claude Code invia quella richiesta senza l'output e lo allega alla richiesta successiva. Se il modello cambia più volte prima della richiesta successiva, Claude Code consegna solo l'output per il modello target dell'ultimo cambio.3577Se l'hook non finisce entro cinque secondi dopo che invii la richiesta successiva, Claude Code invia quella richiesta senza l'output e lo allega alla richiesta successiva. Se il modello cambia più volte prima della richiesta successiva, Claude Code consegna solo l'output per il cambio del modello target finale.

3571 3578 

3572<h3 id="sessionend">3579<h3 id="sessionend">

3573 SessionEnd3580 SessionEnd

3574</h3>3581</h3>

3575 3582 

3576Si esegue quando una sessione di Claude Code termina. Utile per le attività di pulizia, la registrazione delle statistiche della sessione, o il salvataggio dello stato della sessione. Supporta i matcher per filtrare per motivo di uscita.3583Si esegue quando una sessione di Claude Code termina. Utile per attività di pulizia, registrazione delle statistiche della sessione, o salvataggio dello stato della sessione. Supporta i matcher per filtrare per motivo di uscita.

3577 3584 

3578Il campo `reason` nell'input dell'hook indica perché la sessione è terminata:3585Il campo `reason` nell'input dell'hook indica perché la sessione è terminata:

3579 3586 


3584| `logout` | L'utente ha effettuato il logout |3591| `logout` | L'utente ha effettuato il logout |

3585| `prompt_input_exit` | L'utente è uscito mentre l'input del prompt era visibile |3592| `prompt_input_exit` | L'utente è uscito mentre l'input del prompt era visibile |

3586| `other` | Altri motivi di uscita |3593| `other` | Altri motivi di uscita |

3587| `bypass_permissions_disabled` | Rimosso nella v2.1.234; Claude Code non lo invia. Rimuovilo dai tuoi matcher `SessionEnd` |3594| `bypass_permissions_disabled` | Rimosso nella v2.1.234; Claude Code non lo invia. Eliminalo dai tuoi matcher `SessionEnd` |

3588 3595 

3589<h4 id="sessionend-input">3596<h4 id="sessionend-input">

3590 Input SessionEnd3597 Input SessionEnd


3629 Input Elicitation3636 Input Elicitation

3630</h4>3637</h4>

3631 3638 

3632Oltre ai [campi di input comuni](#common-input-fields), gli hook Elicitation ricevono `mcp_server_name`, `message`, e i campi facoltativi `mode`, `url`, `elicitation_id`, e `requested_schema`.3639Oltre ai [campi di input comuni](#common-input-fields), gli hook Elicitation ricevono `mcp_server_name`, `message`, e campi facoltativi `mode`, `url`, `elicitation_id`, e `requested_schema`.

3633 3640 

3634Per l'elicitazione in modalità modulo, il caso più comune:3641Per l'elicitazione in modalità modulo, il caso più comune:

3635 3642 


3697 ElicitationResult3704 ElicitationResult

3698</h3>3705</h3>

3699 3706 

3700Si esegue dopo che un utente risponde a un'elicitazione MCP. Gli hook possono osservare, modificare, o bloccare la risposta prima che venga inviata al server MCP.3707Si esegue dopo che un utente risponde a un'elicitazione MCP. Gli hook possono osservare, modificare, o bloccare la risposta prima che venga inviata di nuovo al server MCP.

3701 3708 

3702Il campo matcher corrisponde al nome del server MCP.3709Il campo matcher corrisponde al nome del server MCP.

3703 3710 


3705 Input ElicitationResult3712 Input ElicitationResult

3706</h4>3713</h4>

3707 3714 

3708Oltre ai [campi di input comuni](#common-input-fields), gli hook ElicitationResult ricevono `mcp_server_name`, `action`, e i campi facoltativi `mode`, `elicitation_id`, e `content`.3715Oltre ai [campi di input comuni](#common-input-fields), gli hook ElicitationResult ricevono `mcp_server_name`, `action`, e campi facoltativi `mode`, `elicitation_id`, e `content`.

3709 3716 

3710```json theme={null}3717```json theme={null}

3711{3718{

hooks-guide.md +1 −1

Details

196| `elicitation_url_dialog` | Un server MCP vi chiede di aprire un URL del browser e voi non avete digitato per circa sei secondi |196| `elicitation_url_dialog` | Un server MCP vi chiede di aprire un URL del browser e voi non avete digitato per circa sei secondi |

197| `elicitation_complete` | Un server MCP segnala che un'[elicitazione in modalità URL](/docs/it/hooks#elicitation-input) è completa |197| `elicitation_complete` | Un server MCP segnala che un'[elicitazione in modalità URL](/docs/it/hooks#elicitation-input) è completa |

198| `elicitation_response` | Una risposta di elicitazione MCP viene inviata al server |198| `elicitation_response` | Una risposta di elicitazione MCP viene inviata al server |

199| `agent_needs_input` | Una sessione in background inizia ad aspettare il vostro input mentre la [visualizzazione agente](/docs/it/agent-view) è aperta, o la sessione corrente vi pone una [domanda di configurazione del terminale di un compagno di squadra agente](/docs/it/agent-teams#choose-a-display-mode) e voi non avete digitato per circa sei secondi |199| `agent_needs_input` | Una sessione in background inizia ad aspettare il vostro input mentre la [visualizzazione agente](/docs/it/agent-view) è aperta. Inoltre si attiva quando una sessione di terminale vi pone una [domanda di configurazione del terminale di un compagno di squadra agente](/docs/it/agent-teams#choose-a-display-mode) o l'avviso della modalità automatica su [addebiti di richiesta del classificatore](/docs/it/auto-mode-classifier-billing) e voi non avete digitato per circa sei secondi |

200| `agent_completed` | Una sessione in background finisce o fallisce. Si attiva solo mentre la [visualizzazione agente](/docs/it/agent-view) è aperta |200| `agent_completed` | Una sessione in background finisce o fallisce. Si attiva solo mentre la [visualizzazione agente](/docs/it/agent-view) è aperta |

201| `quota_auto_resume_fired` | Claude Code continua il vostro compito dopo che un limite di utilizzo di claude.ai lo ha messo in pausa: al reset, o prima quando qualcosa che fate in Claude Code durante l'attesa, come aggiungere crediti di utilizzo, aggiornare il vostro piano o cambiare modelli, rende l'utilizzo disponibile di nuovo, con l'[eccezione di impostazione del modello](/docs/it/interactive-mode#wait-for-a-usage-limit-to-reset) |201| `quota_auto_resume_fired` | Claude Code continua il vostro compito dopo che un limite di utilizzo di claude.ai lo ha messo in pausa: al reset, o prima quando qualcosa che fate in Claude Code durante l'attesa, come aggiungere crediti di utilizzo, aggiornare il vostro piano o cambiare modelli, rende l'utilizzo disponibile di nuovo, con l'[eccezione di impostazione del modello](/docs/it/interactive-mode#wait-for-a-usage-limit-to-reset) |

202| `quota_auto_resume_stale` | Un limite di utilizzo di claude.ai si è resettato mentre il vostro computer dormiva per più di circa 30 minuti. Claude Code aspetta che premiate `Enter` invece di continuare. Dopo un sonno più breve continua e attiva `quota_auto_resume_fired` invece |202| `quota_auto_resume_stale` | Un limite di utilizzo di claude.ai si è resettato mentre il vostro computer dormiva per più di circa 30 minuti. Claude Code aspetta che premiate `Enter` invece di continuare. Dopo un sonno più breve continua e attiva `quota_auto_resume_fired` invece |

keybindings.md +5 −2

Details

301| `footer:down` | Giù | Naviga verso il basso nel piè di pagina |301| `footer:down` | Giù | Naviga verso il basso nel piè di pagina |

302| `footer:openSelected` | Invio | Apri l'elemento del piè di pagina selezionato |302| `footer:openSelected` | Invio | Apri l'elemento del piè di pagina selezionato |

303| `footer:clearSelection` | Escape | Cancella la selezione del piè di pagina |303| `footer:clearSelection` | Escape | Cancella la selezione del piè di pagina |

304| `footer:dismiss` | (non associato) | Rimosso nella v2.1.281. Un `keybindings.json` che nomina ancora l'azione rimane valido e l'associazione non fa nulla. Prima della v2.1.281, Backspace e Canc chiudevano il collegamento dell'artefatto selezionato dal piè di pagina |304| `footer:dismiss` | (non associato) | Associare un tasto a questa azione non ha alcun effetto, e un `keybindings.json` che la nomina rimane valido. Prima della v2.1.281, Backspace e Canc erano associati a essa e chiudevano il collegamento dell'artefatto selezionato dal piè di pagina. |

305 305 

306Mentre un elemento del piè di pagina è selezionato, come una riga nel pannello dell'agente sotto il prompt, `Invio` lo apre anche quando riassoci `Invio` nel contesto `Chat` a `chat:queueSubmit` o `chat:newline`.306Mentre un elemento del piè di pagina è selezionato, come una riga nel pannello dell'agente sotto il prompt, `Invio` lo apre anche quando riassoci `Invio` nel contesto `Chat` a `chat:queueSubmit` o `chat:newline`.

307 307 


417| `select:accept` | Invio | Accetta la selezione |417| `select:accept` | Invio | Accetta la selezione |

418| `select:cancel` | Escape | Annulla la selezione |418| `select:cancel` | Escape | Annulla la selezione |

419 419 

420Nei pannelli elenco come `/skills` e `/mcp`, Claude Code applica le tue associazioni `select:pageUp`, `select:pageDown`, `select:first` e `select:last`. Nella maggior parte degli altri elenchi, come il selezionatore `/model`, si applicano le tue associazioni `select:first` e `select:last`. PagSu e PagGiù scorrono le opzioni in quegli elenchi indipendentemente dalle tue associazioni.420Nei pannelli elenco come `/skills`, `/mcp` e `/tasks`, Claude Code applica le tue associazioni `select:pageUp`, `select:pageDown`, `select:first` e `select:last`. Nella maggior parte degli altri elenchi, come il selezionatore `/model`, si applicano le tue associazioni `select:first` e `select:last`. PagSu e PagGiù scorrono le opzioni in quegli elenchi indipendentemente dalle tue associazioni.

421 421 

422Prima della v2.1.280, quegli altri elenchi ignoravano Home, Fine e le tue associazioni `select:first` e `select:last`.422Prima della v2.1.280, quegli altri elenchi ignoravano Home, Fine e le tue associazioni `select:first` e `select:last`.

423 423 

424Prima della v2.1.283, l'elenco degli strumenti `/mcp` scorreva con tasti PageUp e PageDown fissi indipendentemente dalle tue associazioni.

425 

424<h3 id="plugin-actions">426<h3 id="plugin-actions">

425 Azioni dei plugin427 Azioni dei plugin

426</h3>428</h3>


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

693 695 

694* Errori di analisi (JSON non valido o struttura non valida)696* Errori di analisi (JSON non valido o struttura non valida)

697* Modificatori scritti male, come `ctl+k`. Claude Code elimina la parte che non riconosce e applica il binding al tasto rimanente, `k` in questo esempio.

695* Nomi di contesto non validi698* Nomi di contesto non validi

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

697* Nomi di azione sconosciuti, come un errore di battitura di un'azione registrata. Claude Code salta il binding e mantiene in vigore qualsiasi binding predefinito per quel tasto. Prima della v2.1.246, un binding con un nome di azione sconosciuto disabilitava silenziosamente quel tasto700* Nomi di azione sconosciuti, come un errore di battitura di un'azione registrata. Claude Code salta il binding e mantiene in vigore qualsiasi binding predefinito per quel tasto. Prima della v2.1.246, un binding con un nome di azione sconosciuto disabilitava silenziosamente quel tasto

Details

79 79 

80Quando il client parla il formato Amazon Bedrock, inoltrate il corpo della risposta `InvokeModelWithResponseStream` e il suo header `Content-Type: application/vnd.amazon.eventstream` senza modifiche, e non convertite il flusso in server-sent events. Vedete [Errori di streaming dietro un gateway o proxy](/docs/it/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy).80Quando il client parla il formato Amazon Bedrock, inoltrate il corpo della risposta `InvokeModelWithResponseStream` e il suo header `Content-Type: application/vnd.amazon.eventstream` senza modifiche, e non convertite il flusso in server-sent events. Vedete [Errori di streaming dietro un gateway o proxy](/docs/it/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy).

81 81 

82Inoltrate anche i ping keep-alive. Sulle connessioni attraverso `ANTHROPIC_BASE_URL` o `ANTHROPIC_AWS_BASE_URL`, Claude Code conta ogni byte che il vostro gateway inoltra, inclusi gli eventi SSE `ping` e le righe di commento, e interrompe un flusso che rimane silenzioso per 300 secondi per impostazione predefinita. I ping dell'upstream sono l'unico traffico durante le pause di pensiero lunghe, quindi se il vostro gateway li elimina o li memorizza nel buffer, Claude Code interrompe il flusso durante quelle pause; [Tentativi automatici](/docs/it/errors#automatic-retries) copre ciò che un flusso interrotto segnala in base a quanto la risposta era progredita. Un upstream che non invia affatto ping, come l'event-stream binario di Amazon Bedrock, lascia quelle pause senza nulla da inoltrare. Quando si traduce da un tale upstream, emettete i vostri stessi eventi `ping` durante i gap silenziosi. I gateway raggiunti attraverso `ANTHROPIC_BEDROCK_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL`, o `ANTHROPIC_FOUNDRY_BASE_URL` non sono avvolti da questo watchdog a livello di byte, anche quando inoltrano il formato Anthropic Messages; lì, un [timeout di inattività di 5 minuti](/docs/it/env-vars) interrompe un flusso silenzioso invece, e sulle connessioni `ANTHROPIC_BEDROCK_BASE_URL` potete aggiungere il watchdog di byte con [`CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK`](/docs/it/env-vars).82Inoltrate anche i ping keep-alive, perché Claude Code interrompe una risposta in streaming una volta che nessun byte la raggiunge per [cinque minuti per impostazione predefinita](/docs/it/network-config#streaming-idle-watchdogs). Durante una lunga pausa di pensiero, gli eventi SSE `ping` dell'upstream possono essere gli unici byte sul flusso. Se il vostro gateway li elimina o li memorizza nel buffer, Claude Code interrompe la risposta a metà della pausa. Quando traducete da un upstream che non invia affatto ping, come l'event-stream binario di Amazon Bedrock, emettete i vostri stessi eventi `ping` durante i gap silenziosi.

83 83 

84<h3 id="format-mismatch-with-the-upstream">84<h3 id="format-mismatch-with-the-upstream">

85 Mancata corrispondenza di formato con l'upstream85 Mancata corrispondenza di formato con l'upstream

managed-mcp.md +23 −6

Details

31 31 

32| Pattern | Cosa fa | Configura |32| Pattern | Cosa fa | Configura |

33| :- | :- | :- |33| :- | :- | :- |

34| **Disabilita MCP** | Nessun server si carica, a parte i [server in-process che l'app che ha avviato la sessione registra](#exclusive-control-with-managed-mcp-json) e quelli che [fornisci tramite `managedMcpServers`](#provide-servers-through-managed-settings) | `managed-mcp.json` con una mappa server vuota |34| **Disabilita MCP** | Nessun server si carica, a parte i pochi che [si caricano sotto controllo esclusivo](#exclusive-control-with-managed-mcp-json) | `managed-mcp.json` con una mappa server vuota |

35| **Distribuzione fissa** | Ogni utente ottiene gli stessi server e non può aggiungerne altri | `managed-mcp.json` con i server che desideri |35| **Distribuzione fissa** | Ogni utente ottiene gli stessi server e non può aggiungerne altri | `managed-mcp.json` con i server che desideri |

36| **Server forniti** | Ogni utente ottiene i server remoti che elenchi e mantiene i propri | `managedMcpServers` nelle impostazioni gestite |36| **Server forniti** | Ogni utente ottiene i server remoti che elenchi e mantiene i propri | `managedMcpServers` nelle impostazioni gestite |

37| **Catalogo approvato** | Pubblica un elenco di server approvati; gli utenti aggiungono quelli che desiderano, tutto il resto è bloccato | `allowedMcpServers` + `allowManagedMcpServersOnly: true` |37| **Catalogo approvato** | Pubblica un elenco di server approvati; gli utenti aggiungono quelli che desiderano, tutto il resto è bloccato | `allowedMcpServers` + `allowManagedMcpServersOnly: true` |


53* I server che il file definisce53* I server che il file definisce

54* I server che [fornisci attraverso `managedMcpServers`](#provide-servers-through-managed-settings)54* I server che [fornisci attraverso `managedMcpServers`](#provide-servers-through-managed-settings)

55* I server in-process che l'app che ha avviato la sessione registra, come il server proprio dell'estensione VS Code o i [connettori che l'app desktop fornisce](/docs/it/mcp#how-connectors-reach-claude-code)55* I server in-process che l'app che ha avviato la sessione registra, come il server proprio dell'estensione VS Code o i [connettori che l'app desktop fornisce](/docs/it/mcp#how-connectors-reach-claude-code)

56* Il server integrato [Claude in Chrome](/docs/it/chrome), se lo [consenti insieme al set gestito](#allow-claude-in-chrome-alongside-the-managed-set)

56 57 

57Gli utenti non possono aggiungere, modificare o utilizzare altri server MCP, inclusi i server forniti dai plugin e i server passati con il [flag CLI `--mcp-config`](/docs/it/cli-reference#cli-flags). Il file sopprime anche i connettori claude.ai che Claude Code recupera da solo, a meno che tu non [li consenta insieme al set gestito](#allow-claude-ai-connectors-alongside-the-managed-set).58Gli utenti non possono aggiungere, modificare o utilizzare altri server MCP, inclusi i server forniti dai plugin e i server passati con il [flag CLI `--mcp-config`](/docs/it/cli-reference#cli-flags). Il file sopprime anche i connettori claude.ai che Claude Code recupera da solo, a meno che tu non [li consenta insieme al set gestito](#allow-claude-ai-connectors-alongside-the-managed-set).

58 59 


144 Disabilitare MCP completamente145 Disabilitare MCP completamente

145</h3>146</h3>

146 147 

147Distribuisci un `managed-mcp.json` contenente una mappa di server vuota per bloccare ogni server MCP a parte i [server in-process che l'app che ha avviato la sessione registra](#exclusive-control-with-managed-mcp-json):148Distribuisci un `managed-mcp.json` contenente una mappa di server vuota per bloccare ogni server MCP a parte i [server in-process che l'app che ha avviato la sessione registra, come il server proprio dell'estensione VS Code o i connettori che l'app desktop fornisce](#exclusive-control-with-managed-mcp-json):

148 149 

149```json theme={null}150```json theme={null}

150{151{


152}153}

153```154```

154 155 

155`claude mcp add` fallisce con l'errore di policy aziendale di cui sopra. I server che gli utenti avevano precedentemente configurato smettono di caricarsi la prossima volta che avviano una sessione, senza avviso che la policy è il motivo. I server che fornisci attraverso `managedMcpServers` si caricano comunque sotto una mappa vuota, quindi lascia quella chiave non impostata anche per disabilitare MCP completamente.156`claude mcp add` fallisce con l'errore di policy aziendale di cui sopra. I server che gli utenti avevano precedentemente configurato smettono di caricarsi la prossima volta che avviano una sessione, senza avviso che la policy è il motivo. I server che fornisci attraverso `managedMcpServers`, e qualsiasi altra cosa tu consenta insieme al set gestito, si caricano comunque sotto una mappa vuota, quindi lascia quelle chiavi non impostate per disabilitare MCP completamente.

156 157 

157<h3 id="allow-claude-ai-connectors-alongside-the-managed-set">158<h3 id="allow-claude-ai-connectors-alongside-the-managed-set">

158 Consentire i connettori claude.ai insieme al set gestito159 Consentire i connettori claude.ai insieme al set gestito


166 167 

167Claude Code legge `allowAllClaudeAiMcps` solo dai livelli di policy controllati dall'amministratore: impostazioni gestite dal server, una chiave plist distribuita da MDM o una chiave di registro HKLM, o un file `managed-settings.json` di sistema. Posizionarlo nelle impostazioni utente o progetto non ha effetto, quindi gli utenti non possono riabilitare i connettori che il controllo esclusivo ha soppresso.168Claude Code legge `allowAllClaudeAiMcps` solo dai livelli di policy controllati dall'amministratore: impostazioni gestite dal server, una chiave plist distribuita da MDM o una chiave di registro HKLM, o un file `managed-settings.json` di sistema. Posizionarlo nelle impostazioni utente o progetto non ha effetto, quindi gli utenti non possono riabilitare i connettori che il controllo esclusivo ha soppresso.

168 169 

170<h3 id="allow-claude-in-chrome-alongside-the-managed-set">

171 Consentire Claude in Chrome insieme al set gestito

172</h3>

173 

174Per impostazione predefinita, quando distribuisci `managed-mcp.json`, Claude Code blocca il server integrato [Claude in Chrome](/docs/it/chrome) nelle sessioni di terminale. Gli utenti non ricevono il [prompt di installazione dell'estensione](/docs/it/chrome#install-the-extension-when-claude-asks), e una sessione in cui l'utente ha [abilitato Chrome per impostazione predefinita](/docs/it/chrome#enable-chrome-by-default) si avvia senza Chrome e non stampa alcun avviso. Quando un utente che potrebbe altrimenti eseguire Claude in Chrome lo avvia con `claude --chrome` o `CLAUDE_CODE_ENABLE_CFC=1`, Claude Code esce all'avvio con un errore che nomina l'impostazione `allowClaudeInChromeWithManagedMcp`.

175 

176Per consentire agli utenti di eseguire Claude in Chrome insieme ai server in `managed-mcp.json`, imposta `"allowClaudeInChromeWithManagedMcp": true` nelle impostazioni gestite del dispositivo. Inseriscilo in una chiave plist distribuita da MDM o una chiave di registro HKLM, o un file `managed-settings.json` di sistema, a seconda di quale Claude Code [seleziona](/docs/it/managed-settings#precedence-within-the-managed-tier) su quel dispositivo. Richiede Claude Code v2.1.282 o successivo. Prima della v2.1.282, Claude Code ignora l'impostazione, e il messaggio di errore all'avvio recita `You cannot dynamically configure MCP servers when an enterprise MCP config is present`.

177 

178Claude Code legge l'impostazione da quelle fonti di dispositivo anche quando [impostazioni gestite dal server](/docs/it/server-managed-settings) forniscono il resto della tua policy. Ignora l'impostazione nelle impostazioni gestite dal server stesse, nel registro HKCU scrivibile dall'utente, e nelle impostazioni utente o progetto. Una voce [`deniedMcpServers`](#policy-based-control-with-allowlists-and-denylists) per `claude-in-chrome` blocca comunque il server con l'impostazione attiva.

179 

169<h2 id="provide-servers-through-managed-settings">180<h2 id="provide-servers-through-managed-settings">

170 Fornire server tramite impostazioni gestite181 Fornire server tramite impostazioni gestite

171</h2>182</h2>


303 314 

304| Impostazione | Non impostato (predefinito) | Array vuoto `[]` | Popolato |315| Impostazione | Non impostato (predefinito) | Array vuoto `[]` | Popolato |

305| :- | :- | :- | :- |316| :- | :- | :- | :- |

306| `allowedMcpServers` | Tutti i server consentiti | Nessun server consentito, a parte [i server dell'organizzazione](#how-a-server-is-evaluated) | Solo i server corrispondenti consentiti, a parte [i server dell'organizzazione](#how-a-server-is-evaluated) |317| `allowedMcpServers` | Tutti i server consentiti | Nessun server consentito, a parte [quelli che saltano il controllo dell'allowlist](#how-a-server-is-evaluated) | Solo i server corrispondenti consentiti, a parte [quelli che saltano il controllo dell'allowlist](#how-a-server-is-evaluated) |

307| `deniedMcpServers` | Nessun server bloccato | Nessun server bloccato | Server corrispondenti bloccati |318| `deniedMcpServers` | Nessun server bloccato | Nessun server bloccato | Server corrispondenti bloccati |

308 319 

309Vedi [Voci non valide nelle impostazioni gestite](/docs/it/managed-settings#invalid-entries-in-managed-settings) per sapere cosa accade quando una voce non supera la convalida dello schema.320Vedi [Voci non valide nelle impostazioni gestite](/docs/it/managed-settings#invalid-entries-in-managed-settings) per sapere cosa accade quando una voce non supera la convalida dello schema.


3292. **Controlla il denylist.** Un server che corrisponde a qualsiasi voce del denylist, per URL, comando o nome, viene bloccato. Nulla sostituisce una corrispondenza del denylist.3402. **Controlla il denylist.** Un server che corrisponde a qualsiasi voce del denylist, per URL, comando o nome, viene bloccato. Nulla sostituisce una corrispondenza del denylist.

3303. **Controlla l'allowlist.** Se `allowedMcpServers` non è impostato da nessuna parte, ogni server che ha superato il denylist si carica. Se è impostato, ciò a cui il server deve corrispondere dipende dal suo tipo, mostrato nella tabella di seguito.3413. **Controlla l'allowlist.** Se `allowedMcpServers` non è impostato da nessuna parte, ogni server che ha superato il denylist si carica. Se è impostato, ciò a cui il server deve corrispondere dipende dal suo tipo, mostrato nella tabella di seguito.

331 342 

332 I server dell'organizzazione saltano questo controllo: ogni voce `managedMcpServers` e qualsiasi voce `managed-mcp.json` i cui valori non utilizzano l'espansione `${VAR}`. Anche i server integrati lo saltano, come Claude in Chrome, il server `ide` a cui Claude Code si connette in un IDE VS Code o JetBrains in esecuzione, e i server che la CLI stessa configura.343 Tre gruppi di server saltano questo controllo:

344 

345 * I server dell'organizzazione: ogni voce `managedMcpServers` e qualsiasi voce `managed-mcp.json` i cui valori non utilizzano l'espansione `${VAR}`.

346 * Server integrati, come Claude in Chrome, il server `ide` a cui Claude Code si connette in un IDE VS Code o JetBrains in esecuzione, e i server che la CLI stessa configura.

347 * I tool Slack di una sessione [Claude Tag](/docs/it/claude-tag): i server che utilizza per leggere il thread e pubblicare le sue risposte si caricano senza una voce di allowlist.

333 348 

334 Un server `managed-mcp.json` che utilizza l'espansione `${VAR}` nel suo comando, argomenti, `env`, URL o intestazioni viene comunque controllato, così come ogni server che un utente, un plugin, `--mcp-config` o claude.ai aggiunge.349 Un server `managed-mcp.json` che utilizza l'espansione `${VAR}` nel suo comando, argomenti, `env`, URL o intestazioni viene comunque controllato. Lo stesso vale per ogni server che un utente, un plugin, o claude.ai aggiunge, e ogni server che un utente passa con `--mcp-config`.

335 350 

336| Tipo di server | Consentito quando corrisponde |351| Tipo di server | Consentito quando corrisponde |

337| :- | :- |352| :- | :- |


514| Restrizione | Cosa vede l'utente |529| Restrizione | Cosa vede l'utente |

515| :- | :- |530| :- | :- |

516| `managed-mcp.json` è presente e l'utente esegue `claude mcp add` | `Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers` |531| `managed-mcp.json` è presente e l'utente esegue `claude mcp add` | `Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers` |

532| `managed-mcp.json` è presente e un utente che potrebbe altrimenti eseguire Claude in Chrome esegue `claude --chrome` | Claude Code esce all'avvio con `Claude in Chrome is blocked by your organization's managed MCP configuration (managed-mcp.json). An administrator can allow it with allowClaudeInChromeWithManagedMcp in device policy.` |

517| Il server è su una denylist e l'utente esegue `claude mcp add` | `Cannot add MCP server "<name>": server is explicitly blocked by enterprise policy` |533| Il server è su una denylist e l'utente esegue `claude mcp add` | `Cannot add MCP server "<name>": server is explicitly blocked by enterprise policy` |

518| Il server non è su una allowlist e l'utente esegue `claude mcp add` | `Cannot add MCP server "<name>": not allowed by enterprise policy` |534| Il server non è su una allowlist e l'utente esegue `claude mcp add` | `Cannot add MCP server "<name>": not allowed by enterprise policy` |

519| L'utente esegue `claude mcp remove` su un server da `managedMcpServers` | `MCP server "<name>" is provided by your organization (managed settings) and cannot be removed locally.` |535| L'utente esegue `claude mcp remove` su un server da `managedMcpServers` | `MCP server "<name>" is provided by your organization (managed settings) and cannot be removed locally.` |


541| `allowedMcpServers` | Allowlist di server consentiti | Qualsiasi [ambito di impostazioni](/docs/it/settings#where-settings-live); [Come un server viene valutato](#how-a-server-is-evaluated) dice come gli elenchi da diversi ambiti e fonti gestite si combinano | Per l'applicazione, una [fonte di impostazioni gestite](/docs/it/admin-setup#decide-how-settings-reach-devices): impostazioni gestite dal server, `managed-settings.json`, profilo MDM, o registro |557| `allowedMcpServers` | Allowlist di server consentiti | Qualsiasi [ambito di impostazioni](/docs/it/settings#where-settings-live); [Come un server viene valutato](#how-a-server-is-evaluated) dice come gli elenchi da diversi ambiti e fonti gestite si combinano | Per l'applicazione, una [fonte di impostazioni gestite](/docs/it/admin-setup#decide-how-settings-reach-devices): impostazioni gestite dal server, `managed-settings.json`, profilo MDM, o registro |

542| `deniedMcpServers` | Denylist di server bloccati | Qualsiasi ambito di impostazioni; [Come un server viene valutato](#how-a-server-is-evaluated) dice come gli elenchi da diversi ambiti e fonti gestite si combinano | Uguale a `allowedMcpServers` |558| `deniedMcpServers` | Denylist di server bloccati | Qualsiasi ambito di impostazioni; [Come un server viene valutato](#how-a-server-is-evaluated) dice come gli elenchi da diversi ambiti e fonti gestite si combinano | Uguale a `allowedMcpServers` |

543| `allowManagedMcpServersOnly` | Blocca l'allowlist solo alle fonti gestite | Solo fonti di impostazioni gestite; [Chiavi lette da ogni fonte amministrativa](/docs/it/managed-settings#keys-read-from-every-admin-source) dice quali fonti gestite possono attivarla. L'impostazione non ha effetto in altri ambiti | Uguale a `allowedMcpServers` |559| `allowManagedMcpServersOnly` | Blocca l'allowlist solo alle fonti gestite | Solo fonti di impostazioni gestite; [Chiavi lette da ogni fonte amministrativa](/docs/it/managed-settings#keys-read-from-every-admin-source) dice quali fonti gestite possono attivarla. L'impostazione non ha effetto in altri ambiti | Uguale a `allowedMcpServers` |

560| `allowClaudeInChromeWithManagedMcp` | Consente l'esecuzione del server Claude integrato in Chrome insieme a `managed-mcp.json` | Impostazioni gestite sul dispositivo solo: un profilo MDM, il registro HKLM, o `managed-settings.json`. Le impostazioni gestite dal server e le fonti scrivibili dall'utente non hanno effetto | MDM, GPO, gestione della flotta, o qualsiasi processo con privilegi di amministratore |

544| `allowAllClaudeAiMcps` | Carica i connettori claude.ai che Claude Code recupera da solo insieme a `managed-mcp.json`. [Un `managed-mcp.json` sull'host che esegue una sessione cloud sopprime comunque i connettori di quella sessione](#allow-claude-ai-connectors-alongside-the-managed-set) | Solo fonti di impostazioni gestite; l'impostazione non ha effetto altrove | Uguale a `allowedMcpServers` |561| `allowAllClaudeAiMcps` | Carica i connettori claude.ai che Claude Code recupera da solo insieme a `managed-mcp.json`. [Un `managed-mcp.json` sull'host che esegue una sessione cloud sopprime comunque i connettori di quella sessione](#allow-claude-ai-connectors-alongside-the-managed-set) | Solo fonti di impostazioni gestite; l'impostazione non ha effetto altrove | Uguale a `allowedMcpServers` |

545 562 

546<h2 id="related-resources">563<h2 id="related-resources">

Details

449| [`blockedMarketplaces`](/docs/it/settings-reference#blockedmarketplaces) | Blocklist di fonti di marketplace. Le fonti bloccate vengono controllate prima del download, quindi non toccano mai il filesystem. Vedi [managed marketplace restrictions](/docs/it/plugins/org#restrict-what-users-can-install) |449| [`blockedMarketplaces`](/docs/it/settings-reference#blockedmarketplaces) | Blocklist di fonti di marketplace. Le fonti bloccate vengono controllate prima del download, quindi non toccano mai il filesystem. Vedi [managed marketplace restrictions](/docs/it/plugins/org#restrict-what-users-can-install) |

450| [`channelsEnabled`](/docs/it/settings-reference#channelsenabled) | Consenti [channels](/docs/it/channels) per l'organizzazione. Vedi [enterprise controls](/docs/it/channels#enterprise-controls) per il default su ogni piano |450| [`channelsEnabled`](/docs/it/settings-reference#channelsenabled) | Consenti [channels](/docs/it/channels) per l'organizzazione. Vedi [enterprise controls](/docs/it/channels#enterprise-controls) per il default su ogni piano |

451| [`disableCommandPluginSources`](/docs/it/settings-reference#disablecommandpluginsources) | Quando `true`, blocca completamente le [fonti plugin `command`](/docs/it/plugins/marketplace-reference#command-plugin-source), quindi il comando dichiarato dal marketplace non viene mai eseguito. Blocca anche i comandi [`headersHelper`](/docs/it/plugins/host-marketplace#authenticate-archive-downloads) del marketplace, tranne per un marketplace che le impostazioni gestite stesse dichiarano. Quando non impostato, segue `allowManagedHooksOnly`. Richiede Claude Code v2.1.229 o successivo, e il blocco `headersHelper` richiede v2.1.238 o successivo |451| [`disableCommandPluginSources`](/docs/it/settings-reference#disablecommandpluginsources) | Quando `true`, blocca completamente le [fonti plugin `command`](/docs/it/plugins/marketplace-reference#command-plugin-source), quindi il comando dichiarato dal marketplace non viene mai eseguito. Blocca anche i comandi [`headersHelper`](/docs/it/plugins/host-marketplace#authenticate-archive-downloads) del marketplace, tranne per un marketplace che le impostazioni gestite stesse dichiarano. Quando non impostato, segue `allowManagedHooksOnly`. Richiede Claude Code v2.1.229 o successivo, e il blocco `headersHelper` richiede v2.1.238 o successivo |

452| [`disableSideloadFlags`](/docs/it/settings-reference#disablesideloadflags) | Rifiuta i flag `--plugin-dir`, `--plugin-url`, `--agents`, e `--mcp-config` all'avvio. Nelle sessioni cloud, Claude Code elimina i server MCP che il server ha consegnato tramite `--mcp-config`, diversi dalle voci in-process `type: "sdk"`, e avvia la sessione. Richiede Claude Code v2.1.193 o successivo |452| [`disableSideloadFlags`](/docs/it/settings-reference#disablesideloadflags) | Rifiuta i flag `--plugin-dir`, `--plugin-url`, `--agents`, e `--mcp-config` all'avvio. Nelle sessioni cloud, Claude Code avvia invece la sessione e elimina i server `--mcp-config` consegnati dal server, a parte le eccezioni che la sua [voce di riferimento](/docs/it/settings-reference#disablesideloadflags) elenca. Richiede Claude Code v2.1.193 o successivo |

453| [`forceRemoteSettingsRefresh`](/docs/it/settings-reference#forceremotesettingsrefresh) | Quando `true`, blocca l'avvio CLI fino a quando le impostazioni gestite remote non vengono recuperate di fresco e esce se il fetch fallisce. Vedi [fail-closed enforcement](/docs/it/server-managed-settings#enforce-fail-closed-startup) |453| [`forceRemoteSettingsRefresh`](/docs/it/settings-reference#forceremotesettingsrefresh) | Quando `true`, blocca l'avvio CLI fino a quando le impostazioni gestite remote non vengono recuperate di fresco e esce se il fetch fallisce. Vedi [fail-closed enforcement](/docs/it/server-managed-settings#enforce-fail-closed-startup) |

454| [`managedMcpServers`](/docs/it/settings-reference#managedmcpservers) | Server MCP remoti forniti a ogni utente insieme ai loro. Fornisce server piuttosto che bloccare qualcosa. Vedi [Provide servers through managed settings](/docs/it/managed-mcp#provide-servers-through-managed-settings). Richiede Claude Code v2.1.259 o successivo |454| [`managedMcpServers`](/docs/it/settings-reference#managedmcpservers) | Server MCP remoti forniti a ogni utente insieme ai loro. Fornisce server piuttosto che bloccare qualcosa. Vedi [Provide servers through managed settings](/docs/it/managed-mcp#provide-servers-through-managed-settings). Richiede Claude Code v2.1.259 o successivo |

455| [`managedSourcesBehavior`](/docs/it/settings-reference#managedsourcesbehavior) | Se Claude Code applica solo la fonte gestita con priorità più alta o [compone ogni una di loro](#compose-every-managed-source) |455| [`managedSourcesBehavior`](/docs/it/settings-reference#managedsourcesbehavior) | Se Claude Code applica solo la fonte gestita con priorità più alta o [compone ogni una di loro](#compose-every-managed-source) |

mcp.md +3 −3

Details

542 * Nelle [sessioni cloud](/docs/it/claude-code-on-the-web), una chiamata MCP a un server del plugin che non è ancora connesso, come subito dopo il risveglio di una sessione inattiva, avvia il server su richiesta e attende che si connetta542 * Nelle [sessioni cloud](/docs/it/claude-code-on-the-web), una chiamata MCP a un server del plugin che non è ancora connesso, come subito dopo il risveglio di una sessione inattiva, avvia il server su richiesta e attende che si connetta

543* **Segnaposti di percorso**: `${CLAUDE_PLUGIN_ROOT}` si risolve nella directory di installazione del plugin, `${CLAUDE_PLUGIN_DATA}` nella sua directory di [stato persistente](/docs/it/plugins/components#path-variables-and-persistent-data), e `${CLAUDE_PROJECT_DIR}` nella radice del progetto stabile. La sostituzione si applica a:543* **Segnaposti di percorso**: `${CLAUDE_PLUGIN_ROOT}` si risolve nella directory di installazione del plugin, `${CLAUDE_PLUGIN_DATA}` nella sua directory di [stato persistente](/docs/it/plugins/components#path-variables-and-persistent-data), e `${CLAUDE_PROJECT_DIR}` nella radice del progetto stabile. La sostituzione si applica a:

544 * server `stdio`: `command`, `args`, `env`544 * server `stdio`: `command`, `args`, `env`

545 * server `http`, `sse`, e `ws`: `url`, `headers`, e `headersHelper`. Prima della v2.1.195, `headersHelper` passava il segnaposto come stringa letterale545 * server `http`, `sse`, e `ws`: `url`, `headers`, e `headersHelper`

546* **Accesso all'ambiente utente**: accesso alle stesse variabili di ambiente dei server configurati manualmente546* **Accesso all'ambiente utente**: accesso alle stesse variabili di ambiente dei server configurati manualmente

547* **Tipi di trasporto multipli**: supporto per trasporti stdio, SSE, HTTP, e WebSocket, anche se il supporto del trasporto può variare per server547* **Tipi di trasporto multipli**: supporto per trasporti stdio, SSE, HTTP, e WebSocket, anche se il supporto del trasporto può variare per server

548 548 


1101 1101 

1102| Dove hai configurato il server | Directory di lavoro |1102| Dove hai configurato il server | Directory di lavoro |

1103| :- | :- |1103| :- | :- |

1104| Un [plugin](/docs/it/plugins/components#mcp-servers) | La directory radice del plugin. Richiede Claude Code v2.1.195 o successiva |1104| Un [plugin](/docs/it/plugins/components#mcp-servers) | La directory radice del plugin |

1105| Un `.mcp.json` di progetto o un server di [ambito locale](#local-scope) | La directory del progetto in cui il server è dichiarato |1105| Un `.mcp.json` di progetto o un server di [ambito locale](#local-scope) | La directory del progetto in cui il server è dichiarato |

1106| Un file agent nel tuo progetto, un server dall'opzione `mcpServers` dell'SDK o dal metodo `setMcpServers()`, o [`--mcp-config`](/docs/it/cli-reference) | La [directory di lavoro primaria](/docs/it/permissions#working-directories) della sessione |1106| Un file agent nel tuo progetto, un server dall'opzione `mcpServers` dell'SDK o dal metodo `setMcpServers()`, o [`--mcp-config`](/docs/it/cli-reference) | La [directory di lavoro primaria](/docs/it/permissions#working-directories) della sessione |

1107| [Ambito utente](#user-scope), [MCP gestito](/docs/it/managed-mcp), un [connettore claude.ai](#use-mcp-servers-from-claude-ai), o un file agent da fuori dal tuo progetto, incluso uno da una directory `--add-dir` | La tua directory di configurazione, `~/.claude` a meno che tu non abbia impostato [`CLAUDE_CONFIG_DIR`](/docs/it/env-vars) |1107| [Ambito utente](#user-scope), [MCP gestito](/docs/it/managed-mcp), un [connettore claude.ai](#use-mcp-servers-from-claude-ai), o un file agent da fuori dal tuo progetto, incluso uno da una directory `--add-dir` | La tua directory di configurazione, `~/.claude` a meno che tu non abbia impostato [`CLAUDE_CONFIG_DIR`](/docs/it/env-vars) |


1440 1440 

1441Il server riceve gli argomenti che Claude ha scelto, quindi continuate a convalidare la combinazione lato server.1441Il server riceve gli argomenti che Claude ha scelto, quindi continuate a convalidare la combinazione lato server.

1442 1442 

1443Quando Claude Code non riesce a produrre uno schema che l'API accetta, o su una distribuzione che non riceve la configurazione remota che abilita la riscrittura, salta quello strumento, registra il motivo nel log del server e lascia disponibili gli altri strumenti del server. Le versioni precedenti a v2.1.195 saltano ogni strumento il cui schema di input ha un `anyOf`, `oneOf`, o `allOf` a livello radice.1443Quando Claude Code non riesce a produrre uno schema che l'API accetta, o su una distribuzione che non riceve la configurazione remota che abilita la riscrittura, salta quello strumento, registra il motivo nel log del server e lascia disponibili gli altri strumenti del server.

1444 1444 

1445<h2 id="tools-with-invalid-input-schemas">1445<h2 id="tools-with-invalid-input-schemas">

1446 Strumenti con schemi di input non validi1446 Strumenti con schemi di input non validi

memory.md +20 −10

Details

89 Scrivete istruzioni efficaci89 Scrivete istruzioni efficaci

90</h3>90</h3>

91 91 

92I file CLAUDE.md vengono caricati nella finestra di contesto all'inizio di ogni sessione, consumando token insieme alla vostra conversazione. La [visualizzazione della finestra di contesto](/docs/it/context-window) mostra dove CLAUDE.md si carica rispetto al resto del contesto di avvio. Poiché sono contesto piuttosto che configurazione applicata, il modo in cui scrivete le istruzioni influisce su quanto affidabilmente Claude le segue. Le istruzioni specifiche, concise e ben strutturate funzionano meglio.92Claude tratta i file CLAUDE.md come contesto, non come configurazione applicata, quindi il modo in cui scrivete le istruzioni influisce su quanto affidabilmente Claude le segue. Scrivete istruzioni abbastanza concrete da poter verificare:

93 

94**Dimensione**: mirate a meno di 200 righe per file CLAUDE.md. I file più lunghi consumano più contesto e riducono l'aderenza. Se le vostre istruzioni stanno crescendo molto, utilizzate [regole con ambito di percorso](#path-specific-rules) in modo che le istruzioni si carichino solo quando Claude lavora con file corrispondenti. Potete anche dividere il contenuto in [importazioni](#import-additional-files) per l'organizzazione, anche se i file importati si caricano comunque e entrano nella finestra di contesto all'avvio.

95 

96**Struttura**: utilizzate intestazioni markdown e punti elenco per raggruppare le istruzioni correlate. Claude scansiona la struttura nello stesso modo in cui lo fanno i lettori: le sezioni organizzate sono più facili da seguire rispetto ai paragrafi densi.

97 

98**Specificità**: scrivete istruzioni abbastanza concrete da poter verificare. Ad esempio:

99 93 

100* "Utilizzate l'indentazione a 2 spazi" invece di "Formattate il codice correttamente"94* "Utilizzate l'indentazione a 2 spazi" invece di "Formattate il codice correttamente"

101* "Eseguite `npm test` prima di eseguire il commit" invece di "Testate i vostri cambiamenti"95* "Eseguite `npm test` prima di eseguire il commit" invece di "Testate i vostri cambiamenti"

102* "I gestori API si trovano in `src/api/handlers/`" invece di "Mantenete i file organizzati"96* "I gestori API si trovano in `src/api/handlers/`" invece di "Mantenete i file organizzati"

103 97 

104**Coerenza**: se due regole si contraddicono a vicenda, Claude potrebbe sceglierne una arbitrariamente. Rivedete periodicamente i vostri file CLAUDE.md, i file CLAUDE.md annidati nelle sottodirectory e [`.claude/rules/`](#organize-rules-with-claude/rules/) per rimuovere istruzioni obsolete o conflittuali. Nei monorepo, utilizzate [`claudeMdExcludes`](#exclude-specific-claude-md-files) per saltare i file CLAUDE.md di altri team che non sono rilevanti per il vostro lavoro.98Mantenete i vostri file brevi, organizzati e coerenti:

99 

100* **Dimensione**: mirate a meno di 200 righe per file CLAUDE.md. I file più lunghi consumano più contesto e riducono l'aderenza. Spostate le istruzioni che riguardano solo una parte del codebase in [regole con ambito di percorso](#path-specific-rules), che si caricano solo quando Claude lavora con file corrispondenti. [Le importazioni](#import-additional-files) vi aiutano a organizzare un file lungo ma non riducono il costo del contesto, perché i file importati si caricano comunque all'avvio.

101* **Struttura**: raggruppate le istruzioni correlate sotto intestazioni e punti elenco markdown. Le sezioni organizzate sono più facili da seguire per Claude rispetto ai paragrafi densi.

102* **Coerenza**: se due istruzioni si contraddicono a vicenda, Claude potrebbe sceglierne una arbitrariamente. Rivedete periodicamente i vostri file CLAUDE.md, i file CLAUDE.md annidati nelle sottodirectory e [`.claude/rules/`](#organize-rules-with-claude/rules/) per rimuovere istruzioni obsolete o conflittuali. Per fare in modo che Claude le trovi per voi, [eseguite un audit delle istruzioni](#audit-your-instruction-files).

103 

104<h4 id="audit-your-instruction-files">

105 Audit dei vostri file di istruzioni

106</h4>

105 107 

106Per fare in modo che Claude controlli questi file per istruzioni obsolete o conflittuali, eseguite `/doctor prompt-audit` in una sessione. Claude legge i vostri file CLAUDE.md, CLAUDE.local.md e AGENTS.md, più le regole, skills, comandi, subagent e stili di output sotto `.claude/` e `~/.claude/`. Cerca problemi come istruzioni scritte per modelli più vecchi, riferimenti a file o comandi che non esistono e file che si contraddicono a vicenda. Ricevete un rapporto dei risultati e un set di modifiche proposte, e nulla nei vostri file cambia finché non chiedete a Claude di applicarle.108Per fare in modo che Claude controlli i vostri file di istruzioni per contenuti obsoleti o conflittuali, eseguite `/doctor prompt-audit` in una sessione. Claude cerca problemi come istruzioni scritte per modelli più vecchi, riferimenti a file o comandi che non esistono e file che si contraddicono a vicenda. Ricevete un rapporto dei risultati con modifiche proposte, e nulla nei vostri file cambia finché non chiedete a Claude di applicarle.

107 109 

108Per controllare un file o una directory invece, passate il suo percorso, ad esempio `/doctor prompt-audit .claude/skills/deploy`. L'audit viene eseguito attraverso la skill `/claude-api` in bundle, quindi non è disponibile mentre quella skill è disattivata in [`skillOverrides`](/docs/it/skills#override-skill-visibility-from-settings) o con [`disableBundledSkills`](/docs/it/settings-reference#disablebundledskills). `/doctor prompt-audit` richiede Claude Code v2.1.283 o successivo.110Per impostazione predefinita, l'audit copre i vostri file CLAUDE.md, CLAUDE.local.md e AGENTS.md, più le regole, skills, comandi, subagent e stili di output sotto `.claude/` e `~/.claude/`. Per controllare un file o una directory invece, passate il suo percorso, ad esempio `/doctor prompt-audit .claude/skills/deploy`.

111 

112L'audit viene eseguito attraverso la skill `/claude-api` in bundle. Non è disponibile mentre quella skill è disattivata in [`skillOverrides`](/docs/it/skills#override-skill-visibility-from-settings) o con [`disableBundledSkills`](/docs/it/settings-reference#disablebundledskills). `/doctor prompt-audit` richiede Claude Code v2.1.283 o successivo.

109 113 

110<h3 id="import-additional-files">114<h3 id="import-additional-files">

111 Importate file aggiuntivi115 Importate file aggiuntivi


115 119 

116Sono consentiti sia i percorsi relativi che assoluti. I percorsi relativi si risolvono rispetto al file che contiene l'importazione, non alla directory di lavoro. I file importati possono importare ricorsivamente altri file, con una profondità massima di quattro hop.120Sono consentiti sia i percorsi relativi che assoluti. I percorsi relativi si risolvono rispetto al file che contiene l'importazione, non alla directory di lavoro. I file importati possono importare ricorsivamente altri file, con una profondità massima di quattro hop.

117 121 

122Per importare un file il cui percorso contiene spazi, mettete una barra rovesciata prima di ogni spazio. Senza le barre rovesciate, il percorso termina al primo spazio, anche quando l'importazione è su una riga a sé stante. Un percorso racchiuso tra virgolette non viene importato affatto, con o senza le barre rovesciate. Questa importazione carica un file da una cartella denominata `Design Docs`:

123 

124```text theme={null}

125- Convenzioni API @Design\ Docs/api-conventions.md

126```

127 

118L'analisi dell'importazione salta gli intervalli di codice Markdown e i blocchi di codice recintati. Per menzionare un percorso nel vostro CLAUDE.md senza importarlo, avvolgetelo in backtick: scrivere `` `@README` `` mantiene il testo letterale, mentre `@README` al di fuori dei backtick importa il file.128L'analisi dell'importazione salta gli intervalli di codice Markdown e i blocchi di codice recintati. Per menzionare un percorso nel vostro CLAUDE.md senza importarlo, avvolgetelo in backtick: scrivere `` `@README` `` mantiene il testo letterale, mentre `@README` al di fuori dei backtick importa il file.

119 129 

120Per includere un README, package.json e una guida al flusso di lavoro, fate riferimento a essi con la sintassi `@` in qualsiasi punto del vostro CLAUDE.md:130Per includere un README, package.json e una guida al flusso di lavoro, fate riferimento a essi con la sintassi `@` in qualsiasi punto del vostro CLAUDE.md:

model-config.md +18 −16

Details

65Gli alias puntano alla versione consigliata per il vostro provider e si aggiornano nel tempo. Per fissare una versione specifica, utilizzare il nome completo del modello, ad esempio `claude-opus-5-5`, o impostare la variabile di ambiente corrispondente come `ANTHROPIC_DEFAULT_OPUS_MODEL`.65Gli alias puntano alla versione consigliata per il vostro provider e si aggiornano nel tempo. Per fissare una versione specifica, utilizzare il nome completo del modello, ad esempio `claude-opus-5-5`, o impostare la variabile di ambiente corrispondente come `ANTHROPIC_DEFAULT_OPUS_MODEL`.

66 66 

67<Note>67<Note>

68 Sonnet 5.5 richiede Claude Code v2.1.284 o successiva, e Opus 5.5 richiede v2.1.280 o successiva. Eseguire `claude update` per aggiornare.68 Sonnet 5.5 richiede Claude Code v2.1.284 o successiva, e Opus 5.5 richiede v2.1.280 o successiva. Se una richiesta per uno di essi da una versione precedente non riesce, consultare [Claude Code non supporta questo modello](/docs/it/errors#claude-code-does-not-support-this-model). Eseguire `claude update` per aggiornare.

69</Note>69</Note>

70 70 

71<h3 id="work-with-fable">71<h3 id="work-with-fable">


104 104 

105Nelle sessioni interattive, Claude Code mostra un prompt di consenso prima che una richiesta Fable fatturi i crediti di utilizzo. I membri dei piani Enterprise con fatturazione organizzativa non vedono il prompt. Potete continuare su Fable utilizzando i crediti di utilizzo o passare al vostro modello predefinito. Potete anche chiudere il prompt:105Nelle sessioni interattive, Claude Code mostra un prompt di consenso prima che una richiesta Fable fatturi i crediti di utilizzo. I membri dei piani Enterprise con fatturazione organizzativa non vedono il prompt. Potete continuare su Fable utilizzando i crediti di utilizzo o passare al vostro modello predefinito. Potete anche chiudere il prompt:

106 106 

107* Nel selettore `/model`, mantenete il vostro modello attuale.107* Quando selezionate un modello Fable con `/model`, mantenete il vostro modello attuale.

108* A metà sessione, Claude Code continua il turno sul vostro modello predefinito.108* A metà sessione, Claude Code continua il turno sul vostro modello predefinito.

109 109 

110Dopo aver scelto di continuare su Fable utilizzando i crediti di utilizzo, Claude Code non mostra più il prompt.110Dopo aver scelto di continuare su Fable utilizzando i crediti di utilizzo, Claude Code non mostra più il prompt.


117* In una sessione in background, rispondete prima della scadenza.117* In una sessione in background, rispondete prima della scadenza.

118* Se inviate un nuovo messaggio dal client remoto prima che qualcuno abbia digitato al terminale, Claude Code termina il turno allo stesso modo e il vostro nuovo messaggio inizia il turno successivo. Dopo che qualcuno digita al terminale, Claude Code continua ad aspettare la risposta e mette in coda il vostro nuovo messaggio dietro di essa.118* Se inviate un nuovo messaggio dal client remoto prima che qualcuno abbia digitato al terminale, Claude Code termina il turno allo stesso modo e il vostro nuovo messaggio inizia il turno successivo. Dopo che qualcuno digita al terminale, Claude Code continua ad aspettare la risposta e mette in coda il vostro nuovo messaggio dietro di essa.

119 119 

120In [modalità non interattiva](/docs/it/headless) con il flag `-p` e attraverso l'Agent SDK, Claude Code non mostra mai il prompt di consenso. Quando una richiesta Fable lì fatturasse ai crediti di utilizzo, Claude Code la fattura senza chiedere.120In una sessione un'altra applicazione ospita attraverso l'[Agent SDK](/docs/it/agent-sdk/overview), se il prompt appare dipende da quell'applicazione. Se appare e nessuno risponde prima della stessa scadenza [`dialogExpiry`](/docs/it/settings-reference#dialogexpiry), Claude Code termina il turno senza inviare la richiesta.

121 

122In [modalità non interattiva](/docs/it/headless) con il flag `-p`, e in un'applicazione Agent SDK che non mostra il prompt, Claude Code non chiede mai il consenso. Quando una richiesta Fable lì fatturasse ai crediti di utilizzo, Claude Code la fattura senza chiedere.

121 123 

122<h3 id="setting-your-model">124<h3 id="setting-your-model">

123 Impostazione del vostro modello125 Impostazione del vostro modello


164 166 

165Quando Claude Code non può dire quali hook PreModelSwitch i [plugin gestiti](/docs/it/settings-reference#enabledplugins) della vostra organizzazione forniscono, ad esempio perché un plugin gestito non è riuscito a caricarsi, rifiuta il passaggio piuttosto che applicarlo senza controllo, e controlla di nuovo ad ogni nuovo tentativo. Consultare [Il passaggio del modello è stato bloccato da un hook PreModelSwitch](/docs/it/errors#model-switch-was-blocked-by-a-premodelswitch-hook) per il messaggio e il recupero.167Quando Claude Code non può dire quali hook PreModelSwitch i [plugin gestiti](/docs/it/settings-reference#enabledplugins) della vostra organizzazione forniscono, ad esempio perché un plugin gestito non è riuscito a caricarsi, rifiuta il passaggio piuttosto che applicarlo senza controllo, e controlla di nuovo ad ogni nuovo tentativo. Consultare [Il passaggio del modello è stato bloccato da un hook PreModelSwitch](/docs/it/errors#model-switch-was-blocked-by-a-premodelswitch-hook) per il messaggio e il recupero.

166 168 

167Quando passate i modelli attraverso il metodo [`setModel()`](/docs/it/agent-sdk/overview) dell'Agent SDK o da un dispositivo connesso attraverso [Remote Control](/docs/it/remote-control), o un'app come l'[app Desktop](/docs/it/desktop) che esegue il CLI di Claude Code passa per voi, Claude Code controlla che la stringa sia una che riconosce prima di salvarla. Questo controllo richiede Claude Code v2.1.200 o successiva. Controllare una scelta di Remote Control richiede Claude Code v2.1.260 o successiva sulla vostra macchina. Sull'API Anthropic, Claude Code riconosce:169Quando passate i modelli attraverso il metodo [`setModel()`](/docs/it/agent-sdk/overview) dell'Agent SDK, attraverso un'app come l'[app Desktop](/docs/it/desktop), o da un dispositivo connesso attraverso [Remote Control](/docs/it/remote-control), Claude Code controlla il valore al passaggio:

168 170 

169* un alias del modello171* **Agent SDK o un'app**: con Claude Code v2.1.268 o successiva, a meno che Claude Code non accetti un ID modello localmente, come fa per la vostra [opzione di modello personalizzato](#add-a-custom-model-option), conferma l'ID con il vostro provider la prima volta che la sessione passa a esso. La conferma viene eseguita su ogni provider, e un ID che il vostro provider non offre viene rifiutato al passaggio invece di fallire alla vostra prossima richiesta.

170* una voce dal selettore `/model`172* **Remote Control**: sull'API Anthropic, Claude Code controlla il valore localmente e non invia alcuna richiesta.

171* qualsiasi nome che inizia con `claude-`

172* un valore che avete configurato voi stessi come [opzione di modello personalizzato](#add-a-custom-model-option) o in [`modelOverrides`](#override-model-ids-per-version)

173 173 

174Claude Code rifiuta una stringa non riconosciuta con `Model "<name>" is not a recognized model id.` e la sessione mantiene il suo modello attuale, invece di salvare la stringa e fallire alla prossima richiesta. Consultare [il riferimento dell'errore](/docs/it/errors#model-is-not-a-recognized-model-id) per i passaggi di recupero.174Consultare [Model is not a recognized model id](/docs/it/errors#model-is-not-a-recognized-model-id) e [Model not found](/docs/it/errors#model-not-found) per i messaggi.

175 175 

176Il controllo viene eseguito solo sull'API Anthropic. Su Amazon Bedrock, Agent Platform di Google Cloud, Microsoft Foundry, [Claude Platform on AWS](/docs/it/claude-platform-on-aws), e dietro un [gateway LLM](/docs/it/llm-gateway) o un `ANTHROPIC_BASE_URL` personalizzato, il vostro provider o gateway definisce i nomi dei modelli, quindi Claude Code passa qualsiasi stringa senza controllarla. Il controllo non copre nemmeno il flag `--model`, la variabile di ambiente `ANTHROPIC_MODEL`, o l'impostazione `model`; un valore digitato male lì produce [C'è un problema con il modello selezionato](/docs/it/errors#theres-an-issue-with-the-selected-model) alla prima richiesta. Claude Code può comunque scrivere la [riga diagnostica del modello non riconosciuto](/docs/it/errors#unrecognized-model-id-on-a-request) al momento della richiesta, su ogni provider.176Se impostate il modello con il flag `--model`, la variabile di ambiente `ANTHROPIC_MODEL`, o l'impostazione `model`, Claude Code non lo controlla in anticipo, e un valore digitato male produce [There's an issue with the selected model](/docs/it/errors#theres-an-issue-with-the-selected-model) alla prima richiesta.

177 177 

178Quando il modello richiesto ha una data di ritiro programmata o viene automaticamente rimappato a una versione più recente, Claude Code mostra un avviso che nomina il modello richiesto. Le sessioni interattive lo mostrano come un avviso di avvio. Dalla v2.1.182, lo stesso avviso viene scritto su stderr in [modalità non interattiva](/docs/it/headless) quando si utilizza il formato di output di testo predefinito. Il controllo copre anche un `model` impostato nel [frontmatter del subagente](/docs/it/sub-agents). L'avviso su stderr è soppresso per `--output-format json` e `stream-json`; leggere il modello effettivo dal campo `modelUsage` del [messaggio di risultato](/docs/it/headless#get-structured-output) invece.178Quando il modello richiesto ha una data di ritiro programmata o viene automaticamente rimappato a una versione più recente, Claude Code mostra un avviso che nomina il modello richiesto. Le sessioni interattive lo mostrano come un avviso di avvio. Dalla v2.1.182, lo stesso avviso viene scritto su stderr in [modalità non interattiva](/docs/it/headless) quando si utilizza il formato di output di testo predefinito. Il controllo copre anche un `model` impostato nel [frontmatter del subagente](/docs/it/sub-agents). L'avviso su stderr è soppresso per `--output-format json` e `stream-json`; leggere il modello effettivo dal campo `modelUsage` del [messaggio di risultato](/docs/it/headless#get-structured-output) invece.

179 179 


297 297 

298| Meccanismo di consegna | CLI e IDE | Sessioni locali desktop | Sessioni web, mobile e cloud | Agent SDK e non-interattive | Cowork |298| Meccanismo di consegna | CLI e IDE | Sessioni locali desktop | Sessioni web, mobile e cloud | Agent SDK e non-interattive | Cowork |

299| :- | :- | :- | :- | :- | :- |299| :- | :- | :- | :- | :- | :- |

300| [Impostazioni gestite dal server](/docs/it/server-managed-settings) dalla console di amministrazione | Applicate | Applicate | Applicate, eccetto nelle sessioni [Claude Tag](https://claude.com/docs/claude-tag/overview) | Applicate | Non consegnate |300| [Impostazioni gestite dal server](/docs/it/server-managed-settings) dalla console di amministrazione | Applicate | Applicate | Applicate, eccetto nelle sessioni [Claude Tag](https://claude.com/docs/claude-tag/overview) | Applicate | Sessioni Cowork remote: il server controlla il modello. Sulla macchina dell'utente: non consegnate. |

301| [File MDM o impostazioni gestite](/docs/it/managed-settings#delivery-mechanisms) | Applicate | Applicate | Non consegnate negli ambienti ospitati da Anthropic; negli [ambienti self-hosted](/docs/it/self-hosted-environments), applicate dall'immagine del runner secondo [come Claude Code combina le fonti gestite](/docs/it/managed-settings#how-claude-code-combines-managed-sources) | Applicate | Applicate dove distribuite |301| [File MDM o impostazioni gestite](/docs/it/managed-settings#delivery-mechanisms) | Applicate | Applicate | Non consegnate negli ambienti ospitati da Anthropic; negli [ambienti self-hosted](/docs/it/self-hosted-environments), applicate dall'immagine del runner secondo [come Claude Code combina le fonti gestite](/docs/it/managed-settings#how-claude-code-combines-managed-sources) | Applicate | Applicate dove distribuite |

302 302 

303* Le sessioni cloud su [Claude Code sul web](/docs/it/claude-code-on-the-web), incluse quelle che avvii dall'app Desktop, vengono eseguite su VM gestite da Anthropic per impostazione predefinita: le impostazioni distribuite al tuo dispositivo non le raggiungono, quindi consegna l'allowlist tramite impostazioni gestite dal server. Le sessioni che la tua organizzazione instrada a un [ambiente self-hosted](/docs/it/self-hosted-environments) vengono eseguite sul tuo calcolo e leggono anche il file di impostazioni gestite nell'immagine del runner. [Come Claude Code combina le fonti gestite](/docs/it/managed-settings#how-claude-code-combines-managed-sources) indica quando quel file si applica. Un cambio di modello a metà sessione in una sessione cloud viene rifiutato quando il modello richiesto è escluso dall'allowlist. Quando l'elenco `availableModels` nelle tue impostazioni gestite dal server è non vuoto, il server rifiuta una richiesta di avviare una sessione cloud su claude.ai/code o dall'app Desktop su un modello che l'elenco esclude.303* Le sessioni cloud su [Claude Code sul web](/docs/it/claude-code-on-the-web), incluse quelle che avvii dall'app Desktop, vengono eseguite su VM gestite da Anthropic per impostazione predefinita: le impostazioni distribuite al tuo dispositivo non le raggiungono, quindi consegna l'allowlist tramite impostazioni gestite dal server. Le sessioni che la tua organizzazione instrada a un [ambiente self-hosted](/docs/it/self-hosted-environments) vengono eseguite sul tuo calcolo e leggono anche il file di impostazioni gestite nell'immagine del runner. [Come Claude Code combina le fonti gestite](/docs/it/managed-settings#how-claude-code-combines-managed-sources) indica quando quel file si applica. Un cambio di modello a metà sessione in una sessione cloud viene rifiutato quando il modello richiesto è escluso dall'allowlist. Quando l'elenco `availableModels` nelle tue impostazioni gestite dal server è non vuoto, il server rifiuta una richiesta di avviare una sessione cloud su claude.ai/code o dall'app Desktop su un modello che l'elenco esclude.

304* Le sessioni [Claude Tag](https://claude.com/docs/claude-tag/overview) vengono eseguite in ambienti cloud ma non ricevono impostazioni gestite dal server; in un [ambiente self-hosted](/docs/it/self-hosted-environments), leggono comunque il file di impostazioni gestite nell'immagine del runner. Per impostare il modello per quelle sessioni, vedere [Scegliere il modello per un ambito](https://claude.com/docs/claude-tag/admins/customize#choose-the-model-for-a-scope) nella guida di amministrazione di Claude Tag.304* Le sessioni [Claude Tag](https://claude.com/docs/claude-tag/overview) vengono eseguite in ambienti cloud ma non ricevono impostazioni gestite dal server; in un [ambiente self-hosted](/docs/it/self-hosted-environments), leggono comunque il file di impostazioni gestite nell'immagine del runner. Per impostare il modello per quelle sessioni, vedere [Scegliere il modello per un ambito](https://claude.com/docs/claude-tag/admins/customize#choose-the-model-for-a-scope) nella guida di amministrazione di Claude Tag.

305* Cowork, la scheda agentic-work nell'app Claude Desktop, esegue le sue sessioni su Claude Code ma, per progettazione, non riceve impostazioni gestite dal server dalla console di amministrazione claude.ai. Un file di impostazioni gestite si applica alle sessioni Cowork quando è presente dove la sessione viene eseguita; le sessioni Cowork remote vengono eseguite su VM gestite da Anthropic, dove un file distribuito dal dispositivo non è presente.305* Cowork, la scheda agentic-work nell'app Claude Desktop, esegue le sue sessioni su Claude Code ma, per progettazione, non riceve impostazioni gestite dal server dalla console di amministrazione claude.ai. Quando l'elenco `availableModels` nelle tue impostazioni gestite dal server è non vuoto e un utente sceglie un modello al di fuori di esso, il server rifiuta quel modello per una sessione Cowork remota. Un file di impostazioni gestite si applica alle sessioni Cowork quando è presente dove la sessione viene eseguita; le sessioni Cowork remote vengono eseguite su VM gestite da Anthropic, dove un file distribuito dal dispositivo non è presente.

306* Le sessioni su [provider di terze parti](/docs/it/server-managed-settings#platform-availability) come Amazon Bedrock, Agent Platform di Google Cloud, Microsoft Foundry, e [Claude Platform on AWS](/docs/it/claude-platform-on-aws) non ricevono impostazioni gestite dal server, quindi consegna l'allowlist tramite file MDM o impostazioni gestite lì.306* Le sessioni su [provider di terze parti](/docs/it/server-managed-settings#platform-availability) come Amazon Bedrock, Agent Platform di Google Cloud, Microsoft Foundry, e [Claude Platform on AWS](/docs/it/claude-platform-on-aws) non ricevono impostazioni gestite dal server, quindi consegna l'allowlist tramite file MDM o impostazioni gestite lì.

307* La consegna gestita dal server richiede anche che la sessione si autentichi con un [login o chiave idonei](/docs/it/server-managed-settings#platform-availability). Le flotte che generano chiavi solo tramite uno script [`apiKeyHelper`](/docs/it/settings-reference#apikeyhelper) dovrebbero consegnare l'allowlist tramite file MDM o impostazioni gestite.307* La consegna gestita dal server richiede anche che la sessione si autentichi con un [login o chiave idonei](/docs/it/server-managed-settings#platform-availability). Le flotte che generano chiavi solo tramite uno script [`apiKeyHelper`](/docs/it/settings-reference#apikeyhelper) dovrebbero consegnare l'allowlist tramite file MDM o impostazioni gestite.

308* La scheda Desktop Code ospita anche [sessioni SSH](/docs/it/desktop#ssh-sessions), che leggono il file di impostazioni gestite dall'host remoto su cui vengono eseguite. Vedere [Impostazioni gestite desktop](/docs/it/desktop#managed-settings).308* La scheda Desktop Code ospita anche [sessioni SSH](/docs/it/desktop#ssh-sessions), che leggono il file di impostazioni gestite dall'host remoto su cui vengono eseguite. Vedere [Impostazioni gestite desktop](/docs/it/desktop#managed-settings).


751| Imposta il predefinito globale | Esegui `/config` e attiva/disattiva la modalità di pensiero. Salvato come `alwaysThinkingEnabled` in `~/.claude/settings.json` |751| Imposta il predefinito globale | Esegui `/config` e attiva/disattiva la modalità di pensiero. Salvato come `alwaysThinkingEnabled` in `~/.claude/settings.json` |

752| Disabilita tramite una variabile di ambiente | Imposta [`MAX_THINKING_TOKENS=0`](/docs/it/env-vars), che disattiva il pensiero su Anthropic API tranne sui modelli Opus 5.5, Sonnet 5.5 e Fable. Su [provider di terze parti](/docs/it/third-party-integrations), Claude Code omette il parametro `thinking`, e i modelli di ragionamento adattivo potrebbero comunque pensare. Altri valori si applicano solo con un [budget di pensiero fisso](#adaptive-reasoning-and-fixed-thinking-budgets) |752| Disabilita tramite una variabile di ambiente | Imposta [`MAX_THINKING_TOKENS=0`](/docs/it/env-vars), che disattiva il pensiero su Anthropic API tranne sui modelli Opus 5.5, Sonnet 5.5 e Fable. Su [provider di terze parti](/docs/it/third-party-integrations), Claude Code omette il parametro `thinking`, e i modelli di ragionamento adattivo potrebbero comunque pensare. Altri valori si applicano solo con un [budget di pensiero fisso](#adaptive-reasoning-and-fixed-thinking-budgets) |

753 753 

754Non puoi disattivare il pensiero sui modelli Opus 5.5, Sonnet 5.5 o Fable. L'attivazione/disattivazione della sessione, `alwaysThinkingEnabled` e `MAX_THINKING_TOKENS=0` non hanno effetto lì, e il modello decide per passo quanto pensare in base al livello di sforzo.754Non puoi disattivare il pensiero sui modelli Opus 5.5, Sonnet 5.5 o Fable. L'attivazione/disattivazione della sessione e una salvata `alwaysThinkingEnabled: false` o `MAX_THINKING_TOKENS=0` non hanno effetto lì, e il modello decide per passo quanto pensare in base al livello di sforzo. La sessione toggle e la riga `/config` mostrano `Thinking can't be turned off` per questi modelli invece di offrire l'interruttore, e un salvato `alwaysThinkingEnabled: false` o `MAX_THINKING_TOKENS=0` non ha effetto lì. Su questi modelli, il modello decide per passo quanto pensare in base al livello di sforzo. L'impostazione salvata si applica di nuovo quando passi a un modello che l'accetta.

755 755 

756Claude Code comprime l'output di pensiero per impostazione predefinita. Premi `Ctrl+O` per attivare/disattivare la modalità dettagliata e vedi il ragionamento come testo grigio in corsivo. Le sessioni interattive su Anthropic API ricevono blocchi di pensiero redatti per impostazione predefinita, quindi imposta `showThinkingSummaries: true` nelle [impostazioni](/docs/it/settings) se desideri i riassunti completi disponibili quando espandi. Ti viene addebitato per tutti i token di pensiero generati, anche quando compressi o redatti.756Claude Code comprime l'output di pensiero per impostazione predefinita. Premi `Ctrl+O` per attivare/disattivare la modalità dettagliata e vedi il ragionamento come testo grigio in corsivo. Le sessioni interattive su Anthropic API ricevono blocchi di pensiero redatti per impostazione predefinita, quindi imposta `showThinkingSummaries: true` nelle [impostazioni](/docs/it/settings) se desideri i riassunti completi disponibili quando espandi. Ti viene addebitato per tutti i token di pensiero generati, anche quando compressi o redatti.

757 757 


784 784 

785La finestra di contesto 1M utilizza i prezzi standard del modello senza premio per i token oltre 200K. Per i piani in cui il contesto esteso è incluso nel tuo abbonamento, l'utilizzo rimane coperto dal tuo abbonamento. Per i piani che accedono al contesto esteso tramite crediti di utilizzo, i token vengono fatturati ai crediti di utilizzo.785La finestra di contesto 1M utilizza i prezzi standard del modello senza premio per i token oltre 200K. Per i piani in cui il contesto esteso è incluso nel tuo abbonamento, l'utilizzo rimane coperto dal tuo abbonamento. Per i piani che accedono al contesto esteso tramite crediti di utilizzo, i token vengono fatturati ai crediti di utilizzo.

786 786 

787Se il tuo account supporta il contesto 1M, l'opzione appare nel selettore `/model` nelle versioni più recenti di Claude Code. Se non la vedi, prova a riavviare la tua sessione.787Se il tuo account supporta il contesto 1M, l'opzione appare nel selettore `/model` nelle versioni più recenti di Claude Code. Se non la vedi, prova a riavviare la tua sessione, e su un provider di terze parti verifica se il tuo deployment [ha bloccato il modello](#pin-models-for-third-party-deployments) con una variabile `ANTHROPIC_DEFAULT_*_MODEL`.

788 788 

789Puoi anche usare il suffisso `[1m]` con alias di modello o nomi di modello completi:789Puoi anche usare il suffisso `[1m]` con alias di modello o nomi di modello completi:

790 790 


956* Aggiungere `[1m]` solo quando il modello sottostante [supporta il contesto 1M](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model).956* Aggiungere `[1m]` solo quando il modello sottostante [supporta il contesto 1M](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model).

957* Il suffisso viene letto per variabile, non per modello. Su Amazon Bedrock, Google Cloud's Agent Platform e Microsoft Foundry, un ID di modello senza `[1m]` in una variabile utilizza il contesto 200K anche se un'altra variabile imposta lo stesso modello con il suffisso. Sonnet 5 viene sempre eseguito con la finestra 1M su questi provider e non ha mai bisogno del suffisso.957* Il suffisso viene letto per variabile, non per modello. Su Amazon Bedrock, Google Cloud's Agent Platform e Microsoft Foundry, un ID di modello senza `[1m]` in una variabile utilizza il contesto 200K anche se un'altra variabile imposta lo stesso modello con il suffisso. Sonnet 5 viene sempre eseguito con la finestra 1M su questi provider e non ha mai bisogno del suffisso.

958 958 

959Quando si imposta una variabile `ANTHROPIC_DEFAULT_*_MODEL`, il selettore `/model` mostra una riga per quel modello al posto delle righe incorporate della famiglia, incluse eventuali righe di contesto 1M. Per raggiungere la finestra 1M senza aggiungere il suffisso a quella variabile, i vostri utenti eseguono `/model opus[1m]`, e Claude Code applica il suffisso al modello che la variabile nomina. `/model sonnet[1m]` funziona allo stesso modo.

960 

959<Note>961<Note>

960 Un elenco di autorizzazione `availableModels` fornito tramite [MDM o un file di impostazioni gestite](/docs/it/managed-settings#delivery-mechanisms) si applica comunque quando si utilizzano provider di terze parti; [le impostazioni gestite dal server non vengono fornite lì](/docs/it/server-managed-settings#platform-availability).962 Un elenco di autorizzazione `availableModels` fornito tramite [MDM o un file di impostazioni gestite](/docs/it/managed-settings#delivery-mechanisms) si applica comunque quando si utilizzano provider di terze parti; [le impostazioni gestite dal server non vengono fornite lì](/docs/it/server-managed-settings#platform-availability).

961 963 


1053| - | - |1055| - | - |

1054| `DISABLE_PROMPT_CACHING` | Impostare su `1` per disabilitare la prompt caching per tutti i modelli. Ha la precedenza sulle impostazioni per modello |1056| `DISABLE_PROMPT_CACHING` | Impostare su `1` per disabilitare la prompt caching per tutti i modelli. Ha la precedenza sulle impostazioni per modello |

1055| `DISABLE_PROMPT_CACHING_HAIKU` | Impostare su `1` per disabilitare la prompt caching per il [modello Haiku predefinito](/docs/it/prompt-caching#disable-prompt-caching) |1057| `DISABLE_PROMPT_CACHING_HAIKU` | Impostare su `1` per disabilitare la prompt caching per il [modello Haiku predefinito](/docs/it/prompt-caching#disable-prompt-caching) |

1056| `DISABLE_PROMPT_CACHING_SONNET` | Impostare su `1` per disabilitare la prompt caching solo per i modelli Sonnet |1058| `DISABLE_PROMPT_CACHING_SONNET` | Impostare su `1` per disabilitare la prompt caching per il [modello Sonnet predefinito](/docs/it/prompt-caching#disable-prompt-caching) |

1057| `DISABLE_PROMPT_CACHING_OPUS` | Impostare su `1` per disabilitare la prompt caching solo per i modelli Opus |1059| `DISABLE_PROMPT_CACHING_OPUS` | Impostare su `1` per disabilitare la prompt caching per il [modello Opus predefinito](/docs/it/prompt-caching#disable-prompt-caching) |

1058| `DISABLE_PROMPT_CACHING_FABLE` | Impostare su `1` per disabilitare la prompt caching solo per i modelli Fable |1060| `DISABLE_PROMPT_CACHING_FABLE` | Impostare su `1` per disabilitare la prompt caching solo per i modelli Fable |

1059 1061 

1060Per scegliere il TTL della cache per la conversazione principale e per i subagents separatamente, vedere [scegliere il TTL da soli](/docs/it/prompt-caching#choose-the-ttl-yourself). Per cosa attiva un cache miss, vedere [Come Claude Code utilizza la prompt caching](/docs/it/prompt-caching).1062Per scegliere il TTL della cache per la conversazione principale e per i subagents separatamente, vedere [scegliere il TTL da soli](/docs/it/prompt-caching#choose-the-ttl-yourself). Per cosa attiva un cache miss, vedere [Come Claude Code utilizza la prompt caching](/docs/it/prompt-caching).

Details

64}64}

65```65```

66 66 

67Nell'app Claude Desktop, le sessioni della scheda Code leggono queste impostazioni gestite dalle fonti che [raggiungono ogni tipo di sessione Desktop](/docs/it/desktop#managed-settings). Il modulo OpenTelemetry per Cowork sotto **Monitoring** nelle [impostazioni Data and privacy](https://claude.ai/admin-settings/data-privacy-controls) della console amministratore si applica solo alle sessioni Cowork, quindi né il CLI del terminale né la scheda Code esportano a un collector che imposti lì.

68 

67Claude Code ignora le [variabili dell'esportatore OpenTelemetry](/docs/it/settings-reference#variables-claude-code-ignores-in-env) nel `.claude/settings.json` e `.claude/settings.local.json` di un repository, quindi un repository non può usarle per attivare la telemetria, scegliere dove va, o acquisire contenuti. Impostale nelle impostazioni gestite, oppure fai in modo che ogni sviluppatore le imposti nella propria shell o in `~/.claude/settings.json`. Un repository può comunque disattivare un segnale impostando il suo selettore di esportatore, come `OTEL_LOGS_EXPORTER`, su `none`, a meno che le impostazioni gestite, un file `--settings`, o l'ambiente da cui avvii Claude Code imposti quella variabile.69Claude Code ignora le [variabili dell'esportatore OpenTelemetry](/docs/it/settings-reference#variables-claude-code-ignores-in-env) nel `.claude/settings.json` e `.claude/settings.local.json` di un repository, quindi un repository non può usarle per attivare la telemetria, scegliere dove va, o acquisire contenuti. Impostale nelle impostazioni gestite, oppure fai in modo che ogni sviluppatore le imposti nella propria shell o in `~/.claude/settings.json`. Un repository può comunque disattivare un segnale impostando il suo selettore di esportatore, come `OTEL_LOGS_EXPORTER`, su `none`, a meno che le impostazioni gestite, un file `--settings`, o l'ambiente da cui avvii Claude Code imposti quella variabile.

68 70 

69Claude Code non passa le variabili di ambiente `OTEL_*` ai sottoprocessi che genera, incluso lo strumento Bash, gli hooks, i server MCP e i language server. Un'applicazione strumentata con OpenTelemetry che esegui tramite lo strumento Bash non eredita l'endpoint dell'esportatore di Claude Code o le intestazioni, quindi imposta quelle variabili direttamente nel comando se quell'applicazione ha bisogno di esportare la propria telemetria.71Claude Code non passa le variabili di ambiente `OTEL_*` ai sottoprocessi che genera, incluso lo strumento Bash, gli hooks, i server MCP e i language server. Un'applicazione strumentata con OpenTelemetry che esegui tramite lo strumento Bash non eredita l'endpoint dell'esportatore di Claude Code o le intestazioni, quindi imposta quelle variabili direttamente nel comando se quell'applicazione ha bisogno di esportare la propria telemetria.


582| Chiavi da `OTEL_RESOURCE_ATTRIBUTES` | Attributi personalizzati che imposti, ad esempio `department` o `team.id`. Vedi [Supporto per organizzazioni multi-team](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` (predefinito: true) |584| Chiavi da `OTEL_RESOURCE_ATTRIBUTES` | Attributi personalizzati che imposti, ad esempio `department` o `team.id`. Vedi [Supporto per organizzazioni multi-team](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` (predefinito: true) |

583| `vcs.repository.url.full`, `vcs.owner.name`, `vcs.repository.name`, `vcs.provider.name` | L'identità del repository della sessione, derivata dal suo remote `origin`. Vedi [Attributi del repository](#repository-attributes) | `OTEL_METRICS_INCLUDE_REPOSITORY` (predefinito: false). Richiede Claude Code v2.1.269 o successivo |585| `vcs.repository.url.full`, `vcs.owner.name`, `vcs.repository.name`, `vcs.provider.name` | L'identità del repository della sessione, derivata dal suo remote `origin`. Vedi [Attributi del repository](#repository-attributes) | `OTEL_METRICS_INCLUDE_REPOSITORY` (predefinito: false). Richiede Claude Code v2.1.269 o successivo |

584 586 

585Quando Claude Code è autenticato a un [gateway di app Claude](/docs/it/claude-apps-gateway), la CLI contrassegna le esportazioni con l'identità autenticata dalla sessione del gateway: `user.id` è il soggetto IdP piuttosto che un identificatore di installazione anonimo, `user.email` è l'email con cui hai effettuato l'accesso, e `user.groups` contiene l'appartenenza al gruppo IdP come stringa separata da virgole. Ogni esportazione contiene anche `identity.source: gateway-oidc`. L'identità del gateway viene applicata per ultima, quindi le chiavi `user.*` e `identity.*` impostate tramite `OTEL_RESOURCE_ATTRIBUTES` vengono ignorate sulle sessioni del gateway.587In sessioni autenticate a un [gateway di app Claude](/docs/it/claude-apps-gateway) tramite `/login`, la CLI contrassegna le esportazioni con l'identità autenticata: `user.id` è il soggetto IdP, `user.email` è l'email con cui hai effettuato l'accesso, e `user.groups` contiene l'appartenenza al gruppo IdP come stringa separata da virgole. Ogni esportazione contiene anche `identity.source: gateway-oidc`. L'identità del gateway viene applicata per ultima, quindi le chiavi `user.*` e `identity.*` impostate tramite `OTEL_RESOURCE_ATTRIBUTES` vengono ignorate sulle sessioni del gateway.

588 

589Per gli attributi di identità su sessioni Claude Desktop e Cowork che si connettono tramite un gateway, vedi il [riferimento `telemetry` del gateway](/docs/it/claude-apps-gateway-config#telemetry).

586 590 

587Gli eventi includono inoltre i seguenti attributi. Questi non vengono mai allegati alle metriche perché causerebbero cardinalità illimitata:591Gli eventi includono inoltre i seguenti attributi. Questi non vengono mai allegati alle metriche perché causerebbero cardinalità illimitata:

588 592 


1540 Attribuisci le azioni agli utenti1544 Attribuisci le azioni agli utenti

1541</h3>1545</h3>

1542 1546 

1543Gli [attributi standard](#standard-attributes) su ogni evento includono l'identità dell'utente autenticato: `user.email`, `user.account_uuid`, `user.account_id`, e `organization.id` quando accedete con un account Claude o, in una [sessione cloud](/docs/it/claude-code-on-the-web), quando le credenziali della sessione stessa le portano, più `user.id` e il `session.id` per sessione. `user.id` è un identificatore con ambito di installazione, tranne nelle sessioni [Claude apps gateway](/docs/it/claude-apps-gateway), dove è il soggetto IdP dal token emesso dal gateway.1547Gli [attributi standard](#standard-attributes) su ogni evento includono l'identità dell'utente autenticato: `user.email`, `user.account_uuid`, `user.account_id`, e `organization.id` quando accedete con un account Claude o, in una [sessione cloud](/docs/it/claude-code-on-the-web), quando le credenziali della sessione stessa le portano, più `user.id` e il `session.id` per sessione. `user.id` è un identificatore con ambito di installazione, tranne nelle sessioni accedute a un [Claude apps gateway](/docs/it/claude-apps-gateway) tramite `/login`, dove è il soggetto IdP dal token emesso dal gateway.

1544 1548 

1545In una sessione che uno sviluppatore avvia, le chiamate agli strumenti MCP, i comandi Bash e le modifiche ai file sono quindi attribuite a quello sviluppatore. Claude Code non agisce con un account di servizio separato; l'identità registrata su ogni evento è l'account Claude dello sviluppatore, o l'identità IdP dello sviluppatore in una sessione [Claude apps gateway](/docs/it/claude-apps-gateway). Nelle sessioni dei canali Claude Tag, Claude funziona come l'[identità condivisa](/docs/it/cloud-environments#set-the-environment-a-claude-tag-channel-uses) della vostra organizzazione.1549In una sessione che uno sviluppatore avvia, le chiamate agli strumenti MCP, i comandi Bash e le modifiche ai file sono quindi attribuite a quello sviluppatore. Claude Code non agisce con un account di servizio separato; l'identità registrata su ogni evento è l'account Claude dello sviluppatore, o l'identità IdP dello sviluppatore in una sessione [Claude apps gateway](/docs/it/claude-apps-gateway). Nelle sessioni dei canali Claude Tag, Claude funziona come l'[identità condivisa](/docs/it/cloud-environments#set-the-environment-a-claude-tag-channel-uses) della vostra organizzazione.

1546 1550 

1547Quando Claude Code si autentica con una chiave API diretta, o contro Amazon Bedrock, Google Cloud's Agent Platform, o Microsoft Foundry, non c'è un account Claude nella sessione e solo `user.id` e `session.id` vengono popolati. In questi deployment, allegate l'identità dell'utente voi stessi con `OTEL_RESOURCE_ATTRIBUTES`, impostato per utente tramite il file [impostazioni gestite](#administrator-configuration) o un wrapper di avvio. Le sessioni Claude apps gateway non hanno bisogno di nulla di tutto questo: la CLI applica l'identità IdP automaticamente, come descritto in [Attributi standard](#standard-attributes).1551Quando Claude Code si autentica con una chiave API diretta, o contro Amazon Bedrock, Google Cloud's Agent Platform, o Microsoft Foundry, non c'è un account Claude nella sessione e solo `user.id` e `session.id` vengono popolati. In questi deployment, allegate l'identità dell'utente voi stessi con `OTEL_RESOURCE_ATTRIBUTES`, impostato per utente tramite il file [impostazioni gestite](#administrator-configuration) o un wrapper di avvio. Le sessioni Claude apps gateway non hanno bisogno di nulla di tutto questo: vedete [Attributi standard](#standard-attributes) per l'identità che i loro export portano.

1548 1552 

1549```bash theme={null}1553```bash theme={null}

1550export OTEL_RESOURCE_ATTRIBUTES="enduser.id=jdoe@example.com,enduser.directory_id=S-1-5-21-..."1554export OTEL_RESOURCE_ATTRIBUTES="enduser.id=jdoe@example.com,enduser.directory_id=S-1-5-21-..."

Details

210| Scadenza del primo byte | Nessun header di risposta arriva dopo che Claude Code invia la richiesta | API Anthropic diretta e [Claude Platform on AWS](/docs/it/claude-platform-on-aws), incluso attraverso un proxy HTTPS, ma non quando `ANTHROPIC_BASE_URL` o `ANTHROPIC_AWS_BASE_URL` le instradano attraverso un [gateway](/docs/it/gateways). Opt-in su Amazon Bedrock con `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`; non viene eseguito su Google Cloud's Agent Platform o Microsoft Foundry | 180 secondi sull'API Anthropic diretta, 300 secondi altrove, più un secondo per ogni 32KB del corpo della richiesta |210| Scadenza del primo byte | Nessun header di risposta arriva dopo che Claude Code invia la richiesta | API Anthropic diretta e [Claude Platform on AWS](/docs/it/claude-platform-on-aws), incluso attraverso un proxy HTTPS, ma non quando `ANTHROPIC_BASE_URL` o `ANTHROPIC_AWS_BASE_URL` le instradano attraverso un [gateway](/docs/it/gateways). Opt-in su Amazon Bedrock con `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`; non viene eseguito su Google Cloud's Agent Platform o Microsoft Foundry | 180 secondi sull'API Anthropic diretta, 300 secondi altrove, più un secondo per ogni 32KB del corpo della richiesta |

211| Watchdog a livello di evento | Nessun evento di risposta viene analizzato. Su connessioni in cui viene eseguito il watchdog a livello di byte, i byte in arrivo, inclusi i ping keep-alive, ripristinano anche questo watchdog, per circa cinque minuti senza un evento analizzato | Ogni provider | 300 secondi |211| Watchdog a livello di evento | Nessun evento di risposta viene analizzato. Su connessioni in cui viene eseguito il watchdog a livello di byte, i byte in arrivo, inclusi i ping keep-alive, ripristinano anche questo watchdog, per circa cinque minuti senza un evento analizzato | Ogni provider | 300 secondi |

212| Watchdog a livello di byte | Nessun byte arriva sul filo, inclusi i ping keep-alive SSE | API Anthropic diretta, [Claude Platform on AWS](/docs/it/claude-platform-on-aws), e [gateway](/docs/it/gateways) connessioni, incluso un `ANTHROPIC_BASE_URL` personalizzato. Opt-in su risposte Amazon Bedrock `vnd.amazon.eventstream` con `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`; non viene eseguito su Google Cloud's Agent Platform o Microsoft Foundry | 180 secondi sull'API Anthropic diretta, 300 secondi altrove |212| Watchdog a livello di byte | Nessun byte arriva sul filo, inclusi i ping keep-alive SSE | API Anthropic diretta, [Claude Platform on AWS](/docs/it/claude-platform-on-aws), e [gateway](/docs/it/gateways) connessioni, incluso un `ANTHROPIC_BASE_URL` personalizzato. Opt-in su risposte Amazon Bedrock `vnd.amazon.eventstream` con `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`; non viene eseguito su Google Cloud's Agent Platform o Microsoft Foundry | 180 secondi sull'API Anthropic diretta, 300 secondi altrove |

213| Timeout di inattività del corpo | Nessun byte arriva per 5 minuti | Provider diversi dall'API Anthropic diretta e da Claude Platform on AWS, a meno che [`API_FORCE_IDLE_TIMEOUT`](/docs/it/env-vars) non lo modifichi | 5 minuti |213| Timeout di inattività del corpo | Nessun byte arriva per 5 minuti | Provider diversi dall'API Anthropic diretta, Claude Platform on AWS, e Amazon Bedrock con `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` impostato, a meno che [`API_FORCE_IDLE_TIMEOUT`](/docs/it/env-vars) non lo modifichi | 5 minuti |

214 

215Se si imposta `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`, il watchdog a livello di byte sostituisce il timeout di inattività del corpo su Bedrock piuttosto che essere eseguito insieme ad esso. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` governa quindi anche quanto a lungo uno stream Bedrock può rimanere silenzioso prima che Claude Code consideri la connessione come morta, entro i limiti elencati di seguito. I byte in arrivo ancora non ripristinano il watchdog a livello di evento su Bedrock. Con la registrazione di debug attivata, ogni stream Bedrock registra quindi un messaggio di debug che inizia con `wire-heartbeat: _chunkTimes absent`.

214 216 

215Configurare i timer con queste variabili, ognuna descritta in dettaglio nel [riferimento delle variabili di ambiente](/docs/it/env-vars):217Configurare i timer con queste variabili, ognuna descritta in dettaglio nel [riferimento delle variabili di ambiente](/docs/it/env-vars):

216 218 


277 279 

278Se la vostra organizzazione GitHub Enterprise Cloud limita l'accesso per indirizzo IP, abilitate [l'ereditarietà della lista di autorizzazione IP per le app GitHub installate](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#allowing-access-by-github-apps) e inoltre [aggiungete una voce di lista di autorizzazione](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#adding-an-allowed-ip-address) per gli [indirizzi IP in uscita](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses) di Anthropic. L'ereditarietà copre solo le richieste che l'app GitHub di Claude fa come installazione, non le richieste che fa per conto dei vostri utenti. Per altri firewall, consultate gli [indirizzi IP API Anthropic](https://platform.claude.com/docs/en/api/ip-addresses).280Se la vostra organizzazione GitHub Enterprise Cloud limita l'accesso per indirizzo IP, abilitate [l'ereditarietà della lista di autorizzazione IP per le app GitHub installate](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#allowing-access-by-github-apps) e inoltre [aggiungete una voce di lista di autorizzazione](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#adding-an-allowed-ip-address) per gli [indirizzi IP in uscita](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses) di Anthropic. L'ereditarietà copre solo le richieste che l'app GitHub di Claude fa come installazione, non le richieste che fa per conto dei vostri utenti. Per altri firewall, consultate gli [indirizzi IP API Anthropic](https://platform.claude.com/docs/en/api/ip-addresses).

279 281 

280Per istanze [GitHub Enterprise Server](/docs/it/github-enterprise-server) auto-ospitate dietro un firewall, inserite nella lista di autorizzazione gli [indirizzi IP in uscita](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses) di Anthropic in modo che l'infrastruttura Anthropic possa raggiungere il vostro host GHES per clonare repository e pubblicare commenti di revisione. Le sessioni in un [ambiente auto-ospitato](/docs/it/self-hosted-environments-deploy#configure-git) raggiungono il vostro host GHES dall'interno della vostra rete invece, quindi tale esposizione si applica solo alle sessioni ospitate da Anthropic, ai flussi pre-sessione ospitati come il selettore di repository, e ai runner auto-ospitati che optano per il [proxy git Anthropic](/docs/it/self-hosted-environments-deploy#use-the-anthropic-git-proxy), che recupera dal lato di Anthropic. Per un host GHES che è instradabile solo all'interno della vostra rete, il [connettore SCM](/docs/it/self-hosted-environments-reference#scm-connector-flags) trasporta i flussi pre-sessione ospitati su una connessione in uscita invece, quindi la lista di autorizzazione non è necessaria per loro.282Per istanze [GitHub Enterprise Server](/docs/it/github-enterprise-server) auto-ospitate dietro un firewall, inserite nella lista di autorizzazione gli [indirizzi IP in uscita](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses) di Anthropic in modo che l'infrastruttura Anthropic possa raggiungere il vostro host GHES per clonare repository e pubblicare commenti di revisione. Le sessioni in un [ambiente auto-ospitato](/docs/it/self-hosted-environments-deploy#configure-git) raggiungono il vostro host GHES dall'interno della vostra rete invece, quindi tale esposizione si applica solo alle sessioni ospitate da Anthropic, ai flussi pre-sessione ospitati come il selettore di repository, e ai runner auto-ospitati che optano per il [proxy git Anthropic](/docs/it/self-hosted-environments-deploy#use-the-anthropic-git-proxy), che recupera dal lato di Anthropic. Il [connettore SCM](/docs/it/self-hosted-environments-reference#scm-connector-flags) non è disponibile, quindi i flussi pre-sessione ospitati non possono raggiungere un host GHES che è instradabile solo all'interno della vostra rete.

281 283 

282<h3 id="desktop-and-claude-ai">284<h3 id="desktop-and-claude-ai">

283 Desktop e claude.ai285 Desktop e claude.ai

Details

368* `git commit --amend` quando il commit in HEAD non è stato creato in questa sessione368* `git commit --amend` quando il commit in HEAD non è stato creato in questa sessione

369* Dalla v2.1.198, `git commit --amend` quando il commit in HEAD è già stato sottoposto a push. Un reword solo messaggio non è bloccato: `--amend -m` senza nulla di nuovo in staging, su un commit che Claude ha creato durante questa sessione369* Dalla v2.1.198, `git commit --amend` quando il commit in HEAD è già stato sottoposto a push. Un reword solo messaggio non è bloccato: `--amend -m` senza nulla di nuovo in staging, su un commit che Claude ha creato durante questa sessione

370* `terraform destroy`, `pulumi destroy`, `cdk destroy` o `terragrunt destroy`, e applicazione di un piano che distrugge risorse370* `terraform destroy`, `pulumi destroy`, `cdk destroy` o `terragrunt destroy`, e applicazione di un piano che distrugge risorse

371 

372Claude Code v2.1.195 e successivo bloccano più categorie per impostazione predefinita. Diversi dipendono da voci di [ambiente](/docs/it/auto-mode-config#define-trusted-infrastructure), come target remoti sensibili e ambiti IaC protetti, che potete restringere a nomi concreti.

373 

374* Scrittura in un gestore di segreti, o modifica di record DNS o certificati TLS371* Scrittura in un gestore di segreti, o modifica di record DNS o certificati TLS

375* Unione di una pull request che nessun umano ha approvato, approvazione della propria pull request di Claude o disabilitazione dei controlli CI372* Unione di una pull request che nessun umano ha approvato, approvazione della propria pull request di Claude o disabilitazione dei controlli CI

376* Posting di un commento che è esso stesso un comando per l'automazione, come `atlantis apply` o il `/deploy` o `/merge` di un bot373* Posting di un commento che è esso stesso un comando per l'automazione, come `atlantis apply` o il `/deploy` o `/merge` di un bot


387* Avvio di un ciclo di agente autonomo che viene eseguito senza approvazione umana o sandbox, come uno avviato con `--dangerously-skip-permissions` o `--no-sandbox`. A partire dalla v2.1.198 questo copre anche l'esecuzione di un agente di terze parti o di un harness di valutazione con isolamento e approvazione per azione disabilitati, come un runner avviato con `--yes-always`384* Avvio di un ciclo di agente autonomo che viene eseguito senza approvazione umana o sandbox, come uno avviato con `--dangerously-skip-permissions` o `--no-sandbox`. A partire dalla v2.1.198 questo copre anche l'esecuzione di un agente di terze parti o di un harness di valutazione con isolamento e approvazione per azione disabilitati, come un runner avviato con `--yes-always`

388* Azioni del browser [Claude in Chrome](/docs/it/chrome) che potrebbero inviare contenuto della pagina, cookie o credenziali off-origin385* Azioni del browser [Claude in Chrome](/docs/it/chrome) che potrebbero inviare contenuto della pagina, cookie o credenziali off-origin

389 386 

387Diverse di queste categorie dipendono da voci di [ambiente](/docs/it/auto-mode-config#define-trusted-infrastructure), come target remoti sensibili e ambiti IaC protetti, che potete restringere a nomi concreti.

388 

390Claude Code v2.1.198 e successivo bloccano anche questi per impostazione predefinita:389Claude Code v2.1.198 e successivo bloccano anche questi per impostazione predefinita:

391 390 

392* Eliminazione di file in `/tmp`, `$TMPDIR` o un'altra directory di scratch o cache condivisa per wildcard, glob o filtro di età piuttosto che per un percorso nominato specifico391* Eliminazione di file in `/tmp`, `$TMPDIR` o un'altra directory di scratch o cache condivisa per wildcard, glob o filtro di età piuttosto che per un percorso nominato specifico


433* Lettura di `.env` e invio di credenziali al loro API corrispondente432* Lettura di `.env` e invio di credenziali al loro API corrispondente

434* Richieste HTTP di sola lettura433* Richieste HTTP di sola lettura

435* Push a qualsiasi ramo del repository in cui state lavorando, incluso il ramo predefinito. Un ramo non predefinito il cui nome lo contrassegna come target di deploy o pubblicazione, come `production` o `gh-pages`, non è coperto: il classificatore giudica un push lì secondo i suoi termini. Il contenuto del push è ancora controllato rispetto alle altre regole, le regole [`permissions.deny`](/docs/it/permissions#manage-permissions) possono ancora bloccare i comandi push [come scritti](/docs/it/permissions#bash-rule-limits) in ogni modalità, e la protezione del ramo del remote si applica ancora. Prima della v2.1.211, solo i push al ramo su cui avete iniziato, i rami che Claude ha creato e i push di routine al ramo predefinito erano consentiti per impostazione predefinita, e prima della v2.1.203 qualsiasi push diretto al ramo predefinito era bloccato434* Push a qualsiasi ramo del repository in cui state lavorando, incluso il ramo predefinito. Un ramo non predefinito il cui nome lo contrassegna come target di deploy o pubblicazione, come `production` o `gh-pages`, non è coperto: il classificatore giudica un push lì secondo i suoi termini. Il contenuto del push è ancora controllato rispetto alle altre regole, le regole [`permissions.deny`](/docs/it/permissions#manage-permissions) possono ancora bloccare i comandi push [come scritti](/docs/it/permissions#bash-rule-limits) in ogni modalità, e la protezione del ramo del remote si applica ancora. Prima della v2.1.211, solo i push al ramo su cui avete iniziato, i rami che Claude ha creato e i push di routine al ramo predefinito erano consentiti per impostazione predefinita, e prima della v2.1.203 qualsiasi push diretto al ramo predefinito era bloccato

436 

437Claude Code v2.1.195 e successivo consentono anche questi per impostazione predefinita:

438 

439* Eliminazione dei lavori esatti che Claude ha creato in precedenza nella stessa sessione435* Eliminazione dei lavori esatti che Claude ha creato in precedenza nella stessa sessione

440* Lettura, revisione o scrittura di codice, configurazioni e modelli di minaccia relativi alla sicurezza come parte del vostro compito436* Lettura, revisione o scrittura di codice, configurazioni e modelli di minaccia relativi alla sicurezza come parte del vostro compito

441* Messaggi tra agenti che lavorano insieme nella stessa sessione multi-agente437* Messaggi tra agenti che lavorano insieme nella stessa sessione multi-agente


526 * In una sessione con [revisione del classificatore lato server](#server-side-classifier-review), le azioni di sola lettura e i comandi di shell [in sandbox](/docs/it/sandboxing#sandbox-modes) attendono quella revisione e vengono bloccati se la contrassegna522 * In una sessione con [revisione del classificatore lato server](#server-side-classifier-review), le azioni di sola lettura e i comandi di shell [in sandbox](/docs/it/sandboxing#sandbox-modes) attendono quella revisione e vengono bloccati se la contrassegna

527 * Una scrittura dentro la vostra directory di lavoro che il [controllo symlink](/docs/it/permissions#symlinks) risolve a una posizione al di fuori di essa vi chiede523 * Una scrittura dentro la vostra directory di lavoro che il [controllo symlink](/docs/it/permissions#symlinks) risolve a una posizione al di fuori di essa vi chiede

528 3. Tutto il resto va al classificatore, a parte le [rimozioni di percorsi critici](#critical-paths) sotto il loro trattamento predefinito. Gli strumenti connettore e gli strumenti MCP `requiresUserInteraction` che vi chiedono direttamente nel passaggio 1 non raggiungono mai il classificatore, quindi né un'approvazione richiesta dall'organizzazione né un passaggio di consenso viene approvato automaticamente524 3. Tutto il resto va al classificatore, a parte le [rimozioni di percorsi critici](#critical-paths) sotto il loro trattamento predefinito. Gli strumenti connettore e gli strumenti MCP `requiresUserInteraction` che vi chiedono direttamente nel passaggio 1 non raggiungono mai il classificatore, quindi né un'approvazione richiesta dall'organizzazione né un passaggio di consenso viene approvato automaticamente

529 4. Se il classificatore blocca, Claude riceve il motivo e prova un'alternativa. Nella maggior parte delle sessioni il motivo nomina la regola che il classificatore ha abbinato, come `[Data Exfiltration]`, piuttosto che dare una spiegazione scritta; consultate [Rivedi negazioni](/docs/it/auto-mode-config#review-denials)525 4. Se il classificatore blocca, Claude riceve il motivo. Nella maggior parte delle sessioni il motivo nomina la regola che il classificatore ha abbinato, come `[Data Exfiltration]`, piuttosto che dare una spiegazione scritta; consultate [Rivedi negazioni](/docs/it/auto-mode-config#review-denials)

530 526 

531 Entrando in modalità auto, le regole di consentimento ampie che concedono l'esecuzione arbitraria di codice vengono eliminate:527 Entrando in modalità auto, le regole di consentimento ampie che concedono l'esecuzione arbitraria di codice vengono eliminate:

532 528 

permissions.md +2 −2

Details

280 280 

281Claude Code riconosce un insieme integrato di comandi Bash come di sola lettura e li esegue senza un prompt di autorizzazione in ogni modalità, tranne per un percorso che [`permissions.blockReadsOutsideWorkingDirectories`](/docs/it/settings-reference#permissions-blockreadsoutsideworkingdirectories) protegge. L'insieme include `ls`, `cat`, `echo`, `pwd`, `head`, `tail`, `grep`, `find`, `wc`, `which`, `diff`, `stat`, `du`, `cd` e forme di sola lettura di `git`. L'insieme non è configurabile; per richiedere un prompt per uno di questi comandi, aggiungete una regola `ask` o `deny` per esso. In modalità auto, questi comandi possono anche attendere la revisione del classificatore; vedere [come il classificatore valuta le azioni](/docs/it/permission-modes#how-the-classifier-evaluates-actions).281Claude Code riconosce un insieme integrato di comandi Bash come di sola lettura e li esegue senza un prompt di autorizzazione in ogni modalità, tranne per un percorso che [`permissions.blockReadsOutsideWorkingDirectories`](/docs/it/settings-reference#permissions-blockreadsoutsideworkingdirectories) protegge. L'insieme include `ls`, `cat`, `echo`, `pwd`, `head`, `tail`, `grep`, `find`, `wc`, `which`, `diff`, `stat`, `du`, `cd` e forme di sola lettura di `git`. L'insieme non è configurabile; per richiedere un prompt per uno di questi comandi, aggiungete una regola `ask` o `deny` per esso. In modalità auto, questi comandi possono anche attendere la revisione del classificatore; vedere [come il classificatore valuta le azioni](/docs/it/permission-modes#how-the-classifier-evaluates-actions).

282 282 

283Un reindirizzamento come `ls > out.txt` aggiunge un controllo sul target. Vedere [Redirections](#redirections).283Un reindirizzamento come `ls > out.txt` aggiunge un controllo sul target. Vedere [Reindirizzamenti](#redirections).

284 284 

285I modelli glob non quotati sono consentiti per i comandi il cui ogni flag è di sola lettura, quindi `ls *.ts` e `wc -l src/*.py` vengono eseguiti senza un prompt.285I modelli glob non quotati sono consentiti per i comandi il cui ogni flag è di sola lettura, quindi `ls *.ts` e `wc -l src/*.py` vengono eseguiti senza un prompt.

286 286 


503 503 

504* `WebFetch(domain:example.com)` corrisponde alle richieste a `example.com`504* `WebFetch(domain:example.com)` corrisponde alle richieste a `example.com`

505* `WebFetch(domain:*.example.com)` corrisponde a qualsiasi sottodominio a qualsiasi profondità, come `api.example.com` o `a.b.example.com`, ma non a `example.com` stesso505* `WebFetch(domain:*.example.com)` corrisponde a qualsiasi sottodominio a qualsiasi profondità, come `api.example.com` o `a.b.example.com`, ma non a `example.com` stesso

506* `WebFetch(domain:*)` corrisponde a ogni dominio. Non è lo stesso di una regola WebFetch nuda; vedere [Allow or deny every fetch](#allow-or-deny-every-fetch)506* `WebFetch(domain:*)` corrisponde a ogni dominio. Non è lo stesso di una regola WebFetch nuda; vedere [Consentire o negare ogni fetch](#allow-or-deny-every-fetch)

507 507 

508In qualsiasi posizione diversa da un `*.` iniziale o da un `*` nudo, il carattere jolly corrisponde solo al testo tra due punti. `WebFetch(domain:example.*)` corrisponde a `example.org`, dove `*` diventa `org`, ma non a `example.evil.com`, dove `*` dovrebbe diventare `evil.com` e attraversare un punto. Questo impedisce a un carattere jolly finale di corrispondere a domini che un attaccante potrebbe registrare.508In qualsiasi posizione diversa da un `*.` iniziale o da un `*` nudo, il carattere jolly corrisponde solo al testo tra due punti. `WebFetch(domain:example.*)` corrisponde a `example.org`, dove `*` diventa `org`, ma non a `example.evil.com`, dove `*` dovrebbe diventare `evil.com` e attraversare un punto. Questo impedisce a un carattere jolly finale di corrispondere a domini che un attaccante potrebbe registrare.

509 509 

plugin-evals.md +20 −12

Details

55 La baseline senza plugin55 La baseline senza plugin

56</h3>56</h3>

57 57 

58Un punteggio alto di per sé non ti dice se il plugin ha aiutato, perché Claude potrebbe fare altrettanto bene senza di esso. Per separare i due, le esecuzioni di ogni caso vengono ripetute senza plugin caricato per impostazione predefinita, e ottieni due punteggi, `WITH` e `W/OUT`. La loro differenza, `Δ`, è quello che il plugin ha contribuito. Se un caso ottiene 1.0 sia con che senza il plugin, il plugin non è quello che l'ha fatto passare. I due set di esecuzioni sono chiamati with-arm e without-arm; [Confrontare con una baseline senza plugin](#compare-against-a-no-plugin-baseline) copre come i grader vengono valutati tra loro e come disattivare la baseline.58Un punteggio alto di per sé non ti dice se il plugin ha aiutato, perché Claude potrebbe fare altrettanto bene senza di esso. Per separare i due, le esecuzioni di ogni caso vengono ripetute senza plugin caricato, e ottieni due punteggi, `WITH` e `W/OUT`. La loro differenza, `Δ`, è quello che il plugin ha contribuito. Se un caso ottiene 1.0 sia con che senza il plugin, il plugin non è quello che l'ha fatto passare.

59 

60I due set di esecuzioni sono chiamati with-arm e without-arm; [Confrontare con una baseline senza plugin](#compare-against-a-no-plugin-baseline) copre quali casi eseguono solo il with-arm e come i grader vengono valutati tra i due arm.

59 61 

60<h2 id="create-your-first-eval-suite">62<h2 id="create-your-first-eval-suite">

61 Crea la tua prima suite di eval63 Crea la tua prima suite di eval


128 Scrivi e perfeziona i casi130 Scrivi e perfeziona i casi

129</h2>131</h2>

130 132 

131I casi che `claude plugin eval init` scrive sono file semplici che puoi aprire, modificare e aggiungere. Un caso è una directory sotto la directory eval del plugin che contiene un `prompt.md`, un `case.yaml`, o entrambi. Per raggruppare i casi, annidali sotto una directory che non è essa stessa un caso; qualsiasi cosa dentro una directory di caso, come `graders/` e file fixture, appartiene a quel caso.133I casi che `claude plugin eval init` scrive sono file semplici che puoi aprire, modificare e aggiungere. Un caso è una directory sotto la directory eval del plugin che contiene un `prompt.md`, un `case.yaml`, o entrambi. Dai a ogni caso almeno un grader, come un file `graders/<name>.md` o una voce `graders:` in `case.yaml`, perché un caso senza uno non riesce a caricarsi. Per raggruppare i casi, annidali sotto una directory che non è essa stessa un caso; qualsiasi cosa dentro una directory di caso, come `graders/` e file fixture, appartiene a quel caso.

132 134 

133Questo è il layout che `claude plugin eval init` scrive e quello da usare per le nuove suite. Il [riferimento della suite di eval](#eval-suite-reference) ha l'albero completo, inclusi mock e risultati:135Questo è il layout che `claude plugin eval init` scrive e quello da usare per le nuove suite. Il [riferimento della suite di eval](#eval-suite-reference) ha l'albero completo, inclusi mock e risultati:

134 136 


242 Valuta rispetto alla baseline senza plugin244 Valuta rispetto alla baseline senza plugin

243</h3>245</h3>

244 246 

245Quando un plugin è sotto test, ogni caso viene eseguito in due arm per impostazione predefinita. Il with-arm è le sue esecuzioni con il plugin caricato, e il without-arm è lo stesso numero di esecuzioni senza plugin. Il riepilogo e il rapporto mostrano entrambi i punteggi e `Δ`, il punteggio with-arm meno il punteggio without-arm.247Quando un plugin è sotto test, un caso normalmente viene eseguito in due arm. Il with-arm è le sue esecuzioni con il plugin caricato, e il without-arm è lo stesso numero di esecuzioni senza plugin. Il riepilogo e il rapporto mostrano entrambi i punteggi e `Δ`, il punteggio with-arm meno il punteggio without-arm.

248 

249In queste situazioni un caso esegue solo il with-arm, quindi non ottiene alcun punteggio `W/OUT` o `Δ`:

246 250 

247Passa `--ablation none` per eseguire solo il with-arm, che dimezza il costo quando non hai bisogno del confronto, come durante l'iterazione sui grader.251* **Passi `--ablation none`**: ogni caso esegue un arm, che dimezza il costo quando non hai bisogno del confronto, come durante l'iterazione sui grader.

252* **Il caso riprende una trascrizione e il target è un percorso**: con un [target](#choose-what-to-evaluate) come `.` piuttosto che il nome di un plugin installato, un caso [`context.history_file`](#add-setup-or-history-with-case-yaml) esegue un arm per impostazione predefinita, sulla base del presupposto che la conversazione registrata rifletta già il plugin. L'esecuzione stampa un avviso `single-arm (no Δ)` su stderr nominando questi casi. Per confrontare il turno ripreso con e senza il plugin, passa `--ablation with-without`.

253* **Nessun plugin è stato trovato per il caso**: quando il target è un percorso, un caso il cui plugin Claude Code non ha potuto individuare esegue anche un arm per impostazione predefinita. Vedi [il baseline arm non mostra alcun plugin](#the-baseline-arm-shows-no-plugin-or-delta-is-zero) per correggerlo.

248 254 

249In un'esecuzione a due arm, alcuni grader vengono riportati con `scored: false`. Un controllo come "la skill è stata invocata" non può mai passare senza il plugin, quindi contarlo spingerebbe il without-arm verso zero e gonfierebbe `Δ`. Per mantenere i due arm comparabili, Claude Code esclude tali grader dal punteggio in entrambi gli arm e li riporta nel with-arm come indicatori pass/fail solo. Questo include:255In un'esecuzione a due arm, alcuni grader vengono riportati con `scored: false`. Un controllo come "la skill è stata invocata" non può mai passare senza il plugin, quindi contarlo spingerebbe il without-arm verso zero e gonfierebbe `Δ`. Per mantenere i due arm comparabili, Claude Code esclude tali grader dal punteggio in entrambi gli arm e li riporta nel with-arm come indicatori pass/fail solo. Questo include:

250 256 


282Ogni esecuzione inizia in un'area di lavoro vuota. Quando un caso ha bisogno di più del prompt, aggiungete un `case.yaml` accanto a `prompt.md` con un blocco `context`:288Ogni esecuzione inizia in un'area di lavoro vuota. Quando un caso ha bisogno di più del prompt, aggiungete un `case.yaml` accanto a `prompt.md` con un blocco `context`:

283 289 

284* **File fixture o un repository git**: scrivete uno script Bash nella directory del caso e nominate lo script in `context.scaffold_script`. Lo script viene eseguito come voi, al di fuori della sandbox dell'agente, e solo quando passate `--scaffold`, quindi passate questo flag solo per suite che voi o la vostra organizzazione avete scritto.290* **File fixture o un repository git**: scrivete uno script Bash nella directory del caso e nominate lo script in `context.scaffold_script`. Lo script viene eseguito come voi, al di fuori della sandbox dell'agente, e solo quando passate `--scaffold`, quindi passate questo flag solo per suite che voi o la vostra organizzazione avete scritto.

285* **Una conversazione precedente da continuare**: salvate la trascrizione come file `.jsonl` e nominate il file in `context.history_file`, e il prompt del caso diventa il turno utente successivo.291* **Una conversazione precedente da continuare**: salvate la trascrizione come file `.jsonl` e nominate il file in `context.history_file`, e il prompt del caso diventa il turno utente successivo. Quando il target è un percorso, un caso di questo tipo viene eseguito [senza un braccio baseline](#compare-against-a-no-plugin-baseline) per impostazione predefinita.

286* **Directory fixture che Claude può leggere durante l'esecuzione**: elencatele in `context.add_dirs`.292* **Directory fixture che Claude può leggere durante l'esecuzione**: elencatele in `context.add_dirs`.

287 293 

288Un `case.yaml` ha anche bisogno di `schema_version: "1.1"` e `name`; il riferimento [case.yaml fields](#case-yaml-fields) ha l'elenco completo.294Un `case.yaml` ha anche bisogno di `schema_version: "1.1"` e `name`; il riferimento [case.yaml fields](#case-yaml-fields) ha l'elenco completo.


298 add_dirs: [resources]304 add_dirs: [resources]

299```305```

300 306 

307Uno script scaffold inizia nell'area di lavoro vuota con un piccolo ambiente fisso: il `PATH` della vostra shell, `HOME` impostato sulla directory home temporanea dell'esecuzione, `TMPDIR`, e alcune costanti come `TERM=dumb`. Nient'altro dalla vostra shell lo raggiunge, e nemmeno le variabili `EVAL_*` del caso. Se lo script esce con codice non zero o viene eseguito più a lungo di 120 secondi, quell'esecuzione ottiene un punteggio 0 con un errore `scaffold failed`. Utilizzate lo script solo per file e stato git, poiché la configurazione del progetto che scrive [non viene caricata](#how-runs-are-isolated).

308 

301<h3 id="mock-mcp-servers">309<h3 id="mock-mcp-servers">

302 Mock dei server MCP310 Mock dei server MCP

303</h3>311</h3>


394| `-j`, `--concurrency <n>` | `1` | Esegui fino a questo numero di esecuzioni di agenti contemporaneamente, da 1 a 8. Condividono il limite di velocità del tuo account, quindi questo accorcia il tempo di parete piuttosto che aumentare la velocità oltre quel limite. I risultati mantengono l'ordine dei casi |402| `-j`, `--concurrency <n>` | `1` | Esegui fino a questo numero di esecuzioni di agenti contemporaneamente, da 1 a 8. Condividono il limite di velocità del tuo account, quindi questo accorcia il tempo di parete piuttosto che aumentare la velocità oltre quel limite. I risultati mantengono l'ordine dei casi |

395| `--model <model>` | `model` di ogni caso, altrimenti `ANTHROPIC_MODEL` se impostato, altrimenti il predefinito di Claude Code | Modello per l'agente sotto test. Fissalo in CI in modo che un rollout di modello non sia scambiato per una regressione del plugin |403| `--model <model>` | `model` di ogni caso, altrimenti `ANTHROPIC_MODEL` se impostato, altrimenti il predefinito di Claude Code | Modello per l'agente sotto test. Fissalo in CI in modo che un rollout di modello non sia scambiato per una regressione del plugin |

396| `--judge-model <model>` | Un modello piccolo e veloce | Modello per i grader `llm` e `baseline` |404| `--judge-model <model>` | Un modello piccolo e veloce | Modello per i grader `llm` e `baseline` |

397| `--ablation <mode>` | `with-without` quando un plugin si risolve, altrimenti `none` | Se eseguire anche ogni caso senza il plugin per misurare cosa aggiunge. `none` esegue un arm; `with-without` aggiunge la baseline senza plugin |405| `--ablation <mode>` | Deciso per caso; vedi [Punteggio rispetto alla baseline senza plugin](#compare-against-a-no-plugin-baseline) | Se eseguire anche ogni caso senza il plugin per misurare cosa aggiunge. `none` esegue un arm; `with-without` aggiunge la baseline senza plugin |

398| `--threshold <0..1>` | `1.0` | Un caso passa quando il suo punteggio with-arm è almeno questo. Qualsiasi caso sotto di esso fa uscire il comando 1 |406| `--threshold <0..1>` | `1.0` | Un caso passa quando il suo punteggio with-arm è almeno questo. Qualsiasi caso sotto di esso fa uscire il comando 1 |

399| `--max-cost-usd <usd>` | Nessun limite | Un limite sul costo stimato al prezzo di listino dell'esecuzione, non sull'utilizzo del piano. Controllato prima che ogni esecuzione inizi. Una volta speso, nulla di ulteriore inizia; le esecuzioni già in volo finiscono, quindi la spesa può superare il limite di quelle esecuzioni. Se un'esecuzione rimane non avviata, il comando esce 2 con risultati parziali |407| `--max-cost-usd <usd>` | Nessun limite | Un limite sul costo stimato al prezzo di listino dell'esecuzione, non sull'utilizzo del piano. Controllato prima che ogni esecuzione inizi. Una volta speso, nulla di ulteriore inizia; le esecuzioni già in volo finiscono, quindi la spesa può superare il limite di quelle esecuzioni. Se un'esecuzione rimane non avviata, il comando esce 2 con risultati parziali |

400| `--allow-tools <tools...>` | Nessuno | Concedi strumenti oltre il set di sola lettura. Vedi [Concedi strumenti](#grant-tools) |408| `--allow-tools <tools...>` | Nessuno | Concedi strumenti oltre il set di sola lettura. Vedi [Concedi strumenti](#grant-tools) |


506 Fidati della directory del plugin514 Fidati della directory del plugin

507</h3>515</h3>

508 516 

509La prima volta che esegui `claude plugin eval` rispetto a una directory, Claude Code chiede `Trust this plugin directory?` prima di caricare qualsiasi cosa da essa, a meno che non hai già accettato il prompt di fiducia lì in una sessione `claude` interattiva. All'interno di un repository git, rispondere sì fidati dell'intero repository, per le sessioni interattive anche. Quando stdin o stdout non è un terminale, sotto `--json`, o quando la variabile di ambiente `CI` è impostata a un valore vero come `true`, l'esecuzione non può chiedere ed è rifiutata con uscita 1; passa `--trust-plugin` per asserire la fiducia tu stesso, solo per un plugin che eseguiresti sulla tua macchina. Un target che nomini piuttosto che dai come percorso, significando un plugin installato o un plugin skills-directory, salta il prompt.517La prima volta che esegui `claude plugin eval` rispetto a una directory, Claude Code chiede `Trust this plugin directory?` prima di caricare qualsiasi cosa da essa, a meno che non hai già accettato il prompt di fiducia lì in una sessione `claude` interattiva. All'interno di un repository git, rispondere sì fidati dell'intero repository, per le sessioni interattive anche. Quando stdin o stdout non è un terminale, o sotto `--json`, l'esecuzione non può chiedere ed è rifiutata con uscita 1; passa `--trust-plugin` per asserire la fiducia tu stesso, solo per un plugin che eseguiresti sulla tua macchina. Un target che nomini piuttosto che dai come percorso, significando un plugin installato o un plugin skills-directory, salta il prompt.

510 518 

511Alcune parti del plugin e della suite vengono eseguite solo quando passi il loro flag per quella esecuzione:519Alcune parti del plugin e della suite vengono eseguite solo quando passi il loro flag per quella esecuzione:

512 520 


524 532 

525Ogni esecuzione ottiene una directory home, directory di lavoro, e configurazione di Claude Code monouso, e l'agente sotto test viene eseguito lì come processo figlio `claude -p` con solo il tuo plugin caricato. Tieni a mente queste conseguenze quando scrivi i casi:533Ogni esecuzione ottiene una directory home, directory di lavoro, e configurazione di Claude Code monouso, e l'agente sotto test viene eseguito lì come processo figlio `claude -p` con solo il tuo plugin caricato. Tieni a mente queste conseguenze quando scrivi i casi:

526 534 

527* **Nulla di personale o a livello di progetto carica.** Le tue impostazioni utente, gli hook, i file `CLAUDE.md`, i server MCP, gli altri plugin installati, la memoria, e le skill sono assenti, e nessun `.claude/` o `.mcp.json` con scope di progetto sopra la sandbox viene letto. La maggior parte del tuo ambiente shell è anche trattenuta; solo un [allowlist](#prompt-md-fields) e le variabili `EVAL_*` raggiungono l'esecuzione. Se il plugin ha bisogno di setup, spediscilo nel plugin, crealo in uno `scaffold_script`, o passa le variabili `EVAL_*`.535* **Nulla di personale o a livello di progetto carica.** Le tue impostazioni utente, gli hook, i file `CLAUDE.md`, i server MCP, gli altri plugin installati, la memoria, e le skill sono assenti. La configurazione con scope di progetto non viene letta da nessuna parte: nessuna directory `.claude/`, `CLAUDE.md`, o `.mcp.json` carica da sopra l'area di lavoro o dentro di essa, nemmeno una che uno `scaffold_script` ha scritto, e le directory `add_dirs` concedono accesso in lettura solo. La maggior parte del tuo ambiente shell è anche trattenuta; solo un [allowlist](#prompt-md-fields) e le variabili `EVAL_*` raggiungono l'esecuzione. Spedisci qualsiasi skill, agente, hook, o server MCP da cui un caso dipende nel plugin sotto test, poiché uno [`scaffold_script`](#add-setup-or-history-with-case-yaml) può fornire solo file e stato git.

528* **La politica gestita può ancora limitare un'esecuzione.** Le restrizioni nelle [impostazioni gestite](/docs/it/managed-settings) che un amministratore ha distribuito alla macchina si applicano dentro un'esecuzione, quindi i risultati su una macchina gestita possono differire da una non gestita da quella politica.536* **La politica gestita può ancora limitare un'esecuzione.** Le restrizioni nelle [impostazioni gestite](/docs/it/managed-settings) che un amministratore ha distribuito alla macchina si applicano dentro un'esecuzione, quindi i risultati su una macchina gestita possono differire da una non gestita da quella politica.

529* **Lo strumento Artifact è spento.** Una skill che pubblica un [artifact](/docs/it/artifacts) può essere valutata solo su quello che produce prima di quel passaggio.537* **Lo strumento Artifact è spento.** Una skill che pubblica un [artifact](/docs/it/artifacts) può essere valutata solo su quello che produce prima di quel passaggio.

530* **Le definizioni del caso sono nascoste all'agente.** Un'esecuzione non può leggere la directory eval, quindi Claude non può vedere il prompt del caso, i suoi grader, o i casi fratelli.538* **Le definizioni del caso sono nascoste all'agente.** Un'esecuzione non può leggere la directory eval, quindi Claude non può vedere il prompt del caso, i suoi grader, o i casi fratelli.


534 Riferimento della suite di eval542 Riferimento della suite di eval

535</h2>543</h2>

536 544 

537Tutto quello che una suite di eval può contenere vive sotto la directory eval del plugin, `evals/` a meno che non hai [configurato un'altra](#use-a-different-eval-directory). Questo albero mostra ogni file che `claude plugin eval` legge o scrive lì; solo `prompt.md` o `case.yaml` è richiesto per un caso per esistere:545Tutto quello che una suite di eval può contenere vive sotto la directory eval del plugin, `evals/` a meno che non hai [configurato un'altra](#use-a-different-eval-directory). Una directory conta come un caso quando contiene un `prompt.md` o un `case.yaml`, e un caso senza almeno un grader non riesce a caricarsi con un errore `invalid case.yaml` che nomina `graders`. Questo albero mostra ogni file che `claude plugin eval` legge o scrive nella directory eval:

538 546 

539```text theme={null}547```text theme={null}

540evals/548evals/


590 598 

591| Campo | Scopo |599| Campo | Scopo |

592| :- | :- |600| :- | :- |

593| `context.scaffold_script` | Uno script Bash nella directory del caso che viene eseguito nello spazio di lavoro vuoto prima che Claude inizi, per creare file fixture o un repository git. Viene eseguito solo quando passi [`--scaffold`](#add-setup-or-history-with-case-yaml) |601| `context.scaffold_script` | Uno script Bash nella directory del caso che viene eseguito nello spazio di lavoro vuoto prima che Claude inizi, per creare file fixture o un repository git. Viene eseguito solo quando passi [`--scaffold`](#add-setup-or-history-with-case-yaml), con un ambiente minimo e un limite di 120 secondi, e un'uscita diversa da zero fallisce l'esecuzione |

594| `context.history_file` | Una trascrizione `.jsonl` nella directory del caso da riprendere. Il prompt del caso diventa il turno utente successivo |602| `context.history_file` | Una trascrizione `.jsonl` nella directory del caso da riprendere. Il prompt del caso diventa il turno utente successivo |

595| `context.add_dirs` | Directory dentro la directory del caso che Claude può leggere durante l'esecuzione, concesse in sola lettura |603| `context.add_dirs` | Directory dentro la directory del caso che Claude può leggere durante l'esecuzione, concesse in sola lettura |

596| `execution.prompt` | Il prompt, quando mantieni l'intero caso in `case.yaml` e ometti `prompt.md` |604| `execution.prompt` | Il prompt, quando mantieni l'intero caso in `case.yaml` e ometti `prompt.md` |


679 "is not a trusted plugin directory, and this run cannot stop to ask you about it"687 "is not a trusted plugin directory, and this run cannot stop to ask you about it"

680</h3>688</h3>

681 689 

682Questa è la prima esecuzione rispetto a una directory di cui Claude Code non ha ancora fiducia, e non può chiedere perché stdin o stdout non è un terminale, hai passato `--json`, o la variabile di ambiente `CI` è impostata su un valore vero come `true`. Esegui `claude plugin eval <dir>` una volta in un terminale e rispondi al prompt, o passa `--trust-plugin` se ti fidi del codice e della suite del plugin. Vedi [Cosa un'esecuzione può accedere](#security).690Questa è la prima esecuzione rispetto a una directory di cui Claude Code non ha ancora fiducia, e non può chiedere perché stdin o stdout non è un terminale o hai passato `--json`. Esegui `claude plugin eval <dir>` una volta in un terminale e rispondi al prompt, o passa `--trust-plugin` se ti fidi del codice e della suite del plugin. Vedi [Cosa un'esecuzione può accedere](#security).

683 691 

684<h3 id="git-is-too-old-for-claude-plugin-eval">692<h3 id="git-is-too-old-for-claude-plugin-eval">

685 "is too old for claude plugin eval"693 "is too old for claude plugin eval"


705 Il baseline arm mostra nessun plugin, o delta è zero713 Il baseline arm mostra nessun plugin, o delta è zero

706</h3>714</h3>

707 715 

708Se il riepilogo non ha colonna `W/OUT`, o il caso fallisce con "ablation requested but no plugin resolved", nessun plugin è stato trovato per il caso. Aggiungi `plugins: ["../.."]` al caso, dando il percorso dalla directory del caso alla directory del plugin.716Se il riepilogo non ha colonna `W/OUT`, o il caso fallisce con "ablation requested but no plugin resolved", la causa usuale è che nessun plugin è stato trovato per il caso. Se ogni caso riprende una trascrizione attraverso `context.history_file`, la colonna mancante è prevista invece, perché quei casi eseguono [un arm per impostazione predefinita](#compare-against-a-no-plugin-baseline). Altrimenti, aggiungi `plugins: ["../.."]` al caso, dando il percorso dalla directory del caso alla directory del plugin.

709 717 

710Se il plugin è stato caricato e `Δ` è ancora vicino a zero con il tuo grader `tool_used: Skill` che fallisce, questo è di solito un risultato reale, significando che la `description` della skill non attiva sulla formulazione del prompt. Regola la descrizione e riesegui la stessa suite.718Se il plugin è stato caricato e `Δ` è ancora vicino a zero con il tuo grader `tool_used: Skill` che fallisce, questo è di solito un risultato reale, significando che la `description` della skill non attiva sulla formulazione del prompt. Regola la descrizione e riesegui la stessa suite.

711 719 

Details

92| `--accept-command <sha256>` | Accetta il comando di installazione visualizzato il cui `sha256` un'esecuzione precedente [`--json`](#plugin-json-result) ha riportato in `shownCommand`, al posto di `-y`. Non può essere combinato con `-y`. Vedi [Accetta un comando di installazione visualizzato](#accept-a-displayed-install-command). Richiede Claude Code v2.1.271 o successivo |92| `--accept-command <sha256>` | Accetta il comando di installazione visualizzato il cui `sha256` un'esecuzione precedente [`--json`](#plugin-json-result) ha riportato in `shownCommand`, al posto di `-y`. Non può essere combinato con `-y`. Vedi [Accetta un comando di installazione visualizzato](#accept-a-displayed-install-command). Richiede Claude Code v2.1.271 o successivo |

93| `--json` | Stampa il risultato come un oggetto JSON sull'ultima riga di stdout invece del messaggio leggibile, per l'uso negli script. Vedi [Formato risultato JSON](#plugin-json-result). Richiede Claude Code v2.1.268 o successivo |93| `--json` | Stampa il risultato come un oggetto JSON sull'ultima riga di stdout invece del messaggio leggibile, per l'uso negli script. Vedi [Formato risultato JSON](#plugin-json-result). Richiede Claude Code v2.1.268 o successivo |

94 94 

95Esegui `claude plugin install --help` nella tua shell per vedere ogni opzione che la tua versione supporta.

96 

95Passa `-y` dal tuo terminale per accettare il comando visualizzato senza il prompt. Ecco cosa succede senza un TTY e quando Claude esegue il comando:97Passa `-y` dal tuo terminale per accettare il comando visualizzato senza il prompt. Ecco cosa succede senza un TTY e quando Claude esegue il comando:

96 98 

97* **stdin o stdout non è un TTY, e non passi né `-y` né `--accept-command`**: l'installazione viene rifiutata. L'output dice che il comando è stato solo visualizzato, e il codice di uscita è `1`99* **stdin o stdout non è un TTY, e non passi né `-y` né `--accept-command`**: l'installazione viene rifiutata. L'output dice che il comando è stato solo visualizzato, e il codice di uscita è `1`


163 165 

164Claude Code stampa `Successfully uninstalled plugin: formatter (scope: project)`. Quando il plugin non è installato a quell'ambito, il comando stampa una riga che inizia con `Failed to uninstall plugin "formatter@my-marketplace":` ed esce con `1`.166Claude Code stampa `Successfully uninstalled plugin: formatter (scope: project)`. Quando il plugin non è installato a quell'ambito, il comando stampa una riga che inizia con `Failed to uninstall plugin "formatter@my-marketplace":` ed esce con `1`.

165 167 

166Se la riga di errore continua con `"formatter" was not uninstalled:`, Claude Code non ha potuto confermare che le impostazioni dell'ambito non attivano più il plugin, quindi il plugin rimane installato con tutto ciò che ha salvato. Con `--json`, il risultato porta `failureCode: "settings_still_on"`. Questo controllo delle impostazioni richiede Claude Code v2.1.282 o successivo.168Se la riga di errore continua con `"formatter" was not uninstalled:` e nomina un file di impostazioni, Claude Code non ha potuto confermare che le impostazioni dell'ambito non attivano più il plugin, quindi il plugin rimane installato con tutto ciò che ha salvato. Con `--json`, il risultato porta `failureCode: "settings_still_on"`. Questo controllo delle impostazioni richiede Claude Code v2.1.282 o successivo.

167 169 

168<h4 id="what-an-uninstall-deletes-and-keeps">170<h4 id="what-an-uninstall-deletes-and-keeps">

169 Cosa un'disinstallazione elimina e conserva171 Cosa un'disinstallazione elimina e conserva


436| `-j, --concurrency <n>` | Sessioni di agent da eseguire contemporaneamente, da 1 a 8. Condividono il tuo limite di velocità | `1` |438| `-j, --concurrency <n>` | Sessioni di agent da eseguire contemporaneamente, da 1 a 8. Condividono il tuo limite di velocità | `1` |

437| `--model <model>` | Modello per l'agent in test | Il `model` di ogni caso, altrimenti `ANTHROPIC_MODEL` se impostato, altrimenti il predefinito di Claude Code |439| `--model <model>` | Modello per l'agent in test | Il `model` di ogni caso, altrimenti `ANTHROPIC_MODEL` se impostato, altrimenti il predefinito di Claude Code |

438| `--judge-model <model>` | Modello per i grader `llm` e `baseline` | Un modello piccolo e veloce |440| `--judge-model <model>` | Modello per i grader `llm` e `baseline` | Un modello piccolo e veloce |

439| `--ablation <mode>` | `none` o `with-without`. Vedi [Confronta con una baseline senza plugin](/docs/it/plugin-evals#compare-against-a-no-plugin-baseline) | `with-without` quando un plugin si risolve, altrimenti `none` |441| `--ablation <mode>` | `none` o `with-without`. Vedi [Confronta con una baseline senza plugin](/docs/it/plugin-evals#compare-against-a-no-plugin-baseline) | Deciso per caso, come quella sezione descrive |

440| `--threshold <0..1>` | Esci con 1 se un caso qualsiasi punteggia sotto questo | `1.0` |442| `--threshold <0..1>` | Esci con 1 se un caso qualsiasi punteggia sotto questo | `1.0` |

441| `--max-cost-usd <usd>` | Ferma prima della prossima esecuzione una volta che la spesa raggiunge questo, esci con 2 e riporta risultati parziali | Nessun limite |443| `--max-cost-usd <usd>` | Ferma prima della prossima esecuzione una volta che la spesa raggiunge questo, esci con 2 e riporta risultati parziali | Nessun limite |

442| `--allow-tools <tools...>` | Concedi strumenti oltre al set di sola lettura, come `Bash`, `Write`, `Edit` o `"mcp__plugin_<plugin>_<server>__*"`. Vedi [Concedi strumenti](/docs/it/plugin-evals#grant-tools) | |444| `--allow-tools <tools...>` | Concedi strumenti oltre al set di sola lettura, come `Bash`, `Write`, `Edit` o `"mcp__plugin_<plugin>_<server>__*"`. Vedi [Concedi strumenti](/docs/it/plugin-evals#grant-tools) | |


467claude plugin eval init [name] [options]469claude plugin eval init [name] [options]

468```470```

469 471 

472Esegui il comando dalla cartella root del plugin, la directory che contiene `.claude-plugin/plugin.json` o il `SKILL.md` della skill. Per creare lo scaffolding della suite in un'altra directory di proposito, passa `--eval-dir`.

473 

470In un terminale, il comando apre una sessione Claude Code interattiva per un'intervista di authoring. Nell'intervista, Claude fa quanto segue:474In un terminale, il comando apre una sessione Claude Code interattiva per un'intervista di authoring. Nell'intervista, Claude fa quanto segue:

471 475 

4721. Legge il plugin4761. Legge il plugin


477 481 

478Con `--bare`, o senza un terminale, il comando scrive un template di caso singolo vuoto. Quando Claude esegue il comando dall'interno di una sessione Claude Code, il comando stampa le istruzioni dell'intervista per quella sessione da seguire piuttosto che scrivere un template.482Con `--bare`, o senza un terminale, il comando scrive un template di caso singolo vuoto. Quando Claude esegue il comando dall'interno di una sessione Claude Code, il comando stampa le istruzioni dell'intervista per quella sessione da seguire piuttosto che scrivere un template.

479 483 

480Il `name` opzionale è un nome di caso. È richiesto con `--bare` o senza un terminale, perché il comando scrive il template vuoto per quel caso. L'intervista non ne ha bisogno.484Il `name` opzionale è un nome di caso. È richiesto con `--bare` o senza un terminale, perché il comando scrive il template vuoto per quel caso. Un nome di caso inizia con una lettera o una cifra e contiene solo lettere, cifre, `.`, `_` e `-`. Su ogni piattaforma, il comando rifiuta anche nomi che Windows non può memorizzare, come `con` o un nome che termina con `.`.

481 485 

482Il comando accetta queste opzioni:486Il comando accetta queste opzioni:

483 487 


634| :- | :- | :- |638| :- | :- | :- |

635| `owner/repo`, `owner/repo#ref` o `owner/repo@ref` | `github` | Clona il repository GitHub, fissato a `ref` quando fornito. Owner e repo devono seguire le regole di denominazione GitHub |639| `owner/repo`, `owner/repo#ref` o `owner/repo@ref` | `github` | Clona il repository GitHub, fissato a `ref` quando fornito. Owner e repo devono seguire le regole di denominazione GitHub |

636| `user@host:path[.git][#ref]` | `git` | Clona su SSH |640| `user@host:path[.git][#ref]` | `git` | Clona su SSH |

637| `https://example.com/repo.git[#ref]`, o un URL contenente `/_git/` | `git` | Clona su HTTPS, inclusi gli URL di Azure DevOps |641| Un URL `http://` o `https://` che termina in `.git[#ref]` o contiene `/_git/`, come `https://example.com/repo.git` | `git` | Clona l'URL, inclusi gli URL di Azure DevOps |

638| `https://github.com/owner/repo` o `https://gitlab.com/namespace/project` | `git` | Clona su HTTPS dopo aver aggiunto `.git` |642| `https://github.com/owner/repo` o `https://gitlab.com/namespace/project`, o lo stesso su `http://` | `git` | Clona l'URL dopo aver aggiunto `.git` |

639| Qualsiasi altro URL `http://` o `https://`, incluso un host git auto-ospitato senza `.git` | `url` | Recupera l'URL come `marketplace.json`. Per clonare un repository lì, aggiungi `.git` |643| Qualsiasi altro URL `http://` o `https://`, incluso un host git auto-ospitato senza `.git` | `url` | Recupera l'URL come `marketplace.json`. Per clonare un repository lì, aggiungi `.git` |

640| `./path`, `../path`, `/path` o `~/path` a una directory | `directory` | Legge la directory in posizione. Su Windows, anche i moduli `.\`, `..\` e `C:\` funzionano |644| `./path`, `../path`, `/path` o `~/path` a una directory | `directory` | Legge la directory in posizione. Su Windows, anche i moduli `.\`, `..\` e `C:\` funzionano |

641| Gli stessi moduli di percorso, a un file `.json` | `file` | Legge il file in posizione |645| Gli stessi moduli di percorso, a un file `.json` | `file` | Legge il file in posizione |


707Rimuovi la dichiarazione di un marketplace dalle tue impostazioni. `rm` è un alias per `remove`.711Rimuovi la dichiarazione di un marketplace dalle tue impostazioni. `rm` è un alias per `remove`.

708 712 

709<Warning>713<Warning>

710 Quando rimuovi un marketplace dall'ultimo ambito che lo dichiara, Claude Code elimina anche la sua cache e disinstalla ogni plugin che hai installato da esso. Senza `--scope`, il comando rimuove la dichiarazione da ogni ambito. Per aggiornare un marketplace senza perdere i suoi plugin, esegui `plugin marketplace update`.714 Quando rimuovi un marketplace dall'ultimo ambito che lo dichiara, Claude Code elimina anche la sua cache e disinstalla ogni plugin che hai installato da esso. Elimina anche le loro [opzioni e segreti](/docs/it/plugins/manifest-reference#user-configuration) salvati e i [dati](/docs/it/plugins/components#path-variables-and-persistent-data) dove può.

715 

716 Per aggiornare un marketplace senza perdere i suoi plugin, esegui `plugin marketplace update` invece.

711</Warning>717</Warning>

712 718 

713```bash theme={null}719```bash theme={null}


726claude plugin marketplace remove your-marketplace732claude plugin marketplace remove your-marketplace

727```733```

728 734 

729Claude Code stampa `Successfully removed marketplace: your-marketplace`, aggiungendo `(from project settings)` quando lo hai scoped. Se scopi a un file di impostazioni che non dichiara il marketplace, il comando fallisce con `Marketplace 'your-marketplace' is not declared in project settings. Omit --scope to remove it from all scopes.`735Claude Code stampa `Successfully removed marketplace: your-marketplace`. Quando il comando disinstalla i plugin, l'output li elenca sotto una riga come `Also uninstalled 2 plugins from this marketplace:`. Per usarne uno di nuovo, aggiungi il marketplace di nuovo e reinstalla il plugin.

736 

737Se scopi a un file di impostazioni che non dichiara il marketplace, il comando fallisce con `Marketplace 'your-marketplace' is not declared in project settings. Omit --scope to remove it from all scopes.`

730 738 

731<h3 id="plugin-marketplace-update">739<h3 id="plugin-marketplace-update">

732 plugin marketplace update740 plugin marketplace update


769| `/plugin list [--enabled\|--disabled]` | `ls` | Stampa i tuoi plugin installati da marketplace inline, con versione, ambito e stato. Un flag di filtro mostra solo quello stato. Un plugin il cui stato di abilitazione non è stato ancora applicato è contrassegnato `— run /reload-plugins to apply`. Richiede Claude Code v2.1.163 o successivo |777| `/plugin list [--enabled\|--disabled]` | `ls` | Stampa i tuoi plugin installati da marketplace inline, con versione, ambito e stato. Un flag di filtro mostra solo quello stato. Un plugin il cui stato di abilitazione non è stato ancora applicato è contrassegnato `— run /reload-plugins to apply`. Richiede Claude Code v2.1.163 o successivo |

770| `/plugin install` | `i` | Apre la scheda **Discover** |778| `/plugin install` | `i` | Apre la scheda **Discover** |

771| `/plugin install <plugin>` | `i` | Apre i dettagli del plugin nella scheda **Discover**. Con `name@marketplace`, li apre nell'elenco di quel marketplace |779| `/plugin install <plugin>` | `i` | Apre i dettagli del plugin nella scheda **Discover**. Con `name@marketplace`, li apre nell'elenco di quel marketplace |

780| `/plugin install <source>` | `i` | Segnala un errore [marketplace non trovato](/docs/it/plugins/troubleshooting#marketplace-not-found) e non installa nulla quando il target è un percorso, URL, o `owner/repo`, anche una fonte che hai già aggiunto. Per installare da una fonte, vedi [Aggiungi un marketplace e installa in un comando](/docs/it/plugins/install#add-a-marketplace-and-install-in-one-command) |

772| `/plugin install <plugin> --marketplace <source>` | `i` | Aggiunge il marketplace a `<source>` quando non l'hai ancora aggiunto, chiedendoti di confermare prima, poi apre i dettagli del plugin. Vedi [Aggiungi un marketplace e installa in un comando](/docs/it/plugins/install#add-a-marketplace-and-install-in-one-command). Richiede Claude Code v2.1.275 o successivo |781| `/plugin install <plugin> --marketplace <source>` | `i` | Aggiunge il marketplace a `<source>` quando non l'hai ancora aggiunto, chiedendoti di confermare prima, poi apre i dettagli del plugin. Vedi [Aggiungi un marketplace e installa in un comando](/docs/it/plugins/install#add-a-marketplace-and-install-in-one-command). Richiede Claude Code v2.1.275 o successivo |

773| `/plugin manage` | | Apre la scheda **Installed** |782| `/plugin manage` | | Apre la scheda **Installed** |

774| `/plugin stats` | | Apre la scheda **Stats**, in sessioni dove [`/skill-doctor`](/docs/it/skills#find-unused-skills) è disponibile. Altrove apre il pannello sulla scheda **Discover** |783| `/plugin stats` | | Apre la scheda **Stats**, in sessioni dove [`/skill-doctor`](/docs/it/skills#find-unused-skills) è disponibile. Altrove apre il pannello sulla scheda **Discover** |


841| `--plugin-dir <path>` | Carica un plugin da una directory o un archivio `.zip` di uno. Una cartella di plugin carica ogni cartella figlio che contiene un `.claude-plugin/plugin.json`. Ogni flag accetta un percorso | `claude --plugin-dir ./my-plugin --plugin-dir ./other.zip` |850| `--plugin-dir <path>` | Carica un plugin da una directory o un archivio `.zip` di uno. Una cartella di plugin carica ogni cartella figlio che contiene un `.claude-plugin/plugin.json`. Ogni flag accetta un percorso | `claude --plugin-dir ./my-plugin --plugin-dir ./other.zip` |

842| `--plugin-url <url>` | Recupera un archivio `.zip` plugin da un URL. Ripeti il flag, o passa più URL separati da spazi in un valore tra virgolette | `claude --plugin-url "https://example.com/a.zip https://example.com/b.zip"` |851| `--plugin-url <url>` | Recupera un archivio `.zip` plugin da un URL. Ripeti il flag, o passa più URL separati da spazi in un valore tra virgolette | `claude --plugin-url "https://example.com/a.zip https://example.com/b.zip"` |

843 852 

844Un plugin che uno di questi flag carica è un plugin solo sessione. `claude plugin list` lo mostra come `<name>@inline` con ambito `session`, ma solo quando lo stesso flag precede il sottocomando. Ad esempio, esegui `claude --plugin-dir ./my-plugin plugin list`.853Un plugin che uno di questi flag carica è un plugin solo sessione. [`claude plugin list`](#plugin-list) lo mostra solo quando lo stesso flag precede il sottocomando, come in `claude --plugin-dir ./my-plugin plugin list`. Il plugin appare come `<name>@inline` sotto un'intestazione che inizia con `Session-only plugins`, e `--json` riporta il suo `scope` come `session`.

845 854 

846Quando un plugin solo sessione condivide un nome con un plugin installato, Claude Code carica la copia solo sessione per quella sessione e salta quella installata. La copia installata si carica invece se hai disabilitato la copia solo sessione con `claude plugin disable <name>@inline`, o se le impostazioni gestite bloccano quel nome di plugin. Per la precedenza, vedi [Riferimento caricamento plugin](/docs/it/plugins/loading).855Quando un plugin solo sessione condivide un nome con un plugin installato, Claude Code carica la copia solo sessione per quella sessione e salta quella installata. La copia installata si carica invece se hai disabilitato la copia solo sessione con `claude plugin disable <name>@inline`, o se le impostazioni gestite bloccano quel nome di plugin. Per la precedenza, vedi [Riferimento caricamento plugin](/docs/it/plugins/loading).

847 856 

Details

676 676 

677Per includere istruzioni in un plugin, scrivile come una skill. Claude Code non carica un `CLAUDE.md` alla radice del plugin, e `claude plugin validate` avverte `CLAUDE.md at the plugin root is not loaded as project context`.677Per includere istruzioni in un plugin, scrivile come una skill. Claude Code non carica un `CLAUDE.md` alla radice del plugin, e `claude plugin validate` avverte `CLAUDE.md at the plugin root is not loaded as project context`.

678 678 

679Se una regola deve valere ogni volta, come [bloccare le modifiche ai file protetti](/docs/it/hooks-guide#block-edits-to-protected-files), aggiungila al plugin come un [hook](#hooks) piuttosto che una skill. Per scegliere tra i due, vedere la scheda Hook vs Skill sotto [Confronta funzionalità simili](/docs/it/features-overview#compare-similar-features).

680 

679Per i campi frontmatter e i file di supporto, vedere [Skills](/docs/it/skills).681Per i campi frontmatter e i file di supporto, vedere [Skills](/docs/it/skills).

680 682 

681<h3 id="commands">683<h3 id="commands">

Details

126 126 

127Ogni plugin che distribuisci è un oggetto nell'array `plugins` di `marketplace.json`. Per aggiungere un secondo plugin, aggiungi un secondo oggetto. Questi campi coprono la maggior parte delle voci:127Ogni plugin che distribuisci è un oggetto nell'array `plugins` di `marketplace.json`. Per aggiungere un secondo plugin, aggiungi un secondo oggetto. Questi campi coprono la maggior parte delle voci:

128 128 

129* `name`: l'identificatore che le persone digitano prima di `@` quando installano. Non può contenere spazi.129* `name`: l'identificatore che le persone digitano prima di `@` quando installano. [Plugin entries](/docs/it/plugins/marketplace-reference#plugin-entries) fornisce i caratteri che un nome può utilizzare.

130* `source`: da dove Claude Code recupera il plugin. Scrivi una stringa di percorso relativo per un plugin all'interno della directory del marketplace, come nella [procedura dettagliata](#create-a-marketplace), o un oggetto source per un plugin al di fuori di essa. Vedi [Scegliere una fonte di plugin](#choose-a-plugin-source).130* `source`: da dove Claude Code recupera il plugin. Scrivi una stringa di percorso relativo per un plugin all'interno della directory del marketplace, come nella [procedura dettagliata](#create-a-marketplace), o un oggetto source per un plugin al di fuori di essa. Vedi [Scegliere una fonte di plugin](#choose-a-plugin-source).

131* `description`: la riga che le persone vedono accanto al plugin quando sfogliano il tuo marketplace in `/plugin`.131* `description`: la riga che le persone vedono accanto al plugin quando sfogliano il tuo marketplace in `/plugin`.

132 132 


199 199 

200* Errori di sintassi JSON, come `json: Invalid JSON syntax: <reason>`200* Errori di sintassi JSON, come `json: Invalid JSON syntax: <reason>`

201* Campi obbligatori mancanti, come `owner: Invalid input`201* Campi obbligatori mancanti, come `owner: Invalid input`

202* Un nome di marketplace con spazi, caratteri non ASCII, o una forma che imita un marketplace ufficiale di Anthropic, come `claude-official`202* Un nome di marketplace o plugin che viola le regole di denominazione nel [riferimento del marketplace](/docs/it/plugins/marketplace-reference#top-level-fields)

203* Una `source` relativa che contiene `..`203* Una `source` relativa che contiene `..`

204* Campi sconosciuti al livello superiore o in una voce di plugin, come avvisi204* Campi sconosciuti al livello superiore o in una voce di plugin, come avvisi

205* Problemi nel `plugin.json` di ogni plugin con percorso relativo, come `plugins[N] plugin.json → <field>: <message>`205* Problemi nel `plugin.json` di ogni plugin con percorso relativo, come `plugins[N] plugin.json → <field>: <message>`

Details

50 50 

51Quando gli utenti aggiungono il tuo marketplace come URL `marketplace.json` nudo, Claude Code scarica solo quel file. Una voce nel tuo array `plugins` il cui `source` è un percorso relativo come `./plugins/formatter` fallisce quindi all'installazione con [`its marketplace entry path does not stay inside the marketplace directory`](/docs/it/plugins/troubleshooting#plugins-with-relative-paths-fail-in-url-based-marketplaces). Dai a ogni voce un source che può essere recuperato da solo, come un repository `github` o un URL `archive`, oppure ospita il marketplace in un repository git in modo che Claude Code cloni l'intero albero.51Quando gli utenti aggiungono il tuo marketplace come URL `marketplace.json` nudo, Claude Code scarica solo quel file. Una voce nel tuo array `plugins` il cui `source` è un percorso relativo come `./plugins/formatter` fallisce quindi all'installazione con [`its marketplace entry path does not stay inside the marketplace directory`](/docs/it/plugins/troubleshooting#plugins-with-relative-paths-fail-in-url-based-marketplaces). Dai a ogni voce un source che può essere recuperato da solo, come un repository `github` o un URL `archive`, oppure ospita il marketplace in un repository git in modo che Claude Code cloni l'intero albero.

52 52 

53<h3 id="stay-within-the-download-limits-for-hosted-files">

54 Stay within the download limits for hosted files

55</h3>

56 

57Quando gli utenti aggiungono il tuo marketplace come URL `marketplace.json`, o installano una voce con una source [`archive`](/docs/it/plugins/marketplace-reference#archive-plugin-source), Claude Code scarica il file dal tuo server. Lo scaricamento fallisce oltre i limiti in questa tabella, quindi dimensiona i tuoi file e configura il tuo server per stare dentro di essi.

58 

59| File | Scaricamento più grande | Tempo per il tuo server per rispondere | Reindirizzamenti |

60| :- | :- | :- | :- |

61| `marketplace.json` da una source marketplace `url` | 5 MiB | 10 secondi | Un reindirizzamento a un'origine diversa deve usare `https://` e non può puntare a un host loopback, link-local, o cloud-metadata, quindi un reindirizzamento da `https://` a `http://` fallisce |

62| Zip da una source plugin `archive` | 256 MiB | 120 secondi | Al massimo cinque. Ogni target di reindirizzamento deve usare `https://` e non può puntare a un host loopback, link-local, o cloud-metadata |

63 

64Una richiesta che un reindirizzamento invia a un'origine diversa non porta nessuno degli header che hai configurato sulla source marketplace o sulla voce del plugin.

65 

66Dopo che un archivio è stato scaricato, l'installazione fallisce quando lo zip supera uno di questi limiti di estrazione:

67 

68* **Voci**: 100.000 file e directory

69* **Dimensione file**: 512 MiB per qualsiasi file, non compresso

70* **Dimensione totale**: 1 GiB non compresso

71* **Rapporto di compressione**: contenuto non compresso 50 volte la dimensione dello zip

72 

53<h3 id="edit-plugins-in-place-on-a-shared-directory">73<h3 id="edit-plugins-in-place-on-a-shared-directory">

54 Edit plugins in place on a shared directory74 Edit plugins in place on a shared directory

55</h3>75</h3>

Details

121 121 

122Nel tuo terminale, i plugin si sincronizzano solo nelle sessioni dove accedi con il tuo account claude.ai.122Nel tuo terminale, i plugin si sincronizzano solo nelle sessioni dove accedi con il tuo account claude.ai.

123 123 

124Claude Code non scarica né carica i plugin sincronizzati in queste sessioni di terminale, anche dopo che accedi con `/login`:

125 

126* Una sessione dove `ANTHROPIC_AUTH_TOKEN`, `CLAUDE_CODE_OAUTH_TOKEN`, o uno script `apiKeyHelper` fornisce la credenziale al posto di quell'accesso

127* Una sessione che non [recupera i flag di funzionalità da Anthropic](/docs/it/env-vars#features-that-need-feature-flag-fetching), come una dove imposti `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`

128* Una sessione in [modalità bare](/docs/it/headless#start-faster-with-bare-mode) o una che avvii con `--safe-mode`

129* Una sessione che avvii con un elenco [`--setting-sources`](/docs/it/cli-reference#cli-flags) che esclude `user`

130 

124Se hai effettuato l'accesso su una versione precedente di Claude Code, quell'accesso non copre i plugin fino a quando Claude Code non lo rinnova in background. Per ottenere l'accesso prima, esegui di nuovo `/login`. La sincronizzazione dei plugin inizia quindi la prossima volta che avvii Claude Code.131Se hai effettuato l'accesso su una versione precedente di Claude Code, quell'accesso non copre i plugin fino a quando Claude Code non lo rinnova in background. Per ottenere l'accesso prima, esegui di nuovo `/login`. La sincronizzazione dei plugin inizia quindi la prossima volta che avvii Claude Code.

125 132 

126<h4 id="control-which-synced-plugins-load">133<h4 id="control-which-synced-plugins-load">


190| `.trash/` | I plugin che la sincronizzazione di claude.ai ha rimosso, come dopo che ne hai disattivato uno su claude.ai o hai smesso di sincronizzare |197| `.trash/` | I plugin che la sincronizzazione di claude.ai ha rimosso, come dopo che ne hai disattivato uno su claude.ai o hai smesso di sincronizzare |

191| `installed_plugins.json` e `known_marketplaces.json` | I record di quello che Claude Code ha installato e quali marketplace ha recuperato, descritti sotto [Controlla quale fase ha raggiunto un plugin](#check-which-stage-a-plugin-reached). Un [marketplace ospitato su claude.ai](/docs/it/plugins/install#add-from-claude-ai) è registrato in `known_marketplaces_claudeai.json` invece |198| `installed_plugins.json` e `known_marketplaces.json` | I record di quello che Claude Code ha installato e quali marketplace ha recuperato, descritti sotto [Controlla quale fase ha raggiunto un plugin](#check-which-stage-a-plugin-reached). Un [marketplace ospitato su claude.ai](/docs/it/plugins/install#add-from-claude-ai) è registrato in `known_marketplaces_claudeai.json` invece |

192| `flagged-plugins.json` | I plugin che Claude Code ha disinstallato perché il loro marketplace li ha rimossi dall'elenco. Appaiono nella sezione **Flagged** di `/plugin`; vedi [Ospita un marketplace](/docs/it/plugins/host-marketplace) |199| `flagged-plugins.json` | I plugin che Claude Code ha disinstallato perché il loro marketplace li ha rimossi dall'elenco. Appaiono nella sezione **Flagged** di `/plugin`; vedi [Ospita un marketplace](/docs/it/plugins/host-marketplace) |

200| `installed_plugins.set-aside.<date>.<hash>.json` e `installed_plugins.unreadable.<date>.<hash>.kept` | Copie datate che Claude Code mantiene prima di eliminare i record di installazione che nessuna versione di Claude Code può utilizzare o ricostruisce un `installed_plugins.json` illeggibile. Vedi [le note di recupero](/docs/it/plugins/troubleshooting#installed-plugins-json-could-not-be-read-and-was-rebuilt). Invecchiano secondo la pianificazione [`cleanupPeriodDays`](/docs/it/settings-reference#cleanupperioddays) |

193 201 

194Poiché `${CLAUDE_PLUGIN_ROOT}` punta a una directory di versione, il percorso radice di un plugin cambia con ogni versione. Mantieni i file durevoli di un plugin in `${CLAUDE_PLUGIN_DATA}` invece.202Poiché `${CLAUDE_PLUGIN_ROOT}` punta a una directory di versione, il percorso radice di un plugin cambia con ogni versione. Mantieni i file durevoli di un plugin in `${CLAUDE_PLUGIN_DATA}` invece.

195 203 

Details

48* **Nomi del marketplace della comunità**: `claude-community`, `claude-plugins-community` e `healthcare`. Riservati secondo la stessa regola dei nomi ufficiali.48* **Nomi del marketplace della comunità**: `claude-community`, `claude-plugins-community` e `healthcare`. Riservati secondo la stessa regola dei nomi ufficiali.

49* **Nomi della directory dei plugin**: `anthropic-plugin-directory` e `claude-plugin-directory`. Riservati secondo la stessa regola dei nomi ufficiali.49* **Nomi della directory dei plugin**: `anthropic-plugin-directory` e `claude-plugin-directory`. Riservati secondo la stessa regola dei nomi ufficiali.

50* **Nomi che impersonano un marketplace ufficiale**: nomi come `official-claude-plugins` o `claude-plugins-v2`, e qualsiasi nome contenente un carattere non ASCII. L'errore è `Marketplace name impersonates an official Anthropic/Claude marketplace`. Un carattere di controllo o di formattazione bidirezionale in un nome segnala anche `Marketplace name cannot contain control or bidirectional-formatting characters`. Un marketplace già registrato con tale nome smette di caricarsi, insieme ai suoi plugin.50* **Nomi che impersonano un marketplace ufficiale**: nomi come `official-claude-plugins` o `claude-plugins-v2`, e qualsiasi nome contenente un carattere non ASCII. L'errore è `Marketplace name impersonates an official Anthropic/Claude marketplace`. Un carattere di controllo o di formattazione bidirezionale in un nome segnala anche `Marketplace name cannot contain control or bidirectional-formatting characters`. Un marketplace già registrato con tale nome smette di caricarsi, insieme ai suoi plugin.

51* <span id="reserved-name-spellings" />**Un'altra ortografia di un nome riservato**: un nome che differisce da un nome riservato solo per un punto finale, o per un simbolo diverso da un trattino al posto di un trattino, quindi `claude.code.plugins` conta come `claude-code-plugins`. `claude plugin validate` accetta tale nome; l'aggiunta del marketplace non riesce con [`is another spelling of "<reserved>", a reserved marketplace name`](/docs/it/errors#marketplace-name-is-another-spelling-of-a-reserved-name), e un marketplace già registrato sotto uno smette di caricarsi. Questo controllo richiede Claude Code v2.1.280 o successivo.51* <span id="reserved-name-spellings" />**Un'altra ortografia di un nome riservato**: un nome che differisce da un nome riservato solo per un punto finale, o per un simbolo diverso da un trattino al posto di un trattino, quindi `claude.code.plugins` conta come `claude-code-plugins`. L'aggiunta del marketplace non riesce con [`is another spelling of "<reserved>", a reserved marketplace name`](/docs/it/errors#marketplace-name-is-another-spelling-of-a-reserved-name), e un marketplace già registrato sotto uno smette di caricarsi. Questo controllo richiede Claude Code v2.1.280 o successivo.

52* **Nomi che Claude Code utilizza per i plugin che non provengono da un marketplace**: `inline` per i plugin caricati con [`--plugin-dir`](/docs/it/cli-reference), `builtin` per i plugin integrati, `skills-dir` per i plugin caricati automaticamente da [`.claude/skills/`](/docs/it/skills) e `synced` per i plugin sincronizzati dal proprio account claude.ai. Anche `claude-plugin-test` è riservato. `skills-dir` appare anche come `{"source": "skills-dir"}` in `strictKnownMarketplaces` e `blockedMarketplaces`, descritto in [Source values valid only in policy lists](#source-values-valid-only-in-policy-lists).52* **Nomi che Claude Code utilizza per i plugin che non provengono da un marketplace**: `inline` per i plugin caricati con [`--plugin-dir`](/docs/it/cli-reference), `builtin` per i plugin integrati, `skills-dir` per i plugin caricati automaticamente da [`.claude/skills/`](/docs/it/skills) e `synced` per i plugin sincronizzati dal proprio account claude.ai. Anche `claude-plugin-test` è riservato. `skills-dir` appare anche come `{"source": "skills-dir"}` in `strictKnownMarketplaces` e `blockedMarketplaces`, descritto in [Source values valid only in policy lists](#source-values-valid-only-in-policy-lists).

53* **`npm`, `pip`, `uv`, `cargo`, `github` e `gh`**: riservati in qualsiasi maiuscola. Questo controllo richiede Claude Code v2.1.275 o successivo.53* **`npm`, `pip`, `uv`, `cargo`, `github` e `gh`**: riservati in qualsiasi maiuscola. Questo controllo richiede Claude Code v2.1.275 o successivo.

54* **Nomi che iniziano con `claudeai-`**: riservati per i marketplace ospitati su claude.ai. `claude plugin marketplace add` rifiuta qualsiasi altro marketplace che ne utilizzi uno con `Cannot add marketplace "<name>": names starting with "claudeai-" are reserved for marketplaces hosted on claude.ai`.54* **Nomi che iniziano con `claudeai-`**: riservati per i marketplace ospitati su claude.ai. `claude plugin marketplace add` rifiuta qualsiasi altro marketplace che ne utilizzi uno con `Cannot add marketplace "<name>": names starting with "claudeai-" are reserved for marketplaces hosted on claude.ai`.


63 63 

64| Field | Type | Description |64| Field | Type | Description |

65| :- | :- | :- |65| :- | :- | :- |

66| `name` | string | Identificatore del marketplace. Nessuno spazio, caratteri di controllo o caratteri di formattazione bidirezionale, nessun `/` o `\`, nessun `..` e non `.`. Vedere [Reserved names](#reserved-names). Gli utenti lo digitano dopo `@` quando installano un plugin |66| `name` | string | Identificatore del marketplace: lettere, cifre, `.`, `_` e `-`, che iniziano con una lettera o una cifra, e nessun `..`. Forma la metà dopo `@` di ogni [plugin id](/docs/it/plugins/loading#find-where-a-plugin-came-from) installato dal marketplace, quindi `claude plugin validate` non riesce con altri nomi. Vedere [Reserved names](#reserved-names) |

67| `owner` | object | Informazioni del manutentore. `name` è obbligatorio; `email` e `url` sono facoltativi |67| `owner` | object | Informazioni del manutentore. `name` è obbligatorio; `email` e `url` sono facoltativi |

68| `plugins` | array | [Plugin entries](#plugin-entries). Ogni voce è convalidata da sola, quindi una voce non valida non fa fallire il marketplace |68| `plugins` | array | [Plugin entries](#plugin-entries). Ogni voce è convalidata da sola, quindi una voce non valida non fa fallire il marketplace |

69| `$schema` | string | URL dello schema JSON per l'autocompletamento dell'editor. Ignorato al momento del caricamento |69| `$schema` | string | URL dello schema JSON per l'autocompletamento dell'editor. Ignorato al momento del caricamento |


87 87 

88| Field | Type | Description |88| Field | Type | Description |

89| :- | :- | :- |89| :- | :- | :- |

90| `name` | string | Identificatore del plugin, senza spazi, caratteri di controllo o caratteri di formattazione bidirezionale. Gli utenti lo digitano prima di `@` quando installano, anche quando il `plugin.json` del plugin stesso imposta un `name` diverso |90| `name` | string | Identificatore del plugin: lettere, cifre, `.`, `_` e `-`, che iniziano con una lettera o una cifra. `claude plugin validate` non riesce con altri nomi, che Claude Code non può installare. Gli utenti lo digitano prima di `@` quando installano, anche quando il `plugin.json` del plugin stesso imposta un `name` diverso |

91| `source` | string or object | Dove recuperare il plugin. Vedere [Plugin sources](#plugin-sources) |91| `source` | string or object | Dove recuperare il plugin. Vedere [Plugin sources](#plugin-sources) |

92| `description` | string | Mostrato negli elenchi e nei dettagli di [`/plugin`](/docs/it/plugins/install) |92| `description` | string | Mostrato negli elenchi e nei dettagli di [`/plugin`](/docs/it/plugins/install) |

93| `version` | string | Stringa di versione per il plugin. Quando `plugin.json` imposta anche `version`, `plugin.json` ha la precedenza e `claude plugin validate` avverte. Vedere [Plugin loading reference](/docs/it/plugins/loading) |93| `version` | string | Stringa di versione per il plugin. Quando `plugin.json` imposta anche `version`, `plugin.json` ha la precedenza e `claude plugin validate` avverte. Vedere [Plugin loading reference](/docs/it/plugins/loading) |


280 archive plugin source280 archive plugin source

281</h3>281</h3>

282 282 

283`url` deve utilizzare `https://` e non può puntare a un host loopback, link-local o cloud-metadata.283`url` deve utilizzare `https://` e non può puntare a un host loopback, link-local o cloud-metadata. Per i limiti di dimensione, timeout, reindirizzamento ed estrazione sul download, vedere [Stay within the download limits for hosted files](/docs/it/plugins/host-marketplace#stay-within-the-download-limits-for-hosted-files).

284 284 

285La radice del plugin può essere in cima al zip o una directory in basso.285La radice del plugin può essere in cima al zip o una directory in basso.

286 286 


385| :- | :- | :- | :- | :- | :- |385| :- | :- | :- | :- | :- | :- |

386| `url` | `url`, `headers`, `headersHelper` | Un URL `http://` o `https://` che non corrisponde a una forma git | Carica | Consente lo stesso URL | Blocca lo stesso URL |386| `url` | `url`, `headers`, `headersHelper` | Un URL `http://` o `https://` che non corrisponde a una forma git | Carica | Consente lo stesso URL | Blocca lo stesso URL |

387| `github` | `repo`, `ref`, `path`, `sparsePaths` | `owner/repo`, `owner/repo@ref` o `owner/repo#ref` | Carica | Consente lo stesso `repo`, `ref` e `path`. `repo` può essere `owner/*` | Blocca lo stesso e un URL `git` allo stesso repository |387| `github` | `repo`, `ref`, `path`, `sparsePaths` | `owner/repo`, `owner/repo@ref` o `owner/repo#ref` | Carica | Consente lo stesso `repo`, `ref` e `path`. `repo` può essere `owner/*` | Blocca lo stesso e un URL `git` allo stesso repository |

388| `git` | `url`, `ref`, `path`, `sparsePaths` | Un URL `user@host:path`, o un URL `https://` che termina in `.git`, contiene `/_git/` o nomina un repository github.com o gitlab.com. `#ref` fissa un ref | Carica | Consente lo stesso URL, `ref` e `path` | Blocca lo stesso e altre ortografie dello stesso repository github.com |388| `git` | `url`, `ref`, `path`, `sparsePaths` | Un URL `user@host:path`, o un URL `http://` o `https://` che termina in `.git`, contiene `/_git/` o nomina un repository github.com o gitlab.com. `#ref` fissa un ref | Carica | Consente lo stesso URL, `ref` e `path` | Blocca lo stesso e altre ortografie dello stesso repository github.com |

389| `npm` | `package` | Non prodotto | Non riesce a caricarsi: `NPM marketplace sources not yet implemented` | Analizza ma non corrisponde a nulla, perché nulla registra un marketplace `npm` | Analizza ma non corrisponde a nulla |389| `npm` | `package` | Non prodotto | Non riesce a caricarsi: `NPM marketplace sources not yet implemented` | Analizza ma non corrisponde a nulla, perché nulla registra un marketplace `npm` | Analizza ma non corrisponde a nulla |

390| `file` | `path` | Un percorso a un file `.json` | Carica | Consente lo stesso percorso | Blocca lo stesso percorso |390| `file` | `path` | Un percorso a un file `.json` | Carica | Consente lo stesso percorso | Blocca lo stesso percorso |

391| `directory` | `path` | Un percorso a una directory | Carica | Consente lo stesso percorso | Blocca lo stesso percorso |391| `directory` | `path` | Un percorso a una directory | Carica | Consente lo stesso percorso | Blocca lo stesso percorso |


402 402 

403| Field | Types | Description |403| Field | Types | Description |

404| :- | :- | :- |404| :- | :- | :- |

405| `url` | `url` | Collegamento al file `marketplace.json`. Claude Code scarica solo quel file, quindi i plugin del marketplace non possono utilizzare [sorgenti di percorso relativo](#relative-path-plugin-source) |405| `url` | `url` | Collegamento al file `marketplace.json`. Claude Code scarica solo quel file, quindi i plugin del marketplace non possono utilizzare [sorgenti di percorso relativo](#relative-path-plugin-source). Vedere [Stay within the download limits for hosted files](/docs/it/plugins/host-marketplace#stay-within-the-download-limits-for-hosted-files) per i limiti di dimensione, timeout e reindirizzamento |

406| `url` | `git` | Il repository git da clonare |406| `url` | `git` | Il repository git da clonare |

407| `headers` | `url` | Mappa di intestazioni HTTP che Claude Code invia con il recupero, per host autenticati |407| `headers` | `url` | Mappa di intestazioni HTTP che Claude Code invia con il recupero, per host autenticati |

408| `headersHelper` | `url` | Comando che stampa intestazioni i cui valori sono troppo brevi per essere elencati in `headers`. Richiede Claude Code v2.1.238 o successivo. Vedere [Authenticate archive downloads](/docs/it/plugins/host-marketplace#authenticate-archive-downloads) |408| `headersHelper` | `url` | Comando che stampa intestazioni i cui valori sono troppo brevi per essere elencati in `headers`. Richiede Claude Code v2.1.238 o successivo. Vedere [Authenticate archive downloads](/docs/it/plugins/host-marketplace#authenticate-archive-downloads) |


469 469 

470Un messaggio con prefisso di un indice di voce e `plugin.json →`, come `plugins[2] plugin.json →`, riguarda i file propri di quel plugin. [`claude plugin validate` segnala errori](/docs/it/plugins/troubleshooting#claude-plugin-validate-reports-errors) elenca quei messaggi con le loro correzioni.470Un messaggio con prefisso di un indice di voce e `plugin.json →`, come `plugins[2] plugin.json →`, riguarda i file propri di quel plugin. [`claude plugin validate` segnala errori](/docs/it/plugins/troubleshooting#claude-plugin-validate-reports-errors) elenca quei messaggi con le loro correzioni.

471 471 

472Gli avvisi che menzionano i nomi dei flag di Claude Desktop segnalano i nomi che Claude Code accetta ma Claude Desktop rifiuta, perché le regole dei nomi di Claude Desktop sono più rigorose.472Gli avvisi che menzionano i nomi dei flag di Claude Desktop segnalano i nomi che Claude Desktop rifiuta.

473 473 

474La tabella mappa i messaggi a livello di marketplace al campo di cui ciascuno parla.474La tabella mappa i messaggi a livello di marketplace al campo di cui ciascuno parla.

475 475 


484| `Author name cannot be empty` | Error | `owner.name` |484| `Author name cannot be empty` | Error | `owner.name` |

485| `Plugin name cannot contain spaces. Use kebab-case (e.g., "my-plugin")` | Error | `plugins[i].name` |485| `Plugin name cannot contain spaces. Use kebab-case (e.g., "my-plugin")` | Error | `plugins[i].name` |

486| `Plugin name cannot contain control or bidirectional-formatting characters` | Error | `plugins[i].name` |486| `Plugin name cannot contain control or bidirectional-formatting characters` | Error | `plugins[i].name` |

487| `Claude Code cannot install plugins from marketplace "x". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change the marketplace's "name".` | Error | `name` |

488| `Claude Code cannot install plugin "x". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change this entry's "name".` | Error | `plugins[i].name` |

487| `Duplicate plugin name "x" found in marketplace` | Error | Due voci condividono un `name` |489| `Duplicate plugin name "x" found in marketplace` | Error | Due voci condividono un `name` |

488| `plugins.i.source: Invalid input` | Error | La `source` della voce non corrisponde a nessun tipo. Vedere [Invalid input on a source](#invalid-input-on-a-source) |490| `plugins.i.source: Invalid input` | Error | La `source` della voce non corrisponde a nessun tipo. Vedere [Invalid input on a source](#invalid-input-on-a-source) |

489| `plugins[i].source: Path contains "..": <path>` | Error | Una `source` relativa che sfugge dalla radice del marketplace |491| `plugins[i].source: Path contains "..": <path>` | Error | Una `source` relativa che sfugge dalla radice del marketplace |

Details

145 `Marketplace "<name>" not found`145 `Marketplace "<name>" not found`

146</h3>146</h3>

147 147 

148È stato eseguito `/plugin install <plugin>@<name>` in una sessione, spesso da una riga di installazione che qualcuno ha inviato, e Claude Code ha segnalato che non ha alcun marketplace con quel nome.148È stato eseguito `/plugin install` in una sessione e Claude Code ha segnalato che non ha alcun marketplace con quel nome. Due forme del comando raggiungono questo messaggio:

149 

150* **`/plugin install <plugin>@<name>`**: la riga di installazione, spesso una che qualcuno ha inviato, nomina un marketplace che non è stato aggiunto. Il resto di questa voce copre come trovarlo e aggiungerlo.

151* **`/plugin install <source>` con un percorso, URL o `owner/repo`**: questa forma segnala il messaggio invece di installare, anche per una fonte che è già stata aggiunta. Per installare da una fonte in un comando, vedere [Add a marketplace and install in one command](/docs/it/plugins/install#add-a-marketplace-and-install-in-one-command).

149 152 

150Se il nome inizia con `claudeai-`, il marketplace è ospitato su claude.ai e lo si aggiunge per nome dalla shell con `claude plugin marketplace add --claudeai <name>`. Vedere [Add a marketplace from claude.ai](/docs/it/plugins/install#add-from-claude-ai).153Se il nome inizia con `claudeai-`, il marketplace è ospitato su claude.ai e lo si aggiunge per nome dalla shell con `claude plugin marketplace add --claudeai <name>`. Vedere [Add a marketplace from claude.ai](/docs/it/plugins/install#add-from-claude-ai).

151 154 


646 649 

647Quindi eseguire `/reload-plugins` nella sessione. La voce della scheda **Errors** scompare e il plugin è di nuovo sotto **Installed**.650Quindi eseguire `/reload-plugins` nella sessione. La voce della scheda **Errors** scompare e il plugin è di nuovo sotto **Installed**.

648 651 

652<h3 id="installed-plugins-json-holds-a-record-this-version-cannot-read">

653 `installed_plugins.json holds a record under "<id>" that this version of Claude Code cannot read`

654</h3>

655 

656Il messaggio appare in queste forme:

657 

658* **`claude plugin list`**: lo stampa come `Note:`

659* **`claude plugin install`, `uninstall`, e `update`**: rifiutano con `Plugin "<name>" was not installed:`, `Plugin "<name>" was not uninstalled:`, o `Plugin "<name>" was not updated:`, seguito dallo stesso testo

660* **`--json` su uno di questi tre comandi**: la riga del risultato contiene lo stesso `message` e `failureCode: "install_records_unreadable"`

661* **Diversi record di questo tipo**: il messaggio legge `holds records under`

662* **L'intero file dichiara un formato che questa versione non conosce**: il messaggio legge `installed_plugins.json is in a format (version <N>) that this version of Claude Code does not know` al suo posto

663 

664Il record denominato in `installed_plugins.json` è JSON valido sotto un id plugin valido, ma i suoi campi non si analizzano per questa versione. Molto probabilmente un'altra versione di Claude Code l'ha scritto, forse una più recente.

665 

666Mentre il record è lì, questa versione non riscrive il file, quindi il record non viene perso.

667 

668Prendere le opzioni del messaggio in ordine:

669 

6701. Aggiornare Claude Code con `claude update`.

6712. Se non è possibile aggiornare, disinstallare il plugin denominato con la versione di Claude Code che ha scritto il record.

6723. Se nessuno dei due aiuta, eliminare il record da `installed_plugins.json` manualmente, quindi riavviare Claude Code o eseguire `/reload-plugins`.

673 

674<h3 id="installed-plugins-json-could-not-be-read-and-was-rebuilt">

675 `installed_plugins.json could not be read and was rebuilt`

676</h3>

677 

678`claude plugin list` stampa questa nota, con il percorso di un file conservato denominato `installed_plugins.unreadable.<date>.<hash>.kept`, finché quel file si trova accanto a `installed_plugins.json`.

679 

680Un `installed_plugins.json` che non è JSON valido, o non è un elenco di plugin, non può dire cosa è stato installato.

681 

682Aprire il file `.kept` per vedere cosa il vecchio file ha registrato e reinstallare i plugin mancanti. Claude Code non legge mai il file di nuovo e il file invecchia secondo la pianificazione [`cleanupPeriodDays`](/docs/it/settings-reference#cleanupperioddays).

683 

684<h3 id="install-records-under-names-that-no-version-can-use">

685 `install records under names that no version of Claude Code can use were removed from installed_plugins.json`

686</h3>

687 

688`claude plugin list` stampa questa nota, con il percorso di una copia denominata `installed_plugins.set-aside.<date>.<hash>.json`, finché quella copia si trova accanto a `installed_plugins.json`. La nota termina con `Nothing needs doing about these copies.`

689 

690Un record in `installed_plugins.json` si trovava sotto una chiave che non è un id plugin valido, quindi nessuna versione di Claude Code può usarlo. Il resto del file si carica normalmente.

691 

692Claude Code copia i record inutilizzabili nel file `.set-aside` e li elimina dall'elenco. Claude Code non legge mai le copie di nuovo e le copie invecchiano secondo la pianificazione [`cleanupPeriodDays`](/docs/it/settings-reference#cleanupperioddays).

693 

649<h3 id="a-plugin-you-disabled-still-loads">694<h3 id="a-plugin-you-disabled-still-loads">

650 `Disabled in ~/.claude/settings.json but still loads`695 `Disabled in ~/.claude/settings.json but still loads`

651</h3>696</h3>


981| `Path contains "..": <path>` sotto `plugins[N].source` | Error | Utilizzare percorsi relativi alla radice del marketplace senza segmenti `..`. |1026| `Path contains "..": <path>` sotto `plugins[N].source` | Error | Utilizzare percorsi relativi alla radice del marketplace senza segmenti `..`. |

982| `Marketplace name cannot contain control or bidirectional-formatting characters` | Error | Rimuovere il carattere dal nome, come un escape o una nuova riga. |1027| `Marketplace name cannot contain control or bidirectional-formatting characters` | Error | Rimuovere il carattere dal nome, come un escape o una nuova riga. |

983| `Plugin name cannot contain control or bidirectional-formatting characters` | Error | Rimuovere il carattere dal `name` del plugin. |1028| `Plugin name cannot contain control or bidirectional-formatting characters` | Error | Rimuovere il carattere dal `name` del plugin. |

1029| `Claude Code cannot install plugins from marketplace "<name>". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change the marketplace's "name".` | Error | Rinominare il marketplace per adattarsi alla regola che il messaggio indica. |

1030| `Claude Code cannot install plugin "<name>". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change this entry's "name".` | Error | Rinominare la voce per adattarsi alla regola che il messaggio indica. |

984| `Marketplace has no plugins defined` | Warning | Aggiungere almeno una voce a `plugins`. |1031| `Marketplace has no plugins defined` | Warning | Aggiungere almeno una voce a `plugins`. |

985| `No marketplace description provided` | Warning | Aggiungere una `description` a livello superiore. |1032| `No marketplace description provided` | Warning | Aggiungere una `description` a livello superiore. |

986| `Plugin name "<name>" is not kebab-case` sotto `plugins[N] plugin.json → name` | Warning | Rinominare in lettere minuscole, cifre e trattini. Claude Code accetta altre forme, ma la sincronizzazione del marketplace di claude.ai le rifiuta. |1033| `Plugin name "<name>" is not kebab-case` sotto `plugins[N] plugin.json → name` | Warning | Rinominare in lettere minuscole, cifre e trattini; la sincronizzazione del marketplace di claude.ai richiede quella forma. |

987| `Entry declares version "<a>" but <path>/plugin.json says "<b>"` | Warning | Aggiornare la voce per corrispondere a `plugin.json`, che è autorevole al momento dell'installazione. |1034| `Entry declares version "<a>" but <path>/plugin.json says "<b>"` | Warning | Aggiornare la voce per corrispondere a `plugin.json`, che è autorevole al momento dell'installazione. |

988| `Marketplace name "<name>" is reserved in Claude Desktop` | Warning | Rinominare il marketplace. La sincronizzazione del marketplace gestito di Claude Desktop rifiuta `org`, `org-provisioned` e `unknown` in qualsiasi maiuscola. |1035| `Marketplace name "<name>" is reserved in Claude Desktop` | Warning | Rinominare il marketplace. La sincronizzazione del marketplace gestito di Claude Desktop rifiuta `org`, `org-provisioned` e `unknown` in qualsiasi maiuscola. |

989| `Marketplace name "<name>" is not accepted by Claude Desktop` o `Plugin name "<name>" is not accepted by Claude Desktop` | Warning | Rinominare a un massimo di 128 caratteri di lettere, cifre, `.`, `_` e `-`, iniziando con una lettera o una cifra. |1036| `Marketplace name "<name>" is not accepted by Claude Desktop` o `Plugin name "<name>" is not accepted by Claude Desktop` | Warning | Rinominare a un massimo di 128 caratteri di lettere, cifre, `.`, `_` e `-`, iniziando con una lettera o una cifra. |

Details

412| - | - |412| - | - |

413| `DISABLE_PROMPT_CACHING` | Disabilita per tutti i modelli |413| `DISABLE_PROMPT_CACHING` | Disabilita per tutti i modelli |

414| `DISABLE_PROMPT_CACHING_HAIKU` | Disabilita per il modello Haiku predefinito |414| `DISABLE_PROMPT_CACHING_HAIKU` | Disabilita per il modello Haiku predefinito |

415| `DISABLE_PROMPT_CACHING_SONNET` | Disabilita per Sonnet solo |415| `DISABLE_PROMPT_CACHING_SONNET` | Disabilita per il modello Sonnet predefinito |

416| `DISABLE_PROMPT_CACHING_OPUS` | Disabilita per Opus solo |416| `DISABLE_PROMPT_CACHING_OPUS` | Disabilita per il modello Opus predefinito |

417| `DISABLE_PROMPT_CACHING_FABLE` | Disabilita per Fable solo |417| `DISABLE_PROMPT_CACHING_FABLE` | Disabilita per Fable solo |

418 418 

419`DISABLE_PROMPT_CACHING_HAIKU` si applica al modello Haiku predefinito, il modello a cui l'alias `haiku` si risolve. Disabilita il caching ovunque quel modello venga eseguito, inclusa la conversazione principale quando è il tuo modello principale. Coprire la conversazione principale richiede Claude Code v2.1.283 o successivo.419`DISABLE_PROMPT_CACHING_HAIKU` si applica al modello Haiku predefinito, il modello a cui l'alias `haiku` si risolve. Disabilita il caching ovunque quel modello venga eseguito, inclusa la conversazione principale quando è il tuo modello principale. Coprire la conversazione principale richiede Claude Code v2.1.283 o successivo.


422 422 

423Una versione diversa di Haiku che fissi come tuo modello principale mantiene il caching; imposta `DISABLE_PROMPT_CACHING` per disabilitare il caching per essa.423Una versione diversa di Haiku che fissi come tuo modello principale mantiene il caching; imposta `DISABLE_PROMPT_CACHING` per disabilitare il caching per essa.

424 424 

425`DISABLE_PROMPT_CACHING_SONNET` e `DISABLE_PROMPT_CACHING_OPUS` si applicano ciascuno al modello a cui l'alias `sonnet` o `opus` si risolve. Se imposti un altro ID modello Sonnet o Opus come tuo modello principale, quel modello mantiene il caching. Ad esempio, una sessione su `claude-sonnet-5` mantiene il caching mentre `sonnet` si risolve a `claude-sonnet-5-5`. Per disabilitare il caching per quel modello, imposta `DISABLE_PROMPT_CACHING`.

426 

425Per impostare la politica di caching in un'organizzazione, metti una di queste o le [TTL variables](#cache-lifetime) nel blocco `env` di [managed settings](/docs/it/managed-settings). Per l'uso normale, lascia il caching abilitato.427Per impostare la politica di caching in un'organizzazione, metti una di queste o le [TTL variables](#cache-lifetime) nel blocco `env` di [managed settings](/docs/it/managed-settings). Per l'uso normale, lascia il caching abilitato.

426 428 

427<h2 id="related-resources">429<h2 id="related-resources">

Details

200 200 

201Lo stesso interruttore appare al di fuori della CLI:201Lo stesso interruttore appare al di fuori della CLI:

202 202 

203* **App Desktop**: **Settings > Claude Code > Enable remote control by default**.203* **App Desktop**: **Settings > Claude Code > Connect new sessions to Remote Control**.

204* **Estensione VS Code**: **Enable Remote Control for all sessions** nella sezione Settings del [menu dei comandi](/docs/it/vs-code#use-the-prompt-box).204* **Estensione VS Code**: **Enable Remote Control for all sessions** nella sezione Settings del [menu dei comandi](/docs/it/vs-code#use-the-prompt-box).

205 205 

206Per attivare la connessione automatica da un file di impostazioni, imposta [`remoteControlAtStartup`](/docs/it/settings-reference#remotecontrolatstartup) su `true` nel tuo file `~/.claude/settings.json` utente o nelle [impostazioni gestite](/docs/it/managed-settings). Nelle impostazioni di progetto o locali (`.claude/settings.json`, `.claude/settings.local.json`), Claude Code onora un `false` e disattiva la connessione automatica per quel repository, ma ignora un `true`, quindi un file archiviato non può attivare Remote Control per tutti coloro che aprono il repository.206Per attivare la connessione automatica da un file di impostazioni, imposta [`remoteControlAtStartup`](/docs/it/settings-reference#remotecontrolatstartup) su `true` nel tuo file `~/.claude/settings.json` utente o nelle [impostazioni gestite](/docs/it/managed-settings). Nelle impostazioni di progetto o locali (`.claude/settings.json`, `.claude/settings.local.json`), Claude Code onora un `false` e disattiva la connessione automatica per quel repository, ma ignora un `true`, quindi un file archiviato non può attivare Remote Control per tutti coloro che aprono il repository.

routines.md +16 −6

Details

66 66 

67In ogni altro caso, inclusa la pubblicazione di un nuovo artifact, Claude chiede prima. Quando il lavoro di una routine è mantenere una pagina aggiornata, dagli un artifact che hai già pubblicato.67In ogni altro caso, inclusa la pubblicazione di un nuovo artifact, Claude chiede prima. Quando il lavoro di una routine è mantenere una pagina aggiornata, dagli un artifact che hai già pubblicato.

68 68 

69Le routine appartengono al tuo account claude.ai individuale. Non sono condivise con i compagni di squadra e contano rispetto al limite di esecuzione giornaliero del tuo account. Tutto ciò che una routine fa attraverso la tua identità GitHub connessa o i connector appare come te: i commit e le pull request portano il tuo utente GitHub e i messaggi Slack, i ticket Linear o altre azioni del connector utilizzano i tuoi account collegati per quei servizi.69Le routine appartengono al tuo account claude.ai individuale. Non sono condivise con i compagni di squadra e i loro run contano rispetto ai [limiti e all'utilizzo](#usage-and-limits) del tuo account. Tutto ciò che una routine fa attraverso la tua identità GitHub connessa o i connector appare come te: i commit e le pull request portano il tuo utente GitHub e i messaggi Slack, i ticket Linear o altre azioni del connector utilizzano i tuoi account collegati per quei servizi.

70 70 

71<h3 id="create-from-the-web">71<h3 id="create-from-the-web">

72 Creare dal web72 Creare dal web


174 174 

175La stessa conversione da locale a UTC come per le pianificazioni ricorrenti si applica ai timestamp una tantum.175La stessa conversione da locale a UTC come per le pianificazioni ricorrenti si applica ai timestamp una tantum.

176 176 

177Le esecuzioni una tantum non contano rispetto al limite di esecuzione della routine giornaliera. Vedi [Usage and limits](#usage-and-limits) per i dettagli.177Le esecuzioni una tantum contano rispetto allo stesso limite orario delle altre esecuzioni pianificate. Vedi [Usage and limits](#usage-and-limits) per i dettagli.

178 178 

179<h3 id="add-an-api-trigger">179<h3 id="add-an-api-trigger">

180 Aggiungi un trigger API180 Aggiungi un trigger API


256Un trigger GitHub avvia una nuova sessione automaticamente quando si verifica un evento corrispondente su un repository connesso. Claude Code non riutilizza le sessioni tra gli eventi, quindi due aggiornamenti PR producono due sessioni indipendenti.256Un trigger GitHub avvia una nuova sessione automaticamente quando si verifica un evento corrispondente su un repository connesso. Claude Code non riutilizza le sessioni tra gli eventi, quindi due aggiornamenti PR producono due sessioni indipendenti.

257 257 

258<Note>258<Note>

259 Durante l'anteprima di ricerca, gli eventi webhook di GitHub sono soggetti a limiti orari per routine e per account. Gli eventi oltre il limite vengono eliminati fino al ripristino della finestra. Vedi i tuoi limiti attuali su [claude.ai/code/routines](https://claude.ai/code/routines).259 Gli eventi webhook di GitHub sono soggetti a limiti orari per routine e per account. Gli eventi oltre il limite vengono eliminati fino al ripristino della finestra.

260</Note>260</Note>

261 261 

262L'app Claude GitHub deve essere installata sul repository a cui desideri sottoscriverti, indipendentemente dalla superficie da cui configuri il trigger.262L'app Claude GitHub deve essere installata sul repository a cui desideri sottoscriverti, indipendentemente dalla superficie da cui configuri il trigger.


421 Utilizzo e limiti421 Utilizzo e limiti

422</h2>422</h2>

423 423 

424Le routine riducono l'utilizzo dell'abbonamento allo stesso modo delle sessioni interattive. Oltre ai limiti di abbonamento standard, le routine hanno un limite giornaliero su quante esecuzioni possono iniziare per account. Vedi il tuo consumo attuale e le esecuzioni di routine giornaliere rimanenti su [claude.ai/code/routines](https://claude.ai/code/routines) o [claude.ai/settings/usage](https://claude.ai/settings/usage).424Le routine riducono l'utilizzo dell'abbonamento allo stesso modo delle sessioni interattive. Vedi il tuo consumo attuale su [claude.ai/settings/usage](https://claude.ai/settings/usage).

425 425 

426Quando una routine raggiunge il limite giornaliero o il limite di utilizzo dell'abbonamento, le organizzazioni con crediti di utilizzo attivati possono continuare a eseguire routine su eccedenza misurata. Senza crediti di utilizzo, le esecuzioni aggiuntive vengono rifiutate fino al ripristino della finestra. Attiva i crediti di utilizzo su [claude.ai/settings/usage](https://claude.ai/settings/usage). Nei piani Team ed Enterprise, un amministratore li attiva per l'organizzazione su [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage).426Separatamente dall'utilizzo dell'abbonamento, ogni modo di avviare un'esecuzione ha un limite orario:

427 427 

428Le esecuzioni una tantum non contano rispetto al limite giornaliero di routine. Riducono l'utilizzo regolare dell'abbonamento come qualsiasi altra sessione.428| Azione | Limite | Conteggiato per | Oltre il limite |

429| :- | :- | :- | :- |

430| Esecuzioni pianificate, incluse esecuzioni una tantum | 100 all'ora | Il tuo account | L'esecuzione attende fino al ripristino del limite |

431| **Run now**, API fires, e impostazione di una routine una tantum per l'esecuzione di nuovo | 30 all'ora | Ogni routine, un conteggio condiviso da tutti e tre | L'azione non riesce fino al ripristino del limite |

432| **Run now** e impostazione di una routine una tantum per l'esecuzione di nuovo | 100 all'ora | Il tuo account | Uguale |

433| API fires | 100 all'ora | Il tuo account, conteggiato separatamente da **Run now** | Uguale |

434| GitHub events | Vedi [Add a GitHub trigger](#add-a-github-trigger) | | |

435 

436Nessuno di questi limiti orari ha eccedenza.

437 

438Quando una routine raggiunge il limite di utilizzo dell'abbonamento, le organizzazioni con crediti di utilizzo attivati possono continuare a eseguire routine su eccedenza misurata. Senza crediti di utilizzo, le esecuzioni aggiuntive vengono rifiutate fino al ripristino della finestra di utilizzo. Attiva i crediti di utilizzo su [claude.ai/settings/usage](https://claude.ai/settings/usage). Nei piani Team ed Enterprise, un amministratore li attiva per l'organizzazione su [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage).

429 439 

430Mentre l'abbonamento è in pausa, le routine vengono messe in sospeso e non vengono eseguite. Una volta che l'abbonamento è di nuovo attivo, riattivale.440Mentre l'abbonamento è in pausa, le routine vengono messe in sospeso e non vengono eseguite. Una volta che l'abbonamento è di nuovo attivo, riattivale.

431 441 

Details

138* Alla radice del progetto, il runtime nega `.git/hooks`, nega `.git/config` a meno che tu non imposti `filesystem.allowGitConfig: true`, e nega `.mcp.json`, `.claude/commands`, `.claude/agents`, e i file di avvio della shell.138* Alla radice del progetto, il runtime nega `.git/hooks`, nega `.git/config` a meno che tu non imposti `filesystem.allowGitConfig: true`, e nega `.mcp.json`, `.claude/commands`, `.claude/agents`, e i file di avvio della shell.

139* Su macOS, questi dinieghi vengono controllati quando avviene una scrittura, quindi coprono anche i file annidati e i repository creati durante la sessione.139* Su macOS, questi dinieghi vengono controllati quando avviene una scrittura, quindi coprono anche i file annidati e i repository creati durante la sessione.

140* Su Linux e WSL2, il runtime costruisce l'elenco di diniego una volta all'avvio. Copre in modo affidabile la radice del progetto, esegue una scansione superficiale nel migliore dei casi per le copie annidate che esistono in quel momento, e non copre nulla che la sessione crea in seguito, come `git init`, `git clone`, o scaffolding. La sezione `mandatoryDenySearchDepth` del README descrive la semantica esatta della scansione.140* Su Linux e WSL2, il runtime costruisce l'elenco di diniego una volta all'avvio. Copre in modo affidabile la radice del progetto, esegue una scansione superficiale nel migliore dei casi per le copie annidate che esistono in quel momento, e non copre nulla che la sessione crea in seguito, come `git init`, `git clone`, o scaffolding. La sezione `mandatoryDenySearchDepth` del README descrive la semantica esatta della scansione.

141* Senza un `~/.srt-settings.json` valido, il runtime si avvia comunque, blocca l'accesso di rete, e limita le scritture ai percorsi runtime integrati come `/tmp/claude`, `~/.npm/_logs`, e `~/.claude/debug`. Non prendere un avvio pulito come prova che le tue impostazioni sono state caricate.141* Se `~/.srt-settings.json` non esiste e non passi `--settings`, il runtime si avvia comunque. Blocca l'accesso di rete e limita le scritture ai percorsi runtime integrati come `/tmp/claude`, `~/.npm/_logs`, e `~/.claude/debug`. Non prendere un avvio pulito come prova che le tue impostazioni sono state caricate.

142* Quando passi `--settings`, il runtime rifiuta di avviarsi se il file non riesce a caricarsi.142* Se il file di impostazioni esiste ma è vuoto, illeggibile o non valido, il runtime rifiuta di avviarsi, sia che si tratti di `~/.srt-settings.json` o di un file che passi con `--settings`. Rifiuta anche di avviarsi se il file `--settings` non esiste.

143 143 

144I tuoi permessi di scrittura includono ancora altri percorsi da cui Claude Code carica la configurazione, quindi nega quelli con `denyWrite`. Una sessione in sandbox che può scriverli può persistere hook, regole di permesso, o server MCP che vengono eseguiti senza sandbox la prossima volta che avvii Claude Code.144I tuoi permessi di scrittura includono ancora altri percorsi da cui Claude Code carica la configurazione, quindi nega quelli con `denyWrite`. Una sessione in sandbox che può scriverli può persistere hook, regole di permesso, o server MCP che vengono eseguiti senza sandbox la prossima volta che avvii Claude Code.

145 145 

Details

48* **Zero Data Retention**: non disponibile per organizzazioni con [Zero Data Retention](/docs/it/zero-data-retention) abilitato.48* **Zero Data Retention**: non disponibile per organizzazioni con [Zero Data Retention](/docs/it/zero-data-retention) abilitato.

49* **Inferenza del modello**: le sessioni utilizzano l'API Anthropic, e l'inferenza non può essere instradata attraverso [Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry](/docs/it/third-party-integrations), o un [gateway LLM](/docs/it/llm-gateway).49* **Inferenza del modello**: le sessioni utilizzano l'API Anthropic, e l'inferenza non può essere instradata attraverso [Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry](/docs/it/third-party-integrations), o un [gateway LLM](/docs/it/llm-gateway).

50* **Superfici**: le sessioni avviate da [claude.ai/code](https://claude.ai/code), dalle app mobile e desktop, da [routine pianificate](/docs/it/routines), e dal terminale, con [`claude --cloud`](/docs/it/claude-code-on-the-web#from-terminal-to-cloud) o un [dispatch `--environment`](/docs/it/self-hosted-environments-testing#run-the-test-loop), possono essere eseguite in ambienti self-hosted. Le sessioni [Claude Tag](https://claude.com/docs/claude-tag/overview) possono essere eseguite in esse, ma Claude non può ancora utilizzare [Access bundles](https://claude.com/docs/claude-tag/concepts/glossary#access-bundle) in quelle sessioni. Le sessioni [Claude Security](/docs/it/claude-security) e [Code Review](/docs/it/code-review) non vengono ancora instradate ad esse. Il supporto per quelle due superfici segue separatamente.50* **Superfici**: le sessioni avviate da [claude.ai/code](https://claude.ai/code), dalle app mobile e desktop, da [routine pianificate](/docs/it/routines), e dal terminale, con [`claude --cloud`](/docs/it/claude-code-on-the-web#from-terminal-to-cloud) o un [dispatch `--environment`](/docs/it/self-hosted-environments-testing#run-the-test-loop), possono essere eseguite in ambienti self-hosted. Le sessioni [Claude Tag](https://claude.com/docs/claude-tag/overview) possono essere eseguite in esse, ma Claude non può ancora utilizzare [Access bundles](https://claude.com/docs/claude-tag/concepts/glossary#access-bundle) in quelle sessioni. Le sessioni [Claude Security](/docs/it/claude-security) e [Code Review](/docs/it/code-review) non vengono ancora instradate ad esse. Il supporto per quelle due superfici segue separatamente.

51* **Repository**: le sessioni estraggono repository da GitHub; vedi [Opzioni di autenticazione GitHub](/docs/it/claude-code-on-the-web#github-authentication-options).51* **Repository**: le sessioni estraggono repository da GitHub; vedi [Opzioni di autenticazione GitHub](/docs/it/claude-code-on-the-web#github-authentication-options). Per un host GitHub Enterprise Server, vedi i suoi [requisiti di rete](/docs/it/github-enterprise-server#network-requirements).

52* **Fatturazione**: le sessioni in un ambiente self-hosted consumano l'utilizzo di Claude Code della tua organizzazione allo stesso modo delle sessioni negli ambienti ospitati da Anthropic.52* **Fatturazione**: le sessioni in un ambiente self-hosted consumano l'utilizzo di Claude Code della tua organizzazione allo stesso modo delle sessioni negli ambienti ospitati da Anthropic.

53 53 

54<h2 id="why-self-host">54<h2 id="why-self-host">

Details

170 170 

171Se il tuo host git rifiuta la credenziale, o non ne hai configurata una, il runner riprova alcune volte e poi fallisce la preparazione del repository quando il repository è quello in cui la sessione spinge i risultati. Per un repository dal quale la sessione legge solo, [Troubleshooting](#troubleshooting) copre quando il runner lo salta invece. Il runner non passa queste impostazioni nell'ambiente della sessione.171Se il tuo host git rifiuta la credenziale, o non ne hai configurata una, il runner riprova alcune volte e poi fallisce la preparazione del repository quando il repository è quello in cui la sessione spinge i risultati. Per un repository dal quale la sessione legge solo, [Troubleshooting](#troubleshooting) copre quando il runner lo salta invece. Il runner non passa queste impostazioni nell'ambiente della sessione.

172 172 

173Mantieni qualsiasi programma che nomini in `GIT_SSH_COMMAND` o `GIT_ASKPASS` dove le sessioni non possono scrivere, come la [checklist hardening](#harden-your-deployment) chiede per la directory dei hook e lo script wrapper. Lo stesso vale per qualsiasi chiave o file sulla riga di comando di quel programma. Il git del runner stesso esegue quel programma quando clona o recupera.

174 

173Se le directory di checkout sono di proprietà di un uid diverso dal processo runner, git rifiuta di operare su di esse; aggiungi `safe.directory`:175Se le directory di checkout sono di proprietà di un uid diverso dal processo runner, git rifiuta di operare su di esse; aggiungi `safe.directory`:

174 176 

175```dockerfile theme={null}177```dockerfile theme={null}


184 186 

185Il proxy richiede `--capacity 1` perché l'URL del proxy è per sessione, e git 2.32 o più recente perché git più vecchio ignora il meccanismo di configurazione che il proxy usa per isolare le sessioni l'una dall'altra. Il runner rifiuta di avviarsi se uno dei due requisiti non è soddisfatto. Poiché il proxy recupera dal lato di Anthropic, il tuo host git deve essere raggiungibile dall'infrastruttura di Anthropic, lo stesso requisito che hanno le sessioni ospitate da Anthropic; per un host git che è solo instradabile all'interno della tua rete, usa un [`checkout` lifecycle hook](/docs/it/self-hosted-environments-configuration#checkout) invece. Ogni processo runner gestisce una sessione alla volta, quindi esegui più repliche per il parallelismo. Quando il proxy è abilitato, `--git-host-rewrite` e `--git-ssh-rewrite` non hanno effetto: l'URL del proxy punta a `api.anthropic.com`, non al tuo host git.187Il proxy richiede `--capacity 1` perché l'URL del proxy è per sessione, e git 2.32 o più recente perché git più vecchio ignora il meccanismo di configurazione che il proxy usa per isolare le sessioni l'una dall'altra. Il runner rifiuta di avviarsi se uno dei due requisiti non è soddisfatto. Poiché il proxy recupera dal lato di Anthropic, il tuo host git deve essere raggiungibile dall'infrastruttura di Anthropic, lo stesso requisito che hanno le sessioni ospitate da Anthropic; per un host git che è solo instradabile all'interno della tua rete, usa un [`checkout` lifecycle hook](/docs/it/self-hosted-environments-configuration#checkout) invece. Ogni processo runner gestisce una sessione alla volta, quindi esegui più repliche per il parallelismo. Quando il proxy è abilitato, `--git-host-rewrite` e `--git-ssh-rewrite` non hanno effetto: l'URL del proxy punta a `api.anthropic.com`, non al tuo host git.

186 188 

189<Warning>

190 Le ricette [Kubernetes](#kubernetes) e [Docker Compose](#docker-compose) su questa pagina usano `--capacity 4`. Se aggiungi `--use-anthropic-git-proxy` o `CLAUDE_RUNNER_USE_GIT_PROXY=1` a una di esse senza cambiare la capacità a `1`, il runner esce all'avvio ogni volta che il tuo orchestrator lo riavvia. Imposta `--capacity 1` ed esegui più repliche per il parallelismo. [Quando il runner esce](#when-the-runner-exits) mostra la riga che il runner stampa.

191</Warning>

192 

187Il runner segnala anche l'opt-in ad Anthropic quando si registra, stampando `Registering as opted in to Anthropic-managed git (--use-anthropic-git-proxy)` all'avvio. La segnalazione dell'opt-in richiede Claude Code v2.1.267 o successivo, e le versioni precedenti accettano il flag senza segnalarlo o stampare quella riga. Ogni sessione su un runner con opt-in usa quindi o git gestito da Anthropic o l'URL del proxy per sessione. Quando una sessione usa l'URL del proxy per sessione, il runner registra una riga `[runner:warn]` dicendo così.193Il runner segnala anche l'opt-in ad Anthropic quando si registra, stampando `Registering as opted in to Anthropic-managed git (--use-anthropic-git-proxy)` all'avvio. La segnalazione dell'opt-in richiede Claude Code v2.1.267 o successivo, e le versioni precedenti accettano il flag senza segnalarlo o stampare quella riga. Ogni sessione su un runner con opt-in usa quindi o git gestito da Anthropic o l'URL del proxy per sessione. Quando una sessione usa l'URL del proxy per sessione, il runner registra una riga `[runner:warn]` dicendo così.

188 194 

195<h4 id="trust-a-private-certificate-authority-with-anthropic-managed-git">

196 Affida un'autorità di certificazione privata a git gestito da Anthropic

197</h4>

198 

199Questa sezione si applica se imposti `GIT_SSL_CAINFO` o `GIT_SSL_NO_VERIFY` nell'ambiente di un runner le cui sessioni usano git gestito da Anthropic. La gestione che descrive richiede che il runner esegua Claude Code v2.1.283 o successivo.

200 

201Quando git sul runner deve fidarsi di un'autorità di certificazione (CA) privata, come quella con cui un proxy che ispeziona TLS firma, gli approcci usuali funzionano come segue:

202 

203* **Archivio certificati di sistema**: installa la tua CA nell'archivio certificati di sistema dell'host runner, e git si fida di essa senza nessuna delle due variabili.

204* **`GIT_SSL_CAINFO`**: impostala a un file PEM dei tuoi CA, ad esempio `GIT_SSL_CAINFO=/etc/ssl/corp-ca.pem`.

205* **`GIT_SSL_NO_VERIFY`**: non aiuta dietro un proxy che firma di nuovo. Il clone del runner stesso attraverso git gestito da Anthropic controlla i certificati anche quando la variabile è impostata, quindi quel clone fallisce finché git non si fida della tua CA attraverso uno degli altri due approcci.

206 

207Per le connessioni git che portano il token di una sessione a git gestito da Anthropic, il runner applica le due variabili come segue. Un [`command` hook](/docs/it/self-hosted-environments-configuration#command) inizia con l'ambiente della sessione, quindi ottiene quello che git dentro la sessione ottiene:

208 

209* **`GIT_SSL_CAINFO`**: quello che git controlla git gestito da Anthropic dipende da dove git viene eseguito:

210 * **Clone e fetch del runner stesso**: vengono eseguiti senza la variabile e controllano git gestito da Anthropic rispetto a un file di certificato per sessione che il runner scrive. Quel file contiene il bundle CA di sistema dell'host runner più i certificati dal tuo file.

211 * **Git dentro la sessione**: ottiene la configurazione `http.sslCAInfo` che nomina il tuo file al posto della variabile, più voci `http.<url>.sslCAInfo` che controllano git gestito da Anthropic rispetto al file per sessione.

212 * **Hook `checkout` e `post-session`**: ereditano la variabile invariata.

213* **`GIT_SSL_NO_VERIFY`**: quali controlli di certificato rimangono spenti dipende da dove git viene eseguito:

214 * **Clone e fetch del runner stesso**: vengono eseguiti senza la variabile e controllano il certificato che gli viene presentato.

215 * **Git dentro la sessione**: ottiene la configurazione `http.sslVerify=false` al posto della variabile, quindi i controlli rimangono spenti per altri host. Ottiene anche voci `http.<url>.sslVerify=true` che mantengono i controlli accesi per git gestito da Anthropic.

216 * **Hook `checkout` e `post-session`**: quando la sessione ha un repository su git gestito da Anthropic, ottengono la configurazione `http.sslVerify=false` al posto della variabile. Ottengono anche voci `http.<url>.sslVerify=true` che mantengono i controlli accesi per git gestito da Anthropic.

217 

218Il file di certificato per sessione ha bisogno di un bundle CA di sistema a `/etc/ssl/certs/ca-certificates.crt` o `/etc/pki/tls/certs/ca-bundle.crt` sull'host runner. Ha anche bisogno di un file `GIT_SSL_CAINFO` che l'utente del runner può leggere, che contiene blocchi PEM `CERTIFICATE`, e che è al massimo 1 MiB. Quando il runner non può costruire il file per sessione, registra una riga `[runner:warn]` contenente `did not build the certificate file` e il motivo. Git quindi usa il tuo file come è per git gestito da Anthropic. Correggi quello che la riga nomina.

219 

220Per ogni sessione che usa git gestito da Anthropic, il runner registra anche una riga `[runner:warn]` che inizia con `governed git: GIT_SSL_CAINFO is set` o `governed git: GIT_SSL_NO_VERIFY is set`. La riga dice quello che il runner ha fatto con quella variabile per il suo git, per git dentro la sessione, e per i tuoi lifecycle hook. Termina con se hai bisogno di cambiare qualcosa.

221 

189<h3 id="rewrite-git-urls-for-private-networks">222<h3 id="rewrite-git-urls-for-private-networks">

190 Riscrivi gli URL git per le reti private223 Riscrivi gli URL git per le reti private

191</h3>224</h3>


203 236 

204Anthropic non pubblica un'immagine runner pre-costruita. Costruisci la tua intorno al binario `claude`, stratificando qualsiasi toolchain di cui i tuoi repository hanno bisogno: runtime di linguaggio, compilatori, gestori di pacchetti, e sidecar [MCP](/docs/it/mcp).237Anthropic non pubblica un'immagine runner pre-costruita. Costruisci la tua intorno al binario `claude`, stratificando qualsiasi toolchain di cui i tuoi repository hanno bisogno: runtime di linguaggio, compilatori, gestori di pacchetti, e sidecar [MCP](/docs/it/mcp).

205 238 

206Le ricette di seguito usano `--capacity 4`, in modo che un container serva fino a quattro sessioni concorrenti dallo stesso owner bloccato. Questo non fornisce l'isolamento del container per sessione nella [sezione hardening](#harden-your-deployment): prima di connettere un ambiente ai sistemi di produzione, esegui le ricette a `--capacity 1` con un container per sessione, o usa [runner on-demand](/docs/it/self-hosted-environments-configuration#on-demand-runners), che mantengono anche il segreto dell'ambiente lontano dagli host che eseguono sessioni.239Le ricette di seguito usano `--capacity 4`, in modo che un container serva fino a quattro sessioni concorrenti dallo stesso owner bloccato. Questo non fornisce l'isolamento del container per sessione nella [sezione hardening](#harden-your-deployment): prima di connettere un ambiente ai sistemi di produzione, esegui le ricette a `--capacity 1` con un container per sessione, o usa [runner on-demand](/docs/it/self-hosted-environments-configuration#on-demand-runners), che mantengono anche il segreto dell'ambiente lontano dagli host che eseguono sessioni. Se aggiungi il [proxy git Anthropic](#use-the-anthropic-git-proxy) a una di queste ricette, cambia anche `--capacity` a `1`.

207 240 

208Questo Dockerfile è un punto di partenza minimo:241Questo Dockerfile è un punto di partenza minimo:

209 242 


338 371 

339Il servizio Compose di seguito riavvia il runner ogni volta che esce, il che copre sia i crash che l'uscita normale dopo il drenaggio. Una politica di riavvio di Docker riavvia lo stesso container con il suo strato scrivibile intatto, quindi il runner torna su un filesystem riutilizzato piuttosto che su uno fresco che la [postura hardening](#harden-your-deployment) consiglia; usa questa ricetta per la valutazione, e per la produzione ricrea il container per esecuzione o usa un orchestrator che lo fa.372Il servizio Compose di seguito riavvia il runner ogni volta che esce, il che copre sia i crash che l'uscita normale dopo il drenaggio. Una politica di riavvio di Docker riavvia lo stesso container con il suo strato scrivibile intatto, quindi il runner torna su un filesystem riutilizzato piuttosto che su uno fresco che la [postura hardening](#harden-your-deployment) consiglia; usa questa ricetta per la valutazione, e per la produzione ricrea il container per esecuzione o usa un orchestrator che lo fa.

340 373 

374Docker attende più a lungo prima di ogni riavvio di un container che continua a uscire, fino a un limite massimo, quindi un runner che non riesce ad avviarsi non continua a riavviarsi in un ciclo stretto secondo questa ricetta. [Quando il runner esce](#when-the-runner-exits) descrive cosa controllare quando ciò accade.

375 

341```yaml theme={null}376```yaml theme={null}

342services:377services:

343 claude-runner:378 claude-runner:


451 486 

452Il processo Claude Code figlio di ogni sessione esegue il binario del runner stesso, e il runner disattiva l'auto-aggiornamento all'interno delle sessioni che genera, quindi ogni sessione esegue la versione che hai installato sull'host o costruito nell'immagine. Un aggiornamento a livello di host ha effetto la prossima volta che il runner si avvia.487Il processo Claude Code figlio di ogni sessione esegue il binario del runner stesso, e il runner disattiva l'auto-aggiornamento all'interno delle sessioni che genera, quindi ogni sessione esegue la versione che hai installato sull'host o costruito nell'immagine. Un aggiornamento a livello di host ha effetto la prossima volta che il runner si avvia.

453 488 

489Un modello che le vostre sessioni utilizzano può richiedere una versione più recente di Claude Code rispetto a quella che eseguono. Il server rifiuta quindi le richieste per quel modello con [Claude Code non supporta questo modello](/docs/it/errors#claude-code-does-not-support-this-model). Prima di fissare una versione, controllate [le versioni di Claude Code che i modelli richiedono](/docs/it/model-config#available-models) per ogni modello che le vostre sessioni utilizzano.

490 

454* **Per mantenere una flotta su una versione**: costruisci l'immagine con una versione fissata, o su un host nudo installa una versione specifica e [disabilita gli auto-aggiornamenti](/docs/it/setup#disable-auto-updates)491* **Per mantenere una flotta su una versione**: costruisci l'immagine con una versione fissata, o su un host nudo installa una versione specifica e [disabilita gli auto-aggiornamenti](/docs/it/setup#disable-auto-updates)

455* **Per aggiornare**: installa la versione più recente o ricostruisci l'immagine, quindi riavvia i runner492* **Per aggiornare**: installa la versione più recente o ricostruisci l'immagine, quindi riavvia i runner

456* **Plugin**: i marketplace dei plugin non si auto-aggiornano neanche; imposta `FORCE_AUTOUPDATE_PLUGINS=1` nell'ambiente del runner per lasciare che i plugin si auto-aggiornino mentre il binario rimane fissato493* **Plugin**: i marketplace dei plugin non si auto-aggiornano neanche; imposta `FORCE_AUTOUPDATE_PLUGINS=1` nell'ambiente del runner per lasciare che i plugin si auto-aggiornino mentre il binario rimane fissato


554 591 

555Il processo figlio di ogni sessione scrive un log di debug separato. In caso di errore il runner visualizza il log della coda insieme alla sessione in claude.ai/code. A meno che non sia stato avviato il runner con [`--remove-session-state`](/docs/it/self-hosted-environments-reference#runner-cli-flags), mantiene anche il log di una sessione fallita su disco e stampa il suo percorso nel log del runner.592Il processo figlio di ogni sessione scrive un log di debug separato. In caso di errore il runner visualizza il log della coda insieme alla sessione in claude.ai/code. A meno che non sia stato avviato il runner con [`--remove-session-state`](/docs/it/self-hosted-environments-reference#runner-cli-flags), mantiene anche il log di una sessione fallita su disco e stampa il suo percorso nel log del runner.

556 593 

594<h3 id="when-the-runner-exits">

595 When the runner exits

596</h3>

597 

598Non riavviare un [runner on-demand](/docs/it/self-hosted-environments-configuration#on-demand-runners), perché il suo ordine di lavoro è monouso. Un runner che esce subito dopo l'avvio necessita di una gestione diversa da uno che esce per qualsiasi altro motivo.

599 

600* **Un'uscita normale**: il runner ha terminato le sue sessioni e si è scaricato, ha raggiunto il suo tempo di ritiro, o gli è stato detto di fermarsi. Riavviarlo in modo che l'ambiente abbia di nuovo capacità. [Runner lifecycle](/docs/it/self-hosted-environments#runner-lifecycle) descrive queste uscite.

601* **Un avvio fallito**: il runner non può avviarsi con la configurazione o l'host che gli è stato assegnato, quindi esce secondi dopo l'avvio, e esce nello stesso modo ogni volta che lo riavvii. Riavviarlo più velocemente non aiuta. Qualcuno deve leggere il suo output e correggere la causa.

602 

603Configurare il supervisore per riavviare il runner ogni volta che esce, per attendere più a lungo tra i riavvii quando il runner continua a uscire subito dopo l'avvio, e per avvisare qualcuno quando ciò continua a accadere.

604 

605<h4 id="recognize-a-failed-start">

606 Recognize a failed start

607</h4>

608 

609Quando il runner non può avviarsi, stampa una riga che dice il motivo, e poi esce. Per la maggior parte delle cause la riga contiene `[runner:fatal]`. Per alcune cause la riga inizia con `error:` invece, incluso quando il runner non può analizzare i suoi flag, non può leggere il segreto dell'ambiente, o non può creare o scrivere nella directory di base. La riga successiva quindi punta a `--help`.

610 

611La maggior parte delle righe di log inizia con un timestamp e `[self-hosted-runner]`, che l'esempio seguente omette. Ad esempio, un runner avviato con il git proxy Anthropic e una capacità superiore a uno stampa una riga come questa:

612 

613```text theme={null}

614[runner:fatal] --use-anthropic-git-proxy requires --capacity 1 (the proxy URL is per-session and linked worktrees share origin). Omit --use-anthropic-git-proxy or set --capacity 1.

615```

616 

617Cercare la riga nell'output standard e nell'errore standard del runner, nei log del container della piattaforma, o nel file impostato con [`--log-file`](/docs/it/self-hosted-environments-reference#runner-cli-flags). Il runner stampa una riga `error:` prima di aprire il file di log, quindi cercarla nel terminale o nei log del container, come [Troubleshooting](#troubleshooting) nota.

618 

619Questi aiutano anche quando si legge un avvio fallito:

620 

621* **Nessuna riga affatto**: un runner che l'host uccide non stampa nessuno. Se l'output termina senza riga `[runner:fatal]` e senza riga `error:`, controllare se l'host o l'orchestrator ha fermato il processo, ad esempio per aver superato un limite di memoria.

622* **Il codice di uscita**: il runner non mette da parte un codice di uscita per gli errori che si ripetono ad ogni avvio. Esce con lo stesso codice per un errore di configurazione, come una combinazione non supportata di flag, e per un errore che può chiarirsi da solo, come l'API che rimane irraggiungibile attraverso i propri tentativi del runner. Basare la decisione di attendere più a lungo su quanto velocemente il runner è uscito, e leggere l'output del runner per imparare il motivo.

623* **Un ambiente che sembra sano**: alcuni passaggi di avvio vengono eseguiti dopo che il runner si registra con l'ambiente, come [`--configure-git`](#let-the-runner-configure-git) e la configurazione delle credenziali del git proxy Anthropic. Se uno di questi passaggi fallisce, l'ambiente può continuare a elencare quel runner per alcuni minuti dopo che il processo è uscito, e la pagina **Cloud environments** può leggere **Healthy** mentre nessun runner sta raccogliendo lavoro. Se le sessioni rimangono in coda in un ambiente che sembra sano, controllare se il supervisore sta riavviando il runner.

624 

625<h4 id="restart-with-a-wait-that-grows">

626 Restart with a wait that grows

627</h4>

628 

629Come ottenere un'attesa crescente dipende dal supervisore.

630 

631* **Kubernetes**: il [Deployment](#kubernetes) su questa pagina non necessita di alcun cambiamento. Dopo che un container esce, il kubelet per impostazione predefinita attende prima di riavviare il container, e l'attesa cresce ad ogni riavvio fino a un limite. L'attesa ricomincia una volta che il container è stato eseguito per un po' senza uscire.

632 

633 Il kubelet applica la stessa attesa dopo un'uscita normale quando il container è stato eseguito solo brevemente. Un runner che si scarica spesso può quindi mostrare anche lo stato `CrashLoopBackOff`, quindi leggere l'output prima di concludere che il runner non può avviarsi. Il comando seguente legge l'output dell'ultima esecuzione da un pod del Deployment:

634 

635 ```bash theme={null}

636 kubectl logs --previous -n claude-runners deploy/claude-runner

637 ```

638 

639 Quando l'ultima esecuzione è stata un avvio fallito, la riga `[runner:fatal]` o `error:` è tra le ultime righe dell'output. Per leggere l'ultima esecuzione di un altro pod, nominare quel pod al posto di `deploy/claude-runner`.

640* **Docker e Docker Compose**: la [ricetta Compose](#docker-compose) su questa pagina non necessita di alcun cambiamento. Con `restart: always`, Docker attende più a lungo prima di ogni riavvio di un container che continua a uscire, fino a un limite. Sostituire `<container>` con il nome del container nel comando seguente, che legge quante volte Docker ha riavviato il container:

641 

642 ```bash theme={null}

643 docker inspect --format '{{.RestartCount}}' <container>

644 ```

645 

646 Il comando stampa un numero. Un numero che continua a salire significa che Docker continua a riavviare il runner.

647* **Un'unità systemd**: per impostazione predefinita systemd attende lo stesso `RestartSec` prima di ogni riavvio e non lo allunga, quindi un'unità con `Restart=always` riavvia un runner che non può avviarsi a quell'intervallo ogni volta. Quando gli avvii arrivano abbastanza velocemente da raggiungere il limite della velocità di avvio dell'unità, cinque avvii in 10 secondi per impostazione predefinita, systemd smette di riavviare l'unità. L'unità rimane ferma fino a quando qualcuno non la riavvia, il che systemd consente una volta che l'intervallo del limite di velocità è passato o dopo `systemctl reset-failed`. Poiché `RestartSec` si applica a ogni riavvio, un valore più lungo ritarda anche il riavvio dopo un'uscita normale. Scegliere un valore che bilancia i due, e avvisare sul conteggio dei riavvii dell'unità.

648* **Un ciclo shell o il proprio supervisore**: applicare la stessa regola da soli. Iniziare con un'attesa di cinque secondi. Dopo ogni esecuzione che è terminata entro un minuto, raddoppiare l'attesa per il prossimo riavvio, fino a cinque minuti. Dopo un'esecuzione che è durata un minuto o più, tornare a cinque secondi.

649 

650<h4 id="check-why-the-runner-keeps-exiting">

651 Check why the runner keeps exiting

652</h4>

653 

654Quando il runner è uscito subito dopo l'avvio diverse volte di fila, fermarsi e controllare questi prima di riavviarlo di nuovo.

655 

656* **L'ultima riga `[runner:fatal]` o `error:`**: dice il motivo per cui il runner si è fermato. [Troubleshooting](#troubleshooting) elenca le cause comuni.

657* **La combinazione di flag**: il [git proxy Anthropic](#use-the-anthropic-git-proxy) richiede `--capacity 1`. Le ricette su questa pagina utilizzano una capacità superiore, quindi abbassarla quando si aggiunge il proxy a una di esse.

658* **Cosa può raggiungere l'ambiente del servizio**: se il runner si avvia manualmente e fallisce sotto il supervisore, confrontare l'utente, la directory home, il `PATH`, e il limite di memoria. `--configure-git` e il git proxy Anthropic hanno bisogno di git sul `PATH` e di un `~/.gitconfig` scrivibile.

659* **Il segreto dell'ambiente**: se è stato revocato il segreto o è stato digitato male, il runner stampa una riga che contiene `RegisterRunner auth failed`.

660* **La scheda Activity dell'ambiente**: aprire l'ambiente e selezionare **Activity**. Se nuovi runner continuano ad apparire lì e nessuno raccoglie lavoro, il supervisore sta riavviando il runner.

661 

662Per una diagnosi guidata sull'host del runner, eseguire il [subcommand doctor](#troubleshooting).

663 

557<h2 id="what’s-next">664<h2 id="what’s-next">

558 Cosa c'è dopo665 Cosa c'è dopo

559</h2>666</h2>

Details

105 </Step>105 </Step>

106</Steps>106</Steps>

107 107 

108Il runner esce per progettazione una volta che le sue sessioni attive finiscono; vedi [Runner lifecycle](/docs/it/self-hosted-environments#runner-lifecycle). Per la produzione, distribuiscilo sotto un orchestrator che lo riavvia all'uscita. Vedi [Distribuisci in produzione](/docs/it/self-hosted-environments-deploy).108Il runner esce per progettazione una volta che le sue sessioni attive finiscono; vedi [Runner lifecycle](/docs/it/self-hosted-environments#runner-lifecycle). Per la produzione, distribuiscilo sotto un orchestrator che lo riavvia all'uscita e attende più a lungo tra i riavvii quando il runner continua a uscire subito dopo l'avvio. Vedi [Distribuisci in produzione](/docs/it/self-hosted-environments-deploy) e [Quando il runner esce](/docs/it/self-hosted-environments-deploy#when-the-runner-exits).

109 109 

110<h2 id="send-a-follow-up-message-to-a-running-session">110<h2 id="send-a-follow-up-message-to-a-running-session">

111 Inviare un messaggio di follow-up a una sessione in esecuzione111 Inviare un messaggio di follow-up a una sessione in esecuzione

Details

80 Flag del connettore SCM80 Flag del connettore SCM

81</h3>81</h3>

82 82 

83L'orchestrator può mantenere una connessione WebSocket permanente al piano di controllo di Anthropic in modo che i flussi pre-sessione ospitati, come il selettore di repository e il risolutore di ramo o ref, possano raggiungere un host GitHub Enterprise Server che è instradabile solo dall'interno della tua rete. Il connettore rimane disattivato a meno che non imposti `--scm-connector-host`.83Il connettore SCM non è disponibile, quindi lascia i flag in questa sezione non impostati. Se imposti `--scm-connector-host`, la connessione non si apre e l'orchestrator continua a ritentare. I runner comunque si avviano mentre la coda delle sessioni si accumula.

84 

85Il connettore è una connessione WebSocket permanente dall'orchestrator al piano di controllo di Anthropic. È progettato per consentire ai flussi pre-sessione ospitati, come il selettore di repository e il risolutore di ramo o ref, di raggiungere un host GitHub Enterprise Server che è instradabile solo dall'interno della tua rete. Vedi [Requisiti di rete](/docs/it/github-enterprise-server#network-requirements) nella pagina GitHub Enterprise Server per sapere cosa richiedono questi flussi.

84 86 

85| Flag | Default | Description |87| Flag | Default | Description |

86| :- | :- | :- |88| :- | :- | :- |

87| `--scm-connector-host <host[:port]>` | unset | Nome host di GitHub Enterprise Server a cui inoltrare le richieste. La porta predefinita è `443`. L'impostazione di questo flag abilita il connettore. |89| `--scm-connector-host <host[:port]>` | unset | Nome host di GitHub Enterprise Server a cui inoltrare le richieste. La porta predefinita è `443`. |

88| `--scm-connector-id <n>` | required with `--scm-connector-host` | L'ID numerico della connessione GitHub Enterprise Server della tua organizzazione. Contatta il tuo team di account Anthropic per il valore quando abiliti il connettore. |90| `--scm-connector-id <n>` | required with `--scm-connector-host` | L'ID numerico della connessione GitHub Enterprise Server della tua organizzazione. |

89| `--scm-connector-provider <slug>` | `ghe` | Segmento di percorso che identifica il provider, corrispondente a `^[a-z0-9-]{1,32}$`. |91| `--scm-connector-provider <slug>` | `ghe` | Segmento di percorso che identifica il provider, corrispondente a `^[a-z0-9-]{1,32}$`. |

90| `--scm-connector-ca-file <path>` | unset | Bundle CA aggiuntivo, in formato PEM, per le connessioni TLS all'host GitHub Enterprise Server. |92| `--scm-connector-ca-file <path>` | unset | Bundle CA aggiuntivo, in formato PEM, per le connessioni TLS all'host GitHub Enterprise Server. |

91| `--scm-connector-host-rewrite <from>=<to_host:to_port>` | unset | Solo per test end-to-end: reindirizza la connessione TCP mantenendo l'intestazione Host e TLS SNI come `--scm-connector-host`. |93| `--scm-connector-host-rewrite <from>=<to_host:to_port>` | unset | Solo per test end-to-end: reindirizza la connessione TCP mantenendo l'intestazione Host e TLS SNI come `--scm-connector-host`. |

92 94 

93Il connettore si autentica con il segreto dell'ambiente esistente dell'orchestrator e si riconnette automaticamente: con backoff esponenziale su una connessione interrotta, o un ritardo fisso di 30 secondi quando il piano di controllo chiude la connessione perché un'altra replica dell'orchestrator la contiene già.95Ad ogni tentativo di connessione l'orchestrator invia il suo segreto d'ambiente esistente e ritenta automaticamente con backoff esponenziale, limitato a 30 secondi più jitter.

94 96 

95<h2 id="environment-variable-only-settings">97<h2 id="environment-variable-only-settings">

96 Impostazioni solo variabili d'ambiente98 Impostazioni solo variabili d'ambiente

Details

595| [`agent`](#agent) | Iniziate ogni sessione come un [subagent](/docs/it/sub-agents) denominato con il suo prompt, strumenti e modello | Agents, sessions, and worktrees | Any file |595| [`agent`](#agent) | Iniziate ogni sessione come un [subagent](/docs/it/sub-agents) denominato con il suo prompt, strumenti e modello | Agents, sessions, and worktrees | Any file |

596| [`agentPushNotifEnabled`](#agentpushnotifenabled) | Lasciate che Claude invii una [notifica push al vostro telefono](/docs/it/remote-control#mobile-push-notifications) quando decide di farlo | Remote, desktop, and notifications | Any file |596| [`agentPushNotifEnabled`](#agentpushnotifenabled) | Lasciate che Claude invii una [notifica push al vostro telefono](/docs/it/remote-control#mobile-push-notifications) quando decide di farlo | Remote, desktop, and notifications | Any file |

597| [`allowAllClaudeAiMcps`](#allowallclaudeaimcps) | Caricate i [connettori claude.ai](/docs/it/mcp) che Claude Code recupera da solo insieme a un [`managed-mcp.json`](/docs/it/managed-mcp#exclusive-control-with-managed-mcp-json) distribuito | MCP | Managed |597| [`allowAllClaudeAiMcps`](#allowallclaudeaimcps) | Caricate i [connettori claude.ai](/docs/it/mcp) che Claude Code recupera da solo insieme a un [`managed-mcp.json`](/docs/it/managed-mcp#exclusive-control-with-managed-mcp-json) distribuito | MCP | Managed |

598| [`allowClaudeInChromeWithManagedMcp`](#allowclaudeinchromewithmanagedmcp) | Lasciate che il server [Claude in Chrome](/docs/it/chrome) integrato funzioni insieme a un [`managed-mcp.json`](/docs/it/managed-mcp#exclusive-control-with-managed-mcp-json) distribuito | MCP | Managed |

598| [`allowedChannelPlugins`](#allowedchannelplugins) | Sostituite l'elenco di autorizzazione predefinito dei [plugin di canale](/docs/it/channels#restrict-which-channel-plugins-can-run) che possono inviare messaggi | Plugins and skills | Managed |599| [`allowedChannelPlugins`](#allowedchannelplugins) | Sostituite l'elenco di autorizzazione predefinito dei [plugin di canale](/docs/it/channels#restrict-which-channel-plugins-can-run) che possono inviare messaggi | Plugins and skills | Managed |

599| [`allowedHttpHookUrls`](#allowedhttphookurls) | Limitate gli URL che gli [hook HTTP](/docs/it/hooks) possono raggiungere | Hooks and automation | Any file |600| [`allowedHttpHookUrls`](#allowedhttphookurls) | Limitate gli URL che gli [hook HTTP](/docs/it/hooks) possono raggiungere | Hooks and automation | Any file |

600| [`allowedMcpServers`](#allowedmcpservers) | Elenco di autorizzazione per i [server MCP](/docs/it/mcp) che gli utenti possono aggiungere | MCP | Any file |601| [`allowedMcpServers`](#allowedmcpservers) | Elenco di autorizzazione per i [server MCP](/docs/it/mcp) che gli utenti possono aggiungere | MCP | Any file |


1744 * `"default"`: Claude Code esegue solo letture senza chiedere1745 * `"default"`: Claude Code esegue solo letture senza chiedere

1745 * `"acceptEdits"`: Claude Code esegue anche modifiche di file e comandi comuni del file system come `mkdir` e `mv` senza chiedere1746 * `"acceptEdits"`: Claude Code esegue anche modifiche di file e comandi comuni del file system come `mkdir` e `mv` senza chiedere

1746 * `"plan"`: Claude Code legge e pianifica ma blocca le modifiche finché non approvi un piano1747 * `"plan"`: Claude Code legge e pianifica ma blocca le modifiche finché non approvi un piano

1747 * `"auto"`: Claude Code esegue tutto, con controlli di sicurezza in background1748 * `"auto"`: Claude Code esegue senza prompt di routine; prima che azioni come comandi shell e richieste di rete vengano eseguite, un classificatore in background verifica che si allineino con la tua richiesta

1748 * `"dontAsk"`: Claude Code nega automaticamente ogni chiamata che altrimenti richiederebbe; le letture, altre azioni che non richiedono approvazione e gli strumenti pre-approvati si eseguono comunque1749 * `"dontAsk"`: Claude Code nega automaticamente ogni chiamata che altrimenti richiederebbe; le letture, altre azioni che non richiedono approvazione e gli strumenti pre-approvati si eseguono comunque

1749 * `"bypassPermissions"`: Claude Code esegue tutto senza chiedere1750 * `"bypassPermissions"`: Claude Code esegue tutto senza chiedere

1750 * `"manual"`: un alias per `"default"`, in Claude Code v2.1.200 o successivo1751 * `"manual"`: un alias per `"default"`, in Claude Code v2.1.200 o successivo


3064</h4>3065</h4>

3065 3066 

3066* Un valore qui sovrascrive la stessa variabile esportata nella tua shell, e quando più di un file di impostazioni imposta una variabile, si applica quello con la [precedenza più alta](/docs/it/settings#settings-precedence). [Variabili che Claude Code ignora in `env`](#variables-claude-code-ignores-in-env) elenca le eccezioni per le impostazioni di progetto e locali.3067* Un valore qui sovrascrive la stessa variabile esportata nella tua shell, e quando più di un file di impostazioni imposta una variabile, si applica quello con la [precedenza più alta](/docs/it/settings#settings-precedence). [Variabili che Claude Code ignora in `env`](#variables-claude-code-ignores-in-env) elenca le eccezioni per le impostazioni di progetto e locali.

3068* Quando l'app Claude Desktop o un runner di [ambiente self-hosted](/docs/it/self-hosted-environments) avvia la sessione, l'ambiente di avvio che costruisce ha la precedenza invece: Claude Code ignora un valore `env` da qualsiasi file di impostazioni per una variabile che l'ambiente di avvio ha già impostato. Il [log di debug](/docs/it/debug-your-config) nomina ogni variabile ignorata.

3067* Per annullare un'esportazione della shell, imposta la variabile su `""`. Claude Code tratta un valore vuoto come non impostato per la selezione del provider, e i sottoprocessi ereditano il valore vuoto.3069* Per annullare un'esportazione della shell, imposta la variabile su `""`. Claude Code tratta un valore vuoto come non impostato per la selezione del provider, e i sottoprocessi ereditano il valore vuoto.

3068* `NO_COLOR` e `FORCE_COLOR` impostati qui raggiungono solo i sottoprocessi. Per cambiare i colori dell'interfaccia di Claude Code stesso, impostali nella tua shell prima di lanciare `claude`.3070* `NO_COLOR` e `FORCE_COLOR` impostati qui raggiungono solo i sottoprocessi. Per cambiare i colori dell'interfaccia di Claude Code stesso, impostali nella tua shell prima di lanciare `claude`.

3069* I valori qui sono testo semplice nel file di impostazioni e raggiungono ogni sottoprocesso che Claude Code avvia. Per un token bearer OTLP che ruota, usa [`otelHeadersHelper`](#otelheadershelper); per le credenziali API, usa [`apiKeyHelper`](#apikeyhelper).3071* I valori qui sono testo semplice nel file di impostazioni e raggiungono ogni sottoprocesso che Claude Code avvia. Per un token bearer OTLP che ruota, usa [`otelHeadersHelper`](#otelheadershelper); per le credenziali API, usa [`apiKeyHelper`](#apikeyhelper).


5157 5159 

5158[`allowedMcpServers`](#allowedmcpservers) e [`deniedMcpServers`](#deniedmcpservers) si applicano ancora ai connettori che questa chiave carica. I connettori consegnati a una [sessione cloud](/docs/it/claude-code-on-the-web) il cui host contiene un `managed-mcp.json`, come un runner auto-ospitato, rimangono soppressi. Vedere [Consentire i connettori claude.ai insieme al set gestito](/docs/it/managed-mcp#allow-claude-ai-connectors-alongside-the-managed-set).5160[`allowedMcpServers`](#allowedmcpservers) e [`deniedMcpServers`](#deniedmcpservers) si applicano ancora ai connettori che questa chiave carica. I connettori consegnati a una [sessione cloud](/docs/it/claude-code-on-the-web) il cui host contiene un `managed-mcp.json`, come un runner auto-ospitato, rimangono soppressi. Vedere [Consentire i connettori claude.ai insieme al set gestito](/docs/it/managed-mcp#allow-claude-ai-connectors-alongside-the-managed-set).

5159 5161 

5162<h3 id="allowclaudeinchromewithmanagedmcp">

5163 `allowClaudeInChromeWithManagedMcp`

5164</h3>

5165 

5166Consentire al server [Claude in Chrome](/docs/it/chrome) incorporato di funzionare insieme a un `managed-mcp.json` distribuito. Senza questa chiave, un `managed-mcp.json` distribuito blocca Claude in Chrome nelle sessioni di terminale. Richiede Claude Code v2.1.282 o successivo.

5167 

5168* **Scope**: [`Managed`](#scopes), solo dalle impostazioni gestite del dispositivo: un plist distribuito da MDM o una chiave di registro HKLM, o un file `managed-settings.json` di sistema. Claude Code lo ignora nelle impostazioni gestite dal server, nel registro HKCU scrivibile dall'utente e nelle impostazioni utente o progetto.

5169* **Type**: Boolean

5170 * `true`: il server Claude in Chrome incorporato può funzionare insieme a un `managed-mcp.json` distribuito

5171 * `false`: un `managed-mcp.json` distribuito blocca Claude in Chrome nelle sessioni di terminale

5172* **Default**: `false`, quindi un `managed-mcp.json` distribuito blocca Claude in Chrome nelle sessioni di terminale

5173 

5174```json managed-settings.json theme={null}

5175{

5176 "allowClaudeInChromeWithManagedMcp": true

5177}

5178```

5179 

5180Una voce [`deniedMcpServers`](#deniedmcpservers) per `claude-in-chrome` blocca comunque il server con questa chiave attivata. Vedere [Consentire Claude in Chrome insieme al set gestito](/docs/it/managed-mcp#allow-claude-in-chrome-alongside-the-managed-set).

5181 

5160<h3 id="allowedmcpservers">5182<h3 id="allowedmcpservers">

5161 `allowedMcpServers`5183 `allowedMcpServers`

5162</h3>5184</h3>

5163 5185 

5164Creare un elenco di autorizzazione dei server MCP che le persone possono aggiungere. Claude Code blocca qualsiasi server che non corrisponde a una voce ovunque sia definito, inclusi i server plugin, i server passati con `--mcp-config` e i server da claude.ai.5186Creare un elenco di autorizzazione dei server MCP che le persone possono aggiungere. Claude Code blocca qualsiasi server che non corrisponde a una voce ovunque sia definito, inclusi i server plugin, i server passati con `--mcp-config` e i server da claude.ai.

5165 5187 

5166I server incorporati come Claude in Chrome, il server `ide` a cui Claude Code si connette in un [VS Code](/docs/it/vs-code#the-built-in-ide-mcp-server) o [JetBrains](/docs/it/jetbrains#the-built-in-ide-mcp-server) IDE in esecuzione e i server che la CLI stessa configura sono esenti dall'elenco di autorizzazione e l'elenco di negazione si applica ancora a loro. I server `type: "sdk"` in-process sono esenti da entrambi gli elenchi; [l'app che ha avviato la sessione](/docs/it/mcp#how-connectors-reach-claude-code) li registra.5188I server incorporati come Claude in Chrome, il server `ide` a cui Claude Code si connette in un [VS Code](/docs/it/vs-code#the-built-in-ide-mcp-server) o [JetBrains](/docs/it/jetbrains#the-built-in-ide-mcp-server) IDE in esecuzione e i server che la CLI stessa configura sono esenti dall'elenco di autorizzazione e l'elenco di negazione si applica ancora a loro. Su Claude Code v2.1.268 o successivo, gli strumenti Slack di una sessione [Claude Tag](/docs/it/claude-tag) sono anche esenti dall'elenco di autorizzazione e l'elenco di negazione si applica ancora a loro. I server `type: "sdk"` in-process sono esenti da entrambi gli elenchi; [l'app che ha avviato la sessione](/docs/it/mcp#how-connectors-reach-claude-code) li registra.

5167 5189 

5168I server che l'organizzazione fornisce sono anche esenti dall'elenco di autorizzazione e l'elenco di negazione si applica ancora a loro. L'esenzione copre ogni voce [`managedMcpServers`](#managedmcpservers) e qualsiasi voce [`managed-mcp.json`](/docs/it/managed-mcp#exclusive-control-with-managed-mcp-json) i cui valori non utilizzano l'espansione `${VAR}`. Vedere [Come viene valutato un server](/docs/it/managed-mcp#how-a-server-is-evaluated) per l'ordine di controllo completo. Prima della v2.1.259, i server da `managed-mcp.json` dovevano corrispondere anche loro.5190I server che l'organizzazione fornisce sono anche esenti dall'elenco di autorizzazione e l'elenco di negazione si applica ancora a loro. L'esenzione copre ogni voce [`managedMcpServers`](#managedmcpservers) e qualsiasi voce [`managed-mcp.json`](/docs/it/managed-mcp#exclusive-control-with-managed-mcp-json) i cui valori non utilizzano l'espansione `${VAR}`. Vedere [Come viene valutato un server](/docs/it/managed-mcp#how-a-server-is-evaluated) per l'ordine di controllo completo. Prima della v2.1.259, i server da `managed-mcp.json` dovevano corrispondere anche loro.

5169 5191 


6298 Impostazioni aziendali e gestite6320 Impostazioni aziendali e gestite

6299</h2>6321</h2>

6300 6322 

6301Chiavi che un'organizzazione utilizza per calcolare, aggiornare e combinare le impostazioni gestite. Vedere [Configurare le impostazioni gestite](/docs/it/admin-setup).6323Chiavi che un'organizzazione utilizza per calcolare, aggiornare e combinare le impostazioni gestite. Vedi [Configurare le impostazioni gestite](/docs/it/admin-setup).

6302 6324 

6303<h3 id="disablesideloadflags">6325<h3 id="disablesideloadflags">

6304 `disableSideloadFlags`6326 `disableSideloadFlags`

6305</h3>6327</h3>

6306 6328 

6307Rifiuta i flag CLI `--plugin-dir`, `--plugin-url`, `--agents` e `--mcp-config` all'avvio, che gli utenti potrebbero altrimenti passare per aggirare [`strictKnownMarketplaces`](#strictknownmarketplaces) per una singola esecuzione. Claude Code esce con un errore che nomina i flag rifiutati e applica lo stesso controllo alle superfici che avviano la CLI con questi flag internamente, attualmente le sessioni locali di [Cowork](/docs/it/desktop) nell'app desktop. Nelle [sessioni cloud](/docs/it/claude-code-on-the-web), Claude Code elimina i server MCP che il server ha fornito tramite `--mcp-config`, ad eccezione delle voci in-process `type: "sdk"`, e avvia la sessione. Richiede Claude Code v2.1.193 o successivo.6329Rifiuta i flag CLI `--plugin-dir`, `--plugin-url`, `--agents` e `--mcp-config` all'avvio, che gli utenti potrebbero altrimenti passare per aggirare [`strictKnownMarketplaces`](#strictknownmarketplaces) per una singola esecuzione. Claude Code esce con un errore che nomina i flag rifiutati e applica lo stesso controllo alle superfici che avviano la CLI con questi flag internamente, attualmente le sessioni locali di [Cowork](/docs/it/desktop) nell'app desktop. Nelle [sessioni cloud](/docs/it/claude-code-on-the-web), Claude Code invece avvia la sessione e elimina ogni voce `--mcp-config` consegnata dal server tranne le voci in-process `type: "sdk"` e gli strumenti Slack di una sessione [Claude Tag](/docs/it/claude-tag). Richiede Claude Code v2.1.193 o successivo.

6308 6330 

6309* **Scope**: [`Managed`](#scopes)6331* **Scope**: [`Managed`](#scopes)

6310* **Type**: Boolean6332* **Type**: Boolean

6311 * `true`: Claude Code rifiuta `--plugin-dir`, `--plugin-url`, `--agents` e `--mcp-config` all'avvio e esce con un errore che li nomina, tranne che nelle sessioni cloud dove elimina i server MCP che il server ha fornito tramite `--mcp-config`, ad eccezione delle voci in-process `type: "sdk"`, e avvia la sessione6333 * `true`: Claude Code rifiuta `--plugin-dir`, `--plugin-url`, `--agents` e `--mcp-config` all'avvio ed esce con un errore che li nomina. Nelle sessioni cloud, invece avvia la sessione ed elimina ogni voce `--mcp-config` consegnata dal server tranne le voci in-process `type: "sdk"` e gli strumenti Slack di una sessione Claude Tag

6312 * `false`: Claude Code accetta questi flag6334 * `false`: Claude Code accetta questi flag

6313* **Default**: `false`6335* **Default**: `false`

6314 6336 


6318}6340}

6319```6341```

6320 6342 

6321Claude Code accetta comunque un `--mcp-config` i cui server sono tutti voci in-process `type: "sdk"`, quindi l'Agent SDK e l'estensione VS Code continuano a funzionare. Gli utenti possono comunque aggiungere server con `claude mcp add` o un file `.mcp.json`; per il controllo per server, impostare anche [`allowedMcpServers`](/docs/it/managed-mcp). Richiede Claude Code v2.1.193 o successivo.6343Claude Code accetta comunque un `--mcp-config` i cui server sono tutti voci in-process `type: "sdk"`, quindi l'Agent SDK e l'estensione VS Code continuano a funzionare. Gli utenti possono comunque aggiungere server con `claude mcp add` o un file `.mcp.json`; per il controllo per-server, imposta anche [`allowedMcpServers`](/docs/it/managed-mcp). Richiede Claude Code v2.1.193 o successivo.

6322 6344 

6323Lo stesso controllo copre le cartelle di plugin nominate nella variabile di ambiente [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/it/env-vars#variables), che richiede Claude Code v2.1.280 o successivo. Quando la variabile nomina una cartella, Claude Code esce con lo stesso errore e l'errore dice di annullare l'impostazione della variabile.6345Lo stesso controllo copre le cartelle plugin nominate nella variabile di ambiente [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/it/env-vars#variables), che richiede Claude Code v2.1.280 o successivo. Quando la variabile nomina una cartella, Claude Code esce con lo stesso errore e l'errore dice di annullare l'impostazione della variabile.

6324 6346 

6325Nelle sessioni cloud, Claude Code ignora anche gli aggiornamenti MCP forniti dal server a metà sessione, il percorso dietro la configurazione della sessione cloud e le chiamate SDK `setMcpServers()` che raggiungono quelle sessioni. Le voci in-process `type: "sdk"` rimangono esenti anche lì. Prima della v2.1.239, un `--mcp-config` fornito dal server bloccava l'avvio di una sessione cloud.6347Nelle sessioni cloud, Claude Code ignora anche gli aggiornamenti MCP mid-session consegnati dal server, il percorso dietro la configurazione della sessione cloud e le chiamate SDK `setMcpServers()` che raggiungono quelle sessioni. Le voci in-process `type: "sdk"` e gli strumenti Slack di una sessione Claude Tag rimangono esenti anche lì. Prima della v2.1.268, sia questo drop che lo startup drop rimuovevano anche gli strumenti Slack di una sessione Claude Tag. Prima della v2.1.239, un `--mcp-config` consegnato dal server bloccava l'avvio di una sessione cloud.

6326 6348 

6327<h3 id="forceremotesettingsrefresh">6349<h3 id="forceremotesettingsrefresh">

6328 `forceRemoteSettingsRefresh`6350 `forceRemoteSettingsRefresh`

6329</h3>6351</h3>

6330 6352 

6331Blocca l'avvio della CLI fino a quando Claude Code non ha recuperato di recente le [impostazioni gestite dal server](/docs/it/server-managed-settings). Se il recupero non riesce, Claude Code esce invece di continuare con le impostazioni memorizzate nella cache o nessuna impostazione. Impostarlo quando il tuo ambiente non può accettare nemmeno una breve finestra in cui una sessione viene eseguita senza la sua politica gestita.6353Blocca l'avvio della CLI fino a quando Claude Code non ha recuperato di recente le [impostazioni gestite dal server](/docs/it/server-managed-settings). Se il recupero fallisce, Claude Code esce invece di continuare con le impostazioni memorizzate nella cache o nessuna impostazione. Impostalo quando il tuo ambiente non può accettare nemmeno una breve finestra in cui una sessione viene eseguita senza la sua politica gestita.

6332 6354 

6333Quando la chiave non è impostata, Claude Code non blocca l'avvio sul recupero, anche se quando lo sviluppatore accede all'avvio attende fino a cinque secondi per il recupero. Una sessione del gateway Cloud attende sempre e esce se il gateway non può essere raggiunto.6355Quando la chiave non è impostata, Claude Code non blocca l'avvio sul recupero, anche se quando lo sviluppatore accede all'avvio attende fino a cinque secondi per il recupero. Una sessione del gateway Cloud attende sempre ed esce se il gateway non può essere raggiunto.

6334 6356 

6335* **Scope**: [`Managed`](#scopes). Claude Code onora un `true` da qualsiasi fonte gestita controllata dall'amministratore, anche una che non è la fonte con la priorità più alta.6357* **Scope**: [`Managed`](#scopes). Claude Code onora un `true` da qualsiasi fonte gestita controllata dall'amministratore, anche una che non è la fonte con la priorità più alta.

6336* **Type**: Boolean6358* **Type**: Boolean

6337 * `true`: Claude Code blocca l'avvio fino a quando non ha recuperato di recente le impostazioni gestite dal server e esce se il recupero non riesce6359 * `true`: Claude Code blocca l'avvio fino a quando non ha recuperato di recente le impostazioni gestite dal server ed esce se il recupero fallisce

6338 * `false`: Claude Code non blocca l'avvio sul recupero, anche se all'avvio di un accesso attende fino a cinque secondi per il recupero6360 * `false`: Claude Code non blocca l'avvio sul recupero, anche se all'avvio di un accesso attende fino a cinque secondi per il recupero

6339* **Default**: `false`6361* **Default**: `false`

6340 6362 


6344}6366}

6345```6367```

6346 6368 

6347Impostarlo in un profilo MDM o nel file delle impostazioni gestite per applicare l'avvio fail-closed prima che arrivi il primo payload del server. Claude Code applica il controllo solo nelle sessioni che recuperano le impostazioni gestite dal server, quindi una sessione che [non le recupera](/docs/it/server-managed-settings#platform-availability) si avvia senza attendere. I sottocomandi `claude auth` sono esenti, quindi gli utenti possono autenticarsi di nuovo quando le credenziali scadute sono il motivo per cui il recupero non riesce. Vedere [Applicare l'avvio fail-closed](/docs/it/server-managed-settings#enforce-fail-closed-startup).6369Impostalo in un profilo MDM o nel file delle impostazioni gestite per applicare l'avvio fail-closed prima che arrivi il primo payload del server. Claude Code applica il controllo solo nelle sessioni che recuperano le impostazioni gestite dal server, quindi una sessione che [non le recupera](/docs/it/server-managed-settings#platform-availability) si avvia senza attendere. I sottocomandi `claude auth` sono esenti, quindi gli utenti possono autenticarsi di nuovo quando le credenziali scadute sono il motivo per cui il recupero fallisce. Vedi [Applicare l'avvio fail-closed](/docs/it/server-managed-settings#enforce-fail-closed-startup).

6348 6370 

6349<h3 id="managedsourcesbehavior">6371<h3 id="managedsourcesbehavior">

6350 `managedSourcesBehavior`6372 `managedSourcesBehavior`

6351</h3>6373</h3>

6352 6374 

6353Scegli se Claude Code applica solo la [fonte gestita](/docs/it/managed-settings#how-claude-code-combines-managed-sources) con la priorità più alta che la tua organizzazione fornisce, o combina ogni fonte amministrativa che fornisce. Per impostazione predefinita, Claude Code prende la fonte con la priorità più alta che contiene una [chiave di politica](/docs/it/managed-settings#how-claude-code-combines-managed-sources) e ignora il resto. Una chiave di politica è qualsiasi chiave di impostazioni diversa da questa e da `wslInheritsWindowsSettings`. Quindi una volta che le impostazioni gestite dal server o una politica MDM forniscono una chiave di politica, un file `managed-settings.json` contribuisce solo alle [chiavi che Claude Code legge da ogni fonte amministrativa](/docs/it/managed-settings#keys-read-from-every-admin-source). Con `"merge"`, ogni fonte amministrativa che fornisci contribuisce con le sue chiavi a una politica combinata. Richiede Claude Code v2.1.242 o successivo.6375Scegli se Claude Code applica solo la [fonte gestita](/docs/it/managed-settings#how-claude-code-combines-managed-sources) con la priorità più alta che la tua organizzazione fornisce, o combina ogni fonte amministrativa che fornisce. Per impostazione predefinita, Claude Code prende la fonte con la priorità più alta che contiene una [chiave di politica](/docs/it/managed-settings#how-claude-code-combines-managed-sources) e ignora il resto. Una chiave di politica è qualsiasi chiave di impostazioni diversa da questa e `wslInheritsWindowsSettings`. Con questa impostazione predefinita, una volta che le impostazioni gestite dal server o una politica MDM forniscono una chiave di politica, un file `managed-settings.json` contribuisce solo alle [chiavi che Claude Code legge da ogni fonte amministrativa](/docs/it/managed-settings#keys-read-from-every-admin-source). Con `"merge"`, ogni fonte amministrativa che fornisci contribuisce con le sue chiavi a una politica combinata. Richiede Claude Code v2.1.242 o successivo.

6354 6376 

6355Imposta `"merge"` solo dove ogni fonte [classificata](/docs/it/managed-settings#how-claude-code-combines-managed-sources) al di sotto della tua più alta è sotto il controllo di un amministratore, perché Claude Code quindi aggiunge voci da una fonte inferiore, come le regole `permissions.allow`, alla politica.6377Imposta `"merge"` solo dove ogni fonte [classificata](/docs/it/managed-settings#how-claude-code-combines-managed-sources) sotto la tua più alta è sotto il controllo di un amministratore, perché Claude Code quindi aggiunge voci da una fonte inferiore, come le regole `permissions.allow`, alla politica.

6356 6378 

6357* **Scope**: [`Managed`](#scopes). Claude Code legge questa chiave dalla fonte con la priorità più alta che contiene questa chiave o una chiave di politica, e ignora questa chiave in ogni fonte classificata più in basso, quindi una fonte inferiore non può optare per la combinazione con la fonte sopra di essa. Né il registro HKCU di Windows né le [impostazioni padre da un host di incorporamento](/docs/it/managed-settings#let-an-embedding-host-add-policy) partecipano alla fusione.6379* **Scope**: [`Managed`](#scopes). Claude Code legge questa chiave dalla fonte con la priorità più alta che contiene questa chiave o una chiave di politica e ignora questa chiave in ogni fonte classificata più in basso, quindi una fonte inferiore non può optare per la combinazione con la fonte sopra di essa. Né il registro HKCU di Windows né le [impostazioni padre da un host di incorporamento](/docs/it/managed-settings#let-an-embedding-host-add-policy) partecipano al merge.

6358* **Type**: string, uno di:6380* **Type**: string, uno di:

6359 * `"first-wins"`: la fonte con la priorità più alta che contiene una chiave di politica fornisce la politica, e le fonti inferiori contribuiscono solo alle [chiavi che Claude Code legge da ogni fonte amministrativa](/docs/it/managed-settings#keys-read-from-every-admin-source)6381 * `"first-wins"`: la fonte con la priorità più alta che contiene una chiave di politica fornisce la politica e le fonti inferiori contribuiscono solo alle [chiavi che Claude Code legge da ogni fonte amministrativa](/docs/it/managed-settings#keys-read-from-every-admin-source)

6360 * `"merge"`: ogni fonte amministrativa che fornisci contribuisce con le sue chiavi, combinate secondo le regole sottostanti6382 * `"merge"`: ogni fonte amministrativa che fornisci contribuisce con le sue chiavi, combinate secondo le regole sottostanti

6361* **Default**: `"first-wins"`6383* **Default**: `"first-wins"`

6362 6384 

6363Fornisci la chiave nella fonte con la priorità più alta che distribuisci. Una macchina che non riceve mai le impostazioni gestite dal server ha bisogno della chiave anche nel suo profilo MDM, perché Claude Code legge la chiave dalla fonte con la priorità più alta che la contiene o una chiave di politica. Un file `managed-settings.json` è la fonte amministrativa con la priorità più bassa, quindi `"merge"` impostato lì non ha alcuna fonte al di sotto di essa con cui combinarsi. Nelle impostazioni gestite dal server, la chiave appare così:6385Fornisci la chiave nella fonte con la priorità più alta che distribuisci. Una macchina che non riceve mai le impostazioni gestite dal server ha bisogno della chiave anche nel suo profilo MDM, perché Claude Code legge la chiave dalla fonte con la priorità più alta che la contiene o una chiave di politica. Un file `managed-settings.json` è la fonte amministrativa con il rango più basso, quindi `"merge"` impostato lì non ha alcuna fonte sottostante con cui combinarsi. Nelle impostazioni gestite dal server, la chiave appare così:

6364 6386 

6365```json theme={null}6387```json theme={null}

6366{6388{


6368}6390}

6369```6391```

6370 6392 

6371Sotto `"merge"`, Claude Code combina ogni chiave per il suo tipo. Questa tabella fornisce la regola per ogni tipo. Le righe della lista di restrizioni, valori-presi-interi e solo-fonte-più-alta nominano ogni chiave che coprono, e le altre righe forniscono esempi:6393Con `"merge"`, Claude Code combina ogni chiave in base al suo tipo. Questa tabella fornisce la regola per ogni tipo. Le righe della lista di restrizioni, valori-presi-interi e solo-fonte-più-alta nominano ogni chiave che coprono, e le altre righe forniscono esempi:

6372 6394 

6373| Tipo di chiave | Come Claude Code la combina | Chiavi |6395| Tipo di chiave | Come Claude Code la combina | Chiavi |

6374| :- | :- | :- |6396| :- | :- | :- |


6377| Liste di restrizioni | Prende la lista intera dalla fonte con la priorità più alta che la imposta, senza aggiungere voci da fonti inferiori. Quando la fonte con la priorità più alta non ne imposta una, la prende intera dalla fonte successiva | [`availableModels`](#availablemodels), [`allowedMcpServers`](#allowedmcpservers), [`strictKnownMarketplaces`](#strictknownmarketplaces), [`allowedChannelPlugins`](#allowedchannelplugins) e la catena [`fallbackModel`](#fallbackmodel) |6399| Liste di restrizioni | Prende la lista intera dalla fonte con la priorità più alta che la imposta, senza aggiungere voci da fonti inferiori. Quando la fonte con la priorità più alta non ne imposta una, la prende intera dalla fonte successiva | [`availableModels`](#availablemodels), [`allowedMcpServers`](#allowedmcpservers), [`strictKnownMarketplaces`](#strictknownmarketplaces), [`allowedChannelPlugins`](#allowedchannelplugins) e la catena [`fallbackModel`](#fallbackmodel) |

6378| Valori presi interi | Prende il valore intero dalla fonte con la priorità più alta che lo imposta, senza combinare voci o campi da fonti inferiori. Quando la fonte con la priorità più alta non lo imposta, lo prende intero dalla fonte successiva | [`sandbox.credentials.awsPairs`](#sandbox-credentials-awspairs), [`sandbox.ripgrep`](#sandbox-ripgrep) |6400| Valori presi interi | Prende il valore intero dalla fonte con la priorità più alta che lo imposta, senza combinare voci o campi da fonti inferiori. Quando la fonte con la priorità più alta non lo imposta, lo prende intero dalla fonte successiva | [`sandbox.credentials.awsPairs`](#sandbox-credentials-awspairs), [`sandbox.ripgrep`](#sandbox-ripgrep) |

6379| Server MCP forniti | Combina i nomi dei server da ogni fonte. Quando due fonti impostano lo stesso nome, applica la voce intera della fonte più alta | [`managedMcpServers`](#managedmcpservers) |6401| Server MCP forniti | Combina i nomi dei server da ogni fonte. Quando due fonti impostano lo stesso nome, applica la voce intera della fonte più alta | [`managedMcpServers`](#managedmcpservers) |

6380| Leggi solo dalla fonte con la priorità più alta | Legge la chiave solo dalla fonte con la priorità più alta che contiene una chiave di politica, quindi il valore di una fonte inferiore viene ignorato anche quando la fonte con la priorità più alta non ne imposta nessuno | [`apiKeyHelper`](#apikeyhelper), [`awsAuthRefresh`](#awsauthrefresh), [`awsCredentialExport`](#awscredentialexport), [`gcpAuthRefresh`](#gcpauthrefresh), [`otelHeadersHelper`](#otelheadershelper), `proxyAuthHelper`, [`forceLoginOrgUUID`](#forceloginorguuid), i valori `"claudeai"` e `"console"` di [`forceLoginMethod`](#forceloginmethod), [`parentSettingsBehavior`](#parentsettingsbehavior), [`modelPicker`](#modelpicker), [`policyHelper`](#policyhelper), [`permissions.defaultMode`](#permissions-defaultmode) |6402| Leggi solo dalla fonte con la priorità più alta | Legge la chiave solo dalla fonte con la priorità più alta che contiene una chiave di politica, quindi il valore di una fonte inferiore viene ignorato anche quando la fonte con la priorità più alta non ne imposta uno | [`apiKeyHelper`](#apikeyhelper), [`awsAuthRefresh`](#awsauthrefresh), [`awsCredentialExport`](#awscredentialexport), [`gcpAuthRefresh`](#gcpauthrefresh), [`otelHeadersHelper`](#otelheadershelper), `proxyAuthHelper`, [`forceLoginOrgUUID`](#forceloginorguuid), i valori `"claudeai"` e `"console"` di [`forceLoginMethod`](#forceloginmethod), [`parentSettingsBehavior`](#parentsettingsbehavior), [`modelPicker`](#modelpicker), [`policyHelper`](#policyhelper), [`permissions.defaultMode`](#permissions-defaultmode) |

6381| `env` | [Unisce per variabile tra fonti amministrative](/docs/it/managed-settings#keys-read-from-every-admin-source), sia sotto `"first-wins"` che `"merge"` | [`env`](#env) |6403| `env` | [Unisce per variabile tra fonti amministrative](/docs/it/managed-settings#keys-read-from-every-admin-source), sia con `"first-wins"` che con `"merge"` | [`env`](#env) |

6382| Ogni altra chiave | Prende il valore dalla fonte con la priorità più alta che lo imposta | [`cleanupPeriodDays`](#cleanupperioddays), [`model`](#model) |6404| Ogni altra chiave | Prende il valore dalla fonte con la priorità più alta che lo imposta | [`cleanupPeriodDays`](#cleanupperioddays), [`model`](#model) |

6383 6405 

6384Prendere `sandbox.credentials.awsPairs` e `sandbox.ripgrep` interi richiede Claude Code v2.1.257 o successivo.6406Prendere `sandbox.credentials.awsPairs` e `sandbox.ripgrep` interi richiede Claude Code v2.1.257 o successivo.

6385 6407 

6386Poche chiavi aggiungono una condizione che la tabella non mostra:6408Alcune chiavi aggiungono una condizione che la tabella non mostra:

6387 6409 

6388* **[`policyHelper`](#policyhelper)**: Claude Code lo onora solo quando la fonte con la priorità più alta che contiene una chiave di politica è una politica MDM o un file di impostazioni gestite, quindi sotto le impostazioni gestite dal server non si applica.6410* **[`policyHelper`](#policyhelper)**: Claude Code lo onora solo quando la fonte con la priorità più alta che contiene una chiave di politica è una politica MDM o un file di impostazioni gestite, quindi con le impostazioni gestite dal server non si applica.

6389* **[`modelOverrides`](#modeloverrides)**: si accoppia con `availableModels`. Claude Code prende `modelOverrides` dalla fonte con la priorità più alta che lo imposta, a meno che una fonte più alta non imposti `availableModels` senza `modelOverrides`. In quel caso ignora `modelOverrides` da ogni fonte.6411* **[`modelOverrides`](#modeloverrides)**: si accoppia con `availableModels`. Claude Code prende `modelOverrides` dalla fonte con la priorità più alta che lo imposta, a meno che una fonte più alta non imposti `availableModels` senza `modelOverrides`. In quel caso ignora `modelOverrides` da ogni fonte.

6390* **[`forceLoginGatewayUrl`](#forcelogingatewayurl), [`gatewayInternalNetworks`](#gatewayinternalnetworks) e il valore `"gateway"` di [`forceLoginMethod`](#forceloginmethod)**: Claude Code non legge mai nessuno di loro dalle impostazioni gestite dal server, quindi un valore lì non si applica né nasconde uno impostato in una politica MDM o file di impostazioni gestite. Tra le fonti amministrative sulla macchina, solo la fonte con la priorità più alta che contiene una chiave di politica li fornisce, indipendentemente dal fatto che le impostazioni gestite dal server siano presenti o meno.6412* **[`forceLoginGatewayUrl`](#forcelogingatewayurl), [`gatewayInternalNetworks`](#gatewayinternalnetworks) e il valore `"gateway"` di [`forceLoginMethod`](#forceloginmethod)**: Claude Code non li legge mai dalle impostazioni gestite dal server, quindi un valore lì non si applica né nasconde uno impostato in una politica MDM o un file di impostazioni gestite. Tra le fonti amministrative sulla macchina, solo quella con il rango più alto che contiene una chiave di politica le fornisce, indipendentemente dal fatto che le impostazioni gestite dal server siano presenti o meno.

6391 6413 

6392Per confermare quali fonti si sono combinate su una macchina, esegui `/status` e [leggi la riga `Setting sources`](/docs/it/managed-settings#read-the-source-in-/status).6414Per confermare quali fonti si sono combinate su una macchina, esegui `/status` e [leggi la riga `Setting sources`](/docs/it/managed-settings#read-the-source-in-/status).

6393 6415 


6397 6419 

6398Scegli se Claude Code applica le impostazioni gestite fornite da un processo host di incorporamento, come l'Agent SDK o un'estensione IDE, quando è presente anche un livello gestito distribuito dall'amministratore. Con `"first-wins"`, Claude Code elimina le impostazioni fornite dall'host; con `"merge"`, le applica sotto il livello amministrativo attraverso un filtro solo restrittivo. Imposta `"merge"` quando un host ha bisogno di passare le sue stesse restrizioni alle sessioni che avvia, ad esempio Claude Desktop che fornisce la lista di egresso consentita di un gateway.6420Scegli se Claude Code applica le impostazioni gestite fornite da un processo host di incorporamento, come l'Agent SDK o un'estensione IDE, quando è presente anche un livello gestito distribuito dall'amministratore. Con `"first-wins"`, Claude Code elimina le impostazioni fornite dall'host; con `"merge"`, le applica sotto il livello amministrativo attraverso un filtro solo restrittivo. Imposta `"merge"` quando un host ha bisogno di passare le sue stesse restrizioni alle sessioni che avvia, ad esempio Claude Desktop che fornisce la lista di egresso consentita di un gateway.

6399 6421 

6400* **Scope**: [`Managed`](#scopes). Claude Code lo legge dalla fonte gestita controllata dall'amministratore con la priorità più alta.6422* **Scope**: [`Managed`](#scopes). Claude Code la legge dalla fonte gestita controllata dall'amministratore con la priorità più alta.

6401* **Type**: string, uno di:6423* **Type**: string, uno di:

6402 * `"first-wins"`: Claude Code elimina le impostazioni fornite dall'host quando è presente un livello gestito distribuito dall'amministratore6424 * `"first-wins"`: Claude Code elimina le impostazioni fornite dall'host quando è presente un livello gestito distribuito dall'amministratore

6403 * `"merge"`: Claude Code applica le impostazioni fornite dall'host sotto il livello amministrativo attraverso un filtro solo restrittivo6425 * `"merge"`: Claude Code applica le impostazioni fornite dall'host sotto il livello amministrativo attraverso un filtro solo restrittivo


6409}6431}

6410```6432```

6411 6433 

6412Questa chiave non ha effetto quando non esiste un livello gestito distribuito dall'amministratore: le impostazioni dell'host si applicano quindi come l'unico livello gestito, ancora filtrate a valori restrittivi. Per i limiti del filtro e come le fonti gestite interagiscono, vedere [Impostazioni padre da host di incorporamento](/docs/it/managed-settings#parent-settings-from-embedding-hosts) e [Limitare le impostazioni padre](/docs/it/claude-apps-gateway#restrict-parent-settings).6434Questa chiave non ha effetto quando non esiste alcun livello gestito distribuito dall'amministratore: le impostazioni dell'host si applicano quindi come l'unico livello gestito, ancora filtrate a valori restrittivi. Per i limiti del filtro e come le fonti gestite interagiscono, vedi [Impostazioni padre da host di incorporamento](/docs/it/managed-settings#parent-settings-from-embedding-hosts) e [Limitare le impostazioni padre](/docs/it/claude-apps-gateway#restrict-parent-settings).

6413 6435 

6414<span id="compute-managed-settings-with-a-policy-helper" />6436<span id="compute-managed-settings-with-a-policy-helper" />

6415 6437 


6417 `policyHelper`6439 `policyHelper`

6418</h3>6440</h3>

6419 6441 

6420Esegui un eseguibile che distribuisci che calcola le impostazioni gestite all'avvio, in modo da poter derivare la politica dalla postura del dispositivo, dall'identità o da un servizio remoto invece di un file statico. Claude Code esegue l'helper prima di accettare il primo prompt e tratta le impostazioni che emette come le impostazioni gestite per la sessione.6442Esegui un eseguibile che distribuisci che calcola le impostazioni gestite all'avvio, così puoi derivare la politica dalla postura del dispositivo, dall'identità o da un servizio remoto invece di un file statico. Claude Code esegue l'helper prima di accettare il primo prompt e tratta le impostazioni che emette come le impostazioni gestite per la sessione.

6421 6443 

6422* **Scope**: [`Managed`](#scopes). Leggi dal plist macOS, dal registro Windows HKLM o dal file delle impostazioni gestite. Claude Code legge la chiave dalla fonte gestita con la priorità più alta che contiene una [chiave di politica](/docs/it/managed-settings#how-claude-code-combines-managed-sources) e esegue l'helper solo quando quella fonte è una di queste tre; ignora la chiave nelle impostazioni gestite dal server, nel registro HKCU e nelle impostazioni padre fornite dall'host.6444* **Scope**: [`Managed`](#scopes). Leggi dalla plist macOS, dal registro HKLM di Windows o dal file delle impostazioni gestite. Claude Code legge la chiave dalla fonte gestita con la priorità più alta che contiene una [chiave di politica](/docs/it/managed-settings#how-claude-code-combines-managed-sources) ed esegue l'helper solo quando quella fonte è una di quelle tre; ignora la chiave nelle impostazioni gestite dal server, nel registro HKCU e nelle impostazioni padre fornite dall'host.

6423* **Type**: object con `path`, `timeoutMs` e `refreshIntervalMs`6445* **Type**: object con `path`, `timeoutMs` e `refreshIntervalMs`

6424* **Default**: non impostato, quindi nessun helper viene eseguito6446* **Default**: non impostato, quindi nessun helper viene eseguito

6425 6447 

6426Quando le impostazioni gestite dal server forniscono la politica all'avvio, hanno la precedenza sulla fonte dell'helper e l'helper non viene eseguito.6448Quando le impostazioni gestite dal server forniscono la politica all'avvio, hanno la precedenza sulla fonte dell'helper e l'helper non viene eseguito.

6427 6449 

6428Se un recupero di impostazioni successivo segnala che le impostazioni gestite dal server sono state rimosse, Claude Code esegue l'helper a quel punto piuttosto che attendere il prossimo avvio. Il suo output governa il resto della sessione e un'esecuzione che non riesce termina la sessione con lo stesso messaggio di un'[esecuzione di avvio non riuscita](#helper-failures).6450Se un recupero di impostazioni successivo segnala che le impostazioni gestite dal server sono state rimosse, Claude Code esegue l'helper a quel punto piuttosto che attendere il prossimo avvio. Il suo output governa il resto della sessione e un'esecuzione che fallisce termina la sessione con lo stesso messaggio di un'[esecuzione di avvio fallita](#helper-failures).

6429 6451 

6430Questo esempio esegue l'helper con un timeout di 5 secondi e lo riesegue ogni cinque minuti:6452Questo esempio esegue l'helper con un timeout di 5 secondi e lo riesegue ogni cinque minuti:

6431 6453 


6455}6477}

6456```6478```

6457 6479 

6458Quando l'helper emette `managedSettings`, quell'oggetto diventa l'unica fonte di impostazioni gestite per l'esecuzione: Claude Code ignora le fonti MDM, file e HKCU, legge le [chiavi tra fonti](/docs/it/managed-settings#keys-read-from-every-admin-source) solo dall'output dell'helper e non unisce mai le [impostazioni padre](/docs/it/managed-settings#parent-settings-from-embedding-hosts).6480Quando l'helper emette `managedSettings`, quell'oggetto diventa l'unica fonte di impostazioni gestite per l'esecuzione: Claude Code ignora le fonti MDM, file e HKCU, legge le [chiavi cross-source](/docs/it/managed-settings#keys-read-from-every-admin-source) solo dall'output dell'helper e non unisce mai le [impostazioni padre](/docs/it/managed-settings#parent-settings-from-embedding-hosts).

6459 6481 

6460Il controllo `forceRemoteSettingsRefresh` all'avvio viene eseguito prima dell'helper e legge qualsiasi fonte amministrativa. Un helper che esce con `0` con un envelope che omette `managedSettings` non contribuisce con impostazioni gestite e le altre fonti si applicano come al solito.6482Il controllo di avvio `forceRemoteSettingsRefresh` viene eseguito prima dell'helper e legge qualsiasi fonte amministrativa. Un helper che esce con `0` con un envelope che omette `managedSettings` non contribuisce con alcuna impostazione gestita e le altre fonti si applicano come al solito.

6461 6483 

6462<h4 id="helper-failures">6484<h4 id="helper-failures">

6463 Errori dell'helper6485 Errori dell'helper

6464</h4>6486</h4>

6465 6487 

6466Un'esecuzione dell'helper non riesce quando:6488Un'esecuzione dell'helper fallisce quando:

6467 6489 

6468* `path` viola le regole in [`policyHelper.path`](#policyhelper-path).6490* `path` viola le regole in [`policyHelper.path`](#policyhelper-path).

6469* Nessun file regolare è in `path`. Claude Code controlla il file prima di avviare l'helper, entro lo stesso budget `timeoutMs`, quindi un mount di rete non responsivo può causare il fallimento dell'esecuzione.6491* Nessun file regolare è in `path`. Claude Code controlla il file prima di avviare l'helper, entro lo stesso budget `timeoutMs`, quindi un mount di rete non responsivo può causare il fallimento dell'esecuzione.

6470* L'helper esce con un valore diverso da zero, è ancora in esecuzione quando `timeoutMs` trascorre, o non si avvia affatto, ad esempio perché non è eseguibile.6492* L'helper esce con un valore diverso da zero, è ancora in esecuzione quando `timeoutMs` trascorre o non si avvia affatto, ad esempio perché non è eseguibile.

6471* L'helper scrive più di 1 MiB su stdout o su stderr.6493* L'helper scrive più di 1 MiB su stdout o su stderr.

6472* stdout non è un singolo oggetto JSON, o il suo `managedSettings` ha una [violazione dello schema che Claude Code non può riparare](/docs/it/managed-settings#find-entries-claude-code-dropped).6494* stdout non è un singolo oggetto JSON, o il suo `managedSettings` ha una [violazione dello schema che Claude Code non può riparare](/docs/it/managed-settings#find-entries-claude-code-dropped).

6473 6495 

6474Quando l'esecuzione all'avvio non riesce, Claude Code stampa il motivo e rifiuta di avviarsi. Dopo un'uscita con valore diverso da zero, il motivo include stderr dell'helper, o il suo stdout quando stderr è vuoto. Dopo un timeout, il motivo nomina il limite `timeoutMs` e non include nessuno dell'output dell'helper. Il rifiuto copre le sessioni interattive, `claude -p`, le sessioni dell'Agent SDK, le [sessioni in background](/docs/it/agent-view) e la maggior parte dei sottocomandi.6496Quando l'esecuzione di avvio fallisce, Claude Code stampa il motivo e rifiuta di avviarsi. Dopo un'uscita diversa da zero, il motivo include stderr dell'helper, o il suo stdout quando stderr è vuoto. Dopo un timeout, il motivo nomina il limite `timeoutMs` e non include alcun output dell'helper. Il rifiuto copre le sessioni interattive, `claude -p`, le sessioni dell'Agent SDK, le [sessioni in background](/docs/it/agent-view) e la maggior parte dei sottocomandi.

6475 6497 

6476Il rifiuto è deliberato, quindi un helper che ha bisogno di resilienza alle interruzioni dovrebbe servire dalla sua stessa cache e uscire con `0`.6498Il rifiuto è deliberato, quindi un helper che ha bisogno di resilienza alle interruzioni dovrebbe servire dalla sua stessa cache ed uscire con `0`.

6477 6499 

6478Quando un aggiornamento in background non riesce, Claude Code mantiene l'ultima politica riuscita in vigore e `/status` mostra l'aggiornamento non riuscito con il suo motivo fino a quando un aggiornamento non riesce. Ogni aggiornamento viene eseguito secondo le stesse regole di `timeoutMs` e fallimento dell'esecuzione all'avvio.6500Quando un aggiornamento in background fallisce, Claude Code mantiene l'ultima politica riuscita in vigore e `/status` mostra l'aggiornamento fallito con il suo motivo fino a quando un aggiornamento non riesce. Ogni aggiornamento viene eseguito secondo lo stesso `timeoutMs` e le stesse regole di fallimento dell'esecuzione di avvio.

6479 6501 

6480Con `--debug`, Claude Code scrive stderr dell'helper da ogni esecuzione al [log di debug](/docs/it/debug-your-config).6502Con `--debug`, Claude Code scrive stderr dell'helper da ogni esecuzione nel [log di debug](/docs/it/debug-your-config).

6481 6503 

6482Claude Code segnala un valore `policyHelper` non valido come una [voce eliminata](/docs/it/managed-settings#find-entries-claude-code-dropped) e avvia la sessione sulle impostazioni gestite rimanenti senza eseguire un helper. I valori non validi includono una stringa di percorso bare e un `timeoutMs` al di sotto del [suo minimo](#policyhelper-timeoutms).6504Claude Code segnala un valore `policyHelper` non valido come una [voce eliminata](/docs/it/managed-settings#find-entries-claude-code-dropped) e avvia la sessione sulle impostazioni gestite rimanenti senza eseguire un helper. I valori non validi includono una stringa di percorso bare e un `timeoutMs` al di sotto del [suo minimo](#policyhelper-timeoutms).

6483 6505 


6487 `policyHelper.path`6509 `policyHelper.path`

6488</h3>6510</h3>

6489 6511 

6490Nomina l'eseguibile dell'helper che Claude Code esegue. Per quello che accade quando il percorso viola le regole sottostanti, vedere [Errori dell'helper](#helper-failures).6512Nomina l'eseguibile dell'helper che Claude Code esegue. Per quello che succede quando il percorso viola le regole sottostanti, vedi [Errori dell'helper](#helper-failures).

6491 6513 

6492* **Scope**: [`Managed`](#scopes). Leggi dal plist macOS, dal registro Windows HKLM o dal file delle impostazioni gestite, ovunque [`policyHelper`](#policyhelper) sia letto.6514* **Scope**: [`Managed`](#scopes). Leggi dalla plist macOS, dal registro HKLM di Windows o dal file delle impostazioni gestite, ovunque [`policyHelper`](#policyhelper) sia letto.

6493* **Type**: string, un percorso assoluto in forma normalizzata, senza segmenti `.` o `..`; su Windows, un percorso con lettera di unità o UNC che termina in `.exe`6515* **Type**: string, un percorso assoluto in forma normalizzata, senza segmenti `.` o `..`; su Windows, un percorso con lettera di unità o UNC che termina in `.exe`

6494* **Default**: nessuno; obbligatorio quando `policyHelper` è impostato6516* **Default**: nessuno; obbligatorio quando `policyHelper` è impostato

6495 6517 


6505 `policyHelper.timeoutMs`6527 `policyHelper.timeoutMs`

6506</h3>6528</h3>

6507 6529 

6508Imposta quanto tempo Claude Code attende l'helper prima di trattare l'esecuzione come non riuscita. Un'esecuzione scaduta non riesce allo stesso modo di un'uscita con valore diverso da zero, quindi all'avvio Claude Code rifiuta di avviarsi.6530Imposta quanto tempo Claude Code attende l'helper prima di trattare l'esecuzione come fallita. Un'esecuzione scaduta fallisce allo stesso modo di un'uscita diversa da zero, quindi all'avvio Claude Code rifiuta di avviarsi.

6509 6531 

6510* **Scope**: [`Managed`](#scopes). Leggi dal plist macOS, dal registro Windows HKLM o dal file delle impostazioni gestite, ovunque [`policyHelper`](#policyhelper) sia letto.6532* **Scope**: [`Managed`](#scopes). Leggi dalla plist macOS, dal registro HKLM di Windows o dal file delle impostazioni gestite, ovunque [`policyHelper`](#policyhelper) sia letto.

6511* **Type**: integer, millisecondi, minimo `1000`6533* **Type**: integer, millisecondi, minimo `1000`

6512* **Default**: `10000`6534* **Default**: `10000`

6513 6535 


6524 `policyHelper.refreshIntervalMs`6546 `policyHelper.refreshIntervalMs`

6525</h3>6547</h3>

6526 6548 

6527Fai in modo che Claude Code riesegua l'helper in background su un intervallo in modo che i cambiamenti di politica raggiungano una sessione in esecuzione. Quando un aggiornamento ha successo, il suo output sostituisce le impostazioni gestite precedenti senza un riavvio; quando un aggiornamento non riesce, Claude Code mantiene la politica che ha già.6549Fai in modo che Claude Code riesegua l'helper in background su un intervallo in modo che i cambiamenti di politica raggiungano una sessione in esecuzione. Quando un aggiornamento riesce, il suo output sostituisce le impostazioni gestite precedenti senza un riavvio; quando un aggiornamento fallisce, Claude Code mantiene la politica che ha già.

6528 6550 

6529* **Scope**: [`Managed`](#scopes). Leggi dal plist macOS, dal registro Windows HKLM o dal file delle impostazioni gestite, ovunque [`policyHelper`](#policyhelper) sia letto.6551* **Scope**: [`Managed`](#scopes). Leggi dalla plist macOS, dal registro HKLM di Windows o dal file delle impostazioni gestite, ovunque [`policyHelper`](#policyhelper) sia letto.

6530* **Type**: integer, millisecondi: `0` per disabilitare l'aggiornamento, altrimenti almeno `60000`6552* **Type**: integer, millisecondi: `0` per disabilitare l'aggiornamento, altrimenti almeno `60000`

6531* **Default**: non impostato, quindi Claude Code esegue l'helper una volta all'avvio6553* **Default**: non impostato, quindi Claude Code esegue l'helper una volta all'avvio

6532 6554 


6545 `wslInheritsWindowsSettings`6567 `wslInheritsWindowsSettings`

6546</h3>6568</h3>

6547 6569 

6548Fai in modo che Claude Code su WSL legga le impostazioni gestite dalla catena di politica Windows, con HKLM e il file delle impostazioni gestite Windows che hanno priorità su `/etc/claude-code` e HKCU al di sotto. Mentre la catena è attiva, Claude Code legge `/etc/claude-code` solo quando [nessun documento amministrativo Windows è presente](/docs/it/managed-settings#present-admin-documents) nel valore del registro HKLM o nella cartella `C:\Program Files\ClaudeCode\`. Impostalo per estendere la politica che già distribuisci su Windows alle sessioni WSL sulla stessa macchina, in modo che seguano le stesse regole delle sessioni host. Claude Code lo onora solo quando impostato nella chiave del registro HKLM o in un file di impostazioni gestite o drop-in sotto `C:\Program Files\ClaudeCode\`, entrambi i quali richiedono l'amministratore Windows per scrivere.6570Fai in modo che Claude Code su WSL legga le impostazioni gestite dalla catena di politica di Windows, con HKLM e il file di impostazioni gestite di Windows che hanno priorità su `/etc/claude-code` e HKCU sottostante. Mentre la catena è attiva, Claude Code legge `/etc/claude-code` solo quando [nessun documento amministrativo di Windows è presente](/docs/it/managed-settings#present-admin-documents) nel valore del registro HKLM o nella cartella `C:\Program Files\ClaudeCode\`. Impostalo per estendere la politica che distribuisci già su Windows alle sessioni WSL sulla stessa macchina, in modo che seguano le stesse regole delle sessioni host. Claude Code lo onora solo quando impostato nella chiave del registro HKLM o in un file di impostazioni gestite o drop-in sotto `C:\Program Files\ClaudeCode\`, entrambi i quali richiedono privilegi di amministratore di Windows per scrivere.

6549 6571 

6550* **Scope**: [`Managed`](#scopes). In una fonte Windows controllata dall'amministratore.6572* **Scope**: [`Managed`](#scopes). In una fonte Windows controllata dall'amministratore.

6551* **Type**: Boolean6573* **Type**: Boolean

6552 * `true`: Claude Code su WSL legge le impostazioni gestite dalla catena di politica Windows e legge `/etc/claude-code` solo quando nessun documento amministrativo Windows è presente6574 * `true`: Claude Code su WSL legge le impostazioni gestite dalla catena di politica di Windows e legge `/etc/claude-code` solo quando nessun documento amministrativo di Windows è presente

6553 * `false`: WSL legge solo `/etc/claude-code`6575 * `false`: WSL legge solo `/etc/claude-code`

6554* **Default**: `false`, quindi WSL legge solo `/etc/claude-code`6576* **Default**: `false`, quindi WSL legge solo `/etc/claude-code`

6555 6577 


6561 6583 

6562Una volta che una fonte amministrativa attiva la catena, la politica HKCU si unisce ad essa su WSL solo quando HKCU imposta anche la chiave su `true`. Quella copia non attiva la catena da sola. Una fonte Windows che contiene solo questa chiave, impostata su `true` o `false`, non conta come fonte di politica, quindi una fonte con priorità inferiore fornisce comunque la politica. Questa chiave non ha effetto su Windows nativo.6584Una volta che una fonte amministrativa attiva la catena, la politica HKCU si unisce ad essa su WSL solo quando HKCU imposta anche la chiave su `true`. Quella copia non attiva la catena da sola. Una fonte Windows che contiene solo questa chiave, impostata su `true` o `false`, non conta come fonte di politica, quindi una fonte con priorità inferiore fornisce comunque la politica. Questa chiave non ha effetto su Windows nativo.

6563 6585 

6564Claude Code legge `true` e `false` con o senza virgolette e legge `null` come rimozione della chiave. Una fonte Windows controllata dall'amministratore che contiene qualsiasi altro valore conta come un [documento amministrativo presente](/docs/it/managed-settings#present-admin-documents) con la catena attivata: né `/etc/claude-code` né HKCU si applica, e un avviso di avvio nomina la chiave. Un valore HKLM o un file della cartella Windows che esiste ma non può essere letto mantiene anche `/etc/claude-code` dall'applicarsi indipendentemente dal fatto che la catena sia attiva o meno. Richiede Claude Code v2.1.282 o successivo.6586Claude Code legge `true` e `false` con o senza virgolette e legge `null` come rimozione della chiave. Una fonte Windows controllata dall'amministratore che contiene qualsiasi altro valore conta come un [documento amministrativo presente](/docs/it/managed-settings#present-admin-documents) con la catena attivata: né `/etc/claude-code` né HKCU si applica e un avviso di avvio nomina la chiave. Un valore HKLM o un file di cartella Windows che esiste ma non può essere letto mantiene anche `/etc/claude-code` dall'applicarsi indipendentemente dal fatto che la catena sia attiva o meno. Richiede Claude Code v2.1.282 o successivo.

6565 6587 

6566<h2 id="global-config-settings">6588<h2 id="global-config-settings">

6567 Impostazioni di configurazione globale6589 Impostazioni di configurazione globale

skills.md +26 −2

Details

56 56 

57Claude modifica il file registrato solo quando ha guidato male un'esecuzione, come un comando che ha fallito o uno step mancante, così potete commit il file senza diff per-sessione. Prima della v2.1.205, lo skill raggruppato ha detto a Claude di incorporare qualsiasi cosa un'esecuzione ha imparato, il che ha causato frequenti conflitti di merge.57Claude modifica il file registrato solo quando ha guidato male un'esecuzione, come un comando che ha fallito o uno step mancante, così potete commit il file senza diff per-sessione. Prima della v2.1.205, lo skill raggruppato ha detto a Claude di incorporare qualsiasi cosa un'esecuzione ha imparato, il che ha causato frequenti conflitti di merge.

58 58 

59<h3 id="work-on-claude-api-projects">

60 Lavorare su progetti Claude API

61</h3>

62 

63Lo skill raggruppato `/claude-api` carica il materiale di riferimento di [Claude API](https://platform.claude.com/docs/en/api/overview) e [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) per il linguaggio del vostro progetto. Claude lo attiva anche automaticamente quando il vostro codice importa `anthropic` o `@anthropic-ai/sdk`.

64 

65Per avviare uno dei flussi di lavoro dello skill, digitate un sottocomando dopo il nome dello skill al prompt di Claude Code, ad esempio `/claude-api migrate`. La tabella elenca cosa fa ogni sottocomando e la versione più antica di Claude Code che lo include. `migrate` e `managed-agents-onboard` precedono v2.1.221, la versione più vecchia che la tabella traccia.

66 

67| Sottocomando | Cosa fa | Versione minima |

68| :- | :- | :- |

69| `migrate` | Aggiornare il vostro codice Claude API esistente a un modello più recente | Precedente a v2.1.221 |

70| `upgrade` | Spostare la dipendenza SDK Anthropic del vostro progetto attraverso una versione principale, attualmente il pacchetto Python `anthropic` da 0.x a 1.x | v2.1.236 o successivo |

71| `managed-agents-onboard` | Guidarvi attraverso la creazione di un nuovo Managed Agent | Precedente a v2.1.221 |

72| `prompt-audit` | Contrassegnare le istruzioni scritte per modelli più vecchi nei vostri prompt, skill e descrizioni di strumenti e proporre correzioni come diff | v2.1.221 o successivo |

73| `cost-optimize` | Profilare dove va la spesa Claude API del vostro progetto e proporre risparmi da opzioni come prompt caching, riduzione di token di input e output non necessari, batch processing, effort, e scelta del modello, una modifica alla volta | v2.1.247 o successivo |

74| `build-eval` | Costruire un set di eval per la vostra app basata su Claude | v2.1.259 o successivo |

75| `hillclimb` | Migliorare iterativamente la vostra app rispetto a un eval esistente | v2.1.259 o successivo |

76| `preserved-thinking-migration` | Trovare le modifiche che la vostra integrazione apporta ai turni precedenti, al suo system prompt, o alla sua lista di strumenti che invalidano i blocchi di [preserved thinking](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking), misurare quanto ragionamento ogni uno elimina, e proporre correzioni una alla volta, ri-misurando dopo ogni modifica | v2.1.282 o successivo |

77 

59<h2 id="getting-started">78<h2 id="getting-started">

60 Iniziare79 Iniziare

61</h2>80</h2>


909 928 

910Vedere una skill attivata ti dice che Claude l'ha trovata, non che abbia fatto quello che intendevi. Per sapere che una skill funziona, misura separatamente se Claude la invoca sui prompt che dovrebbe, e se l'output corrisponde a quello che ti aspetti quando lo fa.929Vedere una skill attivata ti dice che Claude l'ha trovata, non che abbia fatto quello che intendevi. Per sapere che una skill funziona, misura separatamente se Claude la invoca sui prompt che dovrebbe, e se l'output corrisponde a quello che ti aspetti quando lo fa.

911 930 

912Il controllo per entrambi è un confronto di base. Raccogli alcuni prompt realistici, esegui ognuno in una sessione nuova con la skill disponibile e di nuovo con essa [disabilitata](#override-skill-visibility-from-settings), e confronta i risultati. Una sessione nuova è importante perché il contesto residuo dalla creazione della skill maschererà le lacune nelle istruzioni scritte.931Il controllo per entrambi è un confronto di base. Raccogli alcuni prompt realistici, esegui ognuno in una sessione nuova con la skill disponibile e di nuovo con essa disattivata, e confronta i risultati. Una sessione nuova è importante perché il contesto residuo dalla creazione della skill maschererà le lacune nelle istruzioni scritte.

932 

933Come disattivi la skill per la seconda esecuzione dipende da dove proviene:

934 

935* **Skill personale o di progetto**: impostala su `"off"` in [`skillOverrides`](#override-skill-visibility-from-settings).

936* **Skill fornita da un plugin**: `skillOverrides` non si applica alle skill dei plugin. Usa [`claude plugin eval`](/docs/it/plugin-evals#the-no-plugin-baseline) invece, che ripete ogni esecuzione senza plugin caricato.

913 937 

914Due strumenti automatizzano quel confronto. Per una skill che viene fornita in un [plugin](/docs/it/plugins/overview), [`claude plugin eval`](/docs/it/plugin-evals) esegue ogni prompt in una sessione isolata con e senza il plugin, la valuta con grader che definisci o che scrive per te, e esce con un codice diverso da zero al di sotto di una soglia in modo da poter controllare il CI su di essa. Per iterare su una singola skill all'interno di una conversazione Claude Code, il plugin skill-creator di seguito esegue un ciclo simile con il suo formato `evals/evals.json`. I due formati non sono intercambiabili.938Due strumenti automatizzano il confronto di base. Per una skill fornita in un [plugin](/docs/it/plugins/overview), [`claude plugin eval`](/docs/it/plugin-evals) esegue ogni prompt in una sessione isolata con e senza il plugin, la valuta con grader che definisci o che scrive per te, e esce con un codice diverso da zero al di sotto di una soglia in modo da poter controllare il CI su di essa. Per iterare su una singola skill all'interno di una conversazione Claude Code, il plugin skill-creator di seguito esegue un ciclo simile con il suo formato `evals/evals.json`. I due formati non sono intercambiabili.

915 939 

916<h3 id="run-evals-with-skill-creator">940<h3 id="run-evals-with-skill-creator">

917 Esegui eval con skill-creator941 Esegui eval con skill-creator

statusline.md +1 −1

Details

1178**La percentuale di contesto mostra valori inaspettati**1178**La percentuale di contesto mostra valori inaspettati**

1179 1179 

1180* Usa `used_percentage` per lo stato di contesto più semplice e accurato1180* Usa `used_percentage` per lo stato di contesto più semplice e accurato

1181* La percentuale di contesto potrebbe differire dall'output `/context` a causa di quando ciascuno viene calcolato1181* La barra di stato riporta i conteggi dall'ultima risposta API, mentre `/context` aggiunge una stima per i messaggi aggiunti da quella risposta, quindi `/context` può leggere più alto fino alla risposta successiva

1182 1182 

1183**I link OSC 8 non sono cliccabili**1183**I link OSC 8 non sono cliccabili**

1184 1184 

sub-agents.md +3 −5

Details

802 - matcher: "Bash"802 - matcher: "Bash"

803 hooks:803 hooks:

804 - type: command804 - type: command

805 command: "./scripts/validate-command.sh $TOOL_INPUT"805 command: "./scripts/validate-command.sh"

806 PostToolUse:806 PostToolUse:

807 - matcher: "Edit|Write"807 - matcher: "Edit|Write"

808 hooks:808 hooks:


850}850}

851```851```

852 852 

853Un matcher con trattini come `db-agent` corrisponde esattamente su Claude Code v2.1.195 o successivo. Nelle versioni precedenti viene valutato come un'espressione regolare non ancorata e si attiva anche per qualsiasi tipo di agente che lo contiene, come `prod-db-agent`; ancoratelo come `^db-agent$` su quelle versioni.

854 

855Consulti [Hooks](/docs/it/hooks) per il formato di configurazione dell'hook completo.853Consulti [Hooks](/docs/it/hooks) per il formato di configurazione dell'hook completo.

856 854 

857<h2 id="work-with-subagents">855<h2 id="work-with-subagents">


876 874 

877* **Linguaggio naturale**: nomini il subagent nel suo prompt; Claude decide se delegare875* **Linguaggio naturale**: nomini il subagent nel suo prompt; Claude decide se delegare

878* **@-mention**: garantisce che il subagent viene eseguito per un'attività876* **@-mention**: garantisce che il subagent viene eseguito per un'attività

879* **A livello di sessione**: l'intera sessione utilizza il prompt di sistema, le restrizioni di strumenti e il modello di quel subagent tramite il flag `--agent` o l'impostazione `agent`877* **A livello di sessione**: l'intera sessione viene eseguita come quel subagent tramite il flag `--agent` o l'impostazione `agent`

880 878 

881Per il linguaggio naturale, non c'è sintassi speciale. Nomini il subagent e Claude generalmente delega:879Per il linguaggio naturale, non c'è sintassi speciale. Nomini il subagent e Claude generalmente delega:

882 880 


897 895 

898Può anche digitare la mention manualmente senza usare il picker: `@agent-<name>` per i subagent locali, o `@agent-` seguito dal nome con ambito per i subagent plugin, ad esempio `@agent-my-plugin:code-reviewer`. Mentre digita questo modulo il typeahead mostra corrispondenze di file piuttosto che agenti. La mention dell'agente si risolve comunque quando invia.896Può anche digitare la mention manualmente senza usare il picker: `@agent-<name>` per i subagent locali, o `@agent-` seguito dal nome con ambito per i subagent plugin, ad esempio `@agent-my-plugin:code-reviewer`. Mentre digita questo modulo il typeahead mostra corrispondenze di file piuttosto che agenti. La mention dell'agente si risolve comunque quando invia.

899 897 

900**Esegua l'intera sessione come un subagent.** Passi [`--agent <name>`](/docs/it/cli-reference) per avviare una sessione in cui il thread principale stesso assume il prompt di sistema, le restrizioni di strumenti e il modello di quel subagent:898**Esegua l'intera sessione come un subagent.** Passi [`--agent <name>`](/docs/it/cli-reference) per avviare una sessione in cui il thread principale stesso assume le restrizioni di strumenti e il modello di quel subagent:

901 899 

902```bash theme={null}900```bash theme={null}

903claude --agent code-reviewer901claude --agent code-reviewer

Details

122 122 

123 <tr>123 <tr>

124 <td>Fatturazione</td>124 <td>Fatturazione</td>

125 <td><strong>Teams:</strong> \$150/seat (Premium) con PAYG disponibile<br /><strong>Enterprise:</strong> <a href="https://claude.com/contact-sales?utm_source=claude_code&utm_medium=docs&utm_content=third_party_enterprise">Contatta il team di vendita</a></td>125 <td><strong>Teams:</strong> sottoscrizione per posto con PAYG disponibile, vedi <a href="https://claude.com/pricing?utm_source=claude_code&utm_medium=docs&utm_content=third_party_pricing#team-&-enterprise">prezzi</a><br /><strong>Enterprise:</strong> <a href="https://claude.com/contact-sales?utm_source=claude_code&utm_medium=docs&utm_content=third_party_enterprise">Contatta il team di vendita</a></td>

126 <td>PAYG</td>126 <td>PAYG</td>

127 <td>PAYG tramite AWS</td>127 <td>PAYG tramite AWS</td>

128 <td>PAYG tramite AWS Marketplace</td>128 <td>PAYG tramite AWS Marketplace</td>

Details

382 WebSocket source382 WebSocket source

383</h3>383</h3>

384 384 

385<Note>

386 La sorgente WebSocket richiede Claude Code v2.1.195 o successivo.

387</Note>

388 

389Quando un server invia già eventi su WebSocket, Claude può connettersi direttamente invece di scrivere uno script di polling. Ogni tipo di attività del socket diventa un evento o termina il monitoraggio:385Quando un server invia già eventi su WebSocket, Claude può connettersi direttamente invece di scrivere uno script di polling. Ogni tipo di attività del socket diventa un evento o termina il monitoraggio:

390 386 

391* **Messaggi di testo**: ognuno diventa un evento, anche quando il messaggio si estende su più righe.387* **Messaggi di testo**: ognuno diventa un evento, anche quando il messaggio si estende su più righe.

Details

445 Errori di connessione TLS o SSL445 Errori di connessione TLS o SSL

446</h3>446</h3>

447 447 

448Errori come `curl: (35) TLS connect error`, `schannel: next InitializeSecurityContext failed`, o il `Could not establish trust relationship for the SSL/TLS secure channel` di PowerShell indicano fallimenti dell'handshake TLS.448Errori come questi significano che l'handshake TLS è fallito:

449 

450* `curl: (35) TLS connect error`

451* `schannel: next InitializeSecurityContext failed`

452* PowerShell's `Could not create SSL/TLS secure channel`

453* PowerShell's `Could not establish trust relationship for the SSL/TLS secure channel`

449 454 

450**Soluzioni:**455**Soluzioni:**

451 456 


1017 403 Forbidden dopo l'accesso1022 403 Forbidden dopo l'accesso

1018</h3>1023</h3>

1019 1024 

1020Se vedi `API Error: 403 {"error":{"type":"forbidden","message":"Request not allowed"}}` dopo l'accesso:1025Se vedi `API Error: 403 Request not allowed` dopo l'accesso:

1021 1026 

1022* **Utenti Claude Pro/Max**: verifica che il tuo abbonamento sia attivo in [claude.ai/settings](https://claude.ai/settings)1027* **Utenti Claude Pro/Max**: verifica che il tuo abbonamento sia attivo in [claude.ai/settings](https://claude.ai/settings)

1023* **Utenti della Console Anthropic**: conferma che il tuo account ha il ruolo "Claude Code" o "Developer". Gli amministratori assegnano questo nella Console Anthropic sotto Impostazioni → Membri.1028* **Utenti della Console Anthropic**: conferma che il tuo account ha il ruolo "Claude Code" o "Developer". Gli amministratori assegnano questo nella Console Anthropic sotto Impostazioni → Membri.

Details

52 Il file `.heapsnapshot` contiene ogni stringa nel processo, inclusa la tua conversazione completa e le credenziali. Non allegarlo a un problema pubblico o condividerlo.52 Il file `.heapsnapshot` contiene ogni stringa nel processo, inclusa la tua conversazione completa e le credenziali. Non allegarlo a un problema pubblico o condividerlo.

53</Warning>53</Warning>

54 54 

55Il comando stampa anche un riepilogo nella conversazione, mostrando la dimensione del resident set, l'heap JS, i buffer di array e la memoria nativa non contabilizzata, più eventuali indicatori di perdita che ha rilevato, come un alto tasso di crescita della memoria o un numero insolitamente alto di handle aperti. Il riepilogo indica se la maggior parte della memoria è nell'heap JS, che lo snapshot cattura, o nella memoria nativa, che non cattura.55Il comando stampa anche un riepilogo nella conversazione, mostrando la memoria totale del processo, quanta di essa è nell'heap JS e quanta si trova al di fuori dell'heap. Il riepilogo elenca anche eventuali indicatori di perdita, come un alto tasso di crescita della memoria o un numero insolitamente alto di handle aperti. Il riepilogo indica se la maggior parte della memoria è nell'heap JS, che lo snapshot cattura, o nella memoria nativa, che non cattura.

56 56 

57Fai una di due cose con l'output:57Fai una di due cose con l'output:

58 58 

workflows.md +1 −1

Details

91 Guardare l'esecuzione91 Guardare l'esecuzione

92</h3>92</h3>

93 93 

94I flussi di lavoro vengono eseguiti in background, quindi la sessione rimane reattiva mentre gli agenti lavorano. Esegui `/workflows` in qualsiasi momento per elencare i flussi di lavoro in esecuzione e completati, quindi selezionane uno per aprire la sua vista di progresso.94I flussi di lavoro vengono eseguiti in background, quindi la sessione rimane reattiva mentre gli agenti lavorano. Esegui `/workflows` in qualsiasi momento per elencare i flussi di lavoro in esecuzione e completati, quindi selezionane uno per aprire la sua vista di progresso. Per interrompere un flusso di lavoro in esecuzione senza aprirlo, selezionalo nell'elenco e premi `x`.

95 95 

96La vista di progresso mostra ogni fase con i suoi conteggi di agenti, totali di token e tempo trascorso. Il piè di pagina elenca il tasto per ogni azione:96La vista di progresso mostra ogni fase con i suoi conteggi di agenti, totali di token e tempo trascorso. Il piè di pagina elenca il tasto per ogni azione:

97 97