SpyBara
Go Premium

Documentation 2026-06-16 21:57 UTC to 2026-06-17 17:02 UTC

109 files changed +6,871 −1,247. View all changes and history on the product overview
2026
Thu 18 02:02 Wed 17 17:02 Tue 16 21:57 Mon 15 23:02 Sat 13 21:59 Fri 12 22:00 Thu 11 23:01 Wed 10 23:57 Tue 9 06:34 Mon 8 06:52 Sat 6 06:24 Fri 5 06:45 Thu 4 06:52 Wed 3 06:53 Tue 2 06:51

admin-setup.md +31 −16

Details

15</Note>15</Note>

16 16 

17| Decisione | Cosa stai scegliendo | Riferimento |17| Decisione | Cosa stai scegliendo | Riferimento |

18| :-------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------- |18| :------------------------------------------------------------------------------------------ | :-------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------- |

19| [Scegli il tuo provider API](#scegli-il-tuo-provider-api) | Dove Claude Code si autentica e come viene fatturato | [Authentication](/it/authentication), [Bedrock](/it/amazon-bedrock), [Vertex AI](/it/google-vertex-ai), [Foundry](/it/microsoft-foundry) |19| [Scegli il tuo provider API](#choose-your-api-provider) | Dove Claude Code si autentica e come viene fatturato | [Authentication](/it/authentication), [Bedrock](/it/amazon-bedrock), [Vertex AI](/it/google-vertex-ai), [Foundry](/it/microsoft-foundry) |

20| [Decidi come le impostazioni raggiungono i dispositivi](#decidi-come-le-impostazioni-raggiungono-i-dispositivi) | Come la policy gestita raggiunge le macchine degli sviluppatori | [Server-managed settings](/it/server-managed-settings), [Settings files](/it/settings#settings-files) |20| [Decidi come le impostazioni raggiungono i dispositivi](#decide-how-settings-reach-devices) | Come la policy gestita raggiunge le macchine degli sviluppatori | [Server-managed settings](/it/server-managed-settings), [Settings files](/it/settings#settings-files) |

21| [Decidi cosa applicare](#decidi-cosa-applicare) | Quali strumenti, comandi e integrazioni sono consentiti | [Permissions](/it/permissions), [Sandboxing](/it/sandboxing) |21| [Decidi cosa applicare](#decide-what-to-enforce) | Quali strumenti, comandi e integrazioni sono consentiti | [Permissions](/it/permissions), [Sandboxing](/it/sandboxing) |

22| [Configura la visibilità dell'utilizzo](#configura-la-visibilità-dellutilizzo) | Come tracciare la spesa e l'adozione | [Analytics](/it/analytics), [Monitoring](/it/monitoring-usage), [Costs](/it/costs) |22| [Configura la visibilità dell'utilizzo](#set-up-usage-visibility) | Come tracciare la spesa e l'adozione | [Analytics](/it/analytics), [Monitoring](/it/monitoring-usage), [Costs](/it/costs) |

23| [Rivedi la gestione dei dati](#rivedi-la-gestione-dei-dati) | Conservazione dei dati e postura di conformità | [Data usage](/it/data-usage), [Security](/it/security) |23| [Rivedi la gestione dei dati](#review-data-handling) | Conservazione dei dati e postura di conformità | [Data usage](/it/data-usage), [Security](/it/security) |

24 24 

25## Scegli il tuo provider API25<h2 id="choose-your-api-provider">

26 Scegli il tuo provider API

27</h2>

26 28 

27Claude Code si connette a Claude attraverso uno dei diversi provider API. La tua scelta influisce sulla fatturazione, l'autenticazione, sulla postura di conformità che erediti e su quali funzionalità di Claude Code i tuoi sviluppatori possono utilizzare.29Claude Code si connette a Claude attraverso uno dei diversi provider API. La tua scelta influisce sulla fatturazione, l'autenticazione, sulla postura di conformità che erediti e su quali funzionalità di Claude Code i tuoi sviluppatori possono utilizzare.

28 30 


40 42 

41I requisiti di proxy e firewall in [Network configuration](/it/network-config) si applicano indipendentemente dal provider. Se vuoi un singolo endpoint davanti a più provider o un logging centralizzato delle richieste, consulta [LLM gateway](/it/llm-gateway).43I requisiti di proxy e firewall in [Network configuration](/it/network-config) si applicano indipendentemente dal provider. Se vuoi un singolo endpoint davanti a più provider o un logging centralizzato delle richieste, consulta [LLM gateway](/it/llm-gateway).

42 44 

43## Decidi come le impostazioni raggiungono i dispositivi45<h2 id="decide-how-settings-reach-devices">

46 Decidi come le impostazioni raggiungono i dispositivi

47</h2>

44 48 

45Le impostazioni gestite definiscono una policy che ha la precedenza sulla configurazione locale dello sviluppatore. Claude Code le cerca in quattro posti e utilizza la prima che trova su un determinato dispositivo.49Le impostazioni gestite definiscono una policy che ha la precedenza sulla configurazione locale dello sviluppatore. Claude Code controlla le quattro fonti sottostanti in ordine di priorità e applica la prima che restituisce una configurazione non vuota.

46 50 

47| Meccanismo | Consegna | Priorità | Piattaforme |51| Meccanismo | Consegna | Priorità | Piattaforme |

48| :---------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------- | :------------- |52| :---------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------- | :------------- |


63 67 

64Consulta [Server-managed settings](/it/server-managed-settings) e [Settings files and precedence](/it/settings#settings-files).68Consulta [Server-managed settings](/it/server-managed-settings) e [Settings files and precedence](/it/settings#settings-files).

65 69 

66## Decidi cosa applicare70<h2 id="decide-what-to-enforce">

71 Decidi cosa applicare

72</h2>

67 73 

68Le impostazioni gestite possono bloccare gli strumenti, l'esecuzione sandbox, limitare i server MCP e le fonti di plugin e controllare quali hook vengono eseguiti. Ogni riga è una superficie di controllo con le chiavi di impostazione che la guidano.74Le impostazioni gestite possono bloccare gli strumenti, l'esecuzione sandbox, limitare i server MCP e le fonti di plugin e controllare quali hook vengono eseguiti. Ogni riga è una superficie di controllo con le chiavi di impostazione che la guidano.

69 75 

70| Controllo | Cosa fa | Impostazioni chiave |76| Controllo | Cosa fa | Impostazioni chiave |

71| :------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------- |77| :------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------- |

72| [Permission rules](/it/permissions) | Consenti, chiedi o nega strumenti e comandi specifici | `permissions.allow`, `permissions.deny` |78| [Permission rules](/it/permissions) | Consenti, chiedi o nega strumenti e comandi specifici | `permissions.allow`, `permissions.deny` |

73| [Permission lockdown](/it/permissions#managed-only-settings) | Solo le regole di autorizzazione gestite si applicano; disabilita `--dangerously-skip-permissions` | `allowManagedPermissionRulesOnly`, `permissions.disableBypassPermissionsMode` |79| [Permission lockdown](/it/permissions#managed-only-settings) | Solo le regole di autorizzazione gestite si applicano; disabilita `--dangerously-skip-permissions` | `allowManagedPermissionRulesOnly`, `permissions.disableBypassPermissionsMode` |

74| [Sandboxing](/it/sandboxing) | Isolamento del filesystem e della rete a livello di sistema operativo con allowlist di domini | `sandbox.enabled`, `sandbox.network.allowedDomains` |80| [Sandboxing](/it/sandboxing) | Isolamento del filesystem e della rete a livello di sistema operativo con allowlist di domini | `sandbox.enabled`, `sandbox.network.allowedDomains` |


79| [Hook restrictions](/it/settings#hook-configuration) | Solo gli hook gestiti vengono caricati; limitare gli URL degli hook HTTP | `allowManagedHooksOnly`, `allowedHttpHookUrls` |85| [Hook restrictions](/it/settings#hook-configuration) | Solo gli hook gestiti vengono caricati; limitare gli URL degli hook HTTP | `allowManagedHooksOnly`, `allowedHttpHookUrls` |

80| [Disable agent view](/it/agent-view#how-background-sessions-are-hosted) | Disattivare `claude agents`, `--bg`, `/background` e il supervisore on-demand | `disableAgentView` |86| [Disable agent view](/it/agent-view#how-background-sessions-are-hosted) | Disattivare `claude agents`, `--bg`, `/background` e il supervisore on-demand | `disableAgentView` |

81| [Version floor](/it/settings) | Impedire all'aggiornamento automatico di installare al di sotto di un minimo a livello di organizzazione | `minimumVersion` |87| [Version floor](/it/settings) | Impedire all'aggiornamento automatico di installare al di sotto di un minimo a livello di organizzazione | `minimumVersion` |

88| [Required version range](/it/settings) | Rifiutare di avviarsi completamente quando la versione in esecuzione è al di fuori di un intervallo approvato dall'organizzazione. Più forte di `minimumVersion`, che blocca solo i downgrade | `requiredMinimumVersion`, `requiredMaximumVersion` |

82 89 

83Le regole di autorizzazione e il sandboxing coprono livelli diversi. Negare WebFetch blocca lo strumento fetch di Claude, ma se Bash è consentito, `curl` e `wget` possono comunque raggiungere qualsiasi URL. Il sandboxing chiude questo divario con un allowlist di domini di rete applicato a livello di sistema operativo.90Le regole di autorizzazione e il sandboxing coprono livelli diversi. Negare WebFetch blocca lo strumento fetch di Claude, ma se Bash è consentito, `curl` e `wget` possono comunque raggiungere qualsiasi URL. Il sandboxing chiude questo divario con un allowlist di domini di rete applicato a livello di sistema operativo.

84 91 

85Per il modello di minaccia che questi controlli difendono, consulta [Security](/it/security).92Per il modello di minaccia che questi controlli difendono, consulta [Security](/it/security).

86 93 

87## Configura la visibilità dell'utilizzo94<h2 id="set-up-usage-visibility">

95 Configura la visibilità dell'utilizzo

96</h2>

88 97 

89Scegli il monitoraggio in base a ciò che devi segnalare.98Scegli il monitoraggio in base a ciò che devi segnalare.

90 99 


96 105 

97I provider cloud espongono la spesa attraverso AWS Cost Explorer, GCP Billing o Azure Cost Management. I piani Claude for Teams e Enterprise includono una dashboard di utilizzo su [claude.ai/analytics/claude-code](https://claude.ai/analytics/claude-code).106I provider cloud espongono la spesa attraverso AWS Cost Explorer, GCP Billing o Azure Cost Management. I piani Claude for Teams e Enterprise includono una dashboard di utilizzo su [claude.ai/analytics/claude-code](https://claude.ai/analytics/claude-code).

98 107 

99## Rivedi la gestione dei dati108<h2 id="review-data-handling">

109 Rivedi la gestione dei dati

110</h2>

100 111 

101Sui piani Team, Enterprise, Claude API e provider cloud, Anthropic non addestra i modelli sul tuo codice o sui tuoi prompt. Il tuo provider API determina la conservazione e la postura di conformità.112Sui piani Team, Enterprise, Claude API e provider cloud, Anthropic non addestra i modelli sul tuo codice o sui tuoi prompt. Il tuo provider API determina la conservazione e la postura di conformità.

102 113 


108 119 

109Se hai bisogno di logging di audit a livello di richiesta o di instradare il traffico in base alla sensibilità dei dati, posiziona un [LLM gateway](/it/llm-gateway) tra gli sviluppatori e il tuo provider. Per i requisiti normativi e le certificazioni, consulta [Legal and compliance](/it/legal-and-compliance).120Se hai bisogno di logging di audit a livello di richiesta o di instradare il traffico in base alla sensibilità dei dati, posiziona un [LLM gateway](/it/llm-gateway) tra gli sviluppatori e il tuo provider. Per i requisiti normativi e le certificazioni, consulta [Legal and compliance](/it/legal-and-compliance).

110 121 

111## Verifica e onboard122<h2 id="verify-and-onboard">

123 Verifica e onboard

124</h2>

112 125 

113Dopo aver configurato le impostazioni gestite, fai eseguire a uno sviluppatore `/status` all'interno di Claude Code. L'output include una riga che inizia con `Enterprise managed settings` seguita dalla fonte tra parentesi, una di `(remote)`, `(plist)`, `(HKLM)`, `(HKCU)` o `(file)`. Consulta [Verify active settings](/it/settings#verify-active-settings).126Dopo aver configurato le impostazioni gestite, fai eseguire a uno sviluppatore `/status` all'interno di Claude Code. Nella scheda **Status**, la riga `Setting sources` mostra `Enterprise managed settings` seguita dalla fonte tra parentesi, una di `(remote)`, `(plist)`, `(HKLM)`, `(HKCU)` o `(file)`. Consulta [Verify active settings](/it/settings#verify-active-settings).

114 127 

115Condividi queste risorse per aiutare gli sviluppatori a iniziare:128Condividi queste risorse per aiutare gli sviluppatori a iniziare:

116 129 


126 139 

127Se uno sviluppatore vede "You haven't been added to your organization yet," il suo posto non include l'accesso a Claude Code e deve essere aggiornato nella console di amministrazione.140Se uno sviluppatore vede "You haven't been added to your organization yet," il suo posto non include l'accesso a Claude Code e deve essere aggiornato nella console di amministrazione.

128 141 

129## Passaggi successivi142<h2 id="next-steps">

143 Passaggi successivi

144</h2>

130 145 

131Con il provider e il meccanismo di consegna scelti, passa alla configurazione dettagliata:146Con il provider e il meccanismo di consegna scelti, passa alla configurazione dettagliata:

132 147 

advisor.md +198 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Escalate hard decisions with the advisor tool

6 

7> Abbina il tuo modello principale con un modello advisor più potente che Claude consulta nei momenti chiave durante un'attività.

8 

9{/* plan-availability: feature=advisor providers=anthropic */}

10 

11<Note>

12 Lo strumento advisor è sperimentale e richiede Claude Code v2.1.98 o successivo con l'API Anthropic. Non è disponibile su Amazon Bedrock, Google Vertex AI o Microsoft Foundry. Il comportamento, i prezzi e la disponibilità potrebbero cambiare.

13</Note>

14 

15Lo strumento advisor consente a Claude di consultare un secondo modello, tipicamente più potente, nei momenti chiave durante un'attività, ad esempio prima di impegnarsi in un approccio, quando bloccato su un errore ricorrente, o prima di dichiarare un'attività completata. L'advisor riceve l'intera conversazione, incluse tutte le chiamate agli strumenti e i risultati, e restituisce una guida che Claude applica prima di continuare.

16 

17L'advisor viene eseguito lato server sull'infrastruttura di Anthropic come [server tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/advisor-tool), disponibile sia per gli account con abbonamento che per quelli fatturati tramite API. Scegli quale modello agisce come advisor, e Claude decide quando chiamarlo.

18 

19Questa pagina spiega come abilitare l'advisor, quali accoppiamenti di modelli sono accettati, cosa Claude mostra durante una consultazione e come viene fatturato l'utilizzo dell'advisor.

20 

21<h2 id="when-to-use-the-advisor">

22 Quando utilizzare l'advisor

23</h2>

24 

25L'advisor è adatto per attività lunghe e multi-step dove la maggior parte dei turni sono di routine ma la qualità del piano determina il risultato. Gli esempi includono refactoring di grandi dimensioni, sessioni di debug dove un errore continua a ripetersi, e attività che desideri controllare in modo indipendente prima che Claude le dichiari completate.

26 

27Aggiunge meno valore su attività brevi dove c'è poco da pianificare, o su lavori dove ogni turno ha bisogno del modello più potente. Per questi, [cambia il modello principale](/it/model-config#setting-your-model) invece, o vedi [come l'advisor si confronta con opusplan e subagents](#compare-with-related-features) per altri modi di ottenere un secondo parere.

28 

29<h2 id="enable-the-advisor">

30 Abilita l'advisor

31</h2>

32 

33Puoi impostare il modello advisor in tre modi:

34 

35* **Comando `/advisor`**: imposta o cambia l'advisor a metà sessione e salvalo come predefinito

36* **Impostazione `advisorModel`**: configura un predefinito persistente nel tuo [file di impostazioni](/it/settings)

37* **Flag `--advisor`**: imposta l'advisor per una singola sessione al lancio

38 

39Se uno di questi imposta un modello advisor, l'advisor è abilitato per le sessioni il cui modello principale lo [supporta](#choose-an-advisor-model). Per smettere di usarlo, vedi [Disattiva l'advisor](#turn-the-advisor-off).

40 

41<Note>

42 Per utilizzare Fable 5 come advisor, hai bisogno di Claude Code v2.1.170 o successivo e [accesso a Fable 5](/it/model-config#work-with-fable-5) per la tua organizzazione.

43</Note>

44 

45<h3 id="use-the-/advisor-command">

46 Usa il comando `/advisor`

47</h3>

48 

49Esegui `/advisor` senza argomenti per aprire un selettore che elenca i modelli advisor disponibili, o passa il modello direttamente:

50 

51```

52/advisor opus

53```

54 

55La tua selezione viene salvata in `advisorModel` nelle impostazioni utente e persiste tra le sessioni. Se il tuo modello principale attuale non supporta l'advisor, la selezione viene comunque salvata e si attiva quando passi a un modello principale [compatibile](#choose-an-advisor-model) con [`/model`](/it/model-config#setting-your-model).

56 

57<h3 id="set-advisormodel-in-settings">

58 Imposta `advisorModel` nelle impostazioni

59</h3>

60 

61Per configurare l'advisor come predefinito senza aprire una sessione, impostalo nel tuo file di impostazioni:

62 

63```json theme={null}

64{

65 "advisorModel": "opus"

66}

67```

68 

69<h3 id="use-the-advisor-flag">

70 Usa il flag `--advisor`

71</h3>

72 

73Per impostare l'advisor per una singola sessione senza modificare l'impostazione salvata, avvia con il flag:

74 

75```bash theme={null}

76claude --advisor opus

77```

78 

79Il flag ha la precedenza sull'impostazione `advisorModel` per quella sessione. A differenza di `/advisor`, che salva una selezione inattiva, il flag esce con un errore se il modello principale della sessione non supporta l'advisor.

80 

81<h2 id="choose-an-advisor-model">

82 Scegli un modello advisor

83</h2>

84 

85L'advisor deve essere almeno altrettanto capace del modello principale. Gli advisor accettati per ogni modello principale sono:

86 

87| Modello principale | Advisor accettati | Note |

88| ----------------------------------------------- | ------------------------------------------------------------ | -------------------------------------------------------------- |

89| Haiku 4.5 | Fable, Opus, Sonnet | Haiku può chiamare l'advisor ma non può agire come uno |

90| Sonnet 4.6 | Fable, Opus, Sonnet | |

91| Opus 4.6 o successivo | Fable, Opus alla versione del modello principale o superiore | Un Opus 4.7 principale con un advisor Opus 4.6 viene rifiutato |

92| Fable 5 ({/* min-version: 2.1.170 */}v2.1.170+) | Fable | Un advisor Opus o Sonnet viene rifiutato |

93 

94Fable 5 richiede Claude Code v2.1.170 o successivo e accesso a Fable 5, sia che agisca come modello principale che come advisor.

95 

96Imposta l'advisor come `opus`, `sonnet`, o `fable`. Questi alias si risolvono nella versione più recente di ogni modello. Puoi anche passare un ID modello completo come `claude-opus-4-8`.

97 

98I subagent ereditano l'advisor configurato e applicano lo stesso controllo di accoppiamento rispetto al loro modello.

99 

100Claude Code convalida l'accoppiamento prima di inviare una richiesta:

101 

102* Se l'advisor è meno capace del modello principale, l'advisor non è allegato alle richieste del modello principale. L'output del comando `/advisor` e una notifica mostrano questo. I subagent il cui modello soddisfa l'accoppiamento possono comunque utilizzare l'advisor.

103* Se il modello principale o l'advisor è un modello che Claude Code non riconosce, l'advisor non è allegato.

104 

105<h3 id="common-model-pairings">

106 Accoppiamenti di modelli comuni

107</h3>

108 

109Qualsiasi accoppiamento accettato funziona. Queste combinazioni bilanciano il costo rispetto alla capacità in modi diversi:

110 

111| Accoppiamento | Quando utilizzare |

112| ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

113| Sonnet principale + advisor Opus | Sonnet gestisce il lavoro di routine e escalation della pianificazione, fallimenti ambigui e controlli di completamento a Opus |

114| Sonnet principale + advisor Fable | Guida Fable 5 nei punti decisionali senza eseguire Fable 5 in tutto. Richiede v2.1.170 o successivo e accesso a Fable 5 |

115| Haiku principale + advisor Opus | Modello principale a costo più basso con pianificazione forte. Aspettati un costo più alto di Haiku da solo ma inferiore al passaggio del modello principale a Sonnet o Opus |

116| Opus principale + advisor Opus | Un secondo Opus esamina il primo. Utile per attività ad alto rischio dove un controllo indipendente è più importante del costo |

117| Fable principale + advisor Fable | Accoppiamento con capacità più alta quando Fable 5 è disponibile (v2.1.170+). Fable è un livello superiore a Opus e Sonnet, quindi è l'unico advisor accettato per un modello principale Fable |

118| Sonnet principale + advisor Sonnet | Un secondo parere a costo inferiore per catturare errori di routine |

119 

120<h2 id="when-claude-consults-the-advisor">

121 Quando Claude consulta l'advisor

122</h2>

123 

124Claude decide quando chiamare l'advisor. Tende a consultare prima di impegnarsi in un approccio, quando un errore continua a ripetersi, e prima di dichiarare un'attività completata, ma i tempi sono guidati dal modello piuttosto che basati su regole.

125 

126Puoi chiedere una consultazione nel tuo prompt nello stesso modo in cui richiederesti qualsiasi strumento, ad esempio `consult the advisor before you continue`. Non c'è un'impostazione per limitare o forzare le chiamate dell'advisor; se desideri che Claude consulti più o meno spesso durante un'attività, dillo nelle tue istruzioni.

127 

128<h2 id="what-you-see-during-a-session">

129 Cosa vedi durante una sessione

130</h2>

131 

132Quando Claude chiama l'advisor, la trascrizione mostra una riga `Advising` con il nome del modello advisor mentre la chiamata è in corso. Quando il risultato ritorna, la riga conferma che l'advisor ha esaminato la conversazione. Premi `Ctrl+O` per espanderla e leggere la guida completa dell'advisor.

133 

134Claude generalmente segue la guida dell'advisor, ma si adatta quando le sue stesse prove contraddicono un'affermazione specifica: se un passaggio consigliato fallisce quando provato, o il contenuto del file contraddice il consiglio, Claude evidenzia il conflitto piuttosto che seguire la guida incondizionatamente.

135 

136L'advisor riceve sempre la conversazione completa, e Claude controlla i tempi. Per un maggiore controllo o una configurazione diversa, vedi [come l'advisor si confronta con subagents e opusplan](#compare-with-related-features).

137 

138<h2 id="cost">

139 Costo

140</h2>

141 

142Ogni chiamata dell'advisor invia la conversazione al modello advisor, quindi consuma token alle tariffe del modello advisor in aggiunta all'utilizzo del tuo modello principale. Con la fatturazione API, i token dell'advisor vengono addebitati alle tariffe di input e output del modello advisor. Sui piani di abbonamento, l'utilizzo dell'advisor conta verso i limiti di utilizzo del tuo piano.

143 

144Claude chiama l'advisor nei punti decisionali piuttosto che ad ogni turno, quindi l'accoppiamento di un modello principale più veloce con un advisor più potente in genere costa meno che eseguire il modello più potente in tutto. L'utilizzo dell'advisor conta verso i totali della sessione mostrati da [`/usage`](/it/costs#track-your-costs).

145 

146Per come i token dell'advisor vengono segnalati nelle risposte API, vedi [Usage and billing](https://platform.claude.com/docs/en/agents-and-tools/tool-use/advisor-tool#usage-and-billing) nella documentazione dell'API Claude.

147 

148<h2 id="impact-on-prompt-caching">

149 Impatto sulla memorizzazione nella cache dei prompt

150</h2>

151 

152L'abilitazione o la disabilitazione dell'advisor a metà sessione non invalida la [cache dei prompt](/it/prompt-caching) del tuo modello principale. A differenza di [cambiare modello o livello di sforzo](/it/prompt-caching#actions-that-invalidate-the-cache), l'attivazione/disattivazione di `/advisor` mantiene il prefisso memorizzato nella cache intatto, e la guida restituita dall'advisor viene memorizzata nella cache come parte della trascrizione nei turni successivi.

153 

154La lettura della conversazione da parte del modello advisor stesso non viene memorizzata nella cache. Ogni chiamata dell'advisor elabora la trascrizione completa da capo, senza riutilizzo tra le chiamate.

155 

156<h2 id="requirements">

157 Requisiti

158</h2>

159 

160Lo strumento advisor richiede tutti i seguenti:

161 

162* **Claude Code v2.1.98 o successivo**: esegui `claude update` per aggiornare.

163* **Solo API Anthropic**: l'advisor è uno strumento eseguito dal server. Non è disponibile su Amazon Bedrock, Google Vertex AI o Microsoft Foundry. Attraverso un [gateway LLM](/it/llm-gateway) configurato con `ANTHROPIC_BASE_URL`, la disponibilità dipende dal fatto che il gateway inoltri la richiesta intatta all'API Anthropic.

164* **Modello principale supportato**: Opus 4.6 o successivo, Sonnet 4.6, o Haiku 4.5. {/* min-version: 2.1.170 */}Fable 5 si qualifica anche su Claude Code v2.1.170 o successivo.

165 

166<h2 id="turn-the-advisor-off">

167 Disattiva l'advisor

168</h2>

169 

170Per smettere di usare l'advisor e cancellare il tuo `advisorModel` salvato, esegui `/advisor off` o scegli **No advisor** nel selettore `/advisor`:

171 

172```

173/advisor off

174```

175 

176Per disabilitare completamente lo strumento advisor, incluso il comando `/advisor` e il flag `--advisor`, imposta `CLAUDE_CODE_DISABLE_ADVISOR_TOOL=1`. Vedi [Environment variables](/it/env-vars).

177 

178<h2 id="compare-with-related-features">

179 Confronta con funzionalità correlate

180</h2>

181 

182L'advisor è uno dei diversi modi per combinare i punti di forza dei modelli. Scegli in base a quando desideri che un secondo modello sia coinvolto.

183 

184| Approccio | Quando viene eseguito il modello più potente | Come inizia |

185| ---------------------------------------------------------------- | ----------------------------------------------------------------- | ------------------------------------------- |

186| Strumento advisor | Nei punti decisionali a metà attività | Claude lo chiama quando ha bisogno di guida |

187| [`opusplan`](/it/model-config#opusplan-model-setting) | Durante la modalità piano, quindi passa a Sonnet per l'esecuzione | Entri in modalità piano |

188| [Subagents](/it/sub-agents#choose-a-model) con `model` impostato | Per l'intera sottoattività delegata | Claude delega, o invochi il subagent |

189| [`/model`](/it/model-config#setting-your-model) | Per tutti i turni successivi | Cambi modello |

190 

191<h2 id="see-also">

192 Vedi anche

193</h2>

194 

195* [Model configuration](/it/model-config): cambia modelli, imposta livelli di sforzo e usa `opusplan`

196* [Manage costs effectively](/it/costs): traccia l'utilizzo dei token tra i modelli

197* [Advisor tool in the Claude API](https://platform.claude.com/docs/en/agents-and-tools/tool-use/advisor-tool): comprendi lo strumento server sottostante, o usalo direttamente dall'API Messages

198* [The advisor strategy](https://claude.com/blog/the-advisor-strategy): perché l'accoppiamento di un modello principale veloce con un advisor più potente funziona

Details

16 16 

17Ogni sessione dell'agente segue lo stesso ciclo:17Ogni sessione dell'agente segue lo stesso ciclo:

18 18 

19<img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/agent-loop-diagram.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=1c6e8f28d80dba14a7287419656f1237" alt="Agent loop: prompt enters, Claude evaluates, branches to tool calls or final answer" width="720" height="212" data-path="images/agent-loop-diagram.svg" />19<img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/agent-loop-diagram.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=1c6e8f28d80dba14a7287419656f1237" alt="Diagram of the agent loop: your prompt enters the agentic loop, where Claude evaluates and either requests tool calls, whose results feed back into another evaluation, or returns the final answer" width="720" height="212" data-path="images/agent-loop-diagram.svg" />

20 20 

211. **Ricevere il prompt.** Claude riceve il vostro prompt, insieme al prompt di sistema, alle definizioni degli strumenti e alla cronologia della conversazione. L'SDK produce un [`SystemMessage`](#message-types) con sottotipo `"init"` contenente i metadati della sessione.211. **Ricevere il prompt.** Claude riceve il vostro prompt, insieme al prompt di sistema, alle definizioni degli strumenti e alla cronologia della conversazione. L'SDK produce un [`SystemMessage`](#message-types) con sottotipo `"init"` contenente i metadati della sessione.

222. **Valutare e rispondere.** Claude valuta lo stato attuale e determina come procedere. Può rispondere con testo, richiedere una o più chiamate di strumenti, o entrambi. L'SDK produce un [`AssistantMessage`](#message-types) contenente il testo e le richieste di chiamate di strumenti.222. **Valutare e rispondere.** Claude valuta lo stato attuale e determina come procedere. Può rispondere con testo, richiedere una o più chiamate di strumenti, o entrambi. L'SDK produce un [`AssistantMessage`](#message-types) contenente il testo e le richieste di chiamate di strumenti.


53 53 

54Mentre il ciclo viene eseguito, l'SDK produce un flusso di messaggi. Ogni messaggio ha un tipo che vi dice da quale fase del ciclo proviene. I cinque tipi principali sono:54Mentre il ciclo viene eseguito, l'SDK produce un flusso di messaggi. Ogni messaggio ha un tipo che vi dice da quale fase del ciclo proviene. I cinque tipi principali sono:

55 55 

56* **`SystemMessage`:** eventi del ciclo di vita della sessione. Il campo `subtype` li distingue: `"init"` è il primo messaggio (metadati della sessione), e `"compact_boundary"` si attiva dopo la [compattazione](#automatic-compaction). In TypeScript, il confine di compattazione è il suo proprio tipo [`SDKCompactBoundaryMessage`](/it/agent-sdk/typescript#sdkcompactboundarymessage) piuttosto che un sottotipo di `SDKSystemMessage`.56* **`SystemMessage`:** eventi del ciclo di vita della sessione. Il campo `subtype` li distingue:

57 

58 * `"init"`: il primo messaggio con metadati della sessione

59 * `"compact_boundary"`: si attiva dopo la [compattazione](#automatic-compaction)

60 * `"informational"`: banner di stato in testo semplice dal ciclo

61 * `"worker_shutting_down"`: il ciclo terminerà dopo il turno corrente perché l'host sta uscendo o Remote Control si è disconnesso

62 

63 In TypeScript, ogni sottotipo diverso da `"init"` è il suo proprio tipo nell'unione [`SDKMessage`](/it/agent-sdk/typescript#sdkmessage) piuttosto che un sottotipo di `SDKSystemMessage`.

57* **`AssistantMessage`:** emesso dopo ogni risposta di Claude, inclusa quella finale solo di testo. Contiene blocchi di contenuto di testo e blocchi di chiamate di strumenti da quel turno.64* **`AssistantMessage`:** emesso dopo ogni risposta di Claude, inclusa quella finale solo di testo. Contiene blocchi di contenuto di testo e blocchi di chiamate di strumenti da quel turno.

58* **`UserMessage`:** emesso dopo ogni esecuzione di strumento con il risultato dello strumento inviato di nuovo a Claude. Emesso anche per qualsiasi input dell'utente che trasmettete a metà ciclo.65* **`UserMessage`:** emesso dopo ogni esecuzione di strumento con il risultato dello strumento inviato di nuovo a Claude. Emesso anche per qualsiasi input dell'utente che trasmettete a metà ciclo.

59* **`StreamEvent`:** emesso solo quando i messaggi parziali sono abilitati. Contiene eventi di streaming API grezzi (delta di testo, chunk di input dello strumento). Vedere [Stream responses](/it/agent-sdk/streaming-output).66* **`StreamEvent`:** emesso solo quando i messaggi parziali sono abilitati. Contiene eventi di streaming API grezzi (delta di testo, chunk di input dello strumento). Vedere [Stream responses](/it/agent-sdk/streaming-output).


183L'opzione `effort` controlla quanto ragionamento Claude applica. I livelli di sforzo inferiori utilizzano meno token per turno e riducono il costo. Non tutti i modelli supportano il parametro di sforzo. Vedere [Effort](https://platform.claude.com/docs/en/build-with-claude/effort) per quali modelli lo supportano.190L'opzione `effort` controlla quanto ragionamento Claude applica. I livelli di sforzo inferiori utilizzano meno token per turno e riducono il costo. Non tutti i modelli supportano il parametro di sforzo. Vedere [Effort](https://platform.claude.com/docs/en/build-with-claude/effort) per quali modelli lo supportano.

184 191 

185| Livello | Comportamento | Buono per |192| Livello | Comportamento | Buono per |

186| :--------- | :----------------------------------- | :------------------------------------------------------ |193| :--------- | :----------------------------------- | :----------------------------------------------------------------- |

187| `"low"` | Ragionamento minimo, risposte veloci | Ricerche di file, elenco di directory |194| `"low"` | Ragionamento minimo, risposte veloci | Ricerche di file, elenco di directory |

188| `"medium"` | Ragionamento equilibrato | Modifiche di routine, attività standard |195| `"medium"` | Ragionamento equilibrato | Modifiche di routine, attività standard |

189| `"high"` | Analisi approfondita | Refactoring, debug |196| `"high"` | Analisi approfondita | Refactoring, debug |

190| `"xhigh"` | Profondità di ragionamento estesa | Attività di codifica e agentic; consigliato su Opus 4.7 |197| `"xhigh"` | Profondità di ragionamento estesa | Attività di codifica e agentic; consigliato su Fable 5 e Opus 4.7+ |

191| `"max"` | Profondità di ragionamento massima | Problemi multi-step che richiedono analisi profonda |198| `"max"` | Profondità di ragionamento massima | Problemi multi-step che richiedono analisi profonda |

192 199 

193Se non impostate `effort`, l'SDK Python lascia il parametro non impostato e rimanda al comportamento predefinito del modello. L'SDK TypeScript predefinisce a `"high"`.200Se non impostate `effort`, entrambi gli SDK lasciano il parametro non impostato e rimandano al comportamento predefinito del modello.

194 201 

195<Note>202<Note>

196 `effort` scambia latenza e costo dei token per profondità di ragionamento all'interno di ogni risposta. [Extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) è una funzione separata che produce blocchi di catena di pensiero visibili nell'output. Sono indipendenti: potete impostare `effort: "low"` con extended thinking abilitato, o `effort: "max"` senza di esso.203 `effort` scambia latenza e costo dei token per profondità di ragionamento all'interno di ogni risposta. [Extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) è una funzione separata che produce blocchi di catena di pensiero visibili nell'output. Sono indipendenti: potete impostare `effort: "low"` con extended thinking abilitato, o `effort: "max"` senza di esso.


205L'opzione della modalità di autorizzazione (`permission_mode` in Python, `permissionMode` in TypeScript) controlla se l'agente chiede l'approvazione prima di utilizzare gli strumenti:212L'opzione della modalità di autorizzazione (`permission_mode` in Python, `permissionMode` in TypeScript) controlla se l'agente chiede l'approvazione prima di utilizzare gli strumenti:

206 213 

207| Modalità | Comportamento |214| Modalità | Comportamento |

208| :------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |215| :------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

209| `"default"` | Gli strumenti non coperti da regole di consentimento attivano il vostro callback di approvazione; nessun callback significa negare |216| `"default"` | Gli strumenti non coperti da regole di consentimento attivano il vostro callback di approvazione; nessun callback significa negare |

210| `"acceptEdits"` | Approva automaticamente le modifiche ai file e i comandi comuni del filesystem (`mkdir`, `touch`, `mv`, `cp`, ecc.); altri comandi Bash seguono le regole predefinite |217| `"acceptEdits"` | Approva automaticamente le modifiche ai file e i comandi comuni del filesystem (`mkdir`, `touch`, `mv`, `cp`, ecc.); altri comandi Bash seguono le regole predefinite |

211| `"plan"` | Gli strumenti di sola lettura vengono eseguiti; Claude esplora e produce un piano senza modificare i vostri file sorgente |218| `"plan"` | Claude esplora e pianifica senza modificare i vostri file sorgente; le modifiche ai file non vengono mai approvate automaticamente e vengono richieste tramite il vostro callback `canUseTool` |

212| `"dontAsk"` | Non chiede mai. Gli strumenti pre-approvati da [regole di autorizzazione](/it/settings#permission-settings) vengono eseguiti, tutto il resto viene negato |219| `"dontAsk"` | Non chiede mai. Gli strumenti pre-approvati da [regole di autorizzazione](/it/settings#permission-settings) vengono eseguiti, tutto il resto viene negato |

213| `"auto"` (solo TypeScript) | Utilizza un classificatore di modello per approvare o negare ogni chiamata di strumento. Vedere [Modalità Auto](/it/permission-modes#eliminate-prompts-with-auto-mode) per disponibilità e comportamento |220| `"auto"` (solo TypeScript) | Utilizza un classificatore di modello per approvare o negare ogni chiamata di strumento. Vedere [Modalità Auto](/it/permission-modes#eliminate-prompts-with-auto-mode) per disponibilità e comportamento |

214| `"bypassPermissions"` | Esegue tutti gli strumenti consentiti senza chiedere. Non può essere utilizzato quando si esegue come root su Unix. Utilizzare solo in ambienti isolati dove le azioni dell'agente non possono influenzare i sistemi che vi interessano |221| `"bypassPermissions"` | Esegue tutti gli strumenti consentiti senza chiedere, a meno che una regola [`ask`](/it/settings#permission-settings) esplicita non corrisponda; vedere [Come vengono valutate le autorizzazioni](/it/agent-sdk/permissions#how-permissions-are-evaluated) per dove le regole ask si trovano nell'ordine di precedenza. Non può essere utilizzato quando si esegue come root su Unix. Utilizzare solo in ambienti isolati dove le azioni dell'agente non possono influenzare i sistemi che vi interessano |

215 222 

216Per le applicazioni interattive, utilizzate `"default"` con un callback di approvazione dello strumento per visualizzare i prompt di approvazione. Per gli agenti autonomi su una macchina di sviluppo, `"acceptEdits"` approva automaticamente le modifiche ai file e i comandi comuni del filesystem (`mkdir`, `touch`, `mv`, `cp`, ecc.) mentre ancora limita altri comandi `Bash` dietro le regole di consentimento. Riservate `"bypassPermissions"` per CI, container o altri ambienti isolati. Vedere [Autorizzazioni](/it/agent-sdk/permissions) per i dettagli completi.223Per le applicazioni interattive, utilizzate `"default"` con un callback di approvazione dello strumento per visualizzare i prompt di approvazione. Per gli agenti autonomi su una macchina di sviluppo, `"acceptEdits"` approva automaticamente le modifiche ai file e i comandi comuni del filesystem (`mkdir`, `touch`, `mv`, `cp`, ecc.) mentre ancora limita altri comandi `Bash` dietro le regole di consentimento. Riservate `"bypassPermissions"` per CI, container o altri ambienti isolati. Vedere [Autorizzazioni](/it/agent-sdk/permissions) per i dettagli completi.

217 224 


305Quando il ciclo termina, il `ResultMessage` vi dice cosa è successo e vi fornisce l'output. Il campo `subtype` (disponibile in entrambi gli SDK) è il modo principale per controllare lo stato di terminazione.312Quando il ciclo termina, il `ResultMessage` vi dice cosa è successo e vi fornisce l'output. Il campo `subtype` (disponibile in entrambi gli SDK) è il modo principale per controllare lo stato di terminazione.

306 313 

307| Sottotipo del risultato | Cosa è successo | Campo `result` disponibile? |314| Sottotipo del risultato | Cosa è successo | Campo `result` disponibile? |

308| :------------------------------------ | :-------------------------------------------------------------------------------------- | :-------------------------: |315| :------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------: |

309| `success` | Claude ha completato l'attività normalmente | Sì |316| `success` | Claude ha completato l'attività normalmente | Sì |

310| `error_max_turns` | Ha raggiunto il limite di `maxTurns` prima di terminare | No |317| `error_max_turns` | Ha raggiunto il limite di `maxTurns` prima di terminare | No |

311| `error_max_budget_usd` | Ha raggiunto il limite di `maxBudgetUsd` prima di terminare | No |318| `error_max_budget_usd` | Ha raggiunto il limite di `maxBudgetUsd` prima di terminare | No |

312| `error_during_execution` | Un errore ha interrotto il ciclo (ad esempio, un errore API o una richiesta annullata) | No |319| `error_during_execution` | Un errore ha interrotto il ciclo (ad esempio, un errore API o una richiesta annullata) | No |

313| `error_max_structured_output_retries` | La convalida dell'output strutturato ha fallito dopo il limite di tentativi configurato | No |320| `error_max_structured_output_retries` | Nessun output strutturato valido è stato prodotto entro il limite di tentativi configurato: ogni tentativo ha fallito la convalida, oppure un fallback del modello ha ritrattato l'output completato senza alcun tentativo riuscito | No |

314 321 

315Il campo `result` (l'output di testo finale) è presente solo sulla variante `success`, quindi controllate sempre il sottotipo prima di leggerlo. Tutti i sottotipi di risultato portano `total_cost_usd`, `usage`, `num_turns` e `session_id` in modo che possiate tracciare il costo e riprendere anche dopo gli errori. In Python, `total_cost_usd` e `usage` sono tipizzati come opzionali e possono essere `None` su alcuni percorsi di errore, quindi proteggete prima di formattarli. Vedere [Tracciamento di costi e utilizzo](/it/agent-sdk/cost-tracking) per i dettagli sull'interpretazione dei campi `usage`.322Il campo `result` (l'output di testo finale) è presente solo sulla variante `success`, quindi controllate sempre il sottotipo prima di leggerlo. Tutti i sottotipi di risultato portano `total_cost_usd`, `usage`, `num_turns` e `session_id` in modo che possiate tracciare il costo e riprendere anche dopo gli errori. In Python, `total_cost_usd` e `usage` sono tipizzati come opzionali e possono essere `None` su alcuni percorsi di errore, quindi proteggete prima di formattarli. Vedere [Tracciamento di costi e utilizzo](/it/agent-sdk/cost-tracking) per i dettagli sull'interpretazione dei campi `usage`.

316 323 

Details

257 257 

258<CodeGroup>258<CodeGroup>

259 ```python Python theme={null}259 ```python Python theme={null}

260 from claude_agent_sdk import ClaudeAgentOptions, query

261 import asyncio

262 

263 

264 async def main():

260 options = ClaudeAgentOptions(265 options = ClaudeAgentOptions(

261 env={266 env={

262 "CLAUDE_CODE_USE_BEDROCK": "1",267 "CLAUDE_CODE_USE_BEDROCK": "1",

263 "ENABLE_PROMPT_CACHING_1H": "1",268 "ENABLE_PROMPT_CACHING_1H": "1",

264 },269 },

265 )270 )

271 

272 async for message in query(prompt="Summarize this project", options=options):

273 print(message)

274 

275 

276 asyncio.run(main())

266 ```277 ```

267 278 

268 ```typescript TypeScript theme={null}279 ```typescript TypeScript theme={null}

280 import { query } from "@anthropic-ai/claude-agent-sdk";

281 

269 const options = {282 const options = {

270 env: {283 env: {

271 ...process.env,284 ...process.env,


273 ENABLE_PROMPT_CACHING_1H: "1",286 ENABLE_PROMPT_CACHING_1H: "1",

274 },287 },

275 };288 };

289 

290 for await (const message of query({ prompt: "Summarize this project", options })) {

291 console.log(message);

292 }

276 ```293 ```

277</CodeGroup>294</CodeGroup>

278 295 

Details

36* **Descrizione:** cosa fa lo strumento. Claude legge questo per decidere quando chiamarlo.36* **Descrizione:** cosa fa lo strumento. Claude legge questo per decidere quando chiamarlo.

37* **Schema di input:** gli argomenti che Claude deve fornire. In TypeScript questo è sempre uno [schema Zod](https://zod.dev/), e gli `args` dell'handler sono tipizzati automaticamente da esso. In Python questo è un dict che mappa nomi a tipi, come `{"latitude": float}`, che l'SDK converte in JSON Schema per te. Il decoratore Python accetta anche un dict completo di [JSON Schema](https://json-schema.org/understanding-json-schema/about) direttamente quando hai bisogno di enum, intervalli, campi opzionali o oggetti annidati.37* **Schema di input:** gli argomenti che Claude deve fornire. In TypeScript questo è sempre uno [schema Zod](https://zod.dev/), e gli `args` dell'handler sono tipizzati automaticamente da esso. In Python questo è un dict che mappa nomi a tipi, come `{"latitude": float}`, che l'SDK converte in JSON Schema per te. Il decoratore Python accetta anche un dict completo di [JSON Schema](https://json-schema.org/understanding-json-schema/about) direttamente quando hai bisogno di enum, intervalli, campi opzionali o oggetti annidati.

38* **Handler:** la funzione asincrona che viene eseguita quando Claude chiama lo strumento. Riceve gli argomenti convalidati e deve restituire un oggetto con:38* **Handler:** la funzione asincrona che viene eseguita quando Claude chiama lo strumento. Riceve gli argomenti convalidati e deve restituire un oggetto con:

39 * `content` (obbligatorio): un array di blocchi di risultato, ognuno con un `type` di `"text"`, `"image"` o `"resource"`. Vedi [Restituire immagini e risorse](#return-images-and-resources) per blocchi non testuali.39 * `content` (obbligatorio): un array di blocchi di risultato, ognuno con un `type` di `"text"`, `"image"`, `"audio"`, `"resource"` o `"resource_link"`. Vedi [Restituire immagini e risorse](#return-images-and-resources) per blocchi non testuali.

40 * `structuredContent` (opzionale): un oggetto JSON che contiene il risultato come dati leggibili da macchina, restituito insieme a `content`. Vedi [Restituire dati strutturati](#return-structured-data).40 * `structuredContent` (opzionale): un oggetto JSON che contiene il risultato come dati leggibili da macchina, restituito insieme a `content`. Vedi [Restituire dati strutturati](#return-structured-data).

41 * `isError` (opzionale): imposta su `true` per segnalare un fallimento dello strumento in modo che Claude possa reagire. Vedi [Gestire gli errori](#handle-errors).41 * `isError` (opzionale): imposta su `true` per segnalare un fallimento dello strumento in modo che Claude possa reagire. Vedi [Gestire gli errori](#handle-errors).

42 42 


461 Restituire immagini e risorse461 Restituire immagini e risorse

462</h2>462</h2>

463 463 

464L'array `content` in un risultato dello strumento accetta blocchi `text`, `image` e `resource`. Puoi mischiarli nella stessa risposta.464L'array `content` in un risultato dello strumento accetta blocchi `text`, `image`, `audio`, `resource` e `resource_link`. Puoi mischiarli nella stessa risposta. I blocchi audio vengono salvati su disco e Claude riceve un blocco di testo con il percorso del file salvato. I blocchi di collegamento alle risorse vengono convertiti in un blocco di testo contenente il nome, l'URI e la descrizione del collegamento.

465 465 

466<h3 id="images">466<h3 id="images">

467 Immagini467 Immagini

Details

729* **Python**: `pip install --upgrade claude-agent-sdk`729* **Python**: `pip install --upgrade claude-agent-sdk`

730* **TypeScript**: `npm install @anthropic-ai/claude-agent-sdk@latest`730* **TypeScript**: `npm install @anthropic-ai/claude-agent-sdk@latest`

731 731 

732<h3 id="user-messages-don-t-have-uuids">732<h3 id="user-messages-dont-have-uuids">

733 I messaggi dell'utente non hanno UUID733 I messaggi dell'utente non hanno UUID

734</h3>734</h3>

735 735 

agent-sdk/mcp.md +79 −27

Details

14 Questa pagina copre la configurazione di MCP per l'Agent SDK. Per aggiungere server MCP al Claude Code CLI in modo che si carichino in ogni progetto, consulta [Ambiti di installazione di MCP](/it/mcp#mcp-installation-scopes).14 Questa pagina copre la configurazione di MCP per l'Agent SDK. Per aggiungere server MCP al Claude Code CLI in modo che si carichino in ogni progetto, consulta [Ambiti di installazione di MCP](/it/mcp#mcp-installation-scopes).

15</Note>15</Note>

16 16 

17## Quickstart17<h2 id="quickstart">

18 Quickstart

19</h2>

18 20 

19Questo esempio si connette al server MCP della [documentazione di Claude Code](https://code.claude.com/docs) utilizzando il [trasporto HTTP](#httpsse-servers) e utilizza [`allowedTools`](#allow-mcp-tools) con un carattere jolly per consentire tutti gli strumenti dal server.21Questo esempio si connette al server MCP della [documentazione di Claude Code](https://code.claude.com/docs) utilizzando il [trasporto HTTP](#http%2Fsse-servers) e utilizza [`allowedTools`](#allow-mcp-tools) con un carattere jolly per consentire tutti gli strumenti dal server.

20 22 

21<CodeGroup>23<CodeGroup>

22 ```typescript TypeScript theme={null}24 ```typescript TypeScript theme={null}


70 72 

71L'agente si connette al server di documentazione, cerca informazioni su hooks e restituisce i risultati.73L'agente si connette al server di documentazione, cerca informazioni su hooks e restituisce i risultati.

72 74 

73## Aggiungi un server MCP75<h2 id="add-an-mcp-server">

76 Aggiungi un server MCP

77</h2>

74 78 

75Puoi configurare i server MCP nel codice quando chiami `query()`, oppure in un file `.mcp.json` caricato tramite [`settingSources`](#from-a-config-file).79Puoi configurare i server MCP nel codice quando chiami `query()`, oppure in un file `.mcp.json` caricato tramite [`settingSources`](#from-a-config-file).

76 80 

77### Nel codice81<h3 id="in-code">

82 Nel codice

83</h3>

78 84 

79Passa i server MCP direttamente nell'opzione `mcpServers`:85Passa i server MCP direttamente nell'opzione `mcpServers`:

80 86 


129 ```135 ```

130</CodeGroup>136</CodeGroup>

131 137 

132### Da un file di configurazione138<h3 id="from-a-config-file">

139 Da un file di configurazione

140</h3>

133 141 

134Crea un file `.mcp.json` nella radice del tuo progetto. Il file viene rilevato quando la fonte di impostazione `project` è abilitata, il che è il caso per le opzioni predefinite di `query()`. Se imposti `settingSources` esplicitamente, includi `"project"` affinché questo file venga caricato:142Crea un file `.mcp.json` nella radice del tuo progetto. Il file viene rilevato quando la fonte di impostazione `project` è abilitata, il che è il caso per le opzioni predefinite di `query()`. Se imposti `settingSources` esplicitamente, includi `"project"` affinché questo file venga caricato:

135 143 


144}152}

145```153```

146 154 

147## Consenti strumenti MCP155<h2 id="allow-mcp-tools">

156 Consenti strumenti MCP

157</h2>

148 158 

149Gli strumenti MCP richiedono un'autorizzazione esplicita prima che Claude possa utilizzarli. Senza autorizzazione, Claude vedrà che gli strumenti sono disponibili ma non sarà in grado di chiamarli.159Gli strumenti MCP richiedono un'autorizzazione esplicita prima che Claude possa utilizzarli. Senza autorizzazione, Claude vedrà che gli strumenti sono disponibili ma non sarà in grado di chiamarli.

150 160 

151### Convenzione di denominazione degli strumenti161<h3 id="tool-naming-convention">

162 Convenzione di denominazione degli strumenti

163</h3>

152 164 

153Gli strumenti MCP seguono il modello di denominazione `mcp__<server-name>__<tool-name>`. Ad esempio, un server GitHub denominato `"github"` con uno strumento `list_issues` diventa `mcp__github__list_issues`.165Gli strumenti MCP seguono il modello di denominazione `mcp__<server-name>__<tool-name>`. Ad esempio, un server GitHub denominato `"github"` con uno strumento `list_issues` diventa `mcp__github__list_issues`.

154 166 

155### Approvazione automatica con allowedTools167<h3 id="auto-approve-with-allowedtools">

168 Approvazione automatica con allowedTools

169</h3>

156 170 

157Utilizza `allowedTools` per approvare automaticamente strumenti MCP specifici in modo che Claude possa utilizzarli senza un prompt di autorizzazione:171Utilizza `allowedTools` per approvare automaticamente strumenti MCP specifici in modo che Claude possa utilizzarli senza un prompt di autorizzazione:

158 172 


177 **Preferisci `allowedTools` rispetto alle modalità di autorizzazione per l'accesso a MCP.** `permissionMode: "acceptEdits"` non approva automaticamente gli strumenti MCP (solo le modifiche ai file e i comandi Bash del filesystem). `permissionMode: "bypassPermissions"` approva automaticamente gli strumenti MCP ma disabilita anche tutti gli altri prompt di sicurezza, il che è più ampio del necessario. Un carattere jolly in `allowedTools` concede esattamente il server MCP che desideri e niente di più. Consulta [Modalità di autorizzazione](/it/agent-sdk/permissions#permission-modes) per un confronto completo.191 **Preferisci `allowedTools` rispetto alle modalità di autorizzazione per l'accesso a MCP.** `permissionMode: "acceptEdits"` non approva automaticamente gli strumenti MCP (solo le modifiche ai file e i comandi Bash del filesystem). `permissionMode: "bypassPermissions"` approva automaticamente gli strumenti MCP ma disabilita anche tutti gli altri prompt di sicurezza, il che è più ampio del necessario. Un carattere jolly in `allowedTools` concede esattamente il server MCP che desideri e niente di più. Consulta [Modalità di autorizzazione](/it/agent-sdk/permissions#permission-modes) per un confronto completo.

178</Note>192</Note>

179 193 

180### Scopri gli strumenti disponibili194<h3 id="discover-available-tools">

195 Scopri gli strumenti disponibili

196</h3>

181 197 

182Per vedere quali strumenti fornisce un server MCP, controlla la documentazione del server o connettiti al server e ispeziona il messaggio di inizializzazione `system`:198Per vedere quali strumenti fornisce un server MCP, controlla la documentazione del server o connettiti al server e ispeziona il messaggio di inizializzazione `system`:

183 199 


189}205}

190```206```

191 207 

192## Tipi di trasporto208<h2 id="transport-types">

209 Tipi di trasporto

210</h2>

193 211 

194I server MCP comunicano con il tuo agente utilizzando diversi protocolli di trasporto. Controlla la documentazione del server per vedere quale trasporto supporta:212I server MCP comunicano con il tuo agente utilizzando diversi protocolli di trasporto. Controlla la documentazione del server per vedere quale trasporto supporta:

195 213 


197* Se la documentazione ti fornisce un **URL**, utilizza HTTP o SSE215* Se la documentazione ti fornisce un **URL**, utilizza HTTP o SSE

198* Se stai costruendo i tuoi strumenti personalizzati nel codice, utilizza un server MCP SDK216* Se stai costruendo i tuoi strumenti personalizzati nel codice, utilizza un server MCP SDK

199 217 

200### Server stdio218<h3 id="stdio-servers">

219 Server stdio

220</h3>

201 221 

202Processi locali che comunicano tramite stdin/stdout. Utilizza questo per i server MCP che esegui sulla stessa macchina:222Processi locali che comunicano tramite stdin/stdout. Utilizza questo per i server MCP che esegui sulla stessa macchina:

203 223 


253 </Tab>273 </Tab>

254</Tabs>274</Tabs>

255 275 

256### Server HTTP/SSE276<h3 id="http/sse-servers">

277 Server HTTP/SSE

278</h3>

257 279 

258Utilizza HTTP o SSE per i server MCP ospitati nel cloud e le API remote:280Utilizza HTTP o SSE per i server MCP ospitati nel cloud e le API remote:

259 281 


311 333 

312Per il trasporto HTTP in streaming, utilizza `"type": "http"` invece. Nei file di configurazione `.mcp.json` e altri file JSON, `"streamable-http"` è accettato come alias per `"http"`. L'opzione programmatica `mcpServers` accetta solo `"http"`.334Per il trasporto HTTP in streaming, utilizza `"type": "http"` invece. Nei file di configurazione `.mcp.json` e altri file JSON, `"streamable-http"` è accettato come alias per `"http"`. L'opzione programmatica `mcpServers` accetta solo `"http"`.

313 335 

314### Server MCP SDK336<h3 id="sdk-mcp-servers">

337 Server MCP SDK

338</h3>

315 339 

316Definisci strumenti personalizzati direttamente nel codice della tua applicazione invece di eseguire un processo server separato. Consulta la [guida agli strumenti personalizzati](/it/agent-sdk/custom-tools) per i dettagli di implementazione.340Definisci strumenti personalizzati direttamente nel codice della tua applicazione invece di eseguire un processo server separato. Consulta la [guida agli strumenti personalizzati](/it/agent-sdk/custom-tools) per i dettagli di implementazione.

317 341 

318## Ricerca di strumenti MCP342<h2 id="mcp-tool-search">

343 Ricerca di strumenti MCP

344</h2>

319 345 

320Quando hai molti strumenti MCP configurati, le definizioni degli strumenti possono consumare una parte significativa della tua finestra di contesto. La ricerca di strumenti risolve questo problema trattenendo le definizioni degli strumenti dal contesto e caricando solo quelli di cui Claude ha bisogno per ogni turno.346Quando hai molti strumenti MCP configurati, le definizioni degli strumenti possono consumare una parte significativa della tua finestra di contesto. La ricerca di strumenti risolve questo problema trattenendo le definizioni degli strumenti dal contesto e caricando solo quelli di cui Claude ha bisogno per ogni turno.

321 347 


323 349 

324Per ulteriori dettagli, incluse le best practice e l'utilizzo della ricerca di strumenti con strumenti SDK personalizzati, consulta la [guida alla ricerca di strumenti](/it/agent-sdk/tool-search).350Per ulteriori dettagli, incluse le best practice e l'utilizzo della ricerca di strumenti con strumenti SDK personalizzati, consulta la [guida alla ricerca di strumenti](/it/agent-sdk/tool-search).

325 351 

326## Autenticazione352<h2 id="authentication">

353 Autenticazione

354</h2>

327 355 

328La maggior parte dei server MCP richiede l'autenticazione per accedere ai servizi esterni. Passa le credenziali tramite variabili di ambiente nella configurazione del server.356La maggior parte dei server MCP richiede l'autenticazione per accedere ai servizi esterni. Passa le credenziali tramite variabili di ambiente nella configurazione del server.

329 357 

330### Passa le credenziali tramite variabili di ambiente358<h3 id="pass-credentials-via-environment-variables">

359 Passa le credenziali tramite variabili di ambiente

360</h3>

331 361 

332Utilizza il campo `env` per passare chiavi API, token e altre credenziali al server MCP:362Utilizza il campo `env` per passare chiavi API, token e altre credenziali al server MCP:

333 363 


387 417 

388Consulta [Elenca i problemi da un repository](#list-issues-from-a-repository) per un esempio completo e funzionante con registrazione di debug.418Consulta [Elenca i problemi da un repository](#list-issues-from-a-repository) per un esempio completo e funzionante con registrazione di debug.

389 419 

390### Intestazioni HTTP per server remoti420<h3 id="http-headers-for-remote-servers">

421 Intestazioni HTTP per server remoti

422</h3>

391 423 

392Per i server HTTP e SSE, passa le intestazioni di autenticazione direttamente nella configurazione del server:424Per i server HTTP e SSE, passa le intestazioni di autenticazione direttamente nella configurazione del server:

393 425 


445 </Tab>477 </Tab>

446</Tabs>478</Tabs>

447 479 

448### Autenticazione OAuth2480<h3 id="oauth2-authentication">

481 Autenticazione OAuth2

482</h3>

449 483 

450La [specifica MCP supporta OAuth 2.1](https://modelcontextprotocol.io/specification/2025-03-26/basic/authorization) per l'autorizzazione. L'SDK non gestisce i flussi OAuth automaticamente, ma puoi passare i token di accesso tramite intestazioni dopo aver completato il flusso OAuth nella tua applicazione:484La [specifica MCP supporta OAuth 2.1](https://modelcontextprotocol.io/specification/2025-03-26/basic/authorization) per l'autorizzazione. L'SDK non gestisce i flussi OAuth automaticamente, ma puoi passare i token di accesso tramite intestazioni dopo aver completato il flusso OAuth nella tua applicazione:

451 485 


485 ```519 ```

486</CodeGroup>520</CodeGroup>

487 521 

488## Esempi522<h2 id="examples">

523 Esempi

524</h2>

489 525 

490### Elenca i problemi da un repository526<h3 id="list-issues-from-a-repository">

527 Elenca i problemi da un repository

528</h3>

491 529 

492Questo esempio si connette al [server GitHub MCP](https://github.com/modelcontextprotocol/servers/tree/main/src/github) per elencare i problemi recenti. L'esempio include la registrazione di debug per verificare la connessione MCP e le chiamate agli strumenti.530Questo esempio si connette al [server GitHub MCP](https://github.com/modelcontextprotocol/servers/tree/main/src/github) per elencare i problemi recenti. L'esempio include la registrazione di debug per verificare la connessione MCP e le chiamate agli strumenti.

493 531 


584 ```622 ```

585</CodeGroup>623</CodeGroup>

586 624 

587### Interroga un database625<h3 id="query-a-database">

626 Interroga un database

627</h3>

588 628 

589Questo esempio utilizza il [server Postgres MCP](https://github.com/modelcontextprotocol/servers/tree/main/src/postgres) per interrogare un database. La stringa di connessione viene passata come argomento al server. L'agente scopre automaticamente lo schema del database, scrive la query SQL e restituisce i risultati:629Questo esempio utilizza il [server Postgres MCP](https://github.com/modelcontextprotocol/servers/tree/main/src/postgres) per interrogare un database. La stringa di connessione viene passata come argomento al server. L'agente scopre automaticamente lo schema del database, scrive la query SQL e restituisce i risultati:

590 630 


655 ```695 ```

656</CodeGroup>696</CodeGroup>

657 697 

658## Gestione degli errori698<h2 id="error-handling">

699 Gestione degli errori

700</h2>

659 701 

660I server MCP possono non riuscire a connettersi per vari motivi: il processo del server potrebbe non essere installato, le credenziali potrebbero non essere valide o un server remoto potrebbe essere irraggiungibile.702I server MCP possono non riuscire a connettersi per vari motivi: il processo del server potrebbe non essere installato, le credenziali potrebbero non essere valide o un server remoto potrebbe essere irraggiungibile.

661 703 


717 ```759 ```

718</CodeGroup>760</CodeGroup>

719 761 

720## Troubleshooting762<h2 id="troubleshooting">

763 Troubleshooting

764</h2>

721 765 

722### Il server mostra lo stato "failed"766<h3 id="server-shows-failed-status">

767 Il server mostra lo stato "failed"

768</h3>

723 769 

724Controlla il messaggio `init` per vedere quali server non hanno potuto connettersi:770Controlla il messaggio `init` per vedere quali server non hanno potuto connettersi:

725 771 


740* **Stringa di connessione non valida**: Per i server di database, verifica il formato della stringa di connessione e che il database sia accessibile.786* **Stringa di connessione non valida**: Per i server di database, verifica il formato della stringa di connessione e che il database sia accessibile.

741* **Problemi di rete**: Per i server HTTP/SSE remoti, controlla che l'URL sia raggiungibile e che eventuali firewall consentano la connessione.787* **Problemi di rete**: Per i server HTTP/SSE remoti, controlla che l'URL sia raggiungibile e che eventuali firewall consentano la connessione.

742 788 

743### Gli strumenti non vengono chiamati789<h3 id="tools-not-being-called">

790 Gli strumenti non vengono chiamati

791</h3>

744 792 

745Se Claude vede gli strumenti ma non li utilizza, controlla di aver concesso l'autorizzazione con `allowedTools`:793Se Claude vede gli strumenti ma non li utilizza, controlla di aver concesso l'autorizzazione con `allowedTools`:

746 794 


755};803};

756```804```

757 805 

758### Timeout della connessione806<h3 id="connection-timeouts">

807 Timeout della connessione

808</h3>

759 809 

760L'SDK MCP ha un timeout predefinito di 60 secondi per le connessioni del server. Se il tuo server impiega più tempo per avviarsi, la connessione avrà esito negativo. Per i server che hanno bisogno di più tempo di avvio, considera:810L'SDK MCP ha un timeout predefinito di 60 secondi per le connessioni del server. Se il tuo server impiega più tempo per avviarsi, la connessione avrà esito negativo. Per i server che hanno bisogno di più tempo di avvio, considera:

761 811 


763* Pre-riscaldare il server prima di avviare il tuo agente813* Pre-riscaldare il server prima di avviare il tuo agente

764* Controllare i log del server per le cause di inizializzazione lenta814* Controllare i log del server per le cause di inizializzazione lenta

765 815 

766## Risorse correlate816<h2 id="related-resources">

817 Risorse correlate

818</h2>

767 819 

768* **[Guida agli strumenti personalizzati](/it/agent-sdk/custom-tools)**: Costruisci il tuo server MCP che viene eseguito in-process con la tua applicazione SDK820* **[Guida agli strumenti personalizzati](/it/agent-sdk/custom-tools)**: Costruisci il tuo server MCP che viene eseguito in-process con la tua applicazione SDK

769* **[Autorizzazioni](/it/agent-sdk/permissions)**: Controlla quali strumenti MCP il tuo agente può utilizzare con `allowedTools` e `disallowedTools`821* **[Autorizzazioni](/it/agent-sdk/permissions)**: Controlla quali strumenti MCP il tuo agente può utilizzare con `allowedTools` e `disallowedTools`

Details

12 12 

13Claude Code SDK è stato rinominato in **Claude Agent SDK** e la sua documentazione è stata riorganizzata. Questo cambiamento riflette le capacità più ampie dell'SDK per la creazione di agenti AI oltre ai soli compiti di codifica.13Claude Code SDK è stato rinominato in **Claude Agent SDK** e la sua documentazione è stata riorganizzata. Questo cambiamento riflette le capacità più ampie dell'SDK per la creazione di agenti AI oltre ai soli compiti di codifica.

14 14 

15<h2 id="what-s-changed">15<h2 id="whats-changed">

16 Cosa è cambiato16 Cosa è cambiato

17</h2>17</h2>

18 18 


82}82}

83```83```

84 84 

85Questo è tutto! Non sono richieste altre modifiche al codice.85**5. Rivedere i [cambiamenti significativi](#breaking-changes)**

86 

87Apportare le modifiche al codice necessarie per completare la migrazione.

86 88 

87<h3 id="for-python-projects">89<h3 id="for-python-projects">

88 Per progetti Python90 Per progetti Python


172 174 

173<CodeGroup>175<CodeGroup>

174 ```typescript TypeScript theme={null}176 ```typescript TypeScript theme={null}

177 import { query } from "@anthropic-ai/claude-agent-sdk";

178 

175 // PRIMA (v0.0.x) - Utilizzava il system prompt di Claude Code per impostazione predefinita179 // PRIMA (v0.0.x) - Utilizzava il system prompt di Claude Code per impostazione predefinita

176 const result = query({ prompt: "Hello" });180 const before = query({ prompt: "Hello" });

177 181 

178 // DOPO (v0.1.0) - Utilizza un system prompt minimo per impostazione predefinita182 // DOPO (v0.1.0) - Utilizza un system prompt minimo per impostazione predefinita

179 // Per ottenere il comportamento precedente, richiedere esplicitamente il preset di Claude Code:183 // Per ottenere il comportamento precedente, richiedere esplicitamente il preset di Claude Code:

180 const result = query({184 const presetResult = query({

181 prompt: "Hello",185 prompt: "Hello",

182 options: {186 options: {

183 systemPrompt: { type: "preset", preset: "claude_code" }187 systemPrompt: { type: "preset", preset: "claude_code" }


185 });189 });

186 190 

187 // Oppure utilizzare un system prompt personalizzato:191 // Oppure utilizzare un system prompt personalizzato:

188 const result = query({192 const customResult = query({

189 prompt: "Hello",193 prompt: "Hello",

190 options: {194 options: {

191 systemPrompt: "You are a helpful coding assistant"195 systemPrompt: "You are a helpful coding assistant"


233 237 

234<CodeGroup>238<CodeGroup>

235 ```typescript TypeScript theme={null}239 ```typescript TypeScript theme={null}

236 const result = query({240 import { query } from "@anthropic-ai/claude-agent-sdk";

241 

242 const isolatedResult = query({

237 prompt: "Hello",243 prompt: "Hello",

238 options: {244 options: {

239 settingSources: [] // Nessuna impostazione del file system caricata245 settingSources: [] // Nessuna impostazione del file system caricata


241 });247 });

242 248 

243 // Oppure caricare solo fonti specifiche:249 // Oppure caricare solo fonti specifiche:

244 const result = query({250 const projectOnlyResult = query({

245 prompt: "Hello",251 prompt: "Hello",

246 options: {252 options: {

247 settingSources: ["project"] // Solo impostazioni del progetto253 settingSources: ["project"] // Solo impostazioni del progetto

Details

108Poiché il processo figlio eredita l'ambiente della tua applicazione per impostazione predefinita, puoi ottenere lo stesso risultato esportando queste variabili in un Dockerfile, manifesto Kubernetes o profilo shell e omettendo completamente `options.env`.108Poiché il processo figlio eredita l'ambiente della tua applicazione per impostazione predefinita, puoi ottenere lo stesso risultato esportando queste variabili in un Dockerfile, manifesto Kubernetes o profilo shell e omettendo completamente `options.env`.

109 109 

110<Note>110<Note>

111 L'esportatore `console` scrive la telemetria su standard output, che l'SDK utilizza111 L'esportatore `console` scrive la telemetria su standard output, che l'SDK utilizza come canale di messaggi. Non impostare `console` come valore di esportatore quando esegui attraverso l'SDK. Per ispezionare la telemetria localmente, punta `OTEL_EXPORTER_OTLP_ENDPOINT` a un collector locale o a un container Jaeger all-in-one.

112 come canale di messaggi. Non impostare `console` come valore di esportatore quando esegui

113 attraverso l'SDK. Per ispezionare la telemetria localmente, punta

114 `OTEL_EXPORTER_OTLP_ENDPOINT` a un collector locale o a un container

115 Jaeger all-in-one.

116</Note>112</Note>

117 113 

118<h3 id="flush-telemetry-from-short-lived-calls">114<h3 id="flush-telemetry-from-short-lived-calls">


199 ...process.env,195 ...process.env,

200 // ... exporter configuration ...196 // ... exporter configuration ...

201 OTEL_SERVICE_NAME: "support-triage-agent",197 OTEL_SERVICE_NAME: "support-triage-agent",

202 OTEL_RESOURCE_ATTRIBUTES:198 OTEL_RESOURCE_ATTRIBUTES":

203 "service.version=1.4.0,deployment.environment=production",199 "service.version=1.4.0,deployment.environment=production",

204 },200 },

205 };201 };

Details

260 <Tab title="Subagents">260 <Tab title="Subagents">

261 Genera agenti specializzati per gestire sottoattività mirate. Il tuo agente principale delega il lavoro e i subagenti riferiscono i risultati.261 Genera agenti specializzati per gestire sottoattività mirate. Il tuo agente principale delega il lavoro e i subagenti riferiscono i risultati.

262 262 

263 Definisci agenti personalizzati con istruzioni specializzate. Includi `Agent` in `allowedTools` poiché i subagenti vengono invocati tramite lo strumento Agent:263 Definisci agenti personalizzati con istruzioni specializzate. I subagenti vengono invocati tramite lo strumento Agent, quindi includi `Agent` in `allowedTools` per approvare automaticamente quelle invocazioni:

264 264 

265 <CodeGroup>265 <CodeGroup>

266 ```python Python theme={null}266 ```python Python theme={null}

Details

27 Controlla le regole `deny` (da `disallowed_tools` e [settings.json](/it/settings#permission-settings)). Se una regola di negazione corrisponde, lo strumento viene bloccato, anche in modalità `bypassPermissions`. Le regole di negazione con nome semplice come `Bash` rimuovono lo strumento dal contesto di Claude prima che questa valutazione inizi, quindi solo le regole con ambito come `Bash(rm *)` vengono controllate in questo passaggio.27 Controlla le regole `deny` (da `disallowed_tools` e [settings.json](/it/settings#permission-settings)). Se una regola di negazione corrisponde, lo strumento viene bloccato, anche in modalità `bypassPermissions`. Le regole di negazione con nome semplice come `Bash` rimuovono lo strumento dal contesto di Claude prima che questa valutazione inizi, quindi solo le regole con ambito come `Bash(rm *)` vengono controllate in questo passaggio.

28 </Step>28 </Step>

29 29 

30 <Step title="Regole di richiesta">

31 Controlla le regole `ask` da [settings.json](/it/settings#permission-settings). Se una regola di richiesta corrisponde, la chiamata passa al tuo callback [`canUseTool`](/it/agent-sdk/user-input) per la conferma, anche in modalità `bypassPermissions`. In modalità `dontAsk` una regola di richiesta corrispondente viene negata invece, perché quella modalità non richiede mai conferma.

32 </Step>

33 

30 <Step title="Modalità di permesso">34 <Step title="Modalità di permesso">

31 Applica la [modalità di permesso](#permission-modes) attiva. `bypassPermissions` approva tutto ciò che raggiunge questo passaggio. `acceptEdits` approva le operazioni su file. Le altre modalità passano oltre.35 Applica la [modalità di permesso](#permission-modes) attiva. `bypassPermissions` approva tutto ciò che raggiunge questo passaggio. `acceptEdits` approva le operazioni su file. `plan` instrada gli strumenti di modifica file e scrittura shell al tuo callback `canUseTool` indipendentemente dalle regole di consentimento, quindi le operazioni di scrittura non possono essere approvate automaticamente durante la pianificazione. Le altre modalità passano oltre.

32 </Step>36 </Step>

33 37 

34 <Step title="Regole di consentimento">38 <Step title="Regole di consentimento">


40 </Step>44 </Step>

41</Steps>45</Steps>

42 46 

43<img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/agent-sdk/permissions-flow.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=cc94220087262cd48c9b64a14c4e1c2c" alt="Diagramma del flusso di valutazione dei permessi" width="1024" height="260" data-path="images/agent-sdk/permissions-flow.svg" />47<img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/agent-sdk/permissions-flow.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=cc94220087262cd48c9b64a14c4e1c2c" alt="Diagramma del flusso di valutazione dei permessi in cinque passaggi che corrisponde ai passaggi precedenti: una richiesta di strumento passa attraverso hook, regole di negazione, modalità di permesso, regole di consentimento e canUseTool. Hook, regole di negazione e canUseTool possono instradare verso Bloccato; bypass della modalità di permesso, regole di consentimento e canUseTool possono instradare verso Esegui." width="1024" height="260" data-path="images/agent-sdk/permissions-flow.svg" />

44 48 

45Questa pagina si concentra su **regole di consentimento e negazione** e **modalità di permesso**. Per gli altri passaggi:49Questa pagina si concentra su **regole di consentimento e negazione** e **modalità di permesso**. Per gli altri passaggi:

46 50 


54`allowed_tools` e `disallowed_tools` (TypeScript: `allowedTools` / `disallowedTools`) aggiungono voci agli elenchi di regole di consentimento e negazione nel flusso di valutazione sopra. Le regole di consentimento influiscono solo sull'approvazione: uno strumento non elencato in `allowed_tools` è ancora disponibile per Claude e passa alla modalità di permesso. Le regole di negazione si comportano diversamente a seconda che denominino uno strumento o limitino un modello all'interno di uno.58`allowed_tools` e `disallowed_tools` (TypeScript: `allowedTools` / `disallowedTools`) aggiungono voci agli elenchi di regole di consentimento e negazione nel flusso di valutazione sopra. Le regole di consentimento influiscono solo sull'approvazione: uno strumento non elencato in `allowed_tools` è ancora disponibile per Claude e passa alla modalità di permesso. Le regole di negazione si comportano diversamente a seconda che denominino uno strumento o limitino un modello all'interno di uno.

55 59 

56| Opzione | Effetto |60| Opzione | Effetto |

57| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |61| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

58| `allowed_tools=["Read", "Grep"]` | `Read` e `Grep` vengono approvati automaticamente. Gli strumenti non elencati qui esistono ancora e passano alla modalità di permesso e `canUseTool`. |62| `allowed_tools=["Read", "Grep"]` | `Read` e `Grep` vengono approvati automaticamente. Gli strumenti non elencati qui esistono ancora e passano alla modalità di permesso e `canUseTool`. |

59| `disallowed_tools=["Bash"]` | La definizione dello strumento `Bash` viene rimossa dalla richiesta. Claude non vede lo strumento e non può tentarlo. |63| `disallowed_tools=["Bash"]` | La definizione dello strumento `Bash` viene rimossa dalla richiesta. Claude non vede lo strumento e non può tentarlo. |

60| `disallowed_tools=["Bash(rm *)"]` | `Bash` rimane disponibile. Le chiamate corrispondenti a `rm *` vengono negate in ogni modalità di permesso, inclusa `bypassPermissions`. Altre chiamate `Bash` passano alla modalità di permesso. |64| `disallowed_tools=["Bash(rm *)"]` | `Bash` rimane disponibile. Le chiamate corrispondenti a `rm *` vengono negate in ogni modalità di permesso, inclusa `bypassPermissions`. Altre chiamate `Bash` passano alla modalità di permesso. |

65| `disallowed_tools=["*"]` | Ogni definizione di strumento viene rimossa dalla richiesta. I glob dei nomi degli strumenti sono supportati nelle regole di negazione: `"*"` corrisponde a ogni strumento e `"mcp__*"` corrisponde a ogni strumento MCP su tutti i server. |

66 

67Le regole di consentimento accettano glob dei nomi degli strumenti solo dopo un prefisso letterale `mcp__<server>__`. Il segmento del server deve essere privo di glob in modo che la regola nomini un server specifico che hai configurato: `mcp__puppeteer__*` corrisponde a ogni strumento dal server `puppeteer` e `mcp__github__get_*` corrisponde ai suoi strumenti `get_`. Una voce non ancorata come `allowed_tools=["*"]` o `allowed_tools=["mcp__*"]` viene ignorata con un avviso di avvio e non approva automaticamente nulla.

61 68 

62Per un agente bloccato, abbina `allowedTools` con `permissionMode: "dontAsk"`. Gli strumenti elencati vengono approvati; tutto il resto viene negato completamente invece di richiedere:69Per un agente bloccato, abbina `allowedTools` con `permissionMode: "dontAsk"`. Gli strumenti elencati vengono approvati; tutto il resto viene negato completamente invece di richiedere:

63 70 


87L'SDK supporta queste modalità di permesso:94L'SDK supporta queste modalità di permesso:

88 95 

89| Modalità | Descrizione | Comportamento dello strumento |96| Modalità | Descrizione | Comportamento dello strumento |

90| :----------------------- | :------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |97| :----------------------- | :------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

91| `default` | Comportamento di permesso standard | Nessuna approvazione automatica; gli strumenti non abbinati attivano il tuo callback `canUseTool` |98| `default` | Comportamento di permesso standard | Nessuna approvazione automatica; gli strumenti non abbinati attivano il tuo callback `canUseTool` |

92| `dontAsk` | Nega invece di richiedere | Qualsiasi cosa non pre-approvata da `allowed_tools` o regole viene negata; `canUseTool` non viene mai chiamato |99| `dontAsk` | Nega invece di richiedere | Qualsiasi cosa non pre-approvata da `allowed_tools` o regole viene negata; `canUseTool` non viene mai chiamato |

93| `acceptEdits` | Accetta automaticamente le modifiche ai file | Le modifiche ai file e le [operazioni del filesystem](#accept-edits-mode-acceptedits) (`mkdir`, `rm`, `mv`, ecc.) vengono approvate automaticamente |100| `acceptEdits` | Accetta automaticamente le modifiche ai file | Le modifiche ai file e le [operazioni del filesystem](#accept-edits-mode-acceptedits) (`mkdir`, `rm`, `mv`, ecc.) vengono approvate automaticamente |

94| `bypassPermissions` | Ignora tutti i controlli di permesso | Tutti gli strumenti vengono eseguiti senza richieste di permesso (usare con cautela) |101| `bypassPermissions` | Ignora i controlli di permesso | Gli strumenti vengono eseguiti senza richieste di permesso, a meno che non corrisponda una regola [`ask`](#how-permissions-are-evaluated) esplicita (usare con cautela) |

95| `plan` | Modalità di pianificazione | Gli strumenti di sola lettura vengono eseguiti; Claude analizza e pianifica senza modificare i tuoi file sorgente |102| `plan` | Modalità di pianificazione | Claude esplora e pianifica senza modificare i tuoi file sorgente; le modifiche ai file non vengono mai approvate automaticamente e richiedono il tuo callback `canUseTool` |

96| `auto` (solo TypeScript) | Approvazioni classificate dal modello | Un classificatore di modello approva o nega ogni chiamata di strumento. Vedi [Modalità Auto](/it/permission-modes#eliminate-prompts-with-auto-mode) per la disponibilità |103| `auto` (solo TypeScript) | Approvazioni classificate dal modello | Un classificatore di modello approva o nega ogni chiamata di strumento. Vedi [Modalità Auto](/it/permission-modes#eliminate-prompts-with-auto-mode) per la disponibilità |

97 104 

98<Warning>105<Warning>

99 **Eredità del subagente:** Quando il genitore utilizza `bypassPermissions`, `acceptEdits` o `auto`, tutti i subagenti ereditano quella modalità e non può essere sovrascritta per subagente. I subagenti possono avere prompt di sistema diversi e comportamento meno vincolato rispetto al tuo agente principale, quindi ereditare `bypassPermissions` concede loro accesso completo e autonomo al sistema senza alcuna richiesta di approvazione.106 **Eredità del subagente:** Quando il genitore utilizza `bypassPermissions`, `acceptEdits` o `auto`, tutti i subagenti ereditano quella modalità e non può essere sovrascritta per subagente. I subagenti possono avere prompt di sistema diversi e comportamento meno vincolato rispetto al tuo agente principale, quindi ereditare `bypassPermissions` concede loro accesso completo e autonomo al sistema. Una regola [`ask`](#how-permissions-are-evaluated) esplicita forza comunque una richiesta.

100</Warning>107</Warning>

101 108 

102<h3 id="set-permission-mode">109<h3 id="set-permission-mode">


226 233 

227**Usare quando:** ti fidi delle modifiche di Claude e desideri un'iterazione più veloce, ad esempio durante la prototipazione o quando lavori in una directory isolata.234**Usare quando:** ti fidi delle modifiche di Claude e desideri un'iterazione più veloce, ad esempio durante la prototipazione o quando lavori in una directory isolata.

228 235 

229<h4 id="don-t-ask-mode-dontask">236<h4 id="dont-ask-mode-dontask">

230 Modalità non chiedere (`dontAsk`)237 Modalità non chiedere (`dontAsk`)

231</h4>238</h4>

232 239 


250 Modalità piano (`plan`)257 Modalità piano (`plan`)

251</h4>258</h4>

252 259 

253Limita Claude agli strumenti di sola lettura. Claude può leggere file ed eseguire comandi shell di sola lettura per esplorare la base di codice ma non modifica i tuoi file sorgente. Claude può utilizzare `AskUserQuestion` per chiarire i requisiti prima di finalizzare il piano. Vedi [Gestire approvazioni e input dell'utente](/it/agent-sdk/user-input#handle-clarifying-questions) per gestire queste richieste.260Claude esplora la base di codice e produce un piano senza modificare i tuoi file sorgente. Gli strumenti di sola lettura vengono eseguiti come in modalità predefinita. Le modifiche ai file non vengono mai approvate automaticamente in modalità piano, anche quando una regola di consentimento corrisponde. Richiedono il tuo callback `canUseTool` invece. Claude può utilizzare `AskUserQuestion` per chiarire i requisiti prima di finalizzare il piano. Vedi [Gestire approvazioni e input dell'utente](/it/agent-sdk/user-input#handle-clarifying-questions) per gestire queste richieste.

254 261 

255**Usare quando:** desideri che Claude proponga modifiche senza eseguirle, ad esempio durante la revisione del codice o quando hai bisogno di approvare le modifiche prima che vengano apportate.262**Usare quando:** desideri che Claude proponga modifiche senza eseguirle, ad esempio durante la revisione del codice o quando hai bisogno di approvare le modifiche prima che vengano apportate.

256 263 

agent-sdk/python.md +520 −179

Details

6 6 

7> Riferimento API completo per Python Agent SDK, incluse tutte le funzioni, i tipi e le classi.7> Riferimento API completo per Python Agent SDK, incluse tutte le funzioni, i tipi e le classi.

8 8 

9## Installazione9<h2 id="installation">

10 Installazione

11</h2>

10 12 

11```bash theme={null}13```bash theme={null}

12pip install claude-agent-sdk14pip install claude-agent-sdk

13```15```

14 16 

15## Scelta tra `query()` e `ClaudeSDKClient`17<h2 id="choosing-between-query-and-claudesdkclient">

18 Scelta tra `query()` e `ClaudeSDKClient`

19</h2>

16 20 

17Python SDK fornisce due modi per interagire con Claude Code:21Python SDK fornisce due modi per interagire con Claude Code:

18 22 

19### Confronto rapido23<h3 id="quick-comparison">

24 Confronto rapido

25</h3>

20 26 

21| Funzionalità | `query()` | `ClaudeSDKClient` |27| Funzionalità | `query()` | `ClaudeSDKClient` |

22| :--------------------------- | :--------------------------------------------------- | :------------------------------- |28| :--------------------------- | :--------------------------------------------------- | :------------------------------- |


30| **Continua chat** | Manuale tramite `continue_conversation` o `resume` | ✅ Automatico |36| **Continua chat** | Manuale tramite `continue_conversation` o `resume` | ✅ Automatico |

31| **Caso d'uso** | Attività una tantum | Conversazioni continue |37| **Caso d'uso** | Attività una tantum | Conversazioni continue |

32 38 

33### Quando usare `query()` (attività una tantum)39<h3 id="when-to-use-query-one-off-tasks">

40 Quando usare `query()` (attività una tantum)

41</h3>

34 42 

35**Migliore per:**43**Migliore per:**

36 44 


39* Script di automazione semplici47* Script di automazione semplici

40* Quando vuoi un nuovo inizio ogni volta48* Quando vuoi un nuovo inizio ogni volta

41 49 

42### Quando usare `ClaudeSDKClient` (conversazione continua)50<h3 id="when-to-use-claudesdkclient-continuous-conversation">

51 Quando usare `ClaudeSDKClient` (conversazione continua)

52</h3>

43 53 

44**Migliore per:**54**Migliore per:**

45 55 


49* **Logica guidata dalla risposta** - Quando l'azione successiva dipende dalla risposta di Claude59* **Logica guidata dalla risposta** - Quando l'azione successiva dipende dalla risposta di Claude

50* **Controllo della sessione** - Gestire il ciclo di vita della conversazione in modo esplicito60* **Controllo della sessione** - Gestire il ciclo di vita della conversazione in modo esplicito

51 61 

52## Funzioni62<h2 id="functions">

63 Funzioni

64</h2>

53 65 

54### `query()`66<h3 id="query">

67 `query()`

68</h3>

55 69 

56Crea una nuova sessione per ogni interazione con Claude Code per impostazione predefinita. Restituisce un iteratore asincrono che produce messaggi man mano che arrivano. Ogni chiamata a `query()` inizia da zero senza memoria di interazioni precedenti a meno che non passiate `continue_conversation=True` o `resume` in [`ClaudeAgentOptions`](#claudeagentoptions). Vedi [Sessions](/it/agent-sdk/sessions).70Crea una nuova sessione per ogni interazione con Claude Code per impostazione predefinita. Restituisce un iteratore asincrono che produce messaggi man mano che arrivano. Ogni chiamata a `query()` inizia da zero senza memoria di interazioni precedenti a meno che non passiate `continue_conversation=True` o `resume` in [`ClaudeAgentOptions`](#claudeagentoptions). Vedi [Sessions](/it/agent-sdk/sessions).

57 71 


64) -> AsyncIterator[Message]78) -> AsyncIterator[Message]

65```79```

66 80 

67#### Parametri81<h4 id="parameters">

82 Parametri

83</h4>

68 84 

69| Parametro | Tipo | Descrizione |85| Parametro | Tipo | Descrizione |

70| :---------- | :--------------------------- | :------------------------------------------------------------------------------------------------ |86| :---------- | :--------------------------- | :------------------------------------------------------------------------------------------------ |


72| `options` | `ClaudeAgentOptions \| None` | Oggetto di configurazione opzionale (per impostazione predefinita `ClaudeAgentOptions()` se None) |88| `options` | `ClaudeAgentOptions \| None` | Oggetto di configurazione opzionale (per impostazione predefinita `ClaudeAgentOptions()` se None) |

73| `transport` | `Transport \| None` | Trasporto personalizzato opzionale per comunicare con il processo CLI |89| `transport` | `Transport \| None` | Trasporto personalizzato opzionale per comunicare con il processo CLI |

74 90 

75#### Restituisce91<h4 id="returns">

92 Restituisce

93</h4>

76 94 

77Restituisce un `AsyncIterator[Message]` che produce messaggi dalla conversazione.95Restituisce un `AsyncIterator[Message]` che produce messaggi dalla conversazione.

78 96 

79#### Esempio - Con opzioni97<h4 id="example-with-options">

98 Esempio - Con opzioni

99</h4>

80 100 

81```python theme={null}101```python theme={null}

82import asyncio102import asyncio


97asyncio.run(main())117asyncio.run(main())

98```118```

99 119 

100### `tool()`120<h3 id="tool">

121 `tool()`

122</h3>

101 123 

102Decoratore per definire strumenti MCP con sicurezza dei tipi.124Decoratore per definire strumenti MCP con sicurezza dei tipi.

103 125 


110) -> Callable[[Callable[[Any], Awaitable[dict[str, Any]]]], SdkMcpTool[Any]]132) -> Callable[[Callable[[Any], Awaitable[dict[str, Any]]]], SdkMcpTool[Any]]

111```133```

112 134 

113#### Parametri135<h4 id="parameters-1">

136 Parametri

137</h4>

114 138 

115| Parametro | Tipo | Descrizione |139| Parametro | Tipo | Descrizione |

116| :------------- | :---------------------------------------------- | :---------------------------------------------------------------------------------------------- |140| :------------- | :---------------------------------------------- | :---------------------------------------------------------------------------------------------- |


119| `input_schema` | `type \| dict[str, Any]` | Schema che definisce i parametri di input dello strumento (vedi sotto) |143| `input_schema` | `type \| dict[str, Any]` | Schema che definisce i parametri di input dello strumento (vedi sotto) |

120| `annotations` | [`ToolAnnotations`](#toolannotations)` \| None` | Annotazioni MCP dello strumento opzionali che forniscono suggerimenti comportamentali ai client |144| `annotations` | [`ToolAnnotations`](#toolannotations)` \| None` | Annotazioni MCP dello strumento opzionali che forniscono suggerimenti comportamentali ai client |

121 145 

122#### Opzioni dello schema di input146<h4 id="input-schema-options">

147 Opzioni dello schema di input

148</h4>

123 149 

1241. **Mappatura di tipo semplice** (consigliato):1501. **Mappatura di tipo semplice** (consigliato):

125 151 


139 }165 }

140 ```166 ```

141 167 

142#### Restituisce168<h4 id="returns-1">

169 Restituisce

170</h4>

143 171 

144Una funzione decoratore che avvolge l'implementazione dello strumento e restituisce un'istanza `SdkMcpTool`.172Una funzione decoratore che avvolge l'implementazione dello strumento e restituisce un'istanza `SdkMcpTool`.

145 173 

146#### Esempio174<h4 id="example">

175 Esempio

176</h4>

147 177 

148```python theme={null}178```python theme={null}

149from claude_agent_sdk import tool179from claude_agent_sdk import tool


155 return {"content": [{"type": "text", "text": f"Hello, {args['name']}!"}]}185 return {"content": [{"type": "text", "text": f"Hello, {args['name']}!"}]}

156```186```

157 187 

158#### `ToolAnnotations`188<h4 id="toolannotations">

189 `ToolAnnotations`

190</h4>

159 191 

160Riesportato da `mcp.types` (disponibile anche come `from claude_agent_sdk import ToolAnnotations`). Tutti i campi sono suggerimenti opzionali; i client non dovrebbero fare affidamento su di essi per decisioni di sicurezza.192Riesportato da `mcp.types` (disponibile anche come `from claude_agent_sdk import ToolAnnotations`). Tutti i campi sono suggerimenti opzionali; i client non dovrebbero fare affidamento su di essi per decisioni di sicurezza.

161 193 


182 return {"content": [{"type": "text", "text": f"Results for: {args['query']}"}]}214 return {"content": [{"type": "text", "text": f"Results for: {args['query']}"}]}

183```215```

184 216 

185### `create_sdk_mcp_server()`217<h3 id="create_sdk_mcp_server">

218 `create_sdk_mcp_server()`

219</h3>

186 220 

187Crea un server MCP in-process che viene eseguito all'interno della tua applicazione Python.221Crea un server MCP in-process che viene eseguito all'interno della tua applicazione Python.

188 222 


194) -> McpSdkServerConfig228) -> McpSdkServerConfig

195```229```

196 230 

197#### Parametri231<h4 id="parameters-2">

232 Parametri

233</h4>

198 234 

199| Parametro | Tipo | Predefinito | Descrizione |235| Parametro | Tipo | Predefinito | Descrizione |

200| :-------- | :------------------------------ | :---------- | :--------------------------------------------------------------- |236| :-------- | :------------------------------ | :---------- | :--------------------------------------------------------------- |


202| `version` | `str` | `"1.0.0"` | Stringa della versione del server |238| `version` | `str` | `"1.0.0"` | Stringa della versione del server |

203| `tools` | `list[SdkMcpTool[Any]] \| None` | `None` | Elenco di funzioni di strumento create con il decoratore `@tool` |239| `tools` | `list[SdkMcpTool[Any]] \| None` | `None` | Elenco di funzioni di strumento create con il decoratore `@tool` |

204 240 

205#### Restituisce241<h4 id="returns-2">

242 Restituisce

243</h4>

206 244 

207Restituisce un oggetto `McpSdkServerConfig` che può essere passato a `ClaudeAgentOptions.mcp_servers`.245Restituisce un oggetto `McpSdkServerConfig` che può essere passato a `ClaudeAgentOptions.mcp_servers`.

208 246 

209#### Esempio247<h4 id="example-1">

248 Esempio

249</h4>

210 250 

211```python theme={null}251```python theme={null}

212from claude_agent_sdk import tool, create_sdk_mcp_server252from claude_agent_sdk import tool, create_sdk_mcp_server


235)275)

236```276```

237 277 

238### `list_sessions()`278<h3 id="list_sessions">

279 `list_sessions()`

280</h3>

239 281 

240Elenca le sessioni passate con metadati. Filtra per directory di progetto o elenca le sessioni in tutti i progetti. Sincrono; restituisce immediatamente.282Elenca le sessioni passate con metadati. Filtra per directory di progetto o elenca le sessioni in tutti i progetti. Sincrono; restituisce immediatamente.

241 283 


247) -> list[SDKSessionInfo]289) -> list[SDKSessionInfo]

248```290```

249 291 

250#### Parametri292<h4 id="parameters-3">

293 Parametri

294</h4>

251 295 

252| Parametro | Tipo | Predefinito | Descrizione |296| Parametro | Tipo | Predefinito | Descrizione |

253| :------------------ | :------------ | :---------- | :------------------------------------------------------------------------------------------------------------- |297| :------------------ | :------------ | :---------- | :------------------------------------------------------------------------------------------------------------- |


255| `limit` | `int \| None` | `None` | Numero massimo di sessioni da restituire |299| `limit` | `int \| None` | `None` | Numero massimo di sessioni da restituire |

256| `include_worktrees` | `bool` | `True` | Quando `directory` si trova all'interno di un repository git, includi le sessioni da tutti i percorsi worktree |300| `include_worktrees` | `bool` | `True` | Quando `directory` si trova all'interno di un repository git, includi le sessioni da tutti i percorsi worktree |

257 301 

258#### Tipo di ritorno: `SDKSessionInfo`302<h4 id="return-type-sdksessioninfo">

303 Tipo di ritorno: `SDKSessionInfo`

304</h4>

259 305 

260| Proprietà | Tipo | Descrizione |306| Proprietà | Tipo | Descrizione |

261| :-------------- | :------------ | :-------------------------------------------------------------------------------------------------- |307| :-------------- | :------------ | :-------------------------------------------------------------------------------------------------- |


270| `tag` | `str \| None` | Tag della sessione impostato dall'utente (vedi [`tag_session()`](#tag_session)) |316| `tag` | `str \| None` | Tag della sessione impostato dall'utente (vedi [`tag_session()`](#tag_session)) |

271| `created_at` | `int \| None` | Ora di creazione della sessione in millisecondi dall'epoca |317| `created_at` | `int \| None` | Ora di creazione della sessione in millisecondi dall'epoca |

272 318 

273#### Esempio319<h4 id="example-2">

320 Esempio

321</h4>

274 322 

275Stampa le 10 sessioni più recenti per un progetto. I risultati sono ordinati per `last_modified` decrescente, quindi il primo elemento è il più recente. Ometti `directory` per cercare in tutti i progetti.323Stampa le 10 sessioni più recenti per un progetto. I risultati sono ordinati per `last_modified` decrescente, quindi il primo elemento è il più recente. Ometti `directory` per cercare in tutti i progetti.

276 324 


281 print(f"{session.summary} ({session.session_id})")329 print(f"{session.summary} ({session.session_id})")

282```330```

283 331 

284### `get_session_messages()`332<h3 id="get_session_messages">

333 `get_session_messages()`

334</h3>

285 335 

286Recupera i messaggi da una sessione passata. Sincrono; restituisce immediatamente.336Recupera i messaggi da una sessione passata. Sincrono; restituisce immediatamente.

287 337 


294) -> list[SessionMessage]344) -> list[SessionMessage]

295```345```

296 346 

297#### Parametri347<h4 id="parameters-4">

348 Parametri

349</h4>

298 350 

299| Parametro | Tipo | Predefinito | Descrizione |351| Parametro | Tipo | Predefinito | Descrizione |

300| :----------- | :------------ | :----------- | :-------------------------------------------------------------------------- |352| :----------- | :------------ | :----------- | :-------------------------------------------------------------------------- |


303| `limit` | `int \| None` | `None` | Numero massimo di messaggi da restituire |355| `limit` | `int \| None` | `None` | Numero massimo di messaggi da restituire |

304| `offset` | `int` | `0` | Numero di messaggi da saltare dall'inizio |356| `offset` | `int` | `0` | Numero di messaggi da saltare dall'inizio |

305 357 

306#### Tipo di ritorno: `SessionMessage`358<h4 id="return-type-sessionmessage">

359 Tipo di ritorno: `SessionMessage`

360</h4>

307 361 

308| Proprietà | Tipo | Descrizione |362| Proprietà | Tipo | Descrizione |

309| :------------------- | :----------------------------- | :---------------------------------- |363| :------------------- | :----------------------------- | :---------------------------------- |


313| `message` | `Any` | Contenuto del messaggio grezzo |367| `message` | `Any` | Contenuto del messaggio grezzo |

314| `parent_tool_use_id` | `None` | Riservato per uso futuro |368| `parent_tool_use_id` | `None` | Riservato per uso futuro |

315 369 

316#### Esempio370<h4 id="example-3">

371 Esempio

372</h4>

317 373 

318```python theme={null}374```python theme={null}

319from claude_agent_sdk import list_sessions, get_session_messages375from claude_agent_sdk import list_sessions, get_session_messages


325 print(f"[{msg.type}] {msg.uuid}")381 print(f"[{msg.type}] {msg.uuid}")

326```382```

327 383 

328### `get_session_info()`384<h3 id="get_session_info">

385 `get_session_info()`

386</h3>

329 387 

330Legge i metadati per una singola sessione per ID senza scansionare la directory del progetto completo. Sincrono; restituisce immediatamente.388Legge i metadati per una singola sessione per ID senza scansionare la directory del progetto completo. Sincrono; restituisce immediatamente.

331 389 


336) -> SDKSessionInfo | None394) -> SDKSessionInfo | None

337```395```

338 396 

339#### Parametri397<h4 id="parameters-5">

398 Parametri

399</h4>

340 400 

341| Parametro | Tipo | Predefinito | Descrizione |401| Parametro | Tipo | Predefinito | Descrizione |

342| :----------- | :------------ | :----------- | :----------------------------------------------------------------------------------------- |402| :----------- | :------------ | :----------- | :----------------------------------------------------------------------------------------- |


345 405 

346Restituisce [`SDKSessionInfo`](#return-type-sdksessioninfo), o `None` se la sessione non viene trovata.406Restituisce [`SDKSessionInfo`](#return-type-sdksessioninfo), o `None` se la sessione non viene trovata.

347 407 

348#### Esempio408<h4 id="example-4">

409 Esempio

410</h4>

349 411 

350Cerca i metadati di una singola sessione senza scansionare la directory del progetto. Utile quando hai già un ID di sessione da un'esecuzione precedente.412Cerca i metadati di una singola sessione senza scansionare la directory del progetto. Utile quando hai già un ID di sessione da un'esecuzione precedente.

351 413 


357 print(f"{info.summary} (branch: {info.git_branch}, tag: {info.tag})")419 print(f"{info.summary} (branch: {info.git_branch}, tag: {info.tag})")

358```420```

359 421 

360### `rename_session()`422<h3 id="rename_session">

423 `rename_session()`

424</h3>

361 425 

362Rinomina una sessione aggiungendo una voce di titolo personalizzato. Le chiamate ripetute sono sicure; il titolo più recente vince. Sincrono.426Rinomina una sessione aggiungendo una voce di titolo personalizzato. Le chiamate ripetute sono sicure; il titolo più recente vince. Sincrono.

363 427 


369) -> None433) -> None

370```434```

371 435 

372#### Parametri436<h4 id="parameters-6">

437 Parametri

438</h4>

373 439 

374| Parametro | Tipo | Predefinito | Descrizione |440| Parametro | Tipo | Predefinito | Descrizione |

375| :----------- | :------------ | :----------- | :----------------------------------------------------------------------------------------- |441| :----------- | :------------ | :----------- | :----------------------------------------------------------------------------------------- |


379 445 

380Genera `ValueError` se `session_id` non è un UUID valido o `title` è vuoto; `FileNotFoundError` se la sessione non può essere trovata.446Genera `ValueError` se `session_id` non è un UUID valido o `title` è vuoto; `FileNotFoundError` se la sessione non può essere trovata.

381 447 

382#### Esempio448<h4 id="example-5">

449 Esempio

450</h4>

383 451 

384Rinomina la sessione più recente in modo che sia più facile da trovare in seguito. Il nuovo titolo appare in [`SDKSessionInfo.custom_title`](#return-type-sdksessioninfo) nelle letture successive.452Rinomina la sessione più recente in modo che sia più facile da trovare in seguito. Il nuovo titolo appare in [`SDKSessionInfo.custom_title`](#return-type-sdksessioninfo) nelle letture successive.

385 453 


391 rename_session(sessions[0].session_id, "Refactor auth module")459 rename_session(sessions[0].session_id, "Refactor auth module")

392```460```

393 461 

394### `tag_session()`462<h3 id="tag_session">

463 `tag_session()`

464</h3>

395 465 

396Etichetta una sessione. Passa `None` per cancellare l'etichetta. Le chiamate ripetute sono sicure; l'etichetta più recente vince. Sincrono.466Etichetta una sessione. Passa `None` per cancellare l'etichetta. Le chiamate ripetute sono sicure; l'etichetta più recente vince. Sincrono.

397 467 


403) -> None473) -> None

404```474```

405 475 

406#### Parametri476<h4 id="parameters-7">

477 Parametri

478</h4>

407 479 

408| Parametro | Tipo | Predefinito | Descrizione |480| Parametro | Tipo | Predefinito | Descrizione |

409| :----------- | :------------ | :----------- | :------------------------------------------------------------------------------------------ |481| :----------- | :------------ | :----------- | :------------------------------------------------------------------------------------------ |


413 485 

414Genera `ValueError` se `session_id` non è un UUID valido o `tag` è vuoto dopo la sanitizzazione; `FileNotFoundError` se la sessione non può essere trovata.486Genera `ValueError` se `session_id` non è un UUID valido o `tag` è vuoto dopo la sanitizzazione; `FileNotFoundError` se la sessione non può essere trovata.

415 487 

416#### Esempio488<h4 id="example-6">

489 Esempio

490</h4>

417 491 

418Etichetta una sessione, quindi filtra per quell'etichetta in una lettura successiva. Passa `None` per cancellare un'etichetta esistente.492Etichetta una sessione, quindi filtra per quell'etichetta in una lettura successiva. Passa `None` per cancellare un'etichetta esistente.

419 493 


429 print(session.summary)503 print(session.summary)

430```504```

431 505 

432## Classi506<h2 id="classes">

507 Classi

508</h2>

433 509 

434### `ClaudeSDKClient`510<h3 id="claudesdkclient">

511 `ClaudeSDKClient`

512</h3>

435 513 

436**Mantiene una sessione di conversazione in più scambi.** Questo è l'equivalente Python di come la funzione `query()` di TypeScript SDK funziona internamente - crea un oggetto client che può continuare le conversazioni.514**Mantiene una sessione di conversazione in più scambi.** Questo è l'equivalente Python di come la funzione `query()` di TypeScript SDK funziona internamente - crea un oggetto client che può continuare le conversazioni.

437 515 

438#### Caratteristiche principali516<h4 id="key-features">

517 Caratteristiche principali

518</h4>

439 519 

440* **Continuità della sessione**: Mantiene il contesto della conversazione in più chiamate `query()`520* **Continuità della sessione**: Mantiene il contesto della conversazione in più chiamate `query()`

441* **Stessa conversazione**: La sessione conserva i messaggi precedenti521* **Stessa conversazione**: La sessione conserva i messaggi precedenti


463 async def disconnect(self) -> None543 async def disconnect(self) -> None

464```544```

465 545 

466#### Metodi546<h4 id="methods">

547 Metodi

548</h4>

467 549 

468| Metodo | Descrizione |550| Metodo | Descrizione |

469| :---------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |551| :---------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |


483| `get_server_info()` | Ottieni informazioni sul server incluso l'ID della sessione e le capacità |565| `get_server_info()` | Ottieni informazioni sul server incluso l'ID della sessione e le capacità |

484| `disconnect()` | Disconnettiti da Claude |566| `disconnect()` | Disconnettiti da Claude |

485 567 

486#### Supporto Context Manager568<h4 id="context-manager-support">

569 Supporto Context Manager

570</h4>

487 571 

488Il client può essere utilizzato come context manager asincrono per la gestione automatica della connessione:572Il client può essere utilizzato come context manager asincrono per la gestione automatica della connessione:

489 573 


496 580 

497> **Importante:** Quando iteri sui messaggi, evita di usare `break` per uscire anticipatamente poiché questo può causare problemi di pulizia asyncio. Invece, lascia che l'iterazione si completi naturalmente o usa flag per tracciare quando hai trovato quello che cerchi.581> **Importante:** Quando iteri sui messaggi, evita di usare `break` per uscire anticipatamente poiché questo può causare problemi di pulizia asyncio. Invece, lascia che l'iterazione si completi naturalmente o usa flag per tracciare quando hai trovato quello che cerchi.

498 582 

499#### Esempio - Continuare una conversazione583<h4 id="example-continuing-a-conversation">

584 Esempio - Continuare una conversazione

585</h4>

500 586 

501```python theme={null}587```python theme={null}

502import asyncio588import asyncio


537asyncio.run(main())623asyncio.run(main())

538```624```

539 625 

540#### Esempio - Input streaming con ClaudeSDKClient626<h4 id="example-streaming-input-with-claudesdkclient">

627 Esempio - Input streaming con ClaudeSDKClient

628</h4>

541 629 

542```python theme={null}630```python theme={null}

543import asyncio631import asyncio


581asyncio.run(main())669asyncio.run(main())

582```670```

583 671 

584#### Esempio - Utilizzo di interruzioni672<h4 id="example-using-interrupts">

673 Esempio - Utilizzo di interruzioni

674</h4>

585 675 

586```python theme={null}676```python theme={null}

587import asyncio677import asyncio


624 **Comportamento del buffer dopo l'interruzione:** `interrupt()` invia un segnale di arresto ma non cancella il buffer dei messaggi. I messaggi già prodotti dall'attività interrotta, incluso il suo `ResultMessage` (con `subtype="error_during_execution"`), rimangono nel flusso. Devi drenare con `receive_response()` prima di leggere la risposta a una nuova query. Se invii una nuova query immediatamente dopo `interrupt()` e chiami `receive_response()` una sola volta, riceverai i messaggi dell'attività interrotta, non la risposta della nuova query.714 **Comportamento del buffer dopo l'interruzione:** `interrupt()` invia un segnale di arresto ma non cancella il buffer dei messaggi. I messaggi già prodotti dall'attività interrotta, incluso il suo `ResultMessage` (con `subtype="error_during_execution"`), rimangono nel flusso. Devi drenare con `receive_response()` prima di leggere la risposta a una nuova query. Se invii una nuova query immediatamente dopo `interrupt()` e chiami `receive_response()` una sola volta, riceverai i messaggi dell'attività interrotta, non la risposta della nuova query.

625</Note>715</Note>

626 716 

627#### Esempio - Controllo avanzato delle autorizzazioni717<h4 id="example-advanced-permission-control">

718 Esempio - Controllo avanzato delle autorizzazioni

719</h4>

628 720 

629```python theme={null}721```python theme={null}

630from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions722from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions


673asyncio.run(main())765asyncio.run(main())

674```766```

675 767 

676## Tipi768<h2 id="types">

769 Tipi

770</h2>

677 771 

678<Note>772<Note>

679 **`@dataclass` vs `TypedDict`:** Questo SDK utilizza due tipi di tipi. Le classi decorate con `@dataclass` (come `ResultMessage`, `AgentDefinition`, `TextBlock`) sono istanze di oggetti in fase di esecuzione e supportano l'accesso agli attributi: `msg.result`. Le classi definite con `TypedDict` (come `ThinkingConfigEnabled`, `McpStdioServerConfig`, `SyncHookJSONOutput`) sono **dicts semplici in fase di esecuzione** e richiedono l'accesso alle chiavi: `config["budget_tokens"]`, non `config.budget_tokens`. La sintassi di chiamata `ClassName(field=value)` funziona per entrambi, ma solo le dataclass producono oggetti con attributi.773 **`@dataclass` vs `TypedDict`:** Questo SDK utilizza due tipi di tipi. Le classi decorate con `@dataclass` (come `ResultMessage`, `AgentDefinition`, `TextBlock`) sono istanze di oggetti in fase di esecuzione e supportano l'accesso agli attributi: `msg.result`. Le classi definite con `TypedDict` (come `ThinkingConfigEnabled`, `McpStdioServerConfig`, `SyncHookJSONOutput`) sono **dicts semplici in fase di esecuzione** e richiedono l'accesso alle chiavi: `config["budget_tokens"]`, non `config.budget_tokens`. La sintassi di chiamata `ClassName(field=value)` funziona per entrambi, ma solo le dataclass producono oggetti con attributi.

680</Note>774</Note>

681 775 

682### `SdkMcpTool`776<h3 id="sdkmcptool">

777 `SdkMcpTool`

778</h3>

683 779 

684Definizione per uno strumento SDK MCP creato con il decoratore `@tool`.780Definizione per uno strumento SDK MCP creato con il decoratore `@tool`.

685 781 


701| `handler` | `Callable[[T], Awaitable[dict[str, Any]]]` | Funzione asincrona che gestisce l'esecuzione dello strumento |797| `handler` | `Callable[[T], Awaitable[dict[str, Any]]]` | Funzione asincrona che gestisce l'esecuzione dello strumento |

702| `annotations` | `ToolAnnotations \| None` | Annotazioni MCP dello strumento opzionali (ad es. `readOnlyHint`, `destructiveHint`, `openWorldHint`). Da `mcp.types` |798| `annotations` | `ToolAnnotations \| None` | Annotazioni MCP dello strumento opzionali (ad es. `readOnlyHint`, `destructiveHint`, `openWorldHint`). Da `mcp.types` |

703 799 

704### `Transport`800<h3 id="transport">

801 `Transport`

802</h3>

705 803 

706Classe base astratta per implementazioni di trasporto personalizzate. Usala per comunicare con il processo Claude su un canale personalizzato (ad esempio, una connessione remota invece di un subprocess locale).804Classe base astratta per implementazioni di trasporto personalizzate. Usala per comunicare con il processo Claude su un canale personalizzato (ad esempio, una connessione remota invece di un subprocess locale).

707 805 


746 844 

747Importazione: `from claude_agent_sdk import Transport`845Importazione: `from claude_agent_sdk import Transport`

748 846 

749### `ClaudeAgentOptions`847<h3 id="claudeagentoptions">

848 `ClaudeAgentOptions`

849</h3>

750 850 

751Dataclass di configurazione per le query Claude Code.851Dataclass di configurazione per le query Claude Code.

752 852 


810| `max_budget_usd` | `float \| None` | `None` | Interrompi la query quando la stima del costo lato client raggiunge questo valore in USD. Confrontato con la stessa stima di `total_cost_usd`; vedi [Traccia costo e utilizzo](/it/agent-sdk/cost-tracking) per avvertenze di accuratezza |910| `max_budget_usd` | `float \| None` | `None` | Interrompi la query quando la stima del costo lato client raggiunge questo valore in USD. Confrontato con la stessa stima di `total_cost_usd`; vedi [Traccia costo e utilizzo](/it/agent-sdk/cost-tracking) per avvertenze di accuratezza |

811| `disallowed_tools` | `list[str]` | `[]` | Strumenti da negare. Un nome semplice come `"Bash"` rimuove lo strumento dal contesto di Claude. Una regola con ambito come `"Bash(rm *)"` lascia lo strumento disponibile e nega le chiamate corrispondenti in ogni modalità di autorizzazione, incluso `bypassPermissions`. Vedi [Autorizzazioni](/it/agent-sdk/permissions#allow-and-deny-rules) |911| `disallowed_tools` | `list[str]` | `[]` | Strumenti da negare. Un nome semplice come `"Bash"` rimuove lo strumento dal contesto di Claude. Una regola con ambito come `"Bash(rm *)"` lascia lo strumento disponibile e nega le chiamate corrispondenti in ogni modalità di autorizzazione, incluso `bypassPermissions`. Vedi [Autorizzazioni](/it/agent-sdk/permissions#allow-and-deny-rules) |

812| `enable_file_checkpointing` | `bool` | `False` | Abilita il tracciamento dei cambiamenti dei file per il rewind. Vedi [File checkpointing](/it/agent-sdk/file-checkpointing) |912| `enable_file_checkpointing` | `bool` | `False` | Abilita il tracciamento dei cambiamenti dei file per il rewind. Vedi [File checkpointing](/it/agent-sdk/file-checkpointing) |

813| `model` | `str \| None` | `None` | Modello Claude da utilizzare |913| `model` | `str \| None` | `None` | Alias del modello Claude o nome completo del modello. Vedi [valori accettati e ID specifici del provider](/it/model-config#available-models) |

814| `fallback_model` | `str \| None` | `None` | Modello di fallback da utilizzare se il modello primario fallisce |914| `fallback_model` | `str \| None` | `None` | Modello di fallback da utilizzare se il modello primario fallisce |

815| `betas` | `list[SdkBeta]` | `[]` | Funzionalità beta da abilitare. Vedi [`SdkBeta`](#sdkbeta) per le opzioni disponibili |915| `betas` | `list[SdkBeta]` | `[]` | Funzionalità beta da abilitare. Vedi [`SdkBeta`](#sdkbeta) per le opzioni disponibili |

816| `output_format` | `dict[str, Any] \| None` | `None` | Formato di output per risposte strutturate (ad es. `{"type": "json_schema", "schema": {...}}`). Vedi [Output strutturati](/it/agent-sdk/structured-outputs) per i dettagli |916| `output_format` | `dict[str, Any] \| None` | `None` | Formato di output per risposte strutturate (ad es. `{"type": "json_schema", "schema": {...}}`). Vedi [Output strutturati](/it/agent-sdk/structured-outputs) per i dettagli |


837| `skills` | `list[str] \| Literal["all"] \| None` | `None` | Skills disponibili per la sessione. Passa `"all"` per abilitare ogni skill scoperta, o un elenco di nomi di skill. Quando impostato, l'SDK aggiunge lo strumento Skill a `allowed_tools` automaticamente. Se passi anche `tools`, includi `"Skill"` in quell'elenco. Vedi [Skills](/it/agent-sdk/skills) |937| `skills` | `list[str] \| Literal["all"] \| None` | `None` | Skills disponibili per la sessione. Passa `"all"` per abilitare ogni skill scoperta, o un elenco di nomi di skill. Quando impostato, l'SDK aggiunge lo strumento Skill a `allowed_tools` automaticamente. Se passi anche `tools`, includi `"Skill"` in quell'elenco. Vedi [Skills](/it/agent-sdk/skills) |

838| `max_thinking_tokens` | `int \| None` | `None` | *Deprecato* - Token massimi per i blocchi di pensiero. Usa `thinking` invece |938| `max_thinking_tokens` | `int \| None` | `None` | *Deprecato* - Token massimi per i blocchi di pensiero. Usa `thinking` invece |

839| `thinking` | [`ThinkingConfig`](#thinkingconfig) ` \| None` | `None` | Controlla il comportamento del pensiero esteso. Ha la precedenza su `max_thinking_tokens` |939| `thinking` | [`ThinkingConfig`](#thinkingconfig) ` \| None` | `None` | Controlla il comportamento del pensiero esteso. Ha la precedenza su `max_thinking_tokens` |

840| `effort` | [`EffortLevel`](#effortlevel) ` \| None` | `None` | Livello di sforzo per la profondità del pensiero |940| `effort` | [`EffortLevel`](#effortlevel) ` \| None` | `None` | Livello di sforzo per la profondità del pensiero. Vedi [regola il livello di sforzo](/it/model-config#adjust-effort-level) |

841| `session_store` | [`SessionStore`](/it/agent-sdk/session-storage#the-sessionstore-interface) ` \| None` | `None` | Specchia i trascritti di sessione in un backend esterno in modo che qualsiasi host possa riprenderli. Vedi [Persisti le sessioni nell'archiviazione esterna](/it/agent-sdk/session-storage) |941| `session_store` | [`SessionStore`](/it/agent-sdk/session-storage#the-sessionstore-interface) ` \| None` | `None` | Specchia i trascritti di sessione in un backend esterno in modo che qualsiasi host possa riprenderli. Vedi [Persisti le sessioni nell'archiviazione esterna](/it/agent-sdk/session-storage) |

842| `session_store_flush` | `Literal["batched", "eager"]` | `"batched"` | Quando eseguire il flush delle voci di trascritto mirrorato a `session_store`. `"batched"` esegue il flush una volta per turno o quando il buffer si riempie; `"eager"` attiva un flush in background dopo ogni frame. Ignorato quando `session_store` è `None` |942| `session_store_flush` | `Literal["batched", "eager"]` | `"batched"` | Quando eseguire il flush delle voci di trascritto mirrorato a `session_store`. `"batched"` esegue il flush una volta per turno o quando il buffer si riempie; `"eager"` attiva un flush in background dopo ogni frame. Ignorato quando `session_store` è `None` |

843 943 

844#### Gestisci risposte API lente o bloccate944<h4 id="handle-slow-or-stalled-api-responses">

945 Gestisci risposte API lente o bloccate

946</h4>

845 947 

846Il subprocess CLI legge diverse variabili di ambiente che controllano i timeout dell'API e il rilevamento dei blocchi. Passale attraverso `ClaudeAgentOptions.env`:948Il subprocess CLI legge diverse variabili di ambiente che controllano i timeout dell'API e il rilevamento dei blocchi. Passale attraverso `ClaudeAgentOptions.env`:

847 949 


858* `API_TIMEOUT_MS`: timeout per richiesta sul client Anthropic, in millisecondi. Predefinito `600000`. Si applica al ciclo principale e a tutti i subagenti.960* `API_TIMEOUT_MS`: timeout per richiesta sul client Anthropic, in millisecondi. Predefinito `600000`. Si applica al ciclo principale e a tutti i subagenti.

859* `CLAUDE_CODE_MAX_RETRIES`: numero massimo di tentativi API. Predefinito `10`. Ogni tentativo ottiene la propria finestra `API_TIMEOUT_MS`, quindi il tempo di parete nel caso peggiore è approssimativamente `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` più backoff.961* `CLAUDE_CODE_MAX_RETRIES`: numero massimo di tentativi API. Predefinito `10`. Ogni tentativo ottiene la propria finestra `API_TIMEOUT_MS`, quindi il tempo di parete nel caso peggiore è approssimativamente `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` più backoff.

860* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: watchdog di blocco per i subagenti lanciati con `run_in_background`. Predefinito `600000`. Si ripristina su ogni evento di flusso; in caso di blocco interrompe il subagente, contrassegna l'attività come non riuscita e presenta l'errore al genitore con qualsiasi risultato parziale. Non si applica ai subagenti sincroni.962* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: watchdog di blocco per i subagenti lanciati con `run_in_background`. Predefinito `600000`. Si ripristina su ogni evento di flusso; in caso di blocco interrompe il subagente, contrassegna l'attività come non riuscita e presenta l'errore al genitore con qualsiasi risultato parziale. Non si applica ai subagenti sincroni.

861* `CLAUDE_ENABLE_STREAM_WATCHDOG=1` con `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: interrompe la richiesta quando le intestazioni sono arrivate ma il corpo della risposta smette di trasmettere. Disabilitato per impostazione predefinita. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` predefinito a `300000` e viene bloccato a quel minimo. La richiesta interrotta passa attraverso il percorso di ripetizione normale.963* `CLAUDE_ENABLE_STREAM_WATCHDOG=1` con `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: interrompe la richiesta quando le intestazioni sono arrivate ma il corpo della risposta smette di trasmettere. Quando `CLAUDE_ENABLE_STREAM_WATCHDOG` non è impostato, l'impostazione predefinita è controllata dal server sull'API Anthropic diretta e disattivata su altri provider. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` predefinito a `300000` e viene bloccato a quel minimo. La richiesta interrotta passa attraverso il percorso di ripetizione normale.

862 964 

863### `OutputFormat`965<h3 id="outputformat">

966 `OutputFormat`

967</h3>

864 968 

865Configurazione per la validazione dell'output strutturato. Passa questo come `dict` al campo `output_format` su `ClaudeAgentOptions`:969Configurazione per la validazione dell'output strutturato. Passa questo come `dict` al campo `output_format` su `ClaudeAgentOptions`:

866 970 


877| `type` | Sì | Deve essere `"json_schema"` per la validazione JSON Schema |981| `type` | Sì | Deve essere `"json_schema"` per la validazione JSON Schema |

878| `schema` | Sì | Definizione JSON Schema per la validazione dell'output |982| `schema` | Sì | Definizione JSON Schema per la validazione dell'output |

879 983 

880### `SystemPromptPreset`984<h3 id="systempromptpreset">

985 `SystemPromptPreset`

986</h3>

881 987 

882Configurazione per l'utilizzo del prompt di sistema preset di Claude Code con aggiunte opzionali.988Configurazione per l'utilizzo del prompt di sistema preset di Claude Code con aggiunte opzionali.

883 989 


890```996```

891 997 

892| Campo | Obbligatorio | Descrizione |998| Campo | Obbligatorio | Descrizione |

893| :------------------------- | :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |999| :------------------------- | :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

894| `type` | Sì | Deve essere `"preset"` per utilizzare un prompt di sistema preset |1000| `type` | Sì | Deve essere `"preset"` per utilizzare un prompt di sistema preset |

895| `preset` | Sì | Deve essere `"claude_code"` per utilizzare il prompt di sistema di Claude Code |1001| `preset` | Sì | Deve essere `"claude_code"` per utilizzare il prompt di sistema di Claude Code |

896| `append` | No | Istruzioni aggiuntive da aggiungere al prompt di sistema preset |1002| `append` | No | Istruzioni aggiuntive da aggiungere al prompt di sistema preset |

897| `exclude_dynamic_sections` | No | Sposta il contesto per sessione come directory di lavoro, stato git e percorsi di memoria dal prompt di sistema nel primo messaggio utente. Migliora il riutilizzo della cache dei prompt tra utenti e macchine. Vedi [Modifica i prompt di sistema](/it/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) |1003| `exclude_dynamic_sections` | No | Sposta il contesto per sessione come directory di lavoro, il flag git-repo e i percorsi di memoria automatica dal prompt di sistema nel primo messaggio utente. Migliora il riutilizzo della cache dei prompt tra utenti e macchine. Vedi [Modifica i prompt di sistema](/it/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) |

898 1004 

899### `SettingSource`1005<h3 id="settingsource">

1006 `SettingSource`

1007</h3>

900 1008 

901Controlla quali fonti di configurazione basate su filesystem l'SDK carica le impostazioni da.1009Controlla quali fonti di configurazione basate su filesystem l'SDK carica le impostazioni da.

902 1010 


905```1013```

906 1014 

907| Valore | Descrizione | Posizione |1015| Valore | Descrizione | Posizione |

908| :---------- | :-------------------------------------------------------------- | :---------------------------- |1016| :---------- | :--------------------------------------------------------------- | :---------------------------- |

909| `"user"` | Impostazioni utente globali | `~/.claude/settings.json` |1017| `"user"` | Impostazioni utente globali | `~/.claude/settings.json` |

910| `"project"` | Impostazioni di progetto condivise (controllate dalla versione) | `.claude/settings.json` |1018| `"project"` | Impostazioni di progetto condivise (controllate dalla versione) | `.claude/settings.json` |

911| `"local"` | Impostazioni di progetto locali (gitignored) | `.claude/settings.local.json` |1019| `"local"` | Impostazioni di progetto locali (non controllate dalla versione) | `.claude/settings.local.json` |

912 1020 

913#### Comportamento predefinito1021<h4 id="default-behavior">

1022 Comportamento predefinito

1023</h4>

914 1024 

915Quando `setting_sources` è omesso o `None`, `query()` carica le stesse impostazioni del filesystem della CLI di Claude Code: utente, progetto e locale. Le impostazioni della politica gestita vengono caricate in tutti i casi. Vedi [Cosa settingSources non controlla](/it/agent-sdk/claude-code-features#what-settingsources-does-not-control) per gli input che vengono letti indipendentemente da questa opzione, e come disabilitarli.1025Quando `setting_sources` è omesso o `None`, `query()` carica le stesse impostazioni del filesystem della CLI di Claude Code: utente, progetto e locale. Le impostazioni della politica gestita vengono caricate in tutti i casi. Vedi [Cosa settingSources non controlla](/it/agent-sdk/claude-code-features#what-settingsources-does-not-control) per gli input che vengono letti indipendentemente da questa opzione, e come disabilitarli.

916 1026 

917#### Perché usare setting\_sources1027<h4 id="why-use-setting_sources">

1028 Perché usare setting\_sources

1029</h4>

918 1030 

919**Disabilita le impostazioni del filesystem:**1031**Disabilita le impostazioni del filesystem:**

920 1032 


1011 print(message)1123 print(message)

1012```1124```

1013 1125 

1014#### Precedenza delle impostazioni1126<h4 id="settings-precedence">

1127 Precedenza delle impostazioni

1128</h4>

1015 1129 

1016Quando più fonti vengono caricate, le impostazioni vengono unite con questa precedenza (da più alta a più bassa):1130Quando più fonti vengono caricate, le impostazioni vengono unite con questa precedenza (da più alta a più bassa):

1017 1131 


1021 1135 

1022Le opzioni programmatiche come `agents` e `allowed_tools` sovrascrivono le impostazioni del filesystem utente, progetto e locale. Le impostazioni della politica gestita hanno la precedenza sulle opzioni programmatiche.1136Le opzioni programmatiche come `agents` e `allowed_tools` sovrascrivono le impostazioni del filesystem utente, progetto e locale. Le impostazioni della politica gestita hanno la precedenza sulle opzioni programmatiche.

1023 1137 

1024### `AgentDefinition`1138<h3 id="agentdefinition">

1139 `AgentDefinition`

1140</h3>

1025 1141 

1026Configurazione per un subagente definito programmaticamente.1142Configurazione per un subagente definito programmaticamente.

1027 1143 


1044```1160```

1045 1161 

1046| Campo | Obbligatorio | Descrizione |1162| Campo | Obbligatorio | Descrizione |

1047| :---------------- | :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1163| :---------------- | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

1048| `description` | Sì | Descrizione in linguaggio naturale di quando utilizzare questo agente |1164| `description` | Sì | Descrizione in linguaggio naturale di quando utilizzare questo agente |

1049| `prompt` | Sì | Il prompt di sistema dell'agente |1165| `prompt` | Sì | Il prompt di sistema dell'agente |

1050| `tools` | No | Array di nomi di strumenti consentiti. Se omesso, eredita tutti gli strumenti |1166| `tools` | No | Array di nomi di strumenti consentiti. Se omesso, eredita tutti gli strumenti |

1051| `disallowedTools` | No | Array di nomi di strumenti da rimuovere dal set di strumenti dell'agente |1167| `disallowedTools` | No | Array di nomi di strumenti da rimuovere dal set di strumenti dell'agente. Sono accettati anche i pattern a livello di server MCP: `mcp__server` o `mcp__server__*` rimuove ogni strumento da quel server, e `mcp__*` rimuove ogni strumento MCP da qualsiasi server |

1052| `model` | No | Override del modello per questo agente. Accetta un alias come `"sonnet"`, `"opus"`, `"haiku"`, o `"inherit"`, o un ID modello completo. Se omesso, utilizza il modello principale |1168| `model` | No | Override del modello per questo agente. Accetta un alias come `"sonnet"`, `"opus"`, `"haiku"`, o `"inherit"`, o un ID modello completo. Se omesso, utilizza il modello principale |

1053| `skills` | No | Elenco dei nomi di skills da precaricare nel contesto dell'agente all'avvio. Le skills non elencate rimangono invocabili attraverso lo strumento Skill |1169| `skills` | No | Elenco dei nomi di skills da precaricare nel contesto dell'agente all'avvio. Le skills non elencate rimangono invocabili attraverso lo strumento Skill |

1054| `memory` | No | Fonte di memoria per questo agente: `"user"`, `"project"`, o `"local"` |1170| `memory` | No | Fonte di memoria per questo agente: `"user"`, `"project"`, o `"local"` |


1063 I nomi dei campi `AgentDefinition` usano camelCase, come `disallowedTools`, `permissionMode` e `maxTurns`. Questi nomi si mappano direttamente al formato wire condiviso con TypeScript SDK. Questo differisce da `ClaudeAgentOptions`, che usa Python snake\_case per i campi di livello superiore equivalenti come `disallowed_tools` e `permission_mode`. Poiché `AgentDefinition` è una dataclass, passare una parola chiave snake\_case genera un `TypeError` al momento della costruzione.1179 I nomi dei campi `AgentDefinition` usano camelCase, come `disallowedTools`, `permissionMode` e `maxTurns`. Questi nomi si mappano direttamente al formato wire condiviso con TypeScript SDK. Questo differisce da `ClaudeAgentOptions`, che usa Python snake\_case per i campi di livello superiore equivalenti come `disallowed_tools` e `permission_mode`. Poiché `AgentDefinition` è una dataclass, passare una parola chiave snake\_case genera un `TypeError` al momento della costruzione.

1064</Note>1180</Note>

1065 1181 

1066### `PermissionMode`1182<h3 id="permissionmode">

1183 `PermissionMode`

1184</h3>

1067 1185 

1068Modalità di autorizzazione per controllare l'esecuzione dello strumento.1186Modalità di autorizzazione per controllare l'esecuzione dello strumento.

1069 1187 


1071PermissionMode = Literal[1189PermissionMode = Literal[

1072 "default", # Standard permission behavior1190 "default", # Standard permission behavior

1073 "acceptEdits", # Auto-accept file edits1191 "acceptEdits", # Auto-accept file edits

1074 "plan", # Planning mode - read-only tools only1192 "plan", # Planning mode - explore without editing

1075 "dontAsk", # Deny anything not pre-approved instead of prompting1193 "dontAsk", # Deny anything not pre-approved instead of prompting

1076 "bypassPermissions", # Bypass all permission checks (use with caution)1194 "bypassPermissions", # Bypass permission checks; explicit ask rules still prompt (use with caution)

1077]1195]

1078```1196```

1079 1197 

1080### `EffortLevel`1198<h3 id="effortlevel">

1199 `EffortLevel`

1200</h3>

1081 1201 

1082Livelli di sforzo per guidare la profondità del pensiero.1202Livelli di sforzo per guidare la profondità del pensiero.

1083 1203 


1086 "low", # Minimal thinking, fastest responses1206 "low", # Minimal thinking, fastest responses

1087 "medium", # Moderate thinking1207 "medium", # Moderate thinking

1088 "high", # Deep reasoning1208 "high", # Deep reasoning

1089 "xhigh", # Extended reasoning (Opus 4.7 only; falls back to "high" on other models)1209 "xhigh", # Extended reasoning (Opus 4.8 and Opus 4.7; falls back to "high" on other models)

1090 "max", # Maximum effort1210 "max", # Maximum effort

1091]1211]

1092```1212```

1093 1213 

1094### `CanUseTool`1214<h3 id="canusetool">

1215 `CanUseTool`

1216</h3>

1095 1217 

1096Alias di tipo per le funzioni di callback di autorizzazione dello strumento.1218Alias di tipo per le funzioni di callback di autorizzazione dello strumento.

1097 1219 


1109 1231 

1110Restituisce un `PermissionResult` (sia `PermissionResultAllow` che `PermissionResultDeny`).1232Restituisce un `PermissionResult` (sia `PermissionResultAllow` che `PermissionResultDeny`).

1111 1233 

1112### `ToolPermissionContext`1234<h3 id="toolpermissioncontext">

1235 `ToolPermissionContext`

1236</h3>

1113 1237 

1114Informazioni di contesto passate ai callback di autorizzazione dello strumento.1238Informazioni di contesto passate ai callback di autorizzazione dello strumento.

1115 1239 


1135| `display_name` | `str \| None` | Breve frase nominale per l'azione dello strumento, come `Read file`, adatta per etichette di pulsanti |1259| `display_name` | `str \| None` | Breve frase nominale per l'azione dello strumento, come `Read file`, adatta per etichette di pulsanti |

1136| `description` | `str \| None` | Sottotitolo leggibile per l'interfaccia utente di autorizzazione |1260| `description` | `str \| None` | Sottotitolo leggibile per l'interfaccia utente di autorizzazione |

1137 1261 

1138### `PermissionResult`1262<h3 id="permissionresult">

1263 `PermissionResult`

1264</h3>

1139 1265 

1140Tipo di unione per i risultati del callback di autorizzazione.1266Tipo di unione per i risultati del callback di autorizzazione.

1141 1267 


1143PermissionResult = PermissionResultAllow | PermissionResultDeny1269PermissionResult = PermissionResultAllow | PermissionResultDeny

1144```1270```

1145 1271 

1146### `PermissionResultAllow`1272<h3 id="permissionresultallow">

1273 `PermissionResultAllow`

1274</h3>

1147 1275 

1148Risultato che indica che la chiamata dello strumento deve essere consentita.1276Risultato che indica che la chiamata dello strumento deve essere consentita.

1149 1277 


1161| `updated_input` | `dict[str, Any] \| None` | `None` | Input modificato da utilizzare al posto dell'originale |1289| `updated_input` | `dict[str, Any] \| None` | `None` | Input modificato da utilizzare al posto dell'originale |

1162| `updated_permissions` | `list[PermissionUpdate] \| None` | `None` | Aggiornamenti delle autorizzazioni da applicare |1290| `updated_permissions` | `list[PermissionUpdate] \| None` | `None` | Aggiornamenti delle autorizzazioni da applicare |

1163 1291 

1164### `PermissionResultDeny`1292<h3 id="permissionresultdeny">

1293 `PermissionResultDeny`

1294</h3>

1165 1295 

1166Risultato che indica che la chiamata dello strumento deve essere negata.1296Risultato che indica che la chiamata dello strumento deve essere negata.

1167 1297 


1179| `message` | `str` | `""` | Messaggio che spiega perché lo strumento è stato negato |1309| `message` | `str` | `""` | Messaggio che spiega perché lo strumento è stato negato |

1180| `interrupt` | `bool` | `False` | Se interrompere l'esecuzione corrente |1310| `interrupt` | `bool` | `False` | Se interrompere l'esecuzione corrente |

1181 1311 

1182### `PermissionUpdate`1312<h3 id="permissionupdate">

1313 `PermissionUpdate`

1314</h3>

1183 1315 

1184Configurazione per l'aggiornamento delle autorizzazioni a livello di programmazione.1316Configurazione per l'aggiornamento delle autorizzazioni a livello di programmazione.

1185 1317 


1212| `directories` | `list[str] \| None` | Directory per le operazioni add/remove directory |1344| `directories` | `list[str] \| None` | Directory per le operazioni add/remove directory |

1213| `destination` | `Literal[...] \| None` | Dove applicare l'aggiornamento delle autorizzazioni |1345| `destination` | `Literal[...] \| None` | Dove applicare l'aggiornamento delle autorizzazioni |

1214 1346 

1215### `PermissionRuleValue`1347<h3 id="permissionrulevalue">

1348 `PermissionRuleValue`

1349</h3>

1216 1350 

1217Una regola da aggiungere, sostituire o rimuovere in un aggiornamento delle autorizzazioni.1351Una regola da aggiungere, sostituire o rimuovere in un aggiornamento delle autorizzazioni.

1218 1352 


1223 rule_content: str | None = None1357 rule_content: str | None = None

1224```1358```

1225 1359 

1226### `ToolsPreset`1360<h3 id="toolspreset">

1361 `ToolsPreset`

1362</h3>

1227 1363 

1228Configurazione degli strumenti preset per l'utilizzo del set di strumenti predefinito di Claude Code.1364Configurazione degli strumenti preset per l'utilizzo del set di strumenti predefinito di Claude Code.

1229 1365 


1233 preset: Literal["claude_code"]1369 preset: Literal["claude_code"]

1234```1370```

1235 1371 

1236### `ThinkingConfig`1372<h3 id="thinkingconfig">

1373 `ThinkingConfig`

1374</h3>

1237 1375 

1238Controlla il comportamento del pensiero esteso. Un'unione di tre configurazioni:1376Controlla il comportamento del pensiero esteso. Un'unione di tre configurazioni:

1239 1377 


1281# config.budget_tokens would raise AttributeError1419# config.budget_tokens would raise AttributeError

1282```1420```

1283 1421 

1284### `SdkBeta`1422<h3 id="sdkbeta">

1423 `SdkBeta`

1424</h3>

1285 1425 

1286Tipo letterale per le funzionalità beta dell'SDK.1426Tipo letterale per le funzionalità beta dell'SDK.

1287 1427 


1292Usa con il campo `betas` in `ClaudeAgentOptions` per abilitare le funzionalità beta.1432Usa con il campo `betas` in `ClaudeAgentOptions` per abilitare le funzionalità beta.

1293 1433 

1294<Warning>1434<Warning>

1295 La beta `context-1m-2025-08-07` è ritirata a partire dal 30 aprile 2026. Passare questo header con Claude Sonnet 4.5 o Sonnet 4 non ha effetto, e le richieste che superano la finestra di contesto standard di 200k token restituiscono un errore. Per utilizzare una finestra di contesto di 1M token, esegui la migrazione a [Claude Sonnet 4.6, Claude Opus 4.6, o Claude Opus 4.7](https://platform.claude.com/docs/en/about-claude/models/overview), che includono 1M di contesto a prezzi standard senza header beta richiesto.1435 La beta `context-1m-2025-08-07` è ritirata a partire dal 30 aprile 2026. Passare questo header con Claude Sonnet 4.5 o Sonnet 4 non ha effetto, e le richieste che superano la finestra di contesto standard di 200k token restituiscono un errore. Per utilizzare una finestra di contesto di 1M token, esegui la migrazione a [Claude Sonnet 4.6, Claude Opus 4.6, Claude Opus 4.7, o Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview), che includono 1M di contesto a prezzi standard senza header beta richiesto.

1296</Warning>1436</Warning>

1297 1437 

1298### `McpSdkServerConfig`1438<h3 id="mcpsdkserverconfig">

1439 `McpSdkServerConfig`

1440</h3>

1299 1441 

1300Configurazione per i server MCP dell'SDK creati con `create_sdk_mcp_server()`.1442Configurazione per i server MCP dell'SDK creati con `create_sdk_mcp_server()`.

1301 1443 


1306 instance: Any # MCP Server instance1448 instance: Any # MCP Server instance

1307```1449```

1308 1450 

1309### `McpServerConfig`1451<h3 id="mcpserverconfig">

1452 `McpServerConfig`

1453</h3>

1310 1454 

1311Tipo di unione per le configurazioni del server MCP.1455Tipo di unione per le configurazioni del server MCP.

1312 1456 


1316)1460)

1317```1461```

1318 1462 

1319#### `McpStdioServerConfig`1463<h4 id="mcpstdioserverconfig">

1464 `McpStdioServerConfig`

1465</h4>

1320 1466 

1321```python theme={null}1467```python theme={null}

1322class McpStdioServerConfig(TypedDict):1468class McpStdioServerConfig(TypedDict):


1326 env: NotRequired[dict[str, str]]1472 env: NotRequired[dict[str, str]]

1327```1473```

1328 1474 

1329#### `McpSSEServerConfig`1475<h4 id="mcpsseserverconfig">

1476 `McpSSEServerConfig`

1477</h4>

1330 1478 

1331```python theme={null}1479```python theme={null}

1332class McpSSEServerConfig(TypedDict):1480class McpSSEServerConfig(TypedDict):


1335 headers: NotRequired[dict[str, str]]1483 headers: NotRequired[dict[str, str]]

1336```1484```

1337 1485 

1338#### `McpHttpServerConfig`1486<h4 id="mcphttpserverconfig">

1487 `McpHttpServerConfig`

1488</h4>

1339 1489 

1340```python theme={null}1490```python theme={null}

1341class McpHttpServerConfig(TypedDict):1491class McpHttpServerConfig(TypedDict):


1344 headers: NotRequired[dict[str, str]]1494 headers: NotRequired[dict[str, str]]

1345```1495```

1346 1496 

1347### `McpServerStatusConfig`1497<h3 id="mcpserverstatusconfig">

1498 `McpServerStatusConfig`

1499</h3>

1348 1500 

1349La configurazione di un server MCP come riportato da [`get_mcp_status()`](#methods). Questa è l'unione di tutte le varianti di trasporto [`McpServerConfig`](#mcpserverconfig) più una variante di output-only `claudeai-proxy` per i server proxy attraverso claude.ai.1501La configurazione di un server MCP come riportato da [`get_mcp_status()`](#methods). Questa è l'unione di tutte le varianti di trasporto [`McpServerConfig`](#mcpserverconfig) più una variante di output-only `claudeai-proxy` per i server proxy attraverso claude.ai.

1350 1502 


1360 1512 

1361`McpSdkServerConfigStatus` è la forma serializzabile di [`McpSdkServerConfig`](#mcpsdkserverconfig) con solo i campi `type` (`"sdk"`) e `name` (`str`); l'`instance` in-process viene omesso. `McpClaudeAIProxyServerConfig` ha i campi `type` (`"claudeai-proxy"`), `url` (`str`), e `id` (`str`).1513`McpSdkServerConfigStatus` è la forma serializzabile di [`McpSdkServerConfig`](#mcpsdkserverconfig) con solo i campi `type` (`"sdk"`) e `name` (`str`); l'`instance` in-process viene omesso. `McpClaudeAIProxyServerConfig` ha i campi `type` (`"claudeai-proxy"`), `url` (`str`), e `id` (`str`).

1362 1514 

1363### `McpStatusResponse`1515<h3 id="mcpstatusresponse">

1516 `McpStatusResponse`

1517</h3>

1364 1518 

1365Risposta da [`ClaudeSDKClient.get_mcp_status()`](#methods). Avvolge l'elenco degli stati del server sotto la chiave `mcpServers`.1519Risposta da [`ClaudeSDKClient.get_mcp_status()`](#methods). Avvolge l'elenco degli stati del server sotto la chiave `mcpServers`.

1366 1520 


1369 mcpServers: list[McpServerStatus]1523 mcpServers: list[McpServerStatus]

1370```1524```

1371 1525 

1372### `McpServerStatus`1526<h3 id="mcpserverstatus">

1527 `McpServerStatus`

1528</h3>

1373 1529 

1374Stato di un server MCP connesso, contenuto in [`McpStatusResponse`](#mcpstatusresponse).1530Stato di un server MCP connesso, contenuto in [`McpStatusResponse`](#mcpstatusresponse).

1375 1531 


1394| `scope` | `str` (opzionale) | Ambito di configurazione |1550| `scope` | `str` (opzionale) | Ambito di configurazione |

1395| `tools` | `list` (opzionale) | Strumenti forniti da questo server, ognuno con i campi `name`, `description`, e `annotations` |1551| `tools` | `list` (opzionale) | Strumenti forniti da questo server, ognuno con i campi `name`, `description`, e `annotations` |

1396 1552 

1397### `SdkPluginConfig`1553<h3 id="sdkpluginconfig">

1554 `SdkPluginConfig`

1555</h3>

1398 1556 

1399Configurazione per il caricamento dei plugin nell'SDK.1557Configurazione per il caricamento dei plugin nell'SDK.

1400 1558 


1420 1578 

1421Per informazioni complete sulla creazione e l'utilizzo dei plugin, vedi [Plugin](/it/agent-sdk/plugins).1579Per informazioni complete sulla creazione e l'utilizzo dei plugin, vedi [Plugin](/it/agent-sdk/plugins).

1422 1580 

1423## Tipi di messaggio1581<h2 id="message-types">

1582 Tipi di messaggio

1583</h2>

1424 1584 

1425### `Message`1585<h3 id="message">

1586 `Message`

1587</h3>

1426 1588 

1427Tipo di unione di tutti i possibili messaggi.1589Tipo di unione di tutti i possibili messaggi.

1428 1590 


1437)1599)

1438```1600```

1439 1601 

1440### `UserMessage`1602<h3 id="usermessage">

1603 `UserMessage`

1604</h3>

1441 1605 

1442Messaggio di input dell'utente.1606Messaggio di input dell'utente.

1443 1607 


1457| `parent_tool_use_id` | `str \| None` | ID di utilizzo dello strumento se questo messaggio è una risposta al risultato dello strumento |1621| `parent_tool_use_id` | `str \| None` | ID di utilizzo dello strumento se questo messaggio è una risposta al risultato dello strumento |

1458| `tool_use_result` | `dict[str, Any] \| None` | Dati del risultato dello strumento se applicabile |1622| `tool_use_result` | `dict[str, Any] \| None` | Dati del risultato dello strumento se applicabile |

1459 1623 

1460### `AssistantMessage`1624<h3 id="assistantmessage">

1625 `AssistantMessage`

1626</h3>

1461 1627 

1462Messaggio di risposta dell'assistente con blocchi di contenuto.1628Messaggio di risposta dell'assistente con blocchi di contenuto.

1463 1629 


1481| `usage` | `dict[str, Any] \| None` | Utilizzo dei token per messaggio (stesse chiavi di [`ResultMessage.usage`](#resultmessage)) |1647| `usage` | `dict[str, Any] \| None` | Utilizzo dei token per messaggio (stesse chiavi di [`ResultMessage.usage`](#resultmessage)) |

1482| `message_id` | `str \| None` | ID del messaggio API. Più messaggi da un turno condividono lo stesso ID |1648| `message_id` | `str \| None` | ID del messaggio API. Più messaggi da un turno condividono lo stesso ID |

1483 1649 

1484### `AssistantMessageError`1650<h3 id="assistantmessageerror">

1651 `AssistantMessageError`

1652</h3>

1485 1653 

1486Possibili tipi di errore per i messaggi dell'assistente.1654Possibili tipi di errore per i messaggi dell'assistente.

1487 1655 


1497]1665]

1498```1666```

1499 1667 

1500### `SystemMessage`1668<h3 id="systemmessage">

1669 `SystemMessage`

1670</h3>

1501 1671 

1502Messaggio di sistema con metadati.1672Messaggio di sistema con metadati.

1503 1673 


1508 data: dict[str, Any]1678 data: dict[str, Any]

1509```1679```

1510 1680 

1511### `ResultMessage`1681<h3 id="resultmessage">

1682 `ResultMessage`

1683</h3>

1512 1684 

1513Messaggio di risultato finale con informazioni su costo e utilizzo.1685Messaggio di risultato finale con informazioni su costo e utilizzo.

1514 1686 


1534 uuid: str | None = None1706 uuid: str | None = None

1535```1707```

1536 1708 

1709Il campo `subtype` determina quali altri campi sono popolati. È uno di `"success"`, `"error_during_execution"`, `"error_max_turns"`, `"error_max_budget_usd"`, o `"error_max_structured_output_retries"`. La dataclass Python appiattisce tutte le varianti in una forma, quindi i campi che non si applicano al subtype restituito sono `None`.

1710 

1711Diversi campi portano dettagli diagnostici quando la conversazione termina con un errore:

1712 

1713* `is_error`: `True` quando la conversazione è terminata in uno stato di errore. Sempre `True` sui subtype `error_*`. Su `subtype="success"` è `True` quando la richiesta del modello finale ha fallito, il che significa che il ciclo dell'agente è stato completato ma l'ultima chiamata API ha restituito un errore.

1714* `api_error_status`: il codice di stato HTTP dell'errore API terminale. `None` quando il turno è terminato senza uno. Popolato solo su `subtype="success"`.

1715* `result`: testo del messaggio dell'assistente finale su `subtype="success"`, o `None` sui subtype `error_*`. Quando `subtype="success"` e `is_error=True`, questo contiene la stringa di errore API se disponibile ma può essere vuoto, quindi controlla `api_error_status` e il contenuto di `AssistantMessage` precedente per i dettagli.

1716* `errors`: stringhe di errore a livello di ciclo come il messaggio max-turns. Popolato solo sui subtype `error_*`.

1717 

1537Il dict `usage` contiene le seguenti chiavi quando presenti:1718Il dict `usage` contiene le seguenti chiavi quando presenti:

1538 1719 

1539| Chiave | Tipo | Descrizione |1720| Chiave | Tipo | Descrizione |


1556| `contextWindow` | `int` | Dimensione della finestra di contesto per questo modello. |1737| `contextWindow` | `int` | Dimensione della finestra di contesto per questo modello. |

1557| `maxOutputTokens` | `int` | Limite massimo di token di output per questo modello. |1738| `maxOutputTokens` | `int` | Limite massimo di token di output per questo modello. |

1558 1739 

1559### `StreamEvent`1740<h3 id="streamevent">

1741 `StreamEvent`

1742</h3>

1560 1743 

1561Evento di flusso per aggiornamenti di messaggi parziali durante lo streaming. Ricevuto solo quando `include_partial_messages=True` in `ClaudeAgentOptions`. Importa tramite `from claude_agent_sdk.types import StreamEvent`.1744Evento di flusso per aggiornamenti di messaggi parziali durante lo streaming. Ricevuto solo quando `include_partial_messages=True` in `ClaudeAgentOptions`. Importa tramite `from claude_agent_sdk.types import StreamEvent`.

1562 1745 


1576| `event` | `dict[str, Any]` | I dati dell'evento di flusso dell'API Claude grezzo |1759| `event` | `dict[str, Any]` | I dati dell'evento di flusso dell'API Claude grezzo |

1577| `parent_tool_use_id` | `str \| None` | ID di utilizzo dello strumento padre se questo evento proviene da un subagente |1760| `parent_tool_use_id` | `str \| None` | ID di utilizzo dello strumento padre se questo evento proviene da un subagente |

1578 1761 

1579### `RateLimitEvent`1762<h3 id="ratelimitevent">

1763 `RateLimitEvent`

1764</h3>

1580 1765 

1581Emesso quando lo stato del limite di velocità cambia (ad esempio, da `"allowed"` a `"allowed_warning"`). Usalo per avvertire gli utenti prima che raggiungano un limite rigido, o per fare backoff quando lo stato è `"rejected"`.1766Emesso quando lo stato del limite di velocità cambia (ad esempio, da `"allowed"` a `"allowed_warning"`). Usalo per avvertire gli utenti prima che raggiungano un limite rigido, o per fare backoff quando lo stato è `"rejected"`.

1582 1767 


1594| `uuid` | `str` | Identificatore di evento univoco |1779| `uuid` | `str` | Identificatore di evento univoco |

1595| `session_id` | `str` | Identificatore di sessione |1780| `session_id` | `str` | Identificatore di sessione |

1596 1781 

1597### `RateLimitInfo`1782<h3 id="ratelimitinfo">

1783 `RateLimitInfo`

1784</h3>

1598 1785 

1599Stato del limite di velocità trasportato da [`RateLimitEvent`](#ratelimitevent).1786Stato del limite di velocità trasportato da [`RateLimitEvent`](#ratelimitevent).

1600 1787 


1628| `overage_disabled_reason` | `str \| None` | Perché l'overage non è disponibile, se lo stato è `"rejected"` |1815| `overage_disabled_reason` | `str \| None` | Perché l'overage non è disponibile, se lo stato è `"rejected"` |

1629| `raw` | `dict[str, Any]` | Dict grezzo completo dalla CLI, inclusi i campi non modellati sopra |1816| `raw` | `dict[str, Any]` | Dict grezzo completo dalla CLI, inclusi i campi non modellati sopra |

1630 1817 

1631### `TaskStartedMessage`1818<h3 id="taskstartedmessage">

1819 `TaskStartedMessage`

1820</h3>

1632 1821 

1633Emesso quando un'attività in background inizia. Un'attività in background è qualsiasi cosa tracciata al di fuori del turno principale: un comando Bash in background, un watch Monitor, un subagente generato tramite lo strumento Agent, o un agente remoto. Il campo `task_type` ti dice quale. Questo nome non è correlato al rinomina dello strumento `Task`-to-`Agent`.1822Emesso quando un'attività in background inizia. Un'attività in background è qualsiasi cosa tracciata al di fuori del turno principale: un comando Bash in background, un watch Monitor, un subagente generato tramite lo strumento Agent, o un agente remoto. Il campo `task_type` ti dice quale. Questo nome non è correlato al rinomina dello strumento `Task`-to-`Agent`.

1634 1823 


1652| `tool_use_id` | `str \| None` | ID di utilizzo dello strumento associato |1841| `tool_use_id` | `str \| None` | ID di utilizzo dello strumento associato |

1653| `task_type` | `str \| None` | Quale tipo di attività in background: `"local_bash"` per Bash in background e watch Monitor, `"local_agent"`, o `"remote_agent"` |1842| `task_type` | `str \| None` | Quale tipo di attività in background: `"local_bash"` per Bash in background e watch Monitor, `"local_agent"`, o `"remote_agent"` |

1654 1843 

1655### `TaskUsage`1844<h3 id="taskusage">

1845 `TaskUsage`

1846</h3>

1656 1847 

1657Dati di token e timing per un'attività in background.1848Dati di token e timing per un'attività in background.

1658 1849 


1663 duration_ms: int1854 duration_ms: int

1664```1855```

1665 1856 

1666### `TaskProgressMessage`1857<h3 id="taskprogressmessage">

1858 `TaskProgressMessage`

1859</h3>

1667 1860 

1668Emesso periodicamente con aggiornamenti di progresso per un'attività in background in esecuzione.1861Emesso periodicamente con aggiornamenti di progresso per un'attività in background in esecuzione.

1669 1862 


1689| `tool_use_id` | `str \| None` | ID di utilizzo dello strumento associato |1882| `tool_use_id` | `str \| None` | ID di utilizzo dello strumento associato |

1690| `last_tool_name` | `str \| None` | Nome dell'ultimo strumento utilizzato dall'attività |1883| `last_tool_name` | `str \| None` | Nome dell'ultimo strumento utilizzato dall'attività |

1691 1884 

1692### `TaskNotificationMessage`1885<h3 id="tasknotificationmessage">

1886 `TaskNotificationMessage`

1887</h3>

1693 1888 

1694Emesso quando un'attività in background si completa, fallisce o viene interrotta. Le attività in background includono comandi Bash `run_in_background`, watch Monitor e subagenti in background.1889Emesso quando un'attività in background si completa, fallisce o viene interrotta. Le attività in background includono comandi Bash `run_in_background`, watch Monitor e subagenti in background.

1695 1890 


1717| `tool_use_id` | `str \| None` | ID di utilizzo dello strumento associato |1912| `tool_use_id` | `str \| None` | ID di utilizzo dello strumento associato |

1718| `usage` | `TaskUsage \| None` | Utilizzo dei token finale per l'attività |1913| `usage` | `TaskUsage \| None` | Utilizzo dei token finale per l'attività |

1719 1914 

1720## Tipi di blocco di contenuto1915<h2 id="content-block-types">

1916 Tipi di blocco di contenuto

1917</h2>

1721 1918 

1722### `ContentBlock`1919<h3 id="contentblock">

1920 `ContentBlock`

1921</h3>

1723 1922 

1724Tipo di unione di tutti i blocchi di contenuto.1923Tipo di unione di tutti i blocchi di contenuto.

1725 1924 


1727ContentBlock = TextBlock | ThinkingBlock | ToolUseBlock | ToolResultBlock1926ContentBlock = TextBlock | ThinkingBlock | ToolUseBlock | ToolResultBlock

1728```1927```

1729 1928 

1730### `TextBlock`1929<h3 id="textblock">

1930 `TextBlock`

1931</h3>

1731 1932 

1732Blocco di contenuto di testo.1933Blocco di contenuto di testo.

1733 1934 


1737 text: str1938 text: str

1738```1939```

1739 1940 

1740### `ThinkingBlock`1941<h3 id="thinkingblock">

1942 `ThinkingBlock`

1943</h3>

1741 1944 

1742Blocco di contenuto di pensiero (per modelli con capacità di pensiero).1945Blocco di contenuto di pensiero (per modelli con capacità di pensiero).

1743 1946 


1748 signature: str1951 signature: str

1749```1952```

1750 1953 

1751### `ToolUseBlock`1954<h3 id="tooluseblock">

1955 `ToolUseBlock`

1956</h3>

1752 1957 

1753Blocco di richiesta di utilizzo dello strumento.1958Blocco di richiesta di utilizzo dello strumento.

1754 1959 


1760 input: dict[str, Any]1965 input: dict[str, Any]

1761```1966```

1762 1967 

1763### `ToolResultBlock`1968<h3 id="toolresultblock">

1969 `ToolResultBlock`

1970</h3>

1764 1971 

1765Blocco di risultato dell'esecuzione dello strumento.1972Blocco di risultato dell'esecuzione dello strumento.

1766 1973 


1772 is_error: bool | None = None1979 is_error: bool | None = None

1773```1980```

1774 1981 

1775## Tipi di errore1982<h2 id="error-types">

1983 Tipi di errore

1984</h2>

1776 1985 

1777### `ClaudeSDKError`1986<h3 id="claudesdkerror">

1987 `ClaudeSDKError`

1988</h3>

1778 1989 

1779Classe di eccezione base per tutti gli errori dell'SDK.1990Classe di eccezione base per tutti gli errori dell'SDK.

1780 1991 


1783 """Base error for Claude SDK."""1994 """Base error for Claude SDK."""

1784```1995```

1785 1996 

1786### `CLINotFoundError`1997<h3 id="clinotfounderror">

1998 `CLINotFoundError`

1999</h3>

1787 2000 

1788Generato quando Claude Code CLI non è installato o non viene trovato.2001Generato quando Claude Code CLI non è installato o non viene trovato.

1789 2002 


1799 """2012 """

1800```2013```

1801 2014 

1802### `CLIConnectionError`2015<h3 id="cliconnectionerror">

2016 `CLIConnectionError`

2017</h3>

1803 2018 

1804Generato quando la connessione a Claude Code fallisce.2019Generato quando la connessione a Claude Code fallisce.

1805 2020 


1808 """Failed to connect to Claude Code."""2023 """Failed to connect to Claude Code."""

1809```2024```

1810 2025 

1811### `ProcessError`2026<h3 id="processerror">

2027 `ProcessError`

2028</h3>

1812 2029 

1813Generato quando il processo Claude Code fallisce.2030Generato quando il processo Claude Code fallisce.

1814 2031 


1821 self.stderr = stderr2038 self.stderr = stderr

1822```2039```

1823 2040 

1824### `CLIJSONDecodeError`2041<h3 id="clijsondecodeerror">

2042 `CLIJSONDecodeError`

2043</h3>

1825 2044 

1826Generato quando l'analisi JSON fallisce.2045Generato quando l'analisi JSON fallisce.

1827 2046 


1837 self.original_error = original_error2056 self.original_error = original_error

1838```2057```

1839 2058 

1840## Tipi di Hook2059<h2 id="hook-types">

2060 Tipi di Hook

2061</h2>

1841 2062 

1842Per una guida completa sull'utilizzo degli hooks con esempi e modelli comuni, vedi la [guida Hooks](/it/agent-sdk/hooks).2063Per una guida completa sull'utilizzo degli hooks con esempi e modelli comuni, vedi la [guida Hooks](/it/agent-sdk/hooks).

1843 2064 

1844### `HookEvent`2065<h3 id="hookevent">

2066 `HookEvent`

2067</h3>

1845 2068 

1846Tipi di evento hook supportati.2069Tipi di evento hook supportati.

1847 2070 


1864 TypeScript SDK supporta eventi hook aggiuntivi non ancora disponibili in Python: `SessionStart`, `SessionEnd`, `Setup`, `TeammateIdle`, `TaskCompleted`, `ConfigChange`, `WorktreeCreate`, `WorktreeRemove`, `PostToolBatch` e `MessageDisplay`.2087 TypeScript SDK supporta eventi hook aggiuntivi non ancora disponibili in Python: `SessionStart`, `SessionEnd`, `Setup`, `TeammateIdle`, `TaskCompleted`, `ConfigChange`, `WorktreeCreate`, `WorktreeRemove`, `PostToolBatch` e `MessageDisplay`.

1865</Note>2088</Note>

1866 2089 

1867### `HookCallback`2090<h3 id="hookcallback">

2091 `HookCallback`

2092</h3>

1868 2093 

1869Definizione di tipo per le funzioni di callback hook.2094Definizione di tipo per le funzioni di callback hook.

1870 2095 


1884* `systemMessage`: Messaggio di avviso mostrato all'utente2109* `systemMessage`: Messaggio di avviso mostrato all'utente

1885* `hookSpecificOutput`: Dati di output specifici dell'hook2110* `hookSpecificOutput`: Dati di output specifici dell'hook

1886 2111 

1887### `HookContext`2112<h3 id="hookcontext">

2113 `HookContext`

2114</h3>

1888 2115 

1889Informazioni di contesto passate ai callback hook.2116Informazioni di contesto passate ai callback hook.

1890 2117 


1893 signal: Any | None # Future: abort signal support2120 signal: Any | None # Future: abort signal support

1894```2121```

1895 2122 

1896### `HookMatcher`2123<h3 id="hookmatcher">

2124 `HookMatcher`

2125</h3>

1897 2126 

1898Configurazione per l'abbinamento degli hook a eventi o strumenti specifici.2127Configurazione per l'abbinamento degli hook a eventi o strumenti specifici.

1899 2128 


1911 )2140 )

1912```2141```

1913 2142 

1914### `HookInput`2143<h3 id="hookinput">

2144 `HookInput`

2145</h3>

1915 2146 

1916Tipo di unione di tutti i tipi di input hook. Il tipo effettivo dipende dal campo `hook_event_name`.2147Tipo di unione di tutti i tipi di input hook. Il tipo effettivo dipende dal campo `hook_event_name`.

1917 2148 


1930)2161)

1931```2162```

1932 2163 

1933### `BaseHookInput`2164<h3 id="basehookinput">

2165 `BaseHookInput`

2166</h3>

1934 2167 

1935Campi di base presenti in tutti i tipi di input hook.2168Campi di base presenti in tutti i tipi di input hook.

1936 2169 


1949| `cwd` | `str` | Directory di lavoro corrente |2182| `cwd` | `str` | Directory di lavoro corrente |

1950| `permission_mode` | `str` (opzionale) | Modalità di autorizzazione corrente |2183| `permission_mode` | `str` (opzionale) | Modalità di autorizzazione corrente |

1951 2184 

1952### `PreToolUseHookInput`2185<h3 id="pretoolusehookinput">

2186 `PreToolUseHookInput`

2187</h3>

1953 2188 

1954Dati di input per gli eventi hook `PreToolUse`.2189Dati di input per gli eventi hook `PreToolUse`.

1955 2190 


1972| `agent_id` | `str` (opzionale) | Identificatore del subagente, presente quando l'hook si attiva all'interno di un subagente |2207| `agent_id` | `str` (opzionale) | Identificatore del subagente, presente quando l'hook si attiva all'interno di un subagente |

1973| `agent_type` | `str` (opzionale) | Tipo di subagente, presente quando l'hook si attiva all'interno di un subagente |2208| `agent_type` | `str` (opzionale) | Tipo di subagente, presente quando l'hook si attiva all'interno di un subagente |

1974 2209 

1975### `PostToolUseHookInput`2210<h3 id="posttoolusehookinput">

2211 `PostToolUseHookInput`

2212</h3>

1976 2213 

1977Dati di input per gli eventi hook `PostToolUse`.2214Dati di input per gli eventi hook `PostToolUse`.

1978 2215 


1997| `agent_id` | `str` (opzionale) | Identificatore del subagente, presente quando l'hook si attiva all'interno di un subagente |2234| `agent_id` | `str` (opzionale) | Identificatore del subagente, presente quando l'hook si attiva all'interno di un subagente |

1998| `agent_type` | `str` (opzionale) | Tipo di subagente, presente quando l'hook si attiva all'interno di un subagente |2235| `agent_type` | `str` (opzionale) | Tipo di subagente, presente quando l'hook si attiva all'interno di un subagente |

1999 2236 

2000### `PostToolUseFailureHookInput`2237<h3 id="posttoolusefailurehookinput">

2238 `PostToolUseFailureHookInput`

2239</h3>

2001 2240 

2002Dati di input per gli eventi hook `PostToolUseFailure`. Chiamato quando l'esecuzione di uno strumento fallisce.2241Dati di input per gli eventi hook `PostToolUseFailure`. Chiamato quando l'esecuzione di uno strumento fallisce.

2003 2242 


2024| `agent_id` | `str` (opzionale) | Identificatore del subagente, presente quando l'hook si attiva all'interno di un subagente |2263| `agent_id` | `str` (opzionale) | Identificatore del subagente, presente quando l'hook si attiva all'interno di un subagente |

2025| `agent_type` | `str` (opzionale) | Tipo di subagente, presente quando l'hook si attiva all'interno di un subagente |2264| `agent_type` | `str` (opzionale) | Tipo di subagente, presente quando l'hook si attiva all'interno di un subagente |

2026 2265 

2027### `UserPromptSubmitHookInput`2266<h3 id="userpromptsubmithookinput">

2267 `UserPromptSubmitHookInput`

2268</h3>

2028 2269 

2029Dati di input per gli eventi hook `UserPromptSubmit`.2270Dati di input per gli eventi hook `UserPromptSubmit`.

2030 2271 


2039| `hook_event_name` | `Literal["UserPromptSubmit"]` | Sempre "UserPromptSubmit" |2280| `hook_event_name` | `Literal["UserPromptSubmit"]` | Sempre "UserPromptSubmit" |

2040| `prompt` | `str` | Il prompt inviato dall'utente |2281| `prompt` | `str` | Il prompt inviato dall'utente |

2041 2282 

2042### `StopHookInput`2283<h3 id="stophookinput">

2284 `StopHookInput`

2285</h3>

2043 2286 

2044Dati di input per gli eventi hook `Stop`.2287Dati di input per gli eventi hook `Stop`.

2045 2288 


2054| `hook_event_name` | `Literal["Stop"]` | Sempre "Stop" |2297| `hook_event_name` | `Literal["Stop"]` | Sempre "Stop" |

2055| `stop_hook_active` | `bool` | Se l'hook di arresto è attivo |2298| `stop_hook_active` | `bool` | Se l'hook di arresto è attivo |

2056 2299 

2057### `SubagentStopHookInput`2300<h3 id="subagentstophookinput">

2301 `SubagentStopHookInput`

2302</h3>

2058 2303 

2059Dati di input per gli eventi hook `SubagentStop`.2304Dati di input per gli eventi hook `SubagentStop`.

2060 2305 


2075| `agent_transcript_path` | `str` | Percorso al file di trascritto del subagente |2320| `agent_transcript_path` | `str` | Percorso al file di trascritto del subagente |

2076| `agent_type` | `str` | Tipo del subagente |2321| `agent_type` | `str` | Tipo del subagente |

2077 2322 

2078### `PreCompactHookInput`2323<h3 id="precompacthookinput">

2324 `PreCompactHookInput`

2325</h3>

2079 2326 

2080Dati di input per gli eventi hook `PreCompact`.2327Dati di input per gli eventi hook `PreCompact`.

2081 2328 


2092| `trigger` | `Literal["manual", "auto"]` | Cosa ha attivato la compattazione |2339| `trigger` | `Literal["manual", "auto"]` | Cosa ha attivato la compattazione |

2093| `custom_instructions` | `str \| None` | Istruzioni personalizzate per la compattazione |2340| `custom_instructions` | `str \| None` | Istruzioni personalizzate per la compattazione |

2094 2341 

2095### `NotificationHookInput`2342<h3 id="notificationhookinput">

2343 `NotificationHookInput`

2344</h3>

2096 2345 

2097Dati di input per gli eventi hook `Notification`.2346Dati di input per gli eventi hook `Notification`.

2098 2347 


2111| `title` | `str` (opzionale) | Titolo della notifica |2360| `title` | `str` (opzionale) | Titolo della notifica |

2112| `notification_type` | `str` | Tipo di notifica |2361| `notification_type` | `str` | Tipo di notifica |

2113 2362 

2114### `SubagentStartHookInput`2363<h3 id="subagentstarthookinput">

2364 `SubagentStartHookInput`

2365</h3>

2115 2366 

2116Dati di input per gli eventi hook `SubagentStart`.2367Dati di input per gli eventi hook `SubagentStart`.

2117 2368 


2128| `agent_id` | `str` | Identificatore univoco per il subagente |2379| `agent_id` | `str` | Identificatore univoco per il subagente |

2129| `agent_type` | `str` | Tipo del subagente |2380| `agent_type` | `str` | Tipo del subagente |

2130 2381 

2131### `PermissionRequestHookInput`2382<h3 id="permissionrequesthookinput">

2383 `PermissionRequestHookInput`

2384</h3>

2132 2385 

2133Dati di input per gli eventi hook `PermissionRequest`. Consente agli hook di gestire le decisioni di autorizzazione a livello di programmazione.2386Dati di input per gli eventi hook `PermissionRequest`. Consente agli hook di gestire le decisioni di autorizzazione a livello di programmazione.

2134 2387 


2147| `tool_input` | `dict[str, Any]` | Parametri di input per lo strumento |2400| `tool_input` | `dict[str, Any]` | Parametri di input per lo strumento |

2148| `permission_suggestions` | `list[Any]` (opzionale) | Aggiornamenti di autorizzazione suggeriti dalla CLI |2401| `permission_suggestions` | `list[Any]` (opzionale) | Aggiornamenti di autorizzazione suggeriti dalla CLI |

2149 2402 

2150### `HookJSONOutput`2403<h3 id="hookjsonoutput">

2404 `HookJSONOutput`

2405</h3>

2151 2406 

2152Tipo di unione per i valori di ritorno del callback hook.2407Tipo di unione per i valori di ritorno del callback hook.

2153 2408 


2155HookJSONOutput = AsyncHookJSONOutput | SyncHookJSONOutput2410HookJSONOutput = AsyncHookJSONOutput | SyncHookJSONOutput

2156```2411```

2157 2412 

2158#### `SyncHookJSONOutput`2413<h4 id="synchookjsonoutput">

2414 `SyncHookJSONOutput`

2415</h4>

2159 2416 

2160Output hook sincrono con campi di controllo e decisione.2417Output hook sincrono con campi di controllo e decisione.

2161 2418 


2179 Usa `continue_` (con underscore) nel codice Python. Viene automaticamente convertito a `continue` quando inviato alla CLI.2436 Usa `continue_` (con underscore) nel codice Python. Viene automaticamente convertito a `continue` quando inviato alla CLI.

2180</Note>2437</Note>

2181 2438 

2182#### `HookSpecificOutput`2439<h4 id="hookspecificoutput">

2440 `HookSpecificOutput`

2441</h4>

2183 2442 

2184Un `TypedDict` contenente il nome dell'evento hook e i campi specifici dell'evento. La forma dipende dal valore `hookEventName`. Per i dettagli completi sui campi disponibili per evento hook, vedi [Controlla l'esecuzione con gli hooks](/it/agent-sdk/hooks#outputs).2443Un `TypedDict` contenente il nome dell'evento hook e i campi specifici dell'evento. La forma dipende dal valore `hookEventName`. Per i dettagli completi sui campi disponibili per evento hook, vedi [Controlla l'esecuzione con gli hooks](/it/agent-sdk/hooks#outputs).

2185 2444 


2237)2496)

2238```2497```

2239 2498 

2240#### `AsyncHookJSONOutput`2499<h4 id="asynchookjsonoutput">

2500 `AsyncHookJSONOutput`

2501</h4>

2241 2502 

2242Output hook asincrono che rinvia l'esecuzione dell'hook.2503Output hook asincrono che rinvia l'esecuzione dell'hook.

2243 2504 


2251 Usa `async_` (con underscore) nel codice Python. Viene automaticamente convertito a `async` quando inviato alla CLI.2512 Usa `async_` (con underscore) nel codice Python. Viene automaticamente convertito a `async` quando inviato alla CLI.

2252</Note>2513</Note>

2253 2514 

2254### Esempio di utilizzo di Hook2515<h3 id="hook-usage-example">

2516 Esempio di utilizzo di Hook

2517</h3>

2255 2518 

2256Questo esempio registra due hook: uno che blocca i comandi bash pericolosi come `rm -rf /`, e un altro che registra tutto l'utilizzo dello strumento per il controllo. L'hook di sicurezza viene eseguito solo sui comandi Bash (tramite il `matcher`), mentre l'hook di registrazione viene eseguito su tutti gli strumenti.2519Questo esempio registra due hook: uno che blocca i comandi bash pericolosi come `rm -rf /`, e un altro che registra tutto l'utilizzo dello strumento per il controllo. L'hook di sicurezza viene eseguito solo sui comandi Bash (tramite il `matcher`), mentre l'hook di registrazione viene eseguito su tutti gli strumenti.

2257 2520 


2303 print(message)2566 print(message)

2304```2567```

2305 2568 

2306## Tipi di input/output dello strumento2569<h2 id="tool-input/output-types">

2570 Tipi di input/output dello strumento

2571</h2>

2307 2572 

2308Documentazione degli schemi di input/output per tutti gli strumenti Claude Code integrati. Mentre Python SDK non esporta questi come tipi, rappresentano la struttura degli input e output dello strumento nei messaggi.2573Documentazione degli schemi di input/output per tutti gli strumenti Claude Code integrati. Mentre Python SDK non esporta questi come tipi, rappresentano la struttura degli input e output dello strumento nei messaggi.

2309 2574 

2310### Agent2575<h3 id="agent">

2576 Agent

2577</h3>

2311 2578 

2312**Nome dello strumento:** `Agent` (precedentemente `Task`, che è ancora accettato come alias)2579**Nome dello strumento:** `Agent` (precedentemente `Task`, che è ancora accettato come alias)

2313 2580 


2332}2599}

2333```2600```

2334 2601 

2335### AskUserQuestion2602<h3 id="askuserquestion">

2603 AskUserQuestion

2604</h3>

2336 2605 

2337**Nome dello strumento:** `AskUserQuestion`2606**Nome dello strumento:** `AskUserQuestion`

2338 2607 


2378}2647}

2379```2648```

2380 2649 

2381### Bash2650<h3 id="bash">

2651 Bash

2652</h3>

2382 2653 

2383**Nome dello strumento:** `Bash`2654**Nome dello strumento:** `Bash`

2384 2655 


2404}2675}

2405```2676```

2406 2677 

2407### Monitor2678<h3 id="monitor">

2679 Monitor

2680</h3>

2408 2681 

2409**Nome dello strumento:** `Monitor`2682**Nome dello strumento:** `Monitor`

2410 2683 


2431}2704}

2432```2705```

2433 2706 

2434### Edit2707<h3 id="edit">

2708 Edit

2709</h3>

2435 2710 

2436**Nome dello strumento:** `Edit`2711**Nome dello strumento:** `Edit`

2437 2712 


2456}2731}

2457```2732```

2458 2733 

2459### Read2734<h3 id="read">

2735 Read

2736</h3>

2460 2737 

2461**Nome dello strumento:** `Read`2738**Nome dello strumento:** `Read`

2462 2739 


2490}2767}

2491```2768```

2492 2769 

2493### Write2770<h3 id="write">

2771 Write

2772</h3>

2494 2773 

2495**Nome dello strumento:** `Write`2774**Nome dello strumento:** `Write`

2496 2775 


2513}2792}

2514```2793```

2515 2794 

2516### Glob2795<h3 id="glob">

2796 Glob

2797</h3>

2517 2798 

2518**Nome dello strumento:** `Glob`2799**Nome dello strumento:** `Glob`

2519 2800 


2536}2817}

2537```2818```

2538 2819 

2539### Grep2820<h3 id="grep">

2821 Grep

2822</h3>

2540 2823 

2541**Nome dello strumento:** `Grep`2824**Nome dello strumento:** `Grep`

2542 2825 


2585}2868}

2586```2869```

2587 2870 

2588### NotebookEdit2871<h3 id="notebookedit">

2872 NotebookEdit

2873</h3>

2589 2874 

2590**Nome dello strumento:** `NotebookEdit`2875**Nome dello strumento:** `NotebookEdit`

2591 2876 


2612}2897}

2613```2898```

2614 2899 

2615### WebFetch2900<h3 id="webfetch">

2901 WebFetch

2902</h3>

2616 2903 

2617**Nome dello strumento:** `WebFetch`2904**Nome dello strumento:** `WebFetch`

2618 2905 


2638}2925}

2639```2926```

2640 2927 

2641### WebSearch2928<h3 id="websearch">

2929 WebSearch

2930</h3>

2642 2931 

2643**Nome dello strumento:** `WebSearch`2932**Nome dello strumento:** `WebSearch`

2644 2933 


2662}2951}

2663```2952```

2664 2953 

2665### TodoWrite2954<h3 id="todowrite">

2955 TodoWrite

2956</h3>

2666 2957 

2667**Nome dello strumento:** `TodoWrite`2958**Nome dello strumento:** `TodoWrite`

2668 2959 


2693}2984}

2694```2985```

2695 2986 

2696### TaskCreate2987<h3 id="taskcreate">

2988 TaskCreate

2989</h3>

2697 2990 

2698**Nome dello strumento:** `TaskCreate`2991**Nome dello strumento:** `TaskCreate`

2699 2992 


2716}3009}

2717```3010```

2718 3011 

2719### TaskUpdate3012<h3 id="taskupdate">

3013 TaskUpdate

3014</h3>

2720 3015 

2721**Nome dello strumento:** `TaskUpdate`3016**Nome dello strumento:** `TaskUpdate`

2722 3017 


2748}3043}

2749```3044```

2750 3045 

2751### TaskGet3046<h3 id="taskget">

3047 TaskGet

3048</h3>

2752 3049 

2753**Nome dello strumento:** `TaskGet`3050**Nome dello strumento:** `TaskGet`

2754 3051 


2775}3072}

2776```3073```

2777 3074 

2778### TaskList3075<h3 id="tasklist">

3076 TaskList

3077</h3>

2779 3078 

2780**Nome dello strumento:** `TaskList`3079**Nome dello strumento:** `TaskList`

2781 3080 


2801}3100}

2802```3101```

2803 3102 

2804### BashOutput3103<h3 id="bashoutput">

3104 BashOutput

3105</h3>

2805 3106 

2806**Nome dello strumento:** `BashOutput`3107**Nome dello strumento:** `BashOutput`

2807 3108 


2824}3125}

2825```3126```

2826 3127 

2827### KillBash3128<h3 id="killbash">

3129 KillBash

3130</h3>

2828 3131 

2829**Nome dello strumento:** `KillBash`3132**Nome dello strumento:** `KillBash`

2830 3133 


2845}3148}

2846```3149```

2847 3150 

2848### ExitPlanMode3151<h3 id="exitplanmode">

3152 ExitPlanMode

3153</h3>

2849 3154 

2850**Nome dello strumento:** `ExitPlanMode`3155**Nome dello strumento:** `ExitPlanMode`

2851 3156 


2866}3171}

2867```3172```

2868 3173 

2869### ListMcpResources3174<h3 id="listmcpresources">

3175 ListMcpResources

3176</h3>

2870 3177 

2871**Nome dello strumento:** `ListMcpResourcesTool`3178**Nome dello strumento:** `ListMcpResourcesTool`

2872 3179 


2895}3202}

2896```3203```

2897 3204 

2898### ReadMcpResource3205<h3 id="readmcpresource">

3206 ReadMcpResource

3207</h3>

2899 3208 

2900**Nome dello strumento:** `ReadMcpResourceTool`3209**Nome dello strumento:** `ReadMcpResourceTool`

2901 3210 


2919}3228}

2920```3229```

2921 3230 

2922## Funzionalità avanzate con ClaudeSDKClient3231<h2 id="advanced-features-with-claudesdkclient">

3232 Funzionalità avanzate con ClaudeSDKClient

3233</h2>

2923 3234 

2924### Costruire un'interfaccia di conversazione continua3235<h3 id="building-a-continuous-conversation-interface">

3236 Costruire un'interfaccia di conversazione continua

3237</h3>

2925 3238 

2926```python theme={null}3239```python theme={null}

2927from claude_agent_sdk import (3240from claude_agent_sdk import (


3000asyncio.run(main())3313asyncio.run(main())

3001```3314```

3002 3315 

3003### Utilizzo di Hook per la modifica del comportamento3316<h3 id="using-hooks-for-behavior-modification">

3317 Utilizzo di hooks per la modifica del comportamento

3318</h3>

3004 3319 

3005```python theme={null}3320```python theme={null}

3006from claude_agent_sdk import (3321from claude_agent_sdk import (


3084asyncio.run(main())3399asyncio.run(main())

3085```3400```

3086 3401 

3087### Monitoraggio del progresso in tempo reale3402<h3 id="real-time-progress-monitoring">

3403 Monitoraggio del progresso in tempo reale

3404</h3>

3088 3405 

3089```python theme={null}3406```python theme={null}

3090from claude_agent_sdk import (3407from claude_agent_sdk import (


3125asyncio.run(monitor_progress())3442asyncio.run(monitor_progress())

3126```3443```

3127 3444 

3128## Utilizzo di esempio3445<h2 id="example-usage">

3446 Utilizzo di esempio

3447</h2>

3129 3448 

3130### Operazioni di file di base (usando query)3449<h3 id="basic-file-operations-using-query">

3450 Operazioni di file di base (usando query)

3451</h3>

3131 3452 

3132```python theme={null}3453```python theme={null}

3133from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ToolUseBlock3454from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ToolUseBlock


3153asyncio.run(create_project())3474asyncio.run(create_project())

3154```3475```

3155 3476 

3156### Gestione degli errori3477<h3 id="error-handling">

3478 Gestione degli errori

3479</h3>

3157 3480 

3158```python theme={null}3481```python theme={null}

3159from claude_agent_sdk import query, CLINotFoundError, ProcessError, CLIJSONDecodeError3482from claude_agent_sdk import query, CLINotFoundError, ProcessError, CLIJSONDecodeError


3171 print(f"Failed to parse response: {e}")3494 print(f"Failed to parse response: {e}")

3172```3495```

3173 3496 

3174### Modalità streaming con client3497<h3 id="streaming-mode-with-client">

3498 Modalità streaming con client

3499</h3>

3175 3500 

3176```python theme={null}3501```python theme={null}

3177from claude_agent_sdk import ClaudeSDKClient3502from claude_agent_sdk import ClaudeSDKClient


3198asyncio.run(interactive_session())3523asyncio.run(interactive_session())

3199```3524```

3200 3525 

3201### Utilizzo di strumenti personalizzati con ClaudeSDKClient3526<h3 id="using-custom-tools-with-claudesdkclient">

3527 Utilizzo di strumenti personalizzati con ClaudeSDKClient

3528</h3>

3202 3529 

3203```python theme={null}3530```python theme={null}

3204from claude_agent_sdk import (3531from claude_agent_sdk import (


3270asyncio.run(main())3597asyncio.run(main())

3271```3598```

3272 3599 

3273## Configurazione della Sandbox3600<h2 id="sandbox-configuration">

3601 Configurazione della Sandbox

3602</h2>

3274 3603 

3275### `SandboxSettings`3604<h3 id="sandboxsettings">

3605 `SandboxSettings`

3606</h3>

3276 3607 

3277Configurazione per il comportamento della sandbox. Usala per abilitare il sandboxing dei comandi e configurare le restrizioni di rete a livello di programmazione.3608Configurazione per il comportamento della sandbox. Usala per abilitare il sandboxing dei comandi e configurare le restrizioni di rete a livello di programmazione.

3278 3609 


3303 Imposta `"failIfUnavailable": True` nelle impostazioni della sandbox per interrompere invece. La chiave non è ancora dichiarata su `SandboxSettings`, ma l'SDK la inoltra a Claude Code, che la rispetta. `query()` quindi segnala un `ResultMessage` con `subtype="error_during_execution"` e il motivo in `errors`. Guarda quel sottotipo piuttosto che aspettarti che `query()` generi un'eccezione prima di cedere i messaggi.3634 Imposta `"failIfUnavailable": True` nelle impostazioni della sandbox per interrompere invece. La chiave non è ancora dichiarata su `SandboxSettings`, ma l'SDK la inoltra a Claude Code, che la rispetta. `query()` quindi segnala un `ResultMessage` con `subtype="error_during_execution"` e il motivo in `errors`. Guarda quel sottotipo piuttosto che aspettarti che `query()` generi un'eccezione prima di cedere i messaggi.

3304</Note>3635</Note>

3305 3636 

3306#### Utilizzo di esempio3637<h4 id="example-usage-1">

3638 Utilizzo di esempio

3639</h4>

3307 3640 

3308```python theme={null}3641```python theme={null}

3309from claude_agent_sdk import query, ClaudeAgentOptions, SandboxSettings3642from claude_agent_sdk import query, ClaudeAgentOptions, SandboxSettings


3325 **Sicurezza del socket Unix**: L'opzione `allowUnixSockets` può concedere l'accesso a potenti servizi di sistema. Ad esempio, consentire `/var/run/docker.sock` concede effettivamente l'accesso completo al sistema host tramite l'API Docker, bypassando l'isolamento della sandbox. Consenti solo i socket Unix strettamente necessari e comprendi le implicazioni di sicurezza di ognuno.3658 **Sicurezza del socket Unix**: L'opzione `allowUnixSockets` può concedere l'accesso a potenti servizi di sistema. Ad esempio, consentire `/var/run/docker.sock` concede effettivamente l'accesso completo al sistema host tramite l'API Docker, bypassando l'isolamento della sandbox. Consenti solo i socket Unix strettamente necessari e comprendi le implicazioni di sicurezza di ognuno.

3326</Warning>3659</Warning>

3327 3660 

3328### `SandboxNetworkConfig`3661<h3 id="sandboxnetworkconfig">

3662 `SandboxNetworkConfig`

3663</h3>

3329 3664 

3330Configurazione specifica della rete per la modalità sandbox. Queste impostazioni si applicano ai comandi Bash in sandbox quando `enabled` è `True` nella [`SandboxSettings`](#sandboxsettings) padre. Non limitano lo strumento WebFetch, che utilizza invece [regole di autorizzazione](/it/permissions#webfetch).3665Configurazione specifica della rete per la modalità sandbox. Queste impostazioni si applicano ai comandi Bash in sandbox quando `enabled` è `True` nella [`SandboxSettings`](#sandboxsettings) padre. Non limitano lo strumento WebFetch, che utilizza invece [regole di autorizzazione](/it/permissions#webfetch).

3331 3666 


3358 Il proxy sandbox integrato applica l'allowlist di rete in base al nome host richiesto e non termina o ispeziona il traffico TLS, quindi tecniche come il [domain fronting](https://en.wikipedia.org/wiki/Domain_fronting) possono potenzialmente bypassarlo. Vedi [Limitazioni di sicurezza del sandboxing](/it/sandboxing#security-limitations) per i dettagli e [Distribuzione sicura](/it/agent-sdk/secure-deployment#traffic-forwarding) per configurare un proxy che termina TLS.3693 Il proxy sandbox integrato applica l'allowlist di rete in base al nome host richiesto e non termina o ispeziona il traffico TLS, quindi tecniche come il [domain fronting](https://en.wikipedia.org/wiki/Domain_fronting) possono potenzialmente bypassarlo. Vedi [Limitazioni di sicurezza del sandboxing](/it/sandboxing#security-limitations) per i dettagli e [Distribuzione sicura](/it/agent-sdk/secure-deployment#traffic-forwarding) per configurare un proxy che termina TLS.

3359</Note>3694</Note>

3360 3695 

3361### `SandboxIgnoreViolations`3696<h3 id="sandboxignoreviolations">

3697 `SandboxIgnoreViolations`

3698</h3>

3362 3699 

3363Configurazione per ignorare violazioni specifiche della sandbox.3700Configurazione per ignorare violazioni specifiche della sandbox.

3364 3701 


3373| `file` | `list[str]` | `[]` | Modelli di percorso file per cui ignorare le violazioni |3710| `file` | `list[str]` | `[]` | Modelli di percorso file per cui ignorare le violazioni |

3374| `network` | `list[str]` | `[]` | Modelli di rete per cui ignorare le violazioni |3711| `network` | `list[str]` | `[]` | Modelli di rete per cui ignorare le violazioni |

3375 3712 

3376### Fallback delle autorizzazioni per i comandi senza sandbox3713<h3 id="permissions-fallback-for-unsandboxed-commands">

3714 Fallback delle autorizzazioni per i comandi senza sandbox

3715</h3>

3377 3716 

3378Quando `allowUnsandboxedCommands` è abilitato, il modello può richiedere di eseguire comandi al di fuori della sandbox impostando `dangerouslyDisableSandbox: True` nell'input dello strumento. Queste richieste ricadono nel sistema di autorizzazioni esistente, il che significa che il tuo handler `can_use_tool` verrà invocato, permettendoti di implementare una logica di autorizzazione personalizzata.3717Quando `allowUnsandboxedCommands` è abilitato, il modello può richiedere di eseguire comandi al di fuori della sandbox impostando `dangerouslyDisableSandbox: True` nell'input dello strumento. Queste richieste ricadono nel sistema di autorizzazioni esistente, il che significa che il tuo handler `can_use_tool` verrà invocato, permettendoti di implementare una logica di autorizzazione personalizzata.

3379 3718 


3451 Se `permission_mode` è impostato su `bypassPermissions` e `allow_unsandboxed_commands` è abilitato, il modello può autonomamente eseguire comandi al di fuori della sandbox senza alcun prompt di approvazione. Questa combinazione consente effettivamente al modello di sfuggire all'isolamento della sandbox silenziosamente.3790 Se `permission_mode` è impostato su `bypassPermissions` e `allow_unsandboxed_commands` è abilitato, il modello può autonomamente eseguire comandi al di fuori della sandbox senza alcun prompt di approvazione. Questa combinazione consente effettivamente al modello di sfuggire all'isolamento della sandbox silenziosamente.

3452</Warning>3791</Warning>

3453 3792 

3454## Vedi anche3793<h2 id="see-also">

3794 Vedi anche

3795</h2>

3455 3796 

3456* [Panoramica dell'SDK](/it/agent-sdk/overview) - Concetti generali dell'SDK3797* [Panoramica dell'SDK](/it/agent-sdk/overview) - Concetti generali dell'SDK

3457* [Riferimento TypeScript SDK](/it/agent-sdk/typescript) - Documentazione TypeScript SDK3798* [Riferimento TypeScript SDK](/it/agent-sdk/typescript) - Documentazione TypeScript SDK

Details

340**Permission modes** controllano quanto controllo umano desideri:340**Permission modes** controllano quanto controllo umano desideri:

341 341 

342| Mode | Comportamento | Caso d'uso |342| Mode | Comportamento | Caso d'uso |

343| ------------------------ | --------------------------------------------------------------------------------------------- | --------------------------------------------- |343| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------- |

344| `acceptEdits` | Auto-approva le modifiche ai file e i comandi comuni del file system, chiede per altre azioni | Flussi di lavoro di sviluppo affidabili |344| `acceptEdits` | Auto-approva le modifiche ai file e i comandi comuni del file system, chiede per altre azioni | Flussi di lavoro di sviluppo affidabili |

345| `dontAsk` | Nega tutto ciò che non è in `allowedTools` | Agenti headless bloccati |345| `dontAsk` | Nega tutto ciò che non è in `allowedTools` | Agenti headless bloccati |

346| `auto` (solo TypeScript) | Un classificatore di modelli approva o nega ogni chiamata di strumento | Agenti autonomi con protezioni di sicurezza |346| `auto` (solo TypeScript) | Un classificatore di modelli approva o nega ogni chiamata di strumento | Agenti autonomi con protezioni di sicurezza |

347| `bypassPermissions` | Esegue ogni strumento senza prompt | CI sandbox, ambienti completamente affidabili |347| `bypassPermissions` | Esegue ogni strumento senza prompt, a meno che una regola [`ask`](/it/agent-sdk/permissions#how-permissions-are-evaluated) esplicita non corrisponda | CI sandbox, ambienti completamente affidabili |

348| `default` | Richiede un callback `canUseTool` per gestire l'approvazione | Flussi di approvazione personalizzati |348| `default` | Richiede un callback `canUseTool` per gestire l'approvazione | Flussi di approvazione personalizzati |

349 349 

350L'esempio sopra utilizza la modalità `acceptEdits`, che auto-approva le operazioni sui file in modo che l'agente possa funzionare senza prompt interattivi. Se desideri richiedere agli utenti l'approvazione, utilizza la modalità `default` e fornisci un callback [`canUseTool`](/it/agent-sdk/user-input) che raccoglie l'input dell'utente. Per un maggiore controllo, vedi [Permissions](/it/agent-sdk/permissions).350L'esempio sopra utilizza la modalità `acceptEdits`, che auto-approva le operazioni sui file in modo che l'agente possa funzionare senza prompt interattivi. Se desideri richiedere agli utenti l'approvazione, utilizza la modalità `default` e fornisci un callback [`canUseTool`](/it/agent-sdk/user-input) che raccoglie l'input dell'utente. Per un maggiore controllo, vedi [Permissions](/it/agent-sdk/permissions).

Details

150 ```150 ```

151</CodeGroup>151</CodeGroup>

152 152 

153La seconda query stampa un riepilogo dei file dalla prima query, il che mostra che l'agente ha ripreso con il contesto completo dallo store.

154 

153<h2 id="write-your-own-adapter">155<h2 id="write-your-own-adapter">

154 Scrivere il vostro adattatore156 Scrivere il vostro adattatore

155</h2>157</h2>

Details

230 ```230 ```

231 231 

232 ```typescript TypeScript theme={null}232 ```typescript TypeScript theme={null}

233 import { query } from "@anthropic-ai/claude-agent-sdk";

234 

235 const sessionId = "..."; // The ID you captured in the previous example

236 

233 // Earlier session analyzed the code; now build on that analysis237 // Earlier session analyzed the code; now build on that analysis

234 for await (const message of query({238 for await (const message of query({

235 prompt: "Now implement the refactoring you suggested",239 prompt: "Now implement the refactoring you suggested",


245 ```249 ```

246</CodeGroup>250</CodeGroup>

247 251 

252Dovresti vedere una risposta che si basa sull'analisi precedente invece di iniziare da zero. Questo conferma che l'agente ha ripreso la sessione con il suo contesto precedente intatto.

253 

248<Tip>254<Tip>

249 Se una chiamata `resume` restituisce una sessione nuova invece della cronologia prevista, la causa più comune è un `cwd` non corrispondente. Le sessioni sono archiviate sotto `~/.claude/projects/<encoded-cwd>/*.jsonl`, dove `<encoded-cwd>` è la directory di lavoro assoluta con ogni carattere non alfanumerico sostituito da `-` (quindi `/Users/me/proj` diventa `-Users-me-proj`). Se la tua chiamata resume viene eseguita da una directory diversa, l'SDK cerca nel posto sbagliato. Il file di sessione deve anche esistere sulla macchina corrente.255 Se una chiamata `resume` restituisce una sessione nuova invece della cronologia prevista, la causa più comune è un `cwd` non corrispondente. Le sessioni sono archiviate sotto `~/.claude/projects/<encoded-cwd>/*.jsonl`, o sotto `$CLAUDE_CONFIG_DIR/projects/<encoded-cwd>/*.jsonl` se imposti la variabile di ambiente `CLAUDE_CONFIG_DIR`, dove `<encoded-cwd>` è la directory di lavoro assoluta con ogni carattere non alfanumerico sostituito da `-` (quindi `/Users/me/proj` diventa `-Users-me-proj`). Se la tua chiamata resume viene eseguita da una directory diversa, l'SDK cerca nel posto sbagliato. Il file di sessione deve anche esistere sulla macchina corrente.

250</Tip>256</Tip>

251 257 

252Per riprendere sessioni tra macchine o in ambienti serverless, specchia i transcript in un archivio condiviso con un adattatore [`SessionStore`](/it/agent-sdk/session-storage).258Per riprendere sessioni tra macchine o in ambienti serverless, specchia i transcript in un archivio condiviso con un adattatore [`SessionStore`](/it/agent-sdk/session-storage).


268 # Fork: branch from session_id into a new session274 # Fork: branch from session_id into a new session

269 forked_id = None275 forked_id = None

270 async for message in query(276 async for message in query(

271 prompt="Instead of JWT, implement OAuth2 for the auth module",277 prompt="Instead of JWT, outline how OAuth2 would work for the auth module",

272 options=ClaudeAgentOptions(278 options=ClaudeAgentOptions(

273 resume=session_id,279 resume=session_id,

274 fork_session=True,280 fork_session=True,

281 max_turns=5,

275 ),282 ),

276 ):283 ):

277 if isinstance(message, ResultMessage):284 if isinstance(message, ResultMessage):


291 ```298 ```

292 299 

293 ```typescript TypeScript theme={null}300 ```typescript TypeScript theme={null}

301 import { query } from "@anthropic-ai/claude-agent-sdk";

302 

303 const sessionId = "..."; // The ID you captured in the previous example

304 

294 // Fork: branch from sessionId into a new session305 // Fork: branch from sessionId into a new session

295 let forkedId: string | undefined;306 let forkedId: string | undefined;

296 307 

297 for await (const message of query({308 for await (const message of query({

298 prompt: "Instead of JWT, implement OAuth2 for the auth module",309 prompt: "Instead of JWT, outline how OAuth2 would work for the auth module",

299 options: {310 options: {

300 resume: sessionId,311 resume: sessionId,

301 forkSession: true312 forkSession: true,

313 maxTurns: 5

302 }314 }

303 })) {315 })) {

304 if (message.type === "system" && message.subtype === "init") {316 if (message.type === "system" && message.subtype === "init") {


323 ```335 ```

324</CodeGroup>336</CodeGroup>

325 337 

338Dovresti vedere che `forkedId` differisce dall'ID di sessione originale. Riprendere la sessione originale continua ancora il thread JWT, il che conferma che il fork non ha modificato la cronologia originale.

339 

326<h2 id="resume-across-hosts">340<h2 id="resume-across-hosts">

327 Riprendi tra host341 Riprendi tra host

328</h2>342</h2>

Details

101 parent_tool_use_id: string | null;101 parent_tool_use_id: string | null;

102 uuid: UUID;102 uuid: UUID;

103 session_id: string;103 session_id: string;

104 ttft_ms?: number; // Time to first token in ms, present only on message_start events

104 };105 };

105 ```106 ```

106</CodeGroup>107</CodeGroup>

Details

218 ```218 ```

219</CodeGroup>219</CodeGroup>

220 220 

221<Note>

222 In TypeScript SDK, se il vostro generatore di messaggi genera un'eccezione, ad esempio quando un file che legge è mancante, il flusso termina con un errore che recita `Claude Code process aborted by user` invece dell'errore originale, quindi controllate il codice all'interno del vostro generatore per primo quando vedete quel messaggio. L'errore potrebbe anche essere preceduto da una lunga riga minificata del codice sorgente SDK raggruppato, quindi leggete fino alla fine dell'output per il testo dell'errore.

223 

224 In Python SDK, un'eccezione del generatore viene registrata a livello di debug e la sessione si blocca senza sollevare, quindi se una sessione di streaming si blocca senza output, abilitate la registrazione di debug e controllate il vostro generatore.

225</Note>

226 

221<h2 id="single-message-input">227<h2 id="single-message-input">

222 Single Message Input228 Single Message Input

223</h2>229</h2>


247 * Conversazioni multi-turno naturali253 * Conversazioni multi-turno naturali

248</Warning>254</Warning>

249 255 

250<h3 id="implementation-example">256Se una query termina con un risultato di errore, come `error_max_turns`, una singola chiamata `query()` genera un errore che include il testo dell'errore dopo aver restituito il messaggio di risultato finale, quindi avvolgete il ciclo in un blocco try se il vostro codice deve continuare. Consultate [Gestire il risultato](/it/agent-sdk/agent-loop#handle-the-result) per i sottotipi di risultato.

257 

258<h3 id="implementation-example-1">

251 Esempio di Implementazione259 Esempio di Implementazione

252</h3>260</h3>

253 261 

Details

245* `type`: Impostare su `"json_schema"` per gli output strutturati245* `type`: Impostare su `"json_schema"` per gli output strutturati

246* `schema`: Un oggetto [JSON Schema](https://json-schema.org/understanding-json-schema/about) che definisce la struttura di output. È possibile generarlo da uno schema Zod con `z.toJSONSchema()` o da un modello Pydantic con `.model_json_schema()`246* `schema`: Un oggetto [JSON Schema](https://json-schema.org/understanding-json-schema/about) che definisce la struttura di output. È possibile generarlo da uno schema Zod con `z.toJSONSchema()` o da un modello Pydantic con `.model_json_schema()`

247 247 

248L'SDK supporta le funzionalità standard di JSON Schema inclusi tutti i tipi di base (object, array, string, number, boolean, null), `enum`, `const`, `required`, oggetti annidati e definizioni `$ref`. Per l'elenco completo delle funzionalità supportate e delle limitazioni, vedere [Limitazioni di JSON Schema](https://platform.claude.com/docs/en/build-with-claude/structured-outputs#json-schema-limitations).248L'SDK supporta le funzionalità standard di JSON Schema inclusi tutti i tipi di base (object, array, string, number, boolean, null), `enum`, `const`, `required`, oggetti annidati e definizioni `$ref`. Per l'elenco completo delle funzionalità supportate e delle limitazioni, vedere [Limitazioni di JSON Schema](https://platform.claude.com/docs/it/build-with-claude/structured-outputs#json-schema-limitations).

249 249 

250<h2 id="example-todo-tracking-agent">250<h2 id="example-todo-tracking-agent">

251 Esempio: agente di tracciamento TODO251 Esempio: agente di tracciamento TODO


358 Gestione degli errori358 Gestione degli errori

359</h2>359</h2>

360 360 

361La generazione di output strutturati può non riuscire quando l'agente non può produrre JSON valido corrispondente allo schema. Questo accade in genere quando lo schema è troppo complesso per l'attività, l'attività stessa è ambigua o l'agente raggiunge il limite di tentativi cercando di correggere gli errori di convalida.361La generazione di output strutturati può non riuscire quando l'agente non può produrre JSON valido corrispondente allo schema. Questo accade in genere quando lo schema è troppo complesso per l'attività, l'attività stessa è ambigua o l'agente raggiunge il limite di tentativi cercando di correggere gli errori di convalida. Può anche accadere senza alcun errore di convalida: un [fallback del modello](/it/model-config#automatic-model-fallback) può ritirare un output già completato a metà flusso, e se nessun nuovo tentativo lo sostituisce, l'esecuzione termina con lo stesso errore. Controllare il campo `errors` sul messaggio di risultato per distinguere le due cause prima di eseguire il debug dello schema.

362 362 

363Quando si verifica un errore, il messaggio di risultato ha un `subtype` che indica cosa è andato storto:363Quando si verifica un errore, il messaggio di risultato ha un `subtype` che indica cosa è andato storto:

364 364 

365| Subtype | Significato |365| Subtype | Significato |

366| ------------------------------------- | ---------------------------------------------------------------- |366| ------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |

367| `success` | L'output è stato generato e convalidato con successo |367| `success` | L'output è stato generato e convalidato con successo |

368| `error_max_structured_output_retries` | L'agente non ha potuto produrre output valido dopo più tentativi |368| `error_max_structured_output_retries` | Nessun output valido è rimasto dopo più tentativi (errori di convalida, o un ritiro dovuto a fallback del modello senza un nuovo tentativo riuscito) |

369 369 

370L'esempio seguente controlla il campo `subtype` per determinare se l'output è stato generato con successo o se è necessario gestire un errore:370L'esempio seguente controlla il campo `subtype` per determinare se l'output è stato generato con successo o se è necessario gestire un errore:

371 371 

372<CodeGroup>372<CodeGroup>

373 ```typescript TypeScript theme={null}373 ```typescript TypeScript theme={null}

374 for await (const msg of query({374 for await (const msg of query({

375 prompt: "Estrai le informazioni di contatto dal documento",375 prompt: "Extract contact info from the document",

376 options: {376 options: {

377 outputFormat: {377 outputFormat: {

378 type: "json_schema",378 type: "json_schema",


382 })) {382 })) {

383 if (msg.type === "result") {383 if (msg.type === "result") {

384 if (msg.subtype === "success" && msg.structured_output) {384 if (msg.subtype === "success" && msg.structured_output) {

385 // Utilizzare l'output convalidato385 // Use the validated output

386 console.log(msg.structured_output);386 console.log(msg.structured_output);

387 } else if (msg.subtype === "error_max_structured_output_retries") {387 } else if (msg.subtype === "error_max_structured_output_retries") {

388 // Gestire l'errore - riprovare con un prompt più semplice, ricorrere a output non strutturato, ecc.388 // Handle the failure - retry with simpler prompt, fall back to unstructured, etc.

389 console.error("Impossibile produrre output valido");389 console.error("Could not produce valid output");

390 }390 }

391 }391 }

392 }392 }


394 394 

395 ```python Python theme={null}395 ```python Python theme={null}

396 async for message in query(396 async for message in query(

397 prompt="Estrai le informazioni di contatto dal documento",397 prompt="Extract contact info from the document",

398 options=ClaudeAgentOptions(398 options=ClaudeAgentOptions(

399 output_format={"type": "json_schema", "schema": contact_schema}399 output_format={"type": "json_schema", "schema": contact_schema}

400 ),400 ),

401 ):401 ):

402 if isinstance(message, ResultMessage):402 if isinstance(message, ResultMessage):

403 if message.subtype == "success" and message.structured_output:403 if message.subtype == "success" and message.structured_output:

404 # Utilizzare l'output convalidato404 # Use the validated output

405 print(message.structured_output)405 print(message.structured_output)

406 elif message.subtype == "error_max_structured_output_retries":406 elif message.subtype == "error_max_structured_output_retries":

407 # Gestire l'errore407 # Handle the failure

408 print("Impossibile produrre output valido")408 print("Could not produce valid output")

409 ```409 ```

410</CodeGroup>410</CodeGroup>

411 411 

Details

41 Parallelizzazione41 Parallelizzazione

42</h3>42</h3>

43 43 

44Più subagenti possono essere eseguiti contemporaneamente, accelerando drasticamente i flussi di lavoro complessi.44Più subagenti possono essere eseguiti contemporaneamente, quindi i sottoincarichi indipendenti si completano nel tempo di quello più lento piuttosto che nella somma di tutti loro.

45 45 

46**Esempio:** durante una revisione del codice, puoi eseguire i subagenti `style-checker`, `security-scanner` e `test-coverage` simultaneamente, riducendo il tempo di revisione da minuti a secondi.46**Esempio:** durante una revisione del codice, puoi eseguire i subagenti `style-checker`, `security-scanner` e `test-coverage` simultaneamente invece che sequenzialmente.

47 47 

48<h3 id="specialized-instructions-and-knowledge">48<h3 id="specialized-instructions-and-knowledge">

49 Istruzioni e conoscenze specializzate49 Istruzioni e conoscenze specializzate


178</h3>178</h3>

179 179 

180| Campo | Tipo | Obbligatorio | Descrizione |180| Campo | Tipo | Obbligatorio | Descrizione |

181| :---------------- | :---------------------------------------------------------- | :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |181| :---------------- | :---------------------------------------------------------- | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

182| `description` | `string` | Sì | Descrizione in linguaggio naturale di quando utilizzare questo agente |182| `description` | `string` | Sì | Descrizione in linguaggio naturale di quando utilizzare questo agente |

183| `prompt` | `string` | Sì | Il prompt di sistema dell'agente che definisce il suo ruolo e comportamento |183| `prompt` | `string` | Sì | Il prompt di sistema dell'agente che definisce il suo ruolo e comportamento |

184| `tools` | `string[]` | No | Array di nomi di strumenti consentiti. Se omesso, eredita tutti gli strumenti |184| `tools` | `string[]` | No | Array di nomi di strumenti consentiti. Se omesso, eredita tutti gli strumenti |

185| `disallowedTools` | `string[]` | No | Array di nomi di strumenti da rimuovere dal set di strumenti dell'agente |185| `disallowedTools` | `string[]` | No | Array di nomi di strumenti da rimuovere dal set di strumenti dell'agente. Sono accettati anche i pattern a livello di server MCP: `mcp__server` o `mcp__server__*` rimuove ogni strumento da quel server, e `mcp__*` rimuove ogni strumento MCP da qualsiasi server |

186| `model` | `string` | No | Override del modello per questo agente. Accetta un alias come `'sonnet'`, `'opus'`, `'haiku'`, `'inherit'`, o un ID modello completo. Predefinito al modello principale se omesso |186| `model` | `string` | No | Override del modello per questo agente. Accetta un alias come `'fable'`, `'opus'`, `'sonnet'`, `'haiku'`, `'inherit'`, o un ID modello completo. Predefinito al modello principale se omesso |

187| `skills` | `string[]` | No | Elenco di nomi di skill da precaricare nel contesto dell'agente all'avvio. Le skill non elencate rimangono invocabili tramite lo strumento Skill |187| `skills` | `string[]` | No | Elenco di nomi di skill da precaricare nel contesto dell'agente all'avvio. Le skill non elencate rimangono invocabili tramite lo strumento Skill |

188| `memory` | `'user' \| 'project' \| 'local'` | No | Fonte di memoria per questo agente |188| `memory` | `'user' \| 'project' \| 'local'` | No | Fonte di memoria per questo agente |

189| `mcpServers` | `(string \| object)[]` | No | Server MCP disponibili per questo agente, per nome o configurazione inline |189| `mcpServers` | `(string \| object)[]` | No | Server MCP disponibili per questo agente, per nome o configurazione inline |

190| `initialPrompt` | `string` | No | Inviato automaticamente come primo turno utente quando questo agente viene eseguito come agente del thread principale. Ignorato quando l'agente viene richiamato come subagente |

190| `maxTurns` | `number` | No | Numero massimo di turni agentici prima che l'agente si fermi |191| `maxTurns` | `number` | No | Numero massimo di turni agentici prima che l'agente si fermi |

191| `background` | `boolean` | No | Esegui questo agente come attività di background non bloccante quando richiamato |192| `background` | `boolean` | No | Esegui questo agente come attività di background non bloccante quando richiamato |

192| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max' \| number` | No | Livello di sforzo di ragionamento per questo agente |193| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max' \| number` | No | Livello di sforzo di ragionamento per questo agente |


195Nell'SDK Python, questi nomi di campo utilizzano camelCase per corrispondere al formato wire. Vedi il riferimento [`AgentDefinition`](/it/agent-sdk/python#agentdefinition) per i dettagli.196Nell'SDK Python, questi nomi di campo utilizzano camelCase per corrispondere al formato wire. Vedi il riferimento [`AgentDefinition`](/it/agent-sdk/python#agentdefinition) per i dettagli.

196 197 

197<Note>198<Note>

198 I subagenti non possono generare i propri subagenti. Non includere `Agent` nell'array `tools` di un subagente.199 {/* min-version: 2.1.172 */}A partire da Claude Code v2.1.172, i subagenti possono generare i propri subagenti. Un subagente di background cinque livelli al di sotto dell'agente principale non può generare ulteriori subagenti; i subagenti in primo piano possono generare a qualsiasi profondità. Per impedire a un subagente di generare altri, ometti `Agent` dal suo array `tools` o aggiungilo a `disallowedTools`. Vedi [subagenti annidati](/it/sub-agents#spawn-nested-subagents) per le regole di profondità complete.

199</Note>200</Note>

200 201 

201<h3 id="filesystem-based-definition-alternative">202<h3 id="filesystem-based-definition-alternative">


215La finestra di contesto di un subagente inizia da zero (nessuna conversazione genitore) ma non è vuota. L'unico canale dal genitore al subagente è la stringa di prompt dello strumento Agent, quindi includi direttamente nel prompt qualsiasi percorso di file, messaggio di errore o decisione di cui il subagente ha bisogno.216La finestra di contesto di un subagente inizia da zero (nessuna conversazione genitore) ma non è vuota. L'unico canale dal genitore al subagente è la stringa di prompt dello strumento Agent, quindi includi direttamente nel prompt qualsiasi percorso di file, messaggio di errore o decisione di cui il subagente ha bisogno.

216 217 

217| Il subagente riceve | Il subagente non riceve |218| Il subagente riceve | Il subagente non riceve |

218| :------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------- |219| :----------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------- |

219| Il suo prompt di sistema (`AgentDefinition.prompt`) e il prompt dello strumento Agent | La cronologia della conversazione del genitore o i risultati degli strumenti |220| Il suo prompt di sistema (`AgentDefinition.prompt`) e il prompt dello strumento Agent | La cronologia della conversazione del genitore o i risultati degli strumenti |

220| CLAUDE.md del progetto (caricato tramite `settingSources`) | Contenuto di skill precaricato, a meno che non sia elencato in `AgentDefinition.skills` |221| CLAUDE.md del progetto (caricato tramite [`settingSources`](/it/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources)) | Contenuto di skill precaricato, a meno che non sia elencato in `AgentDefinition.skills` |

221| Definizioni degli strumenti (ereditate dal genitore, o il sottoinsieme in `tools`) | Il prompt di sistema del genitore |222| Definizioni degli strumenti (ereditate dal genitore, o il sottoinsieme in `tools`) | Il prompt di sistema del genitore |

222 223 

223<Note>224<Note>


336 Il nome dello strumento è stato rinominato da `"Task"` a `"Agent"` in Claude Code v2.1.63. Le versioni attuali dell'SDK emettono `"Agent"` nei blocchi `tool_use` ma utilizzano ancora `"Task"` nell'elenco degli strumenti `system:init` e in `result.permission_denials[].tool_name`. Controllare entrambi i valori in `block.name` garantisce la compatibilità tra le versioni dell'SDK.337 Il nome dello strumento è stato rinominato da `"Task"` a `"Agent"` in Claude Code v2.1.63. Le versioni attuali dell'SDK emettono `"Agent"` nei blocchi `tool_use` ma utilizzano ancora `"Task"` nell'elenco degli strumenti `system:init` e in `result.permission_denials[].tool_name`. Controllare entrambi i valori in `block.name` garantisce la compatibilità tra le versioni dell'SDK.

337</Note>338</Note>

338 339 

339Questo esempio itera attraverso i messaggi trasmessi, registrando quando un subagente viene richiamato e quando i messaggi successivi provengono dal contesto di esecuzione di quel subagente.340La struttura del messaggio differisce tra gli SDK. In Python, i blocchi di contenuto sono accessibili direttamente tramite `message.content`. In TypeScript, `SDKAssistantMessage` avvolge il messaggio dell'API Claude, quindi il contenuto è accessibile tramite `message.message.content`.

340 341 

341<Note>342Questo esempio itera attraverso i messaggi trasmessi, registrando quando un subagente viene richiamato e quando i messaggi successivi provengono dal contesto di esecuzione di quel subagente.

342 La struttura del messaggio differisce tra gli SDK. In Python, i blocchi di contenuto sono accessibili direttamente tramite `message.content`. In TypeScript, `SDKAssistantMessage` avvolge il messaggio dell'API Claude, quindi il contenuto è accessibile tramite `message.message.content`.

343</Note>

344 343 

345<CodeGroup>344<CodeGroup>

346 ```python Python theme={null}345 ```python Python theme={null}


427 426 

428I subagenti possono essere ripresi per continuare da dove si erano fermati. I subagenti ripresi mantengono la loro cronologia di conversazione completa, incluse tutte le chiamate agli strumenti precedenti, i risultati e il ragionamento. Il subagente riprende esattamente da dove si era fermato piuttosto che iniziare da zero.427I subagenti possono essere ripresi per continuare da dove si erano fermati. I subagenti ripresi mantengono la loro cronologia di conversazione completa, incluse tutte le chiamate agli strumenti precedenti, i risultati e il ragionamento. Il subagente riprende esattamente da dove si era fermato piuttosto che iniziare da zero.

429 428 

430Quando un subagente si completa, Claude riceve il suo ID agente nel risultato dello strumento Agent. Per riprendere un subagente a livello di programmazione:429Quando un subagente si completa, il risultato dello strumento Agent include un blocco di testo contenente `agentId: <id>`. Gli agenti integrati [`Explore` e `Plan`](/it/sub-agents#built-in-subagents) sono monouso e non restituiscono un `agentId`, quindi utilizzare un agente personalizzato o `general-purpose` quando è necessario riprendere. Per riprendere un subagente a livello di programmazione:

431 430 

4321. **Cattura l'ID della sessione**: Estrai `session_id` dai messaggi durante la prima query4311. **Cattura l'ID della sessione**: Estrai `session_id` dai messaggi durante la prima query

4332. **Estrai l'ID dell'agente**: Analizza `agentId` dal contenuto del messaggio4322. **Estrai l'ID dell'agente**: Analizza `agentId` dal testo del risultato dello strumento Agent

4343. **Riprendi la sessione**: Passa `resume: sessionId` nelle opzioni della seconda query e includi l'ID dell'agente nel tuo prompt4333. **Riprendi la sessione**: Passa `resume: sessionId` nelle opzioni della seconda query e includi l'ID dell'agente nel tuo prompt

435 434 

436<Note>435<Note>

437 Devi riprendere la stessa sessione per accedere alla trascrizione del subagente. Ogni chiamata `query()` avvia una nuova sessione per impostazione predefinita, quindi passa `resume: sessionId` per continuare nella stessa sessione.436 Devi riprendere la stessa sessione per accedere alla trascrizione del subagente. Ogni chiamata `query()` avvia una nuova sessione per impostazione predefinita, quindi passa `resume: sessionId` per continuare nella stessa sessione.

438 437 

439 Se stai utilizzando un agente personalizzato (non uno integrato), devi anche passare la stessa definizione di agente nel parametro `agents` per entrambe le query.438 Quando utilizzi un agente personalizzato, passa la stessa definizione di agente nel parametro `agents` per entrambe le query.

440</Note>439</Note>

441 440 

442L'esempio seguente dimostra questo flusso: la prima query esegue un subagente e cattura l'ID della sessione e l'ID dell'agente, quindi la seconda query riprende la sessione per porre una domanda di follow-up che richiede il contesto della prima analisi.441L'esempio seguente definisce un agente personalizzato `endpoint-finder`. La prima query lo esegue e cattura l'ID della sessione e l'ID dell'agente dal risultato dello strumento Agent, quindi la seconda query riprende la sessione per porre una domanda di follow-up che richiede il contesto della prima analisi.

443 442 

444<CodeGroup>443<CodeGroup>

445 ```typescript TypeScript theme={null}

446 import { query, type SDKMessage } from "@anthropic-ai/claude-agent-sdk";

447 

448 // Helper to extract agentId from message content

449 // Stringify to avoid traversing different block types (TextBlock, ToolResultBlock, etc.)

450 function extractAgentId(message: SDKMessage): string | undefined {

451 if (message.type !== "assistant" && message.type !== "user") return undefined;

452 // Stringify the content so we can search it without traversing nested blocks

453 const content = JSON.stringify(message.message.content);

454 const match = content.match(/agentId:\s*([a-f0-9-]+)/);

455 return match?.[1];

456 }

457 

458 let agentId: string | undefined;

459 let sessionId: string | undefined;

460 

461 // First invocation - use the Explore agent to find API endpoints

462 for await (const message of query({

463 prompt: "Use the Explore agent to find all API endpoints in this codebase",

464 options: { allowedTools: ["Read", "Grep", "Glob", "Agent"] }

465 })) {

466 // Capture session_id from ResultMessage (needed to resume this session)

467 if ("session_id" in message) sessionId = message.session_id;

468 // Search message content for the agentId (appears in Agent tool results)

469 const extractedId = extractAgentId(message);

470 if (extractedId) agentId = extractedId;

471 // Print the final result

472 if ("result" in message) console.log(message.result);

473 }

474 

475 // Second invocation - resume and ask follow-up

476 if (agentId && sessionId) {

477 for await (const message of query({

478 prompt: `Resume agent ${agentId} and list the top 3 most complex endpoints`,

479 options: { allowedTools: ["Read", "Grep", "Glob", "Agent"], resume: sessionId }

480 })) {

481 if ("result" in message) console.log(message.result);

482 }

483 }

484 ```

485 

486 ```python Python theme={null}444 ```python Python theme={null}

487 import asyncio445 import asyncio

488 import json

489 import re446 import re

490 from claude_agent_sdk import query, ClaudeAgentOptions447 from claude_agent_sdk import query, ClaudeAgentOptions, AgentDefinition, ToolResultBlock

448 

449 AGENTS = {

450 "endpoint-finder": AgentDefinition(

451 description="Locates and catalogs API endpoints in a codebase.",

452 prompt="You find and document API endpoints. Report each endpoint's path, method, and handler.",

453 tools=["Read", "Grep", "Glob"],

454 )

455 }

491 456 

492 457 

493 def extract_agent_id(text: str) -> str | None:458 def extract_agent_id(block: ToolResultBlock) -> str | None:

494 """Extract agentId from Agent tool result text."""459 """Extract agentId from an Agent tool result's text content."""

495 match = re.search(r"agentId:\s*([a-f0-9-]+)", text)460 parts = block.content if isinstance(block.content, list) else [{"text": block.content}]

496 return match.group(1) if match else None461 for part in parts:

462 if match := re.search(r"agentId:\s*([\w-]+)", part.get("text") or ""):

463 return match.group(1)

464 return None

497 465 

498 466 

499 async def main():467 async def main():

500 agent_id = None468 agent_id = None

501 session_id = None469 session_id = None

502 470 

503 # First invocation - use the Explore agent to find API endpoints471 # First invocation - run the endpoint-finder subagent

504 async for message in query(472 async for message in query(

505 prompt="Use the Explore agent to find all API endpoints in this codebase",473 prompt="Use the endpoint-finder agent to find all API endpoints in this codebase",

506 options=ClaudeAgentOptions(allowed_tools=["Read", "Grep", "Glob", "Agent"]),474 options=ClaudeAgentOptions(allowed_tools=["Read", "Grep", "Glob", "Agent"], agents=AGENTS),

507 ):475 ):

508 # Capture session_id from ResultMessage (needed to resume this session)476 # Capture session_id from ResultMessage (needed to resume this session)

509 if hasattr(message, "session_id"):477 if hasattr(message, "session_id"):

510 session_id = message.session_id478 session_id = message.session_id

511 # Search message content for the agentId (appears in Agent tool results)479 # Search tool results for the agentId trailer

512 if hasattr(message, "content"):480 for block in getattr(message, "content", None) or []:

513 # Stringify the content so we can search it without traversing nested blocks481 if isinstance(block, ToolResultBlock):

514 content_str = json.dumps(message.content, default=str)482 agent_id = extract_agent_id(block) or agent_id

515 extracted = extract_agent_id(content_str)

516 if extracted:

517 agent_id = extracted

518 # Print the final result483 # Print the final result

519 if hasattr(message, "result"):484 if hasattr(message, "result"):

520 print(message.result)485 print(message.result)


524 async for message in query(489 async for message in query(

525 prompt=f"Resume agent {agent_id} and list the top 3 most complex endpoints",490 prompt=f"Resume agent {agent_id} and list the top 3 most complex endpoints",

526 options=ClaudeAgentOptions(491 options=ClaudeAgentOptions(

527 allowed_tools=["Read", "Grep", "Glob", "Agent"], resume=session_id492 allowed_tools=["Read", "Grep", "Glob", "Agent"], agents=AGENTS, resume=session_id

528 ),493 ),

529 ):494 ):

530 if hasattr(message, "result"):495 if hasattr(message, "result"):


533 498 

534 asyncio.run(main())499 asyncio.run(main())

535 ```500 ```

501 

502 ```typescript TypeScript theme={null}

503 import { query, type SDKMessage } from "@anthropic-ai/claude-agent-sdk";

504 

505 const agents = {

506 "endpoint-finder": {

507 description: "Locates and catalogs API endpoints in a codebase.",

508 prompt: "You find and document API endpoints. Report each endpoint's path, method, and handler.",

509 tools: ["Read", "Grep", "Glob"]

510 }

511 };

512 

513 // Stringify content to search for agentId without traversing nested block types

514 function extractAgentId(message: SDKMessage): string | undefined {

515 if (message.type !== "assistant" && message.type !== "user") return undefined;

516 const content = JSON.stringify(message.message.content);

517 const match = content.match(/agentId:\s*([\w-]+)/);

518 return match?.[1];

519 }

520 

521 let agentId: string | undefined;

522 let sessionId: string | undefined;

523 

524 // First invocation - run the endpoint-finder subagent

525 for await (const message of query({

526 prompt: "Use the endpoint-finder agent to find all API endpoints in this codebase",

527 options: { allowedTools: ["Read", "Grep", "Glob", "Agent"], agents }

528 })) {

529 // Capture session_id from ResultMessage (needed to resume this session)

530 if ("session_id" in message) sessionId = message.session_id;

531 // Search message content for the agentId (appears in Agent tool results)

532 const extractedId = extractAgentId(message);

533 if (extractedId) agentId = extractedId;

534 // Print the final result

535 if ("result" in message) console.log(message.result);

536 }

537 

538 // Second invocation - resume and ask follow-up

539 if (agentId && sessionId) {

540 for await (const message of query({

541 prompt: `Resume agent ${agentId} and list the top 3 most complex endpoints`,

542 options: { allowedTools: ["Read", "Grep", "Glob", "Agent"], agents, resume: sessionId }

543 })) {

544 if ("result" in message) console.log(message.result);

545 }

546 }

547 ```

536</CodeGroup>548</CodeGroup>

537 549 

538Le trascrizioni dei subagenti persistono indipendentemente dalla conversazione principale:550Le trascrizioni dei subagenti persistono indipendentemente dalla conversazione principale:


541* **Persistenza della sessione**: Le trascrizioni dei subagenti persistono all'interno della loro sessione. Puoi riprendere un subagente dopo il riavvio di Claude Code riprendendo la stessa sessione.553* **Persistenza della sessione**: Le trascrizioni dei subagenti persistono all'interno della loro sessione. Puoi riprendere un subagente dopo il riavvio di Claude Code riprendendo la stessa sessione.

542* **Pulizia automatica**: Le trascrizioni vengono pulite in base all'impostazione `cleanupPeriodDays` (predefinito: 30 giorni).554* **Pulizia automatica**: Le trascrizioni vengono pulite in base all'impostazione `cleanupPeriodDays` (predefinito: 30 giorni).

543 555 

544<h2 id="tool-restrictions">556<h2 id="tool-restrictions-1">

545 Restrizioni degli strumenti557 Restrizioni degli strumenti

546</h2>558</h2>

547 559 

Details

217| Forma dell'elemento: `{ content, status, activeForm }` | Input `TaskCreate`: `{ subject, description, activeForm?, metadata? }`. Input `TaskUpdate`: `{ taskId, status?, subject?, description?, activeForm?, addBlocks?, addBlockedBy?, owner?, metadata? }`. `status` è `"pending"`, `"in_progress"` o `"completed"`; impostare `status: "deleted"` per eliminare |217| Forma dell'elemento: `{ content, status, activeForm }` | Input `TaskCreate`: `{ subject, description, activeForm?, metadata? }`. Input `TaskUpdate`: `{ taskId, status?, subject?, description?, activeForm?, addBlocks?, addBlockedBy?, owner?, metadata? }`. `status` è `"pending"`, `"in_progress"` o `"completed"`; impostare `status: "deleted"` per eliminare |

218| Renderizza `block.input.todos` direttamente | Accumula elementi tra le chiamate, o leggi uno snapshot da un risultato dello strumento `TaskList` |218| Renderizza `block.input.todos` direttamente | Accumula elementi tra le chiamate, o leggi uno snapshot da un risultato dello strumento `TaskList` |

219 219 

220L'ID attività assegnato non è nell'input `TaskCreate`. Ritorna nel `tool_result` corrispondente come `{ task: { id, subject } }`, quindi acquisiscilo dal blocco del risultato per inserire la chiave nella mappa. L'esempio seguente mostra il cambio minimo al ciclo [Monitoraggio dei cambiamenti dei Todo](#monitoring-todo-changes). Per renderizzare un elenco completo, guarda un risultato dello strumento `TaskList` nel flusso o accumula i risultati `TaskCreate` e gli input `TaskUpdate` in una mappa:220L'ID attività assegnato non è nell'input `TaskCreate`. Ritorna nel `tool_result` corrispondente come `{ task: { id, subject } }`, quindi acquisiscilo dal blocco del risultato per inserire la chiave nella mappa. L'esempio seguente mostra il cambio minimo al ciclo [Monitoraggio dei cambiamenti dei Todo](#monitoring-todo-changes). Per renderizzare un elenco completo, guarda un risultato dello strumento `TaskList` nel flusso o accumula i risultati `TaskCreate` e gli input `TaskUpdate` in una mappa.

221 

222L'input `tool_use` trasmesso è la forma grezza che il modello ha emesso. Claude Code ripara alcuni nomi di chiave quasi corretti ma non del tutto prima dell'esecuzione, mappando `id` o `task_id` a `taskId` e `active_form` a `activeForm`, ma questa riparazione non si riflette nel flusso. Leggi i campi di input `TaskUpdate` in modo difensivo, come fanno gli esempi seguenti, piuttosto che assumere che il nome canonico sia sempre presente.

221 223 

222<CodeGroup>224<CodeGroup>

223 ```typescript TypeScript theme={null}225 ```typescript TypeScript theme={null}


233 const input = block.input as { subject: string };235 const input = block.input as { subject: string };

234 console.log(`+ ${input.subject}`);236 console.log(`+ ${input.subject}`);

235 } else if (block.name === "TaskUpdate") {237 } else if (block.name === "TaskUpdate") {

236 const input = block.input as { taskId: string; status?: string };238 const input = block.input as {

237 if (input.status) console.log(` ${input.taskId} -> ${input.status}`);239 taskId?: string;

240 id?: string;

241 task_id?: string;

242 status?: string;

243 };

244 const taskId = input.taskId ?? input.id ?? input.task_id;

245 if (taskId && input.status) console.log(` ${taskId} -> ${input.status}`);

238 }246 }

239 }247 }

240 }248 }


254 if block.name == "TaskCreate":262 if block.name == "TaskCreate":

255 print(f"+ {block.input['subject']}")263 print(f"+ {block.input['subject']}")

256 elif block.name == "TaskUpdate" and block.input.get("status"):264 elif block.name == "TaskUpdate" and block.input.get("status"):

257 print(f" {block.input['taskId']} -> {block.input['status']}")265 task_id = (

266 block.input.get("taskId")

267 or block.input.get("id")

268 or block.input.get("task_id")

269 )

270 if task_id:

271 print(f" {task_id} -> {block.input['status']}")

258 ```272 ```

259</CodeGroup>273</CodeGroup>

260 274 

Details

100}): Promise<WarmQuery>;100}): Promise<WarmQuery>;

101```101```

102 102 

103<h4 id="parameters">103<h4 id="parameters-1">

104 Parametri104 Parametri

105</h4>105</h4>

106 106 


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

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

111 111 

112<h4 id="returns">112<h4 id="returns-1">

113 Restituisce113 Restituisce

114</h4>114</h4>

115 115 


149): SdkMcpToolDefinition<Schema>;149): SdkMcpToolDefinition<Schema>;

150```150```

151 151 

152<h4 id="parameters">152<h4 id="parameters-2">

153 Parametri153 Parametri

154</h4>154</h4>

155 155 


204}): McpSdkServerConfigWithInstance;204}): McpSdkServerConfigWithInstance;

205```205```

206 206 

207<h4 id="parameters">207<h4 id="parameters-3">

208 Parametri208 Parametri

209</h4>209</h4>

210 210 


224function listSessions(options?: ListSessionsOptions): Promise<SDKSessionInfo[]>;224function listSessions(options?: ListSessionsOptions): Promise<SDKSessionInfo[]>;

225```225```

226 226 

227<h4 id="parameters">227<h4 id="parameters-4">

228 Parametri228 Parametri

229</h4>229</h4>

230 230 


251| `tag` | `string \| undefined` | Tag della sessione impostato dall'utente (vedi [`tagSession()`](#tagsession)) |251| `tag` | `string \| undefined` | Tag della sessione impostato dall'utente (vedi [`tagSession()`](#tagsession)) |

252| `createdAt` | `number \| undefined` | Ora di creazione in millisecondi dall'epoca, dal timestamp della prima voce |252| `createdAt` | `number \| undefined` | Ora di creazione in millisecondi dall'epoca, dal timestamp della prima voce |

253 253 

254<h4 id="example">254<h4 id="example-1">

255 Esempio255 Esempio

256</h4>256</h4>

257 257 


280): Promise<SessionMessage[]>;280): Promise<SessionMessage[]>;

281```281```

282 282 

283<h4 id="parameters">283<h4 id="parameters-5">

284 Parametri284 Parametri

285</h4>285</h4>

286 286 


303| `message` | `unknown` | Payload del messaggio grezzo dalla trascrizione |303| `message` | `unknown` | Payload del messaggio grezzo dalla trascrizione |

304| `parent_tool_use_id` | `string \| null` | Per i messaggi dei subagent, l'`tool_use_id` della chiamata del tool `Agent` che lo ha generato. `null` per i messaggi della sessione principale e le sessioni precedenti |304| `parent_tool_use_id` | `string \| null` | Per i messaggi dei subagent, l'`tool_use_id` della chiamata del tool `Agent` che lo ha generato. `null` per i messaggi della sessione principale e le sessioni precedenti |

305 305 

306<h4 id="example">306<h4 id="example-2">

307 Esempio307 Esempio

308</h4>308</h4>

309 309 


337): Promise<SDKSessionInfo | undefined>;337): Promise<SDKSessionInfo | undefined>;

338```338```

339 339 

340<h4 id="parameters">340<h4 id="parameters-6">

341 Parametri341 Parametri

342</h4>342</h4>

343 343 


362): Promise<void>;362): Promise<void>;

363```363```

364 364 

365<h4 id="parameters">365<h4 id="parameters-7">

366 Parametri366 Parametri

367</h4>367</h4>

368 368 


386): Promise<void>;386): Promise<void>;

387```387```

388 388 

389<h4 id="parameters">389<h4 id="parameters-8">

390 Parametri390 Parametri

391</h4>391</h4>

392 392 


412): Promise<ResolvedSettings>;412): Promise<ResolvedSettings>;

413```413```

414 414 

415<h4 id="parameters">415<h4 id="parameters-9">

416 Parametri416 Parametri

417</h4>417</h4>

418 418 


437| `provenance` | `Partial<Record<keyof Settings, ProvenanceEntry>>` | Per ogni chiave di primo livello in `effective`, quale fonte ha fornito il valore |437| `provenance` | `Partial<Record<keyof Settings, ProvenanceEntry>>` | Per ogni chiave di primo livello in `effective`, quale fonte ha fornito il valore |

438| `sources` | `Array<{ source, settings, path?, policyOrigin? }>` | Impostazioni grezze per fonte, ordinate dalla precedenza più bassa a quella più alta |438| `sources` | `Array<{ source, settings, path?, policyOrigin? }>` | Impostazioni grezze per fonte, ordinate dalla precedenza più bassa a quella più alta |

439 439 

440<h4 id="example">440<h4 id="example-3">

441 Esempio441 Esempio

442</h4>442</h4>

443 443 


481| `debug` | `boolean` | `false` | Abilita la modalità debug per il processo Claude Code |481| `debug` | `boolean` | `false` | Abilita la modalità debug per il processo Claude Code |

482| `debugFile` | `string` | `undefined` | Scrivi i log di debug in un percorso di file specifico. Abilita implicitamente la modalità debug |482| `debugFile` | `string` | `undefined` | Scrivi i log di debug in un percorso di file specifico. Abilita implicitamente la modalità debug |

483| `disallowedTools` | `string[]` | `[]` | Tool da negare. Un nome semplice come `"Bash"` rimuove il tool dal contesto di Claude. Una regola con ambito come `"Bash(rm *)"` lascia il tool disponibile e nega le chiamate corrispondenti in ogni modalità di permesso, incluso `bypassPermissions`. Vedi [Permessi](/it/agent-sdk/permissions#allow-and-deny-rules) |483| `disallowedTools` | `string[]` | `[]` | Tool da negare. Un nome semplice come `"Bash"` rimuove il tool dal contesto di Claude. Una regola con ambito come `"Bash(rm *)"` lascia il tool disponibile e nega le chiamate corrispondenti in ogni modalità di permesso, incluso `bypassPermissions`. Vedi [Permessi](/it/agent-sdk/permissions#allow-and-deny-rules) |

484| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max'` | `'high'` | Controlla quanto sforzo Claude mette nella sua risposta. Funziona con il pensiero adattivo per guidare la profondità del pensiero |484| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max'` | Predefinito del modello | Controlla quanto sforzo Claude mette nella sua risposta. Funziona con il pensiero adattivo per guidare la profondità del pensiero. Vedi [regola il livello di sforzo](/it/model-config#adjust-effort-level) |

485| `enableFileCheckpointing` | `boolean` | `false` | Abilita il tracciamento dei cambiamenti di file per il rewind. Vedi [File checkpointing](/it/agent-sdk/file-checkpointing) |485| `enableFileCheckpointing` | `boolean` | `false` | Abilita il tracciamento dei cambiamenti di file per il rewind. Vedi [File checkpointing](/it/agent-sdk/file-checkpointing) |

486| `env` | `Record<string, string \| undefined>` | `process.env` | Variabili di ambiente. Quando impostato, questo sostituisce l'ambiente del subprocess invece di unirsi a `process.env`, quindi passa `{ ...process.env, YOUR_VAR: 'value' }` per mantenere le variabili ereditate come `PATH`. Vedi [Gestisci risposte API lente o bloccate](#handle-slow-or-stalled-api-responses) per un esempio di questo modello, e [Variabili di ambiente](/it/env-vars) per le variabili che la CLI sottostante legge. Imposta `CLAUDE_AGENT_SDK_CLIENT_APP` per identificare la tua app nell'intestazione User-Agent |486| `env` | `Record<string, string \| undefined>` | `process.env` | Variabili di ambiente. Quando impostato, questo sostituisce l'ambiente del subprocess invece di unirsi a `process.env`, quindi passa `{ ...process.env, YOUR_VAR: 'value' }` per mantenere le variabili ereditate come `PATH`. Vedi [Gestisci risposte API lente o bloccate](#handle-slow-or-stalled-api-responses) per un esempio di questo modello, e [Variabili di ambiente](/it/env-vars) per le variabili che la CLI sottostante legge. Imposta `CLAUDE_AGENT_SDK_CLIENT_APP` per identificare la tua app nell'intestazione User-Agent |

487| `executable` | `'bun' \| 'deno' \| 'node'` | Auto-rilevato | Runtime JavaScript da usare |487| `executable` | `'bun' \| 'deno' \| 'node'` | Auto-rilevato | Runtime JavaScript da usare |


499| `maxThinkingTokens` | `number` | `undefined` | *Deprecato:* Usa `thinking` invece. Token massimi per il processo di pensiero |499| `maxThinkingTokens` | `number` | `undefined` | *Deprecato:* Usa `thinking` invece. Token massimi per il processo di pensiero |

500| `maxTurns` | `number` | `undefined` | Turni agentici massimi (round trip di uso dei tool) |500| `maxTurns` | `number` | `undefined` | Turni agentici massimi (round trip di uso dei tool) |

501| `mcpServers` | `Record<string, [`McpServerConfig`](#mcpserverconfig)>` | `{}` | Configurazioni del server MCP |501| `mcpServers` | `Record<string, [`McpServerConfig`](#mcpserverconfig)>` | `{}` | Configurazioni del server MCP |

502| `model` | `string` | Predefinito da CLI | Modello Claude da usare |502| `model` | `string` | Predefinito da CLI | Alias del modello Claude o nome completo del modello. Vedi [valori accettati e ID specifici del provider](/it/model-config#available-models) |

503| `onElicitation` | `(request: ElicitationRequest, options: { signal: AbortSignal }) => Promise<ElicitationResult>` | `undefined` | Callback per gestire le richieste di elicitazione MCP. Chiamato quando un server MCP richiede input dell'utente e nessun hook lo gestisce per primo. Se non fornito, le richieste di elicitazione non gestite vengono rifiutate automaticamente |503| `onElicitation` | `(request: ElicitationRequest, options: { signal: AbortSignal }) => Promise<ElicitationResult>` | `undefined` | Callback per gestire le richieste di elicitazione MCP. Chiamato quando un server MCP richiede input dell'utente e nessun hook lo gestisce per primo. Se non fornito, le richieste di elicitazione non gestite vengono rifiutate automaticamente |

504| `outputFormat` | `{ type: 'json_schema', schema: JSONSchema }` | `undefined` | Definisci il formato di output per i risultati dell'agente. Vedi [Output strutturati](/it/agent-sdk/structured-outputs) per i dettagli |504| `outputFormat` | `{ type: 'json_schema', schema: JSONSchema }` | `undefined` | Definisci il formato di output per i risultati dell'agente. Vedi [Output strutturati](/it/agent-sdk/structured-outputs) per i dettagli |

505| `outputStyle` | `string` | `undefined` | Non è un campo `Options`. Imposta `outputStyle` nell'oggetto [`settings`](/it/settings) inline o in un file di impostazioni. Vedi [Attiva uno stile di output](/it/agent-sdk/modifying-system-prompts#activate-an-output-style) |505| `outputStyle` | `string` | `undefined` | Non è un campo `Options`. Imposta `outputStyle` nell'oggetto [`settings`](/it/settings) inline o in un file di impostazioni. Vedi [Attiva uno stile di output](/it/agent-sdk/modifying-system-prompts#activate-an-output-style) |


553* `API_TIMEOUT_MS`: timeout per richiesta sul client Anthropic, in millisecondi. Predefinito `600000`. Si applica al loop principale e a tutti i subagenti.553* `API_TIMEOUT_MS`: timeout per richiesta sul client Anthropic, in millisecondi. Predefinito `600000`. Si applica al loop principale e a tutti i subagenti.

554* `CLAUDE_CODE_MAX_RETRIES`: numero massimo di tentativi API. Predefinito `10`. Ogni tentativo ottiene la propria finestra `API_TIMEOUT_MS`, quindi il tempo wall case peggiore è approssimativamente `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` più backoff.554* `CLAUDE_CODE_MAX_RETRIES`: numero massimo di tentativi API. Predefinito `10`. Ogni tentativo ottiene la propria finestra `API_TIMEOUT_MS`, quindi il tempo wall case peggiore è approssimativamente `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` più backoff.

555* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: watchdog di blocco per i subagenti lanciati con `run_in_background`. Predefinito `600000`. Si ripristina su ogni evento di stream; al blocco interrompe il subagente, contrassegna l'attività come fallita e presenta l'errore al genitore con qualsiasi risultato parziale. Non si applica ai subagenti sincroni.555* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: watchdog di blocco per i subagenti lanciati con `run_in_background`. Predefinito `600000`. Si ripristina su ogni evento di stream; al blocco interrompe il subagente, contrassegna l'attività come fallita e presenta l'errore al genitore con qualsiasi risultato parziale. Non si applica ai subagenti sincroni.

556* `CLAUDE_ENABLE_STREAM_WATCHDOG=1` con `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: interrompe la richiesta quando le intestazioni sono arrivate ma il corpo della risposta smette di trasmettere. Disattivato per impostazione predefinita. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` predefinito a `300000` ed è limitato a quel minimo. La richiesta interrotta passa attraverso il percorso di tentativo normale.556* `CLAUDE_ENABLE_STREAM_WATCHDOG=1` con `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: interrompe la richiesta quando le intestazioni sono arrivate ma il corpo della risposta smette di trasmettere. Quando `CLAUDE_ENABLE_STREAM_WATCHDOG` non è impostato, il predefinito è controllato dal server sull'API Anthropic diretto e disattivato su altri provider. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` predefinito a `300000` ed è limitato a quel minimo. La richiesta interrotta passa attraverso il percorso di tentativo normale.

557 557 

558<h3 id="query-object">558<h3 id="query-object">

559 Oggetto `Query`559 Oggetto `Query`


658}658}

659```659```

660 660 

661<h4 id="methods">661<h4 id="methods-1">

662 Metodi662 Metodi

663</h4>663</h4>

664 664 


717```717```

718 718 

719| Campo | Obbligatorio | Descrizione |719| Campo | Obbligatorio | Descrizione |

720| :------------------------------------ | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |720| :------------------------------------ | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

721| `description` | Sì | Descrizione in linguaggio naturale di quando usare questo agente |721| `description` | Sì | Descrizione in linguaggio naturale di quando usare questo agente |

722| `tools` | No | Array di nomi di tool consentiti. Se omesso, eredita tutti i tool dal genitore. Per precaricare Skills nel contesto dell'agente, usa il campo `skills` piuttosto che elencando `'Skill'` qui |722| `tools` | No | Array di nomi di tool consentiti. Se omesso, eredita tutti i tool dal genitore. Per precaricare Skills nel contesto dell'agente, usa il campo `skills` piuttosto che elencando `'Skill'` qui |

723| `disallowedTools` | No | Array di nomi di tool da esplicitamente disabilitare per questo agente |723| `disallowedTools` | No | Array di nomi di tool da esplicitamente disabilitare per questo agente. Sono accettati anche i modelli a livello di server MCP: `mcp__server` o `mcp__server__*` rimuove ogni tool da quel server, e `mcp__*` rimuove ogni tool MCP da qualsiasi server |

724| `prompt` | Sì | Il prompt di sistema dell'agente |724| `prompt` | Sì | Il prompt di sistema dell'agente |

725| `model` | No | Override del modello per questo agente. Accetta un alias come `'sonnet'`, `'opus'`, `'haiku'`, `'inherit'`, o un ID modello completo. Se omesso o `'inherit'`, usa il modello principale |725| `model` | No | Override del modello per questo agente. Accetta un alias come `'fable'`, `'opus'`, `'sonnet'`, `'haiku'`, `'inherit'`, o un ID modello completo. Se omesso o `'inherit'`, usa il modello principale |

726| `mcpServers` | No | Specifiche del server MCP per questo agente |726| `mcpServers` | No | Specifiche del server MCP per questo agente |

727| `skills` | No | Array di nomi di skill da precaricare nel contesto dell'agente |727| `skills` | No | Array di nomi di skill da precaricare nel contesto dell'agente |

728| `initialPrompt` | No | Auto-inviato come il primo turno utente quando questo agente viene eseguito come agente del thread principale |728| `initialPrompt` | No | Auto-inviato come il primo turno utente quando questo agente viene eseguito come agente del thread principale |


756```756```

757 757 

758| Valore | Descrizione | Posizione |758| Valore | Descrizione | Posizione |

759| :---------- | :--------------------------------------------------------------- | :---------------------------- |759| :---------- | :---------------------------------------------------------------- | :---------------------------- |

760| `'user'` | Impostazioni globali dell'utente | `~/.claude/settings.json` |760| `'user'` | Impostazioni globali dell'utente | `~/.claude/settings.json` |

761| `'project'` | Impostazioni del progetto condivise (controllate dalla versione) | `.claude/settings.json` |761| `'project'` | Impostazioni del progetto condivise (controllate dalla versione) | `.claude/settings.json` |

762| `'local'` | Impostazioni del progetto locale (gitignorate) | `.claude/settings.local.json` |762| `'local'` | Impostazioni del progetto locale (non controllate dalla versione) | `.claude/settings.local.json` |

763 763 

764<h4 id="default-behavior">764<h4 id="default-behavior">

765 Comportamento predefinito765 Comportamento predefinito


874type PermissionMode =874type PermissionMode =

875 | "default" // Comportamento di permesso standard875 | "default" // Comportamento di permesso standard

876 | "acceptEdits" // Auto-accetta le modifiche ai file876 | "acceptEdits" // Auto-accetta le modifiche ai file

877 | "bypassPermissions" // Bypass di tutti i controlli di permesso877 | "bypassPermissions" // Bypass di tutti i controlli di permesso; le regole di richiesta esplicita richiedono comunque

878 | "plan" // Modalità di pianificazione - solo tool di sola lettura878 | "plan" // Modalità di pianificazione - esplora senza modificare

879 | "dontAsk" // Non richiedere i permessi, nega se non pre-approvato879 | "dontAsk" // Non richiedere i permessi, nega se non pre-approvato

880 | "auto"; // Usa un classificatore di modello per approvare o negare ogni chiamata di tool880 | "auto"; // Usa un classificatore di modello per approvare o negare ogni chiamata di tool

881```881```


1035type SdkPluginConfig = {1035type SdkPluginConfig = {

1036 type: "local";1036 type: "local";

1037 path: string;1037 path: string;

1038 skipMcpDiscovery?: boolean;

1038};1039};

1039```1040```

1040 1041 

1041| Campo | Tipo | Descrizione |1042| Campo | Tipo | Descrizione |

1042| :----- | :-------- | :---------------------------------------------------------------- |1043| :----------------- | :-------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1043| `type` | `'local'` | Deve essere `'local'` (attualmente supportati solo plugin locali) |1044| `type` | `'local'` | Deve essere `'local'` (attualmente supportati solo plugin locali) |

1044| `path` | `string` | Percorso assoluto o relativo alla directory del plugin |1045| `path` | `string` | Percorso assoluto o relativo alla directory del plugin |

1046| `skipMcpDiscovery` | `boolean` | Quando `true`, l'SDK carica skills, hooks, agenti e comandi da questo plugin ma non legge il suo `.mcp.json` o il manifest `mcpServers`. Imposta questo quando la tua applicazione possiede le connessioni MCP del plugin. |

1045 1047 

1046**Esempio:**1048**Esempio:**

1047 1049 


1086 | SDKTaskProgressMessage1088 | SDKTaskProgressMessage

1087 | SDKTaskUpdatedMessage1089 | SDKTaskUpdatedMessage

1088 | SDKSessionStateChangedMessage1090 | SDKSessionStateChangedMessage

1091 | SDKWorkerShuttingDownMessage

1089 | SDKCommandsChangedMessage1092 | SDKCommandsChangedMessage

1090 | SDKNotificationMessage1093 | SDKNotificationMessage

1091 | SDKFilesPersistedEvent1094 | SDKFilesPersistedEvent


1096 | SDKPermissionDeniedMessage1099 | SDKPermissionDeniedMessage

1097 | SDKPromptSuggestionMessage1100 | SDKPromptSuggestionMessage

1098 | SDKAPIRetryMessage1101 | SDKAPIRetryMessage

1099 | SDKMirrorErrorMessage;1102 | SDKMirrorErrorMessage

1103 | SDKInformationalMessage;

1100```1104```

1101 1105 

1102<h3 id="sdkassistantmessage">1106<h3 id="sdkassistantmessage">


1183 result: string;1187 result: string;

1184 stop_reason: string | null;1188 stop_reason: string | null;

1185 ttft_ms?: number;1189 ttft_ms?: number;

1190 ttft_stream_ms?: number;

1186 total_cost_usd: number;1191 total_cost_usd: number;

1187 usage: NonNullableUsage;1192 usage: NonNullableUsage;

1188 modelUsage: { [modelName: string]: ModelUsage };1193 modelUsage: { [modelName: string]: ModelUsage };


1221Diversi campi sul risultato contengono dettagli diagnostici oltre a `subtype`:1226Diversi campi sul risultato contengono dettagli diagnostici oltre a `subtype`:

1222 1227 

1223* `api_error_status`: il codice di stato HTTP dell'errore API che ha terminato la conversazione. Assente o `null` quando il turno è terminato senza un errore API.1228* `api_error_status`: il codice di stato HTTP dell'errore API che ha terminato la conversazione. Assente o `null` quando il turno è terminato senza un errore API.

1224* `ttft_ms`: tempo al primo token in millisecondi. Presente solo sul ramo di successo.1229* `ttft_ms`: tempo al primo token in millisecondi, misurato quando arriva il primo messaggio dell'assistente completo. Presente solo sul ramo di successo.

1230* `ttft_stream_ms`: tempo in millisecondi fino al primo evento di flusso `message_start`, quando il flusso di risposta si apre. Inferiore a `ttft_ms`; il divario tra i due è il tempo impiegato per lo streaming del primo messaggio. Presente solo sul ramo di successo.

1225* `terminal_reason`: il motivo per cui il ciclo è terminato. Uno di `"completed"`, `"max_turns"`, `"tool_deferred"`, `"aborted_streaming"`, `"aborted_tools"`, `"hook_stopped"`, `"stop_hook_prevented"`, `"blocking_limit"`, `"rapid_refill_breaker"`, `"prompt_too_long"`, `"image_error"`, o `"model_error"`.1231* `terminal_reason`: il motivo per cui il ciclo è terminato. Uno di `"completed"`, `"max_turns"`, `"tool_deferred"`, `"aborted_streaming"`, `"aborted_tools"`, `"hook_stopped"`, `"stop_hook_prevented"`, `"blocking_limit"`, `"rapid_refill_breaker"`, `"prompt_too_long"`, `"image_error"`, o `"model_error"`.

1226* `fast_mode_state`: uno di `"on"`, `"off"`, o `"cooldown"`.1232* `fast_mode_state`: uno di `"on"`, `"off"`, o `"cooldown"`.

1227 1233 


1273 parent_tool_use_id: string | null;1279 parent_tool_use_id: string | null;

1274 uuid: UUID;1280 uuid: UUID;

1275 session_id: string;1281 session_id: string;

1282 ttft_ms?: number; // Tempo al primo token in ms, presente solo negli eventi message_start

1276};1283};

1277```1284```

1278 1285 


1295};1302};

1296```1303```

1297 1304 

1305<h3 id="sdkinformationalmessage">

1306 `SDKInformationalMessage`

1307</h3>

1308 

1309Banner di testo generico emesso dal ciclo. Contiene righe di stato non di errore, feedback di hook come il motivo del blocco di un hook `UserPromptSubmit`, e output di comando. Renderizza `content` come testo semplice al livello specificato.

1310 

1311```typescript theme={null}

1312type SDKInformationalMessage = {

1313 type: "system";

1314 subtype: "informational";

1315 content: string;

1316 level: "info" | "notice" | "suggestion" | "warning";

1317 tool_use_id?: string;

1318 prevent_continuation?: boolean;

1319 uuid: UUID;

1320 session_id: string;

1321};

1322```

1323 

1324<h3 id="sdkworkershuttingdownmessage">

1325 `SDKWorkerShuttingDownMessage`

1326</h3>

1327 

1328Emesso durante lo spegnimento elegante del worker in modo che i client remoti possano mostrare il motivo per cui il worker se n'è andato invece di aspettare il timeout del battito cardiaco. Il `reason` è una stringa breve in snake\_case impostata dalla CLI host, come `"host_exit"` o `"remote_control_disabled"`. Agisci su questo solo quando stai eseguendo lo streaming in diretta. Una sessione ripresa riproduce le istanze passate di questo messaggio, quindi ignorale in quel caso.

1329 

1330```typescript theme={null}

1331type SDKWorkerShuttingDownMessage = {

1332 type: "system";

1333 subtype: "worker_shutting_down";

1334 reason: string;

1335 uuid: UUID;

1336 session_id: string;

1337};

1338```

1339 

1298<h3 id="sdkplugininstallmessage">1340<h3 id="sdkplugininstallmessage">

1299 `SDKPluginInstallMessage`1341 `SDKPluginInstallMessage`

1300</h3>1342</h3>


1369type SDKMessageOrigin =1411type SDKMessageOrigin =

1370 | { kind: "human" }1412 | { kind: "human" }

1371 | { kind: "channel"; server: string }1413 | { kind: "channel"; server: string }

1372 | { kind: "peer"; from: string; name?: string }1414 | { kind: "peer"; from: string; name?: string; senderTaskId?: string }

1373 | { kind: "task-notification" }1415 | { kind: "task-notification" }

1374 | { kind: "coordinator" };1416 | { kind: "coordinator" }

1417 | { kind: "auto-continuation" };

1375```1418```

1376 1419 

1377| `kind` | Significato |1420| `kind` | Significato |

1378| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |1421| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1379| `human` | Input diretto dall'utente finale. Sui messaggi utente, un `origin` assente significa anche input umano. |1422| `human` | Input diretto dall'utente finale. Sui messaggi utente, un `origin` assente significa anche input umano. |

1380| `channel` | Messaggio in arrivo su un [canale](/it/channels). `server` è il nome del server MCP di origine. |1423| `channel` | Messaggio in arrivo su un [canale](/it/channels). `server` è il nome del server MCP di origine. |

1381| `peer` | Messaggio da un'altra sessione di agente tramite `SendMessage`. `from` è l'indirizzo del mittente; `name` è il nome visualizzato del mittente quando disponibile. |1424| `peer` | Riservato per messaggi da un'altra sessione di agente. `from` è l'indirizzo del mittente e `name` è il nome visualizzato del mittente quando disponibile. `senderTaskId` è l'ID dell'attività del subagente in-process in background che ha inviato il messaggio; assente per i peer tra sessioni. L'Agent SDK non emette questa origine; trattala come un'origine sconosciuta. |

1382| `task-notification` | Turno sintetico iniettato dopo il completamento di un'attività in background. Vedi [`SDKTaskNotificationMessage`](#sdktasknotificationmessage). |1425| `task-notification` | Turno sintetico iniettato dopo il completamento di un'attività in background. Vedi [`SDKTaskNotificationMessage`](#sdktasknotificationmessage). |

1383| `coordinator` | Messaggio da un coordinatore di team in un [team di agenti](/it/agent-teams). |1426| `coordinator` | Messaggio da un coordinatore di team in un [team di agenti](/it/agent-teams). |

1427| `auto-continuation` | Turno sintetico iniettato quando la sessione continua senza input utente fresco, come un risultato di comando che attiva un prompt di follow-up. |

1384 1428 

1385<h2 id="hook-types">1429<h2 id="hook-types">

1386 Tipi di hook1430 Tipi di hook


1712type TeammateIdleHookInput = BaseHookInput & {1756type TeammateIdleHookInput = BaseHookInput & {

1713 hook_event_name: "TeammateIdle";1757 hook_event_name: "TeammateIdle";

1714 teammate_name: string;1758 teammate_name: string;

1759 /** @deprecated da v2.1.178. Contiene il nome del team derivato dalla sessione; verrà rimosso. */

1715 team_name: string;1760 team_name: string;

1716};1761};

1717```1762```


1727 task_subject: string;1772 task_subject: string;

1728 task_description?: string;1773 task_description?: string;

1729 teammate_name?: string;1774 teammate_name?: string;

1775 /** @deprecated da v2.1.178. Contiene il nome del team derivato dalla sessione; verrà rimosso. */

1730 team_name?: string;1776 team_name?: string;

1731};1777};

1732```1778```


1934 description: string;1980 description: string;

1935 prompt: string;1981 prompt: string;

1936 subagent_type: string;1982 subagent_type: string;

1937 model?: "sonnet" | "opus" | "haiku";1983 model?: "sonnet" | "opus" | "haiku" | "fable";

1938 resume?: string;1984 resume?: string;

1939 run_in_background?: boolean;1985 run_in_background?: boolean;

1940 max_turns?: number;1986 max_turns?: number;

1941 name?: string;1987 name?: string;

1942 team_name?: string;

1943 mode?: "acceptEdits" | "bypassPermissions" | "default" | "dontAsk" | "plan";1988 mode?: "acceptEdits" | "bypassPermissions" | "default" | "dontAsk" | "plan";

1944 isolation?: "worktree";1989 isolation?: "worktree";

1945};1990};


2385 | WorkflowOutput;2430 | WorkflowOutput;

2386```2431```

2387 2432 

2388<h3 id="agent">2433<h3 id="agent-1">

2389 Agent2434 Agent

2390</h3>2435</h3>

2391 2436 


2397 status: "completed";2442 status: "completed";

2398 agentId: string;2443 agentId: string;

2399 content: Array<{ type: "text"; text: string }>;2444 content: Array<{ type: "text"; text: string }>;

2445 resolvedModel?: string;

2400 totalToolUseCount: number;2446 totalToolUseCount: number;

2401 totalDurationMs: number;2447 totalDurationMs: number;

2402 totalTokens: number;2448 totalTokens: number;


2421 status: "async_launched";2467 status: "async_launched";

2422 agentId: string;2468 agentId: string;

2423 description: string;2469 description: string;

2470 resolvedModel?: string;

2424 prompt: string;2471 prompt: string;

2425 outputFile: string;2472 outputFile: string;

2426 canReadOutputFile?: boolean;2473 canReadOutputFile?: boolean;


2434 2481 

2435Restituisce il risultato dal subagente. Discriminato sul campo `status`: `"completed"` per le attività finite, `"async_launched"` per le attività di background, e `"sub_agent_entered"` per i subagenti interattivi.2482Restituisce il risultato dal subagente. Discriminato sul campo `status`: `"completed"` per le attività finite, `"async_launched"` per le attività di background, e `"sub_agent_entered"` per i subagenti interattivi.

2436 2483 

2437<h3 id="askuserquestion">2484Il campo `resolvedModel` sulle varianti `completed` e `async_launched` nomina il modello su cui il subagente ha effettivamente eseguito, che può differire dal `model` input richiesto quando [`availableModels`](/it/model-config#restrict-model-selection) o un altro override si applica. {/* min-version: 2.1.174 */}Questo campo richiede Claude Code v2.1.174 o successivo.

2485 

2486<h3 id="askuserquestion-1">

2438 AskUserQuestion2487 AskUserQuestion

2439</h3>2488</h3>

2440 2489 


2455 2504 

2456Restituisce le domande poste e le risposte dell'utente. `response` viene impostato quando l'utente ha digitato una risposta in forma libera invece di rispondere alle domande strutturate; quando presente, Claude riceve "L'utente ha risposto: …" invece dell'elenco di risposte per domanda.2505Restituisce le domande poste e le risposte dell'utente. `response` viene impostato quando l'utente ha digitato una risposta in forma libera invece di rispondere alle domande strutturate; quando presente, Claude riceve "L'utente ha risposto: …" invece dell'elenco di risposte per domanda.

2457 2506 

2458<h3 id="bash">2507<h3 id="bash-1">

2459 Bash2508 Bash

2460</h3>2509</h3>

2461 2510 


2480 2529 

2481Restituisce l'output del comando con stdout/stderr divisi. I comandi di background includono un `backgroundTaskId`.2530Restituisce l'output del comando con stdout/stderr divisi. I comandi di background includono un `backgroundTaskId`.

2482 2531 

2483<h3 id="monitor">2532<h3 id="monitor-1">

2484 Monitor2533 Monitor

2485</h3>2534</h3>

2486 2535 


2496 2545 

2497Restituisce l'ID dell'attività di background per il monitor in esecuzione. Usa questo ID con `TaskStop` per annullare il watch in anticipo.2546Restituisce l'ID dell'attività di background per il monitor in esecuzione. Usa questo ID con `TaskStop` per annullare il watch in anticipo.

2498 2547 

2499<h3 id="edit">2548<h3 id="edit-1">

2500 Edit2549 Edit

2501</h3>2550</h3>

2502 2551 


2530 2579 

2531Restituisce il diff strutturato dell'operazione di modifica.2580Restituisce il diff strutturato dell'operazione di modifica.

2532 2581 

2533<h3 id="read">2582<h3 id="read-1">

2534 Read2583 Read

2535</h3>2584</h3>

2536 2585 


2590 2639 

2591Restituisce il contenuto del file in un formato appropriato al tipo di file. Discriminato sul campo `type`.2640Restituisce il contenuto del file in un formato appropriato al tipo di file. Discriminato sul campo `type`.

2592 2641 

2593<h3 id="write">2642<h3 id="write-1">

2594 Write2643 Write

2595</h3>2644</h3>

2596 2645 


2622 2671 

2623Restituisce il risultato della scrittura con informazioni sul diff strutturato.2672Restituisce il risultato della scrittura con informazioni sul diff strutturato.

2624 2673 

2625<h3 id="glob">2674<h3 id="glob-1">

2626 Glob2675 Glob

2627</h3>2676</h3>

2628 2677 


2639 2688 

2640Restituisce i percorsi dei file che corrispondono al pattern glob, ordinati per tempo di modifica.2689Restituisce i percorsi dei file che corrispondono al pattern glob, ordinati per tempo di modifica.

2641 2690 

2642<h3 id="grep">2691<h3 id="grep-1">

2643 Grep2692 Grep

2644</h3>2693</h3>

2645 2694 


2660 2709 

2661Restituisce i risultati della ricerca. La forma varia in base a `mode`: elenco di file, contenuto con corrispondenze o conteggi di corrispondenze.2710Restituisce i risultati della ricerca. La forma varia in base a `mode`: elenco di file, contenuto con corrispondenze o conteggi di corrispondenze.

2662 2711 

2663<h3 id="taskstop">2712<h3 id="taskstop-1">

2664 TaskStop2713 TaskStop

2665</h3>2714</h3>

2666 2715 


2677 2726 

2678Restituisce la conferma dopo l'interruzione dell'attività di background.2727Restituisce la conferma dopo l'interruzione dell'attività di background.

2679 2728 

2680<h3 id="notebookedit">2729<h3 id="notebookedit-1">

2681 NotebookEdit2730 NotebookEdit

2682</h3>2731</h3>

2683 2732 


2699 2748 

2700Restituisce il risultato della modifica del notebook con i contenuti del file originale e aggiornato.2749Restituisce il risultato della modifica del notebook con i contenuti del file originale e aggiornato.

2701 2750 

2702<h3 id="webfetch">2751<h3 id="webfetch-1">

2703 WebFetch2752 WebFetch

2704</h3>2753</h3>

2705 2754 


2718 2767 

2719Restituisce il contenuto recuperato con lo stato HTTP e i metadati.2768Restituisce il contenuto recuperato con lo stato HTTP e i metadati.

2720 2769 

2721<h3 id="websearch">2770<h3 id="websearch-1">

2722 WebSearch2771 WebSearch

2723</h3>2772</h3>

2724 2773 


2740 2789 

2741Restituisce i risultati della ricerca dal web.2790Restituisce i risultati della ricerca dal web.

2742 2791 

2743<h3 id="workflow">2792<h3 id="workflow-1">

2744 Workflow2793 Workflow

2745</h3>2794</h3>

2746 2795 


2770| `scriptPath` | `string` | Percorso dello script del workflow persistente per questa esecuzione. Modificalo e passalo come `scriptPath` per rieseguire senza inviare nuovamente lo script |2819| `scriptPath` | `string` | Percorso dello script del workflow persistente per questa esecuzione. Modificalo e passalo come `scriptPath` per rieseguire senza inviare nuovamente lo script |

2771| `error` | `string` | Impostato quando lo script non supera il controllo della sintassi. Quando presente, l'esecuzione non è stata avviata nonostante lo stato `async_launched` |2820| `error` | `string` | Impostato quando lo script non supera il controllo della sintassi. Quando presente, l'esecuzione non è stata avviata nonostante lo stato `async_launched` |

2772 2821 

2773<h3 id="todowrite">2822<h3 id="todowrite-1">

2774 TodoWrite2823 TodoWrite

2775</h3>2824</h3>

2776 2825 


2797 A partire da TypeScript Agent SDK 0.3.142, `TodoWrite` è disabilitato per impostazione predefinita. Usa invece `TaskCreate`, `TaskGet`, `TaskUpdate` e `TaskList`. Vedi [Migrazione ai tool Task](/it/agent-sdk/todo-tracking#migrate-to-task-tools) per aggiornare il tuo codice di monitoraggio, oppure imposta `CLAUDE_CODE_ENABLE_TASKS=0` per ripristinare `TodoWrite`.2846 A partire da TypeScript Agent SDK 0.3.142, `TodoWrite` è disabilitato per impostazione predefinita. Usa invece `TaskCreate`, `TaskGet`, `TaskUpdate` e `TaskList`. Vedi [Migrazione ai tool Task](/it/agent-sdk/todo-tracking#migrate-to-task-tools) per aggiornare il tuo codice di monitoraggio, oppure imposta `CLAUDE_CODE_ENABLE_TASKS=0` per ripristinare `TodoWrite`.

2798</Note>2847</Note>

2799 2848 

2800<h3 id="taskcreate">2849<h3 id="taskcreate-1">

2801 TaskCreate2850 TaskCreate

2802</h3>2851</h3>

2803 2852 


2814 2863 

2815Restituisce l'attività creata con il suo ID assegnato.2864Restituisce l'attività creata con il suo ID assegnato.

2816 2865 

2817<h3 id="taskupdate">2866<h3 id="taskupdate-1">

2818 TaskUpdate2867 TaskUpdate

2819</h3>2868</h3>

2820 2869 


2835 2884 

2836Restituisce il risultato dell'aggiornamento, inclusi i campi che sono stati modificati.2885Restituisce il risultato dell'aggiornamento, inclusi i campi che sono stati modificati.

2837 2886 

2838<h3 id="taskget">2887<h3 id="taskget-1">

2839 TaskGet2888 TaskGet

2840</h3>2889</h3>

2841 2890 


2856 2905 

2857Restituisce il record completo dell'attività, o `null` quando l'ID non viene trovato.2906Restituisce il record completo dell'attività, o `null` quando l'ID non viene trovato.

2858 2907 

2859<h3 id="tasklist">2908<h3 id="tasklist-1">

2860 TaskList2909 TaskList

2861</h3>2910</h3>

2862 2911 


2876 2925 

2877Restituisce uno snapshot di tutte le attività nell'elenco corrente.2926Restituisce uno snapshot di tutte le attività nell'elenco corrente.

2878 2927 

2879<h3 id="exitplanmode">2928<h3 id="exitplanmode-1">

2880 ExitPlanMode2929 ExitPlanMode

2881</h3>2930</h3>

2882 2931 


2895 2944 

2896Restituisce lo stato del piano dopo l'uscita dalla modalità di pianificazione.2945Restituisce lo stato del piano dopo l'uscita dalla modalità di pianificazione.

2897 2946 

2898<h3 id="listmcpresources">2947<h3 id="listmcpresources-1">

2899 ListMcpResources2948 ListMcpResources

2900</h3>2949</h3>

2901 2950 


2913 2962 

2914Restituisce un array di risorse MCP disponibili.2963Restituisce un array di risorse MCP disponibili.

2915 2964 

2916<h3 id="readmcpresource">2965<h3 id="readmcpresource-1">

2917 ReadMcpResource2966 ReadMcpResource

2918</h3>2967</h3>

2919 2968 


2931 2980 

2932Restituisce i contenuti della risorsa MCP richiesta.2981Restituisce i contenuti della risorsa MCP richiesta.

2933 2982 

2934<h3 id="enterworktree">2983<h3 id="enterworktree-1">

2935 EnterWorktree2984 EnterWorktree

2936</h3>2985</h3>

2937 2986 


3010type PermissionUpdateDestination =3059type PermissionUpdateDestination =

3011 | "userSettings" // Impostazioni globali dell'utente3060 | "userSettings" // Impostazioni globali dell'utente

3012 | "projectSettings" // Impostazioni del progetto per directory3061 | "projectSettings" // Impostazioni del progetto per directory

3013 | "localSettings" // Impostazioni locali gitignorate3062 | "localSettings" // Impostazioni locali del progetto

3014 | "session" // Solo sessione corrente3063 | "session" // Solo sessione corrente

3015 | "cliArg"; // Argomento CLI3064 | "cliArg"; // Argomento CLI

3016```3065```


3049```3098```

3050 3099 

3051<Warning>3100<Warning>

3052 La beta `context-1m-2025-08-07` è ritirata a partire dal 30 aprile 2026. Passare questo valore con Claude Sonnet 4.5 o Sonnet 4 non ha effetto, e le richieste che superano la finestra di contesto standard di 200k token restituiscono un errore. Per usare una finestra di contesto di 1M token, esegui la migrazione a [Claude Sonnet 4.6, Claude Opus 4.6, o Claude Opus 4.7](https://platform.claude.com/docs/it/about-claude/models/overview), che includono 1M di contesto ai prezzi standard senza intestazione beta richiesta.3101 La beta `context-1m-2025-08-07` è ritirata a partire dal 30 aprile 2026. Passare questo valore con Claude Sonnet 4.5 o Sonnet 4 non ha effetto, e le richieste che superano la finestra di contesto standard di 200k token restituiscono un errore. Per usare una finestra di contesto di 1M token, esegui la migrazione a [Claude Sonnet 4.6, Claude Opus 4.6, Claude Opus 4.7, o Claude Opus 4.8](https://platform.claude.com/docs/it/about-claude/models/overview), che includono 1M di contesto ai prezzi standard senza intestazione beta richiesta.

3053</Warning>3102</Warning>

3054 3103 

3055<h3 id="slashcommand">3104<h3 id="slashcommand">


3236 `CallToolResult`3285 `CallToolResult`

3237</h3>3286</h3>

3238 3287 

3239Tipo di risultato del tool MCP (da `@modelcontextprotocol/sdk/types.js`). `structuredContent` è un oggetto JSON che può essere restituito insieme a `content`, inclusi blocchi di immagini. Vedi [Restituisci dati strutturati](/it/agent-sdk/custom-tools#return-structured-data).3288Tipo di risultato del tool MCP (da `@modelcontextprotocol/sdk/types.js`). `structuredContent` è un oggetto JSON che può essere restituito insieme a `content`, inclusi blocchi di immagini e audio. Vedi [Restituisci dati strutturati](/it/agent-sdk/custom-tools#return-structured-data).

3240 3289 

3241```typescript theme={null}3290```typescript theme={null}

3242type CallToolResult = {3291type CallToolResult = {

3243 content: Array<{3292 content: Array<{

3244 type: "text" | "image" | "resource";3293 type: "text" | "image" | "audio" | "resource" | "resource_link";

3245 // I campi aggiuntivi variano in base al tipo3294 // I campi aggiuntivi variano in base al tipo

3246 }>;3295 }>;

3247 structuredContent?: Record<string, unknown>;3296 structuredContent?: Record<string, unknown>;

Details

16 16 

17Questa guida ti mostra come rilevare ogni tipo di richiesta e rispondere in modo appropriato.17Questa guida ti mostra come rilevare ogni tipo di richiesta e rispondere in modo appropriato.

18 18 

19## Rilevare quando Claude ha bisogno di input19<h2 id="detect-when-claude-needs-input">

20 Rilevare quando Claude ha bisogno di input

21</h2>

20 22 

21Passa un callback `canUseTool` nelle opzioni della query. Il callback si attiva ogni volta che Claude ha bisogno di input dell'utente, ricevendo il nome dello strumento e l'input come argomenti:23Passa un callback `canUseTool` nelle opzioni della query. Il callback si attiva ogni volta che Claude ha bisogno di input dell'utente, ricevendo il nome dello strumento e l'input come argomenti:

22 24 


49 Per consentire o negare automaticamente gli strumenti senza chiedere agli utenti, utilizza invece gli [hook](/it/agent-sdk/hooks). Gli hook vengono eseguiti prima di `canUseTool` e possono consentire, negare o modificare le richieste in base alla tua logica. Puoi anche utilizzare l'[hook `PermissionRequest`](/it/agent-sdk/hooks#available-hooks) per inviare notifiche esterne (Slack, email, push) quando Claude è in attesa di approvazione.51 Per consentire o negare automaticamente gli strumenti senza chiedere agli utenti, utilizza invece gli [hook](/it/agent-sdk/hooks). Gli hook vengono eseguiti prima di `canUseTool` e possono consentire, negare o modificare le richieste in base alla tua logica. Puoi anche utilizzare l'[hook `PermissionRequest`](/it/agent-sdk/hooks#available-hooks) per inviare notifiche esterne (Slack, email, push) quando Claude è in attesa di approvazione.

50</Note>52</Note>

51 53 

52## Gestire le richieste di approvazione dello strumento54<h2 id="handle-tool-approval-requests">

55 Gestire le richieste di approvazione dello strumento

56</h2>

53 57 

54Una volta passato un callback `canUseTool` nelle opzioni della query, si attiva quando Claude vuole utilizzare uno strumento che non è approvato automaticamente. Il tuo callback riceve tre argomenti:58Una volta passato un callback `canUseTool` nelle opzioni della query, si attiva quando Claude vuole utilizzare uno strumento che non è approvato automaticamente. Il tuo callback riceve tre argomenti:

55 59 


197 201 

198Questo esempio utilizza un flusso s/n in cui qualsiasi input diverso da `y` viene trattato come un rifiuto. In pratica, potresti creare un'interfaccia utente più ricca che consenta agli utenti di modificare la richiesta, fornire feedback o reindirizzare completamente Claude. Vedi [Rispondere alle richieste dello strumento](#respond-to-tool-requests) per tutti i modi in cui puoi rispondere.202Questo esempio utilizza un flusso s/n in cui qualsiasi input diverso da `y` viene trattato come un rifiuto. In pratica, potresti creare un'interfaccia utente più ricca che consenta agli utenti di modificare la richiesta, fornire feedback o reindirizzare completamente Claude. Vedi [Rispondere alle richieste dello strumento](#respond-to-tool-requests) per tutti i modi in cui puoi rispondere.

199 203 

200### Rispondere alle richieste dello strumento204<h3 id="respond-to-tool-requests">

205 Rispondere alle richieste dello strumento

206</h3>

201 207 

202Il tuo callback restituisce uno di due tipi di risposta:208Il tuo callback restituisce uno di due tipi di risposta:

203 209 


407 </Tab>413 </Tab>

408</Tabs>414</Tabs>

409 415 

410## Gestire domande di chiarimento416<h2 id="handle-clarifying-questions">

417 Gestire domande di chiarimento

418</h2>

411 419 

412Quando Claude ha bisogno di più direzione su un'attività con più approcci validi, chiama lo strumento `AskUserQuestion`. Questo attiva il tuo callback `canUseTool` con `toolName` impostato su `AskUserQuestion`. L'input contiene le domande di Claude come opzioni a scelta multipla, che visualizzi all'utente e restituisci le sue selezioni.420Quando Claude ha bisogno di più direzione su un'attività con più approcci validi, chiama lo strumento `AskUserQuestion`. Questo attiva il tuo callback `canUseTool` con `toolName` impostato su `AskUserQuestion`. L'input contiene le domande di Claude come opzioni a scelta multipla, che visualizzi all'utente e restituisci le sue selezioni.

413 421 


551 </Step>559 </Step>

552</Steps>560</Steps>

553 561 

554### Formato della domanda562<h3 id="question-format">

563 Formato della domanda

564</h3>

555 565 

556L'input contiene le domande generate da Claude in un array `questions`. Ogni domanda ha questi campi:566L'input contiene le domande generate da Claude in un array `questions`. Ogni domanda ha questi campi:

557 567 

558| Campo | Descrizione |568| Campo | Descrizione |

559| ------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |569| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |

560| `question` | Il testo completo della domanda da visualizzare |570| `question` | Il testo completo della domanda da visualizzare |

561| `header` | Etichetta breve per la domanda (max 12 caratteri) |571| `header` | Etichetta breve per la domanda (max 12 caratteri) |

562| `options` | Array di 2-4 scelte, ognuna con `label` e `description`. TypeScript: opzionalmente `preview` (vedi [sotto](#option-previews-type-script)) |572| `options` | Array di 2-4 scelte, ognuna con `label` e `description`. TypeScript: opzionalmente `preview` (vedi [sotto](#option-previews-typescript)) |

563| `multiSelect` | Se `true`, gli utenti possono selezionare più opzioni |573| `multiSelect` | Se `true`, gli utenti possono selezionare più opzioni |

564 574 

565La struttura che il tuo callback riceve:575La struttura che il tuo callback riceve:


580}590}

581```591```

582 592 

583#### Anteprime delle opzioni (TypeScript)593<h4 id="option-previews-typescript">

594 Anteprime delle opzioni (TypeScript)

595</h4>

584 596 

585`toolConfig.askUserQuestion.previewFormat` aggiunge un campo `preview` a ogni opzione in modo che la tua app possa mostrare un mockup visivo insieme all'etichetta. Senza questa impostazione, Claude non genera anteprime e il campo è assente.597`toolConfig.askUserQuestion.previewFormat` aggiunge un campo `preview` a ogni opzione in modo che la tua app possa mostrare un mockup visivo insieme all'etichetta. Senza questa impostazione, Claude non genera anteprime e il campo è assente.

586 598 


621}633}

622```634```

623 635 

624### Formato della risposta636<h3 id="response-format">

637 Formato della risposta

638</h3>

625 639 

626Restituisci un oggetto `answers` che mappa il campo `question` di ogni domanda all'`label` dell'opzione selezionata:640Restituisci un oggetto `answers` che mappa il campo `question` di ogni domanda all'`label` dell'opzione selezionata:

627 641 


645}659}

646```660```

647 661 

648#### Supporta input di testo libero662<h4 id="support-free-text-input">

663 Supporta input di testo libero

664</h4>

649 665 

650Le opzioni predefinite di Claude non copriranno sempre ciò che gli utenti vogliono. Per consentire agli utenti di digitare la propria risposta:666Le opzioni predefinite di Claude non copriranno sempre ciò che gli utenti vogliono. Per consentire agli utenti di digitare la propria risposta:

651 667 


654 670 

655Vedi l'[esempio completo](#complete-example) di seguito per un'implementazione completa.671Vedi l'[esempio completo](#complete-example) di seguito per un'implementazione completa.

656 672 

657### Esempio completo673<h3 id="complete-example">

674 Esempio completo

675</h3>

658 676 

659Claude pone domande di chiarimento quando ha bisogno di input dell'utente per procedere. Ad esempio, quando gli viene chiesto di aiutare a decidere su uno stack tecnologico per un'app mobile, Claude potrebbe chiedere informazioni su cross-platform vs nativo, preferenze di backend o piattaforme di destinazione. Queste domande aiutano Claude a prendere decisioni che corrispondono alle preferenze dell'utente piuttosto che indovinare.677Claude pone domande di chiarimento quando ha bisogno di input dell'utente per procedere. Ad esempio, quando gli viene chiesto di aiutare a decidere su uno stack tecnologico per un'app mobile, Claude potrebbe chiedere informazioni su cross-platform vs nativo, preferenze di backend o piattaforme di destinazione. Queste domande aiutano Claude a prendere decisioni che corrispondono alle preferenze dell'utente piuttosto che indovinare.

660 678 


821 ```839 ```

822</CodeGroup>840</CodeGroup>

823 841 

824## Limitazioni842<h2 id="limitations">

843 Limitazioni

844</h2>

825 845 

826* **Subagenti**: `AskUserQuestion` non è attualmente disponibile nei subagenti generati tramite lo strumento Agent846* **Subagenti**: `AskUserQuestion` non è attualmente disponibile nei subagenti generati tramite lo strumento Agent

827* **Limiti delle domande**: ogni chiamata `AskUserQuestion` supporta 1-4 domande con 2-4 opzioni ciascuna847* **Limiti delle domande**: ogni chiamata `AskUserQuestion` supporta 1-4 domande con 2-4 opzioni ciascuna

828 848 

829## Altri modi per ottenere input dall'utente849<h2 id="other-ways-to-get-user-input">

850 Altri modi per ottenere input dall'utente

851</h2>

830 852 

831Il callback `canUseTool` e lo strumento `AskUserQuestion` coprono la maggior parte degli scenari di approvazione e chiarimento, ma l'SDK offre altri modi per ottenere input dagli utenti:853Il callback `canUseTool` e lo strumento `AskUserQuestion` coprono la maggior parte degli scenari di approvazione e chiarimento, ma l'SDK offre altri modi per ottenere input dagli utenti:

832 854 

833### Input streaming855<h3 id="streaming-input">

856 Input streaming

857</h3>

834 858 

835Utilizza [input streaming](/it/agent-sdk/streaming-vs-single-mode) quando hai bisogno di:859Utilizza [input streaming](/it/agent-sdk/streaming-vs-single-mode) quando hai bisogno di:

836 860 


840 864 

841L'input streaming è ideale per interfacce conversazionali in cui gli utenti interagiscono con l'agente durante l'esecuzione, non solo nei checkpoint di approvazione.865L'input streaming è ideale per interfacce conversazionali in cui gli utenti interagiscono con l'agente durante l'esecuzione, non solo nei checkpoint di approvazione.

842 866 

843### Strumenti personalizzati867<h3 id="custom-tools">

868 Strumenti personalizzati

869</h3>

844 870 

845Utilizza [strumenti personalizzati](/it/agent-sdk/custom-tools) quando hai bisogno di:871Utilizza [strumenti personalizzati](/it/agent-sdk/custom-tools) quando hai bisogno di:

846 872 


850 876 

851Gli strumenti personalizzati ti danno il controllo completo sull'interazione, ma richiedono più lavoro di implementazione rispetto all'utilizzo del callback `canUseTool` integrato.877Gli strumenti personalizzati ti danno il controllo completo sull'interazione, ma richiedono più lavoro di implementazione rispetto all'utilizzo del callback `canUseTool` integrato.

852 878 

853## Risorse correlate879<h2 id="related-resources">

880 Risorse correlate

881</h2>

854 882 

855* [Configura autorizzazioni](/it/agent-sdk/permissions): configura modalità e regole di autorizzazione883* [Configura autorizzazioni](/it/agent-sdk/permissions): configura modalità e regole di autorizzazione

856* [Controlla l'esecuzione con hook](/it/agent-sdk/hooks): esegui codice personalizzato nei punti chiave del ciclo di vita dell'agente884* [Controlla l'esecuzione con hook](/it/agent-sdk/hooks): esegui codice personalizzato nei punti chiave del ciclo di vita dell'agente

agent-teams.md +37 −49

Details

7> Coordinare più istanze di Claude Code che lavorano insieme come un team, con attività condivise, messaggistica tra agenti e gestione centralizzata.7> Coordinare più istanze di Claude Code che lavorano insieme come un team, con attività condivise, messaggistica tra agenti e gestione centralizzata.

8 8 

9<Warning>9<Warning>

10 I team di agenti sono sperimentali e disabilitati per impostazione predefinita. Abilitateli aggiungendo `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` al vostro [settings.json](/it/settings) o all'ambiente. I team di agenti hanno [limitazioni note](#limitations) relative alla ripresa della sessione, al coordinamento delle attività e al comportamento di arresto.10 I team di agenti sono sperimentali e disabilitati per impostazione predefinita. Abilitateli aggiungendo `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` al vostro [settings.json](/it/settings) o all'ambiente. Senza quella variabile, nessun team viene configurato all'avvio della sessione, nessuna directory di team viene scritta, e Claude non genera o propone compagni di team. I team di agenti hanno [limitazioni note](#limitations) relative alla ripresa della sessione, al coordinamento delle attività e al comportamento di arresto.

11</Warning>11</Warning>

12 12 

13I team di agenti vi permettono di coordinare più istanze di Claude Code che lavorano insieme. Una sessione agisce come il team lead, coordinando il lavoro, assegnando attività e sintetizzando i risultati. I compagni di team lavorano indipendentemente, ognuno nel proprio context window, e comunicano direttamente tra loro.13I team di agenti vi permettono di coordinare più istanze di Claude Code che lavorano insieme. Una sessione agisce come il team lead, coordinando il lavoro, assegnando attività e sintetizzando i risultati. I compagni di team lavorano indipendentemente, ognuno nel proprio context window, e comunicano direttamente tra loro.


15A differenza dei [subagents](/it/sub-agents), che vengono eseguiti all'interno di una singola sessione e possono solo riferire al main agent, potete anche interagire direttamente con i singoli compagni di team senza passare attraverso il lead.15A differenza dei [subagents](/it/sub-agents), che vengono eseguiti all'interno di una singola sessione e possono solo riferire al main agent, potete anche interagire direttamente con i singoli compagni di team senza passare attraverso il lead.

16 16 

17<Note>17<Note>

18 I team di agenti richiedono Claude Code v2.1.32 o successivo. Controllate la vostra versione con `claude --version`.18 Questa pagina descrive i team di agenti a partire da v2.1.178. Con `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` impostato, la generazione di un compagno di team non richiede più un passaggio di configurazione, e la pulizia avviene automaticamente quando la sessione esce. Prima di v2.1.178, chiedevate a Claude di creare e denominare un team per primo, e Claude utilizzava i tool `TeamCreate` e `TeamDelete` per configurarlo e rimuoverlo. Entrambi i tool non esistono più. L'input `team_name` sul tool Agent è accettato ma ignorato, e il campo `team_name` in `TaskCreated`, `TaskCompleted`, e `TeammateIdle` [hook payloads](/it/hooks#taskcreated) porta il nome derivato dalla sessione ed è deprecato.

19</Note>19</Note>

20 20 

21Questa pagina copre:21Questa pagina copre:


78 Avviare il vostro primo team di agenti78 Avviare il vostro primo team di agenti

79</h2>79</h2>

80 80 

81Dopo aver abilitato i team di agenti, dite a Claude di creare un team di agenti e descrivete il compito e la struttura del team che desiderate in linguaggio naturale. Claude crea il team, genera i compagni di team e coordina il lavoro in base al vostro prompt.81Dopo aver abilitato i team di agenti, descrivete il compito e i compagni di team che desiderate in linguaggio naturale. Claude li genera e coordina il lavoro in base al vostro prompt.

82 82 

83Questo esempio funziona bene perché i tre ruoli sono indipendenti e possono esplorare il problema senza aspettarsi l'uno l'altro:83Questo esempio funziona bene perché i tre ruoli sono indipendenti e possono esplorare il problema senza aspettarsi l'uno l'altro:

84 84 

85```text theme={null}85```text theme={null}

86Sto progettando uno strumento CLI che aiuta gli sviluppatori a tracciare i commenti TODO86Sto progettando uno strumento CLI che aiuta gli sviluppatori a tracciare i commenti TODO

87nel loro codebase. Crea un team di agenti per esplorare questo da diversi angoli: un87nel loro codebase. Genera tre compagni di team per esplorare questo da diversi angoli: uno

88compagno di team su UX, uno su architettura tecnica, uno che gioca l'avvocato del diavolo.88su UX, uno su architettura tecnica, uno che gioca l'avvocato del diavolo.

89```89```

90 90 

91Da lì, Claude crea un team con un [elenco di attività condiviso](/it/interactive-mode#task-list), genera compagni di team per ogni prospettiva, li fa esplorare il problema, sintetizza i risultati e tenta di [pulire il team](#clean-up-the-team) al termine.91Da lì, Claude popola un [elenco di attività condiviso](/it/interactive-mode#task-list), genera compagni di team per ogni prospettiva, li fa esplorare il problema, e sintetizza i risultati al termine.

92 92 

93Il terminale del lead elenca tutti i compagni di team e su cosa stanno lavorando. Utilizzate Shift+Down per scorrere i compagni di team e messaggiarli direttamente. Dopo l'ultimo compagno di team, Shift+Down torna al lead.93Il terminale del lead elenca tutti i compagni di team e su cosa stanno lavorando. Utilizzate Shift+Down per scorrere i compagni di team e messaggiarli direttamente. Dopo l'ultimo compagno di team, Shift+Down torna al lead.

94 94 


113 `tmux` ha limitazioni note su certi sistemi operativi e tradizionalmente funziona meglio su macOS. Utilizzare `tmux -CC` in iTerm2 è il punto di ingresso suggerito in `tmux`.113 `tmux` ha limitazioni note su certi sistemi operativi e tradizionalmente funziona meglio su macOS. Utilizzare `tmux -CC` in iTerm2 è il punto di ingresso suggerito in `tmux`.

114</Note>114</Note>

115 115 

116L'impostazione predefinita è `"auto"`, che utilizza split panes se state già eseguendo all'interno di una sessione tmux, e in-process altrimenti. L'impostazione `"tmux"` abilita la modalità split-pane e rileva automaticamente se utilizzare tmux o iTerm2 in base al vostro terminale. Per sovrascrivere, impostate [`teammateMode`](/it/settings#available-settings) in `~/.claude/settings.json`:116L'impostazione predefinita è `"auto"`, che utilizza split panes se state già eseguendo all'interno di una sessione tmux o il vostro terminale è iTerm2, e in-process altrimenti. L'impostazione `"tmux"` abilita la modalità split-pane e rileva automaticamente se utilizzare tmux o iTerm2 in base al vostro terminale. Per sovrascrivere, impostate [`teammateMode`](/it/settings#available-settings) in `~/.claude/settings.json`:

117 117 

118```json theme={null}118```json theme={null}

119{119{


139Claude decide il numero di compagni di team da generare in base al vostro compito, oppure potete specificare esattamente quello che desiderate:139Claude decide il numero di compagni di team da generare in base al vostro compito, oppure potete specificare esattamente quello che desiderate:

140 140 

141```text theme={null}141```text theme={null}

142Crea un team con 4 compagni di team per refactorizzare questi moduli in parallelo.142Spawn 4 teammates to refactor these modules in parallel. Use Sonnet for

143Usa Sonnet per ogni compagno di team.143each teammate.

144```144```

145 145 

146I compagni di team non ereditano la selezione `/model` del lead per impostazione predefinita. Per modificare il modello utilizzato quando il prompt non ne specifica uno, impostate **Default teammate model** in `/config`. Scegliete **Default (leader's model)** per fare in modo che i compagni di team seguano il modello attuale del lead.146I compagni di team non ereditano la selezione `/model` del lead per impostazione predefinita. Per modificare il modello utilizzato quando il prompt non ne specifica uno, impostate **Default teammate model** in `/config`. Scegliete **Default (leader's model)** per fare in modo che i compagni di team seguano il modello attuale del lead.


152Per compiti complessi o rischiosi, potete richiedere ai compagni di team di pianificare prima di implementare. Il compagno di team lavora in modalità piano di sola lettura fino a quando il lead approva il loro approccio:152Per compiti complessi o rischiosi, potete richiedere ai compagni di team di pianificare prima di implementare. Il compagno di team lavora in modalità piano di sola lettura fino a quando il lead approva il loro approccio:

153 153 

154```text theme={null}154```text theme={null}

155Genera un compagno di team architetto per refactorizzare il modulo di autenticazione.155Spawn an architect teammate to refactor the authentication module.

156Richiedi l'approvazione del piano prima che apportino modifiche.156Require plan approval before they make any changes.

157```157```

158 158 

159Quando un compagno di team finisce di pianificare, invia una richiesta di approvazione del piano al lead. Il lead esamina il piano e lo approva o lo rifiuta con feedback. Se rifiutato, il compagno di team rimane in modalità piano, rivede in base al feedback e lo riinvia. Una volta approvato, il compagno di team esce dalla modalità piano e inizia l'implementazione.159Quando un compagno di team finisce di pianificare, invia una richiesta di approvazione del piano al lead. Il lead esamina il piano e lo approva o lo rifiuta con feedback. Se rifiutato, il compagno di team rimane in modalità piano, rivede in base al feedback e lo riinvia. Una volta approvato, il compagno di team esce dalla modalità piano e inizia l'implementazione.


186 Spegnere i compagni di team186 Spegnere i compagni di team

187</h3>187</h3>

188 188 

189Per terminare gracefully la sessione di un compagno di team:189Per terminare gracefully la sessione di un compagno di team, fate riferimento ad esso per nome. Ad esempio, con un compagno di team denominato ricercatore:

190 190 

191```text theme={null}191```text theme={null}

192Chiedi al compagno di team ricercatore di spegnersi192Ask the researcher teammate to shut down

193```193```

194 194 

195Il lead invia una richiesta di arresto. Il compagno di team può approvare, uscendo gracefully, o rifiutare con una spiegazione.195Il lead invia una richiesta di arresto. Il compagno di team può approvare, uscendo gracefully, o rifiutare con una spiegazione.

196 196 

197<h3 id="clean-up-the-team">197Le directory condivise del team vengono pulite automaticamente quando la sessione termina, quindi non c'è un passaggio di pulizia separato. Consultate [Architecture](#architecture) per sapere quali directory vengono rimosse e quali persistono per le sessioni riprese.

198 Pulire il team

199</h3>

200 

201Quando avete finito, chiedete al lead di pulire:

202 

203```text theme={null}

204Pulisci il team

205```

206 

207Questo rimuove le risorse del team condivise. Quando il lead esegue la pulizia, controlla i compagni di team attivi e fallisce se ce ne sono ancora in esecuzione, quindi spegneteli prima.

208 

209<Warning>

210 Utilizzate sempre il lead per pulire. I compagni di team non dovrebbero eseguire la pulizia perché il loro contesto di team potrebbe non risolversi correttamente, lasciando potenzialmente le risorse in uno stato incoerente.

211</Warning>

212 198 

213<h3 id="enforce-quality-gates-with-hooks">199<h3 id="enforce-quality-gates-with-hooks">

214 Applicare quality gate con hooks200 Applicare quality gate con hooks


230 Come Claude avvia i team di agenti216 Come Claude avvia i team di agenti

231</h3>217</h3>

232 218 

233Ci sono due modi in cui i team di agenti vengono avviati:219Un team di agenti si forma quando il primo compagno di team viene generato, con la sessione principale che agisce come lead. Ci sono due modi in cui i compagni di team vengono generati:

234 220 

235* **Voi richiedete un team**: date a Claude un compito che beneficia dal lavoro parallelo e chiedete esplicitamente un team di agenti. Claude ne crea uno in base alle vostre istruzioni.221* **Voi richiedete compagni di team**: date a Claude un compito che beneficia dal lavoro parallelo e chiedete esplicitamente compagni di team. Claude li genera in base alle vostre istruzioni.

236* **Claude propone un team**: se Claude determina che il vostro compito beneficerebbe dal lavoro parallelo, potrebbe suggerire di creare un team. Voi confermate prima che proceda.222* **Claude propone compagni di team**: se Claude determina che il vostro compito beneficerebbe dal lavoro parallelo, potrebbe suggerire di generare compagni di team. Voi confermate prima che proceda.

237 223 

238In entrambi i casi, rimanete in controllo. Claude non creerà un team senza la vostra approvazione.224In entrambi i casi, rimanete in controllo. Claude non genererà compagni di team senza la vostra approvazione.

239 225 

240<h3 id="architecture">226<h3 id="architecture">

241 Architettura227 Architettura


244Un team di agenti consiste di:230Un team di agenti consiste di:

245 231 

246| Componente | Ruolo |232| Componente | Ruolo |

247| :--------------------- | :-------------------------------------------------------------------------------------------------- |233| :--------------------- | :------------------------------------------------------------------------------------- |

248| **Team lead** | La sessione Claude Code principale che crea il team, genera i compagni di team e coordina il lavoro |234| **Team lead** | La sessione Claude Code principale che genera compagni di team e coordina il lavoro |

249| **Compagni di team** | Istanze Claude Code separate che lavorano ciascuna su attività assegnate |235| **Compagni di team** | Istanze Claude Code separate che lavorano ciascuna su attività assegnate |

250| **Elenco di attività** | Elenco condiviso di elementi di lavoro che i compagni di team rivendicano e completano |236| **Elenco di attività** | Elenco condiviso di elementi di lavoro che i compagni di team rivendicano e completano |

251| **Mailbox** | Sistema di messaggistica per la comunicazione tra agenti |237| **Mailbox** | Sistema di messaggistica per la comunicazione tra agenti |


254 240 

255Il sistema gestisce le dipendenze delle attività automaticamente. Quando un compagno di team completa un'attività da cui altre attività dipendono, le attività bloccate si sbloccano senza intervento manuale.241Il sistema gestisce le dipendenze delle attività automaticamente. Quando un compagno di team completa un'attività da cui altre attività dipendono, le attività bloccate si sbloccano senza intervento manuale.

256 242 

257I team e le attività sono archiviati localmente:243I team e le attività sono archiviati localmente con un nome derivato dalla sessione. Il nome è `session-` seguito dai primi otto caratteri dell'ID della sessione:

258 244 

259* **Configurazione del team**: `~/.claude/teams/{team-name}/config.json`245* **Configurazione del team**: `~/.claude/teams/{team-name}/config.json`

260* **Elenco di attività**: `~/.claude/tasks/{team-name}/`246* **Elenco di attività**: `~/.claude/tasks/{team-name}/`

261 247 

262Claude Code genera entrambi automaticamente quando create un team e li aggiorna mentre i compagni di team si uniscono, vanno inattivi o se ne vanno. La configurazione del team contiene lo stato di runtime come gli ID di sessione e gli ID dei riquadri tmux, quindi non modificatela manualmente o pre-autorizzatela: le vostre modifiche vengono sovrascritte al prossimo aggiornamento dello stato.248Claude Code genera entrambi automaticamente all'avvio della sessione e li aggiorna mentre i compagni di team si uniscono, vanno inattivi o se ne vanno. La directory di configurazione del team viene rimossa quando la sessione termina. La directory dell'elenco di attività persiste localmente e non viene mai caricata, quindi le sessioni riprese mantengono le loro attività. La conservazione è governata dallo stesso [`cleanupPeriodDays`](/it/settings#available-settings) che già controllate per i trascritti di sessione.

249 

250La configurazione del team contiene lo stato di runtime come gli ID di sessione e gli ID dei riquadri tmux, quindi non modificatela manualmente o pre-autorizzatela: le vostre modifiche vengono sovrascritte al prossimo aggiornamento dello stato.

263 251 

264Per definire ruoli di compagni di team riutilizzabili, utilizzate invece [definizioni di subagent](#use-subagent-definitions-for-teammates).252Per definire ruoli di compagni di team riutilizzabili, utilizzate invece [definizioni di subagent](#use-subagent-definitions-for-teammates).

265 253 


325Un singolo revisore tende a gravitare verso un tipo di problema alla volta. Dividere i criteri di revisione in domini indipendenti significa che la sicurezza, le prestazioni e la copertura dei test ricevono tutti un'attenzione approfondita simultaneamente. Il prompt assegna a ogni compagno di team una lente distinta in modo che non si sovrappongano:313Un singolo revisore tende a gravitare verso un tipo di problema alla volta. Dividere i criteri di revisione in domini indipendenti significa che la sicurezza, le prestazioni e la copertura dei test ricevono tutti un'attenzione approfondita simultaneamente. Il prompt assegna a ogni compagno di team una lente distinta in modo che non si sovrappongano:

326 314 

327```text theme={null}315```text theme={null}

328Crea un team di agenti per revisionare la PR #142. Genera tre revisori:316Spawn three teammates to review PR #142:

329- Uno focalizzato sulle implicazioni di sicurezza317- One focused on security implications

330- Uno che controlla l'impatto sulle prestazioni318- One checking performance impact

331- Uno che convalida la copertura dei test319- One validating test coverage

332Che ognuno esamini e riporti i risultati.320Have them each review and report findings.

333```321```

334 322 

335Ogni revisore lavora dalla stessa PR ma applica un filtro diverso. Il lead sintetizza i risultati tra tutti e tre dopo che finiscono.323Ogni revisore lavora dalla stessa PR ma applica un filtro diverso. Il lead sintetizza i risultati tra tutti e tre dopo che finiscono.


341Quando la causa principale è poco chiara, un singolo agente tende a trovare una spiegazione plausibile e smettere di cercare. Il prompt combatte questo rendendo i compagni di team esplicitamente avversari: il lavoro di ognuno non è solo investigare la propria teoria ma sfidare le altre.329Quando la causa principale è poco chiara, un singolo agente tende a trovare una spiegazione plausibile e smettere di cercare. Il prompt combatte questo rendendo i compagni di team esplicitamente avversari: il lavoro di ognuno non è solo investigare la propria teoria ma sfidare le altre.

342 330 

343```text theme={null}331```text theme={null}

344Gli utenti segnalano che l'app esce dopo un messaggio invece di rimanere connessa.332Users report the app exits after one message instead of staying connected.

345Genera 5 compagni di team agenti per investigare diverse ipotesi. Fate loro parlare333Spawn 5 agent teammates to investigate different hypotheses. Have them talk to

346tra loro per cercare di confutare le teorie reciproche, come un dibattito334each other to try to disprove each other's theories, like a scientific

347scientifico. Aggiornate il documento dei risultati con qualsiasi consenso emerga.335debate. Update the findings doc with whatever consensus emerges.

348```336```

349 337 

350La struttura del dibattito è il meccanismo chiave qui. L'investigazione sequenziale soffre di ancoraggio: una volta che una teoria è stata esplorata, l'investigazione successiva è distorta verso di essa.338La struttura del dibattito è il meccanismo chiave qui. L'investigazione sequenziale soffre di ancoraggio: una volta che una teoria è stata esplorata, l'investigazione successiva è distorta verso di essa.


352Con più investigatori indipendenti che attivamente cercano di confutarsi a vicenda, la teoria che sopravvive è molto più probabile che sia la causa principale effettiva.340Con più investigatori indipendenti che attivamente cercano di confutarsi a vicenda, la teoria che sopravvive è molto più probabile che sia la causa principale effettiva.

353 341 

354<h2 id="best-practices">342<h2 id="best-practices">

355 Best practice343 Best practices

356</h2>344</h2>

357 345 

358<h3 id="give-teammates-enough-context">346<h3 id="give-teammates-enough-context">


483* **Nessuna ripresa della sessione con compagni di team in-process**: `/resume` e `/rewind` non ripristinano i compagni di team in-process. Dopo aver ripreso una sessione, il lead potrebbe tentare di messaggiare compagni di team che non esistono più. Se questo accade, dite al lead di generare nuovi compagni di team.471* **Nessuna ripresa della sessione con compagni di team in-process**: `/resume` e `/rewind` non ripristinano i compagni di team in-process. Dopo aver ripreso una sessione, il lead potrebbe tentare di messaggiare compagni di team che non esistono più. Se questo accade, dite al lead di generare nuovi compagni di team.

484* **Lo stato dell'attività può ritardare**: i compagni di team a volte non riescono a contrassegnare le attività come completate, il che blocca le attività dipendenti. Se un'attività sembra bloccata, controllate se il lavoro è effettivamente fatto e aggiornate lo stato dell'attività manualmente o dite al lead di spingere il compagno di team.472* **Lo stato dell'attività può ritardare**: i compagni di team a volte non riescono a contrassegnare le attività come completate, il che blocca le attività dipendenti. Se un'attività sembra bloccata, controllate se il lavoro è effettivamente fatto e aggiornate lo stato dell'attività manualmente o dite al lead di spingere il compagno di team.

485* **L'arresto può essere lento**: i compagni di team finiscono la loro richiesta attuale o la chiamata dello strumento prima di spegnersi, il che può richiedere tempo.473* **L'arresto può essere lento**: i compagni di team finiscono la loro richiesta attuale o la chiamata dello strumento prima di spegnersi, il che può richiedere tempo.

486* **Un team per sessione**: un lead può gestire solo un team alla volta. Pulite il team attuale prima di iniziarne uno nuovo.474* **Un team per sessione**: una sessione ha esattamente un team, limitato a quella sessione. Non potete creare team denominati aggiuntivi o condividere un team tra sessioni.

487* **Nessun team annidato**: i compagni di team non possono generare i loro propri team o compagni di team. Solo il lead può gestire il team.475* **Nessun team annidato**: i compagni di team non possono generare i loro propri compagni di team. Solo il lead può gestire il team.

488* **Il lead è fisso**: la sessione che crea il team è il lead per tutta la sua durata. Non potete promuovere un compagno di team a lead o trasferire la leadership.476* **Il lead è fisso**: la sessione principale è il lead per tutta la sua durata. Non potete promuovere un compagno di team a lead o trasferire la leadership.

489* **Permessi impostati al momento della generazione**: tutti i compagni di team iniziano con la modalità di permesso del lead. Potete cambiare le modalità dei singoli compagni di team dopo la generazione, ma non potete impostare modalità per compagno di team al momento della generazione.477* **Permessi impostati al momento della generazione**: tutti i compagni di team iniziano con la modalità di permesso del lead. Potete cambiare le modalità dei singoli compagni di team dopo la generazione, ma non potete impostare modalità per compagno di team al momento della generazione.

490* **Split panes richiedono tmux o iTerm2**: la modalità in-process predefinita funziona in qualsiasi terminale. La modalità split-pane non è supportata nel terminale integrato di VS Code, Windows Terminal o Ghostty.478* **Split panes richiedono tmux o iTerm2**: la modalità in-process predefinita funziona in qualsiasi terminale. La modalità split-pane non è supportata nel terminale integrato di VS Code, Windows Terminal o Ghostty.

491 479 

agent-view.md +15 −6

Details

143 143 

144Il riassunto su una riga è generato da un [modello di classe Haiku](/it/model-config) in modo che la riga possa dirti cosa sta facendo la sessione, cosa ha bisogno, o cosa ha prodotto senza aprire il transcript. Mentre una sessione sta attivamente lavorando, il riassunto si aggiorna al massimo una volta ogni 15 secondi, più una volta quando ogni turno termina.144Il riassunto su una riga è generato da un [modello di classe Haiku](/it/model-config) in modo che la riga possa dirti cosa sta facendo la sessione, cosa ha bisogno, o cosa ha prodotto senza aprire il transcript. Mentre una sessione sta attivamente lavorando, il riassunto si aggiorna al massimo una volta ogni 15 secondi, più una volta quando ogni turno termina.

145 145 

146Da v2.1.161, quando la sessione sta eseguendo due o più elementi di lavoro paralleli, come subagents, comandi shell in background, o monitor, un conteggio `done/total` come `2/5` appare prima del testo del riassunto.

147 

146Ogni aggiornamento è una breve richiesta di classe Haiku attraverso il tuo provider normale, fatturato e gestito secondo gli stessi [termini di utilizzo dei dati](/it/data-usage) della sessione stessa. Su provider di terze parti come Bedrock, Vertex AI, Microsoft Foundry e gateway personalizzati, la richiesta ritorna al modello principale della sessione quando nessun modello Haiku è configurato. Imposta [`ANTHROPIC_DEFAULT_HAIKU_MODEL`](/it/model-config#environment-variables) per scegliere il modello per questi riassunti su quei provider.148Ogni aggiornamento è una breve richiesta di classe Haiku attraverso il tuo provider normale, fatturato e gestito secondo gli stessi [termini di utilizzo dei dati](/it/data-usage) della sessione stessa. Su provider di terze parti come Bedrock, Vertex AI, Microsoft Foundry e gateway personalizzati, la richiesta ritorna al modello principale della sessione quando nessun modello Haiku è configurato. Imposta [`ANTHROPIC_DEFAULT_HAIKU_MODEL`](/it/model-config#environment-variables) per scegliere il modello per questi riassunti su quei provider.

147 149 

148<h3 id="pull-request-status">150<h3 id="pull-request-status">


170 172 

171Premi `Space` su una riga selezionata per aprire il pannello peek. Mostra cosa la sessione ha bisogno da te, il suo output più recente, e qualsiasi pull request che ha aperto. La maggior parte delle volte questo è sufficiente, e non hai mai bisogno di aprire il transcript completo.173Premi `Space` su una riga selezionata per aprire il pannello peek. Mostra cosa la sessione ha bisogno da te, il suo output più recente, e qualsiasi pull request che ha aperto. La maggior parte delle volte questo è sufficiente, e non hai mai bisogno di aprire il transcript completo.

172 174 

175Da v2.1.161, quando la sessione sta eseguendo elementi di lavoro paralleli, il pannello nomina anche quello che sta girando più a lungo e da quanto tempo sta andando, così puoi vedere cosa la sessione sta aspettando senza collegarti.

176 

173Digita una risposta nel pannello peek e premi `Enter` per inviarla a quella sessione. Quando la sessione sta facendo una domanda a scelta multipla, il pannello peek mostra le opzioni e puoi premere un tasto numero per sceglierne uno. Per altre sessioni bloccate, premi `Tab` per riempire l'input con una risposta suggerita che puoi modificare prima di inviare. Prefissa una risposta con `!` per inviare un comando Bash invece.177Digita una risposta nel pannello peek e premi `Enter` per inviarla a quella sessione. Quando la sessione sta facendo una domanda a scelta multipla, il pannello peek mostra le opzioni e puoi premere un tasto numero per sceglierne uno. Per altre sessioni bloccate, premi `Tab` per riempire l'input con una risposta suggerita che puoi modificare prima di inviare. Prefissa una risposta con `!` per inviare un comando Bash invece.

174 178 

175Con la [dettatura vocale](/it/voice-dictation) abilitata, tieni premuto o tocca il tuo tasto push-to-talk mentre l'input di risposta è focalizzato per dettare una risposta invece di digitarla. Lo stesso funziona nell'input di dispatch in fondo a agent view.179Da v2.1.145, con la [dettatura vocale](/it/voice-dictation) abilitata, tieni premuto o tocca il tuo tasto push-to-talk mentre l'input di risposta è focalizzato per dettare una risposta invece di digitarla. Lo stesso funziona nell'input di dispatch in fondo a agent view.

176 180 

177Usa `↑` e `↓` per fare peek alle sessioni adiacenti senza chiudere il pannello, o `→` per collegarti.181Usa `↑` e `↓` per fare peek alle sessioni adiacenti senza chiudere il pannello, o `→` per collegarti.

178 182 


224| `a:<name>` | Sessioni che eseguono l'agente denominato |228| `a:<name>` | Sessioni che eseguono l'agente denominato |

225| `s:<state>` | Sessioni nello stato dato, come `s:working`. Accetta anche `s:blocked` per tutto ciò che sta aspettando te |229| `s:<state>` | Sessioni nello stato dato, come `s:working`. Accetta anche `s:blocked` per tutto ciò che sta aspettando te |

226| `#<number>` o un URL PR | La sessione che lavora su quella pull request |230| `#<number>` o un URL PR | La sessione che lavora su quella pull request |

231| Qualsiasi altro URL | La sessione il cui primo prompt conteneva quell'URL |

227 232 

228<h3 id="keyboard-shortcuts">233<h3 id="keyboard-shortcuts">

229 Scorciatoie da tastiera234 Scorciatoie da tastiera


478Ogni sessione in background ha un ID breve che puoi usare dalla shell. L'ID viene stampato quando avvii una sessione con `claude --bg`, e l'ID di ogni sessione è il nome della sua directory sotto `~/.claude/jobs/`. Questi comandi sono utili per lo scripting o quando non vuoi aprire agent view.483Ogni sessione in background ha un ID breve che puoi usare dalla shell. L'ID viene stampato quando avvii una sessione con `claude --bg`, e l'ID di ogni sessione è il nome della sua directory sotto `~/.claude/jobs/`. Questi comandi sono utili per lo scripting o quando non vuoi aprire agent view.

479 484 

480| Command | Purpose |485| Command | Purpose |

481| :--------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |486| :--------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

482| `claude agents` | Apri agent view |487| `claude agents` | Apri agent view |

483| `claude agents --cwd <path>` | Apri agent view limitato alle sessioni avviate sotto `<path>` |488| `claude agents --cwd <path>` | Apri agent view limitato alle sessioni avviate sotto `<path>` |

484| `claude agents --json` | Stampa le sessioni attive come un array JSON e esci. Ogni voce ha `pid`, `cwd`, `kind`, e `startedAt`, più `sessionId`, `name`, e `status` quando impostati. Combina con `--cwd <path>` per filtrare |489| `claude agents --json` | Stampa le sessioni attive come un array JSON e esci: ogni sessione live, più sessioni in background che stanno ancora lavorando o sono bloccate anche quando il loro processo è uscito. Aggiungi `--all` per includere anche le sessioni in background completate. Ogni voce ha `cwd`, `kind`, e `startedAt`. Le voci in background hanno anche `id`, utilizzabile con `claude attach`/`logs`/`stop`, e `state`: uno di `working`, `blocked`, `done`, `failed`, o `stopped`. `pid` e `status` sono presenti solo mentre il processo è attivo, più `waitingFor` quando status è `waiting`, che dice su cosa è bloccata la sessione, come `permission prompt` o `input needed`; `sessionId` e `name` appaiono quando impostati. Combina con `--cwd <path>` per filtrare |

485| `claude attach <id>` | Collegati a una sessione in questo terminale |490| `claude attach <id>` | Collegati a una sessione in questo terminale |

486| `claude logs <id>` | Stampa l'output recente della sessione |491| `claude logs <id>` | Stampa l'output recente della sessione |

487| `claude stop <id>` | Ferma una sessione. Accetta anche `claude kill` |492| `claude stop <id>` | Ferma una sessione. Accetta anche `claude kill` |


530 535 

531Ogni sessione in background ha la variabile di ambiente `CLAUDE_JOB_DIR` impostata sulla sua directory `~/.claude/jobs/<id>`, quindi i comandi shell che la sessione esegue possono scrivere file temporanei su `$CLAUDE_JOB_DIR/tmp` senza collidere con sessioni parallele.536Ogni sessione in background ha la variabile di ambiente `CLAUDE_JOB_DIR` impostata sulla sua directory `~/.claude/jobs/<id>`, quindi i comandi shell che la sessione esegue possono scrivere file temporanei su `$CLAUDE_JOB_DIR/tmp` senza collidere con sessioni parallele.

532 537 

533Per ispezionare questo stato senza leggere direttamente i file, esegui `claude daemon status`. Riporta se il supervisor è raggiungibile, il suo ID processo e versione, la directory socket, e quante sessioni in background sono attive. `/doctor` include un riepilogo dello stesso controllo. Su Windows, `claude daemon status` espone l'errore di file sottostante quando il file della chiave pipe del daemon è bloccato o illeggibile invece di segnalare un errore di connessione generico.538Per ispezionare questo stato senza leggere direttamente i file, esegui `claude daemon status`. Riporta se il supervisor è raggiungibile, il suo ID processo e versione, la directory socket, e quante sessioni in background sono attive. `/doctor` include un riepilogo dello stesso controllo.

539 

540Il comando avverte anche quando il supervisor in esecuzione è su una versione diversa da quella di `claude` che hai invocato, il che accade dopo un aggiornamento in cui il supervisor non si è ancora riavviato. L'avviso mostra entrambe le versioni e ti dice di eseguire `claude daemon stop --any` per raccogliere la nuova versione. Quando Claude Code è installato come servizio del sistema operativo, il comando suggerito è `claude daemon stop` senza il flag.

541 

542Su Windows, `claude daemon status` espone l'errore di file sottostante quando il file della chiave pipe del daemon è bloccato o illeggibile invece di segnalare un errore di connessione generico.

534 543 

535<h3 id="turn-off-agent-view">544<h3 id="turn-off-agent-view">

536 Disattiva agent view545 Disattiva agent view


556 565 

557Prima di inviare la tua prima sessione, agent view mostra un breve suggerimento di onboarding con prompt di esempio al posto dell'elenco delle sessioni. Digita un prompt nell'input in basso e premi `Enter` per inviare la tua prima sessione.566Prima di inviare la tua prima sessione, agent view mostra un breve suggerimento di onboarding con prompt di esempio al posto dell'elenco delle sessioni. Digita un prompt nell'input in basso e premi `Enter` per inviare la tua prima sessione.

558 567 

559<h3 id="cannot-open-agents-because-background-tasks-are-running">568<h3 id="cannot-open-agents-because-work-is-running-in-the-background">

560 Impossibile aprire agenti perché sono in esecuzione attività in background569 Impossibile aprire agenti perché sono in esecuzione attività in background

561</h3>570</h3>

562 571 

563Se premere `←` per mettere in background la sessione corrente mostra `Cannot open agents — N background task(s) running`, la sessione ha lavoro in corso come un subagente, un workflow dinamico, o un comando shell in background, e la scorciatoia non lo abbandonerà silenziosamente. Esegui `/tasks` per vedere cosa è in esecuzione, quindi `/bg` per confermare l'abbandono. Vedi [From inside a session](#from-inside-a-session) per sapere cosa viene e cosa non viene trasferito quando metti in background.572Se premere `←` per mettere in background la sessione corrente mostra `Cannot open agents — N still running in the background`, la sessione ha lavoro in corso come un subagente, un workflow dinamico, o un comando shell in background, e la scorciatoia non lo abbandonerà silenziosamente. Esegui `/tasks` per vedere cosa è in esecuzione, quindi `/bg` per confermare l'abbandono. Vedi [From inside a session](#from-inside-a-session) per sapere cosa viene e cosa non viene trasferito quando metti in background.

564 573 

565<h3 id="prompt-rejected-as-too-short">574<h3 id="prompt-rejected-as-too-short">

566 Prompt rifiutato come troppo breve575 Prompt rifiutato come troppo breve

agents.md +2 −2

Details

9[Subagenti](/it/sub-agents), [visualizzazione agenti](/it/agent-view), [team di agenti](/it/agent-teams) e [flussi di lavoro dinamici](/it/workflows) parallelizzano il lavoro in modi diversi. Quello giusto dipende dal fatto che Lei voglia rimanere in ogni conversazione Lei stesso, delegare i compiti e controllare più tardi, oppure far coordinare a Claude un gruppo di lavoratori per Lei.9[Subagenti](/it/sub-agents), [visualizzazione agenti](/it/agent-view), [team di agenti](/it/agent-teams) e [flussi di lavoro dinamici](/it/workflows) parallelizzano il lavoro in modi diversi. Quello giusto dipende dal fatto che Lei voglia rimanere in ogni conversazione Lei stesso, delegare i compiti e controllare più tardi, oppure far coordinare a Claude un gruppo di lavoratori per Lei.

10 10 

11| Approccio | Cosa ti offre | Usalo quando |11| Approccio | Cosa ti offre | Usalo quando |

12| :----------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |12| :----------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

13| [Subagenti](/it/sub-agents) | Lavoratori delegati all'interno di una sessione che svolgono un compito secondario nel loro contesto e restituiscono un riepilogo | Un compito secondario allagherebbe la Vostra conversazione principale con risultati di ricerca, log o contenuti di file che non consulterete di nuovo |13| [Subagenti](/it/sub-agents) | Lavoratori delegati all'interno di una sessione che svolgono un compito secondario nel loro contesto e restituiscono un riepilogo | Un compito secondario allagherebbe la Vostra conversazione principale con risultati di ricerca, log o contenuti di file che non consulterete di nuovo |

14| [Visualizzazione agenti](/it/agent-view) | Una schermata per inviare e monitorare sessioni in esecuzione in background, aperta con `claude agents`. Anteprima di ricerca | Avete diversi compiti indipendenti e volete delegarli, controllare lo stato a colpo d'occhio e intervenire solo quando uno ha bisogno di voi |14| [Visualizzazione agenti](/it/agent-view) | Una schermata per inviare e monitorare sessioni in esecuzione in background, aperta con `claude agents`. Anteprima di ricerca | Avete diversi compiti indipendenti e volete delegarli, controllare lo stato a colpo d'occhio e intervenire solo quando uno ha bisogno di voi |

15| [Team di agenti](/it/agent-teams) | Più sessioni coordinate con un elenco di attività condiviso e messaggistica tra agenti, gestite da un leader. Sperimentale e disabilitato per impostazione predefinita | Volete che Claude divida un progetto in parti, le assegni e mantenga i lavoratori sincronizzati |15| [Team di agenti](/it/agent-teams) | Più sessioni coordinate con un elenco di attività condiviso e messaggistica tra agenti, gestite da un leader. Sperimentale e disabilitato per impostazione predefinita | Volete che Claude divida un progetto in parti, le assegni e mantenga i lavoratori sincronizzati |

16| [Flussi di lavoro dinamici](/it/workflows) | Uno script che esegue molti subagenti e controlla i loro risultati, per un lavoro troppo grande per coordinare in un solo turno o che necessita di più di un singolo passaggio. Anteprima di ricerca | Un compito è troppo grande per una manciata di subagenti, oppure volete che i risultati siano verificati l'uno contro l'altro: un audit a livello di codebase, una migrazione di 500 file, ricerca verificata in modo incrociato, o un piano elaborato da diversi angoli |16| [Flussi di lavoro dinamici](/it/workflows) | Uno script che esegue molti subagenti e controlla i loro risultati, per un lavoro troppo grande per coordinare in un solo turno o che necessita di più di un singolo passaggio | Un compito è troppo grande per una manciata di subagenti, oppure volete che i risultati siano verificati l'uno contro l'altro: un audit a livello di codebase, una migrazione di 500 file, ricerca verificata in modo incrociato, o un piano elaborato da diversi angoli |

17 17 

18In ogni approccio i lavoratori sono sessioni Claude. Per coinvolgere uno strumento diverso, esponilo a Claude come [server MCP](/it/mcp).18In ogni approccio i lavoratori sono sessioni Claude. Per coinvolgere uno strumento diverso, esponilo a Claude come [server MCP](/it/mcp).

19 19 

Details

6 6 

7> Scopri come configurare Claude Code tramite Amazon Bedrock, inclusa la configurazione, la configurazione IAM e la risoluzione dei problemi.7> Scopri come configurare Claude Code tramite Amazon Bedrock, inclusa la configurazione, la configurazione IAM e la risoluzione dei problemi.

8 8 

9export const ContactSalesCard = ({surface}) => {

10 const utm = content => `utm_source=claude_code&utm_medium=docs&utm_content=${surface}_${content}`;

11 const iconArrowRight = (size = 13) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">

12 <line x1="5" y1="12" x2="19" y2="12" />

13 <polyline points="12 5 19 12 12 19" />

14 </svg>;

15 const STYLES = `

16.cc-cs {

17 --cs-slate: #141413;

18 --cs-clay: #d97757;

19 --cs-clay-deep: #c6613f;

20 --cs-gray-000: #ffffff;

21 --cs-gray-700: #3d3d3a;

22 --cs-border-default: rgba(31, 30, 29, 0.15);

23 font-family: inherit;

24}

25.dark .cc-cs {

26 --cs-slate: #f0eee6;

27 --cs-gray-000: #262624;

28 --cs-gray-700: #bfbdb4;

29 --cs-border-default: rgba(240, 238, 230, 0.14);

30}

31.cc-cs-card {

32 display: flex; align-items: center; justify-content: space-between;

33 gap: 16px; padding: 14px 16px; margin: 0;

34 background: var(--cs-gray-000); border: 0.5px solid var(--cs-border-default);

35 border-radius: 8px; flex-wrap: wrap;

36}

37.cc-cs-text { font-size: 13px; color: var(--cs-gray-700); line-height: 1.5; flex: 1; min-width: 240px; }

38.cc-cs-text strong { font-weight: 550; color: var(--cs-slate); }

39.cc-cs-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

40.cc-cs-btn-clay {

41 display: inline-flex; align-items: center; gap: 8px;

42 background: var(--cs-clay-deep); color: #fff; border: none;

43 border-radius: 8px; padding: 8px 14px;

44 font-size: 13px; font-weight: 500;

45 transition: background-color 0.15s; white-space: nowrap;

46}

47.cc-cs-btn-clay:hover { background: var(--cs-clay); }

48.cc-cs-btn-ghost {

49 display: inline-flex; align-items: center; gap: 8px;

50 background: transparent; color: var(--cs-gray-700);

51 border: 0.5px solid var(--cs-border-default);

52 border-radius: 8px; padding: 8px 14px;

53 font-size: 13px; font-weight: 500;

54}

55.cc-cs-btn-ghost:hover { background: rgba(0, 0, 0, 0.04); }

56.dark .cc-cs-btn-ghost:hover { background: rgba(255, 255, 255, 0.04); }

57@media (max-width: 720px) {

58 .cc-cs-actions { width: 100%; }

59}

60`;

61 return <div className="cc-cs not-prose">

62 <style>{STYLES}</style>

63 <div className="cc-cs-card">

64 <div className="cc-cs-text">

65 <strong>Deploying Claude Code across your organization?</strong> Talk to sales about enterprise plans, SSO, and centralized billing.

66 </div>

67 <div className="cc-cs-actions">

68 <a href={`https://claude.com/pricing?${utm('view_plans')}#plans-business`} className="cc-cs-btn-ghost">

69 View plans

70 </a>

71 <a href={`https://claude.com/contact-sales?${utm('contact_sales')}`} className="cc-cs-btn-clay">

72 Contact sales {iconArrowRight()}

73 </a>

74 </div>

75 </div>

76 </div>;

77};

78 

79<ContactSalesCard surface="bedrock" />

80 

9<h2 id="prerequisites">81<h2 id="prerequisites">

10 Prerequisiti82 Prerequisiti

11</h2>83</h2>


141 "Credentials": {213 "Credentials": {

142 "AccessKeyId": "value",214 "AccessKeyId": "value",

143 "SecretAccessKey": "value",215 "SecretAccessKey": "value",

144 "SessionToken": "value"216 "SessionToken": "value",

217 "Expiration": "2026-01-01T00:00:00Z"

145 }218 }

146}219}

147```220```

148 221 

222`Expiration` è facoltativo. {/* min-version: 2.1.176 */}A partire da Claude Code v2.1.176, quando il comando restituisce un `Expiration` ISO 8601 valido, Claude Code memorizza nella cache le credenziali fino a cinque minuti prima di tale ora. Senza di esso, o nelle versioni precedenti, le credenziali vengono memorizzate nella cache per un'ora.

223 

149<h3 id="3-configure-claude-code">224<h3 id="3-configure-claude-code">

150 3. Configura Claude Code225 3. Configura Claude Code

151</h3>226</h3>


155```bash theme={null}230```bash theme={null}

156# Abilita integrazione Bedrock231# Abilita integrazione Bedrock

157export CLAUDE_CODE_USE_BEDROCK=1232export CLAUDE_CODE_USE_BEDROCK=1

158export AWS_REGION=us-east-1 # o la tua regione preferita233export AWS_REGION=us-east-1 # facoltativo se il tuo profilo AWS ha già impostato una regione

159 234 

160# Facoltativo: Sovrascrivi la regione AWS per il modello piccolo/veloce (Bedrock e Mantle).235# Facoltativo: Sovrascrivi la regione AWS per il modello piccolo/veloce (Bedrock e Mantle).

161# Su Bedrock, non ha effetto senza ANTHROPIC_DEFAULT_HAIKU_MODEL236# Su Bedrock, non ha effetto senza ANTHROPIC_DEFAULT_HAIKU_MODEL


168 243 

169Quando abiliti Bedrock per Claude Code, tieni presente quanto segue:244Quando abiliti Bedrock per Claude Code, tieni presente quanto segue:

170 245 

171* `AWS_REGION` è una variabile di ambiente obbligatoria. Claude Code non legge dal file di configurazione `.aws` per questa impostazione.246* {/* min-version: 2.1.172 */}A partire dalla v2.1.172, devi solo impostare `AWS_REGION` per sovrascrivere la regione del tuo profilo AWS o quando il tuo profilo non ha una regione. Claude Code risolve la regione in questo ordine:

247 

248 * `AWS_REGION`

249 * `AWS_DEFAULT_REGION`

250 * la `region` impostata sul tuo profilo AWS attivo, letta dal file delle credenziali condivise di AWS per primo e poi dal file di configurazione condiviso, corrispondendo alla precedenza di AWS SDK

251 * `us-east-1`

252 

253 Il profilo attivo è `AWS_PROFILE` se impostato, altrimenti `default`. Imposta `AWS_SHARED_CREDENTIALS_FILE` o `AWS_CONFIG_FILE` per puntare a percorsi di file non predefiniti. Esegui `/status` per vedere la regione risolta. Quando la regione proviene dai tuoi file di configurazione AWS o dal fallback predefinito, `/status` nota anche la fonte. Nella v2.1.171 e precedenti, Claude Code non legge i file di configurazione AWS, quindi imposta `AWS_REGION` esplicitamente.

172* Quando si utilizza Bedrock, il comando `/logout` non è disponibile poiché l'autenticazione viene gestita tramite credenziali AWS.254* Quando si utilizza Bedrock, il comando `/logout` non è disponibile poiché l'autenticazione viene gestita tramite credenziali AWS.

173* Lo strumento WebSearch non è disponibile su Bedrock. Vedi [Comportamento dello strumento WebSearch](/it/tools-reference#websearch-tool-behavior).255* Lo strumento WebSearch non è disponibile su Bedrock. Vedi [Comportamento dello strumento WebSearch](/it/tools-reference#websearch-tool-behavior).

174* Puoi utilizzare file di impostazioni per variabili di ambiente come `AWS_PROFILE` che non desideri perdere in altri processi. Vedi [Impostazioni](/it/settings) per ulteriori informazioni.256* Puoi utilizzare file di impostazioni per variabili di ambiente come `AWS_PROFILE` che non desideri perdere in altri processi. Vedi [Impostazioni](/it/settings) per ulteriori informazioni.


178</h3>260</h3>

179 261 

180<Warning>262<Warning>

181 Fissa versioni specifiche del modello quando distribuisci a più utenti. Senza fissaggio, alias di modello come `sonnet` e `opus` si risolvono nella versione più recente, che potrebbe non essere ancora disponibile nel tuo account Bedrock quando Anthropic rilascia un aggiornamento. Claude Code [ritorna](#startup-model-checks) alla versione precedente all'avvio quando la versione più recente non è disponibile, ma il fissaggio ti consente di controllare quando i tuoi utenti passano a un nuovo modello.263 Fissa versioni specifiche del modello quando distribuisci a più utenti. Senza fissaggio, alias di modello come `sonnet` e `opus` si risolvono nel valore predefinito integrato di Claude Code per Bedrock, che può essere in ritardo rispetto alla versione più recente e potrebbe non essere ancora disponibile nel tuo account. Claude Code [ritorna](#startup-model-checks) alla versione precedente all'avvio quando il valore predefinito non è disponibile, ma il fissaggio ti consente di controllare quando i tuoi utenti passano a un nuovo modello.

182</Warning>264</Warning>

183 265 

184Imposta queste variabili di ambiente su ID di modello Bedrock specifici.266Imposta queste variabili di ambiente su ID di modello Bedrock specifici.


191export ANTHROPIC_DEFAULT_HAIKU_MODEL='us.anthropic.claude-haiku-4-5-20251001-v1:0'273export ANTHROPIC_DEFAULT_HAIKU_MODEL='us.anthropic.claude-haiku-4-5-20251001-v1:0'

192```274```

193 275 

194Queste variabili utilizzano ID di profili di inferenza tra regioni (con il prefisso `us.`). Se utilizzi un prefisso di regione diverso o profili di inferenza dell'applicazione, regola di conseguenza. Per gli ID di modello attuali e legacy, vedi [Panoramica dei modelli](https://platform.claude.com/docs/en/about-claude/models/overview). Vedi [Configurazione del modello](/it/model-config#pin-models-for-third-party-deployments) per l'elenco completo delle variabili di ambiente.276Queste variabili utilizzano ID di profili di inferenza tra regioni (con il prefisso `us.`). Se utilizzi un prefisso di regione diverso o profili di inferenza dell'applicazione, regola di conseguenza. Nelle regioni AWS GovCloud, utilizza il prefisso `us-gov.`. Per gli ID di modello attuali e legacy, vedi [Panoramica dei modelli](https://platform.claude.com/docs/en/about-claude/models/overview). Vedi [Configurazione del modello](/it/model-config#pin-models-for-third-party-deployments) per l'elenco completo delle variabili di ambiente.

195 277 

196Claude Code utilizza questi modelli predefiniti quando non sono impostate variabili di fissaggio:278Claude Code utilizza questi modelli predefiniti quando non sono impostate variabili di fissaggio:

197 279 


366export AWS_REGION=us-east-1448export AWS_REGION=us-east-1

367```449```

368 450 

369Claude Code costruisce l'URL dell'endpoint da `AWS_REGION`. Per sovrascriverlo per un endpoint personalizzato o gateway, imposta `ANTHROPIC_BEDROCK_MANTLE_BASE_URL`.451Claude Code costruisce l'URL dell'endpoint dalla regione AWS. {/* min-version: 2.1.172 */}A partire da v2.1.172, la regione viene risolta con la stessa precedenza di [Bedrock sopra](#3-configure-claude-code); le versioni precedenti utilizzano solo `AWS_REGION`. Per sovrascrivere l'URL per un endpoint personalizzato o gateway, imposta `ANTHROPIC_BEDROCK_MANTLE_BASE_URL`.

370 452 

371Esegui `/status` all'interno di Claude Code per confermare. La riga del provider mostra `Amazon Bedrock (Mantle)` quando Mantle è attivo.453Esegui `/status` all'interno di Claude Code per confermare. La riga del provider mostra `Amazon Bedrock (Mantle)` quando Mantle è attivo.

372 454 

analytics.md +1 −1

Details

262</Note>262</Note>

263 263 

264<h2 id="related-resources">264<h2 id="related-resources">

265 Related resources265 Risorse correlate

266</h2>266</h2>

267 267 

268* [Monitoring with OpenTelemetry](/it/monitoring-usage): esporta metriche e eventi in tempo reale al tuo stack di osservabilità268* [Monitoring with OpenTelemetry](/it/monitoring-usage): esporta metriche e eventi in tempo reale al tuo stack di osservabilità

Details

136* **Intervalli di aggiornamento**: per impostazione predefinita, `apiKeyHelper` viene chiamato dopo 5 minuti o in risposta a HTTP 401. Impostate la variabile di ambiente `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` per intervalli di aggiornamento personalizzati.136* **Intervalli di aggiornamento**: per impostazione predefinita, `apiKeyHelper` viene chiamato dopo 5 minuti o in risposta a HTTP 401. Impostate la variabile di ambiente `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` per intervalli di aggiornamento personalizzati.

137* **Avviso di helper lento**: se `apiKeyHelper` impiega più di 10 secondi per restituire una chiave, Claude Code visualizza un avviso nella barra del prompt mostrando il tempo trascorso. Se vedete questo avviso regolarmente, verificate se lo script di credenziali può essere ottimizzato.137* **Avviso di helper lento**: se `apiKeyHelper` impiega più di 10 secondi per restituire una chiave, Claude Code visualizza un avviso nella barra del prompt mostrando il tempo trascorso. Se vedete questo avviso regolarmente, verificate se lo script di credenziali può essere ottimizzato.

138 138 

139`apiKeyHelper`, `ANTHROPIC_API_KEY`, e `ANTHROPIC_AUTH_TOKEN` si applicano solo alle sessioni CLI del terminale. Claude Desktop e le sessioni remote utilizzano esclusivamente OAuth e non chiamano `apiKeyHelper` né leggono variabili di ambiente della chiave API.139`apiKeyHelper`, `ANTHROPIC_API_KEY`, e `ANTHROPIC_AUTH_TOKEN` si applicano solo alle sessioni CLI del terminale. Claude Desktop e le sessioni cloud utilizzano esclusivamente OAuth e non chiamano `apiKeyHelper` né leggono variabili di ambiente della chiave API.

140 140 

141<h3 id="authentication-precedence">141<h3 id="authentication-precedence">

142 Precedenza di autenticazione142 Precedenza di autenticazione

Details

6 6 

7> Comunica al classificatore della modalità auto quali repository, bucket e domini la tua organizzazione ritiene affidabili. Imposta il contesto dell'ambiente, sostituisci le regole di blocco e autorizzazione predefinite e ispeziona la tua configurazione effettiva con i sottocomandi CLI della modalità auto.7> Comunica al classificatore della modalità auto quali repository, bucket e domini la tua organizzazione ritiene affidabili. Imposta il contesto dell'ambiente, sostituisci le regole di blocco e autorizzazione predefinite e ispeziona la tua configurazione effettiva con i sottocomandi CLI della modalità auto.

8 8 

9[Auto mode](/it/permission-modes#eliminate-prompts-with-auto-mode) consente a Claude Code di funzionare senza prompt di autorizzazione instradando ogni chiamata di strumento attraverso un classificatore che blocca qualsiasi cosa irreversibile, distruttiva o rivolta al di fuori del tuo ambiente. Utilizza il blocco di impostazioni `autoMode` per comunicare al classificatore quali repository, bucket e domini la tua organizzazione ritiene affidabili, in modo che smetta di bloccare le operazioni interne di routine.9[Auto mode](/it/permission-modes#eliminate-prompts-with-auto-mode) consente a Claude Code di funzionare senza prompt di autorizzazione instradando ogni chiamata di strumento attraverso un classificatore che blocca qualsiasi cosa irreversibile, distruttiva o rivolta al di fuori del tuo ambiente. Le regole di negazione e richiesta esplicita vengono valutate prima del classificatore e continuano comunque a bloccare o richiedere. Utilizza il blocco di impostazioni `autoMode` per comunicare al classificatore quali repository, bucket e domini la tua organizzazione ritiene affidabili, in modo che smetta di bloccare le operazioni interne di routine.

10 10 

11<Note>11<Note>

12 Auto mode è disponibile a tutti gli utenti dell'API Anthropic. Su Amazon Bedrock, Google Cloud Vertex AI e Microsoft Foundry, devi prima [impostare `CLAUDE_CODE_ENABLE_AUTO_MODE`](/it/permission-modes#enable-auto-mode-on-bedrock-vertex-ai-or-foundry). Se Claude Code segnala che la modalità auto non è disponibile per il tuo account, controlla i [requisiti completi](/it/permission-modes#eliminate-prompts-with-auto-mode), che coprono anche i modelli supportati e l'abilitazione dell'amministratore sui piani Team ed Enterprise.12 Auto mode è disponibile a tutti gli utenti dell'API Anthropic. Su Amazon Bedrock, Google Cloud Vertex AI e Microsoft Foundry, devi prima [impostare `CLAUDE_CODE_ENABLE_AUTO_MODE`](/it/permission-modes#enable-auto-mode-on-bedrock-vertex-ai-or-foundry). Se Claude Code segnala che la modalità auto non è disponibile per il tuo account, controlla i [requisiti completi](/it/permission-modes#eliminate-prompts-with-auto-mode), che coprono anche i modelli supportati e l'abilitazione dell'amministratore sui piani Team ed Enterprise.


35| Ambito | File | Utilizzare per |35| Ambito | File | Utilizzare per |

36| :---------------------------- | :---------------------------------------------- | :------------------------------------------------------------- |36| :---------------------------- | :---------------------------------------------- | :------------------------------------------------------------- |

37| Un sviluppatore | `~/.claude/settings.json` | Infrastruttura affidabile personale |37| Un sviluppatore | `~/.claude/settings.json` | Infrastruttura affidabile personale |

38| Un progetto, uno sviluppatore | `.claude/settings.local.json` | Bucket o servizi affidabili per progetto, gitignored |38| Un progetto, uno sviluppatore | `.claude/settings.local.json` | Bucket o servizi affidabili per progetto |

39| A livello di organizzazione | [Managed settings](/it/server-managed-settings) | Infrastruttura affidabile distribuita a tutti gli sviluppatori |39| A livello di organizzazione | [Managed settings](/it/server-managed-settings) | Infrastruttura affidabile distribuita a tutti gli sviluppatori |

40| Flag `--settings` o Agent SDK | JSON inline | Override per invocazione per l'automazione |40| Flag `--settings` o Agent SDK | JSON inline | Override per invocazione per l'automazione |

41 41 


116 116 

117Le richieste generali non contano come intento esplicito. Chiedere a Claude di "pulire il repository" non autorizza il force-push, ma chiedere a Claude di "force-push questo ramo" sì.117Le richieste generali non contano come intento esplicito. Chiedere a Claude di "pulire il repository" non autorizza il force-push, ma chiedere a Claude di "force-push questo ramo" sì.

118 118 

119Per allentare, aggiungi a `allow` quando il classificatore contrassegna ripetutamente un pattern di routine che le eccezioni predefinite non coprono. Per stringere, aggiungi a `soft_deny` per i rischi distruttivi specifici del tuo ambiente che i valori predefiniti non coprono, o a `hard_deny` per i confini di sicurezza che non devono mai essere superati. Per mantenere le regole incorporate mentre aggiungi le tue, includi la stringa letterale `"$defaults"` nell'array. Le regole predefinite vengono inserite in quella posizione, quindi le tue regole personalizzate possono andare prima o dopo di esse, e continui a ereditare gli aggiornamenti mentre l'elenco incorporato cambia tra le versioni.119Per allentare, aggiungi a `allow` quando il classificatore contrassegna ripetutamente un pattern di routine che le eccezioni predefinite non coprono. Per stringere, aggiungi a `soft_deny` per i rischi distruttivi specifici del tuo ambiente che i valori predefiniti non coprono, o a `hard_deny` per i confini di sicurezza che non devono mai essere superati.

120 

121Per mantenere le regole incorporate mentre aggiungi le tue, includi la stringa letterale `"$defaults"` nell'array. Le regole predefinite vengono inserite in quella posizione, quindi le tue regole personalizzate possono andare prima o dopo di esse, e continui a ereditare gli aggiornamenti mentre l'elenco incorporato cambia tra le versioni.

120 122 

121```json theme={null}123```json theme={null}

122{124{


186Per reagire ai rifiuti a livello di programmazione, utilizza l'[hook `PermissionDenied`](/it/hooks#permissiondenied).188Per reagire ai rifiuti a livello di programmazione, utilizza l'[hook `PermissionDenied`](/it/hooks#permissiondenied).

187 189 

188<h2 id="see-also">190<h2 id="see-also">

189 See also191 Vedi anche

190</h2>192</h2>

191 193 

192* [Permission modes](/it/permission-modes#eliminate-prompts-with-auto-mode): cos'è la modalità auto, cosa blocca per impostazione predefinita e come abilitarla194* [Permission modes](/it/permission-modes#eliminate-prompts-with-auto-mode): cos'è la modalità auto, cosa blocca per impostazione predefinita e come abilitarla

channels.md +1 −1

Details

269 </Step>269 </Step>

270</Steps>270</Steps>

271 271 

272Se Claude incontra un prompt di permesso mentre sei lontano dal terminale, la sessione si mette in pausa fino a quando non rispondi. I server di canale che dichiarano la [capacità di inoltro dei permessi](/it/channels-reference#relay-permission-prompts) possono inoltrarti questi prompt in modo che tu possa approvare o negare da remoto. Per l'uso incustodito, [`--dangerously-skip-permissions`](/it/permission-modes#skip-all-checks-with-bypasspermissions-mode) bypassa completamente i prompt, ma usalo solo in ambienti di cui ti fidi.272Se Claude incontra un prompt di permesso mentre sei lontano dal terminale, la sessione si mette in pausa fino a quando non rispondi. I server di canale che dichiarano la [capacità di inoltro dei permessi](/it/channels-reference#relay-permission-prompts) possono inoltrarti questi prompt in modo che tu possa approvare o negare da remoto. Per l'uso incustodito, [`--dangerously-skip-permissions`](/it/permission-modes#skip-all-checks-with-bypasspermissions-mode) bypassa i prompt diversi dalle regole di richiesta esplicita, ma usalo solo in ambienti di cui ti fidi.

273 273 

274Quando esegui i canali in modalità non interattiva con `-p`, gli strumenti che necessitano di input da terminale, come domande a scelta multipla e approvazione della modalità plan, sono disabilitati in modo che la sessione non si blocchi mai in attesa di input.274Quando esegui i canali in modalità non interattiva con `-p`, gli strumenti che necessitano di input da terminale, come domande a scelta multipla e approvazione della modalità plan, sono disabilitati in modo che la sessione non si blocchi mai in attesa di input.

275 275 

Details

60 60 

61Questa procedura dettagliata crea un server a file singolo che ascolta le richieste HTTP e le inoltra nella tua sessione di Claude Code. Alla fine, qualsiasi cosa possa inviare un HTTP POST, come una pipeline CI, un avviso di monitoraggio o un comando `curl`, può inviare eventi a Claude.61Questa procedura dettagliata crea un server a file singolo che ascolta le richieste HTTP e le inoltra nella tua sessione di Claude Code. Alla fine, qualsiasi cosa possa inviare un HTTP POST, come una pipeline CI, un avviso di monitoraggio o un comando `curl`, può inviare eventi a Claude.

62 62 

63Questo esempio utilizza [Bun](https://bun.sh) come runtime per il suo server HTTP integrato e il supporto di TypeScript. Puoi utilizzare [Node](https://nodejs.org) o [Deno](https://deno.com) invece; l'unico requisito è l'[SDK MCP](https://www.npmjs.com/package/@modelcontextprotocol/sdk).63Questo esempio utilizza [Bun](https://bun.sh) come runtime per il suo server HTTP integrato e il supporto di TypeScript. Puoi utilizzare [Node](https://nodejs.org) o [Deno](https://deno.com) invece; l'unico requisito è l'[MCP SDK](https://www.npmjs.com/package/@modelcontextprotocol/sdk).

64 64 

65<Steps>65<Steps>

66 <Step title="Crea il progetto">66 <Step title="Crea il progetto">

67 Crea una nuova directory e installa l'SDK MCP:67 Crea una nuova directory e installa l'MCP SDK:

68 68 

69 ```bash theme={null}69 ```bash theme={null}

70 mkdir webhook-channel && cd webhook-channel70 mkdir webhook-channel && cd webhook-channel


142 claude --dangerously-load-development-channels server:webhook142 claude --dangerously-load-development-channels server:webhook

143 ```143 ```

144 144 

145 La prima volta che avvii una sessione in questo progetto, Claude Code chiede il consenso prima di utilizzare il nuovo server da `.mcp.json`. La finestra di dialogo segnala "Nuovo server MCP trovato in questo progetto: webhook". Seleziona **Usa questo server MCP** per continuare.

146 

145 Quando Claude Code si avvia, legge la tua configurazione MCP, genera il tuo `webhook.ts` come un sottoprocesso e il listener HTTP si avvia automaticamente sulla porta che hai configurato (8788 in questo esempio). Non è necessario eseguire il server da solo.147 Quando Claude Code si avvia, legge la tua configurazione MCP, genera il tuo `webhook.ts` come un sottoprocesso e il listener HTTP si avvia automaticamente sulla porta che hai configurato (8788 in questo esempio). Non è necessario eseguire il server da solo.

146 148 

149 Un avviso attenuato sotto il banner di avvio conferma che il canale è registrato: `Channels (experimental) messages from server:webhook inject directly in this session · restart without --dangerously-load-development-channels to stop`.

150 

147 Se vedi "bloccato dalla politica dell'organizzazione", il tuo amministratore dell'organizzazione deve prima [abilitare i canali](/it/channels#enterprise-controls).151 Se vedi "bloccato dalla politica dell'organizzazione", il tuo amministratore dell'organizzazione deve prima [abilitare i canali](/it/channels#enterprise-controls).

148 152 

149 In un terminale separato, simula un webhook inviando un HTTP POST con un messaggio al tuo server. Questo esempio invia un avviso di errore CI alla porta 8788 (o qualsiasi porta tu abbia configurato):153 In un terminale separato, simula un webhook inviando un HTTP POST con un messaggio al tuo server. Questo esempio invia un avviso di errore CI alla porta 8788 (o qualsiasi porta tu abbia configurato):


753curl -d "list the files in this directory" -H "X-Sender: dev" localhost:8788757curl -d "list the files in this directory" -H "X-Sender: dev" localhost:8788

754```758```

755 759 

756La finestra di dialogo di autorizzazione locale si apre nel tuo terminale di Claude Code. Un momento dopo il prompt appare nel flusso `/events`, incluso l'ID di cinque lettere. Approvalo dal lato remoto:760L'elenco dei file è di sola lettura, quindi Claude lo esegue senza approvazione. La finestra di dialogo di autorizzazione si apre quando Claude chiama lo strumento `reply` per inviare la sua risposta indietro. La finestra di dialogo locale si apre nel tuo terminale di Claude Code e un momento dopo il prompt per `mcp__webhook__reply` appare nel flusso `/events`, incluso l'ID di cinque lettere. Approvalo dal lato remoto:

757 761 

758```bash theme={null}762```bash theme={null}

759curl -d "yes <id>" -H "X-Sender: dev" localhost:8788763curl -d "yes <id>" -H "X-Sender: dev" localhost:8788

760```764```

761 765 

762La finestra di dialogo locale si chiude e lo strumento viene eseguito. La risposta di Claude torna tramite lo strumento `reply` e atterra anche nel flusso.766La finestra di dialogo locale si chiude, lo strumento `reply` viene eseguito e la risposta di Claude atterra nel flusso.

763 767 

764I tre pezzi specifici del canale in questo file:768I tre pezzi specifici del canale in questo file:

765 769 

Details

59 59 

60Ogni sessione viene eseguita in una VM gestita da Anthropic appena creata con il tuo repository clonato. Questa sezione copre cosa è disponibile quando una sessione inizia e come personalizzarlo.60Ogni sessione viene eseguita in una VM gestita da Anthropic appena creata con il tuo repository clonato. Questa sezione copre cosa è disponibile quando una sessione inizia e come personalizzarlo.

61 61 

62<h3 id="what-s-available-in-cloud-sessions">62<h3 id="whats-available-in-cloud-sessions">

63 Cosa è disponibile nelle sessioni cloud63 Cosa è disponibile nelle sessioni cloud

64</h3>64</h3>

65 65 

66Le sessioni cloud iniziano da un clone appena creato del tuo repository. Qualsiasi cosa sottoposta a commit nel repository è disponibile. Qualsiasi cosa che hai installato o configurato solo sulla tua macchina non lo è.66Le sessioni cloud iniziano da un clone appena creato del tuo repository. Qualsiasi cosa sottoposta a commit nel repository è disponibile. Qualsiasi cosa che hai installato o configurato solo sulla tua macchina non lo è.

67 67 

68| | Disponibile nelle sessioni cloud | Perché |68| | Disponibile nelle sessioni cloud | Perché |

69| :------------------------------------------------------------------------------ | :------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |69| :------------------------------------------------------------------------------ | :------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

70| Il tuo `CLAUDE.md` del repository | Sì | Parte del clone |70| Il tuo `CLAUDE.md` del repository | Sì | Parte del clone |

71| I tuoi hook `.claude/settings.json` del repository | Sì | Parte del clone |71| I tuoi hook `.claude/settings.json` del repository | Sì | Parte del clone |

72| I tuoi server MCP `.mcp.json` del repository | Sì | Parte del clone |72| I tuoi server MCP `.mcp.json` del repository | Sì | Parte del clone |


74| Le tue `.claude/skills/`, `.claude/agents/`, `.claude/commands/` del repository | Sì | Parte del clone |74| Le tue `.claude/skills/`, `.claude/agents/`, `.claude/commands/` del repository | Sì | Parte del clone |

75| Plugin dichiarati in `.claude/settings.json` | Sì | Installati all'inizio della sessione dal [marketplace](/it/plugin-marketplaces) che hai dichiarato. Richiede accesso alla rete per raggiungere la fonte del marketplace |75| Plugin dichiarati in `.claude/settings.json` | Sì | Installati all'inizio della sessione dal [marketplace](/it/plugin-marketplaces) che hai dichiarato. Richiede accesso alla rete per raggiungere la fonte del marketplace |

76| Il tuo `~/.claude/CLAUDE.md` utente | No | Vive sulla tua macchina, non nel repository |76| Il tuo `~/.claude/CLAUDE.md` utente | No | Vive sulla tua macchina, non nel repository |

77| Le tue `~/.claude/skills/`, `~/.claude/agents/`, `~/.claude/commands/` utente | No | Vivono sulla tua macchina, non nel repository. Eseguine il commit nella directory `.claude/` del repository. Le skill che abiliti su claude.ai vengono caricate automaticamente nelle sessioni cloud |

77| Plugin abilitati solo nelle tue impostazioni utente | No | L'`enabledPlugins` con ambito utente vive in `~/.claude/settings.json`. Dichiarali invece in `.claude/settings.json` del repository |78| Plugin abilitati solo nelle tue impostazioni utente | No | L'`enabledPlugins` con ambito utente vive in `~/.claude/settings.json`. Dichiarali invece in `.claude/settings.json` del repository |

78| Server MCP che hai aggiunto con `claude mcp add` | No | Quelli scrivono nella tua configurazione utente locale, non nel repository. Dichiara il server in [`.mcp.json`](/it/mcp#project-scope) invece |79| Server MCP che hai aggiunto con `claude mcp add` | No | Quelli scrivono nella tua configurazione utente locale, non nel repository. Dichiara il server in [`.mcp.json`](/it/mcp#project-scope) invece |

79| Token API statici e credenziali | No | Non esiste ancora un archivio di segreti dedicato. Vedi sotto |80| Token API statici e credenziali | No | Non esiste ancora un archivio di segreti dedicato. Vedi sotto |


141 142 

142Claude esegue i test come parte del lavoro su un compito. Chiedilo nel tuo prompt, come "correggi i test falliti in `tests/`" o "esegui pytest dopo ogni modifica." I test runner come pytest, jest e cargo test funzionano subito poiché sono preinstallati.143Claude esegue i test come parte del lavoro su un compito. Chiedilo nel tuo prompt, come "correggi i test falliti in `tests/`" o "esegui pytest dopo ogni modifica." I test runner come pytest, jest e cargo test funzionano subito poiché sono preinstallati.

143 144 

144PostgreSQL e Redis sono preinstallati ma non in esecuzione per impostazione predefinita. Avvia ognuno durante la sessione:145PostgreSQL e Redis sono preinstallati ma non in esecuzione per impostazione predefinita. Chiedi a Claude di avviare ognuno durante la sessione:

145 146 

146```bash theme={null}147```bash theme={null}

147service postgresql start148service postgresql start


353* Protezione contro richieste dannose354* Protezione contro richieste dannose

354* Limitazione della velocità e prevenzione degli abusi355* Limitazione della velocità e prevenzione degli abusi

355* Filtro dei contenuti per una sicurezza migliorata356* Filtro dei contenuti per una sicurezza migliorata

357* Un audit trail a livello DNS dei nomi host richiesti

356 358 

357<h3 id="default-allowed-domains">359<h3 id="default-allowed-domains">

358 Domini consentiti predefiniti360 Domini consentiti predefiniti


745| `/context` | Sì | Mostra cosa è attualmente nella finestra di contesto |747| `/context` | Sì | Mostra cosa è attualmente nella finestra di contesto |

746| `/clear` | No | Avvia una nuova sessione dalla barra laterale |748| `/clear` | No | Avvia una nuova sessione dalla barra laterale |

747 749 

748L'auto-compattazione viene eseguita automaticamente quando la finestra di contesto si avvicina alla capacità, come nella CLI. Per attivarla prima, imposta [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/it/env-vars) nelle tue [variabili di ambiente](#configure-your-environment). Ad esempio, `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=70` compatta al 70% della capacità invece del \~95% predefinito. Per modificare la dimensione della finestra effettiva per i calcoli di compattazione, usa [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/it/env-vars).750L'auto-compattazione viene eseguita automaticamente quando la finestra di contesto si avvicina alla capacità. Per attivarla prima, imposta [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/it/env-vars) nelle tue [variabili di ambiente](#configure-your-environment). Ad esempio, `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=70` compatta al 70% della capacità invece di attendere fino a quando la finestra non è quasi piena. Per modificare la dimensione della finestra effettiva per i calcoli di compattazione, usa [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/it/env-vars).

749 751 

750I [subagent](/it/sub-agents) funzionano allo stesso modo che fanno localmente. Claude può generarli con lo strumento Task per scaricare la ricerca o il lavoro parallelo in una finestra di contesto separata, mantenendo la conversazione principale più leggera. I subagent definiti in `.claude/agents/` del tuo repository vengono raccolti automaticamente. I [team di agenti](/it/agent-teams) sono disabilitati per impostazione predefinita ma possono essere abilitati aggiungendo `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` alle tue [variabili di ambiente](#configure-your-environment).752I [subagent](/it/sub-agents) funzionano allo stesso modo che fanno localmente. Claude può generarli con lo strumento Task per scaricare la ricerca o il lavoro parallelo in una finestra di contesto separata, mantenendo la conversazione principale più leggera. I subagent definiti in `.claude/agents/` del tuo repository vengono raccolti automaticamente. I [team di agenti](/it/agent-teams) sono disabilitati per impostazione predefinita ma possono essere abilitati aggiungendo `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` alle tue [variabili di ambiente](#configure-your-environment).

751 753 


868 870 

869* Esegui `/login` localmente per aggiornare le tue credenziali, quindi riconnettiti871* Esegui `/login` localmente per aggiornare le tue credenziali, quindi riconnettiti

870* Conferma che sei connesso allo stesso account che possiede la sessione872* Conferma che sei connesso allo stesso account che possiede la sessione

871* Se vedi `Remote Control may not be available for this organization`, il tuo amministratore non ha abilitato le sessioni remote per il tuo piano873* Se vedi `Remote Control may not be available for this organization`, il tuo amministratore non ha abilitato le sessioni cloud per il tuo piano

872 874 

873<h3 id="environment-expired">875<h3 id="environment-expired">

874 Ambiente scaduto876 Ambiente scaduto


884 886 

885Prima di fare affidamento sulle sessioni cloud per un flusso di lavoro, tieni conto di questi vincoli:887Prima di fare affidamento sulle sessioni cloud per un flusso di lavoro, tieni conto di questi vincoli:

886 888 

887* **Limiti di velocità**: Claude Code sul web condivide i limiti di velocità con tutti gli altri utilizzi di Claude e Claude Code all'interno del tuo account. L'esecuzione di più attività in parallelo consumerà più limiti di velocità proporzionalmente. Non esiste alcun addebito di calcolo separato per la VM cloud.889* **Limiti di velocità**: Claude Code sul web condivide i limiti di velocità con tutti gli altri utilizzi di Claude e Claude Code all'interno del tuo account. L'esecuzione di più attività in parallelo consuma più limiti di velocità proporzionalmente. Non esiste alcun addebito di calcolo separato per la VM cloud.

888* **Autenticazione del repository**: puoi spostare le sessioni da web a locale solo quando sei autenticato allo stesso account890* **Autenticazione del repository**: puoi spostare le sessioni da web a locale solo quando sei autenticato allo stesso account

889* **Restrizioni della piattaforma**: il clonaggio del repository e la creazione di pull request richiedono GitHub. Le istanze self-hosted di [GitHub Enterprise Server](/it/github-enterprise-server) sono supportate per i piani Team e Enterprise. GitLab, Bitbucket e altri repository non GitHub possono essere inviati alle sessioni cloud come [bundle locale](#send-local-repositories-without-github), ma la sessione non può eseguire il push dei risultati di nuovo al remoto891* **Restrizioni della piattaforma**: il clonaggio del repository e la creazione di pull request richiedono GitHub. Le istanze self-hosted di [GitHub Enterprise Server](/it/github-enterprise-server) sono supportate per i piani Team e Enterprise. GitLab, Bitbucket e altri repository non GitHub possono essere inviati alle sessioni cloud come [bundle locale](#send-local-repositories-without-github), ma la sessione non può eseguire il push dei risultati di nuovo al remoto

890* **Elenco IP consentiti dell'organizzazione**: le sessioni cloud chiamano l'API Anthropic dall'infrastruttura gestita da Anthropic, non dalla tua rete. Se la tua organizzazione ha [IP allowlisting](https://support.claude.com/en/articles/13200993-restrict-access-to-claude-with-ip-allowlisting) abilitato, ogni sessione cloud fallisce con un errore di autenticazione. Lo stesso vale per [Code Review](/it/code-review) e [Routines](/it/routines). Contatta il [supporto Anthropic](https://support.claude.com/) per esentare i servizi ospitati da Anthropic dall'elenco IP consentiti della tua organizzazione.892* **Elenco IP consentiti dell'organizzazione**: le sessioni cloud chiamano l'API Anthropic dall'infrastruttura gestita da Anthropic, non dalla tua rete. Se la tua organizzazione ha [IP allowlisting](https://support.claude.com/en/articles/13200993-restrict-access-to-claude-with-ip-allowlisting) abilitato, ogni sessione cloud fallisce con un errore di autenticazione. Lo stesso vale per [Code Review](/it/code-review) e [Routines](/it/routines). Contatta il [supporto Anthropic](https://support.claude.com/) per esentare i servizi ospitati da Anthropic dall'elenco IP consentiti della tua organizzazione.

claude-directory.md +1427 −1

Details

6 6 

7> Dove Claude Code legge CLAUDE.md, settings.json, hooks, skills, commands, subagents, workflows, rules e auto memory. Esplora la directory .claude nel tuo progetto e ~/.claude nella tua home directory.7> Dove Claude Code legge CLAUDE.md, settings.json, hooks, skills, commands, subagents, workflows, rules e auto memory. Esplora la directory .claude nel tuo progetto e ~/.claude nella tua home directory.

8 8 

9export const ClaudeExplorer = () => {

10 const A = useMemo(() => ({href, children}) => <a href={href} style={{

11 color: 'var(--ce-accent)',

12 textDecoration: 'none',

13 borderBottom: '1px dotted var(--ce-accent)'

14 }}>{children}</a>, []);

15 const C = useMemo(() => ({children}) => <code style={{

16 fontFamily: 'var(--ce-mono)',

17 fontSize: '0.92em',

18 padding: '1px 4px',

19 borderRadius: '3px',

20 background: 'var(--ce-surface)',

21 border: '0.5px solid var(--ce-border-subtle)'

22 }}>{children}</code>, []);

23 const commandsNote = useMemo(() => <>Commands and skills are now the same mechanism. For new workflows, use <A href="/en/skills">skills/</A> instead: same <C>/name</C> invocation, plus you can bundle supporting files.</>, []);

24 const FILE_TREE = useMemo(() => ({

25 project: {

26 label: 'your-project/',

27 children: [{

28 id: 'claude-md',

29 label: 'CLAUDE.md',

30 type: 'file',

31 icon: 'md',

32 color: '#6A9BCC',

33 badge: 'committed',

34 oneLiner: 'Project instructions Claude reads every session',

35 when: 'Loaded into context at the start of every session',

36 description: 'Project-specific instructions that shape how Claude works in this repository. Put your conventions, common commands, and architectural context here so Claude operates with the same assumptions your team does.',

37 tips: ['Target under 200 lines. Longer files still load in full but may reduce adherence', <>CLAUDE.md loads into every session. If something only matters for specific tasks, move it to a <A href="/en/skills">skill</A> or a path-scoped <A href="/en/memory#organize-rules-with-claude/rules/">rule</A> so it loads only when needed</>, 'List the commands you run most, like build, test, and format, so Claude knows them without you spelling them out each time', <>Run <C>/memory</C> to open and edit CLAUDE.md from within a session</>, <>Also works at <C>.claude/CLAUDE.md</C> if you prefer to keep the project root clean</>],

38 exampleIntro: 'This example is for a TypeScript and React project. It lists the build and test commands, the framework conventions Claude should follow, and project-specific rules like export style and file layout.',

39 example: `# Project conventions

40 

41## Commands

42- Build: \`npm run build\`

43- Test: \`npm test\`

44- Lint: \`npm run lint\`

45 

46## Stack

47- TypeScript with strict mode

48- React 19, functional components only

49 

50## Rules

51- Named exports, never default exports

52- Tests live next to source: \`foo.ts\` -> \`foo.test.ts\`

53- All API routes return \`{ data, error }\` shape`,

54 docsLink: '/en/memory'

55 }, {

56 id: 'mcp-json',

57 label: '.mcp.json',

58 type: 'file',

59 icon: 'json',

60 color: '#9B7BC4',

61 badge: 'committed',

62 oneLiner: 'Project-scoped MCP servers, shared with your team',

63 when: <>Servers connect when the session begins. Tool schemas are deferred by default and load on demand via <A href="/en/mcp#scale-with-mcp-tool-search">tool search</A></>,

64 description: <>Configures Model Context Protocol (MCP) servers that give Claude access to external tools: databases, APIs, browsers, and more. This file holds the project-scoped servers your whole team uses. Personal servers you want to keep to yourself go in <C>~/.claude.json</C> instead.</>,

65 tips: [<>Use environment variable references for secrets: <C>{'${GITHUB_TOKEN}'}</C></>, <>Lives at the project root, not inside <C>.claude/</C></>, <>For servers only you need, run <C>claude mcp add --scope user</C>. This writes to <C>~/.claude.json</C> instead of <C>.mcp.json</C></>],

66 exampleIntro: <>This example configures the GitHub MCP server so Claude can read issues and open pull requests. The <C>{'${GITHUB_TOKEN}'}</C> reference is read from your shell environment when Claude Code starts the server, so the token never lands in the file.</>,

67 example: `{

68 "mcpServers": {

69 "github": {

70 "command": "npx",

71 "args": ["-y", "@modelcontextprotocol/server-github"],

72 "env": {

73 "GITHUB_TOKEN": "\${GITHUB_TOKEN}"

74 }

75 }

76 }

77}`,

78 docsLink: '/en/mcp'

79 }, {

80 id: 'worktreeinclude',

81 label: '.worktreeinclude',

82 type: 'file',

83 icon: 'md',

84 color: '#8FA876',

85 badge: 'committed',

86 oneLiner: 'Gitignored files to copy into new worktrees',

87 when: <>Read when Claude creates a git worktree via <C>--worktree</C>, the <C>EnterWorktree</C> tool, or subagent <C>isolation: worktree</C></>,

88 description: <>Lists gitignored files to copy from your main repository into each new worktree. Worktrees are fresh checkouts, so untracked files like <C>.env</C> are missing by default. Patterns here use <C>.gitignore</C> syntax. Only files that match a pattern and are also gitignored get copied, so tracked files are never duplicated.</>,

89 tips: [<>Lives at the project root, not inside <C>.claude/</C></>, <>Git-only: if you configure a <A href="/en/hooks#worktreecreate">WorktreeCreate hook</A> for a different VCS, this file is not read. Copy files inside your hook script instead</>, <>Also applies to parallel sessions in the <A href="/en/desktop#work-in-parallel-with-sessions">desktop app</A></>],

90 exampleIntro: 'This example copies your local environment files and a secrets config into every worktree Claude creates. Comments start with # and blank lines are ignored, same as .gitignore.',

91 example: `# Local environment

92.env

93.env.local

94 

95# API credentials

96config/secrets.json`,

97 docsLink: '/en/worktrees#copy-gitignored-files-into-worktrees'

98 }, {

99 id: 'dot-claude',

100 label: '.claude/',

101 type: 'folder',

102 icon: 'folder',

103 color: 'var(--ce-accent)',

104 oneLiner: 'Project-level configuration, rules, and extensions',

105 description: 'Everything Claude Code reads that is specific to this project. If you use git, commit most files here so your team shares them; a few, like settings.local.json, are automatically gitignored. Each file badge shows which.',

106 children: [{

107 id: 'settings-json',

108 label: 'settings.json',

109 type: 'file',

110 icon: 'json',

111 color: 'var(--ce-text-3)',

112 badge: 'committed',

113 oneLiner: 'Permissions, hooks, and configuration',

114 when: <>Overrides global <C>~/.claude/settings.json</C>. Local settings, CLI flags, and managed settings override this</>,

115 description: 'Settings that Claude Code applies directly. Permissions control which commands and tools Claude can use; hooks run your scripts at specific points in a session. Unlike CLAUDE.md, which Claude reads as guidance, these are enforced whether Claude follows them or not.',

116 contains: [<><A href="/en/permissions">permissions</A>: allow, deny, or prompt before Claude uses specific tools or commands</>, <><A href="/en/hooks">hooks</A>: run your own scripts on events like before a tool call or after a file edit</>, <><A href="/en/statusline">statusLine</A>: customize the line shown at the bottom while Claude works</>, <><A href="/en/settings#available-settings">model</A>: pick a default model for this project</>, <><A href="/en/settings#environment-variables">env</A>: environment variables set in every session</>, <><A href="/en/output-styles">outputStyle</A>: select a custom system-prompt style from output-styles/</>],

117 tips: [<>Bash permission patterns support wildcards: <C>Bash(npm test *)</C> matches any command starting with <C>npm test</C></>, <>Array settings like <C>permissions.allow</C> combine across all scopes; scalar settings like <C>model</C> use the most specific value</>],

118 exampleIntro: <>This example allows <C>npm test</C> and <C>npm run</C> commands without prompting, blocks <C>rm -rf</C>, and runs Prettier on files after Claude edits or writes them.</>,

119 example: `{

120 "permissions": {

121 "allow": [

122 "Bash(npm test *)",

123 "Bash(npm run *)"

124 ],

125 "deny": [

126 "Bash(rm -rf *)"

127 ]

128 },

129 "hooks": {

130 "PostToolUse": [{

131 "matcher": "Edit|Write",

132 "hooks": [{

133 "type": "command",

134 "command": "jq -r '.tool_input.file_path' | xargs npx prettier --write"

135 }]

136 }]

137 }

138}`,

139 docsLink: '/en/settings'

140 }, {

141 id: 'settings-local-json',

142 label: 'settings.local.json',

143 type: 'file',

144 icon: 'json',

145 color: 'var(--ce-text-3)',

146 badge: 'gitignored',

147 oneLiner: 'Your personal settings overrides for this project',

148 when: 'Highest of the user-editable settings files; CLI flags and managed settings still take precedence',

149 description: 'Personal settings that take precedence over the project defaults. Same JSON format as settings.json, but not committed. Use this when you need different permissions or defaults than the team config.',

150 tips: [<>Same schema as settings.json. Array settings like <C>permissions.allow</C> combine across scopes; scalar settings like <C>model</C> use the local value</>, <>Claude Code adds this file to <C>~/.config/git/ignore</C> the first time it writes one. If you use a custom <C>core.excludesFile</C>, add the pattern there too. To share the ignore rule with your team, also add it to the project <C>.gitignore</C></>],

151 exampleIntro: 'This example adds Docker permissions on top of whatever the team settings.json allows.',

152 example: `{

153 "permissions": {

154 "allow": [

155 "Bash(docker *)"

156 ]

157 }

158}`,

159 docsLink: '/en/settings'

160 }, {

161 id: 'rules',

162 label: 'rules/',

163 type: 'folder',

164 icon: 'folder',

165 color: '#9B7BC4',

166 oneLiner: 'Topic-scoped instructions, optionally gated by file paths',

167 when: <>Rules without <C>paths:</C> load at session start. Rules with <C>paths:</C> load when a matching file enters context</>,

168 description: [<>Project instructions split into topic files that can load conditionally based on file paths. A rule without <C>paths:</C> frontmatter loads at session start like CLAUDE.md; a rule with <C>paths:</C> loads only when Claude reads a matching file.</>, <>Like CLAUDE.md, rules are guidance Claude reads, not configuration Claude Code enforces. For guaranteed behavior use <A href="/en/hooks">hooks</A> or <A href="/en/permissions">permissions</A>.</>],

169 tips: [<>Use <C>paths:</C> frontmatter with globs to scope rules to directories or file types</>, <>Subdirectories work: <C>.claude/rules/frontend/react.md</C> is discovered automatically</>, 'When CLAUDE.md approaches 200 lines, start splitting into rules'],

170 docsLink: '/en/memory#organize-rules-with-claude/rules/',

171 children: [{

172 id: 'rule-testing',

173 label: 'testing.md',

174 type: 'file',

175 icon: 'md',

176 color: '#9B7BC4',

177 badge: 'committed',

178 oneLiner: 'Test conventions scoped to test files',

179 when: <>Loaded when Claude reads a file matching the <C>paths:</C> globs below</>,

180 description: <>An example rule that only loads when Claude is working on test files. The <C>paths:</C> globs in the frontmatter define which files trigger it; here, anything ending in .test.ts or .test.tsx. For other files, this rule is not loaded into context.</>,

181 example: `---

182paths:

183 - "**/*.test.ts"

184 - "**/*.test.tsx"

185---

186 

187# Testing Rules

188 

189- Use descriptive test names: "should [expected] when [condition]"

190- Mock external dependencies, not internal modules

191- Clean up side effects in afterEach`

192 }, {

193 id: 'rule-api',

194 label: 'api-design.md',

195 type: 'file',

196 icon: 'md',

197 color: '#9B7BC4',

198 badge: 'committed',

199 oneLiner: 'API conventions scoped to backend code',

200 when: <>Loaded when Claude reads a file matching the <C>paths:</C> glob below</>,

201 description: <>A second example showing a rule scoped to backend code. The <C>paths:</C> glob matches files under src/api/, so these conventions load only when Claude is editing API routes.</>,

202 example: `---

203paths:

204 - "src/api/**/*.ts"

205---

206 

207# API Design Rules

208 

209- All endpoints must validate input with Zod schemas

210- Return shape: { data: T } | { error: string }

211- Rate limit all public endpoints`

212 }]

213 }, {

214 id: 'skills',

215 label: 'skills/',

216 type: 'folder',

217 icon: 'folder',

218 color: '#D4A843',

219 oneLiner: 'Reusable prompts you or Claude invoke by name',

220 when: <>Invoked with <C>/skill-name</C> or when Claude matches the task to a skill</>,

221 description: <>Each skill is a folder with a SKILL.md file plus any supporting files it needs. By default, both you and Claude can invoke a skill. Use frontmatter to control that: <C>disable-model-invocation: true</C> for user-only workflows like <C>/deploy</C>, or <C>user-invocable: false</C> to hide from the <C>/</C> menu while Claude can still invoke it.</>,

222 tips: [<>Skills accept arguments: <C>/deploy staging</C> passes "staging" as <C>$ARGUMENTS</C>. Use <C>$0</C>, <C>$1</C>, and so on for positional access</>, <>The <C>description</C> frontmatter determines when Claude auto-invokes the skill</>, 'Bundle reference docs alongside SKILL.md. Claude knows the skill directory path and can read supporting files when you mention them'],

223 docsLink: '/en/skills',

224 children: [{

225 id: 'skill-review',

226 label: 'security-review/',

227 type: 'folder',

228 icon: 'folder',

229 color: '#D4A843',

230 oneLiner: 'A skill bundling SKILL.md with supporting files',

231 children: [{

232 id: 'skill-review-md',

233 label: 'SKILL.md',

234 type: 'file',

235 icon: 'md',

236 color: '#D4A843',

237 badge: 'committed',

238 oneLiner: 'Entrypoint: trigger, invocability, instructions',

239 when: <>User types <C>/security-review &lt;target&gt;</C>; Claude cannot auto-invoke this skill</>,

240 description: [<>This skill uses <C>disable-model-invocation: true</C> so only you can trigger it; Claude never invokes it on its own.</>, <>The <C>!`...`</C> line runs a shell command and injects its output into the prompt. <C>$ARGUMENTS</C> substitutes whatever you typed after the skill name. Claude sees the skill directory path, so mentioning a bundled file like checklist.md lets Claude read it.</>],

241 example: `---

242description: Reviews code changes for security vulnerabilities, authentication gaps, and injection risks

243disable-model-invocation: true

244argument-hint: <branch-or-path>

245---

246 

247## Diff to review

248 

249!\`git diff $ARGUMENTS\`

250 

251Audit the changes above for:

252 

2531. Injection vulnerabilities (SQL, XSS, command)

2542. Authentication and authorization gaps

2553. Hardcoded secrets or credentials

256 

257Use checklist.md in this skill directory for the full review checklist.

258 

259Report findings with severity ratings and remediation steps.`

260 }, {

261 id: 'skill-checklist',

262 label: 'checklist.md',

263 type: 'file',

264 icon: 'md',

265 color: '#D4A843',

266 badge: 'committed',

267 oneLiner: 'Supporting file bundled with the skill',

268 when: 'Claude reads it on demand while running the skill',

269 description: <>Skills can bundle any supporting files: reference docs, templates, scripts. The skill directory path is prepended to SKILL.md, so Claude can read bundled files by name. For scripts in bash injection commands, use the <C>{'${CLAUDE_SKILL_DIR}'}</C> placeholder.</>,

270 example: `# Security Review Checklist

271 

272## Input Validation

273- [ ] All user input sanitized before DB queries

274- [ ] File upload MIME types validated

275- [ ] Path traversal prevented on file operations

276 

277## Authentication

278- [ ] JWT tokens expire after 24 hours

279- [ ] API keys stored in environment variables

280- [ ] Passwords hashed with bcrypt or argon2`

281 }]

282 }]

283 }, {

284 id: 'commands',

285 label: 'commands/',

286 type: 'folder',

287 icon: 'folder',

288 color: '#788C5D',

289 oneLiner: <>Single-file prompts invoked with <C>/name</C></>,

290 note: commandsNote,

291 when: <>User types <C>/command-name</C></>,

292 description: <>A file at <C>commands/deploy.md</C> creates <C>/deploy</C> the same way a skill at <C>skills/deploy/SKILL.md</C> does, and both can be auto-invoked by Claude. Skills use a directory with SKILL.md, letting you bundle reference docs, templates, or scripts alongside the prompt.</>,

293 tips: [<>Use <C>$ARGUMENTS</C> in the file to accept parameters: <C>/fix-issue 123</C></>, 'If a skill and command share a name, the skill takes precedence', 'New commands should usually be skills instead; commands remain supported'],

294 docsLink: '/en/skills',

295 children: [{

296 id: 'cmd-example',

297 label: 'fix-issue.md',

298 type: 'file',

299 icon: 'md',

300 color: '#788C5D',

301 badge: 'committed',

302 oneLiner: <>Invoked as <C>/fix-issue &lt;number&gt;</C></>,

303 note: commandsNote,

304 description: [<>An example command for fixing a GitHub issue. Type <C>/fix-issue 123</C> and the <C>!`...`</C> line runs <C>gh issue view 123</C> in your shell, injecting the output into the prompt before Claude sees it.</>, <><C>$ARGUMENTS</C> substitutes whatever you typed after the command name. For positional access, use <C>$0</C> <C>$1</C> and so on.</>],

305 example: `---

306argument-hint: <issue-number>

307---

308 

309!\`gh issue view $ARGUMENTS\`

310 

311Investigate and fix the issue above.

312 

3131. Trace the bug to its root cause

3142. Implement the fix

3153. Write or update tests

3164. Summarize what you changed and why`

317 }]

318 }, {

319 id: 'output-styles',

320 label: 'output-styles/',

321 type: 'folder',

322 icon: 'folder',

323 color: '#5AA7A7',

324 oneLiner: 'Project-scoped output styles, if your team shares any',

325 when: 'Applied at session start when selected via the outputStyle setting',

326 description: <>Output styles are usually personal, so most live in <C>~/.claude/output-styles/</C>. Put one here if your team shares a style, like a review mode everyone uses. See <A href="#ce-global-output-styles">the Global tab</A> for the full explanation and example.</>,

327 docsLink: '/en/output-styles',

328 children: []

329 }, {

330 id: 'agents',

331 label: 'agents/',

332 type: 'folder',

333 icon: 'folder',

334 color: '#C46686',

335 oneLiner: 'Specialized subagents with their own context window',

336 when: 'Runs in its own context window when you or Claude invoke it',

337 description: 'Each markdown file defines a subagent with its own system prompt, tool access, and optionally its own model. Subagents run in a fresh context window, keeping the main conversation clean. Useful for parallel work or isolated tasks.',

338 tips: ['Each agent gets a fresh context window, separate from your main session', <>Restrict tool access per agent with the <C>tools:</C> frontmatter field</>, 'Type @ and pick an agent from the autocomplete to delegate directly'],

339 docsLink: '/en/sub-agents',

340 children: [{

341 id: 'agent-reviewer',

342 label: 'code-reviewer.md',

343 type: 'file',

344 icon: 'md',

345 color: '#C46686',

346 badge: 'committed',

347 oneLiner: 'Subagent for isolated code review',

348 when: 'Claude spawns it for review tasks, or you @-mention it from the autocomplete',

349 description: <>An example subagent restricted to read-only tools. The <C>description</C> frontmatter tells Claude when to delegate to it automatically; <C>tools:</C> limits it to Read, Grep, and Glob so it can inspect code but never edit. The body becomes the subagent's system prompt.</>,

350 example: `---

351name: code-reviewer

352description: Reviews code for correctness, security, and maintainability

353tools: Read, Grep, Glob

354---

355 

356You are a senior code reviewer. Review for:

357 

3581. Correctness: logic errors, edge cases, null handling

3592. Security: injection, auth bypass, data exposure

3603. Maintainability: naming, complexity, duplication

361 

362Every finding must include a concrete fix.`

363 }]

364 }, {

365 id: 'workflows',

366 label: 'workflows/',

367 type: 'folder',

368 icon: 'folder',

369 color: '#C46686',

370 oneLiner: 'Dynamic workflow scripts that orchestrate many subagents',

371 when: 'Loaded at startup; each file becomes a /<name> command',

372 description: <>Each <C>.js</C> file is a <A href="/en/workflows">dynamic workflow</A>: a script the runtime executes to spawn and coordinate many subagents. Workflows are written by Claude and saved here from <C>/workflows</C> rather than authored from scratch.</>,

373 tips: [<>Save a run from <C>/workflows</C> with <C>s</C> to create one of these</>, <>A project workflow takes precedence over a personal one in <C>~/.claude/workflows/</C> with the same name</>],

374 docsLink: '/en/workflows'

375 }, {

376 id: 'agent-memory',

377 label: 'agent-memory/',

378 type: 'folder',

379 icon: 'folder',

380 color: '#C46686',

381 badge: 'committed',

382 autogen: true,

383 oneLiner: 'Subagent persistent memory, separate from your main session auto memory',

384 when: 'First 200 lines (capped at 25KB) of MEMORY.md loaded into the subagent system prompt when it runs',

385 description: <>Subagents with <C>memory: project</C> in their frontmatter get a dedicated memory directory here. This is distinct from your <A href="/en/memory#auto-memory">main session auto memory</A> at <C>~/.claude/projects/</C>: each subagent reads and writes its own MEMORY.md, not yours.</>,

386 tips: [<>Only created for subagents that set the <C>memory:</C> frontmatter field</>, <>This directory holds project-scoped subagent memory, meant to be shared with your team. To keep memory out of version control use <C>memory: local</C>, which writes to <C>.claude/agent-memory-local/</C> instead. For cross-project memory use <C>memory: user</C>, which writes to <C>~/.claude/agent-memory/</C></>, <>The main session auto memory is a different feature; see <C>~/.claude/projects/</C> in the Global tab</>],

387 docsLink: '/en/sub-agents#enable-persistent-memory',

388 children: [{

389 id: 'agent-memory-sub',

390 label: '<agent-name>/',

391 type: 'folder',

392 icon: 'folder',

393 color: '#C46686',

394 autogen: true,

395 children: [{

396 id: 'agent-memory-md',

397 label: 'MEMORY.md',

398 type: 'file',

399 icon: 'md',

400 color: '#C46686',

401 badge: 'committed',

402 autogen: true,

403 oneLiner: 'The subagent writes and maintains this file automatically',

404 when: 'Loaded into the subagent system prompt when the subagent starts',

405 description: <>Works the same as your <A href="/en/memory#auto-memory">main auto memory</A>: the subagent creates and updates this file itself. You do not write it. The subagent reads it at the start of each task and writes back what it learns.</>,

406 example: `# code-reviewer memory

407 

408## Patterns seen

409- Project uses custom Result<T, E> type, not exceptions

410- Auth middleware expects Bearer token in Authorization header

411- Tests use factory functions in test/factories/

412 

413## Recurring issues

414- Missing null checks on API responses (src/api/*)

415- Unhandled promise rejections in background jobs`

416 }]

417 }]

418 }]

419 }]

420 },

421 global: {

422 label: '~/',

423 children: [{

424 id: 'claude-json',

425 label: '.claude.json',

426 type: 'file',

427 icon: 'json',

428 color: 'var(--ce-text-3)',

429 badge: 'local',

430 oneLiner: 'App state and UI preferences',

431 when: <>Read at session start for your preferences and MCP servers. Claude Code writes back to it when you change settings in <C>/config</C> or approve trust prompts</>,

432 description: <>Holds state that does not belong in settings.json: theme, OAuth session, per-project trust decisions, your personal MCP servers, and UI toggles. Mostly managed through <C>/config</C> rather than editing directly.</>,

433 tips: [<>IDE toggles like <C>autoConnectIde</C> and <C>externalEditorContext</C> live here, not in settings.json</>, <>The <C>projects</C> key tracks per-project state like trust-dialog acceptance and last-session metrics. Permission rules you approve in-session go to <C>.claude/settings.local.json</C> instead</>, <>MCP servers here are yours only: user scope applies across all projects, local scope is per-project but not committed. Team-shared servers go in <C>.mcp.json</C> at the project root instead</>],

434 example: `{

435 "autoConnectIde": true,

436 "externalEditorContext": true,

437 "mcpServers": {

438 "my-tools": {

439 "command": "npx",

440 "args": ["-y", "@example/mcp-server"]

441 }

442 }

443}`,

444 docsLink: '/en/settings#global-config-settings'

445 }, {

446 id: 'global-dot-claude',

447 label: '.claude/',

448 type: 'folder',

449 icon: 'folder',

450 color: 'var(--ce-accent)',

451 oneLiner: 'Your personal configuration across all projects',

452 description: 'The global counterpart to your project .claude/ directory. Files here apply to every project you work in and are never committed to any repository.',

453 children: [{

454 id: 'global-claude-md',

455 label: 'CLAUDE.md',

456 type: 'file',

457 icon: 'md',

458 color: '#6A9BCC',

459 badge: 'local',

460 oneLiner: 'Personal preferences across every project',

461 when: 'Loaded at the start of every session, in every project',

462 description: 'Your global instruction file. Loaded alongside the project CLAUDE.md at session start, so both are in context together. When instructions conflict, project-level instructions take priority. Keep this to preferences that apply everywhere: response style, commit format, personal conventions.',

463 tips: ['Keep it short since it loads into context for every project, alongside that project\'s own CLAUDE.md', 'Good for response style, commit format, and personal conventions'],

464 example: `# Global preferences

465 

466- Keep explanations concise

467- Use conventional commit format

468- Show the terminal command to verify changes

469- Prefer composition over inheritance`,

470 docsLink: '/en/memory'

471 }, {

472 id: 'global-settings',

473 label: 'settings.json',

474 type: 'file',

475 icon: 'json',

476 color: 'var(--ce-text-3)',

477 badge: 'local',

478 oneLiner: 'Default settings for all projects',

479 when: 'Your defaults. Project and local settings.json override any keys you also set there',

480 description: [<>Same keys as project <C>settings.json</C>: permissions, hooks, model, environment variables, and the rest. Put settings here that you want in every project, like permissions you always allow, a preferred model, or a notification hook that runs regardless of which project you're in.</>, <>Settings follow a precedence order: project <C>settings.json</C> overrides any matching keys you set here. This is different from CLAUDE.md, where global and project files are both loaded into context rather than merged key by key.</>],

481 example: `{

482 "permissions": {

483 "allow": [

484 "Bash(git log *)",

485 "Bash(git diff *)"

486 ]

487 }

488}`,

489 docsLink: '/en/settings'

490 }, {

491 id: 'keybindings',

492 label: 'keybindings.json',

493 type: 'file',

494 icon: 'json',

495 color: 'var(--ce-text-3)',

496 badge: 'local',

497 oneLiner: 'Custom keyboard shortcuts',

498 when: 'Read at session start and hot-reloaded when you edit the file',

499 description: <>Rebind keyboard shortcuts in the interactive CLI. Run <C>/keybindings</C> to create or open this file with a schema reference. Ctrl+C, Ctrl+D, Ctrl+M, and Caps Lock are reserved and cannot be rebound.</>,

500 exampleIntro: <>This example binds <C>Ctrl+E</C> to open your external editor and unbinds <C>Ctrl+U</C> by setting it to <C>null</C>. The <C>context</C> field scopes bindings to a specific part of the CLI, here the main chat input.</>,

501 example: `{

502 "$schema": "https://www.schemastore.org/claude-code-keybindings.json",

503 "$docs": "https://code.claude.com/docs/en/keybindings",

504 "bindings": [

505 {

506 "context": "Chat",

507 "bindings": {

508 "ctrl+e": "chat:externalEditor",

509 "ctrl+u": null

510 }

511 }

512 ]

513}`,

514 docsLink: '/en/keybindings'

515 }, {

516 id: 'themes',

517 label: 'themes/',

518 type: 'folder',

519 icon: 'folder',

520 color: '#5AA7A7',

521 oneLiner: 'Custom color themes',

522 when: <>Read at session start and hot-reloaded when files change. Listed in <C>/theme</C></>,

523 description: <>Each <C>.json</C> file defines a custom color theme: a built-in <C>base</C> preset plus an <C>overrides</C> map of color tokens. Create one interactively with <C>/theme</C> or write the JSON by hand. Selecting a custom theme stores <C>custom:&lt;slug&gt;</C> as your theme preference.</>,

524 example: `{

525 "name": "Dracula",

526 "base": "dark",

527 "overrides": {

528 "claude": "#bd93f9",

529 "error": "#ff5555",

530 "success": "#50fa7b"

531 }

532}`,

533 docsLink: '/en/terminal-config#create-a-custom-theme',

534 children: []

535 }, {

536 id: 'global-projects',

537 label: 'projects/',

538 type: 'folder',

539 icon: 'folder',

540 color: '#E8A45C',

541 autogen: true,

542 oneLiner: "Auto memory: Claude's notes to itself, per project",

543 when: 'MEMORY.md loaded at session start; topic files read on demand',

544 description: 'Auto memory lets Claude accumulate knowledge across sessions without you writing anything. Claude saves notes as it works: build commands, debugging insights, architecture notes. Each project gets its own memory directory keyed by the repository path.',

545 tips: [<>On by default. Toggle with <C>/memory</C> or <C>autoMemoryEnabled</C> in settings</>, 'MEMORY.md is the index loaded each session. The first 200 lines, or 25KB, whichever comes first, are read', 'Topic files like debugging.md are read on demand, not at startup', 'These are plain markdown. Edit or delete them anytime'],

546 docsLink: '/en/memory#auto-memory',

547 children: [{

548 id: 'memory-dir',

549 label: '<project>/memory/',

550 type: 'folder',

551 icon: 'folder',

552 color: '#E8A45C',

553 autogen: true,

554 oneLiner: "Claude's accumulated knowledge for one project",

555 children: [{

556 id: 'memory-md',

557 label: 'MEMORY.md',

558 type: 'file',

559 icon: 'md',

560 color: '#E8A45C',

561 badge: 'local',

562 autogen: true,

563 oneLiner: 'Claude writes and maintains this file automatically',

564 when: 'First 200 lines (capped at 25KB) loaded at session start',

565 description: 'Claude creates and updates this file as it works; you do not write it yourself. It acts as an index that Claude reads at the start of every session, pointing to topic files for detail. You can edit or delete it, but Claude will keep updating it.',

566 example: `# Memory Index

567 

568## Project

569- [build-and-test.md](build-and-test.md): npm run build (~45s), Vitest, dev server on 3001

570- [architecture.md](architecture.md): API client singleton, refresh-token auth

571 

572## Reference

573- [debugging.md](debugging.md): auth token rotation and DB connection troubleshooting`,

574 docsLink: '/en/memory'

575 }, {

576 id: 'memory-topic',

577 label: 'debugging.md',

578 type: 'file',

579 icon: 'md',

580 color: '#E8A45C',

581 badge: 'local',

582 autogen: true,

583 oneLiner: 'Topic notes Claude writes when MEMORY.md gets long',

584 when: 'Claude reads this when a related task comes up',

585 description: 'An example of a topic file Claude creates when MEMORY.md grows too long. Claude picks the filename based on what it splits out: debugging.md, architecture.md, build-commands.md, or similar. You never create these yourself. Claude reads a topic file back only when the current task relates to it.',

586 example: `---

587name: Debugging patterns

588description: Auth token rotation and database connection troubleshooting for this project

589type: reference

590---

591 

592## Auth Token Issues

593- Refresh token rotation: old token invalidated immediately

594- If 401 after refresh: check clock skew between client and server

595 

596## Database Connection Drops

597- Connection pool: max 10 in dev, 50 in prod

598- Always check \`docker compose ps\` first`

599 }]

600 }]

601 }, {

602 id: 'global-rules',

603 label: 'rules/',

604 type: 'folder',

605 icon: 'folder',

606 color: '#9B7BC4',

607 oneLiner: 'User-level rules that apply to every project',

608 when: <>Rules without <C>paths:</C> load at session start. Rules with <C>paths:</C> load when a matching file enters context</>,

609 description: 'Same as project .claude/rules/ but applies everywhere. Use this for conventions you want across all your work, like personal code style or commit message format.',

610 docsLink: '/en/memory#organize-rules-with-claude/rules/',

611 children: []

612 }, {

613 id: 'global-skills',

614 label: 'skills/',

615 type: 'folder',

616 icon: 'folder',

617 color: '#D4A843',

618 oneLiner: 'Personal skills available in every project',

619 when: <>Invoked with <C>/skill-name</C> in any project</>,

620 description: 'Skills you built for yourself that work everywhere. Same structure as project skills: each is a folder with SKILL.md, scoped to your user account instead of a single project.',

621 docsLink: '/en/skills',

622 children: []

623 }, {

624 id: 'global-commands',

625 label: 'commands/',

626 type: 'folder',

627 icon: 'folder',

628 color: '#788C5D',

629 oneLiner: 'Personal single-file commands available in every project',

630 note: commandsNote,

631 when: <>User types <C>/command-name</C> in any project</>,

632 description: 'Same as project commands/ but scoped to your user account. Each markdown file becomes a command available everywhere.',

633 docsLink: '/en/skills',

634 children: []

635 }, {

636 id: 'global-output-styles',

637 label: 'output-styles/',

638 type: 'folder',

639 icon: 'folder',

640 color: '#5AA7A7',

641 oneLiner: 'Custom system-prompt sections that adjust how Claude works',

642 when: 'Applied at session start when selected via the outputStyle setting',

643 description: [<>Each markdown file defines an output style: a section appended to the system prompt that, by default, also drops the built-in software-engineering task instructions. Use this to adapt Claude Code for uses beyond coding, or to add teaching or review modes.</>, <>Select a built-in or custom style with <C>/config</C> or the <C>outputStyle</C> key in settings. Styles here are available in every project; project-level styles with the same name take precedence.</>],

644 tips: ['Built-in styles Explanatory and Learning are included with Claude Code; custom styles go here', <>Set <C>keep-coding-instructions: true</C> in frontmatter to keep the default task instructions alongside your additions</>, 'Changes take effect on the next session since the system prompt is fixed at startup for caching'],

645 docsLink: '/en/output-styles',

646 children: [{

647 id: 'output-style-example',

648 label: 'teaching.md',

649 type: 'file',

650 icon: 'md',

651 color: '#5AA7A7',

652 badge: 'local',

653 oneLiner: 'Example style that adds explanations and leaves small changes for you',

654 when: <>Active when <C>outputStyle</C> in settings is set to <C>teaching</C></>,

655 description: <>This style appends instructions to the system prompt: Claude adds a "Why this approach" note after each task and leaves TODO(human) markers for changes under 10 lines instead of writing them itself. Select it by setting <C>outputStyle</C> to the filename without .md, or to the <C>name</C> field if you set one in frontmatter.</>,

656 example: `---

657description: Explains reasoning and asks you to implement small pieces

658keep-coding-instructions: true

659---

660 

661After completing each task, add a brief "Why this approach" note

662explaining the key design decision.

663 

664When a change is under 10 lines, ask the user to implement it

665themselves by leaving a TODO(human) marker instead of writing it.`

666 }]

667 }, {

668 id: 'global-agents',

669 label: 'agents/',

670 type: 'folder',

671 icon: 'folder',

672 color: '#C46686',

673 oneLiner: 'Personal subagents available in every project',

674 when: 'Claude delegates or you @-mention in any project',

675 description: 'Subagents defined here are available across all your projects. Same format as project agents.',

676 docsLink: '/en/sub-agents',

677 children: []

678 }, {

679 id: 'global-workflows',

680 label: 'workflows/',

681 type: 'folder',

682 icon: 'folder',

683 color: '#C46686',

684 oneLiner: 'Personal dynamic workflows available in every project',

685 when: 'Loaded at startup; each file becomes a /<name> command',

686 description: <>Workflow scripts saved here are available across all your projects. A project workflow with the same name in <C>.claude/workflows/</C> takes precedence.</>,

687 docsLink: '/en/workflows',

688 children: []

689 }, {

690 id: 'global-agent-memory',

691 label: 'agent-memory/',

692 type: 'folder',

693 icon: 'folder',

694 color: '#C46686',

695 autogen: true,

696 oneLiner: <>Persistent memory for subagents with <C>memory: user</C></>,

697 when: 'Loaded into the subagent system prompt when the subagent starts',

698 description: <>Subagents with <C>memory: user</C> in their frontmatter store knowledge here that persists across all projects. For project-scoped subagent memory, see <C>.claude/agent-memory/</C> instead.</>,

699 docsLink: '/en/sub-agents#enable-persistent-memory',

700 children: []

701 }]

702 }]

703 }

704 }), []);

705 const BADGE_STYLES = useMemo(() => ({

706 committed: {

707 bg: 'rgba(85,138,66,0.08)',

708 color: 'var(--ce-badge-committed)',

709 border: 'rgba(85,138,66,0.15)',

710 label: 'committed'

711 },

712 gitignored: {

713 bg: 'rgba(217,119,87,0.06)',

714 color: 'var(--ce-badge-gitignored)',

715 border: 'rgba(217,119,87,0.15)',

716 label: 'gitignored'

717 },

718 local: {

719 bg: 'rgba(115,114,108,0.06)',

720 color: 'var(--ce-badge-local)',

721 border: 'rgba(115,114,108,0.12)',

722 label: 'local only'

723 },

724 autogen: {

725 bg: 'rgba(232,164,92,0.1)',

726 color: 'var(--ce-badge-autogen)',

727 border: 'rgba(232,164,92,0.2)',

728 label: 'Claude writes'

729 }

730 }), []);

731 const allNodes = useMemo(() => {

732 const flatten = (nodes, acc, path, parentId) => {

733 for (const node of nodes) {

734 const nextPath = [...path, node.label];

735 acc[node.id] = {

736 ...node,

737 path: nextPath,

738 parentId

739 };

740 if (node.children) flatten(node.children, acc, nextPath, node.id);

741 }

742 return acc;

743 };

744 const project = flatten(FILE_TREE.project.children, {}, [FILE_TREE.project.label]);

745 const global = flatten(FILE_TREE.global.children, {}, [FILE_TREE.global.label]);

746 for (const id in project) project[id].root = 'project';

747 for (const id in global) global[id].root = 'global';

748 return {

749 ...project,

750 ...global

751 };

752 }, [FILE_TREE]);

753 const allFolderIds = useMemo(() => Object.keys(allNodes).filter(id => allNodes[id].type === 'folder'), [allNodes]);

754 const DEFAULT_EXPANDED = ['dot-claude', 'rules', 'skills', 'skill-review', 'commands', 'agents', 'agent-memory', 'agent-memory-sub', 'global-dot-claude', 'global-output-styles', 'global-projects', 'memory-dir'];

755 const [mounted, setMounted] = useState(false);

756 const [activeRoot, setActiveRoot] = useState('project');

757 const [selectedId, setSelectedId] = useState('claude-md');

758 const [expandedFolders, setExpandedFolders] = useState(() => new Set(DEFAULT_EXPANDED));

759 const [forceMobile, setForceMobile] = useState(false);

760 const [copiedId, setCopiedId] = useState(null);

761 const [isFullscreen, setIsFullscreen] = useState(false);

762 const copyTimeoutRef = useRef(null);

763 const rootRef = useRef(null);

764 useEffect(() => {

765 setMounted(true);

766 const applyHash = scroll => {

767 const hash = window.location.hash.slice(1);

768 if (!hash.startsWith('ce-')) return;

769 const id = hash.slice(3);

770 const node = allNodes[id];

771 if (!node) return;

772 setActiveRoot(node.root);

773 setSelectedId(id);

774 setExpandedFolders(new Set(allFolderIds));

775 if (scroll && rootRef.current) rootRef.current.scrollIntoView({

776 behavior: 'smooth',

777 block: 'start'

778 });

779 };

780 applyHash(false);

781 const onHashChange = () => applyHash(true);

782 const onFsChange = () => setIsFullscreen(!!document.fullscreenElement);

783 window.addEventListener('hashchange', onHashChange);

784 document.addEventListener('fullscreenchange', onFsChange);

785 return () => {

786 if (copyTimeoutRef.current) clearTimeout(copyTimeoutRef.current);

787 window.removeEventListener('hashchange', onHashChange);

788 document.removeEventListener('fullscreenchange', onFsChange);

789 };

790 }, []);

791 useEffect(() => {

792 if (!mounted || !rootRef.current) return;

793 const hash = window.location.hash.slice(1);

794 if (hash.startsWith('ce-') && allNodes[hash.slice(3)]) {

795 rootRef.current.scrollIntoView({

796 behavior: 'smooth',

797 block: 'start'

798 });

799 }

800 }, [mounted]);

801 if (!mounted) return null;

802 const selected = allNodes[selectedId];

803 const tree = FILE_TREE[activeRoot];

804 const isCopied = copiedId === selected.id;

805 const toggleFolder = id => {

806 const next = new Set(expandedFolders);

807 next.has(id) ? next.delete(id) : next.add(id);

808 setExpandedFolders(next);

809 };

810 const switchRoot = root => {

811 if (root === activeRoot) return;

812 setActiveRoot(root);

813 const firstId = FILE_TREE[root].children[0].id;

814 setSelectedId(firstId);

815 try {

816 history.replaceState(null, '', '#ce-' + firstId);

817 } catch (e) {}

818 };

819 const toggleFullscreen = () => {

820 if (!rootRef.current) return;

821 if (document.fullscreenElement) document.exitFullscreen(); else rootRef.current.requestFullscreen().catch(() => {});

822 };

823 const selectNode = n => {

824 setSelectedId(n.id);

825 if (n.type === 'folder' && !expandedFolders.has(n.id)) toggleFolder(n.id);

826 try {

827 history.replaceState(null, '', '#ce-' + n.id);

828 } catch (e) {}

829 };

830 const iconBtn = {

831 width: 28,

832 flexShrink: 0,

833 borderRadius: '6px',

834 border: 'none',

835 cursor: 'pointer',

836 background: 'transparent',

837 color: 'var(--ce-text-4)',

838 display: 'flex',

839 alignItems: 'center',

840 justifyContent: 'center'

841 };

842 const visibleFolderIds = allFolderIds.filter(id => allNodes[id].root === activeRoot);

843 const allExpanded = visibleFolderIds.every(id => expandedFolders.has(id));

844 const toggleAllFolders = () => {

845 const next = new Set(expandedFolders);

846 visibleFolderIds.forEach(id => allExpanded ? next.delete(id) : next.add(id));

847 setExpandedFolders(next);

848 };

849 const onTreeKeyDown = e => {

850 if (!['ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft'].includes(e.key)) return;

851 const visible = [];

852 const walk = nodes => {

853 for (const n of nodes) {

854 visible.push(n.id);

855 if (n.children && expandedFolders.has(n.id)) walk(n.children);

856 }

857 };

858 walk(tree.children);

859 const i = visible.indexOf(selectedId);

860 if (i === -1) return;

861 e.preventDefault();

862 if (e.key === 'ArrowDown' && i < visible.length - 1) selectNode(allNodes[visible[i + 1]]); else if (e.key === 'ArrowUp' && i > 0) selectNode(allNodes[visible[i - 1]]); else if (e.key === 'ArrowRight' && selected.type === 'folder') {

863 if (!expandedFolders.has(selectedId)) toggleFolder(selectedId); else if (selected.children && selected.children.length) selectNode(allNodes[selected.children[0].id]);

864 } else if (e.key === 'ArrowLeft') {

865 if (selected.type === 'folder' && expandedFolders.has(selectedId)) toggleFolder(selectedId); else if (selected.parentId) selectNode(allNodes[selected.parentId]);

866 }

867 };

868 const copyExample = (id, text) => {

869 const done = () => {

870 setCopiedId(id);

871 if (copyTimeoutRef.current) clearTimeout(copyTimeoutRef.current);

872 copyTimeoutRef.current = setTimeout(() => setCopiedId(null), 2000);

873 };

874 const fallback = () => {

875 const ta = document.createElement('textarea');

876 ta.value = text;

877 ta.style.position = 'fixed';

878 ta.style.opacity = '0';

879 document.body.appendChild(ta);

880 ta.select();

881 try {

882 if (document.execCommand('copy')) done();

883 } catch (e) {}

884 document.body.removeChild(ta);

885 };

886 if (navigator.clipboard) {

887 navigator.clipboard.writeText(text).then(done, fallback);

888 } else {

889 fallback();

890 }

891 };

892 const renderIcon = (icon, color, size) => {

893 const sz = size || 14;

894 if (icon === 'folder') {

895 return <svg width={sz} height={sz} viewBox="0 0 14 14" fill="none">

896 <path d="M1.5 3.5a1 1 0 0 1 1-1h2.6l1 1.2h5.4a1 1 0 0 1 1 1v5.8a1 1 0 0 1-1 1h-9a1 1 0 0 1-1-1V3.5z" fill={color} fillOpacity="0.15" stroke={color} strokeWidth="1" />

897 </svg>;

898 }

899 if (icon === 'json') {

900 return <svg width={sz} height={sz} viewBox="0 0 14 14" fill="none">

901 <rect x="2" y="1.5" width="10" height="11" rx="1.5" fill={color} fillOpacity="0.15" stroke={color} strokeWidth="1" />

902 <text x="7" y="9" fontSize="6" fontFamily="monospace" fill={color} textAnchor="middle" fontWeight="700">{'{}'}</text>

903 </svg>;

904 }

905 return <svg width={sz} height={sz} viewBox="0 0 14 14" fill="none">

906 <rect x="2" y="1.5" width="10" height="11" rx="1.5" fill={color} fillOpacity="0.15" stroke={color} strokeWidth="1" />

907 <line x1="4.5" y1="5" x2="9.5" y2="5" stroke={color} strokeWidth="1" />

908 <line x1="4.5" y1="7" x2="9.5" y2="7" stroke={color} strokeWidth="1" />

909 <line x1="4.5" y1="9" x2="8" y2="9" stroke={color} strokeWidth="1" />

910 </svg>;

911 };

912 const renderNode = (node, depth) => {

913 const isFolder = node.type === 'folder';

914 const isExpanded = expandedFolders.has(node.id);

915 const isSelected = selectedId === node.id;

916 return <div key={node.id}>

917 <button role="treeitem" tabIndex={-1} onClick={() => selectNode(node)} aria-selected={isSelected} aria-expanded={isFolder ? isExpanded : undefined} style={{

918 display: 'flex',

919 alignItems: 'center',

920 gap: '5px',

921 width: '100%',

922 padding: `4px 8px 4px ${8 + depth * 16}px`,

923 background: isSelected ? 'var(--ce-accent-bg)' : 'transparent',

924 borderTop: 'none',

925 borderRight: 'none',

926 borderBottom: 'none',

927 borderLeft: isSelected ? '2px solid var(--ce-accent)' : '2px solid transparent',

928 outline: 'none',

929 cursor: 'pointer',

930 textAlign: 'left',

931 fontFamily: 'var(--ce-mono)',

932 fontSize: '13.5px',

933 color: isSelected ? 'var(--ce-accent)' : 'var(--ce-text-2)',

934 fontWeight: isSelected ? 550 : 400,

935 transition: 'all 0.1s'

936 }}>

937 {isFolder ? <span onClick={e => {

938 e.stopPropagation();

939 toggleFolder(node.id);

940 }} style={{

941 fontSize: '14px',

942 color: 'var(--ce-text-4)',

943 width: '20px',

944 height: '20px',

945 display: 'inline-flex',

946 alignItems: 'center',

947 justifyContent: 'center',

948 cursor: 'pointer',

949 borderRadius: '4px',

950 marginLeft: '-6px',

951 flexShrink: 0

952 }} onMouseEnter={e => {

953 e.currentTarget.style.background = 'var(--ce-arrow-hover)';

954 e.currentTarget.style.color = 'var(--ce-text-2)';

955 }} onMouseLeave={e => {

956 e.currentTarget.style.background = 'transparent';

957 e.currentTarget.style.color = 'var(--ce-text-4)';

958 }}>{isExpanded ? '▾' : '▸'}</span> : <span style={{

959 width: '14px',

960 flexShrink: 0

961 }} />}

962 {renderIcon(node.icon, node.color)}

963 <span style={{

964 flex: 1,

965 overflow: 'hidden',

966 textOverflow: 'ellipsis',

967 whiteSpace: 'nowrap'

968 }}>{node.label}</span>

969 {node.badge && BADGE_STYLES[node.badge] && <span title={BADGE_STYLES[node.badge].label} style={{

970 width: 6,

971 height: 6,

972 borderRadius: '50%',

973 background: BADGE_STYLES[node.badge].color,

974 flexShrink: 0,

975 opacity: 0.7

976 }} />}

977 </button>

978 {isFolder && isExpanded && node.children && <div role="group">{node.children.map(child => renderNode(child, depth + 1))}</div>}

979 </div>;

980 };

981 return <>

982 <style>{`

983 .ce-root {

984 --ce-mono: var(--font-mono, ui-monospace, monospace);

985 --ce-accent: #D97757;

986 --ce-accent-bg: rgba(217,119,87,0.06);

987 --ce-accent-border: rgba(217,119,87,0.12);

988 --ce-bg: #fff;

989 --ce-surface: #FAFAF7;

990 --ce-surface-hover: #F0EEE6;

991 --ce-border: #E8E6DC;

992 --ce-border-subtle: #F0EEE6;

993 --ce-text: #141413;

994 --ce-text-2: #5E5D59;

995 --ce-text-3: #73726C;

996 --ce-text-4: #9C9A92;

997 --ce-text-5: #B8B6AE;

998 --ce-sep: #D1CFC5;

999 --ce-code-header: #F5F4ED;

1000 --ce-code-bg: #1A1918;

1001 --ce-arrow-hover: rgba(0,0,0,0.08);

1002 --ce-badge-committed: #3d6b2e;

1003 --ce-badge-gitignored: #b85c3a;

1004 --ce-badge-local: #5e5d59;

1005 --ce-badge-autogen: #b07520;

1006 --ce-when-text: #4a7fb5;

1007 }

1008 .dark .ce-root {

1009 --ce-bg: #1a1918;

1010 --ce-surface: #232221;

1011 --ce-surface-hover: #2e2d2b;

1012 --ce-border: #3a3936;

1013 --ce-border-subtle: #2e2d2b;

1014 --ce-text: #e8e6dc;

1015 --ce-text-2: #c4c2b8;

1016 --ce-text-3: #9c9a92;

1017 --ce-text-4: #73726c;

1018 --ce-text-5: #5e5d59;

1019 --ce-sep: #4a4946;

1020 --ce-code-header: #2e2d2b;

1021 --ce-code-bg: #0d0d0c;

1022 --ce-arrow-hover: rgba(255,255,255,0.08);

1023 --ce-badge-committed: #6fa85c;

1024 --ce-badge-gitignored: #e08a60;

1025 --ce-badge-local: #9c9a92;

1026 --ce-badge-autogen: #e8a45c;

1027 --ce-when-text: #8bb4e0;

1028 }

1029 .ce-mobile-fallback { display: none; border: 1px solid rgba(0,0,0,0.1); background: rgba(0,0,0,0.03); }

1030 .dark .ce-mobile-fallback { border-color: rgba(255,255,255,0.15); background: rgba(255,255,255,0.04); }

1031 @media (max-width: 700px) {

1032 .ce-root:not(.ce-force) { display: none !important; }

1033 .ce-mobile-fallback { display: block; }

1034 }

1035 `}</style>

1036 {!forceMobile && <div className="ce-mobile-fallback" style={{

1037 padding: '14px 16px',

1038 borderRadius: '8px',

1039 fontSize: '14px'

1040 }}>

1041 The interactive explorer works best on a larger screen. See the <a href="#file-reference" style={{

1042 color: '#D97757'

1043 }}>file reference table</a> below, or <button onClick={() => setForceMobile(true)} style={{

1044 border: 'none',

1045 background: 'none',

1046 padding: 0,

1047 color: '#D97757',

1048 textDecoration: 'underline',

1049 cursor: 'pointer',

1050 font: 'inherit'

1051 }}>show the explorer anyway</button>.

1052 </div>}

1053 <div ref={rootRef} className={forceMobile ? 'ce-root ce-force' : 'ce-root'} style={{

1054 borderRadius: isFullscreen ? 0 : '12px',

1055 border: '1px solid var(--ce-border)',

1056 background: 'var(--ce-bg)',

1057 display: 'flex',

1058 alignItems: 'stretch',

1059 overflow: 'hidden',

1060 fontFamily: 'var(--font-sans, -apple-system, sans-serif)',

1061 ...isFullscreen && ({

1062 height: '100vh'

1063 })

1064 }}>

1065 {}

1066 <div style={{

1067 width: 'min(240px, 35%)',

1068 minWidth: '180px',

1069 flexShrink: 0,

1070 borderRight: '1px solid var(--ce-border-subtle)',

1071 background: 'var(--ce-surface)',

1072 display: 'flex',

1073 flexDirection: 'column'

1074 }}>

1075 <div style={{

1076 padding: '8px 8px 4px',

1077 borderBottom: '1px solid var(--ce-border-subtle)',

1078 display: 'flex',

1079 gap: '4px'

1080 }}>

1081 {['project', 'global'].map(root => <button key={root} onClick={() => switchRoot(root)} style={{

1082 flex: 1,

1083 padding: '6px 0',

1084 borderRadius: '6px',

1085 border: 'none',

1086 cursor: 'pointer',

1087 fontFamily: 'var(--ce-mono)',

1088 fontSize: '11.5px',

1089 background: activeRoot === root ? 'var(--ce-accent-bg)' : 'transparent',

1090 color: activeRoot === root ? 'var(--ce-accent)' : 'var(--ce-text-4)',

1091 fontWeight: activeRoot === root ? 600 : 430

1092 }}>

1093 {root === 'project' ? 'Project' : 'Global (~/)'}

1094 </button>)}

1095 <button onClick={toggleAllFolders} title={allExpanded ? 'Collapse all' : 'Expand all'} style={{

1096 ...iconBtn,

1097 fontSize: 11

1098 }}>

1099 {allExpanded ? '⊟' : '⊞'}

1100 </button>

1101 <button onClick={toggleFullscreen} title={isFullscreen ? 'Exit fullscreen' : 'Fullscreen'} style={{

1102 ...iconBtn,

1103 fontSize: 13

1104 }}>

1105 {isFullscreen ? '⤡' : '⛶'}

1106 </button>

1107 </div>

1108 <div role="tree" aria-label="Configuration files" tabIndex={0} onKeyDown={onTreeKeyDown} style={{

1109 padding: '6px 0',

1110 overflowY: 'auto',

1111 flex: 1,

1112 outline: 'none'

1113 }}>

1114 {tree.children.map(node => renderNode(node, 0))}

1115 </div>

1116 </div>

1117 

1118 {}

1119 <div style={{

1120 flex: 1,

1121 minWidth: 0,

1122 padding: '20px 24px',

1123 minHeight: '400px',

1124 overflowY: 'auto'

1125 }}>

1126 <span aria-live="polite" style={{

1127 position: 'absolute',

1128 width: 1,

1129 height: 1,

1130 overflow: 'hidden',

1131 clip: 'rect(0 0 0 0)'

1132 }}>{selected.label} selected</span>

1133 {}

1134 <div style={{

1135 fontFamily: 'var(--ce-mono)',

1136 fontSize: '11px',

1137 color: 'var(--ce-text-4)',

1138 marginBottom: '10px',

1139 cursor: 'default'

1140 }}>

1141 {selected.path.map((seg, i) => <span key={i}>

1142 <span style={{

1143 color: i === selected.path.length - 1 ? 'var(--ce-accent)' : 'var(--ce-text-4)'

1144 }}>{seg.replace(/\/$/, '')}</span>

1145 {i < selected.path.length - 1 && <span style={{

1146 color: 'var(--ce-sep)'

1147 }}> / </span>}

1148 </span>)}

1149 </div>

1150 

1151 {}

1152 <div style={{

1153 display: 'flex',

1154 alignItems: 'flex-start',

1155 gap: '10px',

1156 marginBottom: '10px'

1157 }}>

1158 <span style={{

1159 flexShrink: 0,

1160 display: 'flex'

1161 }}>{renderIcon(selected.icon, selected.color, 24)}</span>

1162 <div style={{

1163 flex: 1,

1164 minWidth: 0

1165 }}>

1166 <div style={{

1167 fontSize: '22px',

1168 fontWeight: 600,

1169 color: 'var(--ce-text)',

1170 letterSpacing: '-0.3px',

1171 lineHeight: '26px'

1172 }}>{selected.label}</div>

1173 {selected.oneLiner && <div style={{

1174 fontSize: '15px',

1175 color: 'var(--ce-text-3)',

1176 marginTop: '3px'

1177 }}>{selected.oneLiner}</div>}

1178 </div>

1179 <div style={{

1180 display: 'flex',

1181 gap: '4px',

1182 flexShrink: 0

1183 }}>

1184 {[selected.autogen && 'autogen', selected.badge].filter(Boolean).map(k => {

1185 const s = BADGE_STYLES[k];

1186 if (!s) return null;

1187 return <span key={k} style={{

1188 fontFamily: 'var(--ce-mono)',

1189 fontSize: '10px',

1190 fontWeight: 600,

1191 textTransform: 'uppercase',

1192 letterSpacing: '0.3px',

1193 padding: '2px 6px',

1194 borderRadius: '4px',

1195 background: s.bg,

1196 color: s.color,

1197 border: `0.5px solid ${s.border}`

1198 }}>{s.label}</span>;

1199 })}

1200 </div>

1201 </div>

1202 

1203 {}

1204 {selected.note && <div style={{

1205 padding: '10px 12px',

1206 borderRadius: '8px',

1207 marginBottom: '14px',

1208 background: 'rgba(217,119,87,0.06)',

1209 border: '1px solid rgba(217,119,87,0.2)',

1210 borderLeft: '3px solid var(--ce-accent)',

1211 fontSize: '15px',

1212 color: 'var(--ce-text-2)',

1213 lineHeight: 1.6

1214 }}>

1215 {selected.note}

1216 </div>}

1217 

1218 {}

1219 {selected.when && <div style={{

1220 padding: '8px 12px',

1221 borderRadius: '6px',

1222 background: 'rgba(106,155,204,0.06)',

1223 border: '0.5px solid rgba(106,155,204,0.12)',

1224 fontSize: '15px',

1225 color: 'var(--ce-when-text)',

1226 marginBottom: '16px'

1227 }}>

1228 <div style={{

1229 fontSize: '10px',

1230 fontWeight: 700,

1231 textTransform: 'uppercase',

1232 letterSpacing: '0.4px',

1233 opacity: 0.65,

1234 marginBottom: '3px'

1235 }}>When it loads</div>

1236 <div style={{

1237 fontWeight: 500

1238 }}>{selected.when}</div>

1239 </div>}

1240 

1241 {}

1242 {selected.description && <div style={{

1243 fontSize: '16px',

1244 color: 'var(--ce-text-2)',

1245 lineHeight: 1.65,

1246 marginBottom: '16px'

1247 }}>

1248 {Array.isArray(selected.description) ? selected.description.map((para, i) => <div key={i} style={{

1249 marginBottom: i < selected.description.length - 1 ? '12px' : 0

1250 }}>{para}</div>) : selected.description}

1251 </div>}

1252 

1253 {}

1254 {selected.contains && selected.contains.length > 0 && <div style={{

1255 marginBottom: '16px'

1256 }}>

1257 <div style={{

1258 fontSize: '11px',

1259 fontWeight: 700,

1260 color: 'var(--ce-text-4)',

1261 textTransform: 'uppercase',

1262 letterSpacing: '0.4px',

1263 marginBottom: '8px'

1264 }}>Common keys</div>

1265 {selected.contains.map((item, i) => <div key={i} style={{

1266 display: 'flex',

1267 gap: '7px',

1268 fontSize: '15px',

1269 color: 'var(--ce-text-2)',

1270 lineHeight: 1.5,

1271 marginBottom: '5px'

1272 }}>

1273 <span style={{

1274 fontSize: '7px',

1275 color: 'var(--ce-text-4)',

1276 marginTop: '6px'

1277 }}>●</span>

1278 <span>{item}</span>

1279 </div>)}

1280 </div>}

1281 

1282 {}

1283 {selected.tips && selected.tips.length > 0 && <div style={{

1284 padding: '12px 14px',

1285 borderRadius: '8px',

1286 background: 'var(--ce-surface)',

1287 border: '1px solid var(--ce-border-subtle)',

1288 marginBottom: '16px'

1289 }}>

1290 <div style={{

1291 fontSize: '11px',

1292 fontWeight: 700,

1293 color: 'var(--ce-accent)',

1294 textTransform: 'uppercase',

1295 letterSpacing: '0.4px',

1296 marginBottom: '6px'

1297 }}>Tips</div>

1298 {selected.tips.map((tip, i) => <div key={i} style={{

1299 display: 'flex',

1300 gap: '7px',

1301 fontSize: '14.5px',

1302 color: 'var(--ce-text-2)',

1303 marginBottom: i < selected.tips.length - 1 ? '5px' : 0

1304 }}>

1305 <span style={{

1306 fontSize: '7px',

1307 color: 'var(--ce-accent)',

1308 marginTop: '6px'

1309 }}>●</span>

1310 <span>{tip}</span>

1311 </div>)}

1312 </div>}

1313 

1314 {}

1315 {selected.example && <div style={{

1316 marginBottom: '16px'

1317 }}>

1318 {selected.exampleIntro && <div style={{

1319 fontSize: '15px',

1320 color: 'var(--ce-text-2)',

1321 lineHeight: 1.6,

1322 marginBottom: '10px'

1323 }}>

1324 {selected.exampleIntro}

1325 </div>}

1326 <div style={{

1327 display: 'flex',

1328 justifyContent: 'space-between',

1329 alignItems: 'center',

1330 padding: '6px 10px',

1331 background: 'var(--ce-code-header)',

1332 border: '1px solid var(--ce-border)',

1333 borderRadius: '8px 8px 0 0'

1334 }}>

1335 <span style={{

1336 fontFamily: 'var(--ce-mono)',

1337 fontSize: '11px',

1338 fontWeight: 600,

1339 color: 'var(--ce-text-3)'

1340 }}>{selected.label}</span>

1341 <button onClick={() => copyExample(selected.id, selected.example)} style={{

1342 padding: '3px 8px',

1343 borderRadius: '4px',

1344 fontSize: '11px',

1345 fontWeight: 600,

1346 cursor: 'pointer',

1347 transition: 'all 0.15s',

1348 background: isCopied ? 'rgba(85,138,66,0.08)' : 'var(--ce-code-header)',

1349 border: isCopied ? '0.5px solid rgba(85,138,66,0.2)' : '0.5px solid var(--ce-border)',

1350 color: isCopied ? '#558A42' : 'var(--ce-text-3)'

1351 }}>

1352 {isCopied ? '✓ Copied' : 'Copy'}

1353 </button>

1354 </div>

1355 <pre style={{

1356 margin: 0,

1357 padding: '12px 14px',

1358 background: 'var(--ce-code-bg)',

1359 color: '#E8E6DC',

1360 fontFamily: 'var(--ce-mono)',

1361 fontSize: '13px',

1362 lineHeight: 1.65,

1363 borderRadius: '0 0 8px 8px',

1364 overflowX: 'auto',

1365 whiteSpace: 'pre'

1366 }}>{selected.example}</pre>

1367 </div>}

1368 

1369 {}

1370 {selected.docsLink && <a href={selected.docsLink} style={{

1371 display: 'inline-flex',

1372 padding: '5px 12px',

1373 borderRadius: '6px',

1374 background: 'var(--ce-accent-bg)',

1375 border: '1px solid var(--ce-accent-border)',

1376 color: 'var(--ce-accent)',

1377 fontSize: '12px',

1378 fontWeight: 600,

1379 textDecoration: 'none'

1380 }}>Full docs →</a>}

1381 

1382 {}

1383 {selected.children && selected.children.length > 0 && <div style={{

1384 marginTop: '20px'

1385 }}>

1386 <div style={{

1387 fontSize: '11px',

1388 fontWeight: 700,

1389 color: 'var(--ce-text-4)',

1390 textTransform: 'uppercase',

1391 letterSpacing: '0.4px',

1392 marginBottom: '8px'

1393 }}>Contents</div>

1394 <div style={{

1395 display: 'flex',

1396 flexDirection: 'column',

1397 gap: '4px'

1398 }}>

1399 {selected.children.map(child => <button key={child.id} onClick={() => selectNode(child)} style={{

1400 display: 'flex',

1401 alignItems: 'center',

1402 gap: '8px',

1403 padding: '6px 8px',

1404 width: '100%',

1405 background: 'var(--ce-surface)',

1406 borderRadius: '6px',

1407 border: 'none',

1408 cursor: 'pointer',

1409 textAlign: 'left',

1410 transition: 'background 0.1s'

1411 }} onMouseEnter={e => e.currentTarget.style.background = 'var(--ce-surface-hover)'} onMouseLeave={e => e.currentTarget.style.background = 'var(--ce-surface)'}>

1412 {renderIcon(child.icon, child.color, 13)}

1413 <span style={{

1414 fontFamily: 'var(--ce-mono)',

1415 fontSize: '12px',

1416 color: 'var(--ce-text-2)'

1417 }}>{child.label}</span>

1418 {child.oneLiner && <span style={{

1419 fontSize: '11px',

1420 color: 'var(--ce-text-4)',

1421 overflow: 'hidden',

1422 textOverflow: 'ellipsis',

1423 whiteSpace: 'nowrap'

1424 }}>{child.oneLiner}</span>}

1425 </button>)}

1426 </div>

1427 </div>}

1428 </div>

1429 </div>

1430 </>;

1431};

1432 

9Claude Code legge istruzioni, impostazioni, skills, subagents e memoria dalla tua directory di progetto e da `~/.claude` nella tua home directory. Esegui il commit dei file di progetto su git per condividerli con il tuo team; i file in `~/.claude` sono configurazioni personali che si applicano a tutti i tuoi progetti.1433Claude Code legge istruzioni, impostazioni, skills, subagents e memoria dalla tua directory di progetto e da `~/.claude` nella tua home directory. Esegui il commit dei file di progetto su git per condividerli con il tuo team; i file in `~/.claude` sono configurazioni personali che si applicano a tutti i tuoi progetti.

10 1434 

11Su Windows, `~/.claude` si risolve in `%USERPROFILE%\.claude`. Se imposti [`CLAUDE_CONFIG_DIR`](/it/env-vars), ogni percorso `~/.claude` in questa pagina si trova invece in quella directory.1435Su Windows, `~/.claude` si risolve in `%USERPROFILE%\.claude`. Se imposti [`CLAUDE_CONFIG_DIR`](/it/env-vars), ogni percorso `~/.claude` in questa pagina si trova invece in quella directory.


18 1442 

19Fai clic sui file nell'albero per vedere cosa fa ciascuno, quando si carica e un esempio.1443Fai clic sui file nell'albero per vedere cosa fa ciascuno, quando si carica e un esempio.

20 1444 

21<h2 id="what-s-not-shown">1445<ClaudeExplorer />

1446 

1447<h2 id="what’s-not-shown">

22 Cosa non è mostrato1448 Cosa non è mostrato

23</h2>1449</h2>

24 1450 

Details

6 6 

7> Configura Claude Code per utilizzare l'API Claude gestita da Anthropic con autenticazione AWS, controllo dell'accesso IAM e fatturazione tramite AWS Marketplace.7> Configura Claude Code per utilizzare l'API Claude gestita da Anthropic con autenticazione AWS, controllo dell'accesso IAM e fatturazione tramite AWS Marketplace.

8 8 

9export const ContactSalesCard = ({surface}) => {

10 const utm = content => `utm_source=claude_code&utm_medium=docs&utm_content=${surface}_${content}`;

11 const iconArrowRight = (size = 13) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">

12 <line x1="5" y1="12" x2="19" y2="12" />

13 <polyline points="12 5 19 12 12 19" />

14 </svg>;

15 const STYLES = `

16.cc-cs {

17 --cs-slate: #141413;

18 --cs-clay: #d97757;

19 --cs-clay-deep: #c6613f;

20 --cs-gray-000: #ffffff;

21 --cs-gray-700: #3d3d3a;

22 --cs-border-default: rgba(31, 30, 29, 0.15);

23 font-family: inherit;

24}

25.dark .cc-cs {

26 --cs-slate: #f0eee6;

27 --cs-gray-000: #262624;

28 --cs-gray-700: #bfbdb4;

29 --cs-border-default: rgba(240, 238, 230, 0.14);

30}

31.cc-cs-card {

32 display: flex; align-items: center; justify-content: space-between;

33 gap: 16px; padding: 14px 16px; margin: 0;

34 background: var(--cs-gray-000); border: 0.5px solid var(--cs-border-default);

35 border-radius: 8px; flex-wrap: wrap;

36}

37.cc-cs-text { font-size: 13px; color: var(--cs-gray-700); line-height: 1.5; flex: 1; min-width: 240px; }

38.cc-cs-text strong { font-weight: 550; color: var(--cs-slate); }

39.cc-cs-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

40.cc-cs-btn-clay {

41 display: inline-flex; align-items: center; gap: 8px;

42 background: var(--cs-clay-deep); color: #fff; border: none;

43 border-radius: 8px; padding: 8px 14px;

44 font-size: 13px; font-weight: 500;

45 transition: background-color 0.15s; white-space: nowrap;

46}

47.cc-cs-btn-clay:hover { background: var(--cs-clay); }

48.cc-cs-btn-ghost {

49 display: inline-flex; align-items: center; gap: 8px;

50 background: transparent; color: var(--cs-gray-700);

51 border: 0.5px solid var(--cs-border-default);

52 border-radius: 8px; padding: 8px 14px;

53 font-size: 13px; font-weight: 500;

54}

55.cc-cs-btn-ghost:hover { background: rgba(0, 0, 0, 0.04); }

56.dark .cc-cs-btn-ghost:hover { background: rgba(255, 255, 255, 0.04); }

57@media (max-width: 720px) {

58 .cc-cs-actions { width: 100%; }

59}

60`;

61 return <div className="cc-cs not-prose">

62 <style>{STYLES}</style>

63 <div className="cc-cs-card">

64 <div className="cc-cs-text">

65 <strong>Deploying Claude Code across your organization?</strong> Talk to sales about enterprise plans, SSO, and centralized billing.

66 </div>

67 <div className="cc-cs-actions">

68 <a href={`https://claude.com/pricing?${utm('view_plans')}#plans-business`} className="cc-cs-btn-ghost">

69 View plans

70 </a>

71 <a href={`https://claude.com/contact-sales?${utm('contact_sales')}`} className="cc-cs-btn-clay">

72 Contact sales {iconArrowRight()}

73 </a>

74 </div>

75 </div>

76 </div>;

77};

78 

79export const Experiment = ({flag, treatment, children}) => {

80 const VID_KEY = 'exp_vid';

81 const CONSENT_COUNTRIES = new Set(['AT', 'BE', 'BG', 'HR', 'CY', 'CZ', 'DK', 'EE', 'FI', 'FR', 'DE', 'GR', 'HU', 'IE', 'IT', 'LV', 'LT', 'LU', 'MT', 'NL', 'PL', 'PT', 'RO', 'SK', 'SI', 'ES', 'SE', 'RE', 'GP', 'MQ', 'GF', 'YT', 'BL', 'MF', 'PM', 'WF', 'PF', 'NC', 'AW', 'CW', 'SX', 'FO', 'GL', 'AX', 'GB', 'UK', 'AI', 'BM', 'IO', 'VG', 'KY', 'FK', 'GI', 'MS', 'PN', 'SH', 'TC', 'GG', 'JE', 'IM', 'CA', 'BR', 'IN']);

82 const fnv1a = s => {

83 let h = 0x811c9dc5;

84 for (let i = 0; i < s.length; i++) {

85 h ^= s.charCodeAt(i);

86 h += (h << 1) + (h << 4) + (h << 7) + (h << 8) + (h << 24);

87 }

88 return h >>> 0;

89 };

90 const bucket = (seed, vid) => fnv1a(fnv1a(seed + vid) + '') % 10000 < 5000 ? 'control' : 'treatment';

91 const [decision] = useState(() => {

92 const params = new URLSearchParams(location.search);

93 const preBucketed = document.documentElement.dataset['gb_' + flag.replace(/-/g, '_')];

94 const force = params.get('gb-force');

95 if (force) {

96 for (const p of force.split(',')) {

97 const [k, v] = p.split(':');

98 if (k === flag) return {

99 variant: v || 'treatment',

100 track: false

101 };

102 }

103 }

104 if (navigator.globalPrivacyControl) {

105 return {

106 variant: 'control',

107 track: false

108 };

109 }

110 const prefsMatch = document.cookie.match(/(?:^|; )anthropic-consent-preferences=([^;]+)/);

111 if (prefsMatch) {

112 try {

113 if (JSON.parse(decodeURIComponent(prefsMatch[1])).analytics !== true) {

114 return {

115 variant: 'control',

116 track: false

117 };

118 }

119 } catch {

120 return {

121 variant: 'control',

122 track: false

123 };

124 }

125 } else {

126 const country = params.get('country')?.toUpperCase() || (document.cookie.match(/(?:^|; )cf_geo=([A-Z]{2})/) || [])[1];

127 if (!country || CONSENT_COUNTRIES.has(country)) {

128 return {

129 variant: 'control',

130 track: false

131 };

132 }

133 }

134 let vid;

135 try {

136 const ajsMatch = document.cookie.match(/(?:^|; )ajs_anonymous_id=([^;]+)/);

137 if (ajsMatch) {

138 vid = decodeURIComponent(ajsMatch[1]).replace(/^"|"$/g, '');

139 } else {

140 vid = localStorage.getItem(VID_KEY);

141 if (!vid) {

142 vid = crypto.randomUUID();

143 }

144 document.cookie = `ajs_anonymous_id=${vid}; domain=.claude.com; path=/; Secure; SameSite=Lax; max-age=31536000`;

145 }

146 try {

147 localStorage.setItem(VID_KEY, vid);

148 } catch {}

149 } catch {

150 return {

151 variant: 'control',

152 track: false

153 };

154 }

155 const variant = preBucketed === '1' ? 'treatment' : preBucketed === '0' ? 'control' : bucket(flag, vid);

156 return {

157 variant,

158 track: true,

159 vid

160 };

161 });

162 useEffect(() => {

163 if (!decision.track) return;

164 fetch('https://api.anthropic.com/api/event_logging/v2/batch', {

165 method: 'POST',

166 headers: {

167 'Content-Type': 'application/json',

168 'x-service-name': 'claude_code_docs'

169 },

170 body: JSON.stringify({

171 events: [{

172 event_type: 'GrowthbookExperimentEvent',

173 event_data: {

174 device_id: decision.vid,

175 anonymous_id: decision.vid,

176 timestamp: new Date().toISOString(),

177 experiment_id: flag,

178 variation_id: decision.variant === 'treatment' ? 1 : 0,

179 environment: 'production'

180 }

181 }]

182 }),

183 keepalive: true

184 }).catch(() => {});

185 }, []);

186 return decision.variant === 'treatment' ? treatment : children;

187};

188 

189<Experiment flag="docs-contact-sales-cta" treatment={<ContactSalesCard surface="claude_platform_on_aws" />} />

190 

9Claude Platform on AWS è l'API Claude gestita da Anthropic con autenticazione AWS, controllo dell'accesso IAM e fatturazione tramite AWS Marketplace. Le richieste raggiungono direttamente l'API di Anthropic, quindi si ottengono gli stessi modelli e funzionalità dell'[API Claude](https://platform.claude.com/docs) con la stessa pianificazione dei rilasci. L'autenticazione avviene con le credenziali AWS o una chiave API dell'area di lavoro, e il pagamento avviene tramite AWS Marketplace.191Claude Platform on AWS è l'API Claude gestita da Anthropic con autenticazione AWS, controllo dell'accesso IAM e fatturazione tramite AWS Marketplace. Le richieste raggiungono direttamente l'API di Anthropic, quindi si ottengono gli stessi modelli e funzionalità dell'[API Claude](https://platform.claude.com/docs) con la stessa pianificazione dei rilasci. L'autenticazione avviene con le credenziali AWS o una chiave API dell'area di lavoro, e il pagamento avviene tramite AWS Marketplace.

10 192 

11Utilizzare questa guida per indirizzare Claude Code a un'area di lavoro già fornita tramite Claude Platform on AWS. Per la sottoscrizione AWS e la configurazione dell'area di lavoro che precede questo, consultare la [documentazione di Claude Platform on AWS](https://platform.claude.com/docs/en/build-with-claude/claude-platform-on-aws).193Utilizzare questa guida per indirizzare Claude Code a un'area di lavoro già fornita tramite Claude Platform on AWS. Per la sottoscrizione AWS e la configurazione dell'area di lavoro che precede questo, consultare la [documentazione di Claude Platform on AWS](https://platform.claude.com/docs/en/build-with-claude/claude-platform-on-aws).


92 3. Fissare le versioni dei modelli274 3. Fissare le versioni dei modelli

93</h3>275</h3>

94 276 

95Claude Platform on AWS utilizza gli stessi ID modello dell'API Claude diretta. Gli alias predefiniti `opus`, `sonnet` e `haiku` si risolvono alle versioni più recenti disponibili nell'area di lavoro.277Claude Platform on AWS utilizza gli stessi ID modello dell'API Claude diretta. Gli alias predefiniti `fable`, `opus`, `sonnet` e `haiku` si risolvono alle impostazioni predefinite integrate di Claude Code per Claude Platform on AWS, che possono essere in ritardo rispetto alla versione più recente. Senza `ANTHROPIC_DEFAULT_OPUS_MODEL`, l'alias `opus` si risolve in Opus 4.7.

96 278 

97Se si distribuisce Claude Code a un team, fissare esplicitamente gli ID modello in modo che un nuovo rilascio non sposti tutti contemporaneamente:279Se si distribuisce Claude Code a un team, fissare esplicitamente gli ID modello in modo che un nuovo rilascio non sposti tutti contemporaneamente:

98 280 

99```bash theme={null}281```bash theme={null}

282export ANTHROPIC_DEFAULT_FABLE_MODEL=claude-fable-5

100export ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-4-7283export ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-4-7

101export ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-4-6284export ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-4-6

102export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5285export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5


157 `403 Forbidden` o `AccessDenied` su ogni richiesta340 `403 Forbidden` o `AccessDenied` su ogni richiesta

158</h3>341</h3>

159 342 

160Il principale IAM che Claude Code ha risolto probabilmente manca dell'autorizzazione per invocare il servizio Anthropic nell'area di lavoro. Controllare il ruolo collegato al profilo AWS o al runner che ha avviato Claude Code e verificare che disponga delle azioni `aws-external-anthropic` documentate nel [riferimento delle azioni IAM](https://platform.claude.com/docs/en/api/claude-platform-on-aws-iam-actions).343Il principale IAM che Claude Code ha risolto probabilmente manca dell'autorizzazione per invocare il servizio Anthropic nell'area di lavoro. Controllare il ruolo collegato al profilo AWS o al runner che ha avviato Claude Code e verificare che disponga delle azioni `aws-external-anthropic` documentate nel [riferimento delle azioni IAM](https://platform.claude.com/docs/it/api/claude-platform-on-aws-iam-actions).

161 344 

162Se è stato impostato `ANTHROPIC_AWS_API_KEY`, la chiave ha la precedenza su SigV4 e una chiave obsoleta produce lo stesso errore. Rigenerare la chiave nella console AWS in **Claude Platform on AWS → API keys** o annullare l'impostazione della variabile per tornare alle credenziali AWS.345Se è stato impostato `ANTHROPIC_AWS_API_KEY`, la chiave ha la precedenza su SigV4 e una chiave obsoleta produce lo stesso errore. Rigenerare la chiave nella console AWS in **Claude Platform on AWS → API keys** o annullare l'impostazione della variabile per tornare alle credenziali AWS.

163 346 


179 362 

180La sottoscrizione a Claude Platform on AWS, la configurazione dell'area di lavoro e IAM che precede la configurazione di Claude Code è coperta nella documentazione della piattaforma:363La sottoscrizione a Claude Platform on AWS, la configurazione dell'area di lavoro e IAM che precede la configurazione di Claude Code è coperta nella documentazione della piattaforma:

181 364 

182* [Panoramica di Claude Platform on AWS](https://platform.claude.com/docs/en/build-with-claude/claude-platform-on-aws): sottoscrizione, configurazione dell'area di lavoro e riferimento del prodotto365* [Panoramica di Claude Platform on AWS](https://platform.claude.com/docs/it/build-with-claude/claude-platform-on-aws): sottoscrizione, configurazione dell'area di lavoro e riferimento del prodotto

183* [Riferimento delle azioni IAM](https://platform.claude.com/docs/en/api/claude-platform-on-aws-iam-actions): autorizzazioni e criteri gestiti366* [Riferimento delle azioni IAM](https://platform.claude.com/docs/it/api/claude-platform-on-aws-iam-actions): autorizzazioni e criteri gestiti

cli-reference.md +12 −10

Details

13Puoi avviare sessioni, inviare contenuti tramite pipe, riprendere conversazioni e gestire gli aggiornamenti con questi comandi:13Puoi avviare sessioni, inviare contenuti tramite pipe, riprendere conversazioni e gestire gli aggiornamenti con questi comandi:

14 14 

15| Comando | Descrizione | Esempio |15| Comando | Descrizione | Esempio |

16| :------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------- |16| :------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------- |

17| `claude` | Avvia sessione interattiva | `claude` |17| `claude` | Avvia sessione interattiva | `claude` |

18| `claude "query"` | Avvia sessione interattiva con prompt iniziale | `claude "explain this project"` |18| `claude "query"` | Avvia sessione interattiva con prompt iniziale | `claude "explain this project"` |

19| `claude -p "query"` | Esegui query tramite SDK, quindi esci | `claude -p "explain this function"` |19| `claude -p "query"` | Esegui query tramite SDK, quindi esci | `claude -p "explain this function"` |


26| `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` |26| `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 logout` | Esci dal tuo account Anthropic | `claude auth logout` |27| `claude auth logout` | Esci dal tuo account Anthropic | `claude auth logout` |

28| `claude auth status` | Mostra lo stato di autenticazione come JSON. Usa `--text` per output leggibile dall'uomo. Esce con codice 0 se connesso, 1 se no | `claude auth status` |28| `claude auth status` | Mostra lo stato di autenticazione come JSON. Usa `--text` per output leggibile dall'uomo. Esce con codice 0 se connesso, 1 se no | `claude auth status` |

29| `claude agents` | Apri la [visualizzazione agente](/it/agent-view) per monitorare e inviare sessioni parallele in background. Usa `--cwd <path>` per mostrare solo le sessioni avviate in quella directory, oppure `--json` per stampare le sessioni attive come un array JSON per gli script. Passa `--permission-mode`, `--model`, `--effort` o `--agent` per impostare i [valori predefiniti per le sessioni inviate](/it/agent-view#permission-mode-model-and-effort). Accetta `--settings`, `--add-dir`, `--plugin-dir` e `--mcp-config` come il comando `claude` di livello superiore. L'apertura della visualizzazione agente richiede un terminale interattivo | `claude agents --json` |29| `claude agents` | Apri la [visualizzazione agente](/it/agent-view) per monitorare e inviare sessioni parallele in background. Usa `--cwd <path>` per mostrare solo le sessioni avviate in quella directory, oppure `--json` per stampare le sessioni attive come un array JSON per gli script (`--json --all` include anche le sessioni in background completate). Passa `--permission-mode`, `--model`, `--effort` o `--agent` per impostare i [valori predefiniti per le sessioni inviate](/it/agent-view#permission-mode-model-and-effort). Accetta `--settings`, `--add-dir`, `--plugin-dir` e `--mcp-config` come il comando `claude` di livello superiore. L'apertura della visualizzazione agente richiede un terminale interattivo | `claude agents --json` |

30| `claude attach <id>` | Collegati a una [sessione in background](/it/agent-view#manage-sessions-from-the-shell) in questo terminale | `claude attach 7c5dcf5d` |30| `claude attach <id>` | Collegati a una [sessione in background](/it/agent-view#manage-sessions-from-the-shell) in questo terminale | `claude attach 7c5dcf5d` |

31| `claude auto-mode defaults` | Stampa le regole del classificatore [auto mode](/it/permission-modes#eliminate-prompts-with-auto-mode) integrate come JSON. Usa `claude auto-mode config` per visualizzare la tua configurazione effettiva con le impostazioni applicate | `claude auto-mode defaults > rules.json` |31| `claude auto-mode defaults` | Stampa le regole del classificatore [auto mode](/it/permission-modes#eliminate-prompts-with-auto-mode) integrate come JSON. Usa `claude auto-mode config` per visualizzare la tua configurazione effettiva con le impostazioni applicate | `claude auto-mode defaults > rules.json` |

32| `claude daemon status` | Stampa lo stato del [supervisore](/it/agent-view#the-supervisor-process) della sessione in background, versione, directory socket e numero di worker per la diagnostica. Esce con 1 se il supervisore non è in esecuzione | `claude daemon status` |32| `claude daemon status` | Stampa lo stato del [supervisore](/it/agent-view#the-supervisor-process) della sessione in background, versione, directory socket e numero di worker per la diagnostica. Esce con 1 se il supervisore non è in esecuzione | `claude daemon status` |


51Personalizza il comportamento di Claude Code con questi flag da riga di comando. `claude --help` non elenca ogni flag, quindi l'assenza di un flag da `--help` non significa che non sia disponibile.51Personalizza il comportamento di Claude Code con questi flag da riga di comando. `claude --help` non elenca ogni flag, quindi l'assenza di un flag da `--help` non significa che non sia disponibile.

52 52 

53| Flag | Descrizione | Esempio |53| Flag | Descrizione | Esempio |

54| :---------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------- |54| :---------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------- |

55| `--add-dir` | Aggiungi directory di lavoro aggiuntive per Claude per leggere e modificare file. Concede l'accesso ai file; la maggior parte della configurazione `.claude/` [non viene scoperta](/it/permissions#additional-directories-grant-file-access-not-configuration) da queste directory. Convalida che ogni percorso esista come directory. Per persistere queste directory tra le sessioni, imposta [`permissions.additionalDirectories`](/it/settings#permission-settings) nelle impostazioni | `claude --add-dir ../apps ../lib` |55| `--add-dir` | Aggiungi directory di lavoro aggiuntive per Claude per leggere e modificare file. Concede l'accesso ai file; la maggior parte della configurazione `.claude/` [non viene scoperta](/it/permissions#additional-directories-grant-file-access-not-configuration) da queste directory. Convalida che ogni percorso esista come directory. Per persistere queste directory tra le sessioni, imposta [`permissions.additionalDirectories`](/it/settings#permission-settings) nelle impostazioni | `claude --add-dir ../apps ../lib` |

56| `--advisor <model>` | {/* min-version: 2.1.98 */}Abilita lo [strumento advisor](/it/advisor) lato server per questa sessione con un alias di modello: `opus`, `sonnet` o `fable` ({/* min-version: 2.1.170 */}v2.1.170+), o un ID modello completo. Ha la precedenza sull'impostazione `advisorModel` per la sessione. Richiede Claude Code v2.1.98 o successivo | `claude --advisor opus` |

56| `--agent` | Specifica un agent per la sessione corrente (sostituisce l'impostazione `agent`) | `claude --agent my-custom-agent` |57| `--agent` | Specifica un agent per la sessione corrente (sostituisce l'impostazione `agent`) | `claude --agent my-custom-agent` |

57| `--agents` | Definisci subagents personalizzati dinamicamente tramite JSON. Utilizza gli stessi nomi di campo del [frontmatter](/it/sub-agents#supported-frontmatter-fields) dei subagents, più un campo `prompt` per le istruzioni dell'agent | `claude --agents '{"reviewer":{"description":"Reviews code","prompt":"You are a code reviewer"}}'` |58| `--agents` | Definisci subagents personalizzati dinamicamente tramite JSON. Utilizza gli stessi nomi di campo del [frontmatter](/it/sub-agents#supported-frontmatter-fields) dei subagents, più un campo `prompt` per le istruzioni dell'agent | `claude --agents '{"reviewer":{"description":"Reviews code","prompt":"You are a code reviewer"}}'` |

58| `--allow-dangerously-skip-permissions` | Aggiungi `bypassPermissions` al ciclo della modalità `Shift+Tab` senza iniziare in essa. Ti consente di iniziare in una modalità diversa come `plan` e passare a `bypassPermissions` in seguito. Vedi [modalità di autorizzazione](/it/permission-modes#skip-all-checks-with-bypasspermissions-mode) | `claude --permission-mode plan --allow-dangerously-skip-permissions` |59| `--allow-dangerously-skip-permissions` | Aggiungi `bypassPermissions` al ciclo della modalità `Shift+Tab` senza iniziare in essa. Ti consente di iniziare in una modalità diversa come `plan` e passare a `bypassPermissions` in seguito. Vedi [modalità di autorizzazione](/it/permission-modes#skip-all-checks-with-bypasspermissions-mode) | `claude --permission-mode plan --allow-dangerously-skip-permissions` |

59| `--allowedTools` | Strumenti che si eseguono senza richiedere l'autorizzazione. Vedi [sintassi delle regole di autorizzazione](/it/settings#permission-rule-syntax) per la corrispondenza dei pattern. Per limitare quali strumenti sono disponibili, usa `--tools` invece | `"Bash(git log *)" "Bash(git diff *)" "Read"` |60| `--allowedTools`, `--allowed-tools` | Strumenti che si eseguono senza richiedere l'autorizzazione. Vedi [sintassi delle regole di autorizzazione](/it/settings#permission-rule-syntax) per la corrispondenza dei pattern. Per limitare quali strumenti sono disponibili, usa `--tools` invece | `"Bash(git log *)" "Bash(git diff *)" "Read"` |

60| `--append-system-prompt` | Aggiungi testo personalizzato alla fine del prompt di sistema predefinito | `claude --append-system-prompt "Always use TypeScript"` |61| `--append-system-prompt` | Aggiungi testo personalizzato alla fine del prompt di sistema predefinito | `claude --append-system-prompt "Always use TypeScript"` |

61| `--append-system-prompt-file` | Carica testo di prompt di sistema aggiuntivo da un file e aggiungi al prompt predefinito | `claude --append-system-prompt-file ./extra-rules.txt` |62| `--append-system-prompt-file` | Carica testo di prompt di sistema aggiuntivo da un file e aggiungi al prompt predefinito | `claude --append-system-prompt-file ./extra-rules.txt` |

62| `--bare` | Modalità minima: salta l'auto-discovery di hooks, skills, plugins, server MCP, memoria automatica e CLAUDE.md in modo che le chiamate con script si avviino più velocemente. Claude ha accesso a strumenti Bash, lettura file e modifica file. Imposta [`CLAUDE_CODE_SIMPLE`](/it/env-vars). Vedi [modalità bare](/it/headless#start-faster-with-bare-mode) | `claude --bare -p "query"` |63| `--bare` | Modalità minima: salta l'auto-discovery di hooks, skills, plugins, server MCP, memoria automatica e CLAUDE.md in modo che le chiamate con script si avviino più velocemente. Claude ha accesso a strumenti Bash, lettura file e modifica file. Imposta [`CLAUDE_CODE_SIMPLE`](/it/env-vars). Vedi [modalità bare](/it/headless#start-faster-with-bare-mode) | `claude --bare -p "query"` |


70| `--debug` | Abilita la modalità debug con filtro di categoria opzionale (ad esempio, `"api,hooks"` o `"!statsig,!file"`) | `claude --debug "api,mcp"` |71| `--debug` | Abilita la modalità debug con filtro di categoria opzionale (ad esempio, `"api,hooks"` o `"!statsig,!file"`) | `claude --debug "api,mcp"` |

71| `--debug-file <path>` | Scrivi i log di debug in un percorso file specifico. Abilita implicitamente la modalità debug. Ha la precedenza su `CLAUDE_CODE_DEBUG_LOGS_DIR` | `claude --debug-file /tmp/claude-debug.log` |72| `--debug-file <path>` | Scrivi i log di debug in un percorso file specifico. Abilita implicitamente la modalità debug. Ha la precedenza su `CLAUDE_CODE_DEBUG_LOGS_DIR` | `claude --debug-file /tmp/claude-debug.log` |

72| `--disable-slash-commands` | Disabilita tutti gli skills e i comandi per questa sessione | `claude --disable-slash-commands` |73| `--disable-slash-commands` | Disabilita tutti gli skills e i comandi per questa sessione | `claude --disable-slash-commands` |

73| `--disallowedTools` | Regole di negazione. Un nome di strumento nudo rimuove quello strumento dal contesto del modello. Una regola con ambito come `Bash(rm *)` lascia lo strumento disponibile e nega solo le chiamate corrispondenti | `"Bash(git log *)" "Bash(git diff *)" "Edit"` |74| `--disallowedTools`, `--disallowed-tools` | Regole di negazione. Un nome di strumento nudo rimuove gli strumenti corrispondenti dal contesto del modello: `"Edit"` rimuove Edit, `"*"` rimuove ogni strumento e `"mcp__*"` rimuove ogni strumento MCP. Una regola con ambito come `Bash(rm *)` lascia lo strumento disponibile e nega solo le chiamate corrispondenti | `"Bash(git log *)" "Bash(git diff *)" "Edit"` |

74| `--effort` | Imposta il [livello di sforzo](/it/model-config#adjust-effort-level) per la sessione corrente. Opzioni: `low`, `medium`, `high`, `xhigh`, `max`; i livelli disponibili dipendono dal modello. Sostituisce l'impostazione [`effortLevel`](/it/settings#available-settings) per questa sessione e non persiste | `claude --effort high` |75| `--effort` | Imposta il [livello di sforzo](/it/model-config#adjust-effort-level) per la sessione corrente. Opzioni: `low`, `medium`, `high`, `xhigh`, `max`; i livelli disponibili dipendono dal modello. Sostituisce l'impostazione [`effortLevel`](/it/settings#available-settings) per questa sessione e non persiste | `claude --effort high` |

75| `--enable-auto-mode` | {/* max-version: 2.1.110 */}Rimosso in v2.1.111. Auto mode è ora nel ciclo `Shift+Tab` per impostazione predefinita; usa `--permission-mode auto` per iniziare in esso | `claude --permission-mode auto` |76| `--enable-auto-mode` | {/* max-version: 2.1.110 */}Rimosso in v2.1.111. Auto mode è ora nel ciclo `Shift+Tab` per impostazione predefinita; usa `--permission-mode auto` per iniziare in esso | `claude --permission-mode auto` |

76| `--exclude-dynamic-system-prompt-sections` | Sposta le sezioni per macchina dal prompt di sistema (directory di lavoro, informazioni sull'ambiente, percorsi di memoria, stato git) nel primo messaggio dell'utente. Migliora il riutilizzo della prompt-cache tra diversi utenti e macchine che eseguono lo stesso compito. Si applica solo con il prompt di sistema predefinito; ignorato quando `--system-prompt` o `--system-prompt-file` è impostato. Usa con `-p` per carichi di lavoro con script e multi-utente | `claude -p --exclude-dynamic-system-prompt-sections "query"` |77| `--exclude-dynamic-system-prompt-sections` | Sposta le sezioni per macchina dal prompt di sistema (directory di lavoro, informazioni sull'ambiente, percorsi di memoria, flag git-repo) nel primo messaggio dell'utente. Migliora il riutilizzo della prompt-cache tra diversi utenti e macchine che eseguono lo stesso compito. Si applica solo con il prompt di sistema predefinito; ignorato quando `--system-prompt` o `--system-prompt-file` è impostato. Usa con `-p` per carichi di lavoro con script e multi-utente | `claude -p --exclude-dynamic-system-prompt-sections "query"` |

77| `--exec` | Esegui un comando shell come un job in background supportato da PTY invece di avviare una sessione Claude. Usa con `--bg` per avviare dalla shell | `claude --bg --exec 'pytest -x'` |78| `--exec` | Esegui un comando shell come un job in background supportato da PTY invece di avviare una sessione Claude. Usa con `--bg` per avviare dalla shell | `claude --bg --exec 'pytest -x'` |

78| `--fallback-model` | Abilita il fallback automatico a un modello specificato quando il modello predefinito è sovraccarico o non disponibile, ad esempio un modello ritirato. Ha effetto in modalità print (`-p`) e in [sessioni in background](/it/agent-view), che vengono eseguite in modo non interattivo; ignorato in una sessione interattiva | `claude -p --fallback-model sonnet "query"` |79| `--fallback-model` | Abilita il fallback automatico al modello specificato quando il modello primario è sovraccarico o non disponibile, ad esempio un modello ritirato. Accetta un elenco separato da virgole provato in ordine. Vedi [Catene di modelli di fallback](/it/model-config#fallback-model-chains). Per persistere una catena tra le sessioni, usa l'impostazione [`fallbackModel`](/it/settings#available-settings), che questo flag sostituisce | `claude --fallback-model sonnet,haiku` |

79| `--fork-session` | Quando riprendi, crea un nuovo ID di sessione invece di riutilizzare l'originale (usa con `--resume` o `--continue`) | `claude --resume abc123 --fork-session` |80| `--fork-session` | Quando riprendi, crea un nuovo ID di sessione invece di riutilizzare l'originale (usa con `--resume` o `--continue`) | `claude --resume abc123 --fork-session` |

80| `--from-pr` | Riprendi sessioni collegate a una specifica pull request. Accetta un numero di PR, un URL di GitHub o GitHub Enterprise PR, un URL di merge request di GitLab o un URL di pull request di Bitbucket. Le sessioni vengono collegate automaticamente quando Claude crea la pull request | `claude --from-pr 123` |81| `--from-pr` | Riprendi sessioni collegate a una specifica pull request. Accetta un numero di PR, un URL di GitHub o GitHub Enterprise PR, un URL di merge request di GitLab o un URL di pull request di Bitbucket. Le sessioni vengono collegate automaticamente quando Claude crea la pull request | `claude --from-pr 123` |

81| `--ide` | Connettiti automaticamente all'IDE all'avvio se esattamente un IDE valido è disponibile | `claude --ide` |82| `--ide` | Connettiti automaticamente all'IDE all'avvio se esattamente un IDE valido è disponibile | `claude --ide` |


89| `--max-budget-usd` | Importo massimo in dollari da spendere nelle chiamate API prima di fermarsi (solo modalità print) | `claude -p --max-budget-usd 5.00 "query"` |90| `--max-budget-usd` | Importo massimo in dollari da spendere nelle chiamate API prima di fermarsi (solo modalità print) | `claude -p --max-budget-usd 5.00 "query"` |

90| `--max-turns` | Limita il numero di turni agentici (solo modalità print). Esce con un errore quando il limite viene raggiunto. Nessun limite per impostazione predefinita | `claude -p --max-turns 3 "query"` |91| `--max-turns` | Limita il numero di turni agentici (solo modalità print). Esce con un errore quando il limite viene raggiunto. Nessun limite per impostazione predefinita | `claude -p --max-turns 3 "query"` |

91| `--mcp-config` | Carica server MCP da file JSON o stringhe (separati da spazi) | `claude --mcp-config ./mcp.json` |92| `--mcp-config` | Carica server MCP da file JSON o stringhe (separati da spazi) | `claude --mcp-config ./mcp.json` |

92| `--model` | Imposta il modello per la sessione corrente con un alias per il modello più recente (`sonnet` o `opus`) o il nome completo di un modello. Sostituisce l'impostazione [`model`](/it/settings#available-settings) e [`ANTHROPIC_MODEL`](/it/model-config#environment-variables) | `claude --model claude-sonnet-4-6` |93| `--model` | Imposta il modello per la sessione corrente con un alias per il modello più recente (`sonnet`, `opus`, `haiku` o `fable`) o il nome completo di un modello. Sostituisce l'impostazione [`model`](/it/settings#available-settings) e [`ANTHROPIC_MODEL`](/it/model-config#environment-variables) | `claude --model claude-sonnet-4-6` |

93| `--name`, `-n` | Imposta un nome visualizzato per la sessione, mostrato in `/resume` e nel titolo del terminale. Puoi riprendere una sessione denominata con `claude --resume <name>`. <br /><br />[`/rename`](/it/commands) cambia il nome durante la sessione e lo mostra anche nella barra del prompt | `claude -n "my-feature-work"` |94| `--name`, `-n` | Imposta un nome visualizzato per la sessione, mostrato in `/resume` e nel titolo del terminale. Puoi riprendere una sessione denominata con `claude --resume <name>`. <br /><br />[`/rename`](/it/commands) cambia il nome durante la sessione e lo mostra anche nella barra del prompt | `claude -n "my-feature-work"` |

94| `--no-chrome` | Disabilita [integrazione browser Chrome](/it/chrome) per questa sessione | `claude --no-chrome` |95| `--no-chrome` | Disabilita [integrazione browser Chrome](/it/chrome) per questa sessione | `claude --no-chrome` |

95| `--no-session-persistence` | Disabilita la persistenza della sessione in modo che le sessioni non vengano salvate su disco e non possano essere riprese. Solo modalità print. La variabile di ambiente [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/it/env-vars) fa lo stesso in qualsiasi modalità | `claude -p --no-session-persistence "query"` |96| `--no-session-persistence` | Disabilita la persistenza della sessione in modo che le sessioni non vengano salvate su disco e non possano essere riprese. Solo modalità print. La variabile di ambiente [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/it/env-vars) fa lo stesso in qualsiasi modalità | `claude -p --no-session-persistence "query"` |


104| `--remote-control`, `--rc` | Avvia una sessione interattiva con [Remote Control](/it/remote-control#start-a-remote-control-session) abilitato in modo da poterla controllare anche da claude.ai o dall'app Claude. Facoltativamente passa un nome per la sessione | `claude --remote-control "My Project"` |105| `--remote-control`, `--rc` | Avvia una sessione interattiva con [Remote Control](/it/remote-control#start-a-remote-control-session) abilitato in modo da poterla controllare anche da claude.ai o dall'app Claude. Facoltativamente passa un nome per la sessione | `claude --remote-control "My Project"` |

105| `--remote-control-session-name-prefix <prefix>` | Prefisso per i nomi di sessione [Remote Control](/it/remote-control) generati automaticamente quando non è impostato alcun nome esplicito. Per impostazione predefinita il nome host della tua macchina, producendo nomi come `myhost-graceful-unicorn`. Imposta `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` per lo stesso effetto | `claude remote-control --remote-control-session-name-prefix dev-box` |106| `--remote-control-session-name-prefix <prefix>` | Prefisso per i nomi di sessione [Remote Control](/it/remote-control) generati automaticamente quando non è impostato alcun nome esplicito. Per impostazione predefinita il nome host della tua macchina, producendo nomi come `myhost-graceful-unicorn`. Imposta `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` per lo stesso effetto | `claude remote-control --remote-control-session-name-prefix dev-box` |

106| `--replay-user-messages` | Ri-emetti i messaggi dell'utente da stdin su stdout per il riconoscimento. Richiede `--input-format stream-json` e `--output-format stream-json` | `claude -p --input-format stream-json --output-format stream-json --verbose --replay-user-messages` |107| `--replay-user-messages` | Ri-emetti i messaggi dell'utente da stdin su stdout per il riconoscimento. Richiede `--input-format stream-json` e `--output-format stream-json` | `claude -p --input-format stream-json --output-format stream-json --verbose --replay-user-messages` |

107| `--resume`, `-r` | Riprendi una sessione specifica per ID o nome, o mostra un selettore interattivo per scegliere una sessione. Include sessioni che hanno aggiunto questa directory con `/add-dir`. A partire da v2.1.144, le [sessioni in background](/it/agent-view) appaiono nel selettore contrassegnate con `bg` | `claude --resume auth-refactor` |108| `--resume`, `-r` | Riprendi una sessione specifica per ID o nome, o mostra un selettore interattivo per scegliere una sessione. Il selettore e la ricerca per nome includono sessioni che hanno aggiunto questa directory con `/add-dir`; passare un ID di sessione cerca solo nella directory del progetto corrente e nei suoi git worktrees. A partire da v2.1.144, le [sessioni in background](/it/agent-view) appaiono nel selettore contrassegnate con `bg` | `claude --resume auth-refactor` |

109| `--safe-mode` | {/* min-version: 2.1.169 */}Avvia con tutte le personalizzazioni disabilitate per risolvere i problemi di una configurazione interrotta: CLAUDE.md, skills, plugins, hooks, server MCP, comandi e agent personalizzati, stili di output, flussi di lavoro, temi personalizzati, scorciatoie da tastiera personalizzate, comandi della barra di stato e dei suggerimenti di file, server LSP e memoria automatica non si caricano. L'autenticazione, la selezione del modello, gli strumenti integrati e le autorizzazioni funzionano normalmente, il che differisce da [`--bare`](/it/headless#start-faster-with-bare-mode). La politica delle impostazioni gestite si applica comunque, inclusi hook configurati da politica, barra di stato e comandi dei suggerimenti di file; plugin gestiti, skills gestiti, CLAUDE.md gestito e server MCP configurati da politica non lo fanno. Utile per verificare se una personalizzazione è ciò che attiva il [fallback automatico da Fable 5](/it/model-config#automatic-model-fallback). Imposta [`CLAUDE_CODE_SAFE_MODE`](/it/env-vars) | `claude --safe-mode` |

108| `--session-id` | Usa uno specifico ID di sessione per la conversazione (deve essere un UUID valido) | `claude --session-id "550e8400-e29b-41d4-a716-446655440000"` |110| `--session-id` | Usa uno specifico ID di sessione per la conversazione (deve essere un UUID valido) | `claude --session-id "550e8400-e29b-41d4-a716-446655440000"` |

109| `--setting-sources` | Elenco separato da virgole delle fonti di impostazioni da caricare (`user`, `project`, `local`) | `claude --setting-sources user,project` |111| `--setting-sources` | Elenco separato da virgole delle fonti di impostazioni da caricare (`user`, `project`, `local`) | `claude --setting-sources user,project` |

110| `--settings` | Percorso di un file JSON di impostazioni o una stringa JSON inline. I valori che imposti qui sostituiscono le stesse chiavi nei tuoi file `settings.json` per questa sessione. Le chiavi che ometti mantengono i loro valori basati su file. Vedi [precedenza delle impostazioni](/it/settings#settings-precedence) | `claude --settings ./settings.json` |112| `--settings` | Percorso di un file JSON di impostazioni o una stringa JSON inline. I valori che imposti qui sostituiscono le stesse chiavi nei tuoi file `settings.json` per questa sessione. Le chiavi che ometti mantengono i loro valori basati su file. Vedi [precedenza delle impostazioni](/it/settings#settings-precedence) | `claude --settings ./settings.json` |


114| `--teleport` | Riprendi una [sessione web](/it/claude-code-on-the-web) nel tuo terminale locale | `claude --teleport` |116| `--teleport` | Riprendi una [sessione web](/it/claude-code-on-the-web) nel tuo terminale locale | `claude --teleport` |

115| `--teammate-mode` | Imposta come i compagni di squadra del [team di agent](/it/agent-teams) vengono visualizzati: `auto` (predefinito), `in-process` o `tmux`. Sostituisce l'impostazione [`teammateMode`](/it/settings#available-settings) per questa sessione. Vedi [Scegli una modalità di visualizzazione](/it/agent-teams#choose-a-display-mode) | `claude --teammate-mode in-process` |117| `--teammate-mode` | Imposta come i compagni di squadra del [team di agent](/it/agent-teams) vengono visualizzati: `auto` (predefinito), `in-process` o `tmux`. Sostituisce l'impostazione [`teammateMode`](/it/settings#available-settings) per questa sessione. Vedi [Scegli una modalità di visualizzazione](/it/agent-teams#choose-a-display-mode) | `claude --teammate-mode in-process` |

116| `--tmux` | Crea una sessione tmux per il worktree. Richiede `--worktree`. Utilizza i riquadri nativi di iTerm2 quando disponibili; passa `--tmux=classic` per tmux tradizionale | `claude -w feature-auth --tmux` |118| `--tmux` | Crea una sessione tmux per il worktree. Richiede `--worktree`. Utilizza i riquadri nativi di iTerm2 quando disponibili; passa `--tmux=classic` per tmux tradizionale | `claude -w feature-auth --tmux` |

117| `--tools` | Limita quali strumenti integrati Claude può utilizzare. Usa `""` per disabilitare tutti, `"default"` per tutti, o nomi di strumenti come `"Bash,Edit,Read"` | `claude --tools "Bash,Edit,Read"` |119| `--tools` | Limita quali strumenti integrati Claude può utilizzare. Usa `""` per disabilitare tutti, `"default"` per tutti, o nomi di strumenti come `"Bash,Edit,Read"`. Gli strumenti MCP non sono interessati; per negarli anche, usa `--disallowedTools "mcp__*"` o passa `--strict-mcp-config` senza `--mcp-config` in modo che nessun server MCP si carichi | `claude --tools "Bash,Edit,Read"` |

118| `--verbose` | Abilita la registrazione dettagliata, mostra l'output completo turno per turno. Sostituisce l'impostazione [`viewMode`](/it/settings#available-settings) per questa sessione | `claude --verbose` |120| `--verbose` | Abilita la registrazione dettagliata, mostra l'output completo turno per turno. Sostituisce l'impostazione [`viewMode`](/it/settings#available-settings) per questa sessione | `claude --verbose` |

119| `--version`, `-v` | Restituisce il numero di versione | `claude -v` |121| `--version`, `-v` | Restituisce il numero di versione | `claude -v` |

120| `--worktree`, `-w` | Avvia Claude in un [git worktree](/it/worktrees) isolato in `<repo>/.claude/worktrees/<name>`. Se non viene fornito alcun nome, uno viene generato automaticamente. Passa `#<number>` o un URL di pull request di GitHub per recuperare quella PR da `origin` e creare un branch del worktree da essa | `claude -w feature-auth` |122| `--worktree`, `-w` | Avvia Claude in un [git worktree](/it/worktrees) isolato in `<repo>/.claude/worktrees/<name>`. Se non viene fornito alcun nome, uno viene generato automaticamente. Passa `#<number>` o un URL di pull request di GitHub per recuperare quella PR da `origin` e creare un branch del worktree da essa | `claude -w feature-auth` |

code-review.md +5 −5

Details

295 295 

296Il pulsante **Re-run** nella scheda Checks di GitHub non riattiva Code Review. Usa il comando di commento o un nuovo push invece.296Il pulsante **Re-run** nella scheda Checks di GitHub non riattiva Code Review. Usa il comando di commento o un nuovo push invece.

297 297 

298<h3 id="review-didn-t-run-and-the-pr-shows-a-spend-cap-message">298<h3 id="review-didnt-run-and-the-pr-shows-a-spend-cap-message">

299 La revisione non è stata eseguita e il PR mostra un messaggio di limite di spesa299 La revisione non è stata eseguita e il PR mostra un messaggio di limite di spesa

300</h3>300</h3>

301 301 

302Quando il limite di spesa mensile dell'organizzazione viene raggiunto, Code Review pubblica un singolo commento sul PR spiegando che la revisione è stata saltata. Le revisioni riprendono automaticamente all'inizio del prossimo periodo di fatturazione, o immediatamente quando un amministratore aumenta il limite a [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage).302Quando il limite di spesa mensile dell'organizzazione viene raggiunto, Code Review pubblica un singolo commento sul PR spiegando che la revisione è stata saltata. Le revisioni riprendono automaticamente all'inizio del prossimo periodo di fatturazione, o immediatamente quando un amministratore aumenta il limite a [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage).

303 303 

304<h3 id="find-issues-that-aren-t-showing-as-inline-comments">304<h3 id="find-issues-that-arent-showing-as-inline-comments">

305 Trova problemi che non vengono visualizzati come commenti inline305 Trova problemi che non vengono visualizzati come commenti inline

306</h3>306</h3>

307 307 


315 Revisione di un diff localmente315 Revisione di un diff localmente

316</h2>316</h2>

317 317 

318Il comando [`/code-review`](/it/commands) esamina un diff nel tuo terminale senza installare l'app GitHub. Eseguilo in qualsiasi sessione Claude Code: segnala bug di correttezza e {/* min-version: 2.1.151 */}riutilizzo, semplificazione e pulizie di efficienza nel diff attuale. Passa `--comment` per pubblicare i risultati come commenti PR inline, o `--fix` per applicare i risultati al tuo albero di lavoro dopo la revisione.318Il comando [`/code-review`](/it/commands) esamina un diff nel tuo terminale senza installare l'app GitHub. Eseguilo in qualsiasi sessione Claude Code: segnala bug di correttezza e {/* min-version: 2.1.151 */}riutilizzo, semplificazione e pulizie di efficienza. Per impostazione predefinita, la revisione locale copre i commit del tuo ramo in anticipo rispetto al suo upstream più eventuali modifiche non sottoposte a commit nell'albero di lavoro. Passa `--comment` per pubblicare i risultati come commenti PR inline, o `--fix` per applicare i risultati al tuo albero di lavoro dopo la revisione.

319 319 

320I [livelli di sforzo](/it/model-config#adjust-effort-level) inferiori restituiscono meno risultati, più affidabili, mentre `high` fino a `max` forniscono una copertura più ampia e possono includere risultati incerti. Senza un argomento di sforzo, la revisione utilizza lo sforzo attuale della sessione. Passa un percorso o un riferimento PR per esaminare un target specifico invece del diff attuale.320I [livelli di sforzo](/it/model-config#adjust-effort-level) inferiori restituiscono meno risultati, più affidabili, mentre `high` fino a `max` forniscono una copertura più ampia e possono includere risultati incerti. Senza un argomento di sforzo, la revisione utilizza lo sforzo attuale della sessione. Per esaminare qualcosa di diverso dal diff predefinito, passa un target: un percorso di file, un numero PR, un nome di ramo o un intervallo di ref come `main...my-feature`. La forma dell'intervallo di ref esamina il diff sottoposto a commit che una richiesta pull da `my-feature` in `main` conterrebbe, indipendentemente da come è configurato l'upstream del ramo.

321 321 

322`/code-review ultra --fix` esegue la [ultrareview](/it/ultrareview) più profonda nel cloud, quindi applica i suoi risultati al tuo albero di lavoro quando tornano nella tua sessione.322`/code-review ultra --fix` esegue la [ultrareview](/it/ultrareview) più profonda nel cloud, quindi applica i suoi risultati al tuo albero di lavoro quando tornano nella tua sessione. Ultrareview utilizza il suo proprio ambito: il tuo ramo attuale rispetto al ramo predefinito del repository, più eventuali modifiche non sottoposte a commit e in staging nell'albero di lavoro.

323 323 

324Il comando era denominato `/simplify` prima della v2.1.147, quando applicava le correzioni per impostazione predefinita. {/* min-version: 2.1.154 */}A partire dalla v2.1.154, `/simplify` esegue una revisione separata solo per la pulizia che applica le correzioni senza cercare bug. Se hai scritto script per `/simplify` per la ricerca di bug, passa a `/code-review --fix`, che rimane invariato.324Il comando era denominato `/simplify` prima della v2.1.147, quando applicava le correzioni per impostazione predefinita. {/* min-version: 2.1.154 */}A partire dalla v2.1.154, `/simplify` esegue una revisione separata solo per la pulizia che applica le correzioni senza cercare bug. Se hai scritto script per `/simplify` per la ricerca di bug, passa a `/code-review --fix`, che rimane invariato.

325 325 

commands.md +25 −14

Details

12 12 

13Un comando viene riconosciuto solo all'inizio del tuo messaggio. Il testo che segue il nome del comando viene passato ad esso come argomenti.13Un comando viene riconosciuto solo all'inizio del tuo messaggio. Il testo che segue il nome del comando viene passato ad esso come argomenti.

14 14 

15## Comandi durante un flusso di lavoro tipico15<h2 id="commands-across-a-typical-workflow">

16 Comandi durante un flusso di lavoro tipico

17</h2>

16 18 

17La maggior parte dei comandi è utile in un momento specifico di una sessione, dalla configurazione di un progetto all'invio di una modifica.19La maggior parte dei comandi è utile in un momento specifico di una sessione, dalla configurazione di un progetto all'invio di una modifica.

18 20 


28 30 

29**Quando qualcosa non va.** `/rewind` riporta il codice e la conversazione a un checkpoint precedente, o riassume parte della conversazione. `/doctor` e `/debug` diagnosticano i problemi di installazione e runtime, e `/feedback` segnala un bug con il contesto della sessione allegato.31**Quando qualcosa non va.** `/rewind` riporta il codice e la conversazione a un checkpoint precedente, o riassume parte della conversazione. `/doctor` e `/debug` diagnosticano i problemi di installazione e runtime, e `/feedback` segnala un bug con il contesto della sessione allegato.

30 32 

31## Tutti i comandi33<h2 id="all-commands">

34 Tutti i comandi

35</h2>

32 36 

33La tabella sottostante elenca tutti i comandi inclusi in Claude Code. La maggior parte sono comandi integrati il cui comportamento è codificato nella CLI. Due tipi di voci sono contrassegnate:37La tabella sottostante elenca tutti i comandi inclusi in Claude Code. La maggior parte sono comandi integrati il cui comportamento è codificato nella CLI. Due tipi di voci sono contrassegnate:

34 38 


46| Comando | Scopo |50| Comando | Scopo |

47| :--------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |51| :--------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

48| `/add-dir <path>` | Aggiungi una directory di lavoro per l'accesso ai file durante la sessione corrente. La maggior parte della configurazione `.claude/` [non viene rilevata](/it/permissions#additional-directories-grant-file-access-not-configuration) dalla directory aggiunta. Puoi successivamente riprendere la sessione dalla directory aggiunta con `--continue` o `--resume` |52| `/add-dir <path>` | Aggiungi una directory di lavoro per l'accesso ai file durante la sessione corrente. La maggior parte della configurazione `.claude/` [non viene rilevata](/it/permissions#additional-directories-grant-file-access-not-configuration) dalla directory aggiunta. Puoi successivamente riprendere la sessione dalla directory aggiunta con `--continue` o `--resume` |

53| `/advisor [model\|off]` | {/* min-version: 2.1.98 */}Abilita o disabilita lo [strumento advisor](/it/advisor), che consulta un secondo modello per una guida nei momenti chiave durante un'attività. Accetta `opus`, `sonnet`, `fable` ({/* min-version: 2.1.170 */}v2.1.170+), o un ID modello completo. Senza un argomento, apre un selettore. Richiede Claude Code v2.1.98 o successivo |

49| `/agents` | Gestisci le configurazioni [agent](/it/sub-agents) |54| `/agents` | Gestisci le configurazioni [agent](/it/sub-agents) |

50| `/autofix-pr [prompt]` | Avvia una sessione [Claude Code sul web](/it/claude-code-on-the-web#auto-fix-pull-requests) che monitora il PR del ramo corrente e invia correzioni quando la CI fallisce o i revisori lasciano commenti. Rileva il PR aperto dal ramo in cui sei posizionato con `gh pr view`; per monitorare un PR diverso, prima controlla il suo ramo. Per impostazione predefinita, la sessione remota viene istruita a correggere ogni fallimento della CI e commento di revisione; passa un prompt per darle istruzioni diverse, ad esempio `/autofix-pr only fix lint and type errors`. Richiede la CLI `gh` e l'accesso a [Claude Code sul web](/it/claude-code-on-the-web#who-can-use-claude-code-on-the-web) |55| `/autofix-pr [prompt]` | Avvia una sessione [Claude Code sul web](/it/claude-code-on-the-web#auto-fix-pull-requests) che monitora il PR del ramo corrente e invia correzioni quando la CI fallisce o i revisori lasciano commenti. Rileva il PR aperto dal ramo in cui sei posizionato con `gh pr view`; per monitorare un PR diverso, prima controlla il suo ramo. Per impostazione predefinita, la sessione cloud viene istruita a correggere ogni fallimento della CI e commento di revisione; passa un prompt per darle istruzioni diverse, ad esempio `/autofix-pr only fix lint and type errors`. Richiede la CLI `gh` e l'accesso a [Claude Code sul web](/it/claude-code-on-the-web) |

51| `/background [prompt]` | Stacca la sessione corrente per eseguirla come un [agente in background](/it/agent-view) e libera questo terminale. Passa un prompt per inviare un'istruzione in più prima di staccarsi. Monitora la sessione con `claude agents`. Alias: `/bg` |56| `/background [prompt]` | Stacca la sessione corrente per eseguirla come un [agente in background](/it/agent-view) e libera questo terminale. Passa un prompt per inviare un'istruzione in più prima di staccarsi. Monitora la sessione con `claude agents`. Alias: `/bg` |

52| `/batch <instruction>` | **[Skill](/it/skills#bundled-skills).** Orchestra modifiche su larga scala in un codebase in parallelo. Ricerca il codebase, scompone il lavoro in 5-30 unità indipendenti e presenta un piano. Una volta approvato, avvia un [subagent in background](/it/sub-agents#run-subagents-in-foreground-or-background) per unità in un [git worktree](/it/worktrees) isolato. Ogni subagent implementa la sua unità, esegue i test e apre una pull request. Richiede un repository git. Esempio: `/batch migrate src/ from Solid to React` |57| `/batch <instruction>` | **[Skill](/it/skills#bundled-skills).** Orchestra modifiche su larga scala in un codebase in parallelo. Ricerca il codebase, scompone il lavoro in 5-30 unità indipendenti e presenta un piano. Una volta approvato, avvia un [subagent in background](/it/sub-agents#run-subagents-in-foreground-or-background) per unità in un [git worktree](/it/worktrees) isolato. Ogni subagent implementa la sua unità, esegue i test e apre una pull request. Richiede un repository git. Esempio: `/batch migrate src/ from Solid to React` |

53| `/branch [name]` | Crea un ramo della conversazione corrente a questo punto. Ti sposta nel ramo e preserva l'originale, al quale puoi tornare con `/resume`. Alias: `/fork`. Quando [`CLAUDE_CODE_FORK_SUBAGENT`](/it/env-vars) è impostato, `/fork` invece avvia un [subagent con fork](/it/sub-agents#fork-the-current-conversation) e non è più un alias per questo comando |58| `/branch [name]` | Crea un ramo della conversazione corrente a questo punto, così puoi provare una direzione diversa senza perdere la conversazione così com'è. Ti sposta nel ramo e preserva l'originale, al quale puoi tornare con `/resume`. Per affidare un'attività laterale a un subagent in background invece di passare tu stesso a una copia, usa `/fork` |

54| `/btw <question>` | Fai una rapida [domanda laterale](/it/interactive-mode#side-questions-with-%2Fbtw) senza aggiungerla alla conversazione |59| `/btw <question>` | Fai una rapida [domanda laterale](/it/interactive-mode#side-questions-with-%2Fbtw) senza aggiungerla alla conversazione |

60| `/cd <path>` | {/* min-version: 2.1.169 */}Sposta questa sessione in una nuova directory di lavoro. La cache del prompt della conversazione viene preservata: il [`CLAUDE.md`](/it/memory) della nuova directory viene aggiunto come messaggio invece di ricostruire il prompt di sistema. La sessione viene spostata nell'archiviazione del progetto della nuova directory, quindi `--resume` e `--continue` la trovano da lì. Ti chiede di fidarti della directory se non hai lavorato in essa prima. Per concedere l'accesso a una directory aggiuntiva senza spostare la sessione, usa `/add-dir`. Limita o disabilita i target di `/cd` con le [regole di permesso `Cd`](/it/permissions#cd). Richiede Claude Code v2.1.169 o successivo; le versioni precedenti segnalano `Unknown command: /cd` |

55| `/chrome` | Configura le impostazioni di [Claude in Chrome](/it/chrome) |61| `/chrome` | Configura le impostazioni di [Claude in Chrome](/it/chrome) |

56| `/claude-api [migrate\|managed-agents-onboard]` | **[Skill](/it/skills#bundled-skills).** Carica il materiale di riferimento dell'API Claude per il linguaggio del tuo progetto (Python, TypeScript, Java, Go, Ruby, C#, PHP o cURL) e il riferimento degli Agenti Gestiti. Copre l'uso degli strumenti, lo streaming, i batch, gli output strutturati e le insidie comuni. Si attiva anche automaticamente quando il tuo codice importa `anthropic` o `@anthropic-ai/sdk`. Esegui `/claude-api migrate` per aggiornare il codice dell'API Claude esistente a un modello più recente: Claude chiede quali file scansionare e quale modello scegliere come destinazione, quindi aggiorna gli ID del modello, la configurazione del thinking e altri parametri che sono cambiati tra le versioni. Esegui `/claude-api managed-agents-onboard` per una procedura guidata interattiva che crea un nuovo Agente Gestito da zero |62| `/claude-api [migrate\|managed-agents-onboard]` | **[Skill](/it/skills#bundled-skills).** Carica il materiale di riferimento dell'API Claude per il linguaggio del tuo progetto (Python, TypeScript, Java, Go, Ruby, C#, PHP o cURL) e il riferimento degli Agenti Gestiti. Copre l'uso degli strumenti, lo streaming, i batch, gli output strutturati e le insidie comuni. Si attiva anche automaticamente quando il tuo codice importa `anthropic` o `@anthropic-ai/sdk`. Esegui `/claude-api migrate` per aggiornare il codice dell'API Claude esistente a un modello più recente: Claude chiede quali file scansionare e quale modello scegliere come destinazione, quindi aggiorna gli ID del modello, la configurazione del thinking e altri parametri che sono cambiati tra le versioni. Esegui `/claude-api managed-agents-onboard` per una procedura guidata interattiva che crea un nuovo Agente Gestito da zero |

57| `/clear [name]` | Avvia una nuova conversazione con contesto vuoto. La conversazione precedente rimane disponibile in `/resume`. Passa un nome per etichettare la conversazione precedente nel selettore `/resume`. Per liberare il contesto continuando la stessa conversazione, usa `/compact` invece. Alias: `/reset`, `/new` |63| `/clear [name]` | Avvia una nuova conversazione con contesto vuoto. La conversazione precedente rimane disponibile in `/resume`. Passa un nome per etichettare la conversazione precedente nel selettore `/resume`. Per liberare il contesto continuando la stessa conversazione, usa `/compact` invece. Alias: `/reset`, `/new` |


74| `/feedback [report]` | Invia feedback, segnala un bug o condividi la tua conversazione. Alias: `/bug`, `/share` |80| `/feedback [report]` | Invia feedback, segnala un bug o condividi la tua conversazione. Alias: `/bug`, `/share` |

75| `/fewer-permission-prompts` | **[Skill](/it/skills#bundled-skills).** Scansiona i tuoi trascritti per le comuni chiamate Bash e MCP tool di sola lettura, quindi aggiungi una lista di autorizzazione prioritaria al progetto `.claude/settings.json` per ridurre i prompt di permesso |81| `/fewer-permission-prompts` | **[Skill](/it/skills#bundled-skills).** Scansiona i tuoi trascritti per le comuni chiamate Bash e MCP tool di sola lettura, quindi aggiungi una lista di autorizzazione prioritaria al progetto `.claude/settings.json` per ridurre i prompt di permesso |

76| `/focus` | Attiva/disattiva la vista focus, che mostra solo il tuo ultimo prompt, un riassunto di una riga della chiamata dello strumento con diffstat di modifica e la risposta finale. La selezione persiste tra le sessioni; imposta [`viewMode`](/it/settings#available-settings) nelle impostazioni per ignorarla. Disponibile solo nel [rendering a schermo intero](/it/fullscreen) |82| `/focus` | Attiva/disattiva la vista focus, che mostra solo il tuo ultimo prompt, un riassunto di una riga della chiamata dello strumento con diffstat di modifica e la risposta finale. La selezione persiste tra le sessioni; imposta [`viewMode`](/it/settings#available-settings) nelle impostazioni per ignorarla. Disponibile solo nel [rendering a schermo intero](/it/fullscreen) |

83| `/fork <directive>` | {/* min-version: 2.1.161 */}Avvia un [subagent con fork](/it/sub-agents#fork-the-current-conversation): un subagent in background che eredita la conversazione completa e lavora sulla direttiva mentre tu continui. Il suo risultato ritorna alla tua conversazione quando finisce. Per passare tu stesso a una copia della conversazione, usa `/branch`. Prima di v2.1.161, `/fork` è un alias per `/branch` |

77| `/goal [condition\|clear]` | Imposta un [obiettivo](/it/goal): Claude continua a lavorare tra i turni finché la condizione non è soddisfatta. Senza un argomento, mostra l'obiettivo corrente o raggiunto più di recente. `clear`, `stop`, `off`, `reset`, `none` o `cancel` rimuove un obiettivo attivo in anticipo |84| `/goal [condition\|clear]` | Imposta un [obiettivo](/it/goal): Claude continua a lavorare tra i turni finché la condizione non è soddisfatta. Senza un argomento, mostra l'obiettivo corrente o raggiunto più di recente. `clear`, `stop`, `off`, `reset`, `none` o `cancel` rimuove un obiettivo attivo in anticipo |

78| `/heapdump` | Scrivi uno snapshot dell'heap JavaScript e una ripartizione della memoria su `~/Desktop`, o la tua home directory su Linux senza una cartella Desktop, per diagnosticare l'utilizzo elevato della memoria. Vedi [risoluzione dei problemi](/it/troubleshooting#high-cpu-or-memory-usage) |85| `/heapdump` | Scrivi uno snapshot dell'heap JavaScript e una ripartizione della memoria su `~/Desktop`, o la tua home directory su Linux senza una cartella Desktop, per diagnosticare l'utilizzo elevato della memoria. Vedi [risoluzione dei problemi](/it/troubleshooting#high-cpu-or-memory-usage) |

79| `/help` | Mostra la guida e i comandi disponibili |86| `/help` | Mostra la guida e i comandi disponibili |


83| `/insights` | Genera un rapporto che analizza le tue sessioni di Claude Code, incluse le aree del progetto, i modelli di interazione e i punti di attrito |90| `/insights` | Genera un rapporto che analizza le tue sessioni di Claude Code, incluse le aree del progetto, i modelli di interazione e i punti di attrito |

84| `/install-github-app` | Configura l'app [Claude GitHub Actions](/it/github-actions) per un repository. Ti guida attraverso la selezione di un repo e la configurazione dell'integrazione |91| `/install-github-app` | Configura l'app [Claude GitHub Actions](/it/github-actions) per un repository. Ti guida attraverso la selezione di un repo e la configurazione dell'integrazione |

85| `/install-slack-app` | Installa l'app Claude Slack. Apre un browser per completare il flusso OAuth |92| `/install-slack-app` | Installa l'app Claude Slack. Apre un browser per completare il flusso OAuth |

86| `/keybindings` | Apri o crea il tuo file di configurazione delle scorciatoie da tastiera |93| `/keybindings` | Apri il tuo file di [scorciatoie da tastiera](/it/keybindings) |

87| `/login` | Accedi al tuo account Anthropic |94| `/login` | Accedi al tuo account Anthropic |

88| `/logout` | Esci dal tuo account Anthropic |95| `/logout` | Esci dal tuo account Anthropic |

89| `/loop [interval] [prompt]` | **[Skill](/it/skills#bundled-skills).** Esegui un prompt ripetutamente mentre la sessione rimane aperta. Ometti l'intervallo e Claude si auto-paced tra le iterazioni. Ometti il prompt e, [dove disponibile](/it/scheduled-tasks#run-the-built-in-maintenance-prompt), Claude esegue un controllo di manutenzione autonomo o il prompt in `.claude/loop.md`. Esempio: `/loop 5m check if the deploy finished`. Vedi [Esegui prompt su una pianificazione](/it/scheduled-tasks). Alias: `/proactive` |96| `/loop [interval] [prompt]` | **[Skill](/it/skills#bundled-skills).** Esegui un prompt ripetutamente mentre la sessione rimane aperta. Ometti l'intervallo e Claude si auto-paced tra le iterazioni. Ometti il prompt e, [dove disponibile](/it/scheduled-tasks#run-the-built-in-maintenance-prompt), Claude esegue un controllo di manutenzione autonomo o il prompt in `.claude/loop.md`. Esempio: `/loop 5m check if the deploy finished`. Vedi [Esegui prompt su una pianificazione](/it/scheduled-tasks). Alias: `/proactive` |

90| `/mcp` | Gestisci le connessioni ai server MCP e l'autenticazione OAuth |97| `/mcp [reconnect <server>\|enable\|disable [<server>\|all]]` | Gestisci le connessioni ai server MCP e l'autenticazione OAuth. Esegui senza argomento per aprire l'elenco interattivo, passa `reconnect <server>` per riconnettere un server disconnesso, o passa `enable`/`disable` con un nome di server o `all` per cambiare lo stato della connessione senza aprire la finestra di dialogo |

91| `/memory` | Modifica i file di memoria `CLAUDE.md`, abilita o disabilita la [memoria automatica](/it/memory#auto-memory) e visualizza le voci di memoria automatica |98| `/memory` | Modifica i file di memoria `CLAUDE.md`, abilita o disabilita la [memoria automatica](/it/memory#auto-memory) e visualizza le voci di memoria automatica |

92| `/mobile` | Mostra il codice QR per scaricare l'app mobile Claude. Alias: `/ios`, `/android` |99| `/mobile` | Mostra il codice QR per scaricare l'app mobile Claude. Alias: `/ios`, `/android` |

93| `/model [model]` | Cambia il modello di IA e salvalo come predefinito per le nuove sessioni. Per i modelli che lo supportano, usa le frecce sinistra/destra per [regolare il livello di sforzo](/it/model-config#adjust-effort-level). Senza un argomento, apre un selettore; premi `s` su una riga per cambiare solo per la sessione corrente. Il selettore chiede conferma quando la conversazione ha output precedente, poiché la risposta successiva rilegge la cronologia completa senza contesto memorizzato nella cache. Una volta confermato, il cambio si applica senza aspettare il completamento della risposta corrente |100| `/model [model]` | Cambia il modello di IA e salvalo come predefinito per le nuove sessioni. Per i modelli che lo supportano, usa le frecce sinistra/destra per [regolare il livello di sforzo](/it/model-config#adjust-effort-level). Senza un argomento, apre un selettore; premi `s` su una riga per cambiare solo per la sessione corrente. Il selettore chiede conferma quando la conversazione ha output precedente, poiché la risposta successiva rilegge la cronologia completa senza contesto memorizzato nella cache. Una volta confermato, il cambio si applica senza aspettare il completamento della risposta corrente |

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

95| `/permissions` | Gestisci le regole di autorizzazione, richiesta e negazione per i permessi degli strumenti. Apri una finestra di dialogo interattiva dove puoi visualizzare le regole per ambito, aggiungere o rimuovere regole, gestire le directory di lavoro e rivedere le [negazioni automatiche della modalità recente](/it/auto-mode-config#review-denials). Alias: `/allowed-tools` |102| `/permissions` | Gestisci le regole di autorizzazione, richiesta e negazione per i permessi degli strumenti. Apri una finestra di dialogo interattiva dove puoi visualizzare le regole per ambito, aggiungere o rimuovere regole, gestire le directory di lavoro e rivedere le [negazioni automatiche della modalità recente](/it/auto-mode-config#review-denials). Alias: `/allowed-tools` |

96| `/plan [description]` | Entra direttamente in Plan Mode dal prompt. Passa una descrizione opzionale per entrare in Plan Mode e iniziare immediatamente con quel compito, ad esempio `/plan fix the auth bug` |103| `/plan [description]` | Entra direttamente in Plan Mode dal prompt. Passa una descrizione opzionale per entrare in Plan Mode e iniziare immediatamente con quel compito, ad esempio `/plan fix the auth bug` |

97| `/plugin` | Gestisci i [plugins](/it/plugins) di Claude Code |104| `/plugin [subcommand]` | Gestisci i [plugins](/it/plugins) di Claude Code. Esegui senza argomento per aprire il menu dei plugin, o passa un sottocomando come `list`, `install`, `enable` o `disable` per agire direttamente |

98| `/powerup` | Scopri le funzionalità di Claude Code attraverso lezioni interattive rapide con demo animate |105| `/powerup` | Scopri le funzionalità di Claude Code attraverso lezioni interattive rapide con demo animate |

99| `/pr-comments [PR]` | {/* max-version: 2.1.90 */}Rimosso in v2.1.91. Chiedi direttamente a Claude di visualizzare i commenti della pull request. Nelle versioni precedenti, recupera e visualizza i commenti da una pull request di GitHub; rileva automaticamente il PR per il ramo corrente, oppure passa un URL o un numero di PR. Richiede la CLI `gh` |106| `/pr-comments [PR]` | {/* max-version: 2.1.90 */}Rimosso in v2.1.91. Chiedi direttamente a Claude di visualizzare i commenti della pull request. Nelle versioni precedenti, recupera e visualizza i commenti da una pull request di GitHub; rileva automaticamente il PR per il ramo corrente, oppure passa un URL o un numero di PR. Richiede la CLI `gh` |

100| `/privacy-settings` | Visualizza e aggiorna le tue impostazioni di privacy. Disponibile solo per gli abbonati ai piani Pro e Max |107| `/privacy-settings` | Visualizza e aggiorna le tue impostazioni di privacy. Disponibile solo per gli abbonati ai piani Pro e Max |

101| `/radio` | Apri Claude FM lo-fi radio nel tuo browser. Stampa l'URL dello stream quando nessun browser è disponibile. Non disponibile su Bedrock, Vertex o Foundry |108| `/radio` | Apri Claude FM lo-fi radio nel tuo browser. Stampa l'URL dello stream quando nessun browser è disponibile. Non disponibile su Bedrock, Vertex o Foundry |

102| `/recap` | Genera un riassunto di una riga della sessione corrente su richiesta. Vedi [Recap della sessione](/it/interactive-mode#session-recap) per il recap automatico che appare dopo che sei stato assente |109| `/recap` | Genera un riassunto di una riga della sessione corrente su richiesta. Vedi [Recap della sessione](/it/interactive-mode#session-recap) per il recap automatico che appare dopo che sei stato assente |

103| `/release-notes` | Visualizza il changelog in un selettore di versione interattivo. Seleziona una versione specifica per visualizzare le sue note di rilascio, o scegli di mostrare tutte le versioni |110| `/release-notes` | Visualizza il changelog in un selettore di versione interattivo. Seleziona una versione specifica per visualizzare le sue note di rilascio, o scegli di mostrare tutte le versioni |

104| `/reload-plugins` | Ricarica tutti i [plugins](/it/plugins) attivi per applicare le modifiche in sospeso senza riavviare. Segnala i conteggi per ogni componente ricaricato e contrassegna eventuali errori di caricamento |111| `/reload-plugins [--force]` | Ricarica tutti i [plugins](/it/plugins) 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 vengono caricati e invaliderebbe la cache del prompt, il comando avverte e salta a meno che tu non passi `--force` |

105| `/reload-skills` | {/* min-version: 2.1.152 */}Esegui nuovamente la scansione delle directory [skill](/it/skills) e dei comandi in modo che le skill aggiunte o modificate su disco durante la sessione diventino disponibili senza riavviare. Segnala quante skill sono disponibili e quante sono state aggiunte o rimosse |112| `/reload-skills` | {/* min-version: 2.1.152 */}Esegui nuovamente la scansione delle directory [skill](/it/skills) e dei comandi in modo che le skill aggiunte o modificate su disco durante la sessione diventino disponibili senza riavviare. Segnala quante skill sono disponibili e quante sono state aggiunte o rimosse. Aggiunto in v2.1.152 |

106| `/remote-control` | Rendi questa sessione disponibile per il [controllo remoto](/it/remote-control) da claude.ai. Alias: `/rc` |113| `/remote-control` | Rendi questa sessione disponibile per il [controllo remoto](/it/remote-control) da claude.ai. Alias: `/rc` |

107| `/remote-env` | Configura l'ambiente remoto predefinito per le [sessioni web avviate con `--remote`](/it/claude-code-on-the-web#configure-your-environment) |114| `/remote-env` | Scegli l'ambiente predefinito per gli [agenti cloud](/it/claude-code-on-the-web#configure-your-environment) |

108| `/rename [name]` | Rinomina la sessione corrente e mostra il nome sulla barra dei prompt. Senza un nome, ne genera uno automaticamente dalla cronologia della conversazione |115| `/rename [name]` | Rinomina la sessione corrente e mostra il nome sulla barra dei prompt. Senza un nome, ne genera uno automaticamente dalla cronologia della conversazione |

109| `/resume [session]` | Riprendi una conversazione per ID o nome, oppure apri il selettore di sessione. A partire da v2.1.144, le [sessioni in background](/it/agent-view) appaiono nel selettore contrassegnate con `bg`. Alias: `/continue` |116| `/resume [session]` | Riprendi una conversazione per ID o nome, oppure apri il selettore di sessione. A partire da v2.1.144, le [sessioni in background](/it/agent-view) appaiono nel selettore contrassegnate con `bg`. Alias: `/continue` |

110| `/review [PR]` | Rivedi una pull request localmente nella tua sessione corrente. Per una revisione più profonda basata su cloud, vedi [`/code-review ultra`](/it/ultrareview) |117| `/review [PR]` | Rivedi una pull request localmente nella tua sessione corrente. Per una revisione più profonda basata su cloud, vedi [`/code-review ultra`](/it/ultrareview) |


124| `/statusline` | Configura la [linea di stato](/it/statusline) di Claude Code. Descrivi cosa desideri, oppure esegui senza argomenti per auto-configurare dal tuo prompt della shell |131| `/statusline` | Configura la [linea di stato](/it/statusline) di Claude Code. Descrivi cosa desideri, oppure esegui senza argomenti per auto-configurare dal tuo prompt della shell |

125| `/stickers` | Ordina gli adesivi di Claude Code |132| `/stickers` | Ordina gli adesivi di Claude Code |

126| `/stop` | Ferma la [sessione in background](/it/agent-view) corrente. Disponibile solo quando collegato a una sessione in background; la trascrizione e qualsiasi worktree vengono conservati. Per staccarsi senza fermare, usa `/exit` o premi `←` |133| `/stop` | Ferma la [sessione in background](/it/agent-view) corrente. Disponibile solo quando collegato a una sessione in background; la trascrizione e qualsiasi worktree vengono conservati. Per staccarsi senza fermare, usa `/exit` o premi `←` |

127| `/tasks` | Elenca e gestisci le attività in background. Disponibile anche come `/bashes` |134| `/tasks` | Visualizza e gestisci tutto ciò che è in esecuzione in background. Disponibile anche come `/bashes` |

128| `/team-onboarding` | Genera una guida di onboarding del team dalla tua cronologia di utilizzo di Claude Code. Claude analizza le tue sessioni, comandi e utilizzo del server MCP degli ultimi 30 giorni e produce una guida markdown che un collega può incollare come primo messaggio per configurarsi rapidamente. Per gli abbonati a claude.ai sui piani Pro, Max, Team ed Enterprise, restituisce anche un link di condivisione che i colleghi possono aprire direttamente in Claude Code |135| `/team-onboarding` | Genera una guida di onboarding del team dalla tua cronologia di utilizzo di Claude Code. Claude analizza le tue sessioni, comandi e utilizzo del server MCP degli ultimi 30 giorni e produce una guida markdown che un collega può incollare come primo messaggio per configurarsi rapidamente. Per gli abbonati a claude.ai sui piani Pro, Max, Team ed Enterprise, restituisce anche un link di condivisione che i colleghi possono aprire direttamente in Claude Code |

129| `/teleport` | Estrai una sessione [Claude Code sul web](/it/claude-code-on-the-web#from-web-to-terminal) in questo terminale: apre un selettore, quindi recupera il ramo e la conversazione. Disponibile anche come `/tp`. Richiede un abbonamento a claude.ai |136| `/teleport` | Estrai una sessione [Claude Code sul web](/it/claude-code-on-the-web#from-web-to-terminal) in questo terminale: apre un selettore, quindi recupera il ramo e la conversazione. Disponibile anche come `/tp`. Richiede un abbonamento a claude.ai |

130| `/terminal-setup` | Configura le scorciatoie da tastiera del terminale per Shift+Enter e altri tasti di scelta rapida. Visibile solo nei terminali che lo richiedono, come VS Code, Cursor, Windsurf, Alacritty o Zed |137| `/terminal-setup` | Configura le scorciatoie da tastiera del terminale per Shift+Enter e altri tasti di scelta rapida. Visibile solo nei terminali che lo richiedono, come VS Code, Cursor, Devin Desktop, Alacritty o Zed |

131| `/theme` | Cambia il tema del colore. Include un'opzione `auto` che segue la modalità scura o chiara del tuo terminale, varianti chiare e scure, temi accessibili ai daltonici (daltonizzati), temi ANSI che utilizzano la tavolozza dei colori del tuo terminale e qualsiasi [tema personalizzato](/it/terminal-config#create-a-custom-theme) da `~/.claude/themes/` o plugin. Seleziona **New custom theme…** per crearne uno |138| `/theme` | Cambia il tema del colore. Include un'opzione `auto` che segue la modalità scura o chiara del tuo terminale, varianti chiare e scure, temi accessibili ai daltonici (daltonizzati), temi ANSI che utilizzano la tavolozza dei colori del tuo terminale e qualsiasi [tema personalizzato](/it/terminal-config#create-a-custom-theme) da `~/.claude/themes/` o plugin. Seleziona **New custom theme…** per crearne uno |

132| `/tui [default\|fullscreen]` | Imposta il renderer dell'interfaccia utente del terminale e riavvia in esso con la tua conversazione intatta. `fullscreen` abilita il [renderer alt-screen senza sfarfallio](/it/fullscreen). Senza un argomento, stampa il renderer attivo |139| `/tui [default\|fullscreen]` | Imposta il renderer dell'interfaccia utente del terminale e riavvia in esso con la tua conversazione intatta. `fullscreen` abilita il [renderer alt-screen senza sfarfallio](/it/fullscreen). Senza un argomento, stampa il renderer attivo |

133| `/ultraplan <prompt>` | Elabora un piano in una sessione [ultraplan](/it/ultraplan), revisionalo nel tuo browser, quindi esegui in remoto o rimandalo al tuo terminale |140| `/ultraplan <prompt>` | Elabora un piano in una sessione [ultraplan](/it/ultraplan), revisionalo nel tuo browser, quindi esegui in remoto o rimandalo al tuo terminale |


141| `/web-setup` | Connetti il tuo account GitHub a [Claude Code sul web](/it/web-quickstart#connect-from-your-terminal) utilizzando le credenziali della CLI `gh` locale. `/schedule` richiede questo automaticamente se GitHub non è connesso |148| `/web-setup` | Connetti il tuo account GitHub a [Claude Code sul web](/it/web-quickstart#connect-from-your-terminal) utilizzando le credenziali della CLI `gh` locale. `/schedule` richiede questo automaticamente se GitHub non è connesso |

142| `/workflows` | Apri la vista di avanzamento del [workflow](/it/workflows#watch-the-run) per guardare, mettere in pausa, riprendere o salvare i workflow in esecuzione e completati |149| `/workflows` | Apri la vista di avanzamento del [workflow](/it/workflows#watch-the-run) per guardare, mettere in pausa, riprendere o salvare i workflow in esecuzione e completati |

143 150 

144## MCP prompts151<h2 id="mcp-prompts">

152 MCP prompts

153</h2>

145 154 

146I server MCP possono esporre prompt che appaiono come comandi. Questi utilizzano il formato `/mcp__<server>__<prompt>` e vengono rilevati dinamicamente dai server connessi. Vedi [MCP prompts](/it/mcp#use-mcp-prompts-as-commands) per i dettagli.155I server MCP possono esporre prompt che appaiono come comandi. Questi utilizzano il formato `/mcp__<server>__<prompt>` e vengono rilevati dinamicamente dai server connessi. Vedi [MCP prompts](/it/mcp#use-mcp-prompts-as-commands) per i dettagli.

147 156 

148## Vedi anche157<h2 id="see-also">

158 Vedi anche

159</h2>

149 160 

150* [Skills](/it/skills): crea i tuoi comandi161* [Skills](/it/skills): crea i tuoi comandi

151* [Modalità interattiva](/it/interactive-mode): scorciatoie da tastiera, modalità Vim e cronologia dei comandi162* [Modalità interattiva](/it/interactive-mode): scorciatoie da tastiera, modalità Vim e cronologia dei comandi

Details

238il lavoro di funzionalità quotidiana, bug, test e revisioni. Raggiungete238il lavoro di funzionalità quotidiana, bug, test e revisioni. Raggiungete

239*Opus* su refactor su larga scala, debug complicati o qualsiasi cosa ad239*Opus* su refactor su larga scala, debug complicati o qualsiasi cosa ad

240alto rischio. Scendete a *Haiku* per domande rapide, formattazione e240alto rischio. Scendete a *Haiku* per domande rapide, formattazione e

241modifiche meccaniche dove la velocità vince.241modifiche meccaniche dove la velocità vince. *Fable 5* è il modello più

242capace per i vostri compiti più difficili e lunghi; non è il default, quindi

243selezionatelo con `/model fable`, e notate che i contenuti di cybersecurity

244e biologia ricadono automaticamente su Opus.

242 245 

243*Provalo ora:* digitate `/model` e scegliete Sonnet se non l'avete già246*Provalo ora:* digitate `/model` e scegliete Sonnet se non l'avete già

244fatto. È il default giusto per la maggior parte dei compiti.247fatto. È il default giusto per la maggior parte dei compiti.


247```250```

248 251 

249| Modello | Migliore per |252| Modello | Migliore per |

250| ------- | ---------------------------------------------------------------------------------------------------------------------- |253| ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

254| Fable 5 | I compiti più difficili e lunghi. Solo opt-in: selezionatelo con `/model fable`. I contenuti di cybersecurity o biologia [ricadono su Opus](/it/model-config#automatic-model-fallback) |

251| Opus | Refactor su larga scala, debug complessi, decisioni architettoniche, cambiamenti ad alto rischio |255| Opus | Refactor su larga scala, debug complessi, decisioni architettoniche, cambiamenti ad alto rischio |

252| Sonnet | Lavoro di funzionalità quotidiana, correzioni di bug, test, documentazione, revisione del codice. Default consigliato. |256| Sonnet | Lavoro di funzionalità quotidiana, correzioni di bug, test, documentazione, revisione del codice. Default consigliato. |

253| Haiku | Domande rapide, formattazione, modifiche meccaniche, iterazione rapida |257| Haiku | Domande rapide, formattazione, modifiche meccaniche, iterazione rapida |

computer-use.md +3 −3

Details

226Un'altra sessione di Claude Code tiene il blocco. Termina l'attività in quella sessione o esci da essa. Se l'altra sessione si è bloccata, il blocco viene rilasciato automaticamente quando Claude rileva che il processo non è più in esecuzione.226Un'altra sessione di Claude Code tiene il blocco. Termina l'attività in quella sessione o esci da essa. Se l'altra sessione si è bloccata, il blocco viene rilasciato automaticamente quando Claude rileva che il processo non è più in esecuzione.

227 227 

228<h3 id="macos-permissions-prompt-keeps-reappearing">228<h3 id="macos-permissions-prompt-keeps-reappearing">

229 Il prompt delle autorizzazioni di macOS continua a riapparire229 macOS permissions prompt keeps reappearing

230</h3>230</h3>

231 231 

232macOS a volte richiede un riavvio del processo richiedente dopo aver concesso Screen Recording. Esci completamente da Claude Code e avvia una nuova sessione. Se il prompt persiste, apri **System Settings > Privacy & Security > Screen Recording** e conferma che la tua app terminale è elencata e abilitata.232macOS a volte richiede un riavvio del processo richiedente dopo aver concesso Screen Recording. Esci completamente da Claude Code e avvia una nuova sessione. Se il prompt persiste, apri **System Settings > Privacy & Security > Screen Recording** e conferma che la tua app terminale è elencata e abilitata.

233 233 

234<h3 id="computer-use-doesn-t-appear-in-/mcp">234<h3 id="computer-use-doesnt-appear-in-/mcp">

235 `computer-use` non appare in `/mcp`235 `computer-use` doesn't appear in `/mcp`

236</h3>236</h3>

237 237 

238Il server appare solo su configurazioni idonee. Verifica che:238Il server appare solo su configurazioni idonee. Verifica che:

context-window.md +1591 −5

Details

6 6 

7> Una simulazione interattiva di come la finestra di contesto di Claude Code si riempie durante una sessione. Vedi cosa si carica automaticamente, quanto costa ogni lettura di file e quando si attivano le regole e gli hook.7> Una simulazione interattiva di come la finestra di contesto di Claude Code si riempie durante una sessione. Vedi cosa si carica automaticamente, quanto costa ogni lettura di file e quando si attivano le regole e gli hook.

8 8 

9La finestra di contesto di Claude Code contiene tutto ciò che Claude sa della tua sessione: le tue istruzioni, i file che legge, le sue stesse risposte e i contenuti che non appaiono mai nel tuo terminale. La timeline sottostante illustra cosa si carica e quando. Vedi [la spiegazione scritta](#what-the-timeline-shows) per lo stesso contenuto come elenco.9export const ContextWindow = () => {

10 const MAX = 200000;

11 const STARTUP_END = 0.2;

12 {}

13 const EVENTS = useMemo(() => [{}, {

14 t: 0.015,

15 kind: 'auto',

16 label: 'System prompt',

17 tokens: 4200,

18 color: '#6B6964',

19 vis: 'hidden',

20 desc: 'Core instructions for behavior, tool use, and response formatting. Always loaded first. You never see it.',

21 link: null

22 }, {

23 t: 0.035,

24 kind: 'auto',

25 label: 'Auto memory (MEMORY.md)',

26 tokens: 680,

27 color: '#E8A45C',

28 vis: 'hidden',

29 desc: "Claude's notes to itself from previous sessions: build commands it learned, patterns it noticed, mistakes to avoid. The first 200 lines or 25KB, whichever comes first, are loaded into the conversation context.",

30 link: '/en/memory#auto-memory'

31 }, {

32 t: 0.06,

33 kind: 'auto',

34 label: 'Environment info',

35 tokens: 280,

36 color: '#6B6964',

37 vis: 'hidden',

38 desc: 'Working directory, platform, shell, OS version, and whether this is a git repo. Git branch, status, and recent commits load as a separate block at the very end of the system prompt.',

39 link: null

40 }, {

41 t: 0.08,

42 kind: 'auto',

43 label: 'MCP tools (deferred)',

44 tokens: 120,

45 color: '#9B7BC4',

46 vis: 'hidden',

47 desc: 'MCP tool names listed so Claude knows what is available. By default, full schemas stay deferred and Claude loads specific ones on demand via tool search when a task needs them. Set `ENABLE_TOOL_SEARCH=auto` to load schemas upfront when they fit within 10% of the context window, or `ENABLE_TOOL_SEARCH=false` to load everything.',

48 link: '/en/mcp#scale-with-mcp-tool-search'

49 }, {

50 t: 0.1,

51 kind: 'auto',

52 label: 'Skill descriptions',

53 tokens: 450,

54 color: '#D4A843',

55 vis: 'hidden',

56 noSurviveCompact: true,

57 desc: 'One-line descriptions of available skills so Claude knows what it can invoke. Full skill content loads only when Claude actually uses one. Skills with `disable-model-invocation: true` are not in this list. They stay completely out of context until you invoke them with `/name`. Unlike the rest of the startup content, this listing is not re-injected after `/compact`. Only skills you actually invoked get preserved.',

58 link: '/en/skills'

59 }, {

60 t: 0.12,

61 kind: 'auto',

62 label: '~/.claude/CLAUDE.md',

63 tokens: 320,

64 color: '#6A9BCC',

65 vis: 'hidden',

66 desc: 'Your global preferences. Applies to every project. Loaded alongside project instructions at the start of every conversation.',

67 link: '/en/memory#choose-where-to-put-claude-md-files'

68 }, {

69 t: 0.14,

70 kind: 'auto',

71 label: 'Project CLAUDE.md',

72 tokens: 1800,

73 color: '#6A9BCC',

74 vis: 'hidden',

75 desc: 'Project conventions, build commands, architecture notes. The most important file you can create. Lives in your project root, so your whole team gets the same instructions.',

76 tip: 'Keep it under 200 lines. Move reference content to skills or path-scoped rules so it only loads when needed.',

77 link: '/en/memory'

78 }, {}, {

79 t: 0.22,

80 kind: 'user',

81 label: 'Your prompt',

82 tokens: 45,

83 color: '#558A42',

84 vis: 'full',

85 desc: '"Fix the auth bug where users get 401 after token refresh"',

86 link: null

87 }, {}, {

88 t: 0.28,

89 kind: 'claude',

90 label: 'Read src/api/auth.ts',

91 tokens: 2400,

92 color: '#8A8880',

93 vis: 'brief',

94 desc: 'Main auth file. You see "Read auth.ts" in your terminal, but the 2,400 tokens of file content only Claude sees.',

95 tip: 'File reads dominate context usage. Be specific in prompts ("fix the bug in auth.ts") so Claude reads fewer files. For research-heavy tasks, use a subagent.',

96 link: null

97 }, {

98 t: 0.32,

99 kind: 'claude',

100 label: 'Read src/lib/tokens.ts',

101 tokens: 1100,

102 color: '#8A8880',

103 vis: 'brief',

104 desc: 'Following imports to the token module. Shown as a one-liner in your terminal.',

105 link: null

106 }, {

107 t: 0.35,

108 kind: 'auto',

109 label: 'Rule: api-conventions.md',

110 tokens: 380,

111 color: '#4A9B8E',

112 vis: 'brief',

113 desc: 'This rule in `.claude/rules/` has a `paths:` pattern matching `src/api/**`. It loaded automatically when Claude read a file in that directory. You see "Loaded .claude/rules/api-conventions.md" in your terminal, but not the rule content.',

114 link: '/en/memory#path-specific-rules'

115 }, {

116 t: 0.38,

117 kind: 'claude',

118 label: 'Read middleware.ts',

119 tokens: 1800,

120 color: '#8A8880',

121 vis: 'brief',

122 desc: 'Tracing the auth flow deeper.',

123 link: null

124 }, {

125 t: 0.41,

126 kind: 'claude',

127 label: 'Read auth.test.ts',

128 tokens: 1600,

129 color: '#8A8880',

130 vis: 'brief',

131 desc: 'Checking existing tests for expected behavior.',

132 link: null

133 }, {

134 t: 0.44,

135 kind: 'auto',

136 label: 'Rule: testing.md',

137 tokens: 290,

138 color: '#4A9B8E',

139 vis: 'brief',

140 desc: 'Another path-scoped rule, this one matching `*.test.ts` files. Triggered when Claude read auth.test.ts. Shown as a one-line "Loaded" notice.',

141 link: '/en/memory#path-specific-rules'

142 }, {

143 t: 0.47,

144 kind: 'claude',

145 label: 'grep "refreshToken"',

146 tokens: 600,

147 color: '#A09E96',

148 vis: 'brief',

149 desc: 'Search results across the codebase. You see the command ran, not the full output.',

150 link: null

151 }, {}, {

152 t: 0.53,

153 kind: 'claude',

154 label: "Claude's analysis",

155 tokens: 800,

156 color: '#D97757',

157 vis: 'full',

158 desc: 'Explains the bug: token invalidated too early in the rotation. This text appears in your terminal.',

159 link: null

160 }, {

161 t: 0.57,

162 kind: 'claude',

163 label: 'Edit auth.ts',

164 tokens: 400,

165 color: '#D97757',

166 vis: 'full',

167 desc: 'Fixes the token rotation order. The diff appears in your terminal.',

168 link: null

169 }, {

170 t: 0.59,

171 kind: 'hook',

172 label: 'Hook: prettier',

173 tokens: 120,

174 color: '#B8860B',

175 vis: 'hidden',

176 desc: 'A PostToolUse hook in `settings.json` runs prettier after every file edit and reports back via `hookSpecificOutput.additionalContext`. That field enters Claude\'s context. Plain stdout on exit 0 does not. It is written to the debug log only.',

177 tip: 'Output JSON with `additionalContext` to send info to Claude. For PostToolUse hooks, exit code 2 surfaces stderr as an error but cannot block since the tool already ran. Keep output concise since it enters context without truncation.',

178 link: '/en/hooks-guide'

179 }, {

180 t: 0.62,

181 kind: 'claude',

182 label: 'Edit auth.test.ts',

183 tokens: 600,

184 color: '#D97757',

185 vis: 'full',

186 desc: 'Adds a regression test for the fix. The diff appears in your terminal.',

187 link: null

188 }, {

189 t: 0.64,

190 kind: 'hook',

191 label: 'Hook: prettier',

192 tokens: 100,

193 color: '#B8860B',

194 vis: 'hidden',

195 desc: 'The same hook fires again for the test file. Every matching tool event triggers it.',

196 link: '/en/hooks-guide'

197 }, {

198 t: 0.67,

199 kind: 'claude',

200 label: 'npm test output',

201 tokens: 1200,

202 color: '#A09E96',

203 vis: 'brief',

204 desc: 'Runs the test suite. You see "Running npm test..." and the pass count, not the full 1,200 tokens of output.',

205 link: null

206 }, {

207 t: 0.70,

208 kind: 'claude',

209 label: 'Summary',

210 tokens: 400,

211 color: '#D97757',

212 vis: 'full',

213 desc: '"Fixed token rotation. Added regression test. All tests pass."',

214 link: null

215 }, {}, {

216 t: 0.72,

217 kind: 'user',

218 label: 'Your follow-up',

219 tokens: 40,

220 color: '#558A42',

221 vis: 'full',

222 desc: '"Use a subagent to research session timeout handling, then fix it"',

223 tip: 'Follow-ups add to the same context. Delegating research to a subagent keeps large file reads out of your main window.',

224 link: null

225 }, {

226 t: 0.79,

227 kind: 'claude',

228 label: 'Spawn research subagent',

229 tokens: 80,

230 color: '#D97757',

231 vis: 'brief',

232 desc: "Claude delegates the research to a subagent with a fresh, separate context window. It loads CLAUDE.md and the same MCP and skill setup, but starts without your conversation history or the main session's auto memory.",

233 link: '/en/sub-agents'

234 }, {

235 t: 0.795,

236 kind: 'sub',

237 label: 'System prompt',

238 tokens: 0,

239 subTokens: 900,

240 color: '#6B6964',

241 vis: 'hidden',

242 desc: "The subagent gets its own system prompt, shorter than the main session's. For the general-purpose agent, it's a brief prompt plus environment details. The main session's auto memory is not included. If a custom agent has memory: in its frontmatter, it loads its own separate MEMORY.md here instead.",

243 link: '/en/sub-agents#enable-persistent-memory'

244 }, {

245 t: 0.80,

246 kind: 'sub',

247 label: 'Project CLAUDE.md (own copy)',

248 tokens: 0,

249 subTokens: 1800,

250 color: '#6A9BCC',

251 vis: 'hidden',

252 desc: "The subagent loads CLAUDE.md too. Same file, same content, but it counts against the subagent's context, not yours. The built-in Explore and Plan agents skip this for a smaller context.",

253 link: '/en/sub-agents'

254 }, {

255 t: 0.805,

256 kind: 'sub',

257 label: 'MCP tools + skills',

258 tokens: 0,

259 subTokens: 970,

260 color: '#9B7BC4',

261 vis: 'hidden',

262 desc: "The subagent has access to the same MCP servers and skills. It gets most of the parent's tools, minus several that don't apply in a nested context, including plan-mode controls, background-task tools, and by default the Agent tool itself to prevent recursion.",

263 link: '/en/sub-agents'

264 }, {

265 t: 0.81,

266 kind: 'sub',

267 label: 'Task prompt from main',

268 tokens: 0,

269 subTokens: 120,

270 color: '#558A42',

271 vis: 'hidden',

272 desc: "Instead of a user prompt, the subagent receives the task Claude wrote for it: 'Research session timeout handling in this codebase.'",

273 link: '/en/sub-agents'

274 }, {

275 t: 0.82,

276 kind: 'sub',

277 label: 'Read session.ts',

278 tokens: 0,

279 subTokens: 2200,

280 color: '#8A8880',

281 vis: 'hidden',

282 desc: "Now the subagent does its work. This file read fills the subagent's context, not yours.",

283 link: '/en/sub-agents'

284 }, {

285 t: 0.825,

286 kind: 'sub',

287 label: 'Read timeouts.ts',

288 tokens: 0,

289 subTokens: 800,

290 color: '#8A8880',

291 vis: 'hidden',

292 desc: "Another file read in the subagent's separate context.",

293 link: '/en/sub-agents'

294 }, {

295 t: 0.83,

296 kind: 'sub',

297 label: 'Read config/*.ts',

298 tokens: 0,

299 subTokens: 3100,

300 color: '#8A8880',

301 vis: 'hidden',

302 desc: "The subagent can read as many files as it needs. None of this touches your main context.",

303 link: '/en/sub-agents'

304 }, {

305 t: 0.85,

306 kind: 'claude',

307 label: 'Subagent returns summary',

308 tokens: 420,

309 color: '#D97757',

310 vis: 'brief',

311 desc: "Only the subagent's final text response comes back to your context, plus a small metadata trailer with token counts and duration. The subagent read 6,100 tokens of files. You got a 420-token result. That's the context savings.",

312 link: '/en/sub-agents'

313 }, {

314 t: 0.86,

315 kind: 'claude',

316 label: "Claude's response",

317 tokens: 1200,

318 color: '#D97757',

319 vis: 'full',

320 desc: 'Analysis and fix for session timeouts. This text appears in your terminal.',

321 link: null

322 }, {}, {

323 t: 0.875,

324 kind: 'user',

325 label: '!git status',

326 tokens: 180,

327 color: '#558A42',

328 vis: 'full',

329 desc: "You ran a shell command with the ! prefix to see which files Claude modified. The command and its output both enter context as part of your message. Useful for grounding Claude in command output without Claude running it.",

330 link: '/en/interactive-mode#bash-mode-with-prefix'

331 }, {

332 t: 0.89,

333 kind: 'user',

334 label: '/commit-push',

335 tokens: 620,

336 color: '#558A42',

337 vis: 'brief',

338 desc: 'You invoked a skill that has `disable-model-invocation: true`. Its description was not in the skill index at startup, so it cost zero context until this moment. Now the full skill content loads and Claude follows its instructions to stage, commit, and push your changes.',

339 tip: 'Set `disable-model-invocation: true` on skills with side effects like committing, deploying, or sending messages. They stay out of context entirely until you need them.',

340 link: '/en/skills#control-who-invokes-a-skill'

341 }, {}, {

342 t: 0.93,

343 kind: 'compact',

344 label: '/compact',

345 tokens: 0,

346 color: '#D97757',

347 vis: 'brief',

348 desc: 'Replaces the conversation with a structured summary. You see a "Conversation compacted" message. The summarization happens without appearing in your terminal.',

349 link: '/en/how-claude-code-works#the-context-window'

350 }].filter(e => e.t !== undefined), []);

351 const VIS_META = {

352 hidden: {

353 label: 'Invisible in your terminal',

354 sub: 'This content does not appear in your terminal.'

355 },

356 brief: {

357 label: 'One-liner in your terminal',

358 sub: 'You see a brief mention, not the full content.'

359 },

360 full: {

361 label: 'Shown in your terminal',

362 sub: 'The actual content appears in your terminal.'

363 }

364 };

365 {}

366 const GATES = [{

367 at: 0.18,

368 kind: 'prompt',

369 text: 'Fix the auth bug where users get 401 after token refresh',

370 resumeTo: 0.22

371 }, {

372 at: 0.705,

373 kind: 'prompt',

374 text: 'Use a subagent to research session timeout handling, then fix it',

375 resumeTo: 0.72

376 }, {

377 at: 0.865,

378 kind: 'bang',

379 text: '!git status',

380 resumeTo: 0.875

381 }, {

382 at: 0.88,

383 kind: 'slash',

384 text: '/commit-push',

385 resumeTo: 0.89

386 }, {

387 at: 0.90,

388 kind: 'compact',

389 text: '/compact',

390 resumeTo: 1

391 }];

392 const KIND_META = {

393 auto: {

394 badge: 'auto',

395 detail: 'Auto-loaded',

396 badgeBg: 'rgba(94,93,89,0.15)',

397 badgeColor: '#8A8880'

398 },

399 user: {

400 badge: 'you',

401 detail: 'You typed this',

402 badgeBg: 'rgba(85,138,66,0.15)',

403 badgeColor: '#6BA656'

404 },

405 claude: {

406 badge: 'claude',

407 detail: "Claude's work",

408 badgeBg: 'rgba(217,119,87,0.12)',

409 badgeColor: '#D97757'

410 },

411 hook: {

412 badge: 'hook',

413 detail: 'Hook (automatic)',

414 badgeBg: 'rgba(184,134,11,0.15)',

415 badgeColor: '#CCA020'

416 },

417 compact: {

418 badge: 'compact',

419 detail: 'Compaction',

420 badgeBg: 'rgba(217,119,87,0.12)',

421 badgeColor: '#D97757'

422 },

423 sub: {

424 badge: 'subagent',

425 detail: "In subagent's context",

426 badgeBg: 'rgba(155,123,196,0.12)',

427 badgeColor: '#9B7BC4'

428 }

429 };

430 const LEGEND = [{

431 c: '#6B6964',

432 l: 'System'

433 }, {

434 c: '#6A9BCC',

435 l: 'CLAUDE.md'

436 }, {

437 c: '#E8A45C',

438 l: 'Memory'

439 }, {

440 c: '#D4A843',

441 l: 'Skills'

442 }, {

443 c: '#9B7BC4',

444 l: 'MCP'

445 }, {

446 c: '#4A9B8E',

447 l: 'Rules'

448 }, {

449 c: '#558A42',

450 l: 'You'

451 }, {

452 c: '#8A8880',

453 l: 'Files'

454 }, {

455 c: '#A09E96',

456 l: 'Output'

457 }, {

458 c: '#D97757',

459 l: 'Claude'

460 }, {

461 c: '#B8860B',

462 l: 'Hooks'

463 }];

464 const fmt = n => n >= 1000 ? (n / 1000).toFixed(1).replace(/\.0$/, '') + 'K' : n + '';

465 const [time, setTime] = useState(0);

466 const [playing, setPlaying] = useState(false);

467 const [hovIdx, setHovIdx] = useState(null);

468 const [selIdx, setSelIdx] = useState(null);

469 const [hovCat, setHovCat] = useState(null);

470 const [gatesPassed, setGatesPassed] = useState(0);

471 const [mounted, setMounted] = useState(false);

472 const [hasInteracted, setHasInteracted] = useState(false);

473 const lastRef = useRef(null);

474 const scrollRef = useRef(null);

475 const detailRef = useRef(null);

476 useEffect(() => setMounted(true), []);

477 const activeGate = GATES.find((g, i) => i >= gatesPassed && time >= g.at && time < g.resumeTo);

478 useEffect(() => {

479 if (!playing) return;

480 let raf;

481 let stopped = false;

482 const tick = ts => {

483 if (stopped) return;

484 if (!lastRef.current) lastRef.current = ts;

485 const dt = (ts - lastRef.current) / 1000;

486 lastRef.current = ts;

487 setTime(prev => {

488 const next = prev + dt * 0.032;

489 const gate = GATES.find((g, i) => i >= gatesPassed && next >= g.at && prev < g.resumeTo);

490 if (gate) {

491 stopped = true;

492 setPlaying(false);

493 return gate.at;

494 }

495 if (next >= 1) {

496 stopped = true;

497 setPlaying(false);

498 return 1;

499 }

500 return next;

501 });

502 if (!stopped) raf = requestAnimationFrame(tick);

503 };

504 raf = requestAnimationFrame(tick);

505 return () => {

506 stopped = true;

507 cancelAnimationFrame(raf);

508 lastRef.current = null;

509 };

510 }, [playing, gatesPassed]);

511 const sendPrompt = () => {

512 if (!activeGate) return;

513 const isCompact = activeGate.kind === 'compact';

514 setGatesPassed(n => n + 1);

515 setTime(activeGate.resumeTo);

516 setSelIdx(null);

517 setHovIdx(null);

518 if (!isCompact) setPlaying(true);

519 };

520 const visibleCount = EVENTS.filter(e => e.t <= time).length;

521 const preCompactVisible = useMemo(() => EVENTS.slice(0, visibleCount), [EVENTS, visibleCount]);

522 const compactGateIdx = GATES.length - 1;

523 const isCompacted = gatesPassed > compactGateIdx && preCompactVisible.some(e => e.kind === 'compact');

524 const {visible, preCompactTotal} = useMemo(() => {

525 const nonCompact = preCompactVisible.filter(e => e.kind !== 'compact');

526 if (!isCompacted) {

527 return {

528 visible: preCompactVisible,

529 preCompactTotal: 0

530 };

531 }

532 {}

533 const autoLoads = nonCompact.filter(e => e.kind === 'auto' && e.t < STARTUP_END && !e.noSurviveCompact);

534 const summarized = nonCompact.filter(e => e.t >= STARTUP_END && e.kind !== 'sub');

535 const sumTokens = summarized.reduce((s, e) => s + e.tokens, 0);

536 const summaryBlock = {

537 t: STARTUP_END,

538 kind: 'compact',

539 label: 'Conversation summary',

540 tokens: Math.round(sumTokens * 0.12),

541 color: '#A09E96',

542 vis: 'hidden',

543 desc: `All ${summarized.length} conversation events condensed into one structured summary. The summary keeps: your requests and intent, key technical concepts, files examined or modified with important code snippets, errors and how they were fixed, pending tasks, and current work. It replaces the verbatim conversation: full tool outputs and intermediate reasoning are gone. Claude can still reference the work but won't have the exact code it read earlier.`,

544 link: '/en/how-claude-code-works#the-context-window'

545 };

546 return {

547 visible: [...autoLoads, summaryBlock],

548 preCompactTotal: nonCompact.reduce((s, e) => s + e.tokens, 0)

549 };

550 }, [preCompactVisible, isCompacted]);

551 const {blocks, totalTokens} = useMemo(() => {

552 const bl = visible.map((e, visIdx) => ({

553 ...e,

554 id: e.label + e.t,

555 visIdx

556 })).filter(e => e.tokens > 0 || e.label === 'Conversation summary');

557 return {

558 blocks: bl,

559 totalTokens: bl.reduce((s, b) => s + b.tokens, 0)

560 };

561 }, [visible]);

562 const subTotal = useMemo(() => visible.filter(e => e.kind === 'sub').reduce((s, e) => s + (e.subTokens || 0), 0), [visible]);

563 useEffect(() => {

564 if (!scrollRef.current) return;

565 if (isCompacted) scrollRef.current.scrollTo({

566 top: 0,

567 behavior: 'smooth'

568 }); else if (playing || activeGate) scrollRef.current.scrollTop = scrollRef.current.scrollHeight;

569 }, [visible.length, !!activeGate, isCompacted]);

570 const rootRef = useRef(null);

571 const keyStateRef = useRef({});

572 const [isFullscreen, setIsFullscreen] = useState(false);

573 keyStateRef.current = {

574 time,

575 activeGate,

576 sendPrompt,

577 hasInteracted

578 };

579 useEffect(() => {

580 const onFsChange = () => setIsFullscreen(!!document.fullscreenElement);

581 document.addEventListener('fullscreenchange', onFsChange);

582 return () => document.removeEventListener('fullscreenchange', onFsChange);

583 }, []);

584 const toggleFullscreen = () => {

585 if (!rootRef.current) return;

586 if (document.fullscreenElement) document.exitFullscreen(); else rootRef.current.requestFullscreen().catch(() => {});

587 };

588 useEffect(() => {

589 const onKey = e => {

590 const tag = e.target.tagName;

591 if (tag === 'INPUT' || tag === 'BUTTON' || tag === 'TEXTAREA' || tag === 'SELECT' || e.target.isContentEditable) return;

592 if (!rootRef.current) return;

593 const rect = rootRef.current.getBoundingClientRect();

594 if (rect.width === 0 && rect.height === 0) return;

595 if (rect.bottom < 0 || rect.top > window.innerHeight) return;

596 if (e.code === 'Space') {

597 const {time: t, activeGate: g, sendPrompt: send, hasInteracted: hi} = keyStateRef.current;

598 if (!hi) return;

599 e.preventDefault();

600 if (t === 0) setPlaying(true); else if (g) send(); else if (t >= 1) {

601 setTime(0);

602 setGatesPassed(0);

603 setSelIdx(null);

604 setHovIdx(null);

605 setPlaying(true);

606 } else setPlaying(p => !p);

607 }

608 };

609 window.addEventListener('keydown', onKey);

610 return () => window.removeEventListener('keydown', onKey);

611 }, []);

612 const pct = totalTokens / MAX * 100;

613 const barColor = pct > 75 ? '#D97757' : pct > 50 ? '#B8860B' : '#558A42';

614 const activeIdx = selIdx !== null ? selIdx : hovIdx;

615 const hovEvent = activeIdx !== null ? visible[activeIdx] : null;

616 useEffect(() => {

617 if (detailRef.current) detailRef.current.scrollTop = 0;

618 }, [hovEvent]);

619 const focusT = hovEvent ? hovEvent.t : time;

620 const takeaway = isCompacted ? 'Compaction replaces the conversation with a structured summary. System prompt, CLAUDE.md, memory, and MCP tools reload automatically. The skill listing is the one exception. Only skills you actually invoked are preserved.' : focusT < STARTUP_END ? 'A lot loads before you type anything. CLAUDE.md, memory, skills, and MCP tools are all in context before your first prompt.' : focusT < 0.28 ? "Your prompt is tiny compared to what's already loaded. Most of Claude's context is project knowledge, not your words." : focusT < 0.50 ? 'Each file Claude reads grows the context. Path-scoped rules load automatically alongside matching files.' : focusT < 0.71 ? 'Hooks fire automatically on tool events. Output reaches Claude via additionalContext JSON. Exit code 2 surfaces stderr to Claude. Plain stdout on exit 0 goes to the debug log, not the transcript.' : focusT < 0.79 ? 'Follow-up questions keep building on the same context. Everything from earlier is still there.' : focusT < 0.87 ? "The subagent works in its own separate context window. None of its file reads touch yours. Only the final summary comes back." : focusT < 0.88 ? 'Bang commands run in your shell and prefix the output to your next message. Useful for grounding Claude in command results without it running them.' : focusT < 0.90 ? 'User-only skills stay out of context entirely until you invoke them. The skill index at startup only lists skills Claude can call on its own.' : '/compact summarizes the conversation to free space while keeping key information. In a real session, run it when context starts affecting performance or before a long new task.';

621 const terminalView = isCompacted ? 'A "Conversation compacted" message. The summarization happens silently.' : focusT < STARTUP_END ? 'The input box, waiting for your first message. Everything above loads silently before you type anything.' : focusT < 0.28 ? 'Your prompt. Claude hasn\'t started working yet.' : focusT < 0.52 ? 'Your prompt and "Reading files...". Rules show as one-line "Loaded" notices, not their content.' : focusT < 0.72 ? "Claude's response and file diffs. Hooks fire silently. Tool output like npm test shows as a brief summary, not the full content." : focusT < 0.79 ? 'Your follow-up prompt.' : focusT < 0.86 ? "A brief notice that a subagent is working, then its result. You don't see the subagent's individual file reads." : focusT < 0.90 ? "Claude's response, your git status output, and the commit-push skill running." : 'Your full conversation. /compact is available to run.';

622 const mono = 'var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace)';

623 const renderWithCode = s => s.split('`').map((part, i) => i % 2 === 1 ? <code key={i} style={{

624 fontFamily: mono,

625 fontSize: '0.92em',

626 background: 'var(--cw-track)',

627 padding: '1px 4px',

628 borderRadius: 3

629 }}>{part}</code> : part);

630 if (!mounted) return null;

631 return <>

632 <div className="cw-mobile-fallback">

633 This interactive timeline works best on a larger screen. See <a href="#what-the-timeline-shows" style={{

634 color: '#D97757'

635 }}>the written breakdown below</a> for the same concepts.

636 </div>

637 <div className="cw-root" ref={rootRef} onClickCapture={() => setHasInteracted(true)} style={isFullscreen ? {

638 height: '100vh',

639 borderRadius: 0,

640 display: 'flex',

641 flexDirection: 'column'

642 } : {}}>

643 <style>{`

644 .cw-root {

645 --cw-bg: #FAFAF8;

646 --cw-text: #1A1918;

647 --cw-text-2: #3D3C38;

648 --cw-text-3: #5E5D59;

649 --cw-text-dim: #6E6C64;

650 --cw-text-faint: #8A8880;

651 --cw-surface: rgba(0,0,0,0.025);

652 --cw-surface-2: rgba(0,0,0,0.04);

653 --cw-border: rgba(0,0,0,0.08);

654 --cw-track: rgba(0,0,0,0.04);

655 --cw-hover: rgba(0,0,0,0.04);

656 --cw-rail: rgba(0,0,0,0.08);

657 --cw-scrollbar: rgba(0,0,0,0.22);

658 background: var(--cw-bg);

659 border-radius: 12px;

660 overflow: hidden;

661 font-family: var(--font-sans, -apple-system, BlinkMacSystemFont, sans-serif);

662 color: var(--cw-text);

663 border: 1px solid var(--cw-border);

664 }

665 .dark .cw-root {

666 --cw-bg: #111110;

667 --cw-text: #E8E6DC;

668 --cw-text-2: #B8B6AE;

669 --cw-text-3: #9C9A92;

670 --cw-text-dim: #8A8880;

671 --cw-text-faint: #6E6C64;

672 --cw-surface: rgba(255,255,255,0.02);

673 --cw-surface-2: rgba(255,255,255,0.015);

674 --cw-border: rgba(255,255,255,0.06);

675 --cw-track: rgba(255,255,255,0.03);

676 --cw-hover: rgba(255,255,255,0.04);

677 --cw-rail: rgba(255,255,255,0.04);

678 --cw-scrollbar: rgba(255,255,255,0.18);

679 }

680 .cw-scroll::-webkit-scrollbar { width: 6px; }

681 .cw-scroll::-webkit-scrollbar-track { background: transparent; }

682 .cw-scroll::-webkit-scrollbar-thumb { background: var(--cw-scrollbar); border-radius: 3px; }

683 @keyframes cw-blink { 50% { opacity: 0; } }

684 @keyframes cw-fadein { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }

685 .cw-compacted-row { animation: cw-fadein 0.3s ease-out backwards; }

686 .cw-mobile-fallback { display: none; padding: 14px 16px; border-radius: 8px; font-size: 14px; border: 1px solid rgba(0,0,0,0.1); background: rgba(0,0,0,0.03); }

687 .dark .cw-mobile-fallback { border-color: rgba(255,255,255,0.15); background: rgba(255,255,255,0.04); }

688 @media (max-width: 700px) {

689 .cw-root { display: none !important; }

690 .cw-mobile-fallback { display: block; }

691 }

692 `}</style>

10 693 

11## Cosa mostra la timeline694 {}

695 <div style={{

696 padding: '16px 20px 12px',

697 display: 'flex',

698 alignItems: 'flex-end',

699 gap: 24

700 }}>

701 <div style={{

702 flex: 1,

703 minWidth: 0

704 }}>

705 <div style={{

706 fontSize: 18,

707 fontWeight: 600,

708 letterSpacing: -0.3,

709 lineHeight: 1

710 }}>

711 Explore the context window

712 </div>

713 <div style={{

714 fontSize: 14,

715 color: 'var(--cw-text-dim)',

716 marginTop: 4

717 }}>

718 A simulated session showing what enters context and what it costs

719 </div>

720 </div>

721 <div style={{

722 textAlign: 'right',

723 flexShrink: 0

724 }}>

725 <div style={{

726 fontFamily: mono,

727 fontSize: 20,

728 fontWeight: 600,

729 color: barColor,

730 letterSpacing: -0.5,

731 lineHeight: 1

732 }}>

733 ~{fmt(totalTokens)}<span style={{

734 fontSize: 15,

735 fontWeight: 500,

736 marginLeft: 4

737 }}>tokens</span>

738 </div>

739 <div style={{

740 fontFamily: mono,

741 fontSize: 13,

742 color: 'var(--cw-text-dim)',

743 marginTop: 2

744 }} title="Token counts are illustrative. Actual values vary with your CLAUDE.md size, MCP servers, and file lengths.">

745 / {fmt(MAX)} · illustrative

746 </div>

747 </div>

748 </div>

749 

750 {}

751 <div style={{

752 padding: '0 20px'

753 }}>

754 <div style={{

755 height: 4,

756 borderRadius: 2,

757 background: 'var(--cw-track)',

758 overflow: 'hidden',

759 marginBottom: 6

760 }}>

761 <div style={{

762 width: pct + '%',

763 height: '100%',

764 background: barColor,

765 transition: 'width 0.6s cubic-bezier(0.4, 0, 0.2, 1), background 0.3s'

766 }} />

767 </div>

768 <div style={{

769 height: 28,

770 borderRadius: 5,

771 background: 'var(--cw-track)',

772 border: '1px solid var(--cw-border)',

773 overflow: 'hidden',

774 display: 'flex'

775 }}>

776 {blocks.map((b, i) => {

777 const w = Math.max(b.tokens / MAX * 100, 0.15);

778 const isHov = b.visIdx === activeIdx;

779 const catMatch = hovCat && b.color === hovCat;

780 const dimmed = hovCat ? !catMatch : activeIdx !== null && !isHov;

781 return <div key={b.id} onMouseEnter={() => setHovIdx(b.visIdx)} onMouseLeave={() => setHovIdx(null)} onClick={() => setSelIdx(selIdx === b.visIdx ? null : b.visIdx)} style={{

782 width: w + '%',

783 height: '100%',

784 background: b.color,

785 opacity: isHov || catMatch ? 1 : dimmed ? 0.25 : 0.65,

786 borderRight: i < blocks.length - 1 ? '0.5px solid var(--cw-border)' : 'none',

787 transition: 'opacity 0.15s',

788 cursor: 'pointer'

789 }} />;

790 })}

791 </div>

792 <div style={{

793 display: 'flex',

794 gap: 12,

795 marginTop: 6,

796 flexWrap: 'wrap',

797 justifyContent: 'space-between'

798 }}>

799 <div style={{

800 display: 'flex',

801 gap: 12,

802 flexWrap: 'wrap'

803 }}>

804 {LEGEND.map(x => {

805 const active = hovCat === x.c;

806 return <div key={x.l} onMouseEnter={() => setHovCat(x.c)} onMouseLeave={() => setHovCat(null)} style={{

807 display: 'flex',

808 alignItems: 'center',

809 gap: 4,

810 padding: '2px 6px',

811 borderRadius: 4,

812 cursor: 'pointer',

813 background: active ? 'var(--cw-hover)' : 'transparent',

814 transition: 'background 0.1s'

815 }}>

816 <div style={{

817 width: 6,

818 height: 6,

819 borderRadius: 1.5,

820 background: x.c,

821 opacity: active ? 1 : 0.7

822 }} />

823 <span style={{

824 fontSize: 12,

825 color: active ? 'var(--cw-text)' : 'var(--cw-text-dim)'

826 }}>{x.l}</span>

827 </div>;

828 })}

829 </div>

830 <div style={{

831 display: 'flex',

832 gap: 6,

833 alignItems: 'center',

834 fontSize: 12,

835 color: 'var(--cw-text-dim)'

836 }}>

837 <svg width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="#558A42" strokeWidth="2.5">

838 <path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z" /><circle cx="12" cy="12" r="3" />

839 </svg>

840 <span>= appears in your terminal</span>

841 </div>

842 </div>

843 </div>

844 

845 {}

846 <div style={{

847 display: 'flex',

848 padding: '14px 20px 0',

849 gap: 16,

850 height: isFullscreen ? 'calc(100vh - 240px)' : 420

851 }}>

852 

853 {}

854 <div ref={scrollRef} className="cw-scroll" style={{

855 flex: 1,

856 minWidth: 0,

857 overflowY: 'auto',

858 paddingRight: 8,

859 scrollBehavior: 'smooth'

860 }}>

861 {visible.length === 0 && !playing && <div style={{

862 height: '100%',

863 display: 'flex',

864 flexDirection: 'column',

865 alignItems: 'center',

866 justifyContent: 'center',

867 gap: 16

868 }}>

869 <div style={{

870 fontFamily: mono,

871 fontSize: 16,

872 color: 'var(--cw-text-dim)',

873 display: 'flex',

874 alignItems: 'center',

875 gap: 8

876 }}>

877 <span style={{

878 color: 'var(--cw-text-faint)'

879 }}>$</span>

880 <span>claude</span>

881 <span style={{

882 display: 'inline-block',

883 width: 8,

884 height: 16,

885 background: 'var(--cw-text-dim)',

886 opacity: 0.5,

887 animation: 'cw-blink 1s step-end infinite'

888 }} />

889 </div>

890 <button onClick={() => setPlaying(true)} style={{

891 padding: '10px 20px',

892 borderRadius: 8,

893 border: '1px solid rgba(217,119,87,0.3)',

894 background: 'rgba(217,119,87,0.08)',

895 color: '#D97757',

896 fontSize: 15,

897 fontWeight: 600,

898 cursor: 'pointer',

899 display: 'flex',

900 alignItems: 'center',

901 gap: 8

902 }}>

903 <span>▶</span>

904 <span>Start session</span>

905 </button>

906 <div style={{

907 fontSize: 13,

908 color: 'var(--cw-text-faint)',

909 maxWidth: 280,

910 textAlign: 'center',

911 lineHeight: 1.5

912 }}>

913 Watch what loads into context, from the moment you run <code style={{

914 fontFamily: mono

915 }}>claude</code> through a full conversation.

916 </div>

917 </div>}

918 {isCompacted && <div style={{

919 marginBottom: 10,

920 padding: '10px 12px',

921 borderRadius: 6,

922 background: 'rgba(217,119,87,0.05)',

923 border: '1px solid rgba(217,119,87,0.15)'

924 }}>

925 <div style={{

926 fontSize: 13,

927 fontWeight: 600,

928 color: '#D97757',

929 marginBottom: 3

930 }}>

931 After /compact

932 </div>

933 <div style={{

934 fontSize: 13,

935 color: 'var(--cw-text-3)',

936 lineHeight: 1.5,

937 fontFamily: mono

938 }}>

939 {fmt(preCompactTotal)} → {fmt(totalTokens)} tokens · freed {fmt(preCompactTotal - totalTokens)}

940 </div>

941 <div style={{

942 fontSize: 13,

943 color: 'var(--cw-text-dim)',

944 lineHeight: 1.5,

945 marginTop: 4

946 }}>

947 This is what's left in context: startup content, which lives outside the message history and reloads after compaction, plus a structured summary of the entire conversation. Skill descriptions don't reload.

948 </div>

949 </div>}

950 {time > 0 && visible.length > 0 && <div style={{

951 fontSize: 12,

952 fontWeight: 700,

953 color: 'var(--cw-text-faint)',

954 textTransform: 'uppercase',

955 letterSpacing: 0.6,

956 marginBottom: 6,

957 paddingLeft: 28

958 }}>

959 {isCompacted ? 'Reloaded after compact' : 'Before you type anything'}

960 </div>}

961 

962 {time > 0 && visible.map((evt, i) => {

963 const meta = KIND_META[evt.kind];

964 const isHov = hovIdx === i;

965 const prevKind = i > 0 ? visible[i - 1].kind : null;

966 const isSub = evt.kind === 'sub';

967 const enteringSubagent = isSub && prevKind !== 'sub';

968 const leavingSubagent = prevKind === 'sub' && !isSub;

969 let showPhase = null;

970 if (evt.kind === 'user' && prevKind !== 'user') showPhase = 'You'; else if (evt.kind === 'claude' && prevKind === 'user') showPhase = 'Claude works'; else if (evt.label === 'Conversation summary') showPhase = 'Summarized by /compact';

971 const isNewRow = isCompacted && !(evt.kind === 'auto' && evt.t < STARTUP_END);

972 return <div key={evt.label + evt.t} className={isNewRow ? 'cw-compacted-row' : ''} style={isNewRow ? {

973 animationDelay: `${i * 60}ms`

974 } : {}}>

975 {showPhase && <div style={{

976 fontSize: 12,

977 fontWeight: 700,

978 color: 'var(--cw-text-faint)',

979 textTransform: 'uppercase',

980 letterSpacing: 0.6,

981 marginTop: 14,

982 marginBottom: 6,

983 paddingLeft: 28

984 }}>

985 {showPhase}

986 </div>}

987 {enteringSubagent && <div style={{

988 marginLeft: 28,

989 marginTop: 6,

990 marginBottom: 2,

991 paddingLeft: 10,

992 borderLeft: '2px solid rgba(155,123,196,0.4)',

993 fontSize: 12,

994 fontWeight: 600,

995 color: '#9B7BC4',

996 textTransform: 'uppercase',

997 letterSpacing: 0.5

998 }}>

999 Subagent's separate context window

1000 </div>}

1001 {leavingSubagent && <div style={{

1002 marginLeft: 28,

1003 marginBottom: 6,

1004 paddingLeft: 10,

1005 paddingBottom: 6,

1006 borderLeft: '2px solid rgba(155,123,196,0.4)',

1007 fontSize: 12,

1008 color: 'var(--cw-text-dim)',

1009 fontFamily: mono

1010 }}>

1011 ↓ {fmt(subTotal)} tokens stayed in subagent's context · only the summary returns

1012 </div>}

1013 <div onMouseEnter={() => setHovIdx(i)} onMouseLeave={() => setHovIdx(null)} onClick={() => setSelIdx(selIdx === i ? null : i)} style={{

1014 display: 'flex',

1015 alignItems: 'flex-start',

1016 borderRadius: 6,

1017 cursor: 'pointer',

1018 background: selIdx === i || isHov ? 'var(--cw-hover)' : 'transparent',

1019 outline: selIdx === i ? '1px solid rgba(217,119,87,0.4)' : 'none',

1020 opacity: hovCat && evt.color !== hovCat ? 0.35 : 1,

1021 transition: 'background 0.1s, opacity 0.15s',

1022 marginLeft: isSub ? 28 : 0,

1023 paddingLeft: isSub ? 10 : 0,

1024 borderLeft: isSub ? '2px solid rgba(155,123,196,0.4)' : 'none'

1025 }}>

1026 <div style={{

1027 width: 28,

1028 display: 'flex',

1029 flexDirection: 'column',

1030 alignItems: 'center',

1031 paddingTop: 8,

1032 flexShrink: 0

1033 }}>

1034 <div style={{

1035 width: evt.kind === 'user' || evt.kind === 'compact' ? 10 : 7,

1036 height: evt.kind === 'user' || evt.kind === 'compact' ? 10 : 7,

1037 borderRadius: '50%',

1038 background: evt.color,

1039 opacity: isHov ? 1 : 0.6,

1040 transition: 'opacity 0.15s',

1041 boxShadow: isHov ? `0 0 8px ${evt.color}40` : 'none'

1042 }} />

1043 {i < visible.length - 1 && <div style={{

1044 width: 1.5,

1045 flex: 1,

1046 background: 'var(--cw-rail)',

1047 marginTop: 2,

1048 minHeight: 6

1049 }} />}

1050 </div>

1051 <div style={{

1052 flex: 1,

1053 minWidth: 0,

1054 padding: '5px 10px 5px 4px',

1055 display: 'flex',

1056 alignItems: 'center',

1057 gap: 8

1058 }}>

1059 <span style={{

1060 fontSize: 12,

1061 fontWeight: 600,

1062 padding: '1px 5px',

1063 borderRadius: 3,

1064 background: meta.badgeBg,

1065 color: meta.badgeColor,

1066 flexShrink: 0,

1067 fontFamily: mono

1068 }}>

1069 {meta.badge}

1070 </span>

1071 <span style={{

1072 fontSize: 15,

1073 fontFamily: mono,

1074 color: isHov ? 'var(--cw-text)' : evt.kind === 'user' ? '#558A42' : evt.kind === 'auto' ? 'var(--cw-text-dim)' : 'var(--cw-text-2)',

1075 flex: 1,

1076 minWidth: 0,

1077 overflow: 'hidden',

1078 textOverflow: 'ellipsis',

1079 whiteSpace: 'nowrap',

1080 fontWeight: evt.kind === 'user' ? 550 : 400

1081 }}>

1082 {evt.label}

1083 </span>

1084 {evt.tokens > 0 && <span style={{

1085 fontSize: 12,

1086 fontFamily: mono,

1087 color: 'var(--cw-text-faint)',

1088 flexShrink: 0

1089 }}>

1090 +{fmt(evt.tokens)}

1091 </span>}

1092 {evt.subTokens > 0 && <span style={{

1093 fontSize: 12,

1094 fontFamily: mono,

1095 color: '#9B7BC4',

1096 flexShrink: 0,

1097 opacity: 0.6

1098 }}>

1099 +{fmt(evt.subTokens)}

1100 </span>}

1101 {evt.tokens > 0 && <div style={{

1102 width: 50,

1103 height: 5,

1104 borderRadius: 2,

1105 background: 'var(--cw-track)',

1106 flexShrink: 0,

1107 overflow: 'hidden'

1108 }}>

1109 <div style={{

1110 width: Math.min(evt.tokens / 5000 * 100, 100) + '%',

1111 height: '100%',

1112 background: evt.color,

1113 opacity: isHov ? 0.8 : 0.4,

1114 transition: 'opacity 0.15s'

1115 }} />

1116 </div>}

1117 <span style={{

1118 width: 14,

1119 flexShrink: 0,

1120 display: 'flex',

1121 justifyContent: 'center'

1122 }} title={VIS_META[evt.vis].label}>

1123 {evt.vis !== 'hidden' && <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke={evt.vis === 'full' ? '#558A42' : 'currentColor'} style={{

1124 color: 'var(--cw-text-faint)',

1125 opacity: evt.vis === 'full' ? 1 : 0.5

1126 }} strokeWidth="2">

1127 <path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z" /><circle cx="12" cy="12" r="3" />

1128 </svg>}

1129 </span>

1130 </div>

1131 </div>

1132 </div>;

1133 })}

1134 

1135 {activeGate && (activeGate.kind === 'prompt' || activeGate.kind === 'bang' || activeGate.kind === 'slash') && <div style={{

1136 paddingLeft: 28,

1137 marginTop: 12,

1138 paddingRight: 8

1139 }}>

1140 <div style={{

1141 fontSize: 11,

1142 fontWeight: 600,

1143 color: '#6BA656',

1144 fontFamily: mono,

1145 textTransform: 'uppercase',

1146 letterSpacing: 0.5,

1147 marginBottom: 4,

1148 paddingLeft: 2

1149 }}>

1150 You type in your terminal

1151 </div>

1152 <div style={{

1153 display: 'flex',

1154 alignItems: 'flex-start',

1155 gap: 8,

1156 padding: '10px 12px',

1157 borderRadius: 6,

1158 background: 'rgba(85,138,66,0.06)',

1159 border: '1px solid rgba(85,138,66,0.2)'

1160 }}>

1161 <span style={{

1162 color: '#558A42',

1163 fontSize: 15,

1164 fontFamily: mono,

1165 flexShrink: 0

1166 }}>❯</span>

1167 <span style={{

1168 fontSize: 15,

1169 fontFamily: mono,

1170 color: 'var(--cw-text-2)',

1171 flex: 1,

1172 lineHeight: 1.5

1173 }}>

1174 {activeGate.text}

1175 <span style={{

1176 display: 'inline-block',

1177 width: 7,

1178 height: 13,

1179 marginLeft: 2,

1180 background: '#558A42',

1181 opacity: 0.5,

1182 verticalAlign: 'middle',

1183 animation: 'cw-blink 1s step-end infinite'

1184 }} />

1185 </span>

1186 <button onClick={sendPrompt} style={{

1187 padding: '5px 12px',

1188 borderRadius: 5,

1189 border: 'none',

1190 background: '#558A42',

1191 color: '#fff',

1192 fontSize: 13,

1193 fontWeight: 600,

1194 cursor: 'pointer',

1195 flexShrink: 0

1196 }}>

1197 {activeGate.kind === 'prompt' ? 'Send ↵' : 'Run ↵'}

1198 </button>

1199 </div>

1200 </div>}

1201 {activeGate && activeGate.kind === 'compact' && <div style={{

1202 paddingLeft: 28,

1203 marginTop: 12,

1204 paddingRight: 8

1205 }}>

1206 <div style={{

1207 padding: '12px 14px',

1208 borderRadius: 6,

1209 background: 'rgba(217,119,87,0.06)',

1210 border: '1px solid rgba(217,119,87,0.25)'

1211 }}>

1212 <div style={{

1213 fontSize: 13,

1214 color: 'var(--cw-text-3)',

1215 marginBottom: 8,

1216 lineHeight: 1.5

1217 }}>

1218 Context is at <span style={{

1219 fontFamily: mono,

1220 fontWeight: 600,

1221 color: barColor

1222 }}>{fmt(totalTokens)} tokens</span>.

1223 Run <code style={{

1224 fontFamily: mono,

1225 background: 'var(--cw-track)',

1226 padding: '1px 4px',

1227 borderRadius: 3

1228 }}>/compact</code> to

1229 summarize older exchanges and free space for more work.

1230 </div>

1231 <div style={{

1232 display: 'flex',

1233 alignItems: 'center',

1234 gap: 8

1235 }}>

1236 <span style={{

1237 color: '#D97757',

1238 fontSize: 15,

1239 fontFamily: mono

1240 }}>❯</span>

1241 <span style={{

1242 fontSize: 15,

1243 fontFamily: mono,

1244 color: 'var(--cw-text-2)',

1245 flex: 1

1246 }}>

1247 {activeGate.text}

1248 </span>

1249 <button onClick={sendPrompt} style={{

1250 padding: '5px 12px',

1251 borderRadius: 5,

1252 border: 'none',

1253 background: '#D97757',

1254 color: '#fff',

1255 fontSize: 13,

1256 fontWeight: 600,

1257 cursor: 'pointer',

1258 flexShrink: 0

1259 }}>

1260 Run ↵

1261 </button>

1262 </div>

1263 </div>

1264 </div>}

1265 </div>

1266 

1267 {}

1268 <div style={{

1269 width: 300,

1270 flexShrink: 0,

1271 display: 'flex',

1272 flexDirection: 'column'

1273 }}>

1274 <div ref={detailRef} className="cw-scroll" style={{

1275 padding: '14px 16px',

1276 borderRadius: 10,

1277 background: 'var(--cw-surface)',

1278 border: '1px solid var(--cw-border)',

1279 flex: 1,

1280 minHeight: 0,

1281 overflowY: 'auto',

1282 display: 'flex',

1283 flexDirection: 'column',

1284 gap: 10

1285 }}>

1286 {hovEvent ? <div>

1287 <div style={{

1288 display: 'flex',

1289 alignItems: 'center',

1290 gap: 8,

1291 marginBottom: 8

1292 }}>

1293 <div style={{

1294 width: 10,

1295 height: 10,

1296 borderRadius: 3,

1297 background: hovEvent.color,

1298 opacity: 0.8

1299 }} />

1300 <span style={{

1301 fontSize: 16,

1302 fontWeight: 600

1303 }}>{hovEvent.label}</span>

1304 </div>

1305 <div style={{

1306 display: 'flex',

1307 width: 'fit-content',

1308 padding: '3px 8px',

1309 borderRadius: 4,

1310 marginBottom: 8,

1311 background: KIND_META[hovEvent.kind].badgeBg

1312 }}>

1313 <span style={{

1314 fontSize: 12,

1315 fontWeight: 600,

1316 color: KIND_META[hovEvent.kind].badgeColor

1317 }}>

1318 {KIND_META[hovEvent.kind].detail}

1319 </span>

1320 </div>

1321 {hovEvent.tokens > 0 && <div style={{

1322 fontSize: 14,

1323 fontFamily: mono,

1324 color: 'var(--cw-text-dim)',

1325 marginBottom: 6

1326 }}>

1327 {fmt(hovEvent.tokens)} tokens

1328 </div>}

1329 {hovEvent.subTokens > 0 && <div style={{

1330 fontSize: 14,

1331 fontFamily: mono,

1332 color: '#9B7BC4',

1333 marginBottom: 6

1334 }}>

1335 {fmt(hovEvent.subTokens)} tokens in the subagent's context

1336 </div>}

1337 <p style={{

1338 fontSize: 15,

1339 color: 'var(--cw-text-3)',

1340 lineHeight: 1.55,

1341 margin: 0

1342 }}>

1343 {renderWithCode(hovEvent.desc)}

1344 </p>

1345 <div style={{

1346 marginTop: 10,

1347 padding: '8px 10px',

1348 borderRadius: 6,

1349 background: hovEvent.vis === 'full' ? 'rgba(85,138,66,0.08)' : 'var(--cw-surface-2)',

1350 border: '1px solid ' + (hovEvent.vis === 'full' ? 'rgba(85,138,66,0.2)' : 'var(--cw-border)')

1351 }}>

1352 <div style={{

1353 display: 'flex',

1354 alignItems: 'center',

1355 gap: 6,

1356 marginBottom: 3

1357 }}>

1358 <span style={{

1359 fontSize: 13,

1360 color: hovEvent.vis === 'full' ? '#558A42' : 'var(--cw-text-dim)'

1361 }}>

1362 {hovEvent.vis === 'full' ? '●' : hovEvent.vis === 'brief' ? '◐' : '○'}

1363 </span>

1364 <span style={{

1365 fontSize: 12,

1366 fontWeight: 600,

1367 color: 'var(--cw-text-2)'

1368 }}>

1369 {VIS_META[hovEvent.vis].label}

1370 </span>

1371 </div>

1372 <div style={{

1373 fontSize: 13,

1374 color: 'var(--cw-text-dim)',

1375 lineHeight: 1.4

1376 }}>

1377 {VIS_META[hovEvent.vis].sub}

1378 </div>

1379 </div>

1380 {hovEvent.tip && <div style={{

1381 marginTop: 10,

1382 padding: '8px 10px',

1383 borderRadius: 6,

1384 background: 'rgba(85,138,66,0.06)',

1385 border: '1px solid rgba(85,138,66,0.15)'

1386 }}>

1387 <div style={{

1388 fontSize: 12,

1389 fontWeight: 600,

1390 color: '#558A42',

1391 marginBottom: 3,

1392 display: 'flex',

1393 alignItems: 'center',

1394 gap: 4

1395 }}>

1396 <span>💡</span> Save context

1397 </div>

1398 <div style={{

1399 fontSize: 13,

1400 color: 'var(--cw-text-3)',

1401 lineHeight: 1.5

1402 }}>

1403 {renderWithCode(hovEvent.tip)}

1404 </div>

1405 </div>}

1406 {hovEvent.link && <a href={hovEvent.link} style={{

1407 display: 'inline-block',

1408 marginTop: 10,

1409 fontSize: 13,

1410 color: '#D97757',

1411 textDecoration: 'none',

1412 borderBottom: '1px solid rgba(217,119,87,0.3)'

1413 }}>

1414 Learn more →

1415 </a>}

1416 </div> : <div style={{

1417 display: 'flex',

1418 flexDirection: 'column',

1419 alignItems: 'center',

1420 textAlign: 'center',

1421 gap: 4,

1422 padding: '12px 0 4px'

1423 }}>

1424 <div style={{

1425 fontSize: 22,

1426 opacity: 0.2

1427 }}>👁</div>

1428 <div style={{

1429 fontSize: 14,

1430 fontWeight: 500,

1431 color: 'var(--cw-text-dim)'

1432 }}>Hover or click any event</div>

1433 <div style={{

1434 fontSize: 12,

1435 color: 'var(--cw-text-faint)',

1436 lineHeight: 1.4,

1437 maxWidth: 200

1438 }}>

1439 Hover to preview. Click to pin so you can scroll.

1440 </div>

1441 </div>}

1442 

1443 <div style={{

1444 padding: '10px 12px',

1445 borderRadius: 8,

1446 background: 'rgba(217,119,87,0.05)',

1447 border: '1px solid rgba(217,119,87,0.12)'

1448 }}>

1449 <div style={{

1450 fontSize: 11,

1451 fontWeight: 700,

1452 color: '#D97757',

1453 textTransform: 'uppercase',

1454 letterSpacing: 0.5,

1455 marginBottom: 3

1456 }}>

1457 Key takeaway

1458 </div>

1459 <div style={{

1460 fontSize: 13,

1461 color: 'var(--cw-text-3)',

1462 lineHeight: 1.5

1463 }}>

1464 {takeaway}

1465 </div>

1466 </div>

1467 

1468 <div style={{

1469 padding: '10px 12px',

1470 borderRadius: 8,

1471 background: 'var(--cw-surface-2)',

1472 border: '1px solid var(--cw-border)'

1473 }}>

1474 <div style={{

1475 fontSize: 11,

1476 fontWeight: 700,

1477 color: 'var(--cw-text-dim)',

1478 textTransform: 'uppercase',

1479 letterSpacing: 0.5,

1480 marginBottom: 3

1481 }}>

1482 In your terminal you see

1483 </div>

1484 <div style={{

1485 fontSize: 13,

1486 color: 'var(--cw-text-3)',

1487 lineHeight: 1.5

1488 }}>

1489 {terminalView}

1490 </div>

1491 </div>

1492 </div>

1493 </div>

1494 </div>

1495 

1496 {}

1497 <div style={{

1498 padding: '10px 20px 14px',

1499 display: 'flex',

1500 alignItems: 'center',

1501 gap: 10

1502 }}>

1503 <button aria-label={time >= 1 ? 'Restart' : activeGate ? 'Continue' : playing ? 'Pause' : 'Play'} onClick={() => {

1504 if (time >= 1) {

1505 setTime(0);

1506 setGatesPassed(0);

1507 setSelIdx(null);

1508 setHovIdx(null);

1509 setPlaying(true);

1510 } else if (activeGate) sendPrompt(); else setPlaying(!playing);

1511 }} style={{

1512 width: 30,

1513 height: 30,

1514 borderRadius: 6,

1515 border: 'none',

1516 background: 'rgba(217,119,87,0.1)',

1517 color: '#D97757',

1518 cursor: 'pointer',

1519 fontSize: 15,

1520 fontWeight: 700,

1521 display: 'flex',

1522 alignItems: 'center',

1523 justifyContent: 'center'

1524 }}>

1525 {time >= 1 ? '↺' : playing ? '⏸' : '▶'}

1526 </button>

1527 <div style={{

1528 flex: 1,

1529 height: 3,

1530 borderRadius: 2,

1531 background: 'var(--cw-track)',

1532 overflow: 'hidden'

1533 }}>

1534 <div style={{

1535 width: time * 100 + '%',

1536 height: '100%',

1537 background: '#D97757',

1538 transition: 'width 0.1s linear'

1539 }} />

1540 </div>

1541 <span style={{

1542 fontSize: 12,

1543 fontFamily: mono,

1544 color: 'var(--cw-text-faint)',

1545 minWidth: 30

1546 }}>

1547 {Math.round(time * 100)}%

1548 </span>

1549 <button onClick={toggleFullscreen} aria-label={isFullscreen ? 'Exit fullscreen' : 'Enter fullscreen'} title={isFullscreen ? 'Exit fullscreen' : 'Fullscreen'} style={{

1550 width: 28,

1551 height: 28,

1552 borderRadius: 6,

1553 border: '1px solid var(--cw-border)',

1554 background: 'var(--cw-surface)',

1555 color: 'var(--cw-text-dim)',

1556 cursor: 'pointer',

1557 fontSize: 15,

1558 flexShrink: 0,

1559 marginLeft: 4,

1560 display: 'flex',

1561 alignItems: 'center',

1562 justifyContent: 'center'

1563 }}>

1564 {isFullscreen ? '⤡' : '⛶'}

1565 </button>

1566 </div>

1567 </div>

1568 </>;

1569};

1570 

1571La finestra di contesto di Claude Code contiene tutto ciò che Claude sa della tua sessione: le tue istruzioni, i file che legge, le sue stesse risposte e i contenuti che non appaiono mai nel tuo terminale. La timeline sottostante illustra una sessione completa dall'avvio alla compattazione: cosa si carica prima che tu digiti, cosa aggiunge ogni lettura di file, regola e hook mentre Claude lavora, e come un subagent mantiene le letture di grandi dimensioni fuori dal tuo contesto. Vedi [la spiegazione scritta](#what-the-timeline-shows) per lo stesso contenuto come elenco.

1572 

1573<ContextWindow />

1574 

1575<h2 id="what-the-timeline-shows">

1576 Cosa mostra la timeline

1577</h2>

12 1578 

13La sessione illustra un flusso realistico con conteggi di token rappresentativi:1579La sessione illustra un flusso realistico con conteggi di token rappresentativi:

14 1580 


17* **Il prompt di follow-up**: un [subagent](/it/sub-agents) gestisce la ricerca nella sua propria finestra di contesto separata, quindi le letture di file di grandi dimensioni rimangono fuori dalla tua. Solo il riepilogo e un piccolo trailer di metadati tornano indietro.1583* **Il prompt di follow-up**: un [subagent](/it/sub-agents) gestisce la ricerca nella sua propria finestra di contesto separata, quindi le letture di file di grandi dimensioni rimangono fuori dalla tua. Solo il riepilogo e un piccolo trailer di metadati tornano indietro.

18* **Alla fine**: `/compact` sostituisce la conversazione con un riepilogo strutturato. La maggior parte del contenuto di avvio si ricarica automaticamente; la tabella sottostante mostra cosa accade a ogni meccanismo.1584* **Alla fine**: `/compact` sostituisce la conversazione con un riepilogo strutturato. La maggior parte del contenuto di avvio si ricarica automaticamente; la tabella sottostante mostra cosa accade a ogni meccanismo.

19 1585 

20## Cosa sopravvive alla compattazione1586<h2 id="what-survives-compaction">

1587 Cosa sopravvive alla compattazione

1588</h2>

21 1589 

22Quando una sessione lunga si compatta, Claude Code riassume la cronologia della conversazione per adattarsi alla finestra di contesto. Cosa accade alle tue istruzioni dipende da come sono state caricate:1590Quando una sessione lunga si compatta, Claude Code riassume la cronologia della conversazione per adattarsi alla finestra di contesto. Cosa accade alle tue istruzioni dipende da come sono state caricate:

23 1591 


35 1603 

36I corpi delle skill vengono reinizializzati dopo la compattazione, ma le skill di grandi dimensioni vengono troncate per adattarsi al limite per skill, e le skill invocate più vecchie vengono eliminate una volta superato il budget totale. Il troncamento mantiene l'inizio del file, quindi metti le istruzioni più importanti vicino alla parte superiore di `SKILL.md`.1604I corpi delle skill vengono reinizializzati dopo la compattazione, ma le skill di grandi dimensioni vengono troncate per adattarsi al limite per skill, e le skill invocate più vecchie vengono eliminate una volta superato il budget totale. Il troncamento mantiene l'inizio del file, quindi metti le istruzioni più importanti vicino alla parte superiore di `SKILL.md`.

37 1605 

38## Controlla la tua sessione1606<h2 id="when-your-context-fills-up">

1607 Quando la tua finestra di contesto si riempie

1608</h2>

1609 

1610Claude Code si compatta automaticamente mentre ti avvicini al limite, quindi una finestra di contesto piena non termina la tua sessione. Il passaggio automatico funziona allo stesso modo del passaggio `/compact` nella timeline. Vedi [Quando il contesto si riempie](/it/how-claude-code-works#when-context-fills-up) per quello che preserva.

1611 

1612Puoi anche agire prima che il passaggio automatico venga eseguito:

1613 

1614* **Compatta con un focus**: esegui `/compact` con istruzioni, come `/compact focus on the auth bug fix`, prima di iniziare un nuovo compito lungo. Il riepilogo mantiene quello che scegli invece di quello che il passaggio automatico indovina sia importante.

1615* **Cancella tra i compiti**: esegui `/clear` quando passi a un lavoro non correlato. La vecchia conversazione esclude i file di cui hai bisogno dopo e costa token su ogni messaggio.

1616* **Delega letture di grandi dimensioni**: invia la ricerca a un [subagent](/it/sub-agents) in modo che i contenuti del file rimangono nella sua finestra di contesto, non nella tua.

1617 

1618Se hai bisogno di una finestra più grande piuttosto che di una conversazione più piccola, Fable 5, Opus 4.6 e versioni successive, e Sonnet 4.6 supportano una finestra di contesto di 1 milione di token. Vedi [Contesto esteso](/it/model-config#extended-context) per la disponibilità per piano e come selezionare una variante di modello `[1m]`. La compattazione funziona allo stesso modo al limite più grande.

1619 

1620<h2 id="check-your-own-session">

1621 Controlla la tua sessione

1622</h2>

39 1623 

40La visualizzazione utilizza numeri rappresentativi. Per vedere il tuo utilizzo effettivo del contesto in qualsiasi momento, esegui `/context` per una suddivisione in tempo reale per categoria con suggerimenti di ottimizzazione. Esegui `/memory` per verificare quali file CLAUDE.md e memoria automatica si sono caricati all'avvio.1624La visualizzazione utilizza numeri rappresentativi. Per vedere il tuo utilizzo effettivo del contesto in qualsiasi momento, esegui `/context` per una suddivisione in tempo reale per categoria con suggerimenti di ottimizzazione. Esegui `/memory` per verificare quali file CLAUDE.md e memoria automatica si sono caricati all'avvio.

41 1625 

42## Risorse correlate1626<h2 id="related-resources">

1627 Risorse correlate

1628</h2>

43 1629 

44Per una copertura più approfondita delle funzionalità mostrate nella timeline, vedi queste pagine:1630Per una copertura più approfondita delle funzionalità mostrate nella timeline, vedi queste pagine:

45 1631 

costs.md +4 −2

Details

35 35 

36Su un piano Pro, Max, Team o Enterprise, `/usage` mostra anche una suddivisione di ciò che conta rispetto ai limiti del tuo piano. Attribuisce l'utilizzo recente a skills, subagents, plugins e singoli server MCP, ciascuno mostrato come percentuale del totale. Premi `d` o `w` per passare tra le ultime 24 ore e gli ultimi 7 giorni. Le cifre sono approssimative e calcolate dalla cronologia della sessione locale su questa macchina, quindi l'utilizzo da altri dispositivi o da claude.ai non è incluso.36Su un piano Pro, Max, Team o Enterprise, `/usage` mostra anche una suddivisione di ciò che conta rispetto ai limiti del tuo piano. Attribuisce l'utilizzo recente a skills, subagents, plugins e singoli server MCP, ciascuno mostrato come percentuale del totale. Premi `d` o `w` per passare tra le ultime 24 ore e gli ultimi 7 giorni. Le cifre sono approssimative e calcolate dalla cronologia della sessione locale su questa macchina, quindi l'utilizzo da altri dispositivi o da claude.ai non è incluso.

37 37 

38Nell'[estensione VS Code](/it/vs-code#check-account-and-usage), la stessa suddivisione appare nella finestra di dialogo Account & usage con un interruttore Day e Week. Richiede Claude Code v2.1.174 o versione successiva.

39 

38<h2 id="managing-costs-for-teams">40<h2 id="managing-costs-for-teams">

39 Gestione dei costi per i team41 Gestione dei costi per i team

40</h2>42</h2>


85* Utilizza Sonnet per i compagni di squadra. Bilancia la capacità e il costo per i compiti di coordinamento.87* Utilizza Sonnet per i compagni di squadra. Bilancia la capacità e il costo per i compiti di coordinamento.

86* Mantieni i team piccoli. Ogni compagno di squadra esegue la propria finestra di contesto, quindi l'utilizzo dei token è approssimativamente proporzionale alle dimensioni del team.88* Mantieni i team piccoli. Ogni compagno di squadra esegue la propria finestra di contesto, quindi l'utilizzo dei token è approssimativamente proporzionale alle dimensioni del team.

87* Mantieni i prompt di generazione focalizzati. I compagni di squadra caricano automaticamente CLAUDE.md, i server MCP e le skills, ma tutto nel prompt di generazione si aggiunge al loro contesto dall'inizio.89* Mantieni i prompt di generazione focalizzati. I compagni di squadra caricano automaticamente CLAUDE.md, i server MCP e le skills, ma tutto nel prompt di generazione si aggiunge al loro contesto dall'inizio.

88* Pulisci i team quando il lavoro è terminato. I compagni di squadra attivi continuano a consumare token anche se inattivi.90* Spegni i compagni di squadra quando il loro lavoro è terminato. Ogni compagno di squadra attivo continua a consumare token finché non esce o la sessione termina.

89* I team di agenti sono disabilitati per impostazione predefinita. Imposta `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` nel tuo [settings.json](/it/settings) o nell'ambiente per abilitarli. Vedi [abilita i team di agenti](/it/agent-teams#enable-agent-teams).91* I team di agenti sono disabilitati per impostazione predefinita. Imposta `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` nel tuo [settings.json](/it/settings) o nell'ambiente per abilitarli. Vedi [abilita i team di agenti](/it/agent-teams#enable-agent-teams).

90 92 

91<h2 id="reduce-token-usage">93<h2 id="reduce-token-usage">


196 Regola il pensiero esteso198 Regola il pensiero esteso

197</h3>199</h3>

198 200 

199Il pensiero esteso è abilitato per impostazione predefinita perché migliora significativamente le prestazioni su compiti complessi di pianificazione e ragionamento. I token di pensiero vengono fatturati come token di output, e il budget predefinito può essere decine di migliaia di token per richiesta a seconda del modello. Per compiti più semplici dove il ragionamento profondo non è necessario, puoi ridurre i costi abbassando il [livello di sforzo](/it/model-config#adjust-effort-level) con `/effort` o in `/model`, disabilitando il pensiero in `/config`, o abbassando il budget con `MAX_THINKING_TOKENS=8000`.201Il pensiero esteso è abilitato per impostazione predefinita perché migliora significativamente le prestazioni su compiti complessi di pianificazione e ragionamento. I token di pensiero vengono fatturati come token di output, e il budget predefinito può essere decine di migliaia di token per richiesta a seconda del modello. Per compiti più semplici dove il ragionamento profondo non è necessario, puoi ridurre i costi abbassando il [livello di sforzo](/it/model-config#adjust-effort-level) con `/effort` o in `/model`, disabilitando il pensiero in `/config`, o, su modelli con un [budget di pensiero fisso](/it/model-config#adaptive-reasoning-and-fixed-thinking-budgets), abbassando il budget con `MAX_THINKING_TOKENS=8000`. I modelli di ragionamento adattivo ignorano i budget diversi da zero, quindi utilizza i livelli di sforzo lì. La disabilitazione del pensiero non è disponibile su Fable 5, che utilizza sempre il pensiero esteso.

200 202 

201<h3 id="delegate-verbose-operations-to-subagents">203<h3 id="delegate-verbose-operations-to-subagents">

202 Delega le operazioni dettagliate ai subagent204 Delega le operazioni dettagliate ai subagent

data-usage.md +3 −3

Details

62**Utenti commerciali (Team, Enterprise e API)**:62**Utenti commerciali (Team, Enterprise e API)**:

63 63 

64* Standard: periodo di conservazione di 30 giorni64* Standard: periodo di conservazione di 30 giorni

65* [Zero data retention](/it/zero-data-retention): disponibile per Claude Code su Claude for Enterprise. ZDR è abilitato su base per organizzazione; ogni nuova organizzazione deve avere ZDR abilitato separatamente dal vostro team di account65* [Zero data retention](/it/zero-data-retention): disponibile per Claude Code su Claude for Enterprise. ZDR non è incluso nel piano Enterprise standard; viene abilitato su base per organizzazione dal vostro team di account dopo aver confermato l'idoneità

66* Caching locale: i client di Claude Code archiviano i transcript delle sessioni localmente in testo semplice sotto `~/.claude/projects/` per 30 giorni per impostazione predefinita per abilitare la ripresa della sessione. Regolate il periodo con `cleanupPeriodDays`. Consultate [application data](/it/claude-directory#application-data) per sapere cosa viene archiviato e come cancellarlo.66* Caching locale: i client di Claude Code archiviano i transcript delle sessioni localmente in testo semplice sotto `~/.claude/projects/` per 30 giorni per impostazione predefinita per abilitare la ripresa della sessione. Regolate il periodo con `cleanupPeriodDays`. Consultate [application data](/it/claude-directory#application-data) per sapere cosa viene archiviato e come cancellarlo.

67 67 

68Potete eliminare le singole sessioni di Claude Code sul web in qualsiasi momento. L'eliminazione di una sessione rimuove permanentemente i dati dell'evento della sessione. Per istruzioni su come eliminare le sessioni, consultate [Eliminare le sessioni](/it/claude-code-on-the-web#delete-sessions).68Potete eliminare le singole sessioni di Claude Code sul web in qualsiasi momento. L'eliminazione di una sessione rimuove permanentemente i dati dell'evento della sessione. Per istruzioni su come eliminare le sessioni, consultate [Eliminare le sessioni](/it/claude-code-on-the-web#delete-sessions).


83 83 

84Il diagramma sottostante mostra come Claude Code si connette ai servizi esterni durante l'installazione e il funzionamento normale. Le linee continue indicano connessioni richieste, mentre le linee tratteggiate rappresentano flussi di dati facoltativi o avviati dall'utente.84Il diagramma sottostante mostra come Claude Code si connette ai servizi esterni durante l'installazione e il funzionamento normale. Le linee continue indicano connessioni richieste, mentre le linee tratteggiate rappresentano flussi di dati facoltativi o avviati dall'utente.

85 85 

86<img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/claude-code-data-flow.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=5b1131530bdfdd415700a0cb4d4070c4" alt="Diagramma che mostra le connessioni esterne di Claude Code: install/update si connette al server di distribuzione e le richieste dell'utente si connettono ai servizi Anthropic inclusi Console auth, public-api e facoltativamente metrics, Sentry e bug reporting" width="720" height="520" data-path="images/claude-code-data-flow.svg" />86<img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/claude-code-data-flow.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=5b1131530bdfdd415700a0cb4d4070c4" alt="Diagramma che mostra le connessioni esterne di Claude Code: install/update si connette al server di distribuzione e le richieste dell'utente si connettono ai servizi Anthropic inclusi Console auth, public-api e facoltativamente metrics e Sentry. Il feedback inviato con /feedback va a Google Cloud Storage e facoltativamente crea un problema GitHub" width="720" height="520" data-path="images/claude-code-data-flow.svg" />

87 87 

88Claude Code viene eseguito localmente. Per interagire con l'LLM, Claude Code invia dati sulla rete. Questi dati includono tutti i prompt dell'utente e gli output del modello, crittografati in transito tramite TLS 1.2+. Claude Code è compatibile con la maggior parte dei VPN e dei proxy LLM più diffusi.88Claude Code viene eseguito localmente. Per interagire con l'LLM, Claude Code invia dati sulla rete. Questi dati includono tutti i prompt dell'utente e gli output del modello, crittografati in transito tramite TLS 1.2+. Claude Code è compatibile con la maggior parte dei VPN e dei proxy LLM più diffusi.

89 89 


119 119 

120Claude Code si connette dalle macchine degli utenti a Sentry per la registrazione degli errori operativi. I dati vengono crittografati in transito utilizzando TLS e a riposo utilizzando la crittografia AES a 256 bit. Scopri di più nella [documentazione sulla sicurezza di Sentry](https://sentry.io/security/). Per rinunciare alla registrazione degli errori, impostate la variabile di ambiente `DISABLE_ERROR_REPORTING`.120Claude Code si connette dalle macchine degli utenti a Sentry per la registrazione degli errori operativi. I dati vengono crittografati in transito utilizzando TLS e a riposo utilizzando la crittografia AES a 256 bit. Scopri di più nella [documentazione sulla sicurezza di Sentry](https://sentry.io/security/). Per rinunciare alla registrazione degli errori, impostate la variabile di ambiente `DISABLE_ERROR_REPORTING`.

121 121 

122Quando eseguite il comando `/feedback`, una copia della cronologia della conversazione incluso il codice viene inviata ad Anthropic. Prima di inviare, scegliete quanta cronologia includere: la sessione corrente soltanto, che è l'impostazione predefinita, oppure anche altre sessioni dello stesso progetto negli ultimi 24 ore o 7 giorni. I dati vengono crittografati in transito via TLS. Facoltativamente, viene creato un problema GitHub nel repository pubblico. Per rinunciare, impostate la variabile di ambiente `DISABLE_FEEDBACK_COMMAND` su `1`.122Quando eseguite il comando `/feedback`, una copia della cronologia della conversazione incluso il codice viene inviata ad Anthropic. Prima di inviare, scegliete quanta cronologia includere: la sessione corrente soltanto, che è l'impostazione predefinita, oppure anche altre sessioni dello stesso progetto negli ultimi 24 ore o 7 giorni. I dati vengono crittografati in transito via TLS e archiviati in Google Cloud Storage, che crittografa i dati archiviati a riposo per impostazione predefinita. Facoltativamente, viene creato un problema GitHub nel repository pubblico. Per rinunciare, impostate la variabile di ambiente `DISABLE_FEEDBACK_COMMAND` su `1`.

123 123 

124Quando utilizzate un provider di terze parti come Bedrock o Vertex, oppure non avete credenziali Anthropic configurate, `/feedback` scrive il rapporto in un archivio locale sotto `~/.claude/feedback-bundles/` invece di inviarlo ad Anthropic. I modelli di chiave API e token noti vengono oscurati prima che l'archivio venga scritto. Nulla lascia la vostra macchina finché non inviate quel file al vostro rappresentante dell'account Anthropic o lo allegate a una richiesta di supporto.124Quando utilizzate un provider di terze parti come Bedrock o Vertex, oppure non avete credenziali Anthropic configurate, `/feedback` scrive il rapporto in un archivio locale sotto `~/.claude/feedback-bundles/` invece di inviarlo ad Anthropic. I modelli di chiave API e token noti vengono oscurati prima che l'archivio venga scritto. Nulla lascia la vostra macchina finché non inviate quel file al vostro rappresentante dell'account Anthropic o lo allegate a una richiesta di supporto.

125 125 

Details

78 Prova con una configurazione pulita78 Prova con una configurazione pulita

79</h2>79</h2>

80 80 

81Se i controlli mirati non isolano la causa, o la tua configurazione è in uno stato sconosciuto, confronta con una sessione che non carica nulla dalla tua configurazione usuale. Punta [`CLAUDE_CONFIG_DIR`](/it/env-vars) a una directory vuota per bypassare tutto sotto `~/.claude`, e avvia da una directory che non ha una cartella `.claude`, `.mcp.json` o `CLAUDE.md` in modo che la configurazione del progetto sia anche saltata.81{/* min-version: 2.1.169 */}Inizia con [`claude --safe-mode`](/it/cli-reference#cli-flags), che avvia una sessione con tutte le personalizzazioni disabilitate, inclusi `CLAUDE.md`, skills, plugins, hooks, server MCP e comandi e agenti personalizzati. L'autenticazione, la selezione del modello, gli strumenti integrati e le autorizzazioni funzionano normalmente. Se il problema scompare in modalità sicura, una di quelle superfici è la causa; usa i controlli mirati sopra per trovare quale. Le impostazioni gestite distribuite dalla tua organizzazione si applicano ancora parzialmente, quindi gli hooks configurati dalla policy e la riga di stato vengono eseguiti anche in modalità sicura.

82 

83Se il problema persiste in modalità sicura, o le tue impostazioni stesse sono sospette, confronta con una sessione che non carica nulla dalla tua configurazione usuale. Punta [`CLAUDE_CONFIG_DIR`](/it/env-vars) a una directory vuota per bypassare tutto sotto `~/.claude`, e avvia da una directory che non ha una cartella `.claude`, `.mcp.json` o `CLAUDE.md` in modo che la configurazione del progetto sia anche saltata.

82 84 

83```bash theme={null}85```bash theme={null}

84cd /tmp && CLAUDE_CONFIG_DIR=/tmp/claude-clean claude86cd /tmp && CLAUDE_CONFIG_DIR=/tmp/claude-clean claude

desktop.md +30 −28

Details

67 67 

68La casella del prompt supporta due modi per portare contesto esterno:68La casella del prompt supporta due modi per portare contesto esterno:

69 69 

70* **@mention file**: digita `@` seguito da un nome di file per aggiungere un file al contesto della conversazione. Claude può quindi leggere e fare riferimento a quel file. @mention non è disponibile nelle sessioni remote.70* **@mention file**: digita `@` seguito da un nome di file per aggiungere un file al contesto della conversazione. Claude può quindi leggere e fare riferimento a quel file. @mention non è disponibile nelle sessioni cloud.

71* **Allega file**: allega immagini, PDF e altri file al tuo prompt usando il pulsante di allegato, o trascina e rilascia i file direttamente nel prompt. Questo è utile per condividere screenshot di bug, mockup di design o documenti di riferimento.71* **Allega file**: allega immagini, PDF e altri file al tuo prompt usando il pulsante di allegato, o trascina e rilascia i file direttamente nel prompt. Questo è utile per condividere screenshot di bug, mockup di design o documenti di riferimento.

72 72 

73<h3 id="choose-a-permission-mode">73<h3 id="choose-a-permission-mode">


77Le modalità di autorizzazione controllano quanta autonomia ha Claude durante una sessione: se chiede prima di modificare file, eseguire comandi o entrambi. Puoi cambiare modalità in qualsiasi momento usando il selettore di modalità accanto al pulsante di invio. Inizia con Chiedi autorizzazioni per vedere esattamente cosa fa Claude, quindi passa a Accetta automaticamente modifiche o Plan mode man mano che acquisisci familiarità.77Le modalità di autorizzazione controllano quanta autonomia ha Claude durante una sessione: se chiede prima di modificare file, eseguire comandi o entrambi. Puoi cambiare modalità in qualsiasi momento usando il selettore di modalità accanto al pulsante di invio. Inizia con Chiedi autorizzazioni per vedere esattamente cosa fa Claude, quindi passa a Accetta automaticamente modifiche o Plan mode man mano che acquisisci familiarità.

78 78 

79| Modalità | Chiave di impostazione | Comportamento |79| Modalità | Chiave di impostazione | Comportamento |

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

81| **Chiedi autorizzazioni** | `default` | Claude chiede prima di modificare file o eseguire comandi. Vedi un diff e puoi accettare o rifiutare ogni modifica. Consigliato per i nuovi utenti. |81| **Chiedi autorizzazioni** | `default` | Claude chiede prima di modificare file o eseguire comandi. Vedi un diff e puoi accettare o rifiutare ogni modifica. Consigliato per i nuovi utenti. |

82| **Accetta automaticamente modifiche** | `acceptEdits` | Claude accetta automaticamente le modifiche ai file e i comandi comuni del filesystem come `mkdir`, `touch` e `mv`, ma chiede comunque prima di eseguire altri comandi di terminale. Usa questo quando ti fidi delle modifiche ai file e vuoi un'iterazione più veloce. |82| **Accetta automaticamente modifiche** | `acceptEdits` | Claude accetta automaticamente le modifiche ai file e i comandi comuni del filesystem come `mkdir`, `touch` e `mv`, ma chiede comunque prima di eseguire altri comandi di terminale. Usa questo quando ti fidi delle modifiche ai file e vuoi un'iterazione più veloce. |

83| **Plan mode** | `plan` | Claude legge i file ed esegue comandi per esplorare, quindi propone un piano senza modificare il tuo codice sorgente. Buono per compiti complessi dove vuoi rivedere l'approccio prima. |83| **Plan mode** | `plan` | Claude legge i file ed esegue comandi per esplorare, quindi propone un piano senza modificare il tuo codice sorgente. Buono per compiti complessi dove vuoi rivedere l'approccio prima. |

84| **Auto** | `auto` | Claude esegue tutte le azioni con controlli di sicurezza in background che verificano l'allineamento con la tua richiesta. Riduce i prompt di autorizzazione mantenendo la supervisione. Abilita in Impostazioni → Claude Code. Vedi [requisiti di disponibilità](#auto-mode-availability) di seguito. |84| **Auto** | `auto` | Claude esegue tutte le azioni con controlli di sicurezza in background che verificano l'allineamento con la tua richiesta. Riduce i prompt di autorizzazione mantenendo la supervisione. Abilita in Impostazioni → Claude Code. Vedi [requisiti di disponibilità](#auto-mode-availability) di seguito. |

85| **Bypass permissions** | `bypassPermissions` | Claude viene eseguito senza alcun prompt di autorizzazione, equivalente a `--dangerously-skip-permissions` nella CLI. Abilita in Impostazioni → Claude Code sotto "Allow bypass permissions mode". Usa solo in container sandbox o VM. Gli amministratori aziendali possono disabilitare questa opzione. |85| **Bypass permissions** | `bypassPermissions` | Claude viene eseguito senza prompt di autorizzazione, tranne quelli forzati da [regole di richiesta](/it/permissions#manage-permissions) esplicite; equivalente a `--dangerously-skip-permissions` nella CLI. Abilita in Impostazioni → Claude Code sotto "Allow bypass permissions mode". Usa solo in container sandbox o VM. Gli amministratori aziendali possono disabilitare questa opzione. |

86 86 

87La modalità di autorizzazione `dontAsk` è disponibile solo nella [CLI](/it/permission-modes#allow-only-pre-approved-tools-with-dontask-mode).87La modalità di autorizzazione `dontAsk` è disponibile solo nella [CLI](/it/permission-modes#allow-only-pre-approved-tools-with-dontask-mode).

88 88 


94 Inizia compiti complessi in Plan mode in modo che Claude mappi un approccio prima di apportare modifiche. Una volta approvato il piano, passa a Accetta automaticamente modifiche o Chiedi autorizzazioni per eseguirlo. Vedi [esplora prima, poi pianifica, poi codifica](/it/best-practices#explore-first-then-plan-then-code) per ulteriori informazioni su questo flusso di lavoro.94 Inizia compiti complessi in Plan mode in modo che Claude mappi un approccio prima di apportare modifiche. Una volta approvato il piano, passa a Accetta automaticamente modifiche o Chiedi autorizzazioni per eseguirlo. Vedi [esplora prima, poi pianifica, poi codifica](/it/best-practices#explore-first-then-plan-then-code) per ulteriori informazioni su questo flusso di lavoro.

95</Tip>95</Tip>

96 96 

97Le sessioni remote supportano Accetta automaticamente modifiche e Plan mode. Chiedi autorizzazioni non è disponibile perché le sessioni remote accettano automaticamente le modifiche ai file per impostazione predefinita, e Bypass permissions non è disponibile perché l'ambiente remoto è già sandbox.97Le sessioni cloud supportano Accetta automaticamente modifiche, Plan mode e Auto mode. Accetta automaticamente modifiche corrisponde alla modalità `default`: le sessioni cloud pre-approvano le modifiche ai file, quindi il selettore mostra Accetta automaticamente modifiche invece di Chiedi autorizzazioni. Bypass permissions non è disponibile perché l'ambiente cloud è già sandbox.

98 98 

99Gli amministratori aziendali possono limitare quali modalità di autorizzazione sono disponibili. Vedi [configurazione aziendale](#enterprise-configuration) per i dettagli.99Gli amministratori aziendali possono limitare quali modalità di autorizzazione sono disponibili. Vedi [configurazione aziendale](#enterprise-configuration) per i dettagli.

100 100 


354 Guarda le attività in background354 Guarda le attività in background

355</h3>355</h3>

356 356 

357Il pannello attività mostra il lavoro in background in esecuzione all'interno della sessione corrente: subagent, comandi shell in background e flussi di lavoro dinamici. Aprilo dal menu **Views** o trascinalo nel tuo layout.357Il pannello attività mostra il lavoro in background in esecuzione all'interno della sessione corrente: subagent, comandi shell in background e [flussi di lavoro dinamici](/it/workflows). Aprilo dal menu **Views** o trascinalo nel tuo layout.

358 358 

359Fai clic su qualsiasi voce per vedere il suo output nel pannello subagent o fermarlo. Per vedere cosa stanno facendo altre sessioni, usa la [barra laterale](#work-in-parallel-with-sessions).359Fai clic su qualsiasi voce per vedere il suo output nel pannello subagent o fermarlo. Per vedere cosa stanno facendo altre sessioni, usa la [barra laterale](#work-in-parallel-with-sessions).

360 360 


403 Connetti strumenti esterni403 Connetti strumenti esterni

404</h3>404</h3>

405 405 

406Per le sessioni locali e [SSH](#ssh-sessions), fai clic sul pulsante **+** accanto alla casella del prompt e seleziona **Connectors** per aggiungere integrazioni come Google Calendar, Slack, GitHub, Linear, Notion e altri. Puoi aggiungere connettori prima o durante una sessione. Il pulsante **+** non è disponibile nelle sessioni remote, ma le [routine](/it/routines) configurano i connettori al momento della creazione della routine.406Per le sessioni locali e [SSH](#ssh-sessions), fai clic sul pulsante **+** accanto alla casella del prompt e seleziona **Connectors** per aggiungere integrazioni come Google Calendar, Slack, GitHub, Linear, Notion e altri. Puoi aggiungere connettori prima o durante una sessione. Il pulsante **+** non è disponibile nelle sessioni cloud, ma le [routine](/it/routines) configurano i connettori al momento della creazione della routine.

407 407 

408Per gestire o disconnettere i connettori, vai a Impostazioni → Connectors nell'app desktop, o seleziona **Manage connectors** dal menu Connectors nella casella del prompt.408Per gestire o disconnettere i connettori, vai a Impostazioni → Connectors nell'app desktop, o seleziona **Manage connectors** dal menu Connectors nella casella del prompt.

409 409 


425 425 

426Per le sessioni locali e [SSH](#ssh-sessions), fai clic sul pulsante **+** accanto alla casella del prompt e seleziona **Plugins** per vedere i tuoi plugin installati e i loro skills. Per aggiungere un plugin, seleziona **Add plugin** dal sottomenu per aprire il browser dei plugin, che mostra i plugin disponibili dai tuoi [marketplace](/it/plugin-marketplaces) configurati incluso il marketplace ufficiale di Anthropic. Seleziona **Manage plugins** per abilitare, disabilitare o disinstallare plugin.426Per le sessioni locali e [SSH](#ssh-sessions), fai clic sul pulsante **+** accanto alla casella del prompt e seleziona **Plugins** per vedere i tuoi plugin installati e i loro skills. Per aggiungere un plugin, seleziona **Add plugin** dal sottomenu per aprire il browser dei plugin, che mostra i plugin disponibili dai tuoi [marketplace](/it/plugin-marketplaces) configurati incluso il marketplace ufficiale di Anthropic. Seleziona **Manage plugins** per abilitare, disabilitare o disinstallare plugin.

427 427 

428I plugin possono essere limitati al tuo account utente, a un progetto specifico o solo locali. Se la tua organizzazione gestisce i plugin centralmente, quei plugin sono disponibili nelle sessioni desktop nello stesso modo in cui lo sono nella CLI. I plugin non sono disponibili per le sessioni remote. Per il riferimento completo dei plugin inclusa la creazione dei tuoi plugin, vedi [plugin](/it/plugins).428I plugin possono essere limitati al tuo account utente, a un progetto specifico o solo locali. Se la tua organizzazione gestisce i plugin centralmente, quei plugin sono disponibili nelle sessioni desktop nello stesso modo in cui lo sono nella CLI. I plugin non sono disponibili per le sessioni cloud. Per il riferimento completo dei plugin inclusa la creazione dei tuoi plugin, vedi [plugin](/it/plugins).

429 429 

430<h3 id="configure-preview-servers">430<h3 id="configure-preview-servers">

431 Configura server di anteprima431 Configura server di anteprima


487| `program` | string | Uno script da eseguire con `node`. Vedi [quando usare `program` vs `runtimeExecutable`](#when-to-use-program-vs-runtimeexecutable) |487| `program` | string | Uno script da eseguire con `node`. Vedi [quando usare `program` vs `runtimeExecutable`](#when-to-use-program-vs-runtimeexecutable) |

488| `args` | string\[] | Argomenti passati a `program`. Usato solo quando `program` è impostato |488| `args` | string\[] | Argomenti passati a `program`. Usato solo quando `program` è impostato |

489 489 

490<a id="when-to-use-program-vs-runtimeexecutable" />

491 

490<h5 id="when-to-use-program-vs-runtimeexecutable">492<h5 id="when-to-use-program-vs-runtimeexecutable">

491 When to use `program` vs `runtimeExecutable`493 When to use `program` vs `runtimeExecutable`

492</h5>494</h5>


598 600 

599Per impostare variabili di ambiente per le sessioni locali e i server di sviluppo su qualsiasi piattaforma, apri il menu a discesa dell'ambiente nella casella del prompt, passa il mouse su **Local** e fai clic sull'icona dell'ingranaggio per aprire l'editor di ambiente locale. Le variabili che salvi qui vengono archiviate crittografate sulla tua macchina e si applicano a ogni sessione locale e server di anteprima che avvii. Puoi anche aggiungere variabili alla chiave `env` nel tuo file `~/.claude/settings.json`, anche se queste raggiungono solo le sessioni Claude e non i server di sviluppo. Vedi [variabili di ambiente](/it/env-vars) per l'elenco completo delle variabili supportate.601Per impostare variabili di ambiente per le sessioni locali e i server di sviluppo su qualsiasi piattaforma, apri il menu a discesa dell'ambiente nella casella del prompt, passa il mouse su **Local** e fai clic sull'icona dell'ingranaggio per aprire l'editor di ambiente locale. Le variabili che salvi qui vengono archiviate crittografate sulla tua macchina e si applicano a ogni sessione locale e server di anteprima che avvii. Puoi anche aggiungere variabili alla chiave `env` nel tuo file `~/.claude/settings.json`, anche se queste raggiungono solo le sessioni Claude e non i server di sviluppo. Vedi [variabili di ambiente](/it/env-vars) per l'elenco completo delle variabili supportate.

600 602 

601[Extended thinking](/it/model-config#extended-thinking) è abilitato per impostazione predefinita, il che migliora le prestazioni su compiti di ragionamento complesso ma utilizza token aggiuntivi. Per disabilitare completamente il thinking, imposta `MAX_THINKING_TOKENS` a `0` nell'editor di ambiente locale. Su modelli con [ragionamento adattivo](/it/model-config#adjust-effort-level), qualsiasi altro valore `MAX_THINKING_TOKENS` viene ignorato perché il ragionamento adattivo controlla la profondità del thinking. Su Opus 4.6 e Sonnet 4.6, imposta `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` a `1` per usare un budget di thinking fisso; Opus 4.7 e versioni successive usano sempre il ragionamento adattivo e non hanno una modalità di budget fisso.603[Extended thinking](/it/model-config#extended-thinking) è abilitato per impostazione predefinita, il che migliora le prestazioni su compiti di ragionamento complesso ma utilizza token aggiuntivi. Per disabilitare il thinking, imposta `MAX_THINKING_TOKENS` a `0` nell'editor di ambiente locale; questo non ha effetto su Fable 5, che utilizza sempre extended thinking. Su [provider di terze parti](/it/third-party-integrations), `0` omette il parametro `thinking` invece, e i modelli di adaptive-reasoning potrebbero comunque pensare. Su modelli con [adaptive reasoning](/it/model-config#adjust-effort-level), qualsiasi altro valore `MAX_THINKING_TOKENS` viene ignorato perché il adaptive reasoning controlla la profondità del thinking. Su Opus 4.6 e Sonnet 4.6, imposta `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` a `1` per usare un budget di thinking fisso; Opus 4.7 e versioni successive usano sempre il adaptive reasoning e non hanno una modalità di budget fisso.

602 604 

603<h3 id="remote-sessions">605<h3 id="cloud-sessions">

604 Remote sessions606 Cloud sessions

605</h3>607</h3>

606 608 

607Le sessioni remote continuano in background anche se chiudi l'app. L'utilizzo conta verso i limiti del tuo [piano di abbonamento](/it/costs) senza costi di calcolo separati.609Le sessioni cloud continuano in background anche se chiudi l'app. L'utilizzo conta verso i limiti del tuo [piano di abbonamento](/it/costs) senza costi di calcolo separati.

608 610 

609Puoi creare ambienti cloud personalizzati con diversi livelli di accesso alla rete e variabili di ambiente. Seleziona il menu a discesa dell'ambiente quando avvii una sessione remota e scegli **Add environment**. Vedi [l'ambiente cloud](/it/claude-code-on-the-web#the-cloud-environment) per i dettagli sulla configurazione dell'accesso alla rete e delle variabili di ambiente.611Puoi creare ambienti cloud personalizzati con diversi livelli di accesso alla rete e variabili di ambiente. Seleziona il menu a discesa dell'ambiente quando avvii una sessione cloud e scegli **Add environment**. Vedi [l'ambiente cloud](/it/claude-code-on-the-web#the-cloud-environment) per i dettagli sulla configurazione dell'accesso alla rete e delle variabili di ambiente.

610 612 

611<h3 id="ssh-sessions">613<h3 id="ssh-sessions">

612 SSH sessions614 SSH sessions


710 712 

711I team IT possono gestire l'app desktop tramite MDM su macOS o criteri di gruppo su Windows. I criteri disponibili includono l'abilitazione o la disabilitazione della funzione Claude Code, il controllo degli aggiornamenti automatici e l'impostazione di un URL di distribuzione personalizzato.713I team IT possono gestire l'app desktop tramite MDM su macOS o criteri di gruppo su Windows. I criteri disponibili includono l'abilitazione o la disabilitazione della funzione Claude Code, il controllo degli aggiornamenti automatici e l'impostazione di un URL di distribuzione personalizzato.

712 714 

713* **macOS**: configura tramite il dominio di preferenza `com.anthropic.Claude` usando strumenti come Jamf o Kandji715* **macOS**: configura tramite il dominio di preferenza `com.anthropic.claudefordesktop` usando strumenti come Jamf o Kandji

714* **Windows**: configura tramite il registro in `SOFTWARE\Policies\Claude`716* **Windows**: configura tramite il registro in `SOFTWARE\Policies\Claude`

715 717 

716<h3 id="authentication-and-sso">718<h3 id="authentication-and-sso">


723 Gestione dei dati725 Gestione dei dati

724</h3>726</h3>

725 727 

726Claude Code elabora il tuo codice localmente nelle sessioni locali o sull'infrastruttura cloud di Anthropic nelle sessioni remote. Le conversazioni e il contesto del codice vengono inviati all'API di Anthropic per l'elaborazione. Vedi [gestione dei dati](/it/data-usage) per i dettagli sulla conservazione dei dati, la privacy e la conformità.728Claude Code elabora il tuo codice localmente nelle sessioni locali o sull'infrastruttura cloud di Anthropic nelle sessioni cloud. Le conversazioni e il contesto del codice vengono inviati all'API di Anthropic per l'elaborazione. Vedi [gestione dei dati](/it/data-usage) per i dettagli sulla conservazione dei dati, la privacy e la conformità.

727 729 

728<h3 id="deployment">730<h3 id="deployment">

729 Distribuzione731 Distribuzione


762| `--resume`, `--continue` | Fai clic su una sessione nella barra laterale |764| `--resume`, `--continue` | Fai clic su una sessione nella barra laterale |

763| `--permission-mode` | Selettore di modalità accanto al pulsante di invio |765| `--permission-mode` | Selettore di modalità accanto al pulsante di invio |

764| `--dangerously-skip-permissions` | Modalità Bypass permissions. Abilita in Impostazioni → Claude Code → "Allow bypass permissions mode". Gli amministratori aziendali possono disabilitare questa impostazione. |766| `--dangerously-skip-permissions` | Modalità Bypass permissions. Abilita in Impostazioni → Claude Code → "Allow bypass permissions mode". Gli amministratori aziendali possono disabilitare questa impostazione. |

765| `--add-dir` | Aggiungi più repo con il pulsante **+** nelle sessioni remote |767| `--add-dir` | Aggiungi più repo con il pulsante **+** nelle sessioni cloud |

766| `--allowedTools`, `--disallowedTools` | Nessun equivalente per sessione. Le regole di autorizzazione nei [file di impostazioni](/it/settings) si applicano ancora. |768| `--allowedTools`, `--disallowedTools` | Nessun equivalente per sessione. Le regole di autorizzazione nei [file di impostazioni](/it/settings) si applicano ancora. |

767| `--verbose` | Modalità di visualizzazione [Verbose](#switch-view-modes) nel menu a discesa della vista Transcript |769| `--verbose` | Modalità di visualizzazione [Verbose view mode](#switch-view-modes) nel menu a discesa della vista Transcript |

768| `--print`, `--output-format` | Non disponibile. Desktop è solo interattivo. |770| `--print`, `--output-format` | Non disponibile. Desktop è solo interattivo. |

769| `ANTHROPIC_MODEL` env var | Menu a discesa del modello accanto al pulsante di invio |771| `ANTHROPIC_MODEL` env var | Menu a discesa del modello accanto al pulsante di invio |

770| `MAX_THINKING_TOKENS` env var | Imposta nell'editor di ambiente locale. Vedi [configurazione dell'ambiente](#environment-configuration). |772| `MAX_THINKING_TOKENS` env var | Imposta nell'editor di ambiente locale. Vedi [configurazione dell'ambiente](#environment-configuration). |


779* I **[MCP servers](/it/mcp)** configurati in `~/.claude.json` o `.mcp.json` funzionano in entrambi781* I **[MCP servers](/it/mcp)** configurati in `~/.claude.json` o `.mcp.json` funzionano in entrambi

780* **[Hooks](/it/hooks)** e **[skills](/it/skills)** definiti nelle impostazioni si applicano a entrambi782* **[Hooks](/it/hooks)** e **[skills](/it/skills)** definiti nelle impostazioni si applicano a entrambi

781* **[Impostazioni](/it/settings)** in `~/.claude.json` e `~/.claude/settings.json` sono condivise. Le regole di autorizzazione, gli strumenti consentiti e altre impostazioni in `settings.json` si applicano alle sessioni Desktop.783* **[Impostazioni](/it/settings)** in `~/.claude.json` e `~/.claude/settings.json` sono condivise. Le regole di autorizzazione, gli strumenti consentiti e altre impostazioni in `settings.json` si applicano alle sessioni Desktop.

782* **Modelli**: Sonnet, Opus e Haiku sono disponibili in entrambi. In Desktop, seleziona il modello dal menu a discesa accanto al pulsante di invio. Puoi cambiare il modello durante una sessione dal stesso menu a discesa.784* **Modelli**: gli stessi [modelli](/it/model-config#available-models) sono disponibili in entrambi. In Desktop, seleziona il modello dal menu a discesa accanto al pulsante di invio. Puoi cambiare il modello durante una sessione dal stesso menu a discesa.

783 785 

784<Note>786<Note>

785 **MCP servers dall'app desktop chat Claude**: l'app Desktop carica i MCP servers da `claude_desktop_config.json` nelle sessioni della scheda Code, insieme ai server da `~/.claude.json` e `.mcp.json`. Un server definito in `claude_desktop_config.json` è disponibile sia nella superficie desktop chat che nella scheda Code.787 **MCP servers dall'app desktop chat Claude**: l'app Desktop carica i MCP servers da `claude_desktop_config.json` nelle sessioni della scheda Code, insieme ai server da `~/.claude.json` e `.mcp.json`. Un server definito in `claude_desktop_config.json` è disponibile sia nella superficie desktop chat che nella scheda Code.


794Questa tabella confronta le capacità principali tra CLI e Desktop. Per un elenco completo dei flag CLI, vedi il [riferimento CLI](/it/cli-reference).796Questa tabella confronta le capacità principali tra CLI e Desktop. Per un elenco completo dei flag CLI, vedi il [riferimento CLI](/it/cli-reference).

795 797 

796| Funzionalità | CLI | Desktop |798| Funzionalità | CLI | Desktop |

797| ------------------------------------------------------- | --------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |799| ------------------------------------------------------- | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

798| Modalità di autorizzazione | Tutte le modalità inclusa `dontAsk` | Chiedi autorizzazioni, Accetta automaticamente modifiche, Plan mode, Auto e Bypass permissions tramite Impostazioni |800| Modalità di autorizzazione | Tutte le modalità inclusa `dontAsk` | Chiedi autorizzazioni, Accetta automaticamente modifiche, Plan mode, Auto e Bypass permissions tramite Impostazioni |

799| `--dangerously-skip-permissions` | Flag CLI | Modalità Bypass permissions. Abilita in Impostazioni → Claude Code → "Allow bypass permissions mode" |801| `--dangerously-skip-permissions` | Flag CLI | Modalità Bypass permissions. Abilita in Impostazioni → Claude Code → "Allow bypass permissions mode" |

800| [Provider di terze parti](/it/third-party-integrations) | Bedrock, Vertex, Foundry | API di Anthropic per impostazione predefinita. Le distribuzioni aziendali possono configurare Vertex AI e provider gateway. Vedi la [guida alla configurazione aziendale](https://support.claude.com/en/articles/12622667-enterprise-configuration). |802| [Provider di terze parti](/it/third-party-integrations) | Bedrock, Vertex AI, Foundry | API di Anthropic per impostazione predefinita. Le distribuzioni aziendali possono configurare Vertex AI e provider gateway. Vedi la [guida alla configurazione aziendale](https://support.claude.com/en/articles/12622667-enterprise-configuration). Per eseguire la scheda Code su Bedrock, Vertex AI, Foundry o un gateway LLM self-hosted, vedi [Cowork on 3P research preview](https://claude.com/docs/cowork/3p/overview). |

801| [MCP servers](/it/mcp) | Configura nei file di impostazioni | UI Connectors per sessioni locali e SSH, o file di impostazioni |803| [MCP servers](/it/mcp) | Configura nei file di impostazioni | UI Connectors per sessioni locali e SSH, o file di impostazioni |

802| [Plugins](/it/plugins) | Comando `/plugin` | UI gestore plugin |804| [Plugins](/it/plugins) | Comando `/plugin` | UI gestore plugin |

803| @mention file | Basato su testo | Con autocomplete; sessioni locali e SSH solo |805| @mention file | Basato su testo | Con autocomplete; sessioni locali e SSH solo |


809| Integrazione Dispatch | Non disponibile | [Sessioni Dispatch](#sessions-from-dispatch) nella barra laterale |811| Integrazione Dispatch | Non disponibile | [Sessioni Dispatch](#sessions-from-dispatch) nella barra laterale |

810| Scripting e automazione | [`--print`](/it/cli-reference), [Agent SDK](/it/headless) | Non disponibile |812| Scripting e automazione | [`--print`](/it/cli-reference), [Agent SDK](/it/headless) | Non disponibile |

811 813 

812<h3 id="what-s-not-available-in-desktop">814<h3 id="whats-not-available-in-desktop">

813 Cosa non è disponibile in Desktop815 Cosa non è disponibile in Desktop

814</h3>816</h3>

815 817 

816Le seguenti funzionalità sono disponibili solo nella CLI o nell'estensione VS Code:818Le seguenti funzionalità sono disponibili solo nella CLI o nell'estensione VS Code, tranne dove diversamente indicato:

817 819 

818* **Provider di terze parti**: Desktop si connette all'API di Anthropic per impostazione predefinita. Le distribuzioni aziendali possono configurare Vertex AI e provider gateway tramite [impostazioni gestite](https://support.claude.com/en/articles/12622667-enterprise-configuration). Per Bedrock o Foundry, usa la [CLI](/it/quickstart).820* **Provider di terze parti**: Desktop si connette all'API di Anthropic per impostazione predefinita. Le distribuzioni aziendali possono configurare Vertex AI e provider gateway tramite [impostazioni gestite](https://support.claude.com/en/articles/12622667-enterprise-configuration). Per Bedrock o Foundry nella CLI, vedi la [guida rapida](/it/quickstart). Come eccezione alla sezione precedente, [Cowork on 3P research preview](https://claude.com/docs/cowork/3p/overview) esegue la scheda Code su Bedrock, Vertex AI, Foundry o un gateway LLM self-hosted.

819* **Linux**: l'app desktop è disponibile solo su macOS e Windows. Su Linux, usa la [CLI](/it/quickstart).821* **Linux**: l'app desktop è disponibile solo su macOS e Windows. Su Linux, usa la [CLI](/it/quickstart).

820* **Suggerimenti di codice inline**: Desktop non fornisce suggerimenti in stile autocomplete. Funziona tramite prompt conversazionali e modifiche di codice esplicite.822* **Suggerimenti di codice inline**: Desktop non fornisce suggerimenti in stile autocomplete. Funziona tramite prompt conversazionali e modifiche di codice esplicite.

821* **Team di agent**: le sessioni parallele di Claude Code che si messaggiano tra loro sono disponibili nella [CLI](/it/agent-teams), non in Desktop. Per il lavoro multi-agent all'interno di una sessione, usa i [flussi di lavoro dinamici](/it/workflows), che vengono eseguiti in Desktop.823* **Team di agent**: le sessioni parallele di Claude Code che si messaggiano tra loro sono disponibili nella [CLI](/it/agent-teams), non in Desktop. Per il lavoro multi-agent all'interno di una sessione, usa i [flussi di lavoro dinamici](/it/workflows), che vengono eseguiti in Desktop.


885 887 

886Se gli interruttori del server MCP non rispondono o i server non riescono a connettersi su Windows, controlla che il server sia configurato correttamente nelle tue impostazioni, riavvia l'app, verifica che il processo del server sia in esecuzione in Task Manager e rivedi i log del server per gli errori di connessione.888Se gli interruttori del server MCP non rispondono o i server non riescono a connettersi su Windows, controlla che il server sia configurato correttamente nelle tue impostazioni, riavvia l'app, verifica che il processo del server sia in esecuzione in Task Manager e rivedi i log del server per gli errori di connessione.

887 889 

888<h3 id="app-won-t-quit">890<h3 id="app-wont-quit">

889 App won't quit891 App won't quit

890</h3>892</h3>

891 893 


899* **PATH not updated after install**: apri una nuova finestra di terminale. Gli aggiornamenti di PATH si applicano solo alle nuove sessioni di terminale.901* **PATH not updated after install**: apri una nuova finestra di terminale. Gli aggiornamenti di PATH si applicano solo alle nuove sessioni di terminale.

900* **Concurrent installation error**: se vedi un errore su un'altra installazione in corso ma non ce n'è una, prova a eseguire il programma di installazione come Amministratore.902* **Concurrent installation error**: se vedi un errore su un'altra installazione in corso ma non ce n'è una, prova a eseguire il programma di installazione come Amministratore.

901 903 

902<h3 id="branch-doesn-t-exist-yet-when-opening-in-cli">904<h3 id="branch-doesnt-exist-yet-when-opening-in-cli">

903 "Branch doesn't exist yet" when opening in CLI905 "Branch doesn't exist yet" when opening in CLI

904</h3>906</h3>

905 907 

906Le sessioni remote possono creare rami che non esistono sulla tua macchina locale. Fai clic sul nome del ramo nella barra degli strumenti della sessione per copiarlo, quindi recuperalo localmente:908Le sessioni cloud possono creare rami che non esistono sulla tua macchina locale. Fai clic sul nome del ramo nella barra degli strumenti della sessione per copiarlo, quindi recuperalo localmente:

907 909 

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

909git fetch origin <branch-name>911git fetch origin <branch-name>


914 Still stuck?916 Still stuck?

915</h3>917</h3>

916 918 

917* Cerca o segnala un bug su [GitHub Issues](https://github.com/anthropics/claude-code/issues)919* Apri Help Get Support nell'app desktop, o visita il [centro di supporto Claude](https://support.claude.com/) direttamente

918* Visita il [centro di supporto Claude](https://support.claude.com/)920* Per i problemi che si riproducono anche nella CLI `claude` standalone, cerca o segnala un bug su [GitHub Issues](https://github.com/anthropics/claude-code/issues)

919 921 

920Quando segnali un bug, includi la versione dell'app desktop, il tuo sistema operativo, il messaggio di errore esatto e i log pertinenti. Su macOS, controlla Console.app. Su Windows, controlla Event Viewer → Windows Logs → Application.922Quando segnali un problema, includi la versione dell'app desktop, il tuo sistema operativo, il messaggio di errore esatto e i log pertinenti. Su macOS, controlla Console.app. Su Windows, controlla Event Viewer → Windows Logs → Application.

Details

66 66 

67 Puoi anche selezionare:67 Puoi anche selezionare:

68 68 

69 * **Remote**: Esegui sessioni sull'infrastruttura cloud di Anthropic che continuano anche se chiudi l'app. Le sessioni remote utilizzano la stessa infrastruttura di [Claude Code sul web](/it/claude-code-on-the-web).69 * **Remote**: Esegui sessioni sull'infrastruttura cloud di Anthropic che continuano anche se chiudi l'app. Le sessioni cloud utilizzano la stessa infrastruttura di [Claude Code sul web](/it/claude-code-on-the-web).

70 * **SSH**: Connettiti a una macchina remota tramite SSH, come i tuoi server, VM cloud o dev container. Desktop installa Claude Code sulla macchina remota automaticamente la prima volta che ti connetti.70 * **SSH**: Connettiti a una macchina remota tramite SSH, come i tuoi server, VM cloud o dev container. Desktop installa Claude Code sulla macchina remota automaticamente la prima volta che ti connetti.

71 </Step>71 </Step>

72 72 

73 <Step title="Scegli un modello">73 <Step title="Scegli un modello">

74 Seleziona un modello dal menu a discesa accanto al pulsante di invio. Consulta [modelli](/it/model-config#available-models) per un confronto tra Opus, Sonnet e Haiku. Puoi cambiare il modello in seguito dallo stesso menu a discesa.74 Seleziona un modello dal menu a discesa accanto al pulsante di invio. Consulta [modelli](/it/model-config#available-models) per un confronto dei modelli disponibili. Puoi cambiare il modello in seguito dallo stesso menu a discesa.

75 </Step>75 </Step>

76 76 

77 <Step title="Dì a Claude cosa fare">77 <Step title="Dì a Claude cosa fare">


129 129 

130Desktop esegue lo stesso motore della CLI con un'interfaccia grafica. Puoi eseguire entrambi contemporaneamente sullo stesso progetto e condividono la configurazione (file CLAUDE.md, MCP servers, hooks, skills e impostazioni). Per un confronto completo delle funzionalità, equivalenti di flag e cosa non è disponibile in Desktop, consulta [Confronto CLI](/it/desktop#coming-from-the-cli).130Desktop esegue lo stesso motore della CLI con un'interfaccia grafica. Puoi eseguire entrambi contemporaneamente sullo stesso progetto e condividono la configurazione (file CLAUDE.md, MCP servers, hooks, skills e impostazioni). Per un confronto completo delle funzionalità, equivalenti di flag e cosa non è disponibile in Desktop, consulta [Confronto CLI](/it/desktop#coming-from-the-cli).

131 131 

132<h2 id="what-s-next">132<h2 id="whats-next">

133 Cosa c'è dopo133 Cosa c'è dopo

134</h2>134</h2>

135 135 

devcontainer.md +2 −2

Details

154 154 

155Poiché il contenitore esegue Claude Code come utente non-root e confina l'esecuzione dei comandi al contenitore, puoi passare `--dangerously-skip-permissions` per l'operazione automatica. La CLI rifiuta questo flag quando lanciato come root, quindi conferma che `remoteUser` è impostato su un account non-root.155Poiché il contenitore esegue Claude Code come utente non-root e confina l'esecuzione dei comandi al contenitore, puoi passare `--dangerously-skip-permissions` per l'operazione automatica. La CLI rifiuta questo flag quando lanciato come root, quindi conferma che `remoteUser` è impostato su un account non-root.

156 156 

157Saltare i prompt di autorizzazione rimuove la tua opportunità di rivedere le chiamate degli strumenti prima che vengono eseguite. Claude può comunque modificare qualsiasi file nel workspace bind-montato, che appare direttamente sul tuo host, e raggiungere qualsiasi cosa la politica di rete del contenitore consente. Abbina questo flag alle [restrizioni di uscita di rete](#restrict-network-egress) sopra per limitare ciò che una sessione bypassata può raggiungere.157Saltare i prompt di autorizzazione rimuove la tua opportunità di rivedere le chiamate degli strumenti prima che vengano eseguite. Claude può comunque modificare qualsiasi file nel workspace bind-montato, che appare direttamente sul tuo host, e raggiungere qualsiasi cosa la politica di rete del contenitore consente. Abbina questo flag alle [restrizioni di uscita di rete](#restrict-network-egress) sopra per limitare ciò che una sessione bypassata può raggiungere.

158 158 

159Se desideri meno prompt senza disabilitare i controlli di sicurezza, considera invece la [modalità auto](/it/permission-modes#eliminate-prompts-with-auto-mode), che ha un classificatore che rivede le azioni prima che vengono eseguite. Per impedire agli ingegneri di utilizzare `--dangerously-skip-permissions` del tutto, imposta `permissions.disableBypassPermissionsMode` su `"disable"` nelle [impostazioni gestite](/it/settings#permission-settings).159Se desideri meno prompt senza disabilitare i controlli di sicurezza, considera invece la [modalità auto](/it/permission-modes#eliminate-prompts-with-auto-mode), che ha un classificatore che rivede le azioni prima che vengano eseguite. Per impedire agli ingegneri di utilizzare `--dangerously-skip-permissions` del tutto, imposta `permissions.disableBypassPermissionsMode` su `"disable"` nelle [impostazioni gestite](/it/settings#permission-settings).

160 160 

161<h2 id="try-the-reference-container">161<h2 id="try-the-reference-container">

162 Prova il contenitore di riferimento162 Prova il contenitore di riferimento

Details

169 * **Marketplaces**: aggiungete, rimuovete o aggiornate i vostri marketplace aggiunti169 * **Marketplaces**: aggiungete, rimuovete o aggiornate i vostri marketplace aggiunti

170 * **Errors**: visualizzate eventuali errori di caricamento dei plugin170 * **Errors**: visualizzate eventuali errori di caricamento dei plugin

171 171 

172 Andate alla scheda **Discover** per vedere i plugin dal marketplace che avete appena aggiunto. {/* min-version: 2.1.154 */}I plugin contrassegnati come rilevanti per la vostra directory di lavoro corrente sono fissati in alto con un'etichetta **suggested for this directory**.172 Andate alla scheda **Discover** per vedere i plugin dal marketplace che avete appena aggiunto. {/* min-version: 2.1.154 */}Quando l'amministratore ha inserito il marketplace nella lista consentita tramite l'impostazione gestita [`pluginSuggestionMarketplaces`](/it/settings#available-settings), i plugin contrassegnati come rilevanti per la vostra directory di lavoro corrente sono fissati in alto con un'etichetta **suggested for this directory**.

173 </Step>173 </Step>

174 174 

175 <Step title="Installare un plugin">175 <Step title="Installare un plugin">


328* digitare per filtrare per nome o descrizione del plugin328* digitare per filtrare per nome o descrizione del plugin

329* premere Enter per aprire la vista dettagli di un plugin e abilitare, disabilitare o disinstallarlo329* premere Enter per aprire la vista dettagli di un plugin e abilitare, disabilitare o disinstallarlo

330 330 

331La vista dettagli mostra i componenti che il plugin contribuisce: comandi, skills, agenti, hooks, server MCP e server LSP. Lo stesso inventario è disponibile dalla riga di comando con `claude plugin details`.

332 

331Quando installate un plugin che dichiara dipendenze, l'output dell'installazione elenca quali dipendenze sono state installate automaticamente insieme ad esso.333Quando installate un plugin che dichiara dipendenze, l'output dell'installazione elenca quali dipendenze sono state installate automaticamente insieme ad esso.

332 334 

333Potete anche gestire i plugin con comandi diretti.335Potete anche gestire i plugin con comandi diretti.

334 336 

337Elencate i plugin installati senza aprire il menu:

338 

339```shell theme={null}

340/plugin list

341```

342 

343Passate `--enabled` o `--disabled` per mostrare solo i plugin in quello stato.

344 

335Disabilitate un plugin senza disinstallarlo:345Disabilitate un plugin senza disinstallarlo:

336 346 

337```shell theme={null}347```shell theme={null}


367/reload-plugins377/reload-plugins

368```378```

369 379 

370Claude Code ricarica tutti i plugin attivi e mostra i conteggi per i plugin, le skills, gli agenti, gli hook, i server MCP dei plugin e i server LSP dei plugin.380Claude Code ricarica tutti i plugin attivi e mostra i conteggi per i plugin, le skills, gli agenti, gli hooks, i server MCP dei plugin e i server LSP dei plugin.

371 381 

372Il ricaricamento ha un costo in token sulla richiesta successiva: i componenti appena caricati si annunciano nel contenuto aggiunto alla conversazione, mentre la cronologia esistente continua a leggere dalla cache del prompt. Un plugin che fornisce server MCP costa di più quando i suoi strumenti non sono differiti da [ricerca degli strumenti MCP](/it/mcp#scale-with-mcp-tool-search): il cambiamento invalida la cache e la richiesta successiva rilegge l'intera conversazione. Consultate [abilitazione o disabilitazione di un plugin](/it/prompt-caching#enabling-or-disabling-a-plugin) per i dettagli.382Il ricaricamento ha un costo in token sulla richiesta successiva: i componenti appena caricati si annunciano nel contenuto aggiunto alla conversazione, mentre la cronologia esistente continua a leggere dalla cache del prompt. Un plugin che fornisce server MCP costa di più quando i suoi strumenti non sono differiti da [ricerca degli strumenti MCP](/it/mcp#scale-with-mcp-tool-search): il cambiamento invalida la cache e la richiesta successiva rilegge l'intera conversazione. {/* min-version: 2.1.163 */}In quel caso `/reload-plugins` mostra un avviso e non applica il ricaricamento; passate `--force` per applicarlo comunque. Consultate [abilitazione o disabilitazione di un plugin](/it/prompt-caching#enabling-or-disabling-a-plugin) per i dettagli.

373 383 

374<h2 id="manage-marketplaces">384<h2 id="manage-marketplaces">

375 Gestire i marketplace385 Gestire i marketplace

env-vars.md +37 −22

Details

73Il file che scegliete controlla a chi si applicano le variabili:73Il file che scegliete controlla a chi si applicano le variabili:

74 74 

75| File | Si applica a |75| File | Si applica a |

76| :---------------------------- | :----------------------------------------------------------------------------------- |76| :---------------------------- | :------------------------------------------------------------------------------------- |

77| `~/.claude/settings.json` | Voi, in ogni progetto |77| `~/.claude/settings.json` | Voi, in ogni progetto |

78| `.claude/settings.json` | Tutti coloro che lavorano nel progetto, archiviato nel controllo del codice sorgente |78| `.claude/settings.json` | Tutti coloro che lavorano nel progetto, archiviato nel controllo del codice sorgente |

79| `.claude/settings.local.json` | Voi, solo in questo progetto, non archiviato |79| `.claude/settings.local.json` | Voi, solo in questo progetto (aggiungete al vostro gitignore se lo create manualmente) |

80| Impostazioni gestite | Tutti nella vostra organizzazione, distribuiti da un amministratore |80| Impostazioni gestite | Tutti nella vostra organizzazione, distribuiti da un amministratore |

81 81 

82Vedi [File di impostazioni](/it/settings#settings-files) per dove si trova ogni file e [Precedenza delle impostazioni](/it/settings#settings-precedence) per come si combinano quando più di uno imposta la stessa variabile.82Vedi [File di impostazioni](/it/settings#settings-files) per dove si trova ogni file e [Precedenza delle impostazioni](/it/settings#settings-precedence) per come si combinano quando più di uno imposta la stessa variabile.


96</h2>96</h2>

97 97 

98| Variabile | Scopo |98| Variabile | Scopo |

99| :------------------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |99| :------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

100| `ANTHROPIC_API_KEY` | Chiave API inviata come intestazione `X-Api-Key`. Quando impostata, questa chiave viene utilizzata al posto del vostro abbonamento Claude Pro, Max, Team o Enterprise anche se siete connessi. In modalità non interattiva (`-p`), la chiave viene sempre utilizzata quando presente. In modalità interattiva, vi viene chiesto di approvare la chiave una volta prima che sostituisca il vostro abbonamento. Per utilizzare il vostro abbonamento, eseguite `unset ANTHROPIC_API_KEY` |100| `ANTHROPIC_API_KEY` | Chiave API inviata come intestazione `X-Api-Key`. Quando impostata, questa chiave viene utilizzata al posto del vostro abbonamento Claude Pro, Max, Team o Enterprise anche se siete connessi. In modalità non interattiva (`-p`), la chiave viene sempre utilizzata quando presente. In modalità interattiva, vi viene chiesto di approvare la chiave una volta prima che sostituisca il vostro abbonamento. Per utilizzare il vostro abbonamento, eseguite `unset ANTHROPIC_API_KEY` |

101| `ANTHROPIC_AUTH_TOKEN` | Valore personalizzato per l'intestazione `Authorization` (il valore che impostate qui sarà preceduto da `Bearer `) |101| `ANTHROPIC_AUTH_TOKEN` | Valore personalizzato per l'intestazione `Authorization` (il valore che impostate qui sarà preceduto da `Bearer `) |

102| `ANTHROPIC_AWS_API_KEY` | Chiave API dell'area di lavoro per [Claude Platform on AWS](/it/claude-platform-on-aws), generata nella Console AWS. Inviata come `x-api-key` e ha la precedenza su AWS SigV4 |102| `ANTHROPIC_AWS_API_KEY` | Chiave API dell'area di lavoro per [Claude Platform on AWS](/it/claude-platform-on-aws), generata nella Console AWS. Inviata come `x-api-key` e ha la precedenza su AWS SigV4 |


112| `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` | Descrizione di visualizzazione per la voce del modello personalizzato nel selettore `/model`. Per impostazione predefinita, `Custom model (<model-id>)` quando non impostato |112| `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` | Descrizione di visualizzazione per la voce del modello personalizzato nel selettore `/model`. Per impostazione predefinita, `Custom model (<model-id>)` quando non impostato |

113| `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` | Nome di visualizzazione per la voce del modello personalizzato nel selettore `/model`. Per impostazione predefinita, l'ID del modello quando non impostato |113| `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` | Nome di visualizzazione per la voce del modello personalizzato nel selettore `/model`. Per impostazione predefinita, l'ID del modello quando non impostato |

114| `ANTHROPIC_CUSTOM_MODEL_OPTION_SUPPORTED_CAPABILITIES` | Vedi [Configurazione del modello](/it/model-config#customize-pinned-model-display-and-capabilities) |114| `ANTHROPIC_CUSTOM_MODEL_OPTION_SUPPORTED_CAPABILITIES` | Vedi [Configurazione del modello](/it/model-config#customize-pinned-model-display-and-capabilities) |

115| `ANTHROPIC_DEFAULT_FABLE_MODEL` | Vedi [Configurazione del modello](/it/model-config#environment-variables) |

116| `ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION` | Vedi [Configurazione del modello](/it/model-config#customize-pinned-model-display-and-capabilities) |

117| `ANTHROPIC_DEFAULT_FABLE_MODEL_NAME` | Vedi [Configurazione del modello](/it/model-config#customize-pinned-model-display-and-capabilities) |

118| `ANTHROPIC_DEFAULT_FABLE_MODEL_SUPPORTED_CAPABILITIES` | Vedi [Configurazione del modello](/it/model-config#customize-pinned-model-display-and-capabilities) |

115| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | Vedi [Configurazione del modello](/it/model-config#environment-variables) |119| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | Vedi [Configurazione del modello](/it/model-config#environment-variables) |

116| `ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION` | Vedi [Configurazione del modello](/it/model-config#customize-pinned-model-display-and-capabilities) |120| `ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION` | Vedi [Configurazione del modello](/it/model-config#customize-pinned-model-display-and-capabilities) |

117| `ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME` | Vedi [Configurazione del modello](/it/model-config#customize-pinned-model-display-and-capabilities) |121| `ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME` | Vedi [Configurazione del modello](/it/model-config#customize-pinned-model-display-and-capabilities) |


133| `ANTHROPIC_VERTEX_BASE_URL` | Sovrascrivi l'URL dell'endpoint Vertex AI. Utilizza per endpoint Vertex personalizzati o quando instrada attraverso un [gateway LLM](/it/llm-gateway). Vedi [Google Vertex AI](/it/google-vertex-ai) |137| `ANTHROPIC_VERTEX_BASE_URL` | Sovrascrivi l'URL dell'endpoint Vertex AI. Utilizza per endpoint Vertex personalizzati o quando instrada attraverso un [gateway LLM](/it/llm-gateway). Vedi [Google Vertex AI](/it/google-vertex-ai) |

134| `ANTHROPIC_VERTEX_PROJECT_ID` | ID progetto GCP per le richieste Vertex AI. Sovrascritto da `GCLOUD_PROJECT`, `GOOGLE_CLOUD_PROJECT` o dal progetto nel vostro file di credenziali `GOOGLE_APPLICATION_CREDENTIALS`. Vedi [Google Vertex AI](/it/google-vertex-ai) |138| `ANTHROPIC_VERTEX_PROJECT_ID` | ID progetto GCP per le richieste Vertex AI. Sovrascritto da `GCLOUD_PROJECT`, `GOOGLE_CLOUD_PROJECT` o dal progetto nel vostro file di credenziali `GOOGLE_APPLICATION_CREDENTIALS`. Vedi [Google Vertex AI](/it/google-vertex-ai) |

135| `ANTHROPIC_WORKSPACE_ID` | ID area di lavoro per la [federazione dell'identità del carico di lavoro](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Impostate questo quando la vostra regola di federazione è limitata a più di un'area di lavoro in modo che lo scambio di token sappia quale area di lavoro indirizzare |139| `ANTHROPIC_WORKSPACE_ID` | ID area di lavoro per la [federazione dell'identità del carico di lavoro](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Impostate questo quando la vostra regola di federazione è limitata a più di un'area di lavoro in modo che lo scambio di token sappia quale area di lavoro indirizzare |

140| `API_FORCE_IDLE_TIMEOUT` | {/* min-version: 2.1.169 */}Sovrascrivi il timeout di inattività di 5 minuti che interrompe una risposta del modello di streaming quando nessun byte arriva. Imposta su `0` per disabilitare il timeout, ad esempio quando un [gateway](/it/llm-gateway) lento o un modello locale pausa più di 5 minuti tra i chunk. Imposta su `1` per mantenere il timeout su ogni provider. Se non impostato, il timeout è inattivo su connessioni API Anthropic dirette e [Claude Platform on AWS](/it/claude-platform-on-aws), dove il watchdog di stream a livello di byte di Claude Code viene eseguito, ed è attivo su ogni altro provider, inclusi [Vertex AI](/it/google-vertex-ai), [Foundry](/it/microsoft-foundry), [Mantle](/it/amazon-bedrock#use-the-mantle-endpoint), [Bedrock](/it/amazon-bedrock) e connessioni gateway, quindi uno stream bloccato si interrompe invece di bloccarsi. A partire da v2.1.169 |

136| `API_TIMEOUT_MS` | Timeout per le richieste API in millisecondi (predefinito: 600000, o 10 minuti; massimo: 2147483647). Aumentate questo valore quando le richieste scadono su reti lente o quando instradate attraverso un proxy. I valori superiori al massimo causano un overflow del timer sottostante e causano il fallimento immediato delle richieste |141| `API_TIMEOUT_MS` | Timeout per le richieste API in millisecondi (predefinito: 600000, o 10 minuti; massimo: 2147483647). Aumentate questo valore quando le richieste scadono su reti lente o quando instradate attraverso un proxy. I valori superiori al massimo causano un overflow del timer sottostante e causano il fallimento immediato delle richieste |

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

138| `BASH_DEFAULT_TIMEOUT_MS` | Timeout predefinito per i comandi bash a lunga esecuzione (predefinito: 120000, o 2 minuti) |143| `BASH_DEFAULT_TIMEOUT_MS` | Timeout predefinito per i comandi bash a lunga esecuzione (predefinito: 120000, o 2 minuti) |

139| `BASH_MAX_OUTPUT_LENGTH` | Numero massimo di caratteri negli output bash prima che l'output completo venga salvato in un file e Claude riceva il percorso più un'anteprima breve. Vedi [Comportamento dello strumento Bash](/it/tools-reference#bash-tool-behavior) |144| `BASH_MAX_OUTPUT_LENGTH` | Numero massimo di caratteri negli output bash prima che l'output completo venga salvato in un file e Claude riceva il percorso più un'anteprima breve. Vedi [Comportamento dello strumento Bash](/it/tools-reference#bash-tool-behavior) |

140| `BASH_MAX_TIMEOUT_MS` | Timeout massimo che il modello può impostare per i comandi bash a lunga esecuzione (predefinito: 600000, o 10 minuti) |145| `BASH_MAX_TIMEOUT_MS` | Timeout massimo che il modello può impostare per i comandi bash a lunga esecuzione (predefinito: 600000, o 10 minuti) |

141| `CCR_FORCE_BUNDLE` | Imposta su `1` per forzare [`claude --remote`](/it/claude-code-on-the-web#send-local-repositories-without-github) a raggruppare e caricare il vostro repository locale anche quando l'accesso a GitHub è disponibile |146| `CCR_FORCE_BUNDLE` | Imposta su `1` per forzare [`claude --remote`](/it/claude-code-on-the-web#send-local-repositories-without-github) a raggruppare e caricare il vostro repository locale anche quando l'accesso a GitHub è disponibile |

142| `CLAUDECODE` | Imposta su `1` negli ambienti shell che Claude Code genera (strumento Bash, sessioni tmux, comandi [hook](/it/hooks), comandi della [linea di stato](/it/statusline), sottoprocessi del server MCP [stdio](/it/mcp)). Utilizza per rilevare quando uno script è in esecuzione all'interno di un sottoprocesso generato da Claude Code |147| `CLAUDECODE` | Imposta su `1` negli ambienti shell che Claude Code genera (strumento Bash, sessioni tmux, comandi [hook](/it/hooks), comandi della [linea di stato](/it/statusline), sottoprocessi del server MCP [stdio](/it/mcp)). Utilizza per rilevare quando uno script è in esecuzione all'interno di un sottoprocesso generato da Claude Code. Per verificare se il processo corrente è stato generato direttamente da una chiamata di strumento o hook, piuttosto che all'interno di un server MCP stdio che Claude Code ha avviato, utilizzate `CLAUDE_CODE_CHILD_SESSION` |

143| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | Imposta su `1` per disabilitare tutti i tipi di [subagent](/it/sub-agents) integrati come Explore e Plan. Si applica solo in modalità non interattiva (il flag `-p`). Utile per gli utenti SDK che desiderano una lavagna pulita |148| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | Imposta su `1` per disabilitare tutti i tipi di [subagent](/it/sub-agents) integrati come Explore e Plan. Si applica solo in modalità non interattiva (il flag `-p`). Utile per gli utenti SDK che desiderano una lavagna pulita |

144| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | Imposta su `1` per saltare il prefisso `mcp__<server>__` sui nomi degli strumenti dai server MCP creati da SDK. Gli strumenti utilizzano i loro nomi originali. Solo utilizzo SDK |149| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | Imposta su `1` per saltare il prefisso `mcp__<server>__` sui nomi degli strumenti dai server MCP creati da SDK. Gli strumenti utilizzano i loro nomi originali. Solo utilizzo SDK |

145| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Timeout di stallo in millisecondi per i subagent in background. Predefinito `600000` (10 minuti). Il timer si ripristina su ogni evento di progresso dello streaming; se nessun progresso arriva entro la finestra, il subagent viene interrotto e l'attività viene contrassegnata come non riuscita, mostrando qualsiasi risultato parziale al genitore |150| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Timeout di stallo in millisecondi per i subagent in background. Predefinito `600000` (10 minuti). Il timer si ripristina su ogni evento di progresso dello streaming; se nessun progresso arriva entro la finestra, il subagent viene interrotto e l'attività viene contrassegnata come non riuscita, mostrando qualsiasi risultato parziale al genitore |

146| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Imposta la percentuale della capacità del contesto (1-100) a cui viene attivata la compattazione automatica. Per impostazione predefinita, la compattazione automatica si attiva a circa il 95% della capacità. Utilizzate valori inferiori come `50` per compattare prima. I valori superiori alla soglia predefinita non hanno effetto. Si applica sia alle conversazioni principali che ai subagent. Questa percentuale si allinea con il campo `context_window.used_percentage` disponibile nella [linea di stato](/it/statusline) |151| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Imposta la percentuale (1-100) della finestra di compattazione automatica a cui viene attivata la compattazione automatica. Utilizzate valori inferiori come `50` per compattare prima. Questa variabile causa solo una compattazione più precoce quando Claude Code compatta in modo proattivo: quando `CLAUDE_CODE_AUTO_COMPACT_WINDOW` è impostato, nelle [sessioni cloud](/it/claude-code-on-the-web), nelle sessioni [Remote Control](/it/remote-control) e su Sonnet 4.6 e Opus 4.6 senza [contesto esteso](/it/model-config#extended-context), che compattano al limite di 200K per impostazione predefinita. In altri casi, come una sessione locale su Opus 4.8 o qualsiasi modello con contesto esteso, la compattazione automatica si attiva quando la conversazione raggiunge il limite del contesto del modello. L'override può solo abbassare la soglia, quindi i valori superiori al valore predefinito non hanno effetto. Si applica sia alle conversazioni principali che ai subagent |

147| `CLAUDE_AUTO_BACKGROUND_TASKS` | Imposta su `1` per forzare l'abilitazione dello sfondo automatico delle attività di agenti a lunga esecuzione. Quando abilitato, i subagent vengono spostati in background dopo l'esecuzione per circa due minuti |152| `CLAUDE_AUTO_BACKGROUND_TASKS` | Imposta su `1` per forzare l'abilitazione dello sfondo automatico delle attività di agenti a lunga esecuzione. Quando abilitato, i subagent vengono spostati in background dopo l'esecuzione per circa due minuti |

148| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | Ritorna alla directory di lavoro originale dopo ogni comando Bash o PowerShell nella sessione principale |153| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | Ritorna alla directory di lavoro originale dopo ogni comando Bash o PowerShell nella sessione principale |

149| `CLAUDE_CODE_ACCESSIBILITY` | Imposta su `1` per mantenere visibile il cursore del terminale nativo e disabilitare l'indicatore del cursore con testo invertito. Consente ai magnifier dello schermo come macOS Zoom di tracciare la posizione del cursore |154| `CLAUDE_CODE_ACCESSIBILITY` | Imposta su `1` per mantenere visibile il cursore del terminale nativo e disabilitare l'indicatore del cursore con testo invertito. Consente ai magnifier dello schermo come macOS Zoom di tracciare la posizione del cursore |

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

151| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | Imposta su `1` per ridisegnare l'intero schermo su ogni frame nel [rendering a schermo intero](/it/fullscreen) invece di inviare aggiornamenti incrementali. Utilizza questo se la modalità a schermo intero mostra frammenti di testo stantii o mal posizionati. Claude Code abilita questo automaticamente per le sessioni in background e la [visualizzazione degli agenti](/it/agent-view) su Windows |156| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | Imposta su `1` per ridisegnare l'intero schermo su ogni frame nel [rendering a schermo intero](/it/fullscreen) invece di inviare aggiornamenti incrementali. Utilizza questo se la modalità a schermo intero mostra frammenti di testo stantii o mal posizionati. Claude Code abilita questo automaticamente per le sessioni in background e la [visualizzazione degli agenti](/it/agent-view) su Windows |

157| `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` | Imposta su `1` per inviare il parametro [effort](/it/model-config#adjust-effort-level) con ogni richiesta, anche quando Claude Code non riconosce l'ID del modello come effort-capable. Utilizza questo quando instrada attraverso un [gateway LLM](/it/llm-gateway) o provider di terze parti che serve modelli con identificatori personalizzati. I modelli che rifiutano il parametro effort all'API, inclusi i modelli Claude 3, Sonnet 4.0 e 4.5, Opus 4.0 e 4.1 e Haiku 4.5, sono comunque esclusi in modo che le richieste non falliscano |

152| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | Intervallo in millisecondi a cui le credenziali devono essere aggiornate (quando si utilizza [`apiKeyHelper`](/it/settings#available-settings)) |158| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | Intervallo in millisecondi a cui le credenziali devono essere aggiornate (quando si utilizza [`apiKeyHelper`](/it/settings#available-settings)) |

153| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Imposta su `0` per omettere il blocco di attribuzione (versione client e impronta digitale del prompt) dall'inizio del prompt di sistema. Disabilitarlo migliora i tassi di hit della cache dei prompt quando si instrada attraverso un [gateway LLM](/it/llm-gateway). Il caching dell'API Anthropic non è interessato |159| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Imposta su `0` per omettere il blocco di attribuzione (versione client e impronta digitale del prompt) dall'inizio del prompt di sistema. Disabilitarlo migliora i tassi di hit della cache dei prompt quando si instrada attraverso un [gateway LLM](/it/llm-gateway). Il caching dell'API Anthropic non è interessato |

154| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Imposta la capacità del contesto in token utilizzata per i calcoli di compattazione automatica. Per impostazione predefinita, la finestra del contesto del modello: 200K per i modelli standard o 1M per i modelli con [contesto esteso](/it/model-config#extended-context). Utilizzate un valore inferiore come `500000` su un modello 1M per trattare la finestra come 500K ai fini della compattazione. Il valore è limitato alla finestra del contesto effettiva del modello. `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` viene applicato come percentuale di questo valore. L'impostazione di questa variabile disaccoppia la soglia di compattazione dalla `used_percentage` della linea di stato, che utilizza sempre la finestra del contesto completa del modello |160| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Imposta la capacità del contesto in token utilizzata per i calcoli di compattazione automatica. Per impostazione predefinita, la finestra del contesto del modello: 200K per i modelli standard o 1M per i modelli con [contesto esteso](/it/model-config#extended-context). Utilizzate un valore inferiore come `500000` su un modello 1M per trattare la finestra come 500K ai fini della compattazione. Il valore è limitato alla finestra del contesto effettiva del modello. `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` viene applicato come percentuale di questo valore. L'impostazione di questa variabile disaccoppia la soglia di compattazione dalla `used_percentage` della linea di stato, che utilizza sempre la finestra del contesto completa del modello |

155| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Sovrascrivi la [connessione IDE](/it/vs-code) automatica. Per impostazione predefinita, Claude Code si connette automaticamente quando avviato all'interno del terminale integrato di un IDE supportato. Imposta su `false` per impedire questo. Imposta su `true` per forzare un tentativo di connessione quando l'auto-rilevamento fallisce, ad esempio quando tmux oscura il terminale padre. Ha la precedenza sull'impostazione globale [`autoConnectIde`](/it/settings#global-config-settings) |161| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Sovrascrivi la [connessione IDE](/it/vs-code) automatica. Per impostazione predefinita, Claude Code si connette automaticamente quando avviato all'interno del terminale integrato di un IDE supportato. Imposta su `false` per impedire questo. Imposta su `true` per forzare un tentativo di connessione quando l'auto-rilevamento fallisce, ad esempio quando tmux oscura il terminale padre. Ha la precedenza sull'impostazione globale [`autoConnectIde`](/it/settings#global-config-settings) |

156| `CLAUDE_CODE_CERT_STORE` | Elenco separato da virgole di fonti di certificati CA per le connessioni TLS. `bundled` è il set Mozilla CA fornito con Claude Code. `system` è l'archivio di fiducia del sistema operativo. Per impostazione predefinita è `bundled,system` |162| `CLAUDE_CODE_CERT_STORE` | Elenco separato da virgole di fonti di certificati CA per le connessioni TLS. `bundled` è il set Mozilla CA fornito con Claude Code. `system` è l'archivio di fiducia del sistema operativo. Per impostazione predefinita è `bundled,system` |

163| `CLAUDE_CODE_CHILD_SESSION` | {/* min-version: 2.1.172 */}Imposta su `1` nei sottoprocessi che Claude Code genera tramite gli strumenti Bash, PowerShell e Monitor, i comandi [hook](/it/hooks) e i comandi della [linea di stato](/it/statusline). Non impostato per i sottoprocessi del server MCP [stdio](/it/mcp), che sono di lunga durata e sopravvivono alla sessione che li ha generati. A differenza di `CLAUDECODE`, questo viene impostato solo da Claude Code stesso quando avvia un sottoprocesso e non dalle estensioni IDE, quindi distingue in modo affidabile una sessione annidata da un `claude` di livello superiore avviato in un terminale integrato IDE. Una TUI `claude` interattiva annidata avviata in questo modo viene automaticamente esclusa da `--resume`, `--continue`, dalla cronologia della freccia su e dall'elenco `claude agents`. Le sessioni non interattive `claude -p` persistono comunque. Impostare `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1` per sostituire questa esclusione. Richiede Claude Code v2.1.172 o successivo |

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

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

159| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Passphrase per CLAUDE\_CODE\_CLIENT\_KEY crittografato (facoltativo) |166| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Passphrase per CLAUDE\_CODE\_CLIENT\_KEY crittografato (facoltativo) |

160| `CLAUDE_CODE_DEBUG_LOGS_DIR` | Sovrascrivi il percorso del file di log di debug. Nonostante il nome, questo è un percorso di file, non una directory. Richiede che la modalità debug sia abilitata separatamente tramite `--debug`, `/debug` o la variabile d'ambiente `DEBUG`: l'impostazione di questa variabile da sola non abilita la registrazione. Il flag [`--debug-file`](/it/cli-reference#cli-flags) fa entrambi contemporaneamente. Per impostazione predefinita `~/.claude/debug/<session-id>.txt` |167| `CLAUDE_CODE_DEBUG_LOGS_DIR` | Sovrascrivi il percorso del file di log di debug. Nonostante il nome, questo è un percorso di file, non una directory. Richiede che la modalità debug sia abilitata separatamente tramite `--debug`, `/debug` o la variabile d'ambiente `DEBUG`: l'impostazione di questa variabile da sola non abilita la registrazione. Il flag [`--debug-file`](/it/cli-reference#cli-flags) fa entrambi contemporaneamente. Per impostazione predefinita `~/.claude/debug/<session-id>.txt` |

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

162| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Imposta su `1` per disabilitare il supporto della [finestra del contesto 1M](/it/model-config#extended-context). Se impostato, le varianti del modello 1M non sono disponibili nel selettore di modelli. Utile per ambienti aziendali con requisiti di conformità |169| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Imposta su `1` per disabilitare il supporto della [finestra del contesto 1M](/it/model-config#extended-context). Se impostato, le varianti del modello 1M non sono disponibili nel selettore di modelli. Utile per ambienti aziendali con requisiti di conformità |

163| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Imposta su `1` per disabilitare il [ragionamento adattivo](/it/model-config#adjust-effort-level) su Opus 4.6 e Sonnet 4.6 e tornare al budget di thinking fisso controllato da `MAX_THINKING_TOKENS`. {/* min-version: 2.1.111 */}Non ha effetto su Opus 4.7 e versioni successive, che utilizzano sempre il ragionamento adattivo |170| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Imposta su `1` per disabilitare il [ragionamento adattivo](/it/model-config#adjust-effort-level) su Opus 4.6 e Sonnet 4.6 e tornare al budget di thinking fisso controllato da `MAX_THINKING_TOKENS`. {/* min-version: 2.1.111 */}Da v2.1.111, non ha effetto su Fable 5, o su Opus 4.7 e versioni successive, che utilizzano sempre il ragionamento adattivo |

171| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | {/* min-version: 2.1.98 */}Imposta su `1` per disabilitare lo [strumento advisor](/it/advisor). Il comando `/advisor` e il flag `--advisor` diventano non disponibili e qualsiasi `advisorModel` configurato viene ignorato. Richiede Claude Code v2.1.98 o successivo |

164| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | Imposta su `1` per disattivare gli [agenti in background e la visualizzazione degli agenti](/it/agent-view): `claude agents`, `--bg`, `/background` e il supervisore su richiesta. Equivalente all'impostazione [`disableAgentView`](/it/settings#available-settings) |172| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | Imposta su `1` per disattivare gli [agenti in background e la visualizzazione degli agenti](/it/agent-view): `claude agents`, `--bg`, `/background` e il supervisore su richiesta. Equivalente all'impostazione [`disableAgentView`](/it/settings#available-settings) |

165| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Imposta su `1` per disabilitare il [rendering a schermo intero](/it/fullscreen) e utilizzare il renderer della schermata principale classica. La conversazione rimane nello scrollback nativo del vostro terminale in modo che `Cmd+f` e la modalità di copia di tmux funzionino come al solito. Ha la precedenza su `CLAUDE_CODE_NO_FLICKER` e sull'impostazione [`tui`](/it/settings#available-settings). Potete anche passare con `/tui default`. Non si applica alle sessioni in background aperte dalla [visualizzazione degli agenti](/it/agent-view), che utilizzano sempre il rendering a schermo intero |173| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Imposta su `1` per disabilitare il [rendering a schermo intero](/it/fullscreen) e utilizzare il renderer della schermata principale classica. La conversazione rimane nello scrollback nativo del vostro terminale in modo che `Cmd+f` e la modalità di copia di tmux funzionino come al solito. Ha la precedenza su `CLAUDE_CODE_NO_FLICKER` e sull'impostazione [`tui`](/it/settings#available-settings). Potete anche passare con `/tui default`. Non si applica alle sessioni in background aperte dalla [visualizzazione degli agenti](/it/agent-view), che utilizzano sempre il rendering a schermo intero |

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

167| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Imposta su `1` per disabilitare la [memoria automatica](/it/memory#auto-memory). Imposta su `0` per forzare la memoria automatica anche quando la modalità [`--bare`](/it/headless#start-faster-with-bare-mode) o [`autoMemoryEnabled: false`](/it/settings#available-settings) altrimenti la disabiliterebbe. Quando disabilitato, Claude non crea o carica i file di memoria automatica |175| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Imposta su `1` per disabilitare la [memoria automatica](/it/memory#auto-memory). Imposta su `0` per forzare la memoria automatica anche quando la modalità `--bare` o [`autoMemoryEnabled: false`](/it/settings#available-settings) altrimenti la disabiliterebbe. Quando disabilitato, Claude non crea o carica i file di memoria automatica |

168| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Imposta su `1` per disabilitare tutta la funzionalità di attività in background, incluso il parametro `run_in_background` su strumenti Bash e subagent, auto-backgrounding e la scorciatoia Ctrl+B |176| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Imposta su `1` per disabilitare tutta la funzionalità di attività in background, incluso il parametro `run_in_background` su strumenti Bash e subagent, auto-backgrounding e la scorciatoia Ctrl+B |

177| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Imposta su `1` per disabilitare le [skill](/it/skills) e i workflow che vengono forniti con Claude Code: le skill raggruppate e i workflow vengono rimossi completamente, mentre i comandi slash integrati come `/init` rimangono digitabili ma sono nascosti dal modello. Le skill dai plugin, `.claude/skills/` e `.claude/commands/` non sono interessate. Equivalente all'impostazione [`disableBundledSkills`](/it/settings#available-settings); `0` non la sostituisce |

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

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

171| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Imposta su `1` per rimuovere le intestazioni di richiesta `anthropic-beta` specifiche di Anthropic e i campi dello schema degli strumenti beta (come `defer_loading` e `eager_input_streaming`) dalle richieste API. Utilizza questo quando un gateway proxy rifiuta le richieste con errori come "Unexpected value(s) for the `anthropic-beta` header" o "Extra inputs are not permitted". I campi standard (`name`, `description`, `input_schema`, `cache_control`) vengono preservati. |180| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Imposta su `1` per rimuovere le intestazioni di richiesta `anthropic-beta` specifiche di Anthropic e i campi dello schema degli strumenti beta (come `defer_loading` e `eager_input_streaming`) dalle richieste API. Utilizza questo quando un gateway proxy rifiuta le richieste con errori come "Unexpected value(s) for the `anthropic-beta` header" o "Extra inputs are not permitted". I campi standard (`name`, `description`, `input_schema`, `cache_control`) vengono preservati. |


180| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | Imposta su `1` per saltare l'aggiunta automatica del marketplace ufficiale dei plugin al primo avvio |189| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | Imposta su `1` per saltare l'aggiunta automatica del marketplace ufficiale dei plugin al primo avvio |

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

182| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Imposta su `1` per disabilitare gli aggiornamenti automatici del titolo del terminale in base al contesto della conversazione. In sessioni Agent SDK e `claude -p`, questo salta anche la richiesta di Haiku in background che genera il titolo della sessione |191| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Imposta su `1` per disabilitare gli aggiornamenti automatici del titolo del terminale in base al contesto della conversazione. In sessioni Agent SDK e `claude -p`, questo salta anche la richiesta di Haiku in background che genera il titolo della sessione |

183| `CLAUDE_CODE_DISABLE_THINKING` | Imposta su `1` per disabilitare forzatamente il [thinking esteso](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) indipendentemente dal supporto del modello o da altre impostazioni. Più diretto di `MAX_THINKING_TOKENS=0` |192| `CLAUDE_CODE_DISABLE_THINKING` | Imposta su `1` per omettere il parametro `thinking` dalle richieste API interamente. Questa è un'opzione di compatibilità per proxy e gateway che rifiutano il parametro. Il comportamento della variabile è invariato rispetto alle versioni precedenti; sui modelli che pensano per impostazione predefinita, omettere il parametro significa che il modello potrebbe comunque pensare. Per disabilitare esplicitamente il [thinking esteso](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) sull'API Anthropic, utilizzate `MAX_THINKING_TOKENS=0` invece, che è anche inefficace su Fable 5 poiché non può avere il thinking disattivato. Su [provider di terze parti](/it/third-party-integrations), `0` allo stesso modo omette il parametro, quindi le due variabili si comportano allo stesso modo lì |

184| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | Imposta su `1` per disabilitare lo scorrimento virtuale nel [rendering a schermo intero](/it/fullscreen) e renderizzare ogni messaggio nella trascrizione. Utilizza questo se lo scorrimento in modalità a schermo intero mostra regioni vuote dove dovrebbero apparire i messaggi |193| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | Imposta su `1` per disabilitare lo scorrimento virtuale nel [rendering a schermo intero](/it/fullscreen) e renderizzare ogni messaggio nella trascrizione. Utilizza questo se lo scorrimento in modalità a schermo intero mostra regioni vuote dove dovrebbero apparire i messaggi |

185| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Imposta su `1` per disabilitare i [workflow](/it/workflows#turn-workflows-off). Equivalente all'impostazione [`disableWorkflows`](/it/settings#available-settings) |194| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Imposta su `1` per disabilitare i [workflow](/it/workflows#turn-workflows-off). Equivalente all'impostazione [`disableWorkflows`](/it/settings#available-settings) |

186| `CLAUDE_CODE_EFFORT_LEVEL` | Imposta il livello di sforzo per i modelli supportati. Valori: `low`, `medium`, `high`, `xhigh`, `max` o `auto` per usare il valore predefinito del modello. I livelli disponibili dipendono dal modello. Ha la precedenza su `/effort` e sull'impostazione `effortLevel`. Vedi [Regola il livello di sforzo](/it/model-config#adjust-effort-level) |195| `CLAUDE_CODE_EFFORT_LEVEL` | Imposta il livello di sforzo per i modelli supportati. Valori: `low`, `medium`, `high`, `xhigh`, `max` o `auto` per usare il valore predefinito del modello. I livelli disponibili dipendono dal modello. Ha la precedenza su `/effort` e sull'impostazione `effortLevel`. Vedi [Regola il livello di sforzo](/it/model-config#adjust-effort-level) |


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

199| `CLAUDE_CODE_EXTRA_BODY` | Oggetto JSON da unire al livello superiore di ogni corpo di richiesta API. Utile per passare parametri specifici del provider che Claude Code non espone direttamente |208| `CLAUDE_CODE_EXTRA_BODY` | Oggetto JSON da unire al livello superiore di ogni corpo di richiesta API. Utile per passare parametri specifici del provider che Claude Code non espone direttamente |

200| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Sovrascrivi il limite di token predefinito per le letture di file. Utile quando è necessario leggere file più grandi per intero |209| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Sovrascrivi il limite di token predefinito per le letture di file. Utile quando è necessario leggere file più grandi per intero |

210| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | {/* min-version: 2.1.172 */}Imposta su `1` per forzare la persistenza della trascrizione, la cronologia dei prompt e la registrazione di `claude agents` anche quando questo `claude` è stato avviato dall'interno di un'altra sessione Claude Code. Utilizza quando un valore `CLAUDE_CODE_CHILD_SESSION` ereditato, ad esempio da un server tmux avviato per la prima volta dallo strumento Bash di Claude Code, causa una sessione di livello superiore genuina a essere classificata erroneamente come annidata. Anche onorato su v2.1.169 e versioni precedenti; non ha effetto su v2.1.170 e v2.1.171, dove il rilevamento della sessione annidata che sostituisce è stato rimosso |

201| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Imposta su `1` per forzare l'abilitazione della modalità privata DEC 2026 [synchronized output](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) quando il vostro terminale la supporta ma non viene rilevato automaticamente. Utile per emulatori come Emacs `eat` che implementano BSU/ESU ma non rispondono al probe di capacità. Non ha effetto sotto tmux |211| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Imposta su `1` per forzare l'abilitazione della modalità privata DEC 2026 [synchronized output](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) quando il vostro terminale la supporta ma non viene rilevato automaticamente. Utile per emulatori come Emacs `eat` che implementano BSU/ESU ma non rispondono al probe di capacità. Non ha effetto sotto tmux |

202| `CLAUDE_CODE_FORK_SUBAGENT` | Imposta su `1` per rendere i [subagent biforcati](/it/sub-agents#fork-the-current-conversation) il valore predefinito del modello: Claude genera un fork, un subagent che eredita il contesto della conversazione completa invece di iniziare da zero, ogni volta che altrimenti utilizzerebbe il subagent di uso generale, e tutti gli spawn di subagent vengono eseguiti in background. Il comando esplicito [`/fork`](/it/commands) funziona senza questa variabile. Funziona in modalità interattiva e tramite SDK o `claude -p` |212| `CLAUDE_CODE_FORK_SUBAGENT` | Imposta su `1` per consentire a Claude di generare [subagent biforcati](/it/sub-agents#fork-the-current-conversation), o `0` per disabilitarli, sostituendo qualsiasi rollout lato server. Quando abilitato, Claude può richiedere il tipo di subagent `fork` per generare un fork, un subagent che eredita il contesto della conversazione completa invece di iniziare da zero. Gli spawn senza un tipo di subagent utilizzano comunque il subagent di uso generale, e tutti gli spawn di subagent vengono eseguiti in background. Il comando esplicito [`/fork`](/it/commands) funziona senza questa variabile. Funziona in modalità interattiva e tramite SDK o `claude -p` |

203| `CLAUDE_CODE_GIT_BASH_PATH` | Solo Windows: percorso dell'eseguibile Git Bash (`bash.exe`). Utilizza quando Git Bash è installato ma non nel vostro PATH. Vedi [Configurazione di Windows](/it/setup#set-up-on-windows) |213| `CLAUDE_CODE_GIT_BASH_PATH` | Solo Windows: percorso dell'eseguibile Git Bash (`bash.exe`). Utilizza quando Git Bash è installato ma non nel vostro PATH. Vedi [Configurazione di Windows](/it/setup#set-up-on-windows) |

204| `CLAUDE_CODE_GLOB_HIDDEN` | Imposta su `false` per escludere i dotfile dai risultati quando Claude richiama lo [strumento Glob](/it/tools-reference#glob-tool-behavior). Incluso per impostazione predefinita. Non influisce su `@` file autocomplete, `ls`, Grep o Read |214| `CLAUDE_CODE_GLOB_HIDDEN` | Imposta su `false` per escludere i dotfile dai risultati quando Claude richiama lo [strumento Glob](/it/tools-reference#glob-tool-behavior). Incluso per impostazione predefinita. Non influisce su `@` file autocomplete, `ls`, Grep o Read |

205| `CLAUDE_CODE_GLOB_NO_IGNORE` | Imposta su `false` per fare in modo che lo [strumento Glob](/it/tools-reference#glob-tool-behavior) rispetti i modelli `.gitignore`. Per impostazione predefinita, Glob restituisce tutti i file corrispondenti inclusi quelli gitignored. Non influisce su `@` file autocomplete, che ha la sua propria impostazione [`respectGitignore`](/it/settings#available-settings) |215| `CLAUDE_CODE_GLOB_NO_IGNORE` | Imposta su `false` per fare in modo che lo [strumento Glob](/it/tools-reference#glob-tool-behavior) rispetti i modelli `.gitignore`. Per impostazione predefinita, Glob restituisce tutti i file corrispondenti inclusi quelli gitignored. Non influisce su `@` file autocomplete, che ha la sua propria impostazione [`respectGitignore`](/it/settings#available-settings) |


239| `CLAUDE_CODE_REMOTE_SESSION_ID` | Impostato automaticamente nelle [sessioni cloud](/it/claude-code-on-the-web) all'ID della sessione corrente. Leggete questo per costruire un collegamento alla trascrizione della sessione. Vedi [Collegare gli artefatti alla sessione](/it/claude-code-on-the-web#link-artifacts-back-to-the-session) |249| `CLAUDE_CODE_REMOTE_SESSION_ID` | Impostato automaticamente nelle [sessioni cloud](/it/claude-code-on-the-web) all'ID della sessione corrente. Leggete questo per costruire un collegamento alla trascrizione della sessione. Vedi [Collegare gli artefatti alla sessione](/it/claude-code-on-the-web#link-artifacts-back-to-the-session) |

240| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Imposta su `1` per riprendere automaticamente se la sessione precedente è terminata a metà turno. Utilizzato in modalità SDK in modo che il modello continui senza richiedere all'SDK di reinviare il prompt |250| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Imposta su `1` per riprendere automaticamente se la sessione precedente è terminata a metà turno. Utilizzato in modalità SDK in modo che il modello continui senza richiedere all'SDK di reinviare il prompt |

241| `CLAUDE_CODE_RESUME_PROMPT` | Sovrascrivi il messaggio di continuazione iniettato quando si riprende una sessione che è terminata a metà turno. Per impostazione predefinita `Continue from where you left off.`. Gli script di spawn per agenti a lunga esecuzione possono impostare questo su un messaggio di avvio più direttivo. Una stringa vuota utilizza il valore predefinito |251| `CLAUDE_CODE_RESUME_PROMPT` | Sovrascrivi il messaggio di continuazione iniettato quando si riprende una sessione che è terminata a metà turno. Per impostazione predefinita `Continue from where you left off.`. Gli script di spawn per agenti a lunga esecuzione possono impostare questo su un messaggio di avvio più direttivo. Una stringa vuota utilizza il valore predefinito |

252| `CLAUDE_CODE_SAFE_MODE` | Imposta su `1` per avviare in modalità sicura: CLAUDE.md, skill, plugin, hook, server MCP, comandi personalizzati e agenti, stili di output, workflow, temi personalizzati, scorciatoie da tastiera personalizzate, comandi della linea di stato e dei suggerimenti di file, server LSP e memoria automatica non vengono caricati, per la risoluzione dei problemi di una configurazione interrotta. La politica delle impostazioni gestite si applica comunque, inclusi hook, linea di stato e comandi dei suggerimenti di file configurati dalla politica; plugin gestiti, skill gestite, CLAUDE.md gestito e server MCP configurati dalla politica non lo fanno. Equivalente a passare [`--safe-mode`](/it/cli-reference#cli-flags). I processi figlio direttamente generati ereditano la variabile |

242| `CLAUDE_CODE_SCRIPT_CAPS` | Oggetto JSON che limita quante volte script specifici possono essere richiamati per sessione quando `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` è impostato. Le chiavi sono sottostringhe abbinate al testo del comando; i valori sono limiti di chiamate intere. Ad esempio, `{"deploy.sh": 2}` consente a `deploy.sh` di essere chiamato al massimo due volte. L'abbinamento è basato su sottostringhe quindi trucchi di espansione della shell come `./scripts/deploy.sh $(evil)` contano comunque rispetto al limite. Il fan-out di runtime tramite `xargs` o `find -exec` non viene rilevato; questo è un controllo di difesa in profondità |253| `CLAUDE_CODE_SCRIPT_CAPS` | Oggetto JSON che limita quante volte script specifici possono essere richiamati per sessione quando `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` è impostato. Le chiavi sono sottostringhe abbinate al testo del comando; i valori sono limiti di chiamate intere. Ad esempio, `{"deploy.sh": 2}` consente a `deploy.sh` di essere chiamato al massimo due volte. L'abbinamento è basato su sottostringhe quindi trucchi di espansione della shell come `./scripts/deploy.sh $(evil)` contano comunque rispetto al limite. Il fan-out di runtime tramite `xargs` o `find -exec` non viene rilevato; questo è un controllo di difesa in profondità |

243| `CLAUDE_CODE_SCROLL_SPEED` | Imposta il moltiplicatore di scorrimento della rotella del mouse nel [rendering a schermo intero](/it/fullscreen#mouse-wheel-scrolling). Accetta valori da 1 a 20. Imposta su `3` per corrispondere a `vim` se il vostro terminale invia un evento di rotella per tacca senza amplificazione. Ignorato nel terminale IDE JetBrains, dove Claude Code utilizza il proprio gestore di scorrimento |254| `CLAUDE_CODE_SCROLL_SPEED` | Imposta il moltiplicatore di scorrimento della rotella del mouse nel [rendering a schermo intero](/it/fullscreen#mouse-wheel-scrolling). Accetta valori da 1 a 20 e valori frazionari inferiori a 1 come `0.5` per rallentare lo scorrimento accelerato del trackpad e della rotella nei terminali che già amplificano gli eventi della rotella. Imposta su `3` per corrispondere a `vim` se il vostro terminale invia un evento di rotella per tacca senza amplificazione. Ignorato nel terminale IDE JetBrains, dove Claude Code utilizza il proprio gestore di scorrimento |

244| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | Sovrascrivi il budget di tempo in millisecondi per gli hook [SessionEnd](/it/hooks#sessionend). Si applica all'uscita della sessione, `/clear` e al cambio di sessioni tramite `/resume` interattivo. Per impostazione predefinita il budget è 1,5 secondi, aumentato automaticamente al massimo `timeout` per hook configurato nei file di impostazioni, fino a 60 secondi. I timeout sugli hook forniti dai plugin non aumentano il budget |255| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | Sovrascrivi il budget di tempo in millisecondi per gli hook [SessionEnd](/it/hooks#sessionend). Si applica all'uscita della sessione, `/clear` e al cambio di sessioni tramite `/resume` interattivo. Per impostazione predefinita il budget è 1,5 secondi, aumentato automaticamente al massimo `timeout` per hook configurato nei file di impostazioni, fino a 60 secondi. I timeout sugli hook forniti dai plugin non aumentano il budget |

245| `CLAUDE_CODE_SESSION_ID` | Impostato automaticamente nei sottoprocessi dello strumento Bash e PowerShell all'ID della sessione corrente. Corrisponde al campo `session_id` passato agli [hook](/it/hooks). Aggiornato su `/clear`. Utilizza per correlare script e strumenti esterni con la sessione Claude Code che li ha avviati |256| `CLAUDE_CODE_SESSION_ID` | Impostato automaticamente nei sottoprocessi dello strumento Bash e PowerShell all'ID della sessione corrente, nei sottoprocessi del comando [hook](/it/hooks) e nei sottoprocessi del server MCP [stdio](/it/mcp). Per Bash, PowerShell e hook questo corrisponde al campo `session_id` nell'input JSON dell'hook e viene aggiornato su `/clear`. Un sottoprocesso del server MCP mantiene l'ID con cui è stato generato. Su `--resume <session-id>` riceve l'ID ripreso, corrispondente a hook e Bash. Su `--continue` o `--resume` senza un ID esplicito potrebbe ricevere l'ID di avvio iniziale. Utilizza per correlare script e strumenti esterni con la sessione Claude Code che li ha avviati |

246| `CLAUDE_CODE_SHELL` | Sovrascrivi il rilevamento automatico della shell. Utile quando la vostra shell di login differisce dalla vostra shell di lavoro preferita (ad esempio, `bash` vs `zsh`) |257| `CLAUDE_CODE_SHELL` | Sovrascrivi il rilevamento automatico della shell. Utile quando la vostra shell di login differisce dalla vostra shell di lavoro preferita (ad esempio, `bash` vs `zsh`) |

247| `CLAUDE_CODE_SHELL_PREFIX` | Prefisso del comando che avvolge i comandi shell che Claude Code genera: chiamate dello strumento Bash, comandi [hook](/it/hooks) e comandi di avvio del server MCP stdio. Utile per logging o auditing. Esempio: impostando `/path/to/logger.sh` esegue ogni comando come `/path/to/logger.sh <command>` |258| `CLAUDE_CODE_SHELL_PREFIX` | Prefisso del comando che avvolge i comandi shell che Claude Code genera: chiamate dello strumento Bash, comandi [hook](/it/hooks), comandi della [linea di stato](/it/statusline) e comandi di avvio del server MCP stdio. Gli hook PowerShell e gli hook in forma exec vengono eseguiti senza il prefisso. Utile per logging o auditing. L'impostazione di un percorso eseguibile nudo come `/path/to/logger.sh` esegue ogni comando come `/path/to/logger.sh '<command>'`. Il wrapper riceve la riga di comando come un singolo argomento shell-quoted in `$1`, quindi il wrapper deve rivalutare `$1` con una shell, ad esempio `exec bash -c "$1"`. Trattare `$1` come un percorso eseguibile nudo interrompe i server MCP stdio che passano argomenti come `npx -y <package>`. Per le chiamate dello strumento Bash, `$1` contiene l'invocazione della shell completa che Claude Code assembla, inclusa la configurazione dell'ambiente, non solo il comando che Claude ha eseguito |

248| `CLAUDE_CODE_SIMPLE` | Imposta su `1` per eseguire con un prompt di sistema minimo e solo gli strumenti Bash, lettura file e modifica file. Gli strumenti MCP da `--mcp-config` sono ancora disponibili. Disabilita l'auto-discovery di hook, skill, plugin, server MCP, memoria automatica e CLAUDE.md. I token OAuth e le credenziali del portachiavi non vengono letti, quindi l'autenticazione Anthropic deve provenire da `ANTHROPIC_API_KEY` o da un `apiKeyHelper` in `--settings`. Equivalente a passare [`--bare`](/it/headless#start-faster-with-bare-mode) |259| `CLAUDE_CODE_SIMPLE` | Imposta su `1` per eseguire con un prompt di sistema minimo e solo gli strumenti Bash, lettura file e modifica file. Gli strumenti MCP da `--mcp-config` sono ancora disponibili. Disabilita l'auto-discovery di hook, skill, plugin, server MCP, memoria automatica e CLAUDE.md. I token OAuth e le credenziali del portachiavi non vengono letti, quindi l'autenticazione Anthropic deve provenire da `ANTHROPIC_API_KEY` o da un `apiKeyHelper` in `--settings`. Equivalente a passare [`--bare`](/it/headless#start-faster-with-bare-mode) |

249| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Imposta su `1` per utilizzare il prompt di sistema minimo e le descrizioni degli strumenti compresse su qualsiasi modello. Imposta su `0`, `false`, `no` o `off` per rinunciare anche su modelli dove l'esperimento o la configurazione del server altrimenti lo abiliterebbero. Il set di strumenti completo, hook, server MCP e scoperta CLAUDE.md rimangono abilitati |260| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Imposta su `1` per utilizzare il prompt di sistema minimo e le descrizioni degli strumenti compresse su qualsiasi modello. Imposta su `0`, `false`, `no` o `off` per rinunciare anche su modelli dove l'esperimento o la configurazione del server altrimenti lo abiliterebbero. Il set di strumenti completo, hook, server MCP e scoperta CLAUDE.md rimangono abilitati |

250| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Salta l'autenticazione lato client per [Claude Platform on AWS](/it/claude-platform-on-aws), per gateway che firmano le richieste stessi |261| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Salta l'autenticazione lato client per [Claude Platform on AWS](/it/claude-platform-on-aws), per gateway che firmano le richieste stessi |


258| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Imposta su `1` per rimuovere le credenziali Anthropic e del provider cloud dagli ambienti dei sottoprocessi (strumento Bash, hook, server MCP stdio). Il processo Claude padre mantiene queste credenziali per le chiamate API, ma i processi figlio non possono leggerle, riducendo l'esposizione agli attacchi di prompt injection che tentano di esfiltare i segreti tramite l'espansione della shell. Su Linux, questo esegue anche i sottoprocessi Bash in uno spazio dei nomi PID isolato in modo che non possano leggere gli ambienti dei processi host tramite `/proc`; come effetto collaterale, `ps`, `pgrep` e `kill` non possono vedere o segnalare i processi host. `claude-code-action` imposta questo automaticamente quando `allowed_non_write_users` è configurato |269| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Imposta su `1` per rimuovere le credenziali Anthropic e del provider cloud dagli ambienti dei sottoprocessi (strumento Bash, hook, server MCP stdio). Il processo Claude padre mantiene queste credenziali per le chiamate API, ma i processi figlio non possono leggerle, riducendo l'esposizione agli attacchi di prompt injection che tentano di esfiltare i segreti tramite l'espansione della shell. Su Linux, questo esegue anche i sottoprocessi Bash in uno spazio dei nomi PID isolato in modo che non possano leggere gli ambienti dei processi host tramite `/proc`; come effetto collaterale, `ps`, `pgrep` e `kill` non possono vedere o segnalare i processi host. `claude-code-action` imposta questo automaticamente quando `allowed_non_write_users` è configurato |

259| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | Imposta su `1` in modalità non interattiva (il flag `-p`) per attendere il completamento dell'installazione del plugin prima della prima query. Senza questo, i plugin si installano in background e potrebbero non essere disponibili al primo turno. Combina con `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` per limitare l'attesa |270| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | Imposta su `1` in modalità non interattiva (il flag `-p`) per attendere il completamento dell'installazione del plugin prima della prima query. Senza questo, i plugin si installano in background e potrebbero non essere disponibili al primo turno. Combina con `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` per limitare l'attesa |

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

261| `CLAUDE_CODE_SYNC_SKILLS` | Imposta su `1` per scaricare le vostre skill abilitate di claude.ai in `~/.claude/skills/` prima della prima query e risincronizzare ogni 10 minuti. Si applica solo in modalità non interattiva con il flag `-p`. Impostato automaticamente nelle sessioni [Claude Code on the web](/it/claude-code-on-the-web). Richiede l'autenticazione di claude.ai |272| `CLAUDE_CODE_SYNC_SKILLS` | Imposta su `1` per scaricare le vostre skill abilitate di claude.ai in `~/.claude/skills/` prima della prima query e risincronizzare ogni 10 minuti. Si applica solo in modalità non interattiva con il flag `-p`. Richiede l'autenticazione di claude.ai. Le sessioni [Claude Code on the web](/it/claude-code-on-the-web) ricevono le vostre skill abilitate di claude.ai automaticamente; non è necessario impostare questo lì |

273| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | Timeout in millisecondi per una risincronizzazione delle skill a metà sessione quando `CLAUDE_CODE_SYNC_SKILLS` è impostato (predefinito: 30000). Limita il download attivato quando l'host richiede un ricaricamento delle skill durante la sessione. Se superato, la risincronizzazione si ferma e i download delle skill rimanenti continuano in background |

262| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Timeout in millisecondi per la prima query da attendere sulla sincronizzazione iniziale delle skill quando `CLAUDE_CODE_SYNC_SKILLS` è impostato (predefinito: 5000). Se superato, la query procede e i download delle skill rimanenti continuano in background |274| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Timeout in millisecondi per la prima query da attendere sulla sincronizzazione iniziale delle skill quando `CLAUDE_CODE_SYNC_SKILLS` è impostato (predefinito: 5000). Se superato, la query procede e i download delle skill rimanenti continuano in background |

263| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Imposta su `false` per disabilitare l'evidenziazione della sintassi nell'output diff. Utile quando i colori interferiscono con la configurazione del vostro terminale. Per disabilitare anche l'evidenziazione nei blocchi di codice e nelle anteprime di file, utilizzate l'impostazione [`syntaxHighlightingDisabled`](/it/settings) |275| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Imposta su `false` per disabilitare l'evidenziazione della sintassi nell'output diff. Utile quando i colori interferiscono con la configurazione del vostro terminale. Per disabilitare anche l'evidenziazione nei blocchi di codice e nelle anteprime di file, utilizzate l'impostazione [`syntaxHighlightingDisabled`](/it/settings) |

264| `CLAUDE_CODE_TASK_LIST_ID` | Condividi un elenco di attività tra le sessioni. Imposta lo stesso ID in più istanze di Claude Code per coordinare un elenco di attività condiviso. Vedi [Elenco attività](/it/interactive-mode#task-list) |276| `CLAUDE_CODE_TASK_LIST_ID` | Condividi un elenco di attività tra le sessioni. Imposta lo stesso ID in più istanze di Claude Code per coordinare un elenco di attività condiviso. Vedi [Elenco attività](/it/interactive-mode#task-list) |

265| `CLAUDE_CODE_TEAM_NAME` | Nome del team di agenti a cui appartiene questo compagno di squadra. Impostato automaticamente sui membri del [team di agenti](/it/agent-teams) |277| `CLAUDE_CODE_TEAM_NAME` | Nome del team di agenti a cui appartiene questo compagno di squadra. Impostato automaticamente sui membri del [team di agenti](/it/agent-teams) |

266| `CLAUDE_CODE_TMPDIR` | Sovrascrivi la directory temporanea utilizzata per i file temporanei interni. Claude Code aggiunge `/claude-{uid}/` su Unix o `/claude/` su Windows a questo percorso. Predefinito: `/tmp` su macOS, `os.tmpdir()` su Linux e Windows. {/* min-version: 2.1.161 */}A partire da v2.1.161, su macOS e Linux, i sottoprocessi Bash ricevono un fallback `$TMPDIR` breve sotto il valore predefinito del sistema quando il vostro override è un percorso lungo, poiché alcuni strumenti falliscono quando i percorsi temporanei diventano troppo lunghi. I file temporanei di Claude Code stesso utilizzano sempre il vostro override |278| `CLAUDE_CODE_TMPDIR` | Sovrascrivi la directory temporanea utilizzata per i file temporanei interni. Claude Code aggiunge `/claude-{uid}/` su Unix o `/claude/` su Windows a questo percorso. Predefinito: `/tmp` su macOS, `os.tmpdir()` su Linux e Windows. {/* min-version: 2.1.161 */}A partire da v2.1.161, su macOS e Linux, i sottoprocessi Bash [sandboxed](/it/sandboxing) ricevono un fallback `$TMPDIR` breve sotto il valore predefinito del sistema quando il vostro override è un percorso lungo, poiché alcuni strumenti falliscono quando i percorsi temporanei diventano troppo lunghi. I comandi Bash non sandboxed ereditano il vostro `$TMPDIR` della shell invariato. I file temporanei di Claude Code stesso utilizzano sempre il vostro override |

267| `CLAUDE_CODE_TMUX_TRUECOLOR` | Imposta su `1` per consentire l'output truecolor a 24 bit all'interno di tmux. Per impostazione predefinita, Claude Code si limita a 256 colori quando `$TMUX` è impostato perché tmux non passa attraverso le sequenze di escape truecolor a meno che non sia configurato per farlo. Imposta questo dopo aver aggiunto `set -ga terminal-overrides ',*:Tc'` al vostro `~/.tmux.conf`. Vedi [Configurazione del terminale](/it/terminal-config) per altre impostazioni di tmux |279| `CLAUDE_CODE_TMUX_TRUECOLOR` | Imposta su `1` per consentire l'output truecolor a 24 bit all'interno di tmux. Per impostazione predefinita, Claude Code si limita a 256 colori quando `$TMUX` è impostato perché tmux non passa attraverso le sequenze di escape truecolor a meno che non sia configurato per farlo. Imposta questo dopo aver aggiunto `set -ga terminal-overrides ',*:Tc'` al vostro `~/.tmux.conf`. Vedi [Configurazione del terminale](/it/terminal-config) per altre impostazioni di tmux |

268| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | Utilizza [Claude Platform on AWS](/it/claude-platform-on-aws) |280| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | Utilizza [Claude Platform on AWS](/it/claude-platform-on-aws) |

269| `CLAUDE_CODE_USE_BEDROCK` | Utilizza [Bedrock](/it/amazon-bedrock) |281| `CLAUDE_CODE_USE_BEDROCK` | Utilizza [Bedrock](/it/amazon-bedrock) |


273| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | Controlla lo strumento PowerShell. Su Windows senza Git Bash, lo strumento è abilitato automaticamente; imposta su `0` per disabilitarlo. Su Windows con Git Bash installato, lo strumento è in rollout progressivo: imposta su `1` per aderire o `0` per rinunciare. Su Linux, macOS e WSL, imposta su `1` per abilitarlo, che richiede `pwsh` nel vostro `PATH`. Se abilitato su Windows, Claude può eseguire i comandi PowerShell nativamente invece di instradare attraverso Git Bash. Vedi [Strumento PowerShell](/it/tools-reference#powershell-tool) |285| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | Controlla lo strumento PowerShell. Su Windows senza Git Bash, lo strumento è abilitato automaticamente; imposta su `0` per disabilitarlo. Su Windows con Git Bash installato, lo strumento è in rollout progressivo: imposta su `1` per aderire o `0` per rinunciare. Su Linux, macOS e WSL, imposta su `1` per abilitarlo, che richiede `pwsh` nel vostro `PATH`. Se abilitato su Windows, Claude può eseguire i comandi PowerShell nativamente invece di instradare attraverso Git Bash. Vedi [Strumento PowerShell](/it/tools-reference#powershell-tool) |

274| `CLAUDE_CODE_USE_VERTEX` | Utilizza [Vertex](/it/google-vertex-ai) |286| `CLAUDE_CODE_USE_VERTEX` | Utilizza [Vertex](/it/google-vertex-ai) |

275| `CLAUDE_CONFIG_DIR` | Sovrascrivi la directory di configurazione (predefinito: `~/.claude`). Tutte le impostazioni, le credenziali, la cronologia della sessione e i plugin sono archiviati sotto questo percorso. Utile per eseguire più account affiancati: ad esempio, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'` |287| `CLAUDE_CONFIG_DIR` | Sovrascrivi la directory di configurazione (predefinito: `~/.claude`). Tutte le impostazioni, le credenziali, la cronologia della sessione e i plugin sono archiviati sotto questo percorso. Utile per eseguire più account affiancati: ad esempio, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'` |

276| `CLAUDE_EFFORT` | Impostato automaticamente nei sottoprocessi dello strumento Bash e nei comandi hook al [livello di sforzo](/it/model-config#adjust-effort-level) attivo per il turno: `low`, `medium`, `high`, `xhigh`, `max` o `ultra`. Il valore `ultra` corrisponde a ultracode in `/effort`; la variabile riporta il valore memorizzato, non l'etichetta di visualizzazione. Corrisponde al campo `effort.level` passato agli [hook](/it/hooks). Impostato solo quando il modello corrente supporta il parametro effort |288| `CLAUDE_EFFORT` | Impostato automaticamente nei sottoprocessi dello strumento Bash e nei comandi hook al [livello di sforzo](/it/model-config#adjust-effort-level) attivo per il turno: `low`, `medium`, `high`, `xhigh` o `max`. Ultracode non è un livello distinto e riporta come `xhigh`. Corrisponde al campo `effort.level` passato agli [hook](/it/hooks). Impostato solo quando il modello corrente supporta il parametro effort |

277| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Imposta su `1` per forzare l'abilitazione del watchdog di inattività a livello di byte, o imposta su `0` per forzare la disabilitazione. Se non impostato, il watchdog è abilitato per impostazione predefinita per le connessioni API Anthropic. Il byte watchdog interrompe una connessione quando nessun byte arriva sul filo per la durata impostata da `CLAUDE_STREAM_IDLE_TIMEOUT_MS`, con un minimo di 5 minuti, indipendente dal watchdog a livello di evento |289| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Imposta su `1` per forzare l'abilitazione del watchdog di inattività a livello di byte, o imposta su `0` per forzare la disabilitazione. Se non impostato, il watchdog è abilitato per impostazione predefinita per le connessioni API Anthropic dirette e [Claude Platform on AWS](/it/claude-platform-on-aws). Il byte watchdog interrompe una connessione quando nessun byte arriva sul filo per 180 secondi per impostazione predefinita su connessioni API Anthropic dirette, 300 secondi su Claude Platform on AWS e quando abilitato su Bedrock, o per il valore di `CLAUDE_STREAM_IDLE_TIMEOUT_MS` quando è impostato, che è limitato a un minimo di 5 minuti, indipendente dal watchdog a livello di evento |

278| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Imposta su `1` per abilitare il watchdog di inattività a livello di byte su risposte Amazon Bedrock `vnd.amazon.eventstream`. Disattivato per impostazione predefinita. Configurate il timeout con `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |290| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Imposta su `1` per abilitare il watchdog di inattività a livello di byte su risposte Amazon Bedrock `vnd.amazon.eventstream`. Disattivato per impostazione predefinita. Configurate il timeout con `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |

279| `CLAUDE_ENABLE_STREAM_WATCHDOG` | Imposta su `1` per abilitare il watchdog di inattività dello streaming a livello di evento. Disattivato per impostazione predefinita. Si applica a tutti i provider, incluso Bedrock. Per Vertex e Foundry, questo è l'unico watchdog di inattività disponibile. Su Bedrock, potete anche abilitare il watchdog indipendente a livello di byte con `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK`; i due vengono eseguiti insieme quando entrambi sono impostati. Configurate il timeout con `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |291| `CLAUDE_ENABLE_STREAM_WATCHDOG` | Imposta su `1` per forzare l'abilitazione del watchdog di inattività dello streaming a livello di evento, o imposta su `0` per forzare la disabilitazione. Se non impostato, il valore predefinito è controllato dal server sull'API Anthropic diretta e disattivato su altri provider. {/* min-version: 2.1.169 */}A partire da v2.1.169, i provider diversi dall'API Anthropic diretta e da Claude Platform on AWS hanno anche un timeout di inattività del corpo di 5 minuti predefinito indipendente da questa variabile; vedi `API_FORCE_IDLE_TIMEOUT`. Su Bedrock, potete anche abilitare il watchdog indipendente a livello di byte con `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK`; i due vengono eseguiti insieme quando entrambi sono impostati. Configurate il timeout con `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |

280| `CLAUDE_ENV_FILE` | Percorso di uno script di shell i cui contenuti Claude Code esegue prima di ogni comando Bash nello stesso processo di shell, in modo che gli export nel file siano visibili al comando. Utilizza per persistere l'attivazione di virtualenv o conda tra i comandi. Anche popolato dinamicamente dagli hook [SessionStart](/it/hooks#persist-environment-variables), [Setup](/it/hooks#setup), [CwdChanged](/it/hooks#cwdchanged) e [FileChanged](/it/hooks#filechanged) |292| `CLAUDE_ENV_FILE` | Percorso di uno script di shell i cui contenuti Claude Code esegue prima di ogni comando Bash nello stesso processo di shell, in modo che gli export nel file siano visibili al comando. Utilizza per persistere l'attivazione di virtualenv o conda tra i comandi. Anche popolato dinamicamente dagli hook [SessionStart](/it/hooks#persist-environment-variables), [Setup](/it/hooks#setup), [CwdChanged](/it/hooks#cwdchanged) e [FileChanged](/it/hooks#filechanged) |

281| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | Prefisso per i nomi delle sessioni [Remote Control](/it/remote-control) generati automaticamente quando non viene fornito un nome esplicito. Per impostazione predefinita il nome host della vostra macchina, producendo nomi come `myhost-graceful-unicorn`. Il flag CLI `--remote-control-session-name-prefix` imposta lo stesso valore per una singola invocazione |293| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | Prefisso per i nomi delle sessioni [Remote Control](/it/remote-control) generati automaticamente quando non viene fornito un nome esplicito. Per impostazione predefinita il nome host della vostra macchina, producendo nomi come `myhost-graceful-unicorn`. Il flag CLI `--remote-control-session-name-prefix` imposta lo stesso valore per una singola invocazione |

282| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | Timeout in millisecondi prima che il watchdog di inattività dello streaming chiuda una connessione bloccata. Predefinito e minimo `300000` (5 minuti) per il watchdog a livello di byte e il watchdog a livello di evento; i valori inferiori vengono silenziosamente limitati per assorbire le pause di thinking esteso e il buffering del proxy. Per i provider di terze parti, richiede `CLAUDE_ENABLE_STREAM_WATCHDOG=1`. Su Bedrock, si applica anche quando `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` |294| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | Timeout in millisecondi prima che il watchdog di inattività dello streaming chiuda una connessione bloccata. Quando impostate questa variabile esplicitamente, il minimo è `300000` (5 minuti); i valori inferiori vengono silenziosamente limitati per assorbire le pause di thinking esteso e il buffering del proxy. Se non impostato, il watchdog a livello di evento per impostazione predefinita è 300 secondi e il watchdog a livello di byte per impostazione predefinita è 180 secondi su connessioni API Anthropic dirette (300 secondi su Claude Platform on AWS e altri provider). Il valore predefinito di 180 secondi del byte-watchdog non impostato è un valore separato e non è soggetto al limite di 5 minuti. Per il watchdog a livello di evento su provider di terze parti, richiede `CLAUDE_ENABLE_STREAM_WATCHDOG=1`; il timeout di inattività del corpo descritto in `API_FORCE_IDLE_TIMEOUT` si applica indipendentemente. Su Bedrock, si applica anche quando `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` |

283| `DEBUG` | Imposta su `1` per abilitare la modalità debug, equivalente al lancio con [`--debug`](/it/cli-reference#cli-flags). I log di debug vengono scritti in `~/.claude/debug/<session-id>.txt`, o nel percorso impostato da `CLAUDE_CODE_DEBUG_LOGS_DIR`. Solo i valori truthy `1`, `true`, `yes` e `on` abilitano la modalità debug, quindi i modelli di namespace come `DEBUG=express:*` impostati per altri strumenti non lo attivano |295| `DEBUG` | Imposta su `1` per abilitare la modalità debug, equivalente al lancio con [`--debug`](/it/cli-reference#cli-flags). I log di debug vengono scritti in `~/.claude/debug/<session-id>.txt`, o nel percorso impostato da `CLAUDE_CODE_DEBUG_LOGS_DIR`. Solo i valori truthy `1`, `true`, `yes` e `on` abilitano la modalità debug, quindi i modelli di namespace come `DEBUG=express:*` impostati per altri strumenti non lo attivano |

284| `DISABLE_AUTOUPDATER` | Imposta su `1` per disabilitare gli aggiornamenti automatici in background. Il manuale `claude update` funziona ancora. Utilizza `DISABLE_UPDATES` per bloccare entrambi |296| `DISABLE_AUTOUPDATER` | Imposta su `1` per disabilitare gli aggiornamenti automatici in background. Il manuale `claude update` funziona ancora. Utilizza `DISABLE_UPDATES` per bloccare entrambi |

285| `DISABLE_AUTO_COMPACT` | Imposta su `1` per disabilitare la compattazione automatica quando ci si avvicina al limite del contesto. Il comando manuale `/compact` rimane disponibile. Utilizza quando desiderate un controllo esplicito su quando si verifica la compattazione |297| `DISABLE_AUTO_COMPACT` | Imposta su `1` per disabilitare la compattazione automatica quando ci si avvicina al limite del contesto. Il comando manuale `/compact` rimane disponibile. Utilizza quando desiderate un controllo esplicito su quando si verifica la compattazione |


295| `DISABLE_INTERLEAVED_THINKING` | Imposta su `1` per impedire l'invio dell'intestazione beta interleaved-thinking. Utile quando il vostro gateway LLM o provider non supporta il [thinking interleaved](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) |307| `DISABLE_INTERLEAVED_THINKING` | Imposta su `1` per impedire l'invio dell'intestazione beta interleaved-thinking. Utile quando il vostro gateway LLM o provider non supporta il [thinking interleaved](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) |

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

297| `DISABLE_LOGOUT_COMMAND` | Imposta su `1` per nascondere il comando `/logout` |309| `DISABLE_LOGOUT_COMMAND` | Imposta su `1` per nascondere il comando `/logout` |

298| `DISABLE_PROMPT_CACHING` | Imposta su `1` per disabilitare il caching dei prompt per tutti i modelli (ha la precedenza sulle impostazioni per singolo modello) |310| `DISABLE_PROMPT_CACHING` | Imposta su `1` per disabilitare il [caching dei prompt](/it/prompt-caching#disable-prompt-caching) per tutti i modelli (ha la precedenza sulle impostazioni per singolo modello) |

311| `DISABLE_PROMPT_CACHING_FABLE` | Imposta su `1` per disabilitare il caching dei prompt per i modelli Fable |

299| `DISABLE_PROMPT_CACHING_HAIKU` | Imposta su `1` per disabilitare il caching dei prompt per i modelli Haiku |312| `DISABLE_PROMPT_CACHING_HAIKU` | Imposta su `1` per disabilitare il caching dei prompt per i modelli Haiku |

300| `DISABLE_PROMPT_CACHING_OPUS` | Imposta su `1` per disabilitare il caching dei prompt per i modelli Opus |313| `DISABLE_PROMPT_CACHING_OPUS` | Imposta su `1` per disabilitare il caching dei prompt per i modelli Opus |

301| `DISABLE_PROMPT_CACHING_SONNET` | Imposta su `1` per disabilitare il caching dei prompt per i modelli Sonnet |314| `DISABLE_PROMPT_CACHING_SONNET` | Imposta su `1` per disabilitare il caching dei prompt per i modelli Sonnet |


307| `ENABLE_PROMPT_CACHING_1H` | Imposta su `1` per richiedere un TTL della cache dei prompt di 1 ora invece dei 5 minuti predefiniti. Destinato agli utenti di chiave API, [Bedrock](/it/amazon-bedrock), [Vertex](/it/google-vertex-ai), [Foundry](/it/microsoft-foundry) e [Claude Platform on AWS](/it/claude-platform-on-aws). Gli utenti di abbonamento ricevono automaticamente il TTL di 1 ora. Le scritture della cache di 1 ora vengono fatturate a una tariffa più elevata |320| `ENABLE_PROMPT_CACHING_1H` | Imposta su `1` per richiedere un TTL della cache dei prompt di 1 ora invece dei 5 minuti predefiniti. Destinato agli utenti di chiave API, [Bedrock](/it/amazon-bedrock), [Vertex](/it/google-vertex-ai), [Foundry](/it/microsoft-foundry) e [Claude Platform on AWS](/it/claude-platform-on-aws). Gli utenti di abbonamento ricevono automaticamente il TTL di 1 ora. Le scritture della cache di 1 ora vengono fatturate a una tariffa più elevata |

308| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Deprecato. Utilizza `ENABLE_PROMPT_CACHING_1H` invece |321| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Deprecato. Utilizza `ENABLE_PROMPT_CACHING_1H` invece |

309| `ENABLE_TOOL_SEARCH` | Controlla la [ricerca degli strumenti MCP](/it/mcp#scale-with-mcp-tool-search). Non impostato: tutti gli strumenti MCP differiti per impostazione predefinita, ma caricati in primo piano su Vertex AI o quando `ANTHROPIC_BASE_URL` punta a un host non di prima parte. Valori: `true` (sempre differire e inviare l'intestazione beta, le richieste falliscono su modelli Vertex AI precedenti a Sonnet 4.5 o Opus 4.5, o su proxy che non supportano `tool_reference`), `auto` (modalità soglia: carica in primo piano se gli strumenti si adattano entro il 10% del contesto), `auto:N` (soglia personalizzata, ad es. `auto:5` per il 5%), `false` (carica tutto in primo piano) |322| `ENABLE_TOOL_SEARCH` | Controlla la [ricerca degli strumenti MCP](/it/mcp#scale-with-mcp-tool-search). Non impostato: tutti gli strumenti MCP differiti per impostazione predefinita, ma caricati in primo piano su Vertex AI o quando `ANTHROPIC_BASE_URL` punta a un host non di prima parte. Valori: `true` (sempre differire e inviare l'intestazione beta, le richieste falliscono su modelli Vertex AI precedenti a Sonnet 4.5 o Opus 4.5, o su proxy che non supportano `tool_reference`), `auto` (modalità soglia: carica in primo piano se gli strumenti si adattano entro il 10% del contesto), `auto:N` (soglia personalizzata, ad es. `auto:5` per il 5%), `false` (carica tutto in primo piano) |

310| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Imposta su qualsiasi valore non vuoto per attivare il fallback a [`--fallback-model`](/it/cli-reference#cli-flags) dopo errori di sovraccarico ripetuti su qualsiasi modello primario. Per impostazione predefinita, solo i modelli Opus attivano il fallback |323| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Imposta su qualsiasi valore non vuoto per fare in modo che tutti i modelli, non solo Opus, smettano di riprovare con un errore di sovraccarico ripetuto quando nessun modello di fallback è configurato. {/* min-version: 2.1.160 */}A partire da v2.1.160, una [catena di modelli di fallback](/it/model-config#fallback-model-chains) configurata si attiva su errori di sovraccarico ripetuti per qualsiasi modello primario, quindi questa variabile non influisce sul passaggio a un modello di fallback |

311| `FORCE_AUTOUPDATE_PLUGINS` | Imposta su `1` per forzare gli aggiornamenti automatici dei plugin anche quando l'auto-updater principale è disabilitato tramite `DISABLE_AUTOUPDATER` |324| `FORCE_AUTOUPDATE_PLUGINS` | Imposta su `1` per forzare gli aggiornamenti automatici dei plugin anche quando l'auto-updater principale è disabilitato tramite `DISABLE_AUTOUPDATER` |

312| `FORCE_PROMPT_CACHING_5M` | Imposta su `1` per forzare il TTL della cache dei prompt di 5 minuti anche quando il TTL di 1 ora si applicherebbe altrimenti. Sostituisce `ENABLE_PROMPT_CACHING_1H` |325| `FORCE_PROMPT_CACHING_5M` | Imposta su `1` per forzare il TTL della cache dei prompt di 5 minuti anche quando il TTL di 1 ora si applicherebbe altrimenti. Sostituisce `ENABLE_PROMPT_CACHING_1H` |

313| `HTTP_PROXY` | Specifica il server proxy HTTP per le connessioni di rete |326| `HTTP_PROXY` | Specifica il server proxy HTTP per le connessioni di rete |


315| `IS_DEMO` | Imposta su `1` per abilitare la modalità demo: nasconde la vostra email e il nome dell'organizzazione dall'intestazione e dall'output `/status`, e salta l'onboarding. Utile quando si trasmette in streaming o si registra una sessione |328| `IS_DEMO` | Imposta su `1` per abilitare la modalità demo: nasconde la vostra email e il nome dell'organizzazione dall'intestazione e dall'output `/status`, e salta l'onboarding. Utile quando si trasmette in streaming o si registra una sessione |

316| `MAX_MCP_OUTPUT_TOKENS` | Numero massimo di token consentiti nelle risposte degli strumenti MCP. Claude Code visualizza un avviso quando l'output supera 10.000 token. Gli strumenti che dichiarano [`anthropic/maxResultSizeChars`](/it/mcp#raise-the-limit-for-a-specific-tool) utilizzano quel limite di caratteri per il contenuto di testo, ma il contenuto dell'immagine da questi strumenti è ancora soggetto a questa variabile (predefinito: 25000) |329| `MAX_MCP_OUTPUT_TOKENS` | Numero massimo di token consentiti nelle risposte degli strumenti MCP. Claude Code visualizza un avviso quando l'output supera 10.000 token. Gli strumenti che dichiarano [`anthropic/maxResultSizeChars`](/it/mcp#raise-the-limit-for-a-specific-tool) utilizzano quel limite di caratteri per il contenuto di testo, ma il contenuto dell'immagine da questi strumenti è ancora soggetto a questa variabile (predefinito: 25000) |

317| `MAX_STRUCTURED_OUTPUT_RETRIES` | Numero di volte per riprovare quando la risposta del modello non supera la convalida rispetto a [`--json-schema`](/it/cli-reference#cli-flags) in modalità non interattiva (il flag `-p`). Per impostazione predefinita 5 |330| `MAX_STRUCTURED_OUTPUT_RETRIES` | Numero di volte per riprovare quando la risposta del modello non supera la convalida rispetto a [`--json-schema`](/it/cli-reference#cli-flags) in modalità non interattiva (il flag `-p`). Per impostazione predefinita 5 |

318| `MAX_THINKING_TOKENS` | Sovrascrivi il budget del token di [extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking). Il massimale è il [max output tokens](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison) del modello meno uno. Imposta su `0` per disabilitare completamente il thinking. Sui modelli con [ragionamento adattivo](/it/model-config#adjust-effort-level), il budget viene ignorato a meno che il ragionamento adattivo non sia disabilitato tramite `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` |331| `MAX_THINKING_TOKENS` | Sovrascrivi il budget del token di [extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking). Il massimale è il [max output tokens](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison) del modello meno uno. Imposta su `0` per disabilitare il thinking sull'API Anthropic tranne su Fable 5, che non può avere il thinking disattivato. Su [provider di terze parti](/it/third-party-integrations), `0` allo stesso modo omette il parametro `thinking`, e i modelli con [ragionamento adattivo](/it/model-config#adjust-effort-level) potrebbero comunque pensare. Per valori diversi da zero su modelli di ragionamento adattivo, il budget viene ignorato a meno che il ragionamento adattivo non sia disabilitato tramite `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` |

319| `MCP_CLIENT_SECRET` | Segreto client OAuth per i server MCP che richiedono [credenziali preconfigurate](/it/mcp#use-pre-configured-oauth-credentials). Evita il prompt interattivo quando si aggiunge un server con `--client-secret` |332| `MCP_CLIENT_SECRET` | Segreto client OAuth per i server MCP che richiedono [credenziali preconfigurate](/it/mcp#use-pre-configured-oauth-credentials). Evita il prompt interattivo quando si aggiunge un server con `--client-secret` |

320| `MCP_CONNECTION_NONBLOCKING` | Controlla se l'avvio attende che i server MCP si connettano prima della prima query. {/* min-version: 2.1.142 */}A partire da Claude Code v2.1.142, l'avvio MCP è non-bloccante per impostazione predefinita: i server si connettono in background e i loro strumenti diventano disponibili man mano che finiscono. Imposta su `0` per ripristinare l'attesa di connessione bloccante di 5 secondi. I server configurati con [`alwaysLoad: true`](/it/mcp#exempt-a-server-from-deferral) bloccano comunque l'avvio indipendentemente, poiché i loro strumenti devono essere presenti quando viene costruito il primo prompt |333| `MCP_CONNECTION_NONBLOCKING` | Controlla se l'avvio attende che i server MCP si connettano prima della prima query. {/* min-version: 2.1.142 */}A partire da Claude Code v2.1.142, l'avvio MCP è non-bloccante per impostazione predefinita: i server si connettono in background e i loro strumenti diventano disponibili man mano che finiscono. Imposta su `0` per ripristinare l'attesa di connessione bloccante di 5 secondi. I server configurati con [`alwaysLoad: true`](/it/mcp#exempt-a-server-from-deferral) bloccano comunque l'avvio indipendentemente, poiché i loro strumenti devono essere presenti quando viene costruito il primo prompt |

321| `MCP_CONNECT_TIMEOUT_MS` | Quanto tempo l'avvio bloccante attende, in millisecondi, per il batch di connessione prima di acquisire uno snapshot dell'elenco degli strumenti (predefinito: 5000). Si applica quando `MCP_CONNECTION_NONBLOCKING=0` o per i server contrassegnati [`alwaysLoad: true`](/it/mcp#exempt-a-server-from-deferral). I server ancora in sospeso alla scadenza continuano a connettersi in background ma non appariranno fino alla query successiva. Distinto da `MCP_TIMEOUT`, che limita il tentativo di connessione di un singolo server |334| `MCP_CONNECT_TIMEOUT_MS` | Quanto tempo l'avvio bloccante attende, in millisecondi, per il batch di connessione prima di acquisire uno snapshot dell'elenco degli strumenti (predefinito: 5000). Si applica quando `MCP_CONNECTION_NONBLOCKING=0` o per i server contrassegnati [`alwaysLoad: true`](/it/mcp#exempt-a-server-from-deferral). I server ancora in sospeso alla scadenza continuano a connettersi in background ma non appariranno fino alla query successiva. Distinto da `MCP_TIMEOUT`, che limita il tentativo di connessione di un singolo server |


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

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

325| `MCP_TIMEOUT` | Timeout in millisecondi per l'avvio del server MCP (predefinito: 30000, o 30 secondi) |338| `MCP_TIMEOUT` | Timeout in millisecondi per l'avvio del server MCP (predefinito: 30000, o 30 secondi) |

326| `MCP_TOOL_TIMEOUT` | Timeout in millisecondi per l'esecuzione dello strumento MCP (predefinito: 100000000, circa 28 ore). Un campo `timeout` per server in `.mcp.json` sostituisce questo per quel server. I valori inferiori a 1000 vengono arrotondati a un secondo |339| `MCP_TOOL_TIMEOUT` | Timeout in millisecondi per l'esecuzione dello strumento MCP (predefinito: 100000000, circa 28 ore). Un campo `timeout` per server in `.mcp.json` sostituisce questo per quel server. Per la variabile env, i valori inferiori a 1000 vengono arrotondati a un secondo; per il campo per server, i valori inferiori a 1000 vengono ignorati |

327| `NO_PROXY` | Elenco di domini e IP a cui le richieste verranno emesse direttamente, bypassando il proxy |340| `NO_PROXY` | Elenco di domini e IP a cui le richieste verranno emesse direttamente, bypassando il proxy |

328| `OTEL_LOG_RAW_API_BODIES` | Emetti il JSON della richiesta e della risposta dell'API Anthropic Messages come eventi di log `api_request_body` / `api_response_body`. Imposta su `1` per i corpi inline troncati a 60 KB, o `file:<dir>` per scrivere i corpi non troncati su disco ed emettere un percorso `body_ref` invece. Disabilitato per impostazione predefinita; i corpi includono l'intera cronologia della conversazione. Vedi [Monitoraggio](/it/monitoring-usage#api-request-body-event) |341| `OTEL_LOG_RAW_API_BODIES` | Emetti il JSON della richiesta e della risposta dell'API Anthropic Messages come eventi di log `api_request_body` / `api_response_body`. Imposta su `1` per i corpi inline troncati a 60 KB, o `file:<dir>` per scrivere i corpi non troncati su disco ed emettere un percorso `body_ref` invece. Disabilitato per impostazione predefinita; i corpi includono l'intera cronologia della conversazione. Vedi [Monitoraggio](/it/monitoring-usage#api-request-body-event) |

329| `OTEL_LOG_TOOL_CONTENT` | Imposta su `1` per includere il contenuto di input e output dello strumento negli eventi span OpenTelemetry. Disabilitato per impostazione predefinita per proteggere i dati sensibili. Vedi [Monitoraggio](/it/monitoring-usage) |342| `OTEL_LOG_TOOL_CONTENT` | Imposta su `1` per includere il contenuto di input e output dello strumento negli eventi span OpenTelemetry. Disabilitato per impostazione predefinita per proteggere i dati sensibili. Vedi [Monitoraggio](/it/monitoring-usage) |


348| `VERTEX_REGION_CLAUDE_4_6_OPUS` | Sovrascrivi la regione per Claude Opus 4.6 quando si utilizza Vertex AI |361| `VERTEX_REGION_CLAUDE_4_6_OPUS` | Sovrascrivi la regione per Claude Opus 4.6 quando si utilizza Vertex AI |

349| `VERTEX_REGION_CLAUDE_4_6_SONNET` | Sovrascrivi la regione per Claude Sonnet 4.6 quando si utilizza Vertex AI |362| `VERTEX_REGION_CLAUDE_4_6_SONNET` | Sovrascrivi la regione per Claude Sonnet 4.6 quando si utilizza Vertex AI |

350| `VERTEX_REGION_CLAUDE_4_7_OPUS` | {/* min-version: 2.1.111 */}Sovrascrivi la regione per Claude Opus 4.7 quando si utilizza Vertex AI. Aggiunto in v2.1.111 |363| `VERTEX_REGION_CLAUDE_4_7_OPUS` | {/* min-version: 2.1.111 */}Sovrascrivi la regione per Claude Opus 4.7 quando si utilizza Vertex AI. Aggiunto in v2.1.111 |

364| `VERTEX_REGION_CLAUDE_4_8_OPUS` | {/* min-version: 2.1.154 */}Sovrascrivi la regione per Claude Opus 4.8 quando si utilizza Vertex AI. Aggiunto in v2.1.154 |

365| `VERTEX_REGION_CLAUDE_FABLE_5` | {/* min-version: 2.1.170 */}Sovrascrivi la regione per Claude Fable 5 quando si utilizza Vertex AI. Aggiunto in v2.1.170 |

351| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Sovrascrivi la regione per Claude Haiku 4.5 quando si utilizza Vertex AI |366| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Sovrascrivi la regione per Claude Haiku 4.5 quando si utilizza Vertex AI |

352 367 

353Sono supportate anche le variabili standard dell'esportatore OpenTelemetry (`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES` e varianti specifiche del segnale). Vedi [Monitoraggio](/it/monitoring-usage) per i dettagli di configurazione.368Sono supportate anche le variabili standard dell'esportatore OpenTelemetry (`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES` e varianti specifiche del segnale). Vedi [Monitoraggio](/it/monitoring-usage) per i dettagli di configurazione.

errors.md +199 −48

Details

14 Claude Code chiama l'API Claude per le risposte del modello, quindi la maggior parte degli errori di runtime si mappano a un codice di errore API sottostante. Questa pagina copre cosa significa ogni errore all'interno di Claude Code e come recuperare. Per le definizioni del codice di stato HTTP grezzo, vedi il [riferimento degli errori della piattaforma Claude](https://platform.claude.com/docs/en/api/errors).14 Claude Code chiama l'API Claude per le risposte del modello, quindi la maggior parte degli errori di runtime si mappano a un codice di errore API sottostante. Questa pagina copre cosa significa ogni errore all'interno di Claude Code e come recuperare. Per le definizioni del codice di stato HTTP grezzo, vedi il [riferimento degli errori della piattaforma Claude](https://platform.claude.com/docs/en/api/errors).

15</Note>15</Note>

16 16 

17## Trova il tuo errore17<h2 id="find-your-error">

18 Trova il tuo errore

19</h2>

18 20 

19Abbina il messaggio che vedi nel tuo terminale a una sezione sottostante.21Abbina il messaggio che vedi nel tuo terminale a una sezione sottostante.

20 22 


26| `<model> is temporarily unavailable, so auto mode cannot determine the safety of...` | [Errori del server](#auto-mode-cannot-determine-the-safety-of-an-action) |28| `<model> is temporarily unavailable, so auto mode cannot determine the safety of...` | [Errori del server](#auto-mode-cannot-determine-the-safety-of-an-action) |

27| `Auto mode could not evaluate this action and is blocking it for safety` | [Errori del server](#auto-mode-cannot-determine-the-safety-of-an-action) |29| `Auto mode could not evaluate this action and is blocking it for safety` | [Errori del server](#auto-mode-cannot-determine-the-safety-of-an-action) |

28| `Auto mode classifier transcript exceeded context window` | [Errori del server](#auto-mode-cannot-determine-the-safety-of-an-action) |30| `Auto mode classifier transcript exceeded context window` | [Errori del server](#auto-mode-cannot-determine-the-safety-of-an-action) |

29| `You've hit your session limit` / `You've hit your weekly limit` | [Limiti di utilizzo](#youve-hit-your-session-limit) |31| `You've hit your session limit` / `You've hit your weekly limit` | [Limiti di utilizzo](#you%E2%80%99ve-hit-your-session-limit) |

32| `Usage credits required for 1M context` | [Limiti di utilizzo](#usage-credits-required-for-1m-context) |

30| `Server is temporarily limiting requests` | [Limiti di utilizzo](#server-is-temporarily-limiting-requests) |33| `Server is temporarily limiting requests` | [Limiti di utilizzo](#server-is-temporarily-limiting-requests) |

31| `Request rejected (429)` | [Limiti di utilizzo](#request-rejected-429) |34| `Request rejected (429)` | [Limiti di utilizzo](#request-rejected-429) |

32| `Credit balance is too low` | [Limiti di utilizzo](#credit-balance-is-too-low) |35| `Credit balance is too low` | [Limiti di utilizzo](#credit-balance-is-too-low) |

33| `Not logged in · Please run /login` | [Autenticazione](#not-logged-in) |36| `Not logged in · Please run /login` | [Autenticazione](#not-logged-in) |

37| `Could not resolve authentication method` | [Autenticazione](#could-not-resolve-authentication-method) |

34| `Invalid API key` | [Autenticazione](#invalid-api-key) |38| `Invalid API key` | [Autenticazione](#invalid-api-key) |

35| `This organization has been disabled` | [Autenticazione](#this-organization-has-been-disabled) |39| `This organization has been disabled` | [Autenticazione](#this-organization-has-been-disabled) |

40| `Your organization has disabled API key authentication` | [Autenticazione](#your-organization-has-disabled-api-key-authentication) |

36| `Your organization has disabled Claude subscription access` | [Autenticazione](#your-organization-has-disabled-claude-subscription-access) |41| `Your organization has disabled Claude subscription access` | [Autenticazione](#your-organization-has-disabled-claude-subscription-access) |

37| `Routines are disabled by your organization's policy` | [Autenticazione](#routines-are-disabled-by-your-organizations-policy) |42| `Routines are disabled by your organization's policy` | [Autenticazione](#routines-are-disabled-by-your-organization%E2%80%99s-policy) |

38| `OAuth token revoked` / `OAuth token has expired` | [Autenticazione](#oauth-token-revoked-or-expired) |43| `OAuth token revoked` / `OAuth token has expired` | [Autenticazione](#oauth-token-revoked-or-expired) |

39| `does not meet scope requirement user:profile` | [Autenticazione](#oauth-scope-requirement) |44| `does not meet scope requirement user:profile` | [Autenticazione](#oauth-scope-requirement) |

40| `Unable to connect to API` | [Rete](#unable-to-connect-to-api) |45| `Unable to connect to API` | [Rete](#unable-to-connect-to-api) |


47| `Unable to resize image` | [Errori di richiesta](#unable-to-resize-image) |52| `Unable to resize image` | [Errori di richiesta](#unable-to-resize-image) |

48| `PDF too large` / `PDF is password protected` | [Errori di richiesta](#pdf-errors) |53| `PDF too large` / `PDF is password protected` | [Errori di richiesta](#pdf-errors) |

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

50| `There's an issue with the selected model` | [Errori di richiesta](#theres-an-issue-with-the-selected-model) |55| `There's an issue with the selected model` | [Errori di richiesta](#there%E2%80%99s-an-issue-with-the-selected-model) |

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

52| `thinking.type.enabled is not supported for this model` | [Errori di richiesta](#thinking-type-enabled-is-not-supported-for-this-model) |57| `thinking.type.enabled is not supported for this model` | [Errori di richiesta](#thinking-type-enabled-is-not-supported-for-this-model) |

53| `max_tokens must be greater than thinking.budget_tokens` | [Errori di richiesta](#thinking-budget-exceeds-output-limit) |58| `max_tokens must be greater than thinking.budget_tokens` | [Errori di richiesta](#thinking-budget-exceeds-output-limit) |


55| `Claude Code is unable to respond to this request, which appears to violate our Usage Policy` | [Errori di richiesta](#usage-policy-refusal) |60| `Claude Code is unable to respond to this request, which appears to violate our Usage Policy` | [Errori di richiesta](#usage-policy-refusal) |

56| Le risposte sembrano di qualità inferiore al solito | [Qualità della risposta](#responses-seem-lower-quality-than-usual) |61| Le risposte sembrano di qualità inferiore al solito | [Qualità della risposta](#responses-seem-lower-quality-than-usual) |

57 62 

58## Tentativi automatici63<h2 id="automatic-retries">

64 Tentativi automatici

65</h2>

59 66 

60Claude Code ritenta i guasti transitori prima di mostrarti un errore. Gli errori del server, le risposte sovraccariche, i timeout delle richieste, i throttle 429 temporanei e le connessioni interrotte vengono tutti ritentati fino a 10 volte con backoff esponenziale. Durante il tentativo, lo spinner mostra un countdown `Retrying in Ns · attempt x/y`.67Claude Code ritenta i guasti transitori prima di mostrarti un errore. Gli errori del server, le risposte sovraccariche, i timeout delle richieste, i throttle 429 temporanei e le connessioni interrotte vengono tutti ritentati fino a 10 volte con backoff esponenziale. Durante il tentativo, lo spinner mostra un countdown `Retrying in Ns · attempt x/y`.

61 68 


66| [`CLAUDE_CODE_MAX_RETRIES`](/it/env-vars) | 10 | Numero di tentativi di ripetizione. Abbassalo per far emergere i guasti più velocemente negli script; aumentalo per attendere attraverso incidenti più lunghi. |73| [`CLAUDE_CODE_MAX_RETRIES`](/it/env-vars) | 10 | Numero di tentativi di ripetizione. Abbassalo per far emergere i guasti più velocemente negli script; aumentalo per attendere attraverso incidenti più lunghi. |

67| [`API_TIMEOUT_MS`](/it/env-vars) | 600000 | Timeout per richiesta in millisecondi. Aumentalo per reti lente o proxy. |74| [`API_TIMEOUT_MS`](/it/env-vars) | 600000 | Timeout per richiesta in millisecondi. Aumentalo per reti lente o proxy. |

68 75 

69## Errori del server76<h2 id="server-errors">

77 Errori del server

78</h2>

70 79 

71Questi errori provengono dal provider di inferenza piuttosto che dal tuo account o dalla tua richiesta. Sull'API Anthropic significa infrastruttura Anthropic. Su Bedrock, Vertex AI, Foundry o un gateway personalizzato significa l'infrastruttura di quel provider.80Questi errori provengono dal provider di inferenza piuttosto che dal tuo account o dalla tua richiesta. Sull'API Anthropic significa infrastruttura Anthropic. Su Bedrock, Vertex AI, Foundry o un gateway personalizzato significa l'infrastruttura di quel provider.

72 81 

73### API Error: 500 Internal server error82<h3 id="api-error-500-internal-server-error">

83 API Error: 500 Internal server error

84</h3>

74 85 

75Claude Code mostra il codice di stato e il messaggio di errore dell'API per qualsiasi risposta 5xx. L'esempio sottostante mostra una risposta 500 sull'API Anthropic:86Claude Code mostra il codice di stato e il messaggio di errore dell'API per qualsiasi risposta 5xx. L'esempio sottostante mostra una risposta 500 sull'API Anthropic:

76 87 


88* Attendi un minuto, quindi invia di nuovo il tuo messaggio. Il tuo messaggio originale è ancora nella conversazione, quindi per un prompt lungo puoi digitare `try again` invece di incollare l'intera cosa.99* Attendi un minuto, quindi invia di nuovo il tuo messaggio. Il tuo messaggio originale è ancora nella conversazione, quindi per un prompt lungo puoi digitare `try again` invece di incollare l'intera cosa.

89* Se l'errore persiste senza un incidente pubblicato, esegui `/feedback` in modo che Anthropic possa indagare con i dettagli della tua richiesta. Vedi [Segnala un errore](#report-an-error) se `/feedback` non è disponibile nel tuo ambiente.100* Se l'errore persiste senza un incidente pubblicato, esegui `/feedback` in modo che Anthropic possa indagare con i dettagli della tua richiesta. Vedi [Segnala un errore](#report-an-error) se `/feedback` non è disponibile nel tuo ambiente.

90 101 

91### API Error: Repeated 529 Overloaded errors102<h3 id="api-error-repeated-529-overloaded-errors">

103 API Error: Repeated 529 Overloaded errors

104</h3>

92 105 

93L'API è temporaneamente a capacità su tutti gli utenti. Claude Code ha già ritentato più volte prima di mostrare questo messaggio:106L'API è temporaneamente a capacità su tutti gli utenti. Claude Code ha già ritentato più volte prima di mostrare questo messaggio:

94 107 


104* Riprova tra pochi minuti117* Riprova tra pochi minuti

105* Esegui `/model` e passa a un modello diverso per continuare a lavorare, poiché la capacità è tracciata per modello. Claude Code ti chiede di farlo quando un modello è sotto un carico particolarmente elevato, ad esempio `Opus is experiencing high load, please use /model to switch to Sonnet`.118* Esegui `/model` e passa a un modello diverso per continuare a lavorare, poiché la capacità è tracciata per modello. Claude Code ti chiede di farlo quando un modello è sotto un carico particolarmente elevato, ad esempio `Opus is experiencing high load, please use /model to switch to Sonnet`.

106 119 

107### Request timed out120<h3 id="request-timed-out">

121 Request timed out

122</h3>

108 123 

109L'API non ha risposto prima della scadenza della connessione.124L'API non ha risposto prima della scadenza della connessione.

110 125 


121* Se una rete lenta o un proxy è la causa, aumenta `API_TIMEOUT_MS` come descritto in [Tentativi automatici](#automatic-retries)136* Se una rete lenta o un proxy è la causa, aumenta `API_TIMEOUT_MS` come descritto in [Tentativi automatici](#automatic-retries)

122* Se i timeout sono frequenti e la tua rete è altrimenti sana, vedi [Errori di rete e connessione](#network-and-connection-errors) sottostante137* Se i timeout sono frequenti e la tua rete è altrimenti sana, vedi [Errori di rete e connessione](#network-and-connection-errors) sottostante

123 138 

124### Auto mode cannot determine the safety of an action139<h3 id="auto-mode-cannot-determine-the-safety-of-an-action">

140 Auto mode cannot determine the safety of an action

141</h3>

125 142 

126Il modello che [auto mode](/it/permission-modes#eliminate-prompts-with-auto-mode) utilizza per classificare le azioni non ha potuto produrre una decisione, quindi auto mode non ha approvato l'azione automaticamente. Il messaggio che vedi dipende dal motivo per cui il classificatore ha fallito.143Il modello che [auto mode](/it/permission-modes#eliminate-prompts-with-auto-mode) utilizza per classificare le azioni non ha potuto produrre una decisione, quindi auto mode non ha approvato l'azione automaticamente. Il messaggio che vedi dipende dal motivo per cui il classificatore ha fallito.

127 144 


163* Approva o nega l'azione nel prompt che appare180* Approva o nega l'azione nel prompt che appare

164* Esegui `/compact` per ridurre la dimensione della conversazione in modo che le azioni successive si adattino di nuovo alla finestra del classificatore181* Esegui `/compact` per ridurre la dimensione della conversazione in modo che le azioni successive si adattino di nuovo alla finestra del classificatore

165 182 

166## Limiti di utilizzo183<h2 id="usage-limits">

184 Limiti di utilizzo

185</h2>

167 186 

168Questi errori significano che una quota legata al tuo account o al tuo piano è stata raggiunta. Sono distinti dagli [errori del server](#server-errors), che interessano tutti.187Questi errori significano che una quota legata al tuo account o al tuo piano è stata raggiunta. Sono distinti dagli [errori del server](#server-errors), che interessano tutti.

169 188 

170### You've hit your session limit189<h3 id="you’ve-hit-your-session-limit">

190 You've hit your session limit

191</h3>

171 192 

172I piani di abbonamento includono un'indennità di utilizzo mobile. Quando si esaurisce vedi uno di questi messaggi:193I piani di abbonamento includono un'indennità di utilizzo mobile. Quando si esaurisce vedi uno di questi messaggi:

173 194 


188 209 

189Per controllare la tua indennità rimanente prima di raggiungere il limite, aggiungi i campi `rate_limits` a una [linea di stato personalizzata](/it/statusline#rate-limit-usage), o nell'app Desktop fai clic sull'[anello di utilizzo](/it/desktop#check-usage) accanto al selettore di modello.210Per controllare la tua indennità rimanente prima di raggiungere il limite, aggiungi i campi `rate_limits` a una [linea di stato personalizzata](/it/statusline#rate-limit-usage), o nell'app Desktop fai clic sull'[anello di utilizzo](/it/desktop#check-usage) accanto al selettore di modello.

190 211 

191### Server is temporarily limiting requests212<h3 id="usage-credits-required-for-1m-context">

213 Usage credits required for 1M context

214</h3>

215 

216Il modello selezionato utilizza la finestra di contesto estesa da 1M token, e il tuo piano lo include solo tramite crediti di utilizzo.

217 

218```text theme={null}

219API Error: Usage credits required for 1M context · run /usage-credits to turn them on, or /model to switch to standard context

220```

221 

222Questo è un controllo di diritto, non un esaurimento della quota. Si attiva anche quando le tue indennità di sessione e settimanali hanno capacità rimanente. Vedi [Extended context](/it/model-config#extended-context) per quali piani includono il contesto 1M direttamente e quali richiedono crediti di utilizzo.

223 

224{/* min-version: 2.1.172 */}Quando questo errore appare a metà conversazione perché il contesto è cresciuto oltre i 200K token, Claude Code compatta automaticamente la conversazione tornando sotto il limite di contesto standard e mantiene la sessione a quel limite in seguito, quindi non è necessaria alcuna azione. Nelle versioni precedenti a v2.1.172, l'errore si ripeteva su ogni richiesta successiva incluso `/compact`; esegui `/clear` su quelle versioni per recuperare. I passaggi seguenti si applicano quando hai esplicitamente selezionato un modello `[1m]`.

225 

226**Cosa fare:**

227 

228* Esegui `/model` e seleziona la variante senza il suffisso `[1m]` per tornare alla finestra di contesto standard

229* Esegui `/usage-credits` per attivare la fatturazione a consumo per la variante 1M su Pro e Max, o per richiederla al tuo amministratore su Team ed Enterprise

230* Se l'errore persiste dopo `/model`, un ID modello 1M potrebbe essere impostato altrove. Vedi [There's an issue with the selected model](#there%E2%80%99s-an-issue-with-the-selected-model) per i percorsi di configurazione da controllare in ordine di priorità.

231* Per rimuovere completamente le varianti 1M dal selettore di modello, imposta [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/it/env-vars)

232 

233<h3 id="server-is-temporarily-limiting-requests">

234 Server is temporarily limiting requests

235</h3>

192 236 

193L'API ha applicato un throttle di breve durata non correlato alla tua quota del piano.237L'API ha applicato un throttle di breve durata non correlato alla tua quota del piano.

194 238 


203* Attendi brevemente e riprova247* Attendi brevemente e riprova

204* Controlla [status.claude.com](https://status.claude.com) se persiste248* Controlla [status.claude.com](https://status.claude.com) se persiste

205 249 

206### Request rejected (429)250<h3 id="request-rejected-429">

251 Request rejected (429)

252</h3>

207 253 

208Hai raggiunto il limite di velocità configurato per la tua chiave API, il progetto Amazon Bedrock o il progetto Google Vertex AI.254Hai raggiunto il limite di velocità configurato per la tua chiave API, il progetto Amazon Bedrock o il progetto Google Vertex AI.

209 255 


220* Per le chiavi API Anthropic, vedi il [riferimento dei limiti di velocità](https://platform.claude.com/docs/en/api/rate-limits) per come funzionano i livelli e come impostare i limiti per workspace266* Per le chiavi API Anthropic, vedi il [riferimento dei limiti di velocità](https://platform.claude.com/docs/en/api/rate-limits) per come funzionano i livelli e come impostare i limiti per workspace

221* Riduci la concorrenza: abbassa [`CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY`](/it/env-vars), evita di eseguire molti subagent paralleli, o passa a un modello più piccolo con `/model` per esecuzioni di script ad alto volume267* Riduci la concorrenza: abbassa [`CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY`](/it/env-vars), evita di eseguire molti subagent paralleli, o passa a un modello più piccolo con `/model` per esecuzioni di script ad alto volume

222 268 

223### Credit balance is too low269<h3 id="credit-balance-is-too-low">

270 Credit balance is too low

271</h3>

224 272 

225La tua organizzazione Console ha esaurito i crediti prepagati.273La tua organizzazione Console ha esaurito i crediti prepagati.

226 274 


234* Passa all'autenticazione tramite abbonamento con `/login` se hai un piano Pro, Max, Team o Enterprise282* Passa all'autenticazione tramite abbonamento con `/login` se hai un piano Pro, Max, Team o Enterprise

235* Imposta i limiti di spesa per workspace nella Console per evitare che un singolo progetto dreni il saldo dell'organizzazione. Vedi [Manage costs effectively](/it/costs).283* Imposta i limiti di spesa per workspace nella Console per evitare che un singolo progetto dreni il saldo dell'organizzazione. Vedi [Manage costs effectively](/it/costs).

236 284 

237## Errori di autenticazione285<h2 id="authentication-errors">

286 Errori di autenticazione

287</h2>

238 288 

239Questi errori significano che Claude Code non può provare chi sei all'API. Esegui `/status` in qualsiasi momento per vedere quale credenziale è attualmente attiva.289Questi errori significano che Claude Code non può provare chi sei all'API. Esegui `/status` in qualsiasi momento per vedere quale credenziale è attualmente attiva.

240 290 

241### Not logged in291<h3 id="not-logged-in">

292 Not logged in

293</h3>

242 294 

243Nessuna credenziale valida è disponibile per questa sessione.295Nessuna credenziale valida è disponibile per questa sessione.

244 296 


255 307 

256Se ti viene chiesto di accedere ripetutamente, vedi [Not logged in or token expired](/it/troubleshoot-install#not-logged-in-or-token-expired) per le correzioni dell'orologio di sistema e del Keychain di macOS.308Se ti viene chiesto di accedere ripetutamente, vedi [Not logged in or token expired](/it/troubleshoot-install#not-logged-in-or-token-expired) per le correzioni dell'orologio di sistema e del Keychain di macOS.

257 309 

258### Invalid API key310<h3 id="could-not-resolve-authentication-method">

311 Could not resolve authentication method

312</h3>

313 

314La sessione ha raggiunto il client API senza alcuna credenziale. Questo appare nelle [sessioni in background](/it/agent-view), sessioni cloud e contesti Agent SDK in cui il controllo di accesso interattivo non viene eseguito prima della prima richiesta.

315 

316```text theme={null}

317Could not resolve authentication method. Expected one of apiKey, authToken, credentials, config, or profile to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted

318```

319 

320{/* min-version: 2.1.174 */}Prima della v2.1.174, una sessione in background o cloud assegnata a un worker pre-inizializzato inattivo potrebbe fallire in questo modo anche quando le credenziali valide erano configurate. Esegui l'upgrade per recuperare. Nelle versioni attuali l'errore significa che nessuna credenziale era disponibile per il processo worker.

321 

322**Cosa fare:**

323 

324* Esegui l'upgrade alla v2.1.174 o successiva se questo appare in una sessione in background o cloud e le tue credenziali sono già configurate

325* Conferma che `ANTHROPIC_API_KEY`, `CLAUDE_CODE_OAUTH_TOKEN` o le credenziali del tuo provider cloud siano impostati nell'ambiente che avvia il worker, non solo nella tua shell interattiva

326* Per l'Agent SDK, vedi [configurazione dell'autenticazione](/it/agent-sdk/overview#get-started)

327* Esegui `/status` in una sessione interattiva nello stesso ambiente per confermare quale fonte di credenziale si risolve

328 

329<h3 id="invalid-api-key">

330 Invalid API key

331</h3>

259 332 

260La variabile di ambiente `ANTHROPIC_API_KEY` o lo script `apiKeyHelper` ha restituito una chiave che l'API ha rifiutato.333La variabile di ambiente `ANTHROPIC_API_KEY` o lo script `apiKeyHelper` ha restituito una chiave che l'API ha rifiutato.

261 334 


271* Se la chiave proviene da uno script [`apiKeyHelper`](/it/settings#available-settings), esegui lo script direttamente per confermare che stampa una chiave valida su stdout344* Se la chiave proviene da uno script [`apiKeyHelper`](/it/settings#available-settings), esegui lo script direttamente per confermare che stampa una chiave valida su stdout

272* Esegui `/status` per confermare quale fonte di credenziale Claude Code sta effettivamente utilizzando345* Esegui `/status` per confermare quale fonte di credenziale Claude Code sta effettivamente utilizzando

273 346 

274### This organization has been disabled347<h3 id="this-organization-has-been-disabled">

348 This organization has been disabled

349</h3>

275 350 

276Una `ANTHROPIC_API_KEY` obsoleta da un'organizzazione Console disabilitata sta sovrascrivendo il tuo accesso tramite abbonamento.351Una `ANTHROPIC_API_KEY` obsoleta da un'organizzazione Console disabilitata sta sovrascrivendo il tuo accesso tramite abbonamento.

277 352 


288* Esegui `/status` in seguito per confermare che la credenziale attiva è il tuo abbonamento363* Esegui `/status` in seguito per confermare che la credenziale attiva è il tuo abbonamento

289* Se nessuna variabile di ambiente è impostata e l'errore persiste, l'organizzazione disabilitata è quella legata al tuo `/login`. Contatta il supporto o accedi con un account diverso.364* Se nessuna variabile di ambiente è impostata e l'errore persiste, l'organizzazione disabilitata è quella legata al tuo `/login`. Contatta il supporto o accedi con un account diverso.

290 365 

291### Your organization has disabled Claude subscription access366<h3 id="your-organization-has-disabled-api-key-authentication">

367 Your organization has disabled API key authentication

368</h3>

369 

370L'amministratore della tua organizzazione Console ha disattivato l'autenticazione tramite chiave API, quindi l'API rifiuta la chiave che Claude Code sta inviando. L'hint di recupero dopo il `·` varia a seconda di dove proviene la chiave:

371 

372```text theme={null}

373Your organization has disabled API key authentication · Run /login to sign in with your claude.ai account

374Your organization has disabled API key authentication · Unset ANTHROPIC_API_KEY to use your claude.ai account instead

375Your organization has disabled API key authentication · Unset ANTHROPIC_API_KEY and run /login to sign in with your claude.ai account

376Your organization has disabled API key authentication · Unset the apiKeyHelper setting and run /login to sign in with your claude.ai account

377```

378 

379Le variabili di ambiente e `apiKeyHelper` hanno la precedenza su `/login`, quindi eseguire solo `/login` non aiuta mentre uno dei due sta ancora fornendo una chiave. Vedi [Authentication precedence](/it/authentication#authentication-precedence).

380 

381**Cosa fare:**

382 

383* Se il messaggio nomina `ANTHROPIC_API_KEY`, annulla l'impostazione nella shell corrente e rimuovilo dal tuo profilo shell o dal file `.env`, quindi riavvia `claude`

384* Se il messaggio nomina `apiKeyHelper`, rimuovi l'impostazione [`apiKeyHelper`](/it/settings#available-settings) dal tuo `settings.json`

385* Esegui `/login` per accedere con il tuo account claude.ai

386* Esegui `/status` in seguito per confermare che la credenziale attiva è il tuo abbonamento piuttosto che una chiave API

387* Se hai bisogno dell'autenticazione tramite chiave API per l'automazione, chiedi al tuo amministratore dell'organizzazione di riattivarla nella Console

388 

389<h3 id="your-organization-has-disabled-claude-subscription-access">

390 Your organization has disabled Claude subscription access

391</h3>

292 392 

293La tua organizzazione Claude non consente l'accesso a Claude Code con un accesso tramite abbonamento. Eseguire `/login` di nuovo con lo stesso account restituisce lo stesso errore.393La tua organizzazione Claude non consente l'accesso a Claude Code con un accesso tramite abbonamento. Eseguire `/login` di nuovo con lo stesso account restituisce lo stesso errore.

294 394 


304* Autenticati con una chiave API Console invece del tuo abbonamento. Vedi [Claude Console authentication](/it/authentication#claude-console-authentication) per la configurazione.404* Autenticati con una chiave API Console invece del tuo abbonamento. Vedi [Claude Console authentication](/it/authentication#claude-console-authentication) per la configurazione.

305* Se sei l'amministratore e non vedi un'opzione per abilitare l'accesso, contatta il [supporto Anthropic](https://support.claude.com)405* Se sei l'amministratore e non vedi un'opzione per abilitare l'accesso, contatta il [supporto Anthropic](https://support.claude.com)

306 406 

307### Routines are disabled by your organization's policy407<h3 id="routines-are-disabled-by-your-organizations-policy">

408 Routines are disabled by your organization's policy

409</h3>

308 410 

309L'amministratore del tuo Team o Enterprise ha disattivato le routine a livello organizzativo. L'errore appare quando tenti di creare o eseguire una routine, incluso da `/schedule` e dall'interfaccia utente [Routines](/it/routines) su claude.ai/code.411L'amministratore del tuo Team o Enterprise ha disattivato le routine a livello organizzativo. L'errore appare quando tenti di creare o eseguire una routine, incluso da `/schedule` e dall'interfaccia utente [Routines](/it/routines) su claude.ai/code.

310 412 


319* Chiedi al tuo amministratore di abilitare l'interruttore **Routines** su [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)421* Chiedi al tuo amministratore di abilitare l'interruttore **Routines** su [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)

320* Per lavori programmati una tantum che non richiedono routine a livello organizzativo, vedi [scheduled tasks](/it/scheduled-tasks)422* Per lavori programmati una tantum che non richiedono routine a livello organizzativo, vedi [scheduled tasks](/it/scheduled-tasks)

321 423 

322### OAuth token revoked or expired424<h3 id="oauth-token-revoked-or-expired">

425 OAuth token revoked or expired

426</h3>

323 427 

324Il tuo accesso salvato non è più valido. Un token revocato significa che hai effettuato il logout ovunque o un amministratore ha rimosso l'accesso; un token scaduto significa che l'aggiornamento automatico non è riuscito a metà sessione.428Il tuo accesso salvato non è più valido. Un token revocato significa che hai effettuato il logout ovunque o un amministratore ha rimosso l'accesso; un token scaduto significa che l'aggiornamento automatico non è riuscito a metà sessione.

325 429 


336* Per prompt ripetuti di accesso tra i lanci, vedi i controlli dell'orologio di sistema e del Keychain di macOS in [Troubleshooting](/it/troubleshoot-install#not-logged-in-or-token-expired)440* Per prompt ripetuti di accesso tra i lanci, vedi i controlli dell'orologio di sistema e del Keychain di macOS in [Troubleshooting](/it/troubleshoot-install#not-logged-in-or-token-expired)

337* Per altri guasti inclusi `403 Forbidden` e problemi del browser OAuth, vedi [Login and authentication](/it/troubleshoot-install#login-and-authentication)441* Per altri guasti inclusi `403 Forbidden` e problemi del browser OAuth, vedi [Login and authentication](/it/troubleshoot-install#login-and-authentication)

338 442 

339### OAuth scope requirement443<h3 id="oauth-scope-requirement">

444 OAuth scope requirement

445</h3>

340 446 

341Il token memorizzato precede un ambito di autorizzazione che una funzione più recente necessita. Lo vedi più spesso da `/usage` e dall'indicatore di utilizzo della linea di stato:447Il token memorizzato precede un ambito di autorizzazione che una funzione più recente necessita. Lo vedi più spesso da `/usage` e dall'indicatore di utilizzo della linea di stato:

342 448 


348 454 

349* Esegui `/login` per creare un nuovo token con gli ambiti attuali. Non è necessario effettuare il logout prima.455* Esegui `/login` per creare un nuovo token con gli ambiti attuali. Non è necessario effettuare il logout prima.

350 456 

351## Errori di rete e connessione457<h2 id="network-and-connection-errors">

458 Errori di rete e connessione

459</h2>

352 460 

353Questi errori significano che una richiesta di rete da Claude Code non è riuscita a raggiungere la sua destinazione. Di solito provengono dalla tua rete locale, proxy o firewall, o dalla politica di rete dell'ambiente cloud.461Questi errori significano che una richiesta di rete da Claude Code non è riuscita a raggiungere la sua destinazione. Di solito provengono dalla tua rete locale, proxy o firewall, o dalla politica di rete dell'ambiente cloud.

354 462 

355### Unable to connect to API463<h3 id="unable-to-connect-to-api">

464 Unable to connect to API

465</h3>

356 466 

357La connessione TCP all'API non è riuscita o non si è mai completata.467La connessione TCP all'API non è riuscita o non si è mai completata.

358 468 


381* Su macOS, un client VPN che è stato disconnesso o disinstallato può lasciare dietro un'interfaccia tunnel o una regola di routing. Controlla `ifconfig` per interfacce `utun` obsolete e rimuovi l'estensione di rete della VPN in Impostazioni di Sistema.491* Su macOS, un client VPN che è stato disconnesso o disinstallato può lasciare dietro un'interfaccia tunnel o una regola di routing. Controlla `ifconfig` per interfacce `utun` obsolete e rimuovi l'estensione di rete della VPN in Impostazioni di Sistema.

382* Docker Desktop e runtime di container simili possono intercettare il traffico in uscita. Esci da loro e ritenta per escluderlo.492* Docker Desktop e runtime di container simili possono intercettare il traffico in uscita. Esci da loro e ritenta per escluderlo.

383 493 

384### SSL certificate errors494<h3 id="ssl-certificate-errors">

495 SSL certificate errors

496</h3>

385 497 

386Un proxy o un'appliance di sicurezza sulla tua rete sta intercettando il traffico TLS con il suo certificato, e Claude Code non lo considera attendibile.498Un proxy o un'appliance di sicurezza sulla tua rete sta intercettando il traffico TLS con il suo certificato, e Claude Code non lo considera attendibile.

387 499 


396* Vedi [Network configuration](/it/network-config#custom-ca-certificates) per le istruzioni di configurazione complete508* Vedi [Network configuration](/it/network-config#custom-ca-certificates) per le istruzioni di configurazione complete

397* Non impostare `NODE_TLS_REJECT_UNAUTHORIZED=0`, che disabilita completamente la convalida del certificato509* Non impostare `NODE_TLS_REJECT_UNAUTHORIZED=0`, che disabilita completamente la convalida del certificato

398 510 

399### Host not allowed in a cloud session511<h3 id="host-not-allowed-in-a-cloud-session">

512 Host not allowed in a cloud session

513</h3>

400 514 

401Una richiesta HTTP in uscita da una sessione cloud o routine è stata bloccata dalla politica di rete dell'ambiente.515Una richiesta HTTP in uscita da una sessione cloud o routine è stata bloccata dalla politica di rete dell'ambiente.

402 516 


417 531 

418Vedi [Network access](/it/claude-code-on-the-web#network-access) per i livelli di accesso e la lista di autorizzazione predefinita. Le sessioni CLI locali non sono interessate da questa politica.532Vedi [Network access](/it/claude-code-on-the-web#network-access) per i livelli di accesso e la lista di autorizzazione predefinita. Le sessioni CLI locali non sono interessate da questa politica.

419 533 

420## Errori di richiesta534<h2 id="request-errors">

535 Errori di richiesta

536</h2>

421 537 

422Questi errori significano che l'API ha ricevuto la tua richiesta ma ha rifiutato il suo contenuto.538Questi errori significano che l'API ha ricevuto la tua richiesta ma ha rifiutato il suo contenuto.

423 539 

424### Prompt is too long540<h3 id="prompt-is-too-long">

541 Prompt is too long

542</h3>

425 543 

426La conversazione più i file allegati superano la finestra di contesto del modello.544La conversazione più i file allegati superano la finestra di contesto del modello.

427 545 


440 558 

441Vedi [Esplora la finestra di contesto](/it/context-window) per una vista interattiva di come il contesto si riempie.559Vedi [Esplora la finestra di contesto](/it/context-window) per una vista interattiva di come il contesto si riempie.

442 560 

443### Error during compaction: Conversation too long561<h3 id="error-during-compaction-conversation-too-long">

562 Error during compaction: Conversation too long

563</h3>

444 564 

445`/compact` stesso non è riuscito perché non c'è abbastanza contesto libero per contenere il riassunto che produce.565`/compact` stesso non è riuscito perché non c'è abbastanza contesto libero per contenere il riassunto che produce.

446 566 


455* Premi Esc due volte per aprire l'elenco dei messaggi e tornare indietro di diversi turni. Questo elimina i messaggi più recenti dal contesto. Quindi esegui `/compact` di nuovo.575* Premi Esc due volte per aprire l'elenco dei messaggi e tornare indietro di diversi turni. Questo elimina i messaggi più recenti dal contesto. Quindi esegui `/compact` di nuovo.

456* Se tornare indietro non libera abbastanza spazio, esegui `/clear` per avviare una sessione nuova. La tua conversazione precedente viene preservata e può essere riaperta con `/resume`.576* Se tornare indietro non libera abbastanza spazio, esegui `/clear` per avviare una sessione nuova. La tua conversazione precedente viene preservata e può essere riaperta con `/resume`.

457 577 

458### Request too large578<h3 id="request-too-large">

579 Request too large

580</h3>

459 581 

460Il corpo della richiesta grezzo ha superato il limite di byte dell'API prima della tokenizzazione, solitamente a causa di un file incollato grande o di un allegato.582Il corpo della richiesta grezzo ha superato il limite di byte dell'API prima della tokenizzazione, solitamente a causa di un file incollato grande o di un allegato.

461 583 


471* Fai riferimento ai file grandi per percorso invece di incollare i loro contenuti, in modo che Claude possa leggerli in blocchi593* Fai riferimento ai file grandi per percorso invece di incollare i loro contenuti, in modo che Claude possa leggerli in blocchi

472* Per le immagini, vedi [Image was too large](#image-was-too-large) sottostante594* Per le immagini, vedi [Image was too large](#image-was-too-large) sottostante

473 595 

474### Image was too large596<h3 id="image-was-too-large">

597 Image was too large

598</h3>

475 599 

476Un'immagine incollata o allegata supera i limiti di dimensione o dimensione dell'API.600Un'immagine incollata o allegata supera i limiti di dimensione o dimensione dell'API.

477 601 


480API Error: 400 ... image dimensions exceed max allowed size604API Error: 400 ... image dimensions exceed max allowed size

481```605```

482 606 

483L'immagine rimane nella cronologia della conversazione dopo l'errore, quindi ogni messaggio successivo fallisce con lo stesso errore fino a quando non la rimuovi.607{/* min-version: 2.1.142 */}Claude Code sostituisce l'immagine non elaborabile con un segnaposto di testo e riprova, quindi i messaggi successivi hanno successo. Nelle versioni precedenti a 2.1.142, un'immagine incollata potrebbe rimanere nella conversazione e ripetere lo stesso errore su ogni messaggio successivo. Per recuperare su quelle versioni, premi Esc due volte e torna indietro oltre il turno in cui l'immagine è stata aggiunta.

484 608 

485**Cosa fare:**609**Cosa fare:**

486 610 

487* Premi Esc due volte e torna indietro oltre il turno in cui l'immagine è stata aggiunta

488* Ridimensiona l'immagine prima di incollarla. L'API accetta immagini fino a 8000 pixel sul bordo più lungo per una singola immagine, o 2000 pixel quando molte immagini sono nel contesto.611* Ridimensiona l'immagine prima di incollarla. L'API accetta immagini fino a 8000 pixel sul bordo più lungo per una singola immagine, o 2000 pixel quando molte immagini sono nel contesto.

489* Fai uno screenshot più stretto della regione rilevante invece dello schermo intero612* Fai uno screenshot più stretto della regione rilevante invece dello schermo intero

490 613 

491### Unable to resize image614<h3 id="unable-to-resize-image">

615 Unable to resize image

616</h3>

492 617 

493Claude Code non poteva ridimensionare un'immagine allegata prima di inviarla all'API.618Claude Code non poteva ridimensionare un'immagine allegata prima di inviarla all'API.

494 619 


506* Se il messaggio ti chiede di convertire l'immagine, convertila in PNG, JPEG, GIF, o WebP e allegala di nuovo. Claude Code può verificare le dimensioni per questi formati senza il processore di immagini.631* Se il messaggio ti chiede di convertire l'immagine, convertila in PNG, JPEG, GIF, o WebP e allegala di nuovo. Claude Code può verificare le dimensioni per questi formati senza il processore di immagini.

507* Se il messaggio segnala un limite di dimensione o dimensione, ridimensiona o ricomprimi l'immagine al di sotto di quel limite prima di allegare.632* Se il messaggio segnala un limite di dimensione o dimensione, ridimensiona o ricomprimi l'immagine al di sotto di quel limite prima di allegare.

508 633 

509### PDF errors634<h3 id="pdf-errors">

635 PDF errors

636</h3>

510 637 

511Il PDF che hai allegato non poteva essere elaborato.638Il PDF che hai allegato non poteva essere elaborato.

512 639 


521* Per i PDF di dimensioni eccessive, chiedi a Claude di leggere un intervallo di pagine con lo strumento Read invece di allegare l'intero file, o estrai il testo con uno strumento come `pdftotext` e fai riferimento al file di output per percorso648* Per i PDF di dimensioni eccessive, chiedi a Claude di leggere un intervallo di pagine con lo strumento Read invece di allegare l'intero file, o estrai il testo con uno strumento come `pdftotext` e fai riferimento al file di output per percorso

522* Per i PDF protetti o non validi, rimuovi la password o ri-esporta il file dall'applicazione sorgente, quindi riprova649* Per i PDF protetti o non validi, rimuovi la password o ri-esporta il file dall'applicazione sorgente, quindi riprova

523 650 

524### Extra inputs are not permitted651<h3 id="extra-inputs-are-not-permitted">

652 Extra inputs are not permitted

653</h3>

525 654 

526Un proxy o un gateway LLM tra Claude Code e l'API ha rimosso l'intestazione della richiesta `anthropic-beta`, quindi l'API ha rifiutato i campi che dipendono da essa.655Un proxy o un gateway LLM tra Claude Code e l'API ha rimosso l'intestazione della richiesta `anthropic-beta`, quindi l'API ha rifiutato i campi che dipendono da essa.

527 656 


538* Configura il tuo gateway per inviare l'intestazione `anthropic-beta`. Vedi [Configurazione del gateway LLM](/it/llm-gateway).667* Configura il tuo gateway per inviare l'intestazione `anthropic-beta`. Vedi [Configurazione del gateway LLM](/it/llm-gateway).

539* Come fallback, imposta [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/it/env-vars) prima di lanciare. Questo disabilita le funzioni che richiedono l'intestazione beta in modo che le richieste abbiano successo attraverso un gateway che non può inoltrarla.668* Come fallback, imposta [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/it/env-vars) prima di lanciare. Questo disabilita le funzioni che richiedono l'intestazione beta in modo che le richieste abbiano successo attraverso un gateway che non può inoltrarla.

540 669 

541### There's an issue with the selected model670<h3 id="there’s-an-issue-with-the-selected-model">

671 There's an issue with the selected model

672</h3>

542 673 

543Il nome del modello configurato non è stato riconosciuto o il tuo account manca di accesso ad esso. A partire da v2.1.160 il suggerimento finale, mostrato qui nella sua forma interattiva, varia in base alla superficie.674Il nome del modello configurato non è stato riconosciuto o il tuo account manca di accesso ad esso. A partire da v2.1.160 il suggerimento finale, mostrato qui nella sua forma interattiva, varia in base alla superficie.

544 675 


551* **CLI interattiva**: esegui `/model` per scegliere dai modelli disponibili per il tuo account.682* **CLI interattiva**: esegui `/model` per scegliere dai modelli disponibili per il tuo account.

552* **Modalità non interattiva (`-p`)**: passa `--model` con un alias o ID valido, o imposta [`ANTHROPIC_MODEL`](/it/env-vars). Il testo di errore mostra `Run --model` su questa superficie.683* **Modalità non interattiva (`-p`)**: passa `--model` con un alias o ID valido, o imposta [`ANTHROPIC_MODEL`](/it/env-vars). Il testo di errore mostra `Run --model` su questa superficie.

553* **Agent SDK**: il testo di errore omette il suggerimento perché il modello è impostato a livello di programmazione. Imposta [`model` su `Options`](/it/agent-sdk/typescript#options) in TypeScript o [`ClaudeAgentOptions(model=...)`](/it/agent-sdk/python#claudeagentoptions) in Python, e gestisci l'errore strutturato `model_not_found` per visualizzare il tuo ritentativo o selettore di modello.684* **Agent SDK**: il testo di errore omette il suggerimento perché il modello è impostato a livello di programmazione. Imposta [`model` su `Options`](/it/agent-sdk/typescript#options) in TypeScript o [`ClaudeAgentOptions(model=...)`](/it/agent-sdk/python#claudeagentoptions) in Python, e gestisci l'errore strutturato `model_not_found` per visualizzare il tuo ritentativo o selettore di modello.

554* Usa un alias come `sonnet` o `opus` invece di un ID completamente versionato. Gli alias tracciano l'ultima versione in modo che non diventino obsoleti. Vedi [Configurazione del modello](/it/model-config).685* Usa un alias come `sonnet` o `opus` invece di un ID completamente versionato. Gli alias si risolvono a un valore predefinito mantenuto in modo che non diventino obsoleti. Vedi [Configurazione del modello](/it/model-config).

555* Se il modello sbagliato continua a tornare nella CLI, un ID obsoleto è impostato da qualche parte. Controlla in [ordine di priorità](/it/model-config#setting-your-model): il flag `--model`, la variabile di ambiente `ANTHROPIC_MODEL`, quindi il campo `model` in `.claude/settings.local.json`, il tuo `.claude/settings.json` del progetto, e `~/.claude/settings.json`. Rimuovi il valore obsoleto e Claude Code ricade sul tuo account predefinito.686* Se il modello sbagliato continua a tornare nella CLI, un ID obsoleto è impostato da qualche parte. Controlla in [ordine di priorità](/it/model-config#setting-your-model): il flag `--model`, la variabile di ambiente `ANTHROPIC_MODEL`, quindi il campo `model` in `.claude/settings.local.json`, il tuo `.claude/settings.json` del progetto, e `~/.claude/settings.json`. Rimuovi il valore obsoleto e Claude Code ricade sul tuo account predefinito.

556* Per le distribuzioni Vertex AI, vedi [Risoluzione dei problemi di Vertex AI](/it/google-vertex-ai#troubleshooting).687* Per le distribuzioni Vertex AI, vedi [Risoluzione dei problemi di Vertex AI](/it/google-vertex-ai#troubleshooting).

557 688 

558### Claude Opus is not available with the Claude Pro plan689<h3 id="claude-opus-is-not-available-with-the-claude-pro-plan">

690 Claude Opus is not available with the Claude Pro plan

691</h3>

559 692 

560Il tuo piano di abbonamento attivo non include il modello che hai selezionato.693Il tuo piano di abbonamento attivo non include il modello che hai selezionato.

561 694 


569* Se hai aggiornato il tuo piano di recente e vedi ancora questo, esegui `/logout` quindi `/login`. Il token memorizzato riflette il tuo piano al momento dell'accesso, quindi l'aggiornamento sul web non ha effetto in una sessione esistente fino a quando non ti ri-autentichi.702* Se hai aggiornato il tuo piano di recente e vedi ancora questo, esegui `/logout` quindi `/login`. Il token memorizzato riflette il tuo piano al momento dell'accesso, quindi l'aggiornamento sul web non ha effetto in una sessione esistente fino a quando non ti ri-autentichi.

570* Vedi [claude.com/pricing](https://claude.com/pricing) per quali modelli ogni piano include703* Vedi [claude.com/pricing](https://claude.com/pricing) per quali modelli ogni piano include

571 704 

572### thinking.type.enabled is not supported for this model705<h3 id="thinking-type-enabled-is-not-supported-for-this-model">

706 thinking.type.enabled is not supported for this model

707</h3>

573 708 

574La tua versione di Claude Code è più vecchia del minimo per Opus 4.7 o Opus 4.8. La CLI ha inviato una configurazione di thinking che il modello non accetta più.709La tua versione di Claude Code è più vecchia del minimo per Opus 4.7 o Opus 4.8. La CLI ha inviato una configurazione di thinking che il modello non accetta più.

575 710 


583* Se non puoi aggiornare, esegui `/model` e seleziona Opus 4.6 o Sonnet718* Se non puoi aggiornare, esegui `/model` e seleziona Opus 4.6 o Sonnet

584* Se colpisci questo nell'Agent SDK, vedi [Risoluzione dei problemi dell'SDK](/it/agent-sdk/quickstart#troubleshooting)719* Se colpisci questo nell'Agent SDK, vedi [Risoluzione dei problemi dell'SDK](/it/agent-sdk/quickstart#troubleshooting)

585 720 

586### Thinking budget exceeds output limit721<h3 id="thinking-budget-exceeds-output-limit">

722 Thinking budget exceeds output limit

723</h3>

587 724 

588Il budget di thinking esteso configurato supera la lunghezza massima della risposta, quindi non c'è spazio rimasto per la risposta effettiva.725Il budget di thinking esteso configurato supera la lunghezza massima della risposta, quindi non c'è spazio rimasto per la risposta effettiva.

589 726 


598* Abbassa `MAX_THINKING_TOKENS`, o aumenta [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/it/env-vars) sopra il budget di thinking735* Abbassa `MAX_THINKING_TOKENS`, o aumenta [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/it/env-vars) sopra il budget di thinking

599* Vedi [Extended thinking](/it/model-config#extended-thinking) per come il budget interagisce con la lunghezza dell'output736* Vedi [Extended thinking](/it/model-config#extended-thinking) per come il budget interagisce con la lunghezza dell'output

600 737 

601### Tool use or thinking block mismatch738<h3 id="tool-use-or-thinking-block-mismatch">

739 Tool use or thinking block mismatch

740</h3>

602 741 

603La cronologia della conversazione ha raggiunto l'API in uno stato incoerente, solitamente dopo che una chiamata di strumento è stata interrotta o un turno è stato modificato a metà flusso.742La cronologia della conversazione ha raggiunto l'API in uno stato incoerente, solitamente dopo che una chiamata di strumento è stata interrotta o un turno è stato modificato a metà flusso.

604 743 


615* {/* max-version: 2.1.155 */}Se stai utilizzando Opus 4.7 o Opus 4.8, esegui prima `claude update`. Le versioni precedenti a v2.1.156 possono attivare questo errore durante l'uso normale dello strumento, e `/rewind` non lo cancella.754* {/* max-version: 2.1.155 */}Se stai utilizzando Opus 4.7 o Opus 4.8, esegui prima `claude update`. Le versioni precedenti a v2.1.156 possono attivare questo errore durante l'uso normale dello strumento, e `/rewind` non lo cancella.

616* Esegui `/rewind`, o premi Esc due volte, per tornare indietro a un checkpoint prima del turno corrotto e continua da lì. Vedi [Checkpointing](/it/checkpointing) per come i checkpoint vengono creati e ripristinati.755* Esegui `/rewind`, o premi Esc due volte, per tornare indietro a un checkpoint prima del turno corrotto e continua da lì. Vedi [Checkpointing](/it/checkpointing) per come i checkpoint vengono creati e ripristinati.

617 756 

618### Usage Policy refusal757<h3 id="usage-policy-refusal">

758 Usage Policy refusal

759</h3>

619 760 

620L'API ha rifiutato di rispondere perché il contenuto nella conversazione ha attivato un controllo della [Usage Policy](https://www.anthropic.com/legal/aup). Il messaggio include un ID di richiesta che puoi citare al supporto se ritieni che il rifiuto sia errato.761L'API ha rifiutato di rispondere perché il contenuto nella conversazione ha attivato un controllo della [Usage Policy](https://www.anthropic.com/legal/aup). Il messaggio include un ID di richiesta che puoi citare al supporto se ritieni che il rifiuto sia errato.

621 762 


629 770 

630* Premi Esc due volte o esegui `/rewind` per tornare indietro a un checkpoint prima del turno che ha attivato il rifiuto, quindi riformula o prendi un approccio diverso. Vedi [Checkpointing](/it/checkpointing).771* Premi Esc due volte o esegui `/rewind` per tornare indietro a un checkpoint prima del turno che ha attivato il rifiuto, quindi riformula o prendi un approccio diverso. Vedi [Checkpointing](/it/checkpointing).

631* Se non riesci a identificare quale turno l'ha causato, esegui `/clear` per avviare una conversazione nuova nello stesso progetto. La tua conversazione precedente viene preservata su disco e rimane disponibile in `/resume`.772* Se non riesci a identificare quale turno l'ha causato, esegui `/clear` per avviare una conversazione nuova nello stesso progetto. La tua conversazione precedente viene preservata su disco e rimane disponibile in `/resume`.

632* In [modalità non interattiva](/it/headless) (`-p`), dove rewind non è disponibile, riprova con un prompt riformulato o avvia una nuova sessione senza `--continue`.773* In [modalità non interattiva](/it/headless) (`-p`), dove rewind non è disponibile, riprova con un prompt riformulato in una nuova sessione senza `--continue`. I controlli delle policy variano in base al modello, quindi passare a un modello diverso con `--model` potrebbe anche risolvere il rifiuto in alcuni casi.

774 

775<h2 id="responses-seem-lower-quality-than-usual">

776 Le risposte sembrano di qualità inferiore al solito

777</h2>

778 

779Se le risposte di Claude sembrano meno capaci di quanto vi aspettiate ma nessun errore è mostrato, la causa è solitamente lo stato della conversazione piuttosto che il modello stesso. Claude Code non cambia silenziosamente le versioni del modello. Può passare a un modello di fallback in tre casi specifici:

633 780 

634## Le risposte sembrano di qualità inferiore al solito781* Un [`--fallback-model`](/it/cli-reference#cli-flags) configurato prende il controllo dopo un errore di disponibilità, solo per quel turno, con un avviso nella trascrizione

782* Un controllo di avvio Bedrock o Vertex AI trova il vostro modello predefinito non disponibile

783* Il [fallback automatico del modello](/it/model-config#automatic-model-fallback) su Fable 5 sposta la sessione al modello Opus predefinito e mostra un avviso nella trascrizione

635 784 

636Se le risposte di Claude sembrano meno capaci di quanto vi aspettiate ma nessun errore è mostrato, la causa è solitamente lo stato della conversazione piuttosto che il modello stesso. Claude Code non cambia silenziosamente le versioni del modello. Può passare a un modello di fallback in casi specifici come una quota Opus raggiunta o una regione Bedrock o Vertex AI che manca il vostro modello; il controllo Model selection sottostante cattura entrambi, e [Model configuration](/it/model-config) spiega quando si applica il fallback.785Il controllo Model selection sottostante cattura il secondo e il terzo caso; il primo appare come un avviso nella trascrizione piuttosto che come un cambio `/model`. La [configurazione del modello](/it/model-config) spiega quando si applica ogni fallback.

637 786 

638Controllate questi prima:787Controllate questi prima:

639 788 


646 795 

647Se la qualità sembra ancora non corretta dopo aver controllato quanto sopra, eseguite `/feedback` e descrivete cosa vi aspettavate rispetto a quello che avete ottenuto. Il feedback inviato in questo modo include la trascrizione della conversazione, che è il modo più veloce per Anthropic per diagnosticare una regressione reale. Vedete [Report an error](#report-an-error) se `/feedback` non è disponibile nel vostro ambiente.796Se la qualità sembra ancora non corretta dopo aver controllato quanto sopra, eseguite `/feedback` e descrivete cosa vi aspettavate rispetto a quello che avete ottenuto. Il feedback inviato in questo modo include la trascrizione della conversazione, che è il modo più veloce per Anthropic per diagnosticare una regressione reale. Vedete [Report an error](#report-an-error) se `/feedback` non è disponibile nel vostro ambiente.

648 797 

649## Segnalare un errore798<h2 id="report-an-error">

799 Segnalare un errore

800</h2>

650 801 

651Questa pagina copre gli errori dall'API Claude. Per gli errori da altri componenti di Claude Code, vedi la guida rilevante:802Questa pagina copre gli errori dall'API Claude. Per gli errori da altri componenti di Claude Code, vedi la guida rilevante:

652 803 

fast-mode.md +1 −1

Details

115* **Abilitazione dell'amministratore per Team e Enterprise**: la modalità veloce è disabilitata per impostazione predefinita per le organizzazioni Team e Enterprise. Un amministratore deve esplicitamente [abilitare la modalità veloce](#enable-fast-mode-for-your-organization) prima che gli utenti possano accedervi.115* **Abilitazione dell'amministratore per Team e Enterprise**: la modalità veloce è disabilitata per impostazione predefinita per le organizzazioni Team e Enterprise. Un amministratore deve esplicitamente [abilitare la modalità veloce](#enable-fast-mode-for-your-organization) prima che gli utenti possano accedervi.

116 116 

117<Note>117<Note>

118 Se il tuo amministratore non ha abilitato la modalità veloce per la tua organizzazione, il comando `/fast` mostrerà "Fast mode has been disabled by your organization."118 Se il tuo amministratore non ha abilitato la modalità veloce per la tua organizzazione, il comando `/fast` mostrerà "Fast mode has been disabled by your organization." Se l'elenco di consentiti [`availableModels`](/it/model-config#restrict-model-selection) della tua organizzazione esclude il modello Opus della modalità veloce, `/fast` viene rifiutato con "is not in your organization's allowed models".

119</Note>119</Note>

120 120 

121<h3 id="enable-fast-mode-for-your-organization">121<h3 id="enable-fast-mode-for-your-organization">

Details

109 109 

110 **Mettetelo in una skill** se è materiale di riferimento di cui Claude ha bisogno a volte (documentazione API, guide di stile) o un flusso di lavoro che attivate con `/<name>` (deploy, review, release).110 **Mettetelo in una skill** se è materiale di riferimento di cui Claude ha bisogno a volte (documentazione API, guide di stile) o un flusso di lavoro che attivate con `/<name>` (deploy, review, release).

111 111 

112 **Regola pratica:** Mantenete CLAUDE.md sotto 200 righe. Se sta crescendo, spostate il contenuto di riferimento in skills o dividetelo in file [`.claude/rules/`](/it/memory#organize-rules-with-clauderules).112 **Regola pratica:** Mantenete CLAUDE.md sotto 200 righe. Se sta crescendo, spostate il contenuto di riferimento in skills o dividetelo in file [`.claude/rules/`](/it/memory#organize-rules-with-claude%2Frules%2F).

113 </Tab>113 </Tab>

114 114 

115 <Tab title="CLAUDE.md vs Rules vs Skills">115 <Tab title="CLAUDE.md vs Rules vs Skills">


198 198 

199Le funzionalità possono essere definite a più livelli: a livello di utente, per progetto, tramite plugins o tramite politiche gestite. Potete anche annidare file CLAUDE.md in sottodirectory o posizionare skills in pacchetti specifici di un monorepo. Quando la stessa funzionalità esiste a più livelli, ecco come si stratificano:199Le funzionalità possono essere definite a più livelli: a livello di utente, per progetto, tramite plugins o tramite politiche gestite. Potete anche annidare file CLAUDE.md in sottodirectory o posizionare skills in pacchetti specifici di un monorepo. Quando la stessa funzionalità esiste a più livelli, ecco come si stratificano:

200 200 

201* **I file CLAUDE.md** sono additivi: tutti i livelli contribuiscono contenuti al contesto di Claude simultaneamente. I file dalla vostra directory di lavoro e sopra si caricano all'avvio; le sottodirectory si caricano mentre lavorate in esse. Quando le istruzioni entrano in conflitto, Claude usa il giudizio per riconciliarle, con istruzioni più specifiche che tipicamente hanno la precedenza. Consultate [come i file CLAUDE.md si caricano](/it/memory#how-claudemd-files-load).201* **I file CLAUDE.md** sono additivi: tutti i livelli contribuiscono contenuti al contesto di Claude simultaneamente. I file dalla vostra directory di lavoro e sopra si caricano all'avvio; le sottodirectory si caricano mentre lavorate in esse. Quando le istruzioni entrano in conflitto, Claude usa il giudizio per riconciliarle, con istruzioni più specifiche che tipicamente hanno la precedenza. Consultate [come i file CLAUDE.md si caricano](/it/memory#how-claude-md-files-load).

202* **Skills e subagents** si sovrascrivono per nome: quando lo stesso nome esiste a più livelli, una definizione vince in base alla priorità (gestito > utente > progetto per skills; gestito > flag CLI > progetto > utente > plugin per subagents). Le skills dei plugin sono [con spazio dei nomi](/it/plugins#add-skills-to-your-plugin) per evitare conflitti. Consultate [scoperta delle skills](/it/skills#where-skills-live) e [ambito del subagent](/it/sub-agents#choose-the-subagent-scope).202* **Skills e subagents** si sovrascrivono per nome: quando lo stesso nome esiste a più livelli, una definizione vince in base alla priorità (gestito > utente > progetto per skills; gestito > flag CLI > progetto > utente > plugin per subagents). Le skills dei plugin sono [con spazio dei nomi](/it/plugins#add-skills-to-your-plugin) per evitare conflitti. Consultate [scoperta delle skills](/it/skills#where-skills-live) e [ambito del subagent](/it/sub-agents#choose-the-subagent-scope).

203* **I server MCP** si sovrascrivono per nome: locale > progetto > utente. Consultate [ambito MCP](/it/mcp#scope-hierarchy-and-precedence).203* **I server MCP** si sovrascrivono per nome: locale > progetto > utente. Consultate [ambito MCP](/it/mcp#scope-hierarchy-and-precedence).

204* **Hooks** si uniscono: tutti gli hooks registrati si attivano per i loro eventi corrispondenti indipendentemente dalla fonte. Consultate [hooks](/it/hooks-guide).204* **Hooks** si uniscono: tutti gli hooks registrati si attivano per i loro eventi corrispondenti indipendentemente dalla fonte. Consultate [hooks](/it/hooks-guide).


255 255 

256 **Cosa si carica:** Contenuto completo di tutti i file CLAUDE.md (livelli gestito, utente e progetto).256 **Cosa si carica:** Contenuto completo di tutti i file CLAUDE.md (livelli gestito, utente e progetto).

257 257 

258 **Eredità:** Claude legge i file CLAUDE.md dalla vostra directory di lavoro fino alla radice e scopre quelli annidati nelle sottodirectory mentre accede a quei file. Consultate [Come i file CLAUDE.md si caricano](/it/memory#how-claudemd-files-load) per i dettagli.258 **Eredità:** Claude legge i file CLAUDE.md dalla vostra directory di lavoro fino alla radice e scopre quelli annidati nelle sottodirectory mentre accede a quei file. Consultate [Come i file CLAUDE.md si caricano](/it/memory#how-claude-md-files-load) per i dettagli.

259 259 

260 <Tip>Mantenete CLAUDE.md sotto 200 righe. Spostate il materiale di riferimento in skills, che si caricano su richiesta.</Tip>260 <Tip>Mantenete CLAUDE.md sotto 200 righe. Spostate il materiale di riferimento in skills, che si caricano su richiesta.</Tip>

261 </Tab>261 </Tab>

fullscreen.md +22 −3

Details

104export CLAUDE_CODE_SCROLL_SPEED=3104export CLAUDE_CODE_SCROLL_SPEED=3

105```105```

106 106 

107Un valore di `3` corrisponde al valore predefinito in `vim` e applicazioni simili. L'impostazione accetta valori da 1 a 20.107Un valore di `3` corrisponde al valore predefinito in `vim` e applicazioni simili. L'impostazione accetta valori da 1 a 20 e valori frazionari inferiori a 1 come `0.5` per rallentare lo scorrimento accelerato del trackpad e della rotella del mouse nei terminali che già amplificano gli eventi della rotella.

108 108 

109Per regolare la velocità di scorrimento in modo interattivo, esegui `/scroll-speed`. La finestra di dialogo mostra un righello che puoi scorrere mentre è aperta in modo da poter sentire il cambiamento immediatamente. Premi `←` e `→` per regolare, `r` per ripristinare il valore predefinito rilevato automaticamente e `Invio` per salvare. Il comando scrive lo stesso valore che la variabile di ambiente `CLAUDE_CODE_SCROLL_SPEED` imposta, persistito in `~/.claude/settings.json`. Il comando non è disponibile nel terminale dell'IDE JetBrains.109Per regolare la velocità di scorrimento in modo interattivo, esegui `/scroll-speed`. La finestra di dialogo mostra un righello che puoi scorrere mentre è aperta in modo da poter sentire il cambiamento immediatamente. Premi `←` e `→` per regolare, `r` per ripristinare il valore predefinito rilevato automaticamente e `Invio` per salvare. Il comando scrive lo stesso valore che la variabile di ambiente `CLAUDE_CODE_SCROLL_SPEED` imposta, persistito in `~/.claude/settings.json`. Il comando non è disponibile nel terminale dell'IDE JetBrains.

110 110 

111Separatamente dalla velocità di base, Claude Code accelera la velocità di scorrimento quando fai girare la rotella rapidamente, quindi una rotazione veloce copre più distanza rispetto allo stesso numero di tacche lente. Per disattivare l'accelerazione e mantenere una velocità costante per tacca, imposta `wheelScrollAccelerationEnabled` su `false` in [`settings.json`](/it/settings#available-settings). Questa impostazione richiede Claude Code v2.1.174 o versioni successive.

112 

111<h3 id="scroll-in-the-jetbrains-ide-terminal">113<h3 id="scroll-in-the-jetbrains-ide-terminal">

112 Scorrimento nel terminale dell'IDE JetBrains114 Scorrimento nel terminale dell'IDE JetBrains

113</h3>115</h3>


171 173 

172L'acquisizione del mouse è il punto di attrito più comune, specialmente su SSH o all'interno di tmux. Quando Claude Code acquisisce gli eventi del mouse, la copia nativa al rilascio della selezione del terminale smette di funzionare. La selezione che fai con clic e trascinamento esiste all'interno di Claude Code, non nel buffer di selezione del terminale, quindi la modalità copia tmux, i suggerimenti Kitty e strumenti simili non la vedono.174L'acquisizione del mouse è il punto di attrito più comune, specialmente su SSH o all'interno di tmux. Quando Claude Code acquisisce gli eventi del mouse, la copia nativa al rilascio della selezione del terminale smette di funzionare. La selezione che fai con clic e trascinamento esiste all'interno di Claude Code, non nel buffer di selezione del terminale, quindi la modalità copia tmux, i suggerimenti Kitty e strumenti simili non la vedono.

173 175 

174Claude Code tenta di scrivere la selezione negli appunti, ma il percorso che utilizza dipende dalla configurazione. All'interno di tmux scrive nel buffer di incolla tmux. Su SSH ricade alle sequenze di escape OSC 52, che alcuni terminali bloccano per impostazione predefinita. iTerm2 le blocca finché non attivi Impostazioni → Generale → Selezione → Le applicazioni nel terminale possono accedere agli appunti. Eseguire [`/terminal-setup`](/it/terminal-config) in iTerm2 abilita questo per te. Claude Code stampa un toast dopo ogni copia dicendoti quale percorso ha utilizzato.176Claude Code scrive la selezione negli appunti di sistema, e il percorso che utilizza dipende dalla configurazione. In una sessione locale esegue uno strumento di appunti nativo:

177 

178* **macOS**: `pbcopy`

179* **Linux**: `wl-copy` su Wayland, oppure `xclip` o `xsel` su X11, a seconda di quale sia installato. Claude Code scrive sia gli appunti che la selezione PRIMARY, quindi il clic centrale per incollare funziona.

180* **Windows e WSL**: PowerShell `Set-Clipboard`

181 

182All'interno di tmux scrive anche nel buffer di incolla tmux. Su SSH ricade alle sequenze di escape OSC 52. Claude Code stampa un toast dopo ogni copia dicendoti quale percorso ha utilizzato.

183 

184Alcuni terminali bloccano OSC 52 per impostazione predefinita. iTerm2 lo blocca finché non attivi Impostazioni → Generale → Selezione → Le applicazioni nel terminale possono accedere agli appunti; eseguire [`/terminal-setup`](/it/terminal-config) in iTerm2 abilita questo per te.

185 

186Per una selezione nativa una tantum, il tasto da utilizzare dipende dal terminale:

187 

188* **Terminal.app**: `Fn`

189* **iTerm2**: `Option`

190* **VS Code, Cursor e Devin Desktop**: `Shift`, oppure `Option` su macOS con l'impostazione `terminal.integrated.macOptionClickForcesSelection` abilitata

191* **La maggior parte degli altri terminali**: `Shift`

192 

193Tieni premuto quel tasto mentre fai clic e trascini. Il terminale gestisce la selezione stesso invece di trasmetterla a Claude Code, quindi scorciatoie di copia come `Cmd+C` funzionano su ciò che selezioni. Claude Code mostra anche il tasto corretto nel suo suggerimento sullo schermo.

175 194 

176Per una selezione nativa una tantum, tenere premuto il modificatore di bypass del terminale mentre si fa clic e si trascina: `Option` in iTerm2, o `Shift` nella maggior parte dei terminali Linux e Windows. Il modificatore dice al terminale di gestire la selezione stesso invece di inoltrare gli eventi del mouse a Claude Code, quindi `Cmd+C` e gli altri scorciatoie di copia del terminale funzionano su di essa.195Su SSH o all'interno di tmux, Claude Code non sempre riesce a rilevare il terminale da cui ti stai connettendo, quindi il suggerimento elenca i tasti candidati.

177 196 

178Se fai affidamento sulla selezione nativa tutto il tempo, imposta `CLAUDE_CODE_DISABLE_MOUSE=1` per rinunciare all'acquisizione del mouse mantenendo il rendering senza sfarfallio e la memoria piatta:197Se fai affidamento sulla selezione nativa tutto il tempo, imposta `CLAUDE_CODE_DISABLE_MOUSE=1` per rinunciare all'acquisizione del mouse mantenendo il rendering senza sfarfallio e la memoria piatta:

179 198 

github-actions.md +109 −45

Details

12 Claude Code GitHub Actions è costruito sulla base dell'[Claude Agent SDK](/it/agent-sdk/overview), che consente l'integrazione programmatica di Claude Code nelle tue applicazioni. Puoi utilizzare l'SDK per costruire flussi di lavoro di automazione personalizzati oltre GitHub Actions.12 Claude Code GitHub Actions è costruito sulla base dell'[Claude Agent SDK](/it/agent-sdk/overview), che consente l'integrazione programmatica di Claude Code nelle tue applicazioni. Puoi utilizzare l'SDK per costruire flussi di lavoro di automazione personalizzati oltre GitHub Actions.

13</Note>13</Note>

14 14 

15<Info>15<h2 id="why-use-claude-code-github-actions">

16 **Claude Opus 4.8 è ora disponibile.** Claude Code GitHub Actions utilizza per impostazione predefinita Sonnet. Per utilizzare Opus 4.8, configura il [parametro model](#breaking-changes-reference) per utilizzare `claude-opus-4-8`.16 Perché utilizzare Claude Code GitHub Actions?

17</Info>17</h2>

18 

19## Perché utilizzare Claude Code GitHub Actions?

20 18 

21* **Creazione istantanea di PR**: Descrivi ciò di cui hai bisogno e Claude crea una PR completa con tutti i cambiamenti necessari19* **Creazione istantanea di PR**: Descrivi ciò di cui hai bisogno e Claude crea una PR completa con tutti i cambiamenti necessari

22* **Implementazione automatica del codice**: Trasforma gli issue in codice funzionante con un singolo comando20* **Implementazione automatica del codice**: Trasforma gli issue in codice funzionante con un singolo comando


24* **Configurazione semplice**: Inizia in pochi minuti con il nostro installer e la chiave API22* **Configurazione semplice**: Inizia in pochi minuti con il nostro installer e la chiave API

25* **Sicuro per impostazione predefinita**: Il tuo codice rimane sui runner di Github23* **Sicuro per impostazione predefinita**: Il tuo codice rimane sui runner di Github

26 24 

27## Cosa può fare Claude?25<h2 id="what-can-claude-do">

26 Cosa può fare Claude?

27</h2>

28 28 

29Claude Code fornisce un potente GitHub Action che trasforma il modo in cui lavori con il codice:29Claude Code fornisce un potente GitHub Action che trasforma il modo in cui lavori con il codice:

30 30 

31### Claude Code Action31<h3 id="claude-code-action">

32 Claude Code Action

33</h3>

32 34 

33Questo GitHub Action ti consente di eseguire Claude Code all'interno dei tuoi flussi di lavoro GitHub Actions. Puoi utilizzarlo per costruire qualsiasi flusso di lavoro personalizzato sulla base di Claude Code.35Questo GitHub Action ti consente di eseguire Claude Code all'interno dei tuoi flussi di lavoro GitHub Actions. Puoi utilizzarlo per costruire qualsiasi flusso di lavoro personalizzato sulla base di Claude Code.

34 36 

35[Visualizza repository →](https://github.com/anthropics/claude-code-action)37[Visualizza repository →](https://github.com/anthropics/claude-code-action)

36 38 

37## Setup39<h2 id="setup">

40 Setup

41</h2>

38 42 

39## Configurazione rapida43<h2 id="quick-setup">

44 Configurazione rapida

45</h2>

40 46 

41Il modo più semplice per configurare questa action è attraverso Claude Code nel terminale. Basta aprire claude ed eseguire `/install-github-app`.47Il modo più semplice per configurare questa action è attraverso Claude Code nel terminale. Basta aprire claude ed eseguire `/install-github-app`.

42 48 


48 * Questo metodo di avvio rapido è disponibile solo per gli utenti diretti dell'API Claude. Se stai utilizzando Amazon Bedrock o Google Vertex AI, consulta la sezione [Utilizzo con Amazon Bedrock e Google Vertex AI](#using-with-amazon-bedrock-%26-google-vertex-ai).54 * Questo metodo di avvio rapido è disponibile solo per gli utenti diretti dell'API Claude. Se stai utilizzando Amazon Bedrock o Google Vertex AI, consulta la sezione [Utilizzo con Amazon Bedrock e Google Vertex AI](#using-with-amazon-bedrock-%26-google-vertex-ai).

49</Note>55</Note>

50 56 

51## Configurazione manuale57<h2 id="manual-setup">

58 Configurazione manuale

59</h2>

52 60 

53Se il comando `/install-github-app` non riesce o preferisci una configurazione manuale, segui queste istruzioni di configurazione manuale:61Se il comando `/install-github-app` non riesce o preferisci una configurazione manuale, segui queste istruzioni di configurazione manuale:

54 62 


68 Dopo aver completato la configurazione rapida o manuale, testa l'action taggando `@claude` in un commento di issue o PR.76 Dopo aver completato la configurazione rapida o manuale, testa l'action taggando `@claude` in un commento di issue o PR.

69</Tip>77</Tip>

70 78 

71## Aggiornamento dalla versione Beta79<h2 id="upgrading-from-beta">

80 Aggiornamento dalla versione Beta

81</h2>

72 82 

73<Warning>83<Warning>

74 Claude Code GitHub Actions v1.0 introduce breaking changes che richiedono l'aggiornamento dei tuoi file di flusso di lavoro per eseguire l'upgrade a v1.0 dalla versione beta.84 Claude Code GitHub Actions v1.0 introduce breaking changes che richiedono l'aggiornamento dei tuoi file di flusso di lavoro per eseguire l'upgrade a v1.0 dalla versione beta.


76 86 

77Se stai attualmente utilizzando la versione beta di Claude Code GitHub Actions, ti consigliamo di aggiornare i tuoi flussi di lavoro per utilizzare la versione GA. La nuova versione semplifica la configurazione aggiungendo potenti nuove funzionalità come il rilevamento automatico della modalità.87Se stai attualmente utilizzando la versione beta di Claude Code GitHub Actions, ti consigliamo di aggiornare i tuoi flussi di lavoro per utilizzare la versione GA. La nuova versione semplifica la configurazione aggiungendo potenti nuove funzionalità come il rilevamento automatico della modalità.

78 88 

79### Cambiamenti essenziali89<h3 id="essential-changes">

90 Cambiamenti essenziali

91</h3>

80 92 

81Tutti gli utenti beta devono apportare questi cambiamenti ai loro file di flusso di lavoro per eseguire l'upgrade:93Tutti gli utenti beta devono apportare questi cambiamenti ai loro file di flusso di lavoro per eseguire l'upgrade:

82 94 


853. **Aggiorna gli input del prompt**: Sostituisci `direct_prompt` con `prompt`973. **Aggiorna gli input del prompt**: Sostituisci `direct_prompt` con `prompt`

864. **Sposta le opzioni CLI**: Converti `max_turns`, `model`, `custom_instructions`, ecc. in `claude_args`984. **Sposta le opzioni CLI**: Converti `max_turns`, `model`, `custom_instructions`, ecc. in `claude_args`

87 99 

88### Breaking Changes Reference100<h3 id="breaking-changes-reference">

101 Breaking Changes Reference

102</h3>

89 103 

90| Old Beta Input | New v1.0 Input |104| Old Beta Input | New v1.0 Input |

91| --------------------- | ------------------------------------- |105| --------------------- | ------------------------------------- |


99| `disallowed_tools` | `claude_args: --disallowedTools` |113| `disallowed_tools` | `claude_args: --disallowedTools` |

100| `claude_env` | `settings` JSON format |114| `claude_env` | `settings` JSON format |

101 115 

102### Esempio Prima e Dopo116<h3 id="before-and-after-example">

117 Esempio Prima e Dopo

118</h3>

103 119 

104**Versione beta:**120**Versione beta:**

105 121 


131 L'action ora rileva automaticamente se eseguire in modalità interattiva (risponde alle menzioni `@claude`) o in modalità automazione (viene eseguita immediatamente con un prompt) in base alla tua configurazione.147 L'action ora rileva automaticamente se eseguire in modalità interattiva (risponde alle menzioni `@claude`) o in modalità automazione (viene eseguita immediatamente con un prompt) in base alla tua configurazione.

132</Tip>148</Tip>

133 149 

134## Esempi di casi d'uso150<h2 id="example-use-cases">

151 Esempi di casi d'uso

152</h2>

135 153 

136Claude Code GitHub Actions può aiutarti con una varietà di attività. La [directory degli esempi](https://github.com/anthropics/claude-code-action/tree/main/examples) contiene flussi di lavoro pronti all'uso per diversi scenari.154Claude Code GitHub Actions può aiutarti con una varietà di attività. La [directory degli esempi](https://github.com/anthropics/claude-code-action/tree/main/examples) contiene flussi di lavoro pronti all'uso per diversi scenari.

137 155 

138### Flusso di lavoro di base156<h3 id="basic-workflow">

157 Flusso di lavoro di base

158</h3>

139 159 

140```yaml theme={null}160```yaml theme={null}

141name: Claude Code161name: Claude Code


154 # Responds to @claude mentions in comments174 # Responds to @claude mentions in comments

155```175```

156 176 

157### Utilizzo di skills177<h3 id="using-skills">

178 Utilizzo di skills

179</h3>

158 180 

159L'input `prompt` accetta un'invocazione di [skill](/it/skills) così come testo semplice:181L'input `prompt` accetta un'invocazione di [skill](/it/skills) così come testo semplice:

160 182 


180 prompt: "/code-review:code-review ${{ github.repository }}/pull/${{ github.event.pull_request.number }}"202 prompt: "/code-review:code-review ${{ github.repository }}/pull/${{ github.event.pull_request.number }}"

181```203```

182 204 

183### Automazione personalizzata con prompt205<h3 id="custom-automation-with-prompts">

206 Automazione personalizzata con prompt

207</h3>

184 208 

185```yaml theme={null}209```yaml theme={null}

186name: Daily Report210name: Daily Report


198 claude_args: "--model opus"222 claude_args: "--model opus"

199```223```

200 224 

201### Casi d'uso comuni225<h3 id="common-use-cases">

226 Casi d'uso comuni

227</h3>

202 228 

203Nei commenti di issue o PR:229Nei commenti di issue o PR:

204 230 


210 236 

211Claude analizzerà automaticamente il contesto e risponderà in modo appropriato.237Claude analizzerà automaticamente il contesto e risponderà in modo appropriato.

212 238 

213## Best practices239<h2 id="best-practices">

240 Best practices

241</h2>

214 242 

215### Configurazione CLAUDE.md243<h3 id="claude-md-configuration">

244 Configurazione CLAUDE.md

245</h3>

216 246 

217Crea un file `CLAUDE.md` nella radice del tuo repository per definire le linee guida dello stile di codice, i criteri di revisione, le regole specifiche del progetto e i pattern preferiti. Questo file guida la comprensione di Claude degli standard del tuo progetto.247Crea un file `CLAUDE.md` nella radice del tuo repository per definire le linee guida dello stile di codice, i criteri di revisione, le regole specifiche del progetto e i pattern preferiti. Questo file guida la comprensione di Claude degli standard del tuo progetto.

218 248 

219### Considerazioni sulla sicurezza249<h3 id="security-considerations">

250 Considerazioni sulla sicurezza

251</h3>

220 252 

221<Warning>Non eseguire mai il commit delle chiavi API direttamente nel tuo repository.</Warning>253<Warning>Non eseguire mai il commit delle chiavi API direttamente nel tuo repository.</Warning>

222 254 


231 263 

232Utilizza sempre GitHub Secrets (ad esempio, `${{ secrets.ANTHROPIC_API_KEY }}`) piuttosto che hardcodare le chiavi API direttamente nei tuoi file di flusso di lavoro.264Utilizza sempre GitHub Secrets (ad esempio, `${{ secrets.ANTHROPIC_API_KEY }}`) piuttosto che hardcodare le chiavi API direttamente nei tuoi file di flusso di lavoro.

233 265 

234### Ottimizzazione delle prestazioni266<h3 id="optimizing-performance">

267 Ottimizzazione delle prestazioni

268</h3>

235 269 

236Utilizza i template di issue per fornire contesto, mantieni il tuo `CLAUDE.md` conciso e focalizzato, e configura timeout appropriati per i tuoi flussi di lavoro.270Utilizza i template di issue per fornire contesto, mantieni il tuo `CLAUDE.md` conciso e focalizzato, e configura timeout appropriati per i tuoi flussi di lavoro.

237 271 

238### Costi CI272<h3 id="ci-costs">

273 Costi CI

274</h3>

239 275 

240Quando utilizzi Claude Code GitHub Actions, tieni presente i costi associati:276Quando utilizzi Claude Code GitHub Actions, tieni presente i costi associati:

241 277 


257* Imposta timeout a livello di flusso di lavoro per evitare job fuori controllo293* Imposta timeout a livello di flusso di lavoro per evitare job fuori controllo

258* Considera l'utilizzo dei controlli di concorrenza di GitHub per limitare le esecuzioni parallele294* Considera l'utilizzo dei controlli di concorrenza di GitHub per limitare le esecuzioni parallele

259 295 

260## Esempi di configurazione296<h2 id="configuration-examples">

297 Esempi di configurazione

298</h2>

261 299 

262Claude Code Action v1 semplifica la configurazione con parametri unificati:300Claude Code Action v1 semplifica la configurazione con parametri unificati:

263 301 


282 Quando rispondi ai commenti di issue o PR, Claude risponde automaticamente alle menzioni @claude. Per altri eventi, utilizza il parametro `prompt` per fornire istruzioni.320 Quando rispondi ai commenti di issue o PR, Claude risponde automaticamente alle menzioni @claude. Per altri eventi, utilizza il parametro `prompt` per fornire istruzioni.

283</Tip>321</Tip>

284 322 

285## Utilizzo con Amazon Bedrock e Google Vertex AI323<h2 id="using-with-amazon-bedrock--google-vertex-ai">

324 Utilizzo con Amazon Bedrock e Google Vertex AI

325</h2>

286 326 

287Per ambienti aziendali, puoi utilizzare Claude Code GitHub Actions con la tua infrastruttura cloud. Questo approccio ti dà il controllo sulla residenza dei dati e sulla fatturazione mantenendo la stessa funzionalità.327Per ambienti aziendali, puoi utilizzare Claude Code GitHub Actions con la tua infrastruttura cloud. Questo approccio ti dà il controllo sulla residenza dei dati e sulla fatturazione mantenendo la stessa funzionalità.

288 328 

289### Prerequisiti329<h3 id="prerequisites">

330 Prerequisiti

331</h3>

290 332 

291Prima di configurare Claude Code GitHub Actions con i provider cloud, hai bisogno di:333Prima di configurare Claude Code GitHub Actions con i provider cloud, hai bisogno di:

292 334 

293#### Per Google Cloud Vertex AI:335<h4 id="for-google-cloud-vertex-ai">

336 Per Google Cloud Vertex AI:

337</h4>

294 338 

2951. Un progetto Google Cloud con Vertex AI abilitato3391. Un progetto Google Cloud con Vertex AI abilitato

2962. Workload Identity Federation configurato per GitHub Actions3402. Workload Identity Federation configurato per GitHub Actions

2973. Un account di servizio con le autorizzazioni richieste3413. Un account di servizio con le autorizzazioni richieste

2984. Un'app GitHub (consigliato) o utilizza il GITHUB\_TOKEN predefinito3424. Un'app GitHub (consigliato) o utilizza il GITHUB\_TOKEN predefinito

299 343 

300#### Per Amazon Bedrock:344<h4 id="for-amazon-bedrock">

345 Per Amazon Bedrock:

346</h4>

301 347 

3021. Un account AWS con Amazon Bedrock abilitato3481. Un account AWS con Amazon Bedrock abilitato

3032. GitHub OIDC Identity Provider configurato in AWS3492. GitHub OIDC Identity Provider configurato in AWS


447 * `APP_ID`: L'ID della tua app GitHub493 * `APP_ID`: L'ID della tua app GitHub

448 * `APP_PRIVATE_KEY`: Il contenuto della chiave privata (.pem)494 * `APP_PRIVATE_KEY`: Il contenuto della chiave privata (.pem)

449 495 

450 #### Per AWS Bedrock496 #### Per Amazon Bedrock

451 497 

452 1. **Per l'autenticazione AWS**:498 1. **Per l'autenticazione AWS**:

453 * `AWS_ROLE_TO_ASSUME`499 * `AWS_ROLE_TO_ASSUME`


609 </Step>655 </Step>

610</Steps>656</Steps>

611 657 

612## Troubleshooting658<h2 id="troubleshooting">

659 Troubleshooting

660</h2>

613 661 

614### Claude non risponde ai comandi @claude662<h3 id="claude-not-responding-to-claude-commands">

663 Claude non risponde ai comandi @claude

664</h3>

615 665 

616Verifica che l'app GitHub sia installata correttamente, controlla che i flussi di lavoro siano abilitati, assicurati che la chiave API sia impostata nei secret del repository e conferma che il commento contenga `@claude` (non `/claude`).666Verifica che l'app GitHub sia installata correttamente, controlla che i flussi di lavoro siano abilitati, assicurati che la chiave API sia impostata nei secret del repository e conferma che il commento contenga `@claude` (non `/claude`).

617 667 

618### CI non in esecuzione sui commit di Claude668<h3 id="ci-not-running-on-claude’s-commits">

669 CI non in esecuzione sui commit di Claude

670</h3>

619 671 

620Assicurati di utilizzare l'app GitHub o l'app personalizzata (non l'utente Actions), controlla che i trigger del flusso di lavoro includano gli eventi necessari e verifica che le autorizzazioni dell'app includano i trigger CI.672Assicurati di utilizzare l'app GitHub o l'app personalizzata (non l'utente Actions), controlla che i trigger del flusso di lavoro includano gli eventi necessari e verifica che le autorizzazioni dell'app includano i trigger CI.

621 673 

622### Errori di autenticazione674<h3 id="authentication-errors">

675 Errori di autenticazione

676</h3>

623 677 

624Conferma che la chiave API sia valida e abbia autorizzazioni sufficienti. Per Bedrock/Vertex, controlla la configurazione delle credenziali e assicurati che i secret siano denominati correttamente nei flussi di lavoro.678Conferma che la chiave API sia valida e abbia autorizzazioni sufficienti. Per Bedrock/Vertex, controlla la configurazione delle credenziali e assicurati che i secret siano denominati correttamente nei flussi di lavoro.

625 679 

626## Configurazione avanzata680<h2 id="advanced-configuration">

681 Configurazione avanzata

682</h2>

627 683 

628### Parametri dell'action684<h3 id="action-parameters">

685 Parametri dell'action

686</h3>

629 687 

630Claude Code Action v1 utilizza una configurazione semplificata:688Claude Code Action v1 utilizza una configurazione semplificata:

631 689 


644\*Prompt è opzionale - quando omesso per i commenti di issue/PR, Claude risponde alla frase trigger\702\*Prompt è opzionale - quando omesso per i commenti di issue/PR, Claude risponde alla frase trigger\

645\*\*Richiesto per l'API Claude diretta, non per Bedrock/Vertex703\*\*Richiesto per l'API Claude diretta, non per Bedrock/Vertex

646 704 

647#### Passa argomenti CLI705<h4 id="pass-cli-arguments">

706 Passa argomenti CLI

707</h4>

648 708 

649Il parametro `claude_args` accetta qualsiasi argomento CLI di Claude Code:709Il parametro `claude_args` accetta qualsiasi argomento CLI di Claude Code:

650 710 


660* `--allowedTools`: Elenco separato da virgole degli strumenti consentiti. L'alias `--allowed-tools` funziona anche.720* `--allowedTools`: Elenco separato da virgole degli strumenti consentiti. L'alias `--allowed-tools` funziona anche.

661* `--debug`: Abilita l'output di debug721* `--debug`: Abilita l'output di debug

662 722 

663### Metodi di integrazione alternativi723<h3 id="alternative-integration-methods">

724 Metodi di integrazione alternativi

725</h3>

664 726 

665Mentre il comando `/install-github-app` è l'approccio consigliato, puoi anche:727Mentre il comando `/install-github-app` è l'approccio consigliato, potete anche:

666 728 

667* **Custom GitHub App**: Per le organizzazioni che necessitano di nomi utente personalizzati o flussi di autenticazione personalizzati. Crea la tua app GitHub con le autorizzazioni richieste (contents, issues, pull requests) e utilizza l'action actions/create-github-app-token per generare token nei tuoi flussi di lavoro.729* **Custom GitHub App**: Per le organizzazioni che necessitano di nomi utente personalizzati o flussi di autenticazione personalizzati. Create la vostra app GitHub con le autorizzazioni richieste (contents, issues, pull requests) e utilizzate l'action actions/create-github-app-token per generare token nei vostri flussi di lavoro.

668* **Manual GitHub Actions**: Configurazione diretta del flusso di lavoro per la massima flessibilità730* **Manual GitHub Actions**: Configurazione diretta del flusso di lavoro per la massima flessibilità

669* **MCP Configuration**: Caricamento dinamico dei server Model Context Protocol731* **MCP Configuration**: Caricamento dinamico dei server Model Context Protocol

670 732 

671Vedi la [documentazione di Claude Code Action](https://github.com/anthropics/claude-code-action/blob/main/docs) per guide dettagliate su autenticazione, sicurezza e configurazione avanzata.733Consultate la [documentazione di Claude Code Action](https://github.com/anthropics/claude-code-action/blob/main/docs) per guide dettagliate su autenticazione, sicurezza e configurazione avanzata.

672 734 

673### Personalizzazione del comportamento di Claude735<h3 id="customizing-claude’s-behavior">

736 Personalizzazione del comportamento di Claude

737</h3>

674 738 

675Puoi configurare il comportamento di Claude in due modi:739Potete configurare il comportamento di Claude in due modi:

676 740 

6771. **CLAUDE.md**: Definisci gli standard di codifica, i criteri di revisione e le regole specifiche del progetto in un file `CLAUDE.md` nella radice del tuo repository. Claude seguirà queste linee guida quando crea PR e risponde alle richieste. Consulta la nostra [documentazione Memory](/it/memory) per ulteriori dettagli.7411. **CLAUDE.md**: Definite gli standard di codifica, i criteri di revisione e le regole specifiche del progetto in un file `CLAUDE.md` nella radice del vostro repository. Claude seguirà queste linee guida quando crea PR e risponde alle richieste. Consultate la nostra [documentazione Memory](/it/memory) per ulteriori dettagli.

6782. **Custom prompts**: Utilizza il parametro `prompt` nel file del flusso di lavoro per fornire istruzioni specifiche del flusso di lavoro. Questo ti consente di personalizzare il comportamento di Claude per diversi flussi di lavoro o attività.7422. **Custom prompts**: Utilizzate il parametro `prompt` nel file del flusso di lavoro per fornire istruzioni specifiche del flusso di lavoro. Questo vi consente di personalizzare il comportamento di Claude per diversi flussi di lavoro o attività.

679 743 

680Claude seguirà queste linee guida quando crea PR e risponde alle richieste.744Claude seguirà queste linee guida quando crea PR e risponde alle richieste.

Details

205 Istanza GHES non raggiungibile205 Istanza GHES non raggiungibile

206</h3>206</h3>

207 207 

208Se le revisioni o le sessioni web 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 dell'API Anthropic](https://platform.claude.com/docs/en/api/ip-addresses).208Se le revisioni o le sessioni web 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 dell'API Anthropic](https://platform.claude.com/docs/it/api/ip-addresses).

209 209 

210<h2 id="related-resources">210<h2 id="related-resources">

211 Risorse correlate211 Risorse correlate

gitlab-ci-cd.md +85 −29

Details

16 Questa integrazione è costruita sulla base di [Claude Code CLI e Agent SDK](/it/agent-sdk/overview), consentendo l'uso programmatico di Claude nei vostri lavori CI/CD e flussi di lavoro di automazione personalizzati.16 Questa integrazione è costruita sulla base di [Claude Code CLI e Agent SDK](/it/agent-sdk/overview), consentendo l'uso programmatico di Claude nei vostri lavori CI/CD e flussi di lavoro di automazione personalizzati.

17</Note>17</Note>

18 18 

19## Perché utilizzare Claude Code con GitLab?19<h2 id="why-use-claude-code-with-gitlab">

20 Perché utilizzare Claude Code con GitLab?

21</h2>

20 22 

21* **Creazione istantanea di MR**: Descrivete ciò di cui avete bisogno e Claude propone un MR completo con modifiche e spiegazione23* **Creazione istantanea di MR**: Descrivete ciò di cui avete bisogno e Claude propone un MR completo con modifiche e spiegazione

22* **Implementazione automatizzata**: Trasformate i problemi in codice funzionante con un singolo comando o menzione24* **Implementazione automatizzata**: Trasformate i problemi in codice funzionante con un singolo comando o menzione


25* **Pronto per l'azienda**: Scegliete Claude API, Amazon Bedrock o Google Vertex AI per soddisfare le esigenze di residenza dei dati e approvvigionamento27* **Pronto per l'azienda**: Scegliete Claude API, Amazon Bedrock o Google Vertex AI per soddisfare le esigenze di residenza dei dati e approvvigionamento

26* **Sicuro per impostazione predefinita**: Viene eseguito nei vostri runner GitLab con la vostra protezione dei rami e approvazioni28* **Sicuro per impostazione predefinita**: Viene eseguito nei vostri runner GitLab con la vostra protezione dei rami e approvazioni

27 29 

28## Come funziona30<h2 id="how-it-works">

31 Come funziona

32</h2>

29 33 

30Claude Code utilizza GitLab CI/CD per eseguire attività di intelligenza artificiale in lavori isolati e eseguire il commit dei risultati tramite MR:34Claude Code utilizza GitLab CI/CD per eseguire attività di intelligenza artificiale in lavori isolati e eseguire il commit dei risultati tramite MR:

31 35 


40 44 

41Scegliete endpoint regionali per ridurre la latenza e soddisfare i requisiti di sovranità dei dati mentre utilizzate gli accordi cloud esistenti.45Scegliete endpoint regionali per ridurre la latenza e soddisfare i requisiti di sovranità dei dati mentre utilizzate gli accordi cloud esistenti.

42 46 

43## Cosa può fare Claude?47<h2 id="what-can-claude-do">

48 Cosa può fare Claude?

49</h2>

44 50 

45Claude Code abilita potenti flussi di lavoro CI/CD che trasformano il modo in cui lavorate con il codice:51Claude Code abilita potenti flussi di lavoro CI/CD che trasformano il modo in cui lavorate con il codice:

46 52 


50* Correggere bug e regressioni identificati da test o commenti56* Correggere bug e regressioni identificati da test o commenti

51* Rispondere ai commenti di follow-up per iterare sulle modifiche richieste57* Rispondere ai commenti di follow-up per iterare sulle modifiche richieste

52 58 

53## Configurazione59<h2 id="setup">

60 Configurazione

61</h2>

54 62 

55### Configurazione rapida63<h3 id="quick-setup">

64 Configurazione rapida

65</h3>

56 66 

57Il modo più veloce per iniziare è aggiungere un lavoro minimo al vostro `.gitlab-ci.yml` e impostare la vostra chiave API come variabile mascherata.67Il modo più veloce per iniziare è aggiungere un lavoro minimo al vostro `.gitlab-ci.yml` e impostare la vostra chiave API come variabile mascherata.

58 68 


98Dopo aver aggiunto il lavoro e la vostra variabile `ANTHROPIC_API_KEY`, testate eseguendo il lavoro manualmente da **CI/CD** → **Pipeline**, oppure attivate da un MR per consentire a Claude di proporre aggiornamenti in un ramo e aprire un MR se necessario.108Dopo aver aggiunto il lavoro e la vostra variabile `ANTHROPIC_API_KEY`, testate eseguendo il lavoro manualmente da **CI/CD** → **Pipeline**, oppure attivate da un MR per consentire a Claude di proporre aggiornamenti in un ramo e aprire un MR se necessario.

99 109 

100<Note>110<Note>

101 Per eseguire su Amazon Bedrock o Google Vertex AI invece dell'API Claude, consultate la sezione [Utilizzo con Amazon Bedrock e Google Vertex AI](#utilizzo-con-amazon-bedrock--google-vertex-ai) di seguito per la configurazione dell'autenticazione e dell'ambiente.111 Per eseguire su Amazon Bedrock o Google Vertex AI invece dell'API Claude, consultate la sezione [Utilizzo con Amazon Bedrock e Google Vertex AI](#using-with-amazon-bedrock-%26-google-vertex-ai) di seguito per la configurazione dell'autenticazione e dell'ambiente.

102</Note>112</Note>

103 113 

104### Configurazione manuale (consigliata per la produzione)114<h3 id="manual-setup-recommended-for-production">

115 Configurazione manuale (consigliata per la produzione)

116</h3>

105 117 

106Se preferite una configurazione più controllata o avete bisogno di provider aziendali:118Se preferite una configurazione più controllata o avete bisogno di provider aziendali:

107 119 


120 * Aggiungere un webhook di progetto per "Commenti (note)" al vostro listener di eventi (se ne utilizzate uno)132 * Aggiungere un webhook di progetto per "Commenti (note)" al vostro listener di eventi (se ne utilizzate uno)

121 * Fare in modo che il listener chiami l'API di attivazione della pipeline con variabili come `AI_FLOW_INPUT` e `AI_FLOW_CONTEXT` quando un commento contiene `@claude`133 * Fare in modo che il listener chiami l'API di attivazione della pipeline con variabili come `AI_FLOW_INPUT` e `AI_FLOW_CONTEXT` quando un commento contiene `@claude`

122 134 

123## Esempi di casi d'uso135<h2 id="example-use-cases">

136 Esempi di casi d'uso

137</h2>

124 138 

125### Trasformare i problemi in MR139<h3 id="turn-issues-into-mrs">

140 Trasformare i problemi in MR

141</h3>

126 142 

127In un commento di problema:143In un commento di problema:

128 144 


132 148 

133Claude analizza il problema e la base di codice, scrive le modifiche in un ramo e apre un MR per la revisione.149Claude analizza il problema e la base di codice, scrive le modifiche in un ramo e apre un MR per la revisione.

134 150 

135### Ottenere aiuto nell'implementazione151<h3 id="get-implementation-help">

152 Ottenere aiuto nell'implementazione

153</h3>

136 154 

137In una discussione MR:155In una discussione MR:

138 156 


142 160 

143Claude propone modifiche, aggiunge codice con caching appropriato e aggiorna il MR.161Claude propone modifiche, aggiunge codice con caching appropriato e aggiorna il MR.

144 162 

145### Correggere i bug rapidamente163<h3 id="fix-bugs-quickly">

164 Correggere i bug rapidamente

165</h3>

146 166 

147In un commento di problema o MR:167In un commento di problema o MR:

148 168 


152 172 

153Claude individua il bug, implementa una correzione e aggiorna il ramo o apre un nuovo MR.173Claude individua il bug, implementa una correzione e aggiorna il ramo o apre un nuovo MR.

154 174 

155## Utilizzo con Amazon Bedrock e Google Vertex AI175<h2 id="using-with-amazon-bedrock--google-vertex-ai">

176 Utilizzo con Amazon Bedrock e Google Vertex AI

177</h2>

156 178 

157Per ambienti aziendali, potete eseguire Claude Code interamente sulla vostra infrastruttura cloud con la stessa esperienza per gli sviluppatori.179Per ambienti aziendali, potete eseguire Claude Code interamente sulla vostra infrastruttura cloud con la stessa esperienza per gli sviluppatori.

158 180 


238 </Tab>260 </Tab>

239</Tabs>261</Tabs>

240 262 

241## Esempi di configurazione263<h2 id="configuration-examples">

264 Esempi di configurazione

265</h2>

242 266 

243Di seguito sono riportati frammenti pronti all'uso che potete adattare alla vostra pipeline.267Di seguito sono riportati frammenti pronti all'uso che potete adattare alla vostra pipeline.

244 268 

245### .gitlab-ci.yml di base (Claude API)269<h3 id="basic-gitlab-ci-yml-claude-api">

270 .gitlab-ci.yml di base (Claude API)

271</h3>

246 272 

247```yaml theme={null}273```yaml theme={null}

248stages:274stages:


271 # Claude Code utilizzerà ANTHROPIC_API_KEY dalle variabili CI/CD297 # Claude Code utilizzerà ANTHROPIC_API_KEY dalle variabili CI/CD

272```298```

273 299 

274### Esempio di lavoro Amazon Bedrock (OIDC)300<h3 id="amazon-bedrock-job-example-oidc">

301 Esempio di lavoro Amazon Bedrock (OIDC)

302</h3>

275 303 

276**Prerequisiti:**304**Prerequisiti:**

277 305 


322 Gli ID modello per Bedrock includono prefissi specifici della regione (ad esempio, `us.anthropic.claude-sonnet-4-6`). Passate il modello desiderato tramite la configurazione del lavoro o il prompt se il vostro flusso di lavoro lo supporta.350 Gli ID modello per Bedrock includono prefissi specifici della regione (ad esempio, `us.anthropic.claude-sonnet-4-6`). Passate il modello desiderato tramite la configurazione del lavoro o il prompt se il vostro flusso di lavoro lo supporta.

323</Note>351</Note>

324 352 

325### Esempio di lavoro Google Vertex AI (Workload Identity Federation)353<h3 id="google-vertex-ai-job-example-workload-identity-federation">

354 Esempio di lavoro Google Vertex AI (Workload Identity Federation)

355</h3>

326 356 

327**Prerequisiti:**357**Prerequisiti:**

328 358 


375 Con Workload Identity Federation, non è necessario archiviare le chiavi dell'account di servizio. Utilizzate condizioni di trust specifiche del repository e account di servizio con privilegi minimi.405 Con Workload Identity Federation, non è necessario archiviare le chiavi dell'account di servizio. Utilizzate condizioni di trust specifiche del repository e account di servizio con privilegi minimi.

376</Note>406</Note>

377 407 

378## Best practice408<h2 id="best-practices">

409 Best practice

410</h2>

379 411 

380### Configurazione CLAUDE.md412<h3 id="claude-md-configuration">

413 Configurazione CLAUDE.md

414</h3>

381 415 

382Create un file `CLAUDE.md` nella radice del repository per definire standard di codifica, criteri di revisione e regole specifiche del progetto. Claude legge questo file durante le esecuzioni e segue le vostre convenzioni quando propone modifiche.416Create un file `CLAUDE.md` nella radice del repository per definire standard di codifica, criteri di revisione e regole specifiche del progetto. Claude legge questo file durante le esecuzioni e segue le vostre convenzioni quando propone modifiche.

383 417 

384### Considerazioni sulla sicurezza418<h3 id="security-considerations">

419 Considerazioni sulla sicurezza

420</h3>

385 421 

386**Non eseguite mai il commit di chiavi API o credenziali cloud nel vostro repository**. Utilizzate sempre le variabili CI/CD di GitLab:422**Non eseguite mai il commit di chiavi API o credenziali cloud nel vostro repository**. Utilizzate sempre le variabili CI/CD di GitLab:

387 423 


390* Limitate le autorizzazioni dei lavori e l'uscita di rete426* Limitate le autorizzazioni dei lavori e l'uscita di rete

391* Revisionate i MR di Claude come qualsiasi altro contributore427* Revisionate i MR di Claude come qualsiasi altro contributore

392 428 

393### Ottimizzazione delle prestazioni429<h3 id="optimizing-performance">

430 Ottimizzazione delle prestazioni

431</h3>

394 432 

395* Mantenete `CLAUDE.md` focalizzato e conciso433* Mantenete `CLAUDE.md` focalizzato e conciso

396* Fornite descrizioni chiare di problemi/MR per ridurre le iterazioni434* Fornite descrizioni chiare di problemi/MR per ridurre le iterazioni

397* Configurate timeout di lavoro ragionevoli per evitare esecuzioni incontrollate435* Configurate timeout di lavoro ragionevoli per evitare esecuzioni incontrollate

398* Memorizzate nella cache npm e installazioni di pacchetti nei runner dove possibile436* Memorizzate nella cache npm e installazioni di pacchetti nei runner dove possibile

399 437 

400### Costi CI438<h3 id="ci-costs">

439 Costi CI

440</h3>

401 441 

402Quando utilizzate Claude Code con GitLab CI/CD, siate consapevoli dei costi associati:442Quando utilizzate Claude Code con GitLab CI/CD, siate consapevoli dei costi associati:

403 443 


415 * Impostate valori `max_turns` e timeout di lavoro appropriati455 * Impostate valori `max_turns` e timeout di lavoro appropriati

416 * Limitate la concorrenza per controllare le esecuzioni parallele456 * Limitate la concorrenza per controllare le esecuzioni parallele

417 457 

418## Sicurezza e governance458<h2 id="security-and-governance">

459 Sicurezza e governance

460</h2>

419 461 

420* Ogni lavoro viene eseguito in un contenitore isolato con accesso di rete limitato462* Ogni lavoro viene eseguito in un contenitore isolato con accesso di rete limitato

421* Le modifiche di Claude passano attraverso MR in modo che i revisori vedano ogni diff463* Le modifiche di Claude passano attraverso MR in modo che i revisori vedano ogni diff


423* Claude Code utilizza autorizzazioni con ambito workspace per limitare le scritture465* Claude Code utilizza autorizzazioni con ambito workspace per limitare le scritture

424* I costi rimangono sotto il vostro controllo perché portate le vostre credenziali del provider466* I costi rimangono sotto il vostro controllo perché portate le vostre credenziali del provider

425 467 

426## Risoluzione dei problemi468<h2 id="troubleshooting">

469 Risoluzione dei problemi

470</h2>

427 471 

428### Claude non risponde ai comandi @claude472<h3 id="claude-not-responding-to-claude-commands">

473 Claude non risponde ai comandi @claude

474</h3>

429 475 

430* Verificate che la vostra pipeline sia attivata (manualmente, evento MR o tramite listener di note/webhook)476* Verificate che la vostra pipeline sia attivata (manualmente, evento MR o tramite listener di note/webhook)

431* Assicuratevi che le variabili CI/CD (`ANTHROPIC_API_KEY` o impostazioni del provider cloud) siano presenti e non mascherate477* Assicuratevi che le variabili CI/CD (`ANTHROPIC_API_KEY` o impostazioni del provider cloud) siano presenti e non mascherate

432* Controllate che il commento contenga `@claude` (non `/claude`) e che il vostro trigger di menzione sia configurato478* Controllate che il commento contenga `@claude` (non `/claude`) e che il vostro trigger di menzione sia configurato

433 479 

434### Il lavoro non può scrivere commenti o aprire MR480<h3 id="job-can’t-write-comments-or-open-mrs">

481 Il lavoro non può scrivere commenti o aprire MR

482</h3>

435 483 

436* Assicuratevi che `CI_JOB_TOKEN` abbia autorizzazioni sufficienti per il progetto, oppure utilizzate un Project Access Token con ambito `api`484* Assicuratevi che `CI_JOB_TOKEN` abbia autorizzazioni sufficienti per il progetto, oppure utilizzate un Project Access Token con ambito `api`

437* Controllate che lo strumento `mcp__gitlab` sia abilitato in `--allowedTools`485* Controllate che lo strumento `mcp__gitlab` sia abilitato in `--allowedTools`

438* Confermate che il lavoro viene eseguito nel contesto del MR o abbia contesto sufficiente tramite variabili `AI_FLOW_*`486* Confermate che il lavoro viene eseguito nel contesto del MR o abbia contesto sufficiente tramite variabili `AI_FLOW_*`

439 487 

440### Errori di autenticazione488<h3 id="authentication-errors">

489 Errori di autenticazione

490</h3>

441 491 

442* **Per Claude API**: Confermate che `ANTHROPIC_API_KEY` sia valida e non scaduta492* **Per Claude API**: Confermate che `ANTHROPIC_API_KEY` sia valida e non scaduta

443* **Per Bedrock/Vertex**: Verificate la configurazione OIDC/WIF, l'impersonificazione del ruolo e i nomi segreti; confermate la disponibilità della regione e del modello493* **Per Bedrock/Vertex**: Verificate la configurazione OIDC/WIF, l'impersonificazione del ruolo e i nomi segreti; confermate la disponibilità della regione e del modello

444 494 

445## Configurazione avanzata495<h2 id="advanced-configuration">

496 Configurazione avanzata

497</h2>

446 498 

447### Parametri e variabili comuni499<h3 id="common-parameters-and-variables">

500 Parametri e variabili comuni

501</h3>

448 502 

449Claude Code supporta questi input comunemente utilizzati:503Claude Code supporta questi input comunemente utilizzati:

450 504 


458 I flag e i parametri esatti possono variare in base alla versione di `@anthropic-ai/claude-code`. Eseguite `claude --help` nel vostro lavoro per vedere le opzioni supportate.512 I flag e i parametri esatti possono variare in base alla versione di `@anthropic-ai/claude-code`. Eseguite `claude --help` nel vostro lavoro per vedere le opzioni supportate.

459</Note>513</Note>

460 514 

461### Personalizzazione del comportamento di Claude515<h3 id="customizing-claude’s-behavior">

516 Personalizzazione del comportamento di Claude

517</h3>

462 518 

463Potete guidare Claude in due modi principali:519Potete guidare Claude in due modi principali:

464 520 

glossary.md +10 −10

Details

70 70 

71Un flag di avvio, `--bare`, che salta l'auto-discovery di hooks, skills, plugins, server MCP, auto memory e CLAUDE.md. Solo i flag che passi esplicitamente hanno effetto. Consigliato per CI e chiamate con script dove hai bisogno di un comportamento identico tra le macchine indipendentemente dalla configurazione locale.71Un flag di avvio, `--bare`, che salta l'auto-discovery di hooks, skills, plugins, server MCP, auto memory e CLAUDE.md. Solo i flag che passi esplicitamente hanno effetto. Consigliato per CI e chiamate con script dove hai bisogno di un comportamento identico tra le macchine indipendentemente dalla configurazione locale.

72 72 

73Scopri di più: [Start faster with bare mode](/it/headless#start-faster-with-bare-mode)73Scopri di più: [Avvia più velocemente con bare mode](/it/headless#start-faster-with-bare-mode)

74 74 

75<h3 id="bundled-skills">75<h3 id="bundled-skills">

76 Bundled skills76 Bundled skills


162 Effort level162 Effort level

163</h3>163</h3>

164 164 

165Un'impostazione che controlla quanto del budget di thinking con ragionamento adattivo Claude utilizza ad ogni turno. Uno sforzo più elevato significa più token di thinking e ragionamento più profondo; uno sforzo inferiore è più veloce ed economico. Effort è supportato su Opus 4.6 e versioni successive, e su Sonnet 4.6.165Un'impostazione che controlla quanto del budget di thinking con ragionamento adattivo Claude utilizza ad ogni turno. Uno sforzo più elevato significa più token di thinking e ragionamento più profondo; uno sforzo inferiore è più veloce ed economico. Effort è supportato su Fable 5, su Opus 4.6 e versioni successive, e su Sonnet 4.6.

166 166 

167Scopri di più: [Adjust effort level](/it/model-config#adjust-effort-level)167Scopri di più: [Adjust effort level](/it/model-config#adjust-effort-level)

168 168 


170 Extended thinking170 Extended thinking

171</h3>171</h3>

172 172 

173Ragionamento passo dopo passo visibile che il modello esegue prima di rispondere. Puoi limitare i token di thinking con `MAX_THINKING_TOKENS` o regolare il [effort level](#effort-level). Il thinking appare in testo grigio corsivo nel terminale.173Ragionamento passo dopo passo visibile che il modello esegue prima di rispondere. Puoi regolarlo con il [effort level](#effort-level), oppure limitare i token di thinking con `MAX_THINKING_TOKENS` su modelli con un budget di thinking fisso. Il thinking appare in testo grigio corsivo nel terminale.

174 174 

175Scopri di più: [Use extended thinking](/it/model-config#extended-thinking)175Scopri di più: [Use extended thinking](/it/model-config#extended-thinking)

176 176 


254 254 

255Il comportamento di approvazione di base per la sessione. Cicla con `Shift+Tab` nella CLI o usa il selettore di modalità in VS Code, Desktop e claude.ai. Le modalità disponibili sono `default`, `acceptEdits`, `plan`, `auto`, `dontAsk` e `bypassPermissions`.255Il comportamento di approvazione di base per la sessione. Cicla con `Shift+Tab` nella CLI o usa il selettore di modalità in VS Code, Desktop e claude.ai. Le modalità disponibili sono `default`, `acceptEdits`, `plan`, `auto`, `dontAsk` e `bypassPermissions`.

256 256 

257Scopri di più: [Choose a permission mode](/it/permission-modes)257Scopri di più: [Scegli una modalità di autorizzazione](/it/permission-modes)

258 258 

259<h3 id="permission-rule">259<h3 id="permission-rule">

260 Permission rule260 Permission rule


262 262 

263Una voce di impostazioni che consente, chiede informazioni su o nega un'invocazione di uno strumento in base al nome dello strumento e al modello di argomento. Le regole vengono valutate deny→ask→allow, il primo match vince. Le permission rules sono controlli granulari sovrapposti alla più ampia [permission mode](#permission-mode).263Una voce di impostazioni che consente, chiede informazioni su o nega un'invocazione di uno strumento in base al nome dello strumento e al modello di argomento. Le regole vengono valutate deny→ask→allow, il primo match vince. Le permission rules sono controlli granulari sovrapposti alla più ampia [permission mode](#permission-mode).

264 264 

265Scopri di più: [Configure permissions](/it/permissions)265Scopri di più: [Configura le autorizzazioni](/it/permissions)

266 266 

267<h3 id="plan-mode">267<h3 id="plan-mode">

268 Plan mode268 Plan mode


270 270 

271Una [permission mode](#permission-mode) in cui Claude ricerca e propone modifiche senza modificare i tuoi file sorgente. Può leggere, cercare ed eseguire comandi di esplorazione, quindi presenta un piano per l'approvazione prima di toccare qualsiasi cosa. Entra in plan mode con `/plan` o premendo `Shift+Tab`.271Una [permission mode](#permission-mode) in cui Claude ricerca e propone modifiche senza modificare i tuoi file sorgente. Può leggere, cercare ed eseguire comandi di esplorazione, quindi presenta un piano per l'approvazione prima di toccare qualsiasi cosa. Entra in plan mode con `/plan` o premendo `Shift+Tab`.

272 272 

273Scopri di più: [Analyze before you edit with plan mode](/it/permission-modes#analyze-before-you-edit-with-plan-mode)273Scopri di più: [Analizza prima di modificare con plan mode](/it/permission-modes#analyze-before-you-edit-with-plan-mode)

274 274 

275<h3 id="plugin">275<h3 id="plugin">

276 Plugin276 Plugin


286 286 

287Una finestra di dialogo che accetta una directory prima che Claude Code carichi la sua configurazione. L'accettazione viene salvata per directory di progetto, ad eccezione della directory home, dove la fiducia viene mantenuta solo per la sessione corrente e il prompt riappare ad ogni avvio. Trust gates l'auto-installazione dei plugin del marketplace e l'esecuzione degli hooks definiti dal progetto. Fidarsi di una directory significa che i suoi file `.claude/settings.json`, `.mcp.json` e altri file di configurazione hanno effetto.287Una finestra di dialogo che accetta una directory prima che Claude Code carichi la sua configurazione. L'accettazione viene salvata per directory di progetto, ad eccezione della directory home, dove la fiducia viene mantenuta solo per la sessione corrente e il prompt riappare ad ogni avvio. Trust gates l'auto-installazione dei plugin del marketplace e l'esecuzione degli hooks definiti dal progetto. Fidarsi di una directory significa che i suoi file `.claude/settings.json`, `.mcp.json` e altri file di configurazione hanno effetto.

288 288 

289Scopri di più: [The `.claude` directory](/it/claude-directory)289Scopri di più: [La directory `.claude`](/it/claude-directory)

290 290 

291<h3 id="prompt-injection">291<h3 id="prompt-injection">

292 Prompt injection292 Prompt injection

293</h3>293</h3>

294 294 

295Istruzioni ostili incorporate in un file, pagina web o risultato dello strumento che tentano di reindirizzare Claude verso azioni che non hai mai chiesto. Le difese di Claude Code includono il sistema di autorizzazioni, le blocklist dei comandi e la verifica della fiducia. [Auto mode](#auto-mode) aggiunge una sonda lato server che scansiona i risultati degli strumenti per contenuti sospetti e un classificatore che non vede mai i risultati degli strumenti, quindi il testo iniettato non può influenzare le sue decisioni di approvazione.295Istruzioni ostili incorporate in un file, pagina web o risultato dello strumento che tentano di reindirizzare Claude verso azioni che non hai mai chiesto. Le difese di Claude Code includono il sistema di autorizzazioni, il rilevamento dell'iniezione di comandi e la verifica della fiducia. [Auto mode](#auto-mode) aggiunge una sonda lato server che scansiona i risultati degli strumenti per contenuti sospetti e un classificatore che non vede mai i risultati degli strumenti, quindi il testo iniettato non può influenzare le sue decisioni di approvazione.

296 296 

297Scopri di più: [Protect against prompt injection](/it/security#protect-against-prompt-injection)297Scopri di più: [Proteggi da prompt injection](/it/security#protect-against-prompt-injection)

298 298 

299<h2 id="r">299<h2 id="r">

300 R300 R


427***427***

428 428 

429<h2 id="deprecated-and-renamed-terms">429<h2 id="deprecated-and-renamed-terms">

430 Deprecated and renamed terms430 Termini deprecati e rinominati

431</h2>431</h2>

432 432 

433Questi termini appaiono in documenti più vecchi, post di blog e contenuti della comunità. Usa il nome attuale quando cerchi su questo sito.433Questi termini appaiono in documenti più vecchi, post di blog e contenuti della comunità. Usa il nome attuale quando cerchi su questo sito.

Details

6 6 

7> Scopri come configurare Claude Code tramite Google Vertex AI, inclusa la configurazione, la configurazione IAM e la risoluzione dei problemi.7> Scopri come configurare Claude Code tramite Google Vertex AI, inclusa la configurazione, la configurazione IAM e la risoluzione dei problemi.

8 8 

9export const ContactSalesCard = ({surface}) => {

10 const utm = content => `utm_source=claude_code&utm_medium=docs&utm_content=${surface}_${content}`;

11 const iconArrowRight = (size = 13) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">

12 <line x1="5" y1="12" x2="19" y2="12" />

13 <polyline points="12 5 19 12 12 19" />

14 </svg>;

15 const STYLES = `

16.cc-cs {

17 --cs-slate: #141413;

18 --cs-clay: #d97757;

19 --cs-clay-deep: #c6613f;

20 --cs-gray-000: #ffffff;

21 --cs-gray-700: #3d3d3a;

22 --cs-border-default: rgba(31, 30, 29, 0.15);

23 font-family: inherit;

24}

25.dark .cc-cs {

26 --cs-slate: #f0eee6;

27 --cs-gray-000: #262624;

28 --cs-gray-700: #bfbdb4;

29 --cs-border-default: rgba(240, 238, 230, 0.14);

30}

31.cc-cs-card {

32 display: flex; align-items: center; justify-content: space-between;

33 gap: 16px; padding: 14px 16px; margin: 0;

34 background: var(--cs-gray-000); border: 0.5px solid var(--cs-border-default);

35 border-radius: 8px; flex-wrap: wrap;

36}

37.cc-cs-text { font-size: 13px; color: var(--cs-gray-700); line-height: 1.5; flex: 1; min-width: 240px; }

38.cc-cs-text strong { font-weight: 550; color: var(--cs-slate); }

39.cc-cs-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

40.cc-cs-btn-clay {

41 display: inline-flex; align-items: center; gap: 8px;

42 background: var(--cs-clay-deep); color: #fff; border: none;

43 border-radius: 8px; padding: 8px 14px;

44 font-size: 13px; font-weight: 500;

45 transition: background-color 0.15s; white-space: nowrap;

46}

47.cc-cs-btn-clay:hover { background: var(--cs-clay); }

48.cc-cs-btn-ghost {

49 display: inline-flex; align-items: center; gap: 8px;

50 background: transparent; color: var(--cs-gray-700);

51 border: 0.5px solid var(--cs-border-default);

52 border-radius: 8px; padding: 8px 14px;

53 font-size: 13px; font-weight: 500;

54}

55.cc-cs-btn-ghost:hover { background: rgba(0, 0, 0, 0.04); }

56.dark .cc-cs-btn-ghost:hover { background: rgba(255, 255, 255, 0.04); }

57@media (max-width: 720px) {

58 .cc-cs-actions { width: 100%; }

59}

60`;

61 return <div className="cc-cs not-prose">

62 <style>{STYLES}</style>

63 <div className="cc-cs-card">

64 <div className="cc-cs-text">

65 <strong>Deploying Claude Code across your organization?</strong> Talk to sales about enterprise plans, SSO, and centralized billing.

66 </div>

67 <div className="cc-cs-actions">

68 <a href={`https://claude.com/pricing?${utm('view_plans')}#plans-business`} className="cc-cs-btn-ghost">

69 View plans

70 </a>

71 <a href={`https://claude.com/contact-sales?${utm('contact_sales')}`} className="cc-cs-btn-clay">

72 Contact sales {iconArrowRight()}

73 </a>

74 </div>

75 </div>

76 </div>;

77};

78 

79<ContactSalesCard surface="vertex" />

80 

9<h2 id="prerequisites">81<h2 id="prerequisites">

10 Prerequisiti82 Prerequisiti

11</h2>83</h2>


155</h3>227</h3>

156 228 

157<Warning>229<Warning>

158 Fissa versioni specifiche del modello quando distribuisci a più utenti. Senza fissaggio, gli alias di modello come `sonnet` e `opus` si risolvono nella versione più recente, che potrebbe non essere ancora abilitata nel tuo progetto Vertex AI quando Anthropic rilascia un aggiornamento. Claude Code [ritorna](#startup-model-checks) alla versione precedente all'avvio quando la versione più recente non è disponibile, ma il fissaggio ti consente di controllare quando i tuoi utenti passano a un nuovo modello.230 Fissa versioni specifiche del modello quando distribuisci a più utenti. Senza fissaggio, gli alias di modello come `sonnet` e `opus` si risolvono nel valore predefinito integrato di Claude Code per Vertex AI, che può essere in ritardo rispetto alla versione più recente e potrebbe non essere ancora abilitato nel tuo progetto. Claude Code [ritorna](#startup-model-checks) alla versione precedente all'avvio quando il valore predefinito non è disponibile, ma il fissaggio ti consente di controllare quando i tuoi utenti passano a un nuovo modello.

159</Warning>231</Warning>

160 232 

161Imposta queste variabili di ambiente su ID modello Vertex AI specifici.233Imposta queste variabili di ambiente su ID modello Vertex AI specifici.

headless.md +9 −1

Details

62 `--bare` è la modalità consigliata per le chiamate con script e SDK, e diventerà l'impostazione predefinita per `-p` in una versione futura.62 `--bare` è la modalità consigliata per le chiamate con script e SDK, e diventerà l'impostazione predefinita per `-p` in una versione futura.

63</Note>63</Note>

64 64 

65<h3 id="background-tasks-at-exit">

66 Attività in background all'uscita

67</h3>

68 

69Se Claude avvia un'[attività Bash in background](/it/tools-reference#bash-tool-behavior) durante un'esecuzione di `claude -p`, ad esempio un server di sviluppo o una build di watch, tale attività viene terminata circa cinque secondi dopo che Claude ha restituito il suo risultato finale e stdin è stato chiuso. Il periodo di grazia consente a un'attività che termina subito dopo il risultato di consegnare comunque il suo output. Prima della v2.1.163, un processo in background che non termina mai avrebbe mantenuto l'invocazione di `claude -p` aperta indefinitamente.

70 

65<h2 id="examples">71<h2 id="examples">

66 Esempi72 Esempi

67</h2>73</h2>


226Il flag `--allowedTools` utilizza la [sintassi delle regole di autorizzazione](/it/settings#permission-rule-syntax). Lo spazio finale ` *` abilita la corrispondenza dei prefissi, quindi `Bash(git diff *)` consente qualsiasi comando che inizia con `git diff`. Lo spazio prima di `*` è importante: senza di esso, `Bash(git diff*)` corrisponderebbe anche a `git diff-index`.232Il flag `--allowedTools` utilizza la [sintassi delle regole di autorizzazione](/it/settings#permission-rule-syntax). Lo spazio finale ` *` abilita la corrispondenza dei prefissi, quindi `Bash(git diff *)` consente qualsiasi comando che inizia con `git diff`. Lo spazio prima di `*` è importante: senza di esso, `Bash(git diff*)` corrisponderebbe anche a `git diff-index`.

227 233 

228<Note>234<Note>

229 Le [skills](/it/skills) richiamate dall'utente come `/code-review` e i [comandi incorporati](/it/commands) sono disponibili solo in modalità interattiva. In modalità `-p`, descrivi invece l'attività che desideri completare.235 Le skills richiamate dall'utente e i comandi personalizzati funzionano in modalità `-p`: includi `/skill-name` nella stringa del prompt e Claude Code lo espande prima di eseguire. I comandi incorporati che aprono una finestra di dialogo interattiva, come `/config` e `/login`, non sono disponibili in modalità `-p`.

230</Note>236</Note>

231 237 

232<h3 id="customize-the-system-prompt">238<h3 id="customize-the-system-prompt">


265claude -p "Continue that review" --resume "$session_id"271claude -p "Continue that review" --resume "$session_id"

266```272```

267 273 

274Esegui entrambi i comandi dalla stessa directory: la ricerca dell'ID sessione è limitata alla directory del progetto corrente e ai suoi git worktrees. Consulta [Resume a session](/it/sessions#resume-a-session) per le regole di ambito complete.

275 

268<h2 id="next-steps">276<h2 id="next-steps">

269 Passaggi successivi277 Passaggi successivi

270</h2>278</h2>

hooks.md +67 −28

Details

108Supponiamo che Claude Code decida di eseguire `Bash "rm -rf /tmp/build"`. Ecco cosa accade:108Supponiamo che Claude Code decida di eseguire `Bash "rm -rf /tmp/build"`. Ecco cosa accade:

109 109 

110<Frame>110<Frame>

111 <img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/hook-resolution.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=be0bf3053550c26de5f54cd64674c197" alt="Flusso di risoluzione del hook: l'evento PreToolUse si attiva, il matcher controlla la corrispondenza di Bash, la condizione if controlla la corrispondenza di Bash(rm *), il gestore del hook viene eseguito, il risultato ritorna a Claude Code" width="930" height="270" data-path="images/hook-resolution.svg" />111 <img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/hook-resolution.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=be0bf3053550c26de5f54cd64674c197" alt="Diagramma della risoluzione del hook: PreToolUse si attiva, il matcher controlla la corrispondenza di Bash, la condizione if controlla la corrispondenza di Bash(rm *). Se entrambi corrispondono, il comando del hook viene eseguito e restituisce permissionDecision deny, quindi la chiamata dello strumento viene bloccata e Claude Code continua. Se uno dei controlli non corrisponde, l'hook viene saltato e la chiamata dello strumento è autorizzata a procedere." width="930" height="270" data-path="images/hook-resolution.svg" />

112</Frame>112</Frame>

113 113 

114<Steps>114<Steps>


174Il luogo in cui si definisce un hook determina il suo ambito:174Il luogo in cui si definisce un hook determina il suo ambito:

175 175 

176| Posizione | Ambito | Condivisibile |176| Posizione | Ambito | Condivisibile |

177| :-------------------------------------------------------- | :---------------------------- | :--------------------------------------- |177| :-------------------------------------------------------- | :---------------------------- | :---------------------------------------- |

178| `~/.claude/settings.json` | Tutti i progetti | No, locale al computer |178| `~/.claude/settings.json` | Tutti i progetti | No, locale al computer |

179| `.claude/settings.json` | Singolo progetto | Sì, può essere committato nel repository |179| `.claude/settings.json` | Singolo progetto | Sì, può essere committato nel repository |

180| `.claude/settings.local.json` | Singolo progetto | No, gitignored |180| `.claude/settings.local.json` | Singolo progetto | No, gitignored quando Claude Code lo crea |

181| Impostazioni della politica gestita | Organizzazione intera | Sì, controllato dall'amministratore |181| Impostazioni della politica gestita | Organizzazione intera | Sì, controllato dall'amministratore |

182| [Plugin](/it/plugins) `hooks/hooks.json` | Quando il plugin è abilitato | Sì, fornito con il plugin |182| [Plugin](/it/plugins) `hooks/hooks.json` | Quando il plugin è abilitato | Sì, fornito con il plugin |

183| [Skill](/it/skills) o [agent](/it/sub-agents) frontmatter | Mentre il componente è attivo | Sì, definito nel file del componente |183| [Skill](/it/skills) o [agent](/it/sub-agents) frontmatter | Mentre il componente è attivo | Sì, definito nel file del componente |


311Questi campi si applicano a tutti i tipi di hook:311Questi campi si applicano a tutti i tipi di hook:

312 312 

313| Campo | Obbligatorio | Descrizione |313| Campo | Obbligatorio | Descrizione |

314| :-------------- | :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |314| :-------------- | :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

315| `type` | sì | `"command"`, `"http"`, `"mcp_tool"`, `"prompt"` o `"agent"` |315| `type` | sì | `"command"`, `"http"`, `"mcp_tool"`, `"prompt"` o `"agent"` |

316| `if` | no | Sintassi della regola di autorizzazione per filtrare quando questo hook viene eseguito, come `"Bash(git *)"` o `"Edit(*.ts)"`. L'hook viene eseguito solo se la chiamata dello strumento corrisponde al modello, o se un comando Bash è troppo complesso da analizzare. Valutato solo su eventi degli strumenti: `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` e `PermissionDenied`. Su altri eventi, un hook con `if` impostato non viene mai eseguito. Utilizza la stessa sintassi delle [regole di autorizzazione](/it/permissions) |316| `if` | no | Sintassi della regola di autorizzazione per filtrare quando questo hook viene eseguito, come `"Bash(git *)"` o `"Edit(*.ts)"`. L'hook viene eseguito solo se la chiamata dello strumento corrisponde al modello. Consultare la [tabella di corrispondenza Bash](#bash-if-matching) di seguito per come i modelli Bash si valutano rispetto ai sottocomandi, `$()` e backtick. Valutato solo su eventi degli strumenti: `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` e `PermissionDenied`. Su altri eventi, un hook con `if` impostato non viene mai eseguito. Utilizza la stessa sintassi delle [regole di autorizzazione](/it/permissions) |

317| `timeout` | no | Secondi prima dell'annullamento. Impostazioni predefinite: 600 per `command`, `http` e `mcp_tool`; 30 per `prompt`; 60 per `agent`. [`UserPromptSubmit`](#userpromptsubmit) abbassa l'impostazione predefinita di `command`, `http` e `mcp_tool` a 30, e [`MessageDisplay`](#messagedisplay) la abbassa a 10 |317| `timeout` | no | Secondi prima dell'annullamento. Impostazioni predefinite: 600 per `command`, `http` e `mcp_tool`; 30 per `prompt`; 60 per `agent`. [`UserPromptSubmit`](#userpromptsubmit) abbassa l'impostazione predefinita di `command`, `http` e `mcp_tool` a 30, e [`MessageDisplay`](#messagedisplay) la abbassa a 10 |

318| `statusMessage` | no | Messaggio spinner personalizzato visualizzato mentre l'hook viene eseguito |318| `statusMessage` | no | Messaggio spinner personalizzato visualizzato mentre l'hook viene eseguito |

319| `once` | no | Se `true`, viene eseguito una sola volta per sessione e poi rimosso. Solo onorato per gli hook dichiarati nel [frontmatter della skill](#hooks-in-skills-and-agents); ignorato nei file di impostazioni e nel frontmatter dell'agente |319| `once` | no | Se `true`, viene eseguito una sola volta per sessione e poi rimosso. Solo onorato per gli hook dichiarati nel [frontmatter della skill](#hooks-in-skills-and-agents); ignorato nei file di impostazioni e nel frontmatter dell'agente |

320 320 

321Il campo `if` contiene esattamente una regola di autorizzazione. Non esiste sintassi `&&`, `||` o di elenco per combinare le regole; per applicare più condizioni, definire un gestore del hook separato per ciascuna. Per Bash, la regola viene confrontata con ogni sottocomando dell'input dello strumento dopo che gli assegnamenti `VAR=value` iniziali vengono rimossi, quindi `if: "Bash(git push *)"` corrisponde sia a `FOO=bar git push` che a `npm test && git push`. L'hook viene eseguito se qualsiasi sottocomando corrisponde e viene sempre eseguito quando il comando è troppo complesso da analizzare.321Il campo `if` contiene esattamente una regola di autorizzazione. Non esiste sintassi `&&`, `||` o di elenco per combinare le regole; per applicare più condizioni, definire un gestore del hook separato per ciascuna.

322 

323<span id="bash-if-matching" />Per i modelli Bash, se il comando hook viene eseguito dipende dalla forma del modello e dal comando Bash che Claude sta invocando. Gli assegnamenti `VAR=value` iniziali vengono rimossi prima della corrispondenza.

324 

325| Modello `if` | Comando Bash | Hook viene eseguito? | Perché |

326| :----------------- | :--------------------- | :------------------- | :------------------------------------------------------------------------------------------------------ |

327| `Bash(git *)` | `FOO=bar git push` | sì | gli assegnamenti iniziali vengono rimossi; `git push` corrisponde |

328| `Bash(git *)` | `npm test && git push` | sì | ogni sottocomando viene controllato; `git push` corrisponde |

329| `Bash(rm *)` | `echo $(rm -rf /)` | sì | i comandi dentro `$()` e backtick vengono controllati; `rm -rf /` corrisponde |

330| `Bash(rm *)` | `echo $(date)` | no | nessun sottocomando corrisponde a `rm *` |

331| `Bash(git push *)` | `echo $(date)` | sì | i modelli che specificano più del nome del comando eseguono l'hook comunque su `$()`, backtick o `$VAR` |

332 

333Il filtro fallisce anche in modo aperto, eseguendo l'hook indipendentemente dal modello, quando il comando Bash non può essere analizzato. Poiché il filtro `if` è best-effort, utilizzare il [sistema di autorizzazione](/it/permissions) piuttosto che un hook per applicare un'autorizzazione o un diniego rigido.

322 334 

323<h4 id="command-hook-fields">335<h4 id="command-hook-fields">

324 Campi del command hook336 Campi del command hook


328 340 

329| Campo | Obbligatorio | Descrizione |341| Campo | Obbligatorio | Descrizione |

330| :------------ | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |342| :------------ | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

331| `command` | sì | Comando shell da eseguire. Con `args`, l'eseguibile da generare direttamente. Consultare [Exec form and shell form](#exec-form-and-shell-form) |343| `command` | sì | Comando shell da eseguire. Con `args`, l'eseguibile da generare direttamente. Consultare [Exec form e shell form](#exec-form-and-shell-form) |

332| `args` | no | Elenco di argomenti. Quando presente, `command` viene risolto come eseguibile e generato direttamente con `args` come vettore di argomenti, senza shell. Consultare [Exec form and shell form](#exec-form-and-shell-form) |344| `args` | no | Elenco di argomenti. Quando presente, `command` viene risolto come eseguibile e generato direttamente con `args` come vettore di argomenti, senza shell. Consultare [Exec form e shell form](#exec-form-and-shell-form) |

333| `async` | no | Se `true`, viene eseguito in background senza bloccare. Consultare [Run hooks in the background](#run-hooks-in-the-background) |345| `async` | no | Se `true`, viene eseguito in background senza bloccare. Consultare [Run hooks in the background](#run-hooks-in-the-background) |

334| `asyncRewake` | no | Se `true`, viene eseguito in background e riattiva Claude su codice di uscita 2. Implica `async`. Lo stderr del hook, o stdout se stderr è vuoto, viene mostrato a Claude come promemoria di sistema in modo che possa reagire a un guasto in background a lunga esecuzione |346| `asyncRewake` | no | Se `true`, viene eseguito in background e riattiva Claude su codice di uscita 2. Implica `async`. Lo stderr del hook, o stdout se stderr è vuoto, viene mostrato a Claude come promemoria di sistema in modo che possa reagire a un guasto in background a lunga esecuzione |

335| `shell` | no | Shell da utilizzare per questo hook. Accetta `"bash"` (predefinito) o `"powershell"`. L'impostazione `"powershell"` esegue il comando tramite PowerShell su Windows. Non richiede `CLAUDE_CODE_USE_POWERSHELL_TOOL` poiché gli hook generano PowerShell direttamente. Ignorato quando `args` è impostato |347| `shell` | no | Shell da utilizzare per questo hook. Accetta `"bash"` (predefinito) o `"powershell"`. L'impostazione `"powershell"` esegue il comando tramite PowerShell su Windows. Non richiede `CLAUDE_CODE_USE_POWERSHELL_TOOL` poiché gli hook generano PowerShell direttamente. Ignorato quando `args` è impostato |


461Oltre ai [campi comuni](#common-fields), i prompt hook e agent hook accettano questi campi:473Oltre ai [campi comuni](#common-fields), i prompt hook e agent hook accettano questi campi:

462 474 

463| Campo | Obbligatorio | Descrizione |475| Campo | Obbligatorio | Descrizione |

464| :------- | :----------- | :-------------------------------------------------------------------------------------------------------- |476| :------- | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

465| `prompt` | sì | Testo del prompt da inviare al modello. Utilizzare `$ARGUMENTS` come segnaposto per l'input JSON del hook |477| `prompt` | sì | Testo del prompt da inviare al modello. Utilizzare `$ARGUMENTS` come segnaposto per l'input JSON del hook. Sfuggire con una barra rovesciata per includere testo letterale: `\$1.00` viene visualizzato come `$1.00` |

466| `model` | no | Modello da utilizzare per la valutazione. Impostazione predefinita: un modello veloce |478| `model` | no | Modello da utilizzare per la valutazione. Impostazione predefinita: un modello veloce |

467 479 

468Tutti gli hook corrispondenti vengono eseguiti in parallelo e i gestori identici vengono automaticamente deduplicati. I command hook vengono deduplicati per stringa di comando e `args`, e gli HTTP hook vengono deduplicati per URL. I gestori vengono eseguiti nella directory corrente con l'ambiente di Claude Code. La variabile di ambiente `$CLAUDE_CODE_REMOTE` è impostata su `"true"` negli ambienti web remoti e non è impostata nella CLI locale.480Tutti gli hook corrispondenti vengono eseguiti in parallelo e i gestori identici vengono automaticamente deduplicati. I command hook vengono deduplicati per stringa di comando e `args`, e gli HTTP hook vengono deduplicati per URL. I gestori vengono eseguiti nella directory corrente con l'ambiente di Claude Code. La variabile di ambiente `$CLAUDE_CODE_REMOTE` è impostata su `"true"` negli ambienti web remoti e non è impostata nella CLI locale.


619| `agent_id` | Identificatore univoco per il subagent. Presente solo quando l'hook si attiva all'interno di una chiamata di subagent. Utilizzare questo per distinguere le chiamate del hook del subagent dalle chiamate del thread principale. |631| `agent_id` | Identificatore univoco per il subagent. Presente solo quando l'hook si attiva all'interno di una chiamata di subagent. Utilizzare questo per distinguere le chiamate del hook del subagent dalle chiamate del thread principale. |

620| `agent_type` | Nome dell'agente (ad esempio, `"Explore"` o `"security-reviewer"`). Presente quando la sessione utilizza `--agent` o l'hook si attiva all'interno di un subagent. Per i subagent, il tipo del subagent ha la precedenza sul valore `--agent` della sessione. Per i [subagent personalizzati](/it/sub-agents), questo è il campo `name` dal frontmatter dell'agente, non il nome del file. |632| `agent_type` | Nome dell'agente (ad esempio, `"Explore"` o `"security-reviewer"`). Presente quando la sessione utilizza `--agent` o l'hook si attiva all'interno di un subagent. Per i subagent, il tipo del subagent ha la precedenza sul valore `--agent` della sessione. Per i [subagent personalizzati](/it/sub-agents), questo è il campo `name` dal frontmatter dell'agente, non il nome del file. |

621 633 

622Solo gli hook [`SessionStart`](#sessionstart) ricevono un campo `model`. Non esiste una variabile di ambiente `$CLAUDE_MODEL`. Un processo hook eredita l'ambiente padre, quindi può leggere `$ANTHROPIC_MODEL` se lo imposti nella tua shell, ma quel valore non cambia quando cambi modelli con `/model` durante una sessione.634Solo gli hook [`SessionStart`](#sessionstart) possono ricevere un campo `model`, e non è garantito che sia presente. Non esiste una variabile di ambiente `$CLAUDE_MODEL`. Un processo hook eredita l'ambiente padre, quindi può leggere `$ANTHROPIC_MODEL` se lo imposti nella tua shell, ma quel valore non cambia quando cambi modelli con `/model` durante una sessione.

623 635 

624Ad esempio, un hook `PreToolUse` per un comando Bash riceve questo su stdin:636Ad esempio, un hook `PreToolUse` per un comando Bash riceve questo su stdin:

625 637 


782# Hook di notifica: avvisa il desktop quando Claude Code ha bisogno di attenzione.794# Hook di notifica: avvisa il desktop quando Claude Code ha bisogno di attenzione.

783input=$(cat)795input=$(cat)

784title="Claude Code'796title="Claude Code'

785body=$(jq -r '.message // 'Needs your attention'' <<<"$input")797body=$(jq -r '.message // 'Needs your attention'' <<<'$input")

786seq=$(printf '\033]777;notify;%s;%s\007' "$title" "$body")798seq=$(printf '\033]777;notify;%s;%s\007' "$title" "$body")

787jq -nc --arg seq "$seq" '{terminalSequence: $seq}'799jq -nc --arg seq "$seq" '{terminalSequence: $seq}'

788```800```


815* [SessionStart](#sessionstart), [Setup](#setup) e [SubagentStart](#subagentstart): all'inizio della conversazione, prima del primo prompt827* [SessionStart](#sessionstart), [Setup](#setup) e [SubagentStart](#subagentstart): all'inizio della conversazione, prima del primo prompt

816* [UserPromptSubmit](#userpromptsubmit) e [UserPromptExpansion](#userpromptexpansion): insieme al prompt inviato828* [UserPromptSubmit](#userpromptsubmit) e [UserPromptExpansion](#userpromptexpansion): insieme al prompt inviato

817* [PreToolUse](#pretooluse), [PostToolUse](#posttooluse), [PostToolUseFailure](#posttoolusefailure) e [PostToolBatch](#posttoolbatch): accanto al risultato dello strumento829* [PreToolUse](#pretooluse), [PostToolUse](#posttooluse), [PostToolUseFailure](#posttoolusefailure) e [PostToolBatch](#posttoolbatch): accanto al risultato dello strumento

830* [Stop](#stop) e [SubagentStop](#subagentstop): alla fine del turno. La conversazione continua in modo che Claude possa agire sul feedback. Consultare [Stop decision control](#stop-decision-control)

818 831 

819Quando più hook restituiscono `additionalContext` per lo stesso evento, Claude riceve tutti i valori. Se un valore supera 10.000 caratteri, Claude Code scrive il testo completo in un file nella directory della sessione e passa a Claude il percorso del file con un'anteprima breve.832Quando più hook restituiscono `additionalContext` per lo stesso evento, Claude riceve tutti i valori. Se un valore supera 10.000 caratteri, Claude Code scrive il testo completo in un file nella directory della sessione e passa a Claude il percorso del file con un'anteprima breve.

820 833 


838 851 

839| Eventi | Modello di decisione | Campi chiave |852| Eventi | Modello di decisione | Campi chiave |

840| :---------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |853| :---------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

841| UserPromptSubmit, UserPromptExpansion, PostToolUse, PostToolUseFailure, PostToolBatch, Stop, SubagentStop, ConfigChange, PreCompact | `decision` di livello superiore | `decision: "block"`, `reason` |854| UserPromptSubmit, UserPromptExpansion, PostToolUse, PostToolUseFailure, PostToolBatch, Stop, SubagentStop, ConfigChange, PreCompact | `decision` di livello superiore | `decision: "block"`, `reason`. Stop e SubagentStop accettano anche `hookSpecificOutput.additionalContext` per [feedback non-errore che continua la conversazione](#stop-decision-control) |

842| TeammateIdle, TaskCreated, TaskCompleted | Codice di uscita o `continue: false` | Il codice di uscita 2 blocca l'azione con feedback stderr. JSON `{"continue": false, "stopReason": "..."}` interrompe anche completamente il compagno di squadra, corrispondendo al comportamento dell'hook `Stop` |855| TeammateIdle, TaskCreated, TaskCompleted | Codice di uscita o `continue: false` | Il codice di uscita 2 blocca l'azione con feedback stderr. JSON `{"continue": false, "stopReason": "..."}` interrompe anche completamente il compagno di squadra, corrispondendo al comportamento dell'hook `Stop` |

843| PreToolUse | `hookSpecificOutput` | `permissionDecision` (allow/deny/ask/defer), `permissionDecisionReason` |856| PreToolUse | `hookSpecificOutput` | `permissionDecision` (allow/deny/ask/defer), `permissionDecisionReason` |

844| PermissionRequest | `hookSpecificOutput` | `decision.behavior` (allow/deny) |857| PermissionRequest | `hookSpecificOutput` | `decision.behavior` (allow/deny) |


850| SessionStart, Setup, SubagentStart | Solo contesto | `hookSpecificOutput.additionalContext` aggiunge contesto per Claude. SessionStart accetta anche [`initialUserMessage`, `watchPaths`, `sessionTitle` e `reloadSkills`](#sessionstart-decision-control). Nessun blocco o controllo della decisione |863| SessionStart, Setup, SubagentStart | Solo contesto | `hookSpecificOutput.additionalContext` aggiunge contesto per Claude. SessionStart accetta anche [`initialUserMessage`, `watchPaths`, `sessionTitle` e `reloadSkills`](#sessionstart-decision-control). Nessun blocco o controllo della decisione |

851| WorktreeRemove, Notification, SessionEnd, PostCompact, InstructionsLoaded, StopFailure, CwdChanged, FileChanged | Nessuno | Nessun controllo della decisione. Utilizzato per effetti collaterali come la registrazione o la pulizia |864| WorktreeRemove, Notification, SessionEnd, PostCompact, InstructionsLoaded, StopFailure, CwdChanged, FileChanged | Nessuno | Nessun controllo della decisione. Utilizzato per effetti collaterali come la registrazione o la pulizia |

852 865 

866Alcuni eventi possono anche riscrivere il contenuto piuttosto che solo consentire o bloccare:

867 

868* `PreToolUse` — `updatedInput` direttamente sotto `hookSpecificOutput` sostituisce gli argomenti di uno strumento prima che venga eseguito ([dettagli](#pretooluse-decision-control))

869* `PermissionRequest` — `updatedInput` all'interno dell'oggetto `decision` ([dettagli](#permissionrequest-decision-control))

870* `PostToolUse` — `updatedToolOutput` sostituisce il risultato dello strumento ([dettagli](#posttooluse-decision-control))

871* `UserPromptSubmit` — non può sostituire il prompt; solo inietta `additionalContext` insieme ad esso

872 

873Per i casi di uso di redazione o trasformazione, intercettare a `PreToolUse` per gli input dello strumento in uscita e `PostToolUse` per i risultati dello strumento in entrata.

874 

853Ecco esempi di ogni modello in azione:875Ecco esempi di ogni modello in azione:

854 876 

855<Tabs>877<Tabs>


926 Input di SessionStart948 Input di SessionStart

927</h4>949</h4>

928 950 

929Oltre ai [campi di input comuni](#common-input-fields), gli hook SessionStart ricevono `source`, `model` e facoltativamente `agent_type` e `session_title`. Il campo `source` indica come è iniziata la sessione: `"startup"` per le nuove sessioni, `"resume"` per le sessioni riprese, `"clear"` dopo `/clear` o `"compact"` dopo la compattazione. Il campo `model` contiene l'identificatore del modello. Se si avvia Claude Code con `claude --agent <name>`, un campo `agent_type` contiene il nome dell'agente. Il campo `session_title` contiene il titolo della sessione corrente se uno è già impostato, ad esempio tramite `--name` o `/rename`. Un hook che emette `sessionTitle` può controllare prima `session_title` per evitare di sovrascrivere un titolo impostato esplicitamente dall'utente.951Oltre ai [campi di input comuni](#common-input-fields), gli hook SessionStart ricevono `source` e facoltativamente `model`, `agent_type` e `session_title`. Il campo `source` indica come è iniziata la sessione: `"startup"` per le nuove sessioni, `"resume"` per le sessioni riprese, `"clear"` dopo `/clear` o `"compact"` dopo la compattazione. Il campo `model` contiene l'identificatore del modello attivo. Può essere omesso, ad esempio dopo `/clear` o quando una sessione viene ripristinata attraverso il recupero della conversazione, quindi controllare il campo prima di leggerlo. Se si avvia Claude Code con `claude --agent <name>`, un campo `agent_type` contiene il nome dell'agente. Il campo `session_title` contiene il titolo della sessione corrente se uno è già impostato, ad esempio tramite `--name` o `/rename`. Un hook che emette `sessionTitle` può controllare prima `session_title` per evitare di sovrascrivere un titolo impostato esplicitamente dall'utente.

930 952 

931```json theme={null}953```json theme={null}

932{954{


1502In `PostToolUse`, `tool_response` per una chiamata Agent completata contiene il testo finale del subagent insieme alla telemetria di utilizzo. Leggere questi campi per registrare il costo per subagent da un hook:1524In `PostToolUse`, `tool_response` per una chiamata Agent completata contiene il testo finale del subagent insieme alla telemetria di utilizzo. Leggere questi campi per registrare il costo per subagent da un hook:

1503 1525 

1504| Campo | Tipo | Esempio | Descrizione |1526| Campo | Tipo | Esempio | Descrizione |

1505| :------------------ | :----- | :---------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- |1527| :------------------ | :----- | :---------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- |

1506| `status` | string | `"completed"` | `"completed"` per le chiamate sincrone, `"async_launched"` per `run_in_background: true` |1528| `status` | string | `"completed"` | `"completed"` per le chiamate sincrone, `"async_launched"` per `run_in_background: true` |

1507| `agentId` | string | `"a4d2c8f1e0b3a297"` | Identificatore per l'esecuzione del subagent |1529| `agentId` | string | `"a4d2c8f1e0b3a297"` | Identificatore per l'esecuzione del subagent |

1508| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | I blocchi di testo finali del subagent |1530| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | I blocchi di testo finali del subagent |

1531| `resolvedModel` | string | `"claude-sonnet-4-5"` | Modello su cui è stato eseguito il subagent, che può differire dal modello richiesto. {/* min-version: 2.1.174 */}Richiede Claude Code v2.1.174 o successivo |

1509| `totalTokens` | number | `12450` | Token totali fatturati nei turni del subagent |1532| `totalTokens` | number | `12450` | Token totali fatturati nei turni del subagent |

1510| `totalDurationMs` | number | `48211` | Durata wall-clock dell'esecuzione del subagent |1533| `totalDurationMs` | number | `48211` | Durata wall-clock dell'esecuzione del subagent |

1511| `totalToolUseCount` | number | `7` | Conteggio delle chiamate dello strumento effettuate dal subagent |1534| `totalToolUseCount` | number | `7` | Conteggio delle chiamate dello strumento effettuate dal subagent |

1512| `usage` | object | `{"input_tokens": 8320, ...}` | Suddivisione dei token per tipo: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |1535| `usage` | object | `{"input_tokens": 8320, ...}` | Suddivisione dei token per tipo: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |

1513 1536 

1514Per le chiamate `run_in_background: true`, lo strumento ritorna immediatamente dopo il lancio del subagent, quindi `tool_response` non contiene campi di utilizzo. Ha `status: "async_launched"`, `agentId`, `description`, `prompt` e `outputFile` invece.1537Per le chiamate `run_in_background: true`, lo strumento ritorna immediatamente dopo il lancio del subagent, quindi `tool_response` non contiene campi di utilizzo. Ha `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile` e `resolvedModel` invece.

1538 

1539Il campo `resolvedModel` nomina il modello su cui il subagent effettivamente viene eseguito, che può differire dal valore `model` in `tool_input`. Richiede Claude Code v2.1.174 o successivo.

1540 

1541<a id="askuserquestion" />

1515 1542 

1516<h5 id="askuserquestion">1543<h5 id="askuserquestion">

1517 AskUserQuestion1544 AskUserQuestion


2088}2115}

2089```2116```

2090 2117 

2091Gli hook SubagentStop utilizzano lo stesso formato di controllo della decisione degli [hook Stop](#stop-decision-control). Non supportano `additionalContext`. Restituire `decision: "block"` con un `reason` mantiene il subagent in esecuzione e consegna `reason` al subagent come sua prossima istruzione. Per iniettare contesto nella sessione padre dopo il ritorno di un subagent, utilizzare un hook [`PostToolUse`](#posttooluse) sullo strumento `Agent` invece.2118Gli hook SubagentStop utilizzano lo stesso formato di controllo della decisione degli [hook Stop](#stop-decision-control), incluso `hookSpecificOutput.additionalContext` con `hookEventName` impostato su `"SubagentStop"`, per il feedback non-errore che mantiene il subagent in esecuzione. Restituire `decision: "block"` con un `reason` mantiene il subagent in esecuzione e consegna `reason` al subagent come sua prossima istruzione. Per iniettare contesto nella sessione padre dopo il ritorno di un subagent, utilizzare un hook [`PostToolUse`](#posttooluse) sullo strumento `Agent` invece.

2092 2119 

2093<h3 id="taskcreated">2120<h3 id="taskcreated">

2094 TaskCreated2121 TaskCreated


2115 "task_subject": "Implement user authentication",2142 "task_subject": "Implement user authentication",

2116 "task_description": "Add login and signup endpoints",2143 "task_description": "Add login and signup endpoints",

2117 "teammate_name": "implementer",2144 "teammate_name": "implementer",

2118 "team_name": "my-project"2145 "team_name": "session-a1b2c3d4"

2119}2146}

2120```2147```

2121 2148 

2122| Campo | Descrizione |2149| Campo | Descrizione |

2123| :----------------- | :------------------------------------------------------------------- |2150| :----------------- | :-------------------------------------------------------------------------- |

2124| `task_id` | Identificatore dell'attività in corso di creazione |2151| `task_id` | Identificatore dell'attività in corso di creazione |

2125| `task_subject` | Titolo dell'attività |2152| `task_subject` | Titolo dell'attività |

2126| `task_description` | Descrizione dettagliata dell'attività. Può essere assente |2153| `task_description` | Descrizione dettagliata dell'attività. Può essere assente |

2127| `teammate_name` | Nome del compagno di squadra che crea l'attività. Può essere assente |2154| `teammate_name` | Nome del compagno di squadra che crea l'attività. Può essere assente |

2128| `team_name` | Nome del team. Può essere assente |2155| `team_name` | Nome del team derivato dalla sessione; verrà rimosso in una versione futura |

2129 2156 

2130<h4 id="taskcreated-decision-control">2157<h4 id="taskcreated-decision-control">

2131 Controllo della decisione di TaskCreated2158 Controllo della decisione di TaskCreated


2176 "task_subject": "Implement user authentication",2203 "task_subject": "Implement user authentication",

2177 "task_description": "Add login and signup endpoints",2204 "task_description": "Add login and signup endpoints",

2178 "teammate_name": "implementer",2205 "teammate_name": "implementer",

2179 "team_name": "my-project"2206 "team_name": "session-a1b2c3d4"

2180}2207}

2181```2208```

2182 2209 

2183| Campo | Descrizione |2210| Campo | Descrizione |

2184| :----------------- | :----------------------------------------------------------------------- |2211| :----------------- | :-------------------------------------------------------------------------- |

2185| `task_id` | Identificatore dell'attività in corso di completamento |2212| `task_id` | Identificatore dell'attività in corso di completamento |

2186| `task_subject` | Titolo dell'attività |2213| `task_subject` | Titolo dell'attività |

2187| `task_description` | Descrizione dettagliata dell'attività. Può essere assente |2214| `task_description` | Descrizione dettagliata dell'attività. Può essere assente |

2188| `teammate_name` | Nome del compagno di squadra che completa l'attività. Può essere assente |2215| `teammate_name` | Nome del compagno di squadra che completa l'attività. Può essere assente |

2189| `team_name` | Nome del team. Può essere assente |2216| `team_name` | Nome del team derivato dalla sessione; verrà rimosso in una versione futura |

2190 2217 

2191<h4 id="taskcompleted-decision-control">2218<h4 id="taskcompleted-decision-control">

2192 Controllo della decisione di TaskCompleted2219 Controllo della decisione di TaskCompleted


2292Gli hook `Stop` e `SubagentStop` possono controllare se Claude continua. Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, lo script del hook può restituire questi campi specifici dell'evento:2319Gli hook `Stop` e `SubagentStop` possono controllare se Claude continua. Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, lo script del hook può restituire questi campi specifici dell'evento:

2293 2320 

2294| Campo | Descrizione |2321| Campo | Descrizione |

2295| :--------- | :------------------------------------------------------------------------------------- |2322| :------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

2296| `decision` | `"block"` impedisce a Claude di fermarsi. Omettere per consentire a Claude di fermarsi |2323| `decision` | `"block"` impedisce a Claude di fermarsi. Omettere per consentire a Claude di fermarsi |

2297| `reason` | Obbligatorio quando `decision` è `"block"`. Dice a Claude perché dovrebbe continuare |2324| `reason` | Obbligatorio quando `decision` è `"block"`. Dice a Claude perché dovrebbe continuare |

2325| `hookSpecificOutput.additionalContext` | Feedback non-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 come errore dell'hook |

2298 2326 

2299```json theme={null}2327```json theme={null}

2300{2328{


2303}2331}

2304```2332```

2305 2333 

2334Utilizzare `additionalContext` quando l'hook funziona come previsto e fornisce a Claude una guida, come "eseguire la suite di test prima di terminare". 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:

2335 

2336```json theme={null}

2337{

2338 "hookSpecificOutput": {

2339 "hookEventName": "Stop",

2340 "additionalContext": "Please run the test suite before finishing"

2341 }

2342}

2343```

2344 

2306<h3 id="stopfailure">2345<h3 id="stopfailure">

2307 StopFailure2346 StopFailure

2308</h3>2347</h3>


2357 "permission_mode": "default",2396 "permission_mode": "default",

2358 "hook_event_name": "TeammateIdle",2397 "hook_event_name": "TeammateIdle",

2359 "teammate_name": "researcher",2398 "teammate_name": "researcher",

2360 "team_name": "my-project"2399 "team_name": "session-a1b2c3d4"

2361}2400}

2362```2401```

2363 2402 

2364| Campo | Descrizione |2403| Campo | Descrizione |

2365| :-------------- | :------------------------------------------------------- |2404| :-------------- | :-------------------------------------------------------------------------- |

2366| `teammate_name` | Nome del compagno di squadra che sta per andare inattivo |2405| `teammate_name` | Nome del compagno di squadra che sta per andare inattivo |

2367| `team_name` | Nome del team |2406| `team_name` | Nome del team derivato dalla sessione; verrà rimosso in una versione futura |

2368 2407 

2369<h4 id="teammateidle-decision-control">2408<h4 id="teammateidle-decision-control">

2370 Controllo della decisione di TeammateIdle2409 Controllo della decisione di TeammateIdle


2737 Input di SessionEnd2776 Input di SessionEnd

2738</h4>2777</h4>

2739 2778 

2740Oltre ai [campi di input comuni](#common-input-fields), gli hook SessionEnd ricevono un campo `reason` che indica perché la sessione è terminata. Consultare la [tabella dei motivi](#sessionend) sopra per tutti i valori.2779Oltre ai [campi di input comuni](#common-input-fields), gli hook SessionEnd ricevono un campo `reason` che indica perché la sessione è terminata. Consultare la tabella dei motivi sopra per tutti i valori.

2741 2780 

2742```json theme={null}2781```json theme={null}

2743{2782{

hooks-guide.md +18 −6

Details

506 506 

507Quando più hooks corrispondono allo stesso evento, il comando di ogni hook si esegue fino al completamento prima che Claude Code unisca i risultati. Un hook che restituisce `deny` non impedisce ai sibling hooks di eseguirsi. Non affidatevi al `deny` di un hook per sopprimere gli effetti collaterali in un altro hook.507Quando più hooks corrispondono allo stesso evento, il comando di ogni hook si esegue fino al completamento prima che Claude Code unisca i risultati. Un hook che restituisce `deny` non impedisce ai sibling hooks di eseguirsi. Non affidatevi al `deny` di un hook per sopprimere gli effetti collaterali in un altro hook.

508 508 

509Dopo che tutti gli hooks corrispondenti terminano, Claude Code combina i loro output. Per le decisioni di autorizzazione `PreToolUse`, la risposta più restrittiva vince: `deny` sostituisce `ask`, che sostituisce `allow`. Il testo da `additionalContext` viene mantenuto da ogni hook e passato a Claude insieme.509Dopo che tutti gli hooks corrispondenti terminano, Claude Code combina i loro output. Per le decisioni di autorizzazione `PreToolUse`, la risposta più restrittiva vince, nell'ordine `deny`, `defer`, `ask`, `allow`. Il testo da `additionalContext` viene mantenuto da ogni hook e passato a Claude insieme.

510 510 

511L'esempio sottostante registra due hooks `PreToolUse` su `Bash`. Il primo aggiunge ogni comando a un file di log e esce con 0. Il secondo esegue uno script che esce con 2 per negare quando il comando contiene `rm -rf`:511L'esempio sottostante registra due hooks `PreToolUse` su `Bash`. Il primo aggiunge ogni comando a un file di log e esce con 0. Il secondo esegue uno script che esce con 2 per negare quando il comando contiene `rm -rf`:

512 512 


751 Il campo `if` richiede Claude Code v2.1.85 o successivo. Le versioni precedenti lo ignorano e eseguono l'hook su ogni chiamata corrispondente.751 Il campo `if` richiede Claude Code v2.1.85 o successivo. Le versioni precedenti lo ignorano e eseguono l'hook su ogni chiamata corrispondente.

752</Note>752</Note>

753 753 

754Il campo `if` utilizza la [permission rule syntax](/it/permissions) per filtrare gli hooks per nome dello strumento e argomenti insieme, in modo che il processo dell'hook si generi solo quando la chiamata dello strumento corrisponde, o quando un comando Bash è troppo complesso per essere analizzato. Questo va oltre il `matcher`, che filtra a livello di gruppo per nome dello strumento solo.754Il campo `if` utilizza la [permission rule syntax](/it/permissions) per filtrare gli hooks per nome dello strumento e argomenti insieme, in modo che il processo dell'hook si generi solo quando la chiamata dello strumento corrisponde. Questo va oltre il `matcher`, che filtra a livello di gruppo per nome dello strumento solo.

755 755 

756Ad esempio, per eseguire un hook solo quando Claude utilizza comandi `git` piuttosto che tutti i comandi Bash:756Ad esempio, per eseguire un hook solo quando Claude utilizza comandi `git` piuttosto che tutti i comandi Bash:

757 757 


774}774}

775```775```

776 776 

777Il processo dell'hook si genera solo quando un sottocomando del comando Bash corrisponde a `git *`, o quando il comando è troppo complesso per essere analizzato in sottocomandi. Per comandi composti come `npm test && git push`, Claude Code valuta ogni sottocomando e attiva l'hook perché `git push` corrisponde. Il campo `if` accetta gli stessi modelli delle regole di autorizzazione: `"Bash(git *)"`, `"Edit(*.ts)"`, e così via. Per corrispondere a più nomi di strumenti, utilizzate handler separati ognuno con il suo valore `if`, o corrispondere a livello di `matcher` dove l'alternazione con pipe è supportata.777Se il vostro hook comando si esegue dipende dalla forma del vostro modello `if` e dal comando Bash che Claude sta invocando:

778 

779| Modello `if` | Comando Bash | L'hook si esegue? | Perché |

780| :----------------- | :--------------------- | :---------------- | :------------------------------------------------------------------------------------------------------- |

781| `Bash(git *)` | `git push` | sì | il nome del comando corrisponde |

782| `Bash(git *)` | `npm test && git push` | sì | ogni sottocomando viene controllato; `git push` corrisponde |

783| `Bash(git *)` | `echo $(git log)` | sì | i comandi dentro `$()` e backtick vengono controllati; `git log` corrisponde |

784| `Bash(git *)` | `echo $(date)` | no | nessun sottocomando corrisponde a `git *` |

785| `Bash(git push *)` | `echo $(date)` | sì | i modelli che specificano più del nome del comando eseguono l'hook comunque su `$()`, backtick, o `$VAR` |

786 

787Il filtro fallisce anche in modo aperto, eseguendo il vostro hook indipendentemente dal modello, quando il comando Bash non può essere analizzato. Poiché il filtro è best-effort, utilizzate il [sistema di autorizzazione](/it/permissions) piuttosto che un hook per applicare un hard allow o deny.

788 

789Il campo `if` accetta gli stessi modelli delle regole di autorizzazione: `"Bash(git *)"`, `"Edit(*.ts)"`, e così via. Per corrispondere a più nomi di strumenti, utilizzate handler separati ognuno con il suo valore `if`, o corrispondere a livello di `matcher` dove l'alternazione con pipe è supportata.

778 790 

779`if` funziona solo su eventi di strumenti: `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` e `PermissionDenied`. Aggiungerlo a qualsiasi altro evento impedisce all'hook di eseguirsi.791`if` funziona solo su eventi di strumenti: `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` e `PermissionDenied`. Aggiungerlo a qualsiasi altro evento impedisce all'hook di eseguirsi.

780 792 


785Dove aggiungete un hook determina il suo ambito:797Dove aggiungete un hook determina il suo ambito:

786 798 

787| Posizione | Ambito | Condivisibile |799| Posizione | Ambito | Condivisibile |

788| :--------------------------------------------------------- | :---------------------------------- | :----------------------------------- |800| :--------------------------------------------------------- | :---------------------------------- | :---------------------------------------- |

789| `~/.claude/settings.json` | Tutti i vostri progetti | No, locale alla vostra macchina |801| `~/.claude/settings.json` | Tutti i vostri progetti | No, locale alla vostra macchina |

790| `.claude/settings.json` | Singolo progetto | Sì, può essere committato nel repo |802| `.claude/settings.json` | Singolo progetto | Sì, può essere committato nel repo |

791| `.claude/settings.local.json` | Singolo progetto | No, gitignored |803| `.claude/settings.local.json` | Singolo progetto | No, gitignored quando Claude Code lo crea |

792| Impostazioni di policy gestite | Organizzazione intera | Sì, controllato dall'amministratore |804| Impostazioni di policy gestite | Organizzazione intera | Sì, controllato dall'amministratore |

793| [Plugin](/it/plugins) `hooks/hooks.json` | Quando il plugin è abilitato | Sì, raggruppato con il plugin |805| [Plugin](/it/plugins) `hooks/hooks.json` | Quando il plugin è abilitato | Sì, raggruppato con il plugin |

794| [Skill](/it/skills) o [agente](/it/sub-agents) frontmatter | Mentre la skill o l'agente è attivo | Sì, definito nel file del componente |806| [Skill](/it/skills) o [agente](/it/sub-agents) frontmatter | Mentre la skill o l'agente è attivo | Sì, definito nel file del componente |

795 807 

796Eseguite [`/hooks`](/it/hooks#the-hooks-menu) in Claude Code per sfogliare tutti gli hooks configurati raggruppati per evento. Per disabilitare gli hooks, impostate `"disableAllHooks": true` nel vostro file di impostazioni. Gli hooks configurati nelle impostazioni gestite si eseguono comunque a meno che `disableAllHooks` non sia impostato anche lì.808Eseguite [`/hooks`](/it/hooks#the-%2Fhooks-menu) in Claude Code per sfogliare tutti gli hooks configurati raggruppati per evento. Per disabilitare gli hooks, impostate `"disableAllHooks": true` nel vostro file di impostazioni. Gli hooks configurati nelle impostazioni gestite si eseguono comunque a meno che `disableAllHooks` non sia impostato anche lì.

797 809 

798Se modificate i file di impostazioni direttamente mentre Claude Code è in esecuzione, il file watcher normalmente raccoglie i cambiamenti degli hook automaticamente.810Se modificate i file di impostazioni direttamente mentre Claude Code è in esecuzione, il file watcher normalmente raccoglie i cambiamenti degli hook automaticamente.

799 811 

Details

16 16 

17Quando dai a Claude un compito, lavora attraverso tre fasi: **raccogliere contesto**, **intraprendere azioni** e **verificare i risultati**. Queste fasi si mescolano insieme. Claude utilizza strumenti durante tutto il processo, sia cercando file per comprendere il tuo codice, modificando per apportare cambiamenti, o eseguendo test per verificare il suo lavoro.17Quando dai a Claude un compito, lavora attraverso tre fasi: **raccogliere contesto**, **intraprendere azioni** e **verificare i risultati**. Queste fasi si mescolano insieme. Claude utilizza strumenti durante tutto il processo, sia cercando file per comprendere il tuo codice, modificando per apportare cambiamenti, o eseguendo test per verificare il suo lavoro.

18 18 

19<img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/agentic-loop.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=4a30fb7ce2815012a9f27c955e2c6bb0" alt="Il ciclo agentico: il tuo prompt porta Claude a raccogliere contesto, intraprendere azioni, verificare i risultati e ripetere fino al completamento dell'attività. Puoi interrompere in qualsiasi momento." width="720" height="280" data-path="images/agentic-loop.svg" />19<img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/agentic-loop.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=4a30fb7ce2815012a9f27c955e2c6bb0" alt="Diagramma del ciclo agentico: il tuo prompt porta Claude a raccogliere contesto, intraprendere azioni, verificare i risultati e ripetere fino al completamento dell'attività. Puoi interrompere in qualsiasi momento." width="720" height="280" data-path="images/agentic-loop.svg" />

20 20 

21Il ciclo si adatta a quello che chiedi. Una domanda sulla tua base di codice potrebbe richiedere solo la raccolta di contesto. Una correzione di bug cicla attraverso tutte e tre le fasi ripetutamente. Un refactoring potrebbe comportare una verifica estesa. Claude decide cosa richiede ogni passaggio in base a quello che ha imparato dal passaggio precedente, concatenando dozzine di azioni insieme e correggendo il corso lungo il percorso.21Il ciclo si adatta a quello che chiedi. Una domanda sulla tua base di codice potrebbe richiedere solo la raccolta di contesto. Una correzione di bug cicla attraverso tutte e tre le fasi ripetutamente. Un refactoring potrebbe comportare una verifica estesa. Claude decide cosa richiede ogni passaggio in base a quello che ha imparato dal passaggio precedente, concatenando dozzine di azioni insieme e correggendo il corso lungo il percorso.

22 22 


188 188 

189* **Predefinito**: Claude chiede prima delle modifiche ai file e dei comandi shell189* **Predefinito**: Claude chiede prima delle modifiche ai file e dei comandi shell

190* **Auto-accept edits**: Claude modifica i file ed esegue comandi comuni del file system come `mkdir` e `mv` senza chiedere, chiede ancora per altri comandi190* **Auto-accept edits**: Claude modifica i file ed esegue comandi comuni del file system come `mkdir` e `mv` senza chiedere, chiede ancora per altri comandi

191* **Plan Mode**: Claude utilizza solo strumenti di sola lettura, creando un piano che puoi approvare prima dell'esecuzione191* **Plan Mode**: Claude esplora e propone un piano senza modificare i tuoi file sorgente; i prompt di permesso si applicano ancora come nella modalità predefinita

192* **Auto mode**: Claude valuta tutte le azioni con controlli di sicurezza in background. Attualmente un'anteprima di ricerca192* **Auto mode**: Claude valuta tutte le azioni con controlli di sicurezza in background. Attualmente un'anteprima di ricerca

193 193 

194Puoi anche consentire comandi specifici in `.claude/settings.json` in modo che Claude non chieda ogni volta. Questo è utile per comandi affidabili come `npm test` o `git status`. Le impostazioni possono essere scoped da politiche a livello di organizzazione fino alle preferenze personali. Consulta [Permessi](/it/permissions) per i dettagli.194Puoi anche consentire comandi specifici in `.claude/settings.json` in modo che Claude non chieda ogni volta. Questo è utile per comandi affidabili come `npm test` o `git status`. Le impostazioni possono essere scoped da politiche a livello di organizzazione fino alle preferenze personali. Consulta [Permessi](/it/permissions) per i dettagli.


213* `/agents` ti aiuta a configurare subagents personalizzati213* `/agents` ti aiuta a configurare subagents personalizzati

214* `/doctor` diagnostica i problemi comuni con la tua installazione214* `/doctor` diagnostica i problemi comuni con la tua installazione

215 215 

216<h3 id="it-s-a-conversation">216<h3 id="its-a-conversation">

217 È una conversazione217 È una conversazione

218</h3>218</h3>

219 219 


282 282 

283Rivedi il piano, affinalo attraverso la conversazione, quindi lascia che Claude implementi. Questo approccio a due fasi produce risultati migliori rispetto al passare direttamente al codice.283Rivedi il piano, affinalo attraverso la conversazione, quindi lascia che Claude implementi. Questo approccio a due fasi produce risultati migliori rispetto al passare direttamente al codice.

284 284 

285<h3 id="delegate-don-t-dictate">285<h3 id="delegate-dont-dictate">

286 Delega, non dettare286 Delega, non dettare

287</h3>287</h3>

288 288 


295 295 

296Non hai bisogno di specificare quali file leggere o quali comandi eseguire. Claude lo capisce.296Non hai bisogno di specificare quali file leggere o quali comandi eseguire. Claude lo capisce.

297 297 

298<h2 id="what-s-next">298<h2 id="whats-next">

299 Cosa c'è dopo299 Cosa c'è dopo

300</h2>300</h2>

301 301 

Details

39| `Ctrl+B` | Attività in esecuzione in background | Esegue i comandi bash e gli agenti in background. Gli utenti Tmux premono due volte |39| `Ctrl+B` | Attività in esecuzione in background | Esegue i comandi bash e gli agenti in background. Gli utenti Tmux premono due volte |

40| `Ctrl+T` | Attiva/disattiva l'elenco delle attività | Mostra o nascondi l'[elenco delle attività](#task-list) nell'area di stato del terminale |40| `Ctrl+T` | Attiva/disattiva l'elenco delle attività | Mostra o nascondi l'[elenco delle attività](#task-list) nell'area di stato del terminale |

41| `Frecce sinistra/destra` | Cicla attraverso le schede della finestra di dialogo | Naviga tra le schede nelle finestre di dialogo dei permessi e nei menu |41| `Frecce sinistra/destra` | Cicla attraverso le schede della finestra di dialogo | Naviga tra le schede nelle finestre di dialogo dei permessi e nei menu |

42| `Frecce su/giù` o `Ctrl+P`/`Ctrl+N` | Sposta il cursore o naviga nella cronologia dei comandi | Nell'input multilinea, prima sposta il cursore all'interno del prompt. Una volta che il cursore è già sul bordo superiore o inferiore, premere di nuovo naviga nella cronologia dei comandi |42| `Frecce su/giù` o `Ctrl+P`/`Ctrl+N` | Sposta il cursore o naviga nella cronologia dei comandi | Quando l'input si estende su più di una riga visiva, sia avvolta che multilinea, prima sposta il cursore all'interno del prompt. Una volta che il cursore è sulla prima o ultima riga visiva, premere di nuovo naviga nella cronologia dei comandi. A partire dalla v2.1.169, l'input a riga singola avvolto si comporta come l'input multilinea |

43| `Esc` | Interrompi Claude | Arresta la risposta corrente o la chiamata dello strumento a metà turno in modo da poter reindirizzare. Claude mantiene il lavoro svolto finora |43| `Esc` | Interrompi Claude | Arresta la risposta corrente o la chiamata dello strumento a metà turno in modo da poter reindirizzare. Claude mantiene il lavoro svolto finora |

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

45| `Shift+Tab` o `Alt+M` (alcune configurazioni) | Cicla le modalità di permesso | Cicla attraverso `default`, `acceptEdits`, `plan` e qualsiasi modalità abilitata, come `auto` o `bypassPermissions`. Vedere [modalità di permesso](/it/permission-modes). |45| `Shift+Tab` o `Alt+M` (alcune configurazioni) | Cicla le modalità di permesso | Cicla attraverso `default`, `acceptEdits`, `plan` e qualsiasi modalità abilitata, come `auto` o `bypassPermissions`. Vedere [modalità di permesso](/it/permission-modes). |

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

47| `Option+T` (macOS) o `Alt+T` (Windows/Linux) | Attiva/disattiva il pensiero esteso | Abilita o disabilita la modalità di pensiero esteso. A partire dalla v2.1.132 questa scorciatoia funziona su macOS senza configurare Option come Meta |47| `Option+T` (macOS) o `Alt+T` (Windows/Linux) | Attiva/disattiva il pensiero esteso | Abilita o disabilita la modalità di pensiero esteso. Non ha effetto su Fable 5, che utilizza sempre il pensiero esteso. A partire dalla v2.1.132 questa scorciatoia funziona su macOS senza configurare Option come Meta |

48| `Option+O` (macOS) o `Alt+O` (Windows/Linux) | Attiva/disattiva la modalità veloce | Abilita o disabilita la [modalità veloce](/it/fast-mode) |48| `Option+O` (macOS) o `Alt+O` (Windows/Linux) | Attiva/disattiva la modalità veloce | Abilita o disabilita la [modalità veloce](/it/fast-mode) |

49 49 

50<h3 id="text-editing">50<h3 id="text-editing">


305* Processi a lunga esecuzione (docker, terraform)305* Processi a lunga esecuzione (docker, terraform)

306 306 

307<h3 id="shell-mode-with-prefix">307<h3 id="shell-mode-with-prefix">

308 Modalità Bash con prefisso `!`308 Modalità shell con prefisso `!`

309</h3>309</h3>

310 310 

311Eseguite i comandi bash direttamente senza passare per Claude aggiungendo il prefisso `!` al vostro input:311Eseguite i comandi shell direttamente senza passare per Claude aggiungendo il prefisso `!` al vostro input:

312 312 

313```bash theme={null}313```bash theme={null}

314! npm test314! npm test


316! ls -la316! ls -la

317```317```

318 318 

319Modalità Bash:319Modalità shell:

320 320 

321* Aggiunge il comando e il suo output al contesto della conversazione321* Aggiunge il comando e il suo output al contesto della conversazione

322* Mostra l'avanzamento e l'output in tempo reale322* Mostra l'avanzamento e l'output in tempo reale


324* Non richiede a Claude di interpretare o approvare il comando324* Non richiede a Claude di interpretare o approvare il comando

325* Supporta l'autocompletamento basato sulla cronologia: digitate un comando parziale e premete **Tab** per completare dai comandi `!` precedenti nel progetto corrente325* Supporta l'autocompletamento basato sulla cronologia: digitate un comando parziale e premete **Tab** per completare dai comandi `!` precedenti nel progetto corrente

326* Esci con `Escape`, `Backspace` o `Ctrl+U` su un prompt vuoto326* Esci con `Escape`, `Backspace` o `Ctrl+U` su un prompt vuoto

327* Incollare il testo che inizia con `!` in un prompt vuoto entra automaticamente in modalità bash, corrispondendo al comportamento digitato `!`327* Incollare il testo che inizia con `!` in un prompt vuoto entra automaticamente in modalità shell, corrispondendo al comportamento digitato `!`

328 328 

329Questo è utile per le operazioni shell rapide mantenendo il contesto della conversazione.329Questo è utile per le operazioni shell rapide mantenendo il contesto della conversazione.

330 330 


341 341 

342Il suggerimento viene eseguito come una richiesta in background che riutilizza la cache del prompt della conversazione padre, quindi il costo aggiuntivo è minimo. Claude Code salta la generazione di suggerimenti quando la cache è fredda per evitare costi inutili.342Il suggerimento viene eseguito come una richiesta in background che riutilizza la cache del prompt della conversazione padre, quindi il costo aggiuntivo è minimo. Claude Code salta la generazione di suggerimenti quando la cache è fredda per evitare costi inutili.

343 343 

344I suggerimenti vengono automaticamente saltati dopo il primo turno di una conversazione e in Plan Mode. In modalità print sono disabilitati per impostazione predefinita. Passate [`--prompt-suggestions`](/it/cli-reference#cli-flags) con `--output-format stream-json --verbose` per emettere un messaggio `prompt_suggestion` dopo ogni turno.344I suggerimenti vengono automaticamente saltati dopo il primo turno di una conversazione e in Plan Mode. In modalità print sono disabilitati per impostazione predefinita. Passate [`--prompt-suggestions`](/it/cli-reference#cli-flags) con `--output-format stream-json --verbose` per emettere un messaggio `prompt_suggestion` dopo ogni turno invece.

345 345 

346Per disabilitare completamente i suggerimenti di prompt, impostare la variabile di ambiente o attivare/disattivare l'impostazione in `/config`:346Per disabilitare completamente i suggerimenti di prompt, impostare la variabile di ambiente o attivare/disattivare l'impostazione in `/config`:

347 347 


372| :------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |372| :------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

373| `Space`, `Enter`, `Escape` | Dismissere la risposta e tornare al prompt |373| `Space`, `Enter`, `Escape` | Dismissere la risposta e tornare al prompt |

374| `Up` / `Down` | Scorrere la risposta |374| `Up` / `Down` | Scorrere la risposta |

375| `c` | Copiare la risposta negli appunti come Markdown grezzo. Utilizzate questo invece della selezione del mouse, che cattura il rendering del terminale con ritorno a capo forzato anziché il testo sorgente |

375| `f` | Trasformare in una nuova sessione. La nuova sessione eredita la conversazione padre più questa domanda e risposta come turni di trascrizione reali, quindi potete continuare con accesso completo agli strumenti. La sessione originale viene preservata sotto [`/resume`](/it/commands). Disponibile solo nelle sessioni locali |376| `f` | Trasformare in una nuova sessione. La nuova sessione eredita la conversazione padre più questa domanda e risposta come turni di trascrizione reali, quindi potete continuare con accesso completo agli strumenti. La sessione originale viene preservata sotto [`/resume`](/it/commands). Disponibile solo nelle sessioni locali |

376| `x` | Cancellare l'elenco degli scambi `/btw` precedenti mostrati sopra la risposta corrente |377| `x` | Cancellare l'elenco degli scambi `/btw` precedenti mostrati sopra la risposta corrente |

377 378 

jetbrains.md +13 −5

Details

35 Installazione35 Installazione

36</h2>36</h2>

37 37 

38<h3 id="marketplace-installation">38Il plugin esegue il comando `claude` nel terminale integrato del tuo IDE e si connette ad esso. Non include una propria copia della CLI, quindi installa entrambi i componenti:

39 Installazione da Marketplace39 

40</h3>40<Steps>

41 <Step title="Installa Claude Code CLI">

42 Segui la [guida di avvio rapido](/it/quickstart) per installare la CLI se non l'hai già fatto. Il plugin mostra una notifica "Cannot launch Claude Code" quando `claude` non è nel tuo PATH.

43 </Step>

44 

45 <Step title="Installa il plugin JetBrains">

46 Installa il [plugin Claude Code](https://plugins.jetbrains.com/plugin/27310-claude-code-beta-) dal Marketplace di JetBrains e riavvia il tuo IDE.

47 </Step>

48</Steps>

41 49 

42Trova e installa il [plugin Claude Code](https://plugins.jetbrains.com/plugin/27310-claude-code-beta-) dal marketplace di JetBrains e riavvia il tuo IDE.50Se `claude` è installato in un percorso che il tuo IDE non riesce a trovare, imposta il percorso completo nell'impostazione [Claude command](#general-settings) del plugin.

43 51 

44Se non hai ancora installato Claude Code, consulta la [guida di avvio rapido](/it/quickstart) per le istruzioni di installazione.52Claude Code funziona con qualsiasi abbonamento Claude a pagamento (Pro, Max, Team o Enterprise) o un account Claude Console, e non è richiesta alcuna chiave API. Ti verrà chiesto di [accedere](/it/authentication#log-in-to-claude-code) la prima volta che esegui `claude`.

45 53 

46<Note>54<Note>

47 Dopo aver installato il plugin, potrebbe essere necessario riavviare completamente il tuo IDE affinché abbia effetto.55 Dopo aver installato il plugin, potrebbe essere necessario riavviare completamente il tuo IDE affinché abbia effetto.

keybindings.md +2 −2

Details

203Azioni disponibili nel contesto `Task`:203Azioni disponibili nel contesto `Task`:

204 204 

205| Azione | Predefinito | Descrizione |205| Azione | Predefinito | Descrizione |

206| :---------------- | :---------- | :------------------------------ |206| :---------------- | :-------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- |

207| `task:background` | Ctrl+B | Attività in background corrente |207| `task:background` | Ctrl+B, Ctrl+X Ctrl+B | Attività in background corrente. {/* min-version: 2.1.169 */}L'accordo Ctrl+X Ctrl+B richiede v2.1.169 o successiva e evita il conflitto del prefisso tmux |

208 208 

209<h3 id="theme-actions">209<h3 id="theme-actions">

210 Azioni del tema210 Azioni del tema

Details

148 148 

149Usalo per directory in cui non lavori mai, come pacchetti di altri team, codice legacy o sottoalberi venduti. L'elenco di esclusione è statico, non un interruttore per compito. Per focalizzarsi su un pacchetto oggi e un altro domani, [avvia Claude da quella directory del pacchetto](#choose-where-to-start-claude) invece di modificare le esclusioni.149Usalo per directory in cui non lavori mai, come pacchetti di altri team, codice legacy o sottoalberi venduti. L'elenco di esclusione è statico, non un interruttore per compito. Per focalizzarsi su un pacchetto oggi e un altro domani, [avvia Claude da quella directory del pacchetto](#choose-where-to-start-claude) invece di modificare le esclusioni.

150 150 

151Se vuoi solo queste esclusioni per te, metti l'impostazione in `.claude/settings.local.json`, che è gitignored e non impegnato. I modelli usano la sintassi glob abbinata ai percorsi di file assoluti, quindi inizia i modelli in stile relativo con `**/` per abbinare ovunque nell'albero. L'esempio sottostante esclude pacchetti di proprietà di altri team:151Se vuoi solo queste esclusioni per te, metti l'impostazione in `.claude/settings.local.json`. Claude Code gitignora quel file quando lo crea; poiché lo stai creando a mano qui, aggiungilo al tuo gitignore. I modelli usano la sintassi glob abbinata ai percorsi di file assoluti, quindi inizia i modelli in stile relativo con `**/` per abbinare ovunque nell'albero. L'esempio sottostante esclude pacchetti di proprietà di altri team:

152 152 

153```json .claude/settings.local.json theme={null}153```json .claude/settings.local.json theme={null}

154{154{


506 506 

507Una volta che questa configurazione è in atto, puoi affinarla:507Una volta che questa configurazione è in atto, puoi affinarla:

508 508 

509* Usa [hook](/it/hooks-guide) per eseguire linter o type-checker per directory dopo che Claude modifica i file509* Usa [hooks](/it/hooks-guide) per eseguire linter o type-checker per directory dopo che Claude modifica i file

510* Rivedi [Gestisci i costi in modo efficace](/it/costs) per capire come la dimensione del codebase influisce sull'utilizzo dei token e come impostare i limiti di spesa prima di un rollout più ampio510* Rivedi [Gestisci i costi in modo efficace](/it/costs) per capire come la dimensione del codebase influisce sull'utilizzo dei token e come impostare i limiti di spesa prima di un rollout più ampio

511* Leggi [Come Claude Code funziona nei codebase di grandi dimensioni](https://claude.com/blog/how-claude-code-works-in-large-codebases-best-practices-and-where-to-start) sul blog di Claude per i modelli di rollout organizzativo e i modelli di proprietà che si trovano sopra la configurazione per repository su questa pagina511* Leggi [Come Claude Code funziona nei codebase di grandi dimensioni](https://claude.com/blog/how-claude-code-works-in-large-codebases-best-practices-and-where-to-start) sul blog di Claude per i modelli di rollout organizzativo e i modelli di proprietà che si trovano sopra la configurazione per repository su questa pagina

llm-gateway.md +2 −0

Details

14* **Registrazione di audit** - Traccia tutte le interazioni del modello per la conformità14* **Registrazione di audit** - Traccia tutte le interazioni del modello per la conformità

15* **Instradamento dei modelli** - Passa da un provider all'altro senza modifiche al codice15* **Instradamento dei modelli** - Passa da un provider all'altro senza modifiche al codice

16 16 

17Questa pagina copre i requisiti del gateway e la configurazione per Claude Code CLI. Le distribuzioni Enterprise Desktop possono configurare i provider gateway tramite [impostazioni gestite](https://support.claude.com/it/articles/12622667-enterprise-configuration). L'app Claude Desktop può anche funzionare su un gateway self-hosted tramite l'[anteprima di ricerca Cowork on 3P](https://claude.com/docs/cowork/3p/gateway), che utilizza le proprie chiavi di configurazione.

18 

17<h2 id="gateway-requirements">19<h2 id="gateway-requirements">

18 Requisiti del gateway20 Requisiti del gateway

19</h2>21</h2>

mcp.md +167 −81

Details

12 12 

13Se stai connettendo il tuo primo server, inizia con la [guida rapida MCP](/it/mcp-quickstart) per una procedura dettagliata. Questa pagina è il riferimento completo.13Se stai connettendo il tuo primo server, inizia con la [guida rapida MCP](/it/mcp-quickstart) per una procedura dettagliata. Questa pagina è il riferimento completo.

14 14 

15## Cosa puoi fare con MCP15<h2 id="what-you-can-do-with-mcp">

16 Cosa puoi fare con MCP

17</h2>

16 18 

17Con i server MCP connessi, puoi chiedere a Claude Code di:19Con i server MCP connessi, puoi chiedere a Claude Code di:

18 20 


23* **Automatizzare flussi di lavoro**: "Crea bozze Gmail invitando questi 10 utenti a una sessione di feedback sulla nuova funzionalità."25* **Automatizzare flussi di lavoro**: "Crea bozze Gmail invitando questi 10 utenti a una sessione di feedback sulla nuova funzionalità."

24* **Reagire a eventi esterni**: Un server MCP può anche agire come un [canale](/it/channels) che invia messaggi nella tua sessione, in modo che Claude reagisca ai messaggi Telegram, chat Discord o eventi webhook mentre sei assente.26* **Reagire a eventi esterni**: Un server MCP può anche agire come un [canale](/it/channels) che invia messaggi nella tua sessione, in modo che Claude reagisca ai messaggi Telegram, chat Discord o eventi webhook mentre sei assente.

25 27 

26## Trovare e costruire server MCP28<h2 id="find-and-build-mcp-servers">

29 Trovare e costruire server MCP

30</h2>

27 31 

28Sfoglia i connettori verificati nella [Anthropic Directory](https://claude.ai/directory). I connettori della Directory utilizzano la stessa infrastruttura MCP di Claude Code, quindi puoi aggiungere qualsiasi server remoto elencato lì con `claude mcp add`.32Sfoglia i connettori verificati nella [Anthropic Directory](https://claude.ai/directory). I connettori della Directory utilizzano la stessa infrastruttura MCP di Claude Code, quindi puoi aggiungere qualsiasi server remoto elencato lì con `claude mcp add`.

29 33 


55 </Step>59 </Step>

56</Steps>60</Steps>

57 61 

58## Installazione dei server MCP62<h2 id="installing-mcp-servers">

63 Installazione dei server MCP

64</h2>

59 65 

60I server MCP possono essere configurati in diversi modi a seconda delle vostre esigenze:66I server MCP possono essere configurati in diversi modi a seconda delle vostre esigenze:

61 67 

62### Opzione 1: Aggiungi un server HTTP remoto68<h3 id="option-1-add-a-remote-http-server">

69 Opzione 1: Aggiungi un server HTTP remoto

70</h3>

63 71 

64I server HTTP sono l'opzione consigliata per connettersi ai server MCP remoti. Questo è il trasporto più ampiamente supportato per i servizi basati su cloud.72I server HTTP sono l'opzione consigliata per connettersi ai server MCP remoti. Questo è il trasporto più ampiamente supportato per i servizi basati su cloud.

65 73 


77 85 

78Quando si configurano i server MCP tramite JSON in `.mcp.json`, `~/.claude.json`, o `claude mcp add-json`, il campo `type` accetta `streamable-http` come alias per `http`. La specifica MCP utilizza il nome `streamable-http` per questo trasporto, quindi le configurazioni copiate dalla documentazione del server funzionano senza modifiche.86Quando si configurano i server MCP tramite JSON in `.mcp.json`, `~/.claude.json`, o `claude mcp add-json`, il campo `type` accetta `streamable-http` come alias per `http`. La specifica MCP utilizza il nome `streamable-http` per questo trasporto, quindi le configurazioni copiate dalla documentazione del server funzionano senza modifiche.

79 87 

80### Opzione 2: Aggiungi un server SSE remoto88<h3 id="option-2-add-a-remote-sse-server">

89 Opzione 2: Aggiungi un server SSE remoto

90</h3>

81 91 

82<Warning>92<Warning>

83 Il trasporto SSE (Server-Sent Events) è deprecato. Utilizza server HTTP invece, dove disponibili.93 Il trasporto SSE (Server-Sent Events) è deprecato. Utilizza server HTTP invece, dove disponibili.


95 --header "X-API-Key: your-key-here"105 --header "X-API-Key: your-key-here"

96```106```

97 107 

98### Opzione 3: Aggiungi un server stdio locale108<h3 id="option-3-add-a-local-stdio-server">

109 Opzione 3: Aggiungi un server stdio locale

110</h3>

99 111 

100I server stdio vengono eseguiti come processi locali sulla vostra macchina. Sono ideali per strumenti che necessitano di accesso diretto al sistema o script personalizzati.112I server stdio vengono eseguiti come processi locali sulla vostra macchina. Sono ideali per strumenti che necessitano di accesso diretto al sistema o script personalizzati.

101 113 


108claude mcp add [options] <name> -- <command> [args...]120claude mcp add [options] <name> -- <command> [args...]

109 121 

110# Esempio reale: Aggiungi server Airtable122# Esempio reale: Aggiungi server Airtable

111claude mcp add --transport stdio --env AIRTABLE_API_KEY=YOUR_KEY airtable \123claude mcp add --env AIRTABLE_API_KEY=YOUR_KEY --transport stdio airtable \

112 -- npx -y airtable-mcp-server124 -- npx -y airtable-mcp-server

113```125```

114 126 

115<Note>127<Note>

116 **Importante: Ordine delle opzioni**128 **Importante: Separare gli argomenti del server con `--`**

117 129 

118 Tutte le opzioni (`--transport`, `--env`, `--scope`, `--header`) devono venire **prima** del nome del server. Il `--` (doppio trattino) separa quindi il nome del server dal comando e dagli argomenti che vengono passati al server MCP.130 Per i server stdio, il `--` (doppio trattino) separa le opzioni di Claude, come `--transport`, `--env`, e `--scope`, dal comando e dagli argomenti che eseguono il server. Tutto ciò che viene dopo `--` viene passato al server senza modifiche.

119 131 

120 Per esempio:132 Per esempio:

121 133 

122 * `claude mcp add --transport stdio myserver -- npx server` → esegue `npx server`134 * `claude mcp add --transport stdio myserver -- npx server` → esegue `npx server`

123 * `claude mcp add --transport stdio --env KEY=value myserver -- python server.py --port 8080` → esegue `python server.py --port 8080` con `KEY=value` nell'ambiente135 * `claude mcp add --env KEY=value --transport stdio myserver -- python server.py --port 8080` → esegue `python server.py --port 8080` con `KEY=value` nell'ambiente

124 136 

125 Questo previene conflitti tra i flag di Claude e i flag del server.137 Senza `--`, Claude Code cercherebbe di analizzare i flag del server, come `--port` sopra, come proprie opzioni.

138 

139 `--env` accetta più coppie `KEY=value`. Se il nome del server viene direttamente dopo `--env`, la CLI legge il nome come un'altra coppia e lo rifiuta, quindi posizionate almeno un'altra opzione tra `--env` e il nome del server, come negli esempi sopra.

126</Note>140</Note>

127 141 

128### Opzione 4: Aggiungi un server WebSocket remoto142<h3 id="option-4-add-a-remote-websocket-server">

143 Opzione 4: Aggiungi un server WebSocket remoto

144</h3>

129 145 

130I server WebSocket mantengono una connessione bidirezionale persistente, che si adatta ai server MCP remoti che inviano eventi a Claude senza sollecitazione. Utilizza HTTP invece quando il vostro server risponde solo alle richieste, poiché HTTP supporta OAuth e il flag `claude mcp add --transport`, mentre WebSocket non supporta nessuno dei due.146I server WebSocket mantengono una connessione bidirezionale persistente, che si adatta ai server MCP remoti che inviano eventi a Claude senza sollecitazione. Utilizza HTTP invece quando il vostro server risponde solo alle richieste, poiché HTTP supporta OAuth e il flag `claude mcp add --transport`, mentre WebSocket non supporta nessuno dei due.

131 147 


138 154 

139La voce `type: "ws"` accetta gli stessi campi `url`, `headers`, `headersHelper`, `timeout`, e `alwaysLoad` di `http`. L'autenticazione è solo tramite header, quindi passa un token statico in `headers` o generane uno al momento della connessione con [`headersHelper`](#use-dynamic-headers-for-custom-authentication). Il flag `claude mcp add --transport` non accetta `ws`.155La voce `type: "ws"` accetta gli stessi campi `url`, `headers`, `headersHelper`, `timeout`, e `alwaysLoad` di `http`. L'autenticazione è solo tramite header, quindi passa un token statico in `headers` o generane uno al momento della connessione con [`headersHelper`](#use-dynamic-headers-for-custom-authentication). Il flag `claude mcp add --transport` non accetta `ws`.

140 156 

141### Gestione dei vostri server157<h3 id="managing-your-servers">

158 Gestione dei vostri server

159</h3>

142 160 

143Una volta configurati, potete gestire i vostri server MCP con questi comandi:161Una volta configurati, potete gestire i vostri server MCP con questi comandi:

144 162 


164 182 

165Il nome del server `workspace` è riservato per uso interno. Se la vostra configurazione definisce un server con quel nome, Claude Code lo salta al momento del caricamento e mostra un avviso chiedendovi di rinominarlo.183Il nome del server `workspace` è riservato per uso interno. Se la vostra configurazione definisce un server con quel nome, Claude Code lo salta al momento del caricamento e mostra un avviso chiedendovi di rinominarlo.

166 184 

167### Aggiornamenti dinamici degli strumenti185<h3 id="dynamic-tool-updates">

186 Aggiornamenti dinamici degli strumenti

187</h3>

168 188 

169Claude Code supporta le notifiche `list_changed` di MCP, consentendo ai server MCP di aggiornare dinamicamente i loro strumenti, prompt e risorse disponibili senza richiedere di disconnettersi e riconnettersi. Quando un server MCP invia una notifica `list_changed`, Claude Code aggiorna automaticamente le capacità disponibili da quel server.189Claude Code supporta le notifiche `list_changed` di MCP, consentendo ai server MCP di aggiornare dinamicamente i loro strumenti, prompt e risorse disponibili senza richiedere di disconnettersi e riconnettersi. Quando un server MCP invia una notifica `list_changed`, Claude Code aggiorna automaticamente le capacità disponibili da quel server.

170 190 

171### Riconnessione automatica191<h3 id="automatic-reconnection">

192 Riconnessione automatica

193</h3>

172 194 

173Se un server HTTP o SSE si disconnette durante una sessione, Claude Code si riconnette automaticamente con backoff esponenziale: fino a cinque tentativi, a partire da un ritardo di un secondo e raddoppiando ogni volta. Il server appare come in sospeso in `/mcp` mentre la riconnessione è in corso. Dopo cinque tentativi falliti il server è contrassegnato come non riuscito e potete riprovare manualmente da `/mcp`. I server stdio sono processi locali e non vengono riconnessi automaticamente.195Se un server HTTP o SSE si disconnette durante una sessione, Claude Code si riconnette automaticamente con backoff esponenziale: fino a cinque tentativi, a partire da un ritardo di un secondo e raddoppiando ogni volta. Il server appare come in sospeso in `/mcp` mentre la riconnessione è in corso. Dopo cinque tentativi falliti il server è contrassegnato come non riuscito e potete riprovare manualmente da `/mcp`. I server stdio sono processi locali e non vengono riconnessi automaticamente.

174 196 

175Lo stesso backoff si applica quando un server HTTP o SSE non riesce la sua connessione iniziale all'avvio. A partire dalla v2.1.121, Claude Code ritenta la connessione iniziale fino a tre volte su errori transitori come una risposta 5xx, una connessione rifiutata o un timeout, quindi contrassegna il server come non riuscito se ancora non riesce a connettersi. Gli errori di autenticazione e di non trovato non vengono ritentati perché richiedono una modifica della configurazione per essere risolti.197Lo stesso backoff si applica quando un server HTTP o SSE non riesce la sua connessione iniziale all'avvio. A partire dalla v2.1.121, Claude Code ritenta la connessione iniziale fino a tre volte su errori transitori come una risposta 5xx, una connessione rifiutata o un timeout, quindi contrassegna il server come non riuscito se ancora non riesce a connettersi. Gli errori di autenticazione e di non trovato non vengono ritentati perché richiedono una modifica della configurazione per essere risolti.

176 198 

177### Invia messaggi con canali199<h3 id="push-messages-with-channels">

200 Invia messaggi con canali

201</h3>

178 202 

179Un server MCP può anche inviare messaggi direttamente nella vostra sessione in modo che Claude possa reagire a eventi esterni come risultati CI, avvisi di monitoraggio o messaggi di chat. Per abilitare questa funzionalità, il vostro server dichiara la capacità `claude/channel` e voi la abilitate con il flag `--channels` all'avvio. Vedi [Canali](/it/channels) per utilizzare un canale ufficialmente supportato, oppure [Riferimento canali](/it/channels-reference) per costruire il vostro.203Un server MCP può anche inviare messaggi direttamente nella vostra sessione in modo che Claude possa reagire a eventi esterni come risultati CI, avvisi di monitoraggio o messaggi di chat. Per abilitare questa funzionalità, il vostro server dichiara la capacità `claude/channel` e voi la abilitate con il flag `--channels` all'avvio. Vedi [Canali](/it/channels) per utilizzare un canale ufficialmente supportato, oppure [Riferimento canali](/it/channels-reference) per costruire il vostro.

180 204 


192 * Utilizza `/mcp` per autenticarti con server remoti che richiedono l'autenticazione OAuth 2.0216 * Utilizza `/mcp` per autenticarti con server remoti che richiedono l'autenticazione OAuth 2.0

193</Tip>217</Tip>

194 218 

195Il timeout per server è un limite rigido di wall-clock per chiamata dello strumento, e le notifiche di progresso dal server non lo estendono. I valori inferiori a 1000 sono arrotondati a un secondo. Per i server HTTP e SSE, il budget del primo byte per richiesta fetch ha un minimo di 60 secondi indipendentemente da questo valore, quindi solo il watchdog della chiamata dello strumento onora valori più piccoli.219Il timeout per server è un limite rigido di wall-clock per chiamata dello strumento, e le notifiche di progresso dal server non lo estendono. I valori inferiori a 1000 sono ignorati e ricadono in `MCP_TOOL_TIMEOUT`, o nel suo valore predefinito di circa 28 ore quando quella variabile non è impostata. {/* min-version: 2.1.162 */}Prima della v2.1.162, i valori inferiori a 1000 erano arrotondati a un secondo. Per i server HTTP e SSE, il budget del primo byte per richiesta fetch ha un minimo di 60 secondi.

196 220 

197### Server MCP forniti da plugin221<h3 id="plugin-provided-mcp-servers">

222 Server MCP forniti da plugin

223</h3>

198 224 

199I [plugin](/it/plugins) possono raggruppare server MCP, fornendo automaticamente strumenti e integrazioni quando il plugin è abilitato. I server MCP dei plugin funzionano in modo identico ai server configurati dall'utente.225I [plugin](/it/plugins) possono raggruppare server MCP, fornendo automaticamente strumenti e integrazioni quando il plugin è abilitato. I server MCP dei plugin funzionano in modo identico ai server configurati dall'utente.

200 226 


253 279 

254I server dei plugin appaiono nell'elenco con indicatori che mostrano che provengono dai plugin.280I server dei plugin appaiono nell'elenco con indicatori che mostrano che provengono dai plugin.

255 281 

282**Nomi degli strumenti MCP del plugin**:

283 

284Gli strumenti da un server MCP raggruppato in un plugin includono sia il nome del plugin che la chiave del server nel loro nome richiamabile. La forma completa è `mcp__plugin_<plugin-name>_<server-name>__<tool-name>`, dove qualsiasi carattere al di fuori di `A-Z`, `a-z`, `0-9`, `_`, e `-` viene sostituito con `_`. Per il server `database-tools` raggruppato in un plugin denominato `my-plugin`, uno strumento `query` è richiamabile come:

285 

286```

287mcp__plugin_my-plugin_database-tools__query

288```

289 

290Utilizza questo nome completo quando fai riferimento allo strumento nelle [regole di autorizzazione](/it/permissions), nell'elenco `allowed-tools` di una skill, o nel [campo `tools` di un subagent](/it/sub-agents#available-tools).

291 

256**Vantaggi dei server MCP dei plugin**:292**Vantaggi dei server MCP dei plugin**:

257 293 

258* **Distribuzione raggruppata**: Strumenti e server confezionati insieme294* **Distribuzione raggruppata**: Strumenti e server confezionati insieme


261 297 

262Vedi il [riferimento dei componenti del plugin](/it/plugins-reference#mcp-servers) per i dettagli su come raggruppare i server MCP con i plugin.298Vedi il [riferimento dei componenti del plugin](/it/plugins-reference#mcp-servers) per i dettagli su come raggruppare i server MCP con i plugin.

263 299 

264## Ambiti di installazione MCP300<h2 id="mcp-installation-scopes">

301 Ambiti di installazione MCP

302</h2>

265 303 

266I server MCP possono essere configurati a tre ambiti diversi. L'ambito che scegli controlla in quali progetti il server viene caricato e se la configurazione è condivisa con il tuo team. Gli amministratori possono anche distribuire server a livello aziendale tramite [configurazione gestita](#managed-mcp-configuration).304I server MCP possono essere configurati a tre ambiti diversi. L'ambito che scegli controlla in quali progetti il server viene caricato e se la configurazione è condivisa con il tuo team. Gli amministratori possono anche distribuire server a livello aziendale tramite [configurazione gestita](#managed-mcp-configuration).

267 305 


271| [Progetto](#project-scope) | Solo il progetto corrente | Sì, tramite controllo della versione | `.mcp.json` nella radice del progetto |309| [Progetto](#project-scope) | Solo il progetto corrente | Sì, tramite controllo della versione | `.mcp.json` nella radice del progetto |

272| [Utente](#user-scope) | Tutti i tuoi progetti | No | `~/.claude.json` |310| [Utente](#user-scope) | Tutti i tuoi progetti | No | `~/.claude.json` |

273 311 

274### Ambito locale312<h3 id="local-scope">

313 Ambito locale

314</h3>

275 315 

276L'ambito locale è il predefinito. Un server con ambito locale viene caricato solo nel progetto in cui lo hai aggiunto e rimane privato per te. Claude Code lo archivia in `~/.claude.json` nel percorso di quel progetto, quindi lo stesso server non apparirà nei tuoi altri progetti. Utilizza l'ambito locale per server di sviluppo personali, configurazioni sperimentali o server con credenziali che non desideri nel controllo della versione.316L'ambito locale è il predefinito. Un server con ambito locale viene caricato solo nel progetto in cui lo hai aggiunto e rimane privato per te. Claude Code lo archivia in `~/.claude.json` nel percorso di quel progetto, quindi lo stesso server non apparirà nei tuoi altri progetti. Utilizza l'ambito locale per server di sviluppo personali, configurazioni sperimentali o server con credenziali che non desideri nel controllo della versione.

277 317 


304}344}

305```345```

306 346 

307### Ambito del progetto347<h3 id="project-scope">

348 Ambito del progetto

349</h3>

308 350 

309I server con ambito del progetto abilitano la collaborazione del team archiviando le configurazioni in un file `.mcp.json` nella directory radice del tuo progetto. Questo file è progettato per essere archiviato nel controllo della versione, assicurando che tutti i membri del team abbiano accesso agli stessi strumenti e servizi MCP. Quando aggiungi un server con ambito del progetto, Claude Code crea o aggiorna automaticamente questo file con la struttura di configurazione appropriata.351I server con ambito del progetto abilitano la collaborazione del team archiviando le configurazioni in un file `.mcp.json` nella directory radice del tuo progetto. Questo file è progettato per essere archiviato nel controllo della versione, assicurando che tutti i membri del team abbiano accesso agli stessi strumenti e servizi MCP. Quando aggiungi un server con ambito del progetto, Claude Code crea o aggiorna automaticamente questo file con la struttura di configurazione appropriata.

310 352 


329 371 

330Per motivi di sicurezza, Claude Code richiede l'approvazione prima di utilizzare server con ambito del progetto dai file `.mcp.json`. Se devi ripristinare queste scelte di approvazione, utilizza il comando `claude mcp reset-project-choices`.372Per motivi di sicurezza, Claude Code richiede l'approvazione prima di utilizzare server con ambito del progetto dai file `.mcp.json`. Se devi ripristinare queste scelte di approvazione, utilizza il comando `claude mcp reset-project-choices`.

331 373 

332### Ambito utente374<h3 id="user-scope">

375 Ambito utente

376</h3>

333 377 

334I server con ambito utente vengono archiviati in `~/.claude.json` e forniscono accessibilità tra progetti, rendendoli disponibili in tutti i progetti sulla tua macchina mentre rimangono privati al tuo account utente. Questo ambito funziona bene per server di utilità personali, strumenti di sviluppo o servizi che utilizzi frequentemente in diversi progetti.378I server con ambito utente vengono archiviati in `~/.claude.json` e forniscono accessibilità tra progetti, rendendoli disponibili in tutti i progetti sulla tua macchina mentre rimangono privati al tuo account utente. Questo ambito funziona bene per server di utilità personali, strumenti di sviluppo o servizi che utilizzi frequentemente in diversi progetti.

335 379 


338claude mcp add --transport http hubspot --scope user https://mcp.hubspot.com/anthropic382claude mcp add --transport http hubspot --scope user https://mcp.hubspot.com/anthropic

339```383```

340 384 

341### Gerarchia e precedenza dell'ambito385<h3 id="scope-hierarchy-and-precedence">

386 Gerarchia e precedenza dell'ambito

387</h3>

342 388 

343Quando lo stesso server è definito in più di un posto, Claude Code si connette ad esso una volta, utilizzando la definizione dalla fonte con la precedenza più alta. L'intera voce del server da quella fonte viene utilizzata; i campi non vengono uniti tra gli ambiti.389Quando lo stesso server è definito in più di un posto, Claude Code si connette ad esso una volta, utilizzando la definizione dalla fonte con la precedenza più alta. L'intera voce del server da quella fonte viene utilizzata; i campi non vengono uniti tra gli ambiti.

344 390 


350 396 

351I tre ambiti corrispondono ai duplicati per nome. I plugin e i connettori corrispondono per endpoint, quindi uno che punta allo stesso URL o comando di un server sopra è trattato come un duplicato.397I tre ambiti corrispondono ai duplicati per nome. I plugin e i connettori corrispondono per endpoint, quindi uno che punta allo stesso URL o comando di un server sopra è trattato come un duplicato.

352 398 

353### Espansione delle variabili di ambiente in `.mcp.json`399<h3 id="environment-variable-expansion-in-mcp-json">

400 Espansione delle variabili di ambiente in `.mcp.json`

401</h3>

354 402 

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

356 404 


386 434 

387Se una variabile di ambiente richiesta non è impostata e non ha un valore predefinito, Claude Code non riuscirà ad analizzare la configurazione.435Se una variabile di ambiente richiesta non è impostata e non ha un valore predefinito, Claude Code non riuscirà ad analizzare la configurazione.

388 436 

389## Esempi pratici437<h2 id="practical-examples">

438 Esempi pratici

439</h2>

390 440 

391{/* ### Example: Automate browser testing with Playwright441<h3 id="example-monitor-errors-with-sentry">

392 442 Esempio: Monitora gli errori con Sentry

393```bash443</h3>

394claude mcp add --transport stdio playwright -- npx -y @playwright/mcp@latest

395```

396 

397Then write and run browser tests:

398 

399```text

400Test if the login flow works with test@example.com

401```

402```text

403Take a screenshot of the checkout page on mobile

404```

405```text

406Verify that the search feature returns results

407``` */}

408 

409### Esempio: Monitora gli errori con Sentry

410 444 

411```bash theme={null}445```bash theme={null}

412claude mcp add --transport http sentry https://mcp.sentry.dev/mcp446claude mcp add --transport http sentry https://mcp.sentry.dev/mcp


432Quale deployment ha introdotto questi nuovi errori?466Quale deployment ha introdotto questi nuovi errori?

433```467```

434 468 

435### Esempio: Connettiti a GitHub per le revisioni del codice469<h3 id="example-connect-to-github-for-code-reviews">

470 Esempio: Connettiti a GitHub per le revisioni del codice

471</h3>

436 472 

437Il server MCP remoto di GitHub si autentica con un token di accesso personale GitHub passato come header. Per ottenerne uno, apri le [impostazioni del token GitHub](https://github.com/settings/personal-access-tokens), genera un nuovo token con granularità fine con accesso ai repository con cui desideri che Claude lavori, quindi aggiungi il server:473Il server MCP remoto di GitHub si autentica con un token di accesso personale GitHub passato come header. Per ottenerne uno, apri le [impostazioni del token GitHub](https://github.com/settings/personal-access-tokens), genera un nuovo token con granularità fine con accesso ai repository con cui desideri che Claude lavori, quindi aggiungi il server:

438 474 


455Mostrami tutte le PR aperte assegnate a me491Mostrami tutte le PR aperte assegnate a me

456```492```

457 493 

458### Esempio: Interroga il tuo database PostgreSQL494<h3 id="example-query-your-postgresql-database">

495 Esempio: Interroga il tuo database PostgreSQL

496</h3>

459 497 

460```bash theme={null}498```bash theme={null}

461claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \499claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \


476Trova i clienti che non hanno effettuato un acquisto negli ultimi 90 giorni514Trova i clienti che non hanno effettuato un acquisto negli ultimi 90 giorni

477```515```

478 516 

479## Autenticazione con server MCP remoti517<h2 id="authenticate-with-remote-mcp-servers">

518 Autenticazione con server MCP remoti

519</h2>

480 520 

481Molti server MCP basati su cloud richiedono l'autenticazione. Claude Code supporta OAuth 2.0 per connessioni sicure.521Molti server MCP basati su cloud richiedono l'autenticazione. Claude Code supporta OAuth 2.0 per connessioni sicure.

482 522 


514 * L'autenticazione OAuth funziona con i server HTTP554 * L'autenticazione OAuth funziona con i server HTTP

515</Tip>555</Tip>

516 556 

517### Utilizza una porta di callback OAuth fissa557<h3 id="use-a-fixed-oauth-callback-port">

558 Utilizza una porta di callback OAuth fissa

559</h3>

518 560 

519Alcuni server MCP richiedono un URI di reindirizzamento specifico registrato in anticipo. Per impostazione predefinita, Claude Code sceglie una porta disponibile casuale per il callback OAuth. Utilizza `--callback-port` per fissare la porta in modo che corrisponda a un URI di reindirizzamento pre-registrato della forma `http://localhost:PORT/callback`.561Alcuni server MCP richiedono un URI di reindirizzamento specifico registrato in anticipo. Per impostazione predefinita, Claude Code sceglie una porta disponibile casuale per il callback OAuth. Utilizza `--callback-port` per fissare la porta in modo che corrisponda a un URI di reindirizzamento pre-registrato della forma `http://localhost:PORT/callback`.

520 562 


527 my-server https://mcp.example.com/mcp569 my-server https://mcp.example.com/mcp

528```570```

529 571 

530### Utilizza credenziali OAuth pre-configurate572<h3 id="use-pre-configured-oauth-credentials">

573 Utilizza credenziali OAuth pre-configurate

574</h3>

531 575 

532Alcuni server MCP non supportano la configurazione OAuth automatica tramite Dynamic Client Registration. Se vedi un errore come "Incompatible auth server: does not support dynamic client registration," il server richiede credenziali pre-configurate. Claude Code supporta anche server che utilizzano un Client ID Metadata Document (CIMD) invece di Dynamic Client Registration e li scopre automaticamente. Se la scoperta automatica non riesce, registra prima un'app OAuth tramite il portale degli sviluppatori del server, quindi fornisci le credenziali quando aggiungi il server.576Alcuni server MCP non supportano la configurazione OAuth automatica tramite Dynamic Client Registration. Se vedi un errore come "Incompatible auth server: does not support dynamic client registration," il server richiede credenziali pre-configurate. Claude Code supporta anche server che utilizzano un Client ID Metadata Document (CIMD) invece di Dynamic Client Registration e li scopre automaticamente. Se la scoperta automatica non riesce, registra prima un'app OAuth tramite il portale degli sviluppatori del server, quindi fornisci le credenziali quando aggiungi il server.

533 577 


598 * Utilizza `claude mcp get <name>` per verificare che le credenziali OAuth siano configurate per un server642 * Utilizza `claude mcp get <name>` per verificare che le credenziali OAuth siano configurate per un server

599</Tip>643</Tip>

600 644 

601### Sovrascrivi la scoperta dei metadati OAuth645<h3 id="override-oauth-metadata-discovery">

646 Sovrascrivi la scoperta dei metadati OAuth

647</h3>

602 648 

603Indirizza Claude Code a un URL di metadati OAuth specifico per bypassare la catena di scoperta predefinita. Imposta `authServerMetadataUrl` quando gli endpoint standard del server MCP generano errori, o quando desideri instradare la scoperta attraverso un proxy interno. Per impostazione predefinita, Claude Code controlla prima i metadati della risorsa protetta RFC 9728 su `/.well-known/oauth-protected-resource`, quindi ricade sui metadati del server di autorizzazione RFC 8414 su `/.well-known/oauth-authorization-server`.649Indirizza Claude Code a un URL di metadati OAuth specifico per bypassare la catena di scoperta predefinita. Imposta `authServerMetadataUrl` quando gli endpoint standard del server MCP generano errori, o quando desideri instradare la scoperta attraverso un proxy interno. Per impostazione predefinita, Claude Code controlla prima i metadati della risorsa protetta RFC 9728 su `/.well-known/oauth-protected-resource`, quindi ricade sui metadati del server di autorizzazione RFC 8414 su `/.well-known/oauth-authorization-server`.

604 650 


620 666 

621L'URL deve utilizzare `https://`. `authServerMetadataUrl` richiede Claude Code v2.1.64 o successiva. L'`scopes_supported` dell'URL dei metadati sovrascrive gli ambiti che il server upstream pubblicizza.667L'URL deve utilizzare `https://`. `authServerMetadataUrl` richiede Claude Code v2.1.64 o successiva. L'`scopes_supported` dell'URL dei metadati sovrascrive gli ambiti che il server upstream pubblicizza.

622 668 

623### Limita gli ambiti OAuth669<h3 id="restrict-oauth-scopes">

670 Limita gli ambiti OAuth

671</h3>

624 672 

625Imposta `oauth.scopes` per fissare gli ambiti che Claude Code richiede durante il flusso di autorizzazione. Questo è il modo supportato per limitare un server MCP a un sottoinsieme approvato dal team di sicurezza quando il server di autorizzazione upstream pubblicizza più ambiti di quelli che desideri concedere. Il valore è una singola stringa separata da spazi, corrispondente al formato del parametro `scope` in RFC 6749 §3.3.673Imposta `oauth.scopes` per fissare gli ambiti che Claude Code richiede durante il flusso di autorizzazione. Questo è il modo supportato per limitare un server MCP a un sottoinsieme approvato dal team di sicurezza quando il server di autorizzazione upstream pubblicizza più ambiti di quelli che desideri concedere. Il valore è una singola stringa separata da spazi, corrispondente al formato del parametro `scope` in RFC 6749 §3.3.

626 674 


644 692 

645Se il server successivamente restituisce un 403 `insufficient_scope` per una chiamata di strumento, Claude Code si autentica di nuovo con gli stessi ambiti fissati. Amplia `oauth.scopes` quando uno strumento di cui hai bisogno richiede un ambito al di fuori del pin.693Se il server successivamente restituisce un 403 `insufficient_scope` per una chiamata di strumento, Claude Code si autentica di nuovo con gli stessi ambiti fissati. Amplia `oauth.scopes` quando uno strumento di cui hai bisogno richiede un ambito al di fuori del pin.

646 694 

647### Utilizza intestazioni dinamiche per l'autenticazione personalizzata695<h3 id="use-dynamic-headers-for-custom-authentication">

696 Utilizza intestazioni dinamiche per l'autenticazione personalizzata

697</h3>

648 698 

649Se il tuo server MCP utilizza uno schema di autenticazione diverso da OAuth (come Kerberos, token di breve durata o un SSO interno), utilizza `headersHelper` per generare intestazioni di richiesta al momento della connessione. Claude Code esegue il comando e unisce il suo output alle intestazioni di connessione.699Se il tuo server MCP utilizza uno schema di autenticazione diverso da OAuth (come Kerberos, token di breve durata o un SSO interno), utilizza `headersHelper` per generare intestazioni di richiesta al momento della connessione. Claude Code esegue il comando e unisce il suo output alle intestazioni di connessione.

650 700 


695 `headersHelper` esegue comandi shell arbitrari. Quando definito a livello di progetto o locale, viene eseguito solo dopo che accetti la finestra di dialogo di fiducia dell'area di lavoro.745 `headersHelper` esegue comandi shell arbitrari. Quando definito a livello di progetto o locale, viene eseguito solo dopo che accetti la finestra di dialogo di fiducia dell'area di lavoro.

696</Note>746</Note>

697 747 

698## Aggiungi server MCP dalla configurazione JSON748<h2 id="add-mcp-servers-from-json-configuration">

749 Aggiungi server MCP dalla configurazione JSON

750</h2>

699 751 

700Se hai una configurazione JSON per un server MCP, puoi aggiungerla direttamente:752Se hai una configurazione JSON per un server MCP, puoi aggiungerla direttamente:

701 753 


731 * Puoi utilizzare `--scope user` per aggiungere il server alla tua configurazione utente invece di quella specifica del progetto783 * Puoi utilizzare `--scope user` per aggiungere il server alla tua configurazione utente invece di quella specifica del progetto

732</Tip>784</Tip>

733 785 

734## Importa server MCP da Claude Desktop786<h2 id="import-mcp-servers-from-claude-desktop">

787 Importa server MCP da Claude Desktop

788</h2>

735 789 

736Se hai già configurato server MCP in Claude Desktop, puoi importarli:790Se hai già configurato server MCP in Claude Desktop, puoi importarli:

737 791 


764 * Se server con gli stessi nomi esistono già, riceveranno un suffisso numerico (per esempio, `server_1`)818 * Se server con gli stessi nomi esistono già, riceveranno un suffisso numerico (per esempio, `server_1`)

765</Tip>819</Tip>

766 820 

767## Utilizza server MCP da Claude.ai821<h2 id="use-mcp-servers-from-claude-ai">

822 Utilizza server MCP da Claude.ai

823</h2>

768 824 

769Se hai effettuato l'accesso a Claude Code con un account [Claude.ai](https://claude.ai), i server MCP che hai aggiunto in Claude.ai sono automaticamente disponibili in Claude Code:825Se hai effettuato l'accesso a Claude Code con un account [Claude.ai](https://claude.ai), i server MCP che hai aggiunto in Claude.ai sono automaticamente disponibili in Claude Code:

770 826 


794 850 

795Un server che hai aggiunto in Claude Code ha [precedenza](#scope-hierarchy-and-precedence) rispetto a un connettore claude.ai che punta allo stesso URL. Quando ciò accade, `/mcp` elenca il connettore come nascosto e mostra come rimuovere il duplicato se preferisci utilizzare il connettore.851Un server che hai aggiunto in Claude Code ha [precedenza](#scope-hierarchy-and-precedence) rispetto a un connettore claude.ai che punta allo stesso URL. Quando ciò accade, `/mcp` elenca il connettore come nascosto e mostra come rimuovere il duplicato se preferisci utilizzare il connettore.

796 852 

853Alcuni connettori ospitati da Anthropic, come Microsoft 365, Gmail e Google Calendar, non supportano OAuth locale da Claude Code perché il provider di identità upstream accetta solo l'URL di reindirizzamento registrato da claude.ai. A partire dalla v2.1.162, l'autenticazione di uno di questi host in `/mcp` mostra un messaggio che ti indirizza a collegarlo in Impostazioni → Connettori su claude.ai. Una volta collegato lì, il connettore appare in Claude Code automaticamente.

854 

797Per disabilitare i server MCP di claude.ai in Claude Code, imposta la variabile di ambiente `ENABLE_CLAUDEAI_MCP_SERVERS` su `false`:855Per disabilitare i server MCP di claude.ai in Claude Code, imposta la variabile di ambiente `ENABLE_CLAUDEAI_MCP_SERVERS` su `false`:

798 856 

799```bash theme={null}857```bash theme={null}

800ENABLE_CLAUDEAI_MCP_SERVERS=false claude858ENABLE_CLAUDEAI_MCP_SERVERS=false claude

801```859```

802 860 

803## Utilizza Claude Code come server MCP861<h2 id="use-claude-code-as-an-mcp-server">

862 Utilizza Claude Code come server MCP

863</h2>

804 864 

805Puoi utilizzare Claude Code stesso come server MCP a cui altre applicazioni possono connettersi:865Puoi utilizzare Claude Code stesso come server MCP a cui altre applicazioni possono connettersi:

806 866 


859 * Nota che questo server MCP sta solo esponendo gli strumenti di Claude Code al tuo client MCP, quindi il tuo client è responsabile dell'implementazione della conferma dell'utente per le singole chiamate di strumenti.919 * Nota che questo server MCP sta solo esponendo gli strumenti di Claude Code al tuo client MCP, quindi il tuo client è responsabile dell'implementazione della conferma dell'utente per le singole chiamate di strumenti.

860</Tip>920</Tip>

861 921 

862## Limiti di output MCP e avvisi922<h2 id="mcp-output-limits-and-warnings">

923 Limiti di output MCP e avvisi

924</h2>

863 925 

864Quando gli strumenti MCP producono output di grandi dimensioni, Claude Code aiuta a gestire l'utilizzo dei token per evitare di sovraccaricare il contesto della tua conversazione:926Quando gli strumenti MCP producono output di grandi dimensioni, Claude Code aiuta a gestire l'utilizzo dei token per evitare di sovraccaricare il contesto della vostra conversazione:

865 927 

866* **Soglia di avviso di output**: Claude Code visualizza un avviso quando l'output di qualsiasi strumento MCP supera 10.000 token928* **Soglia di avviso di output**: Claude Code visualizza un avviso quando l'output di qualsiasi strumento MCP supera 10.000 token

867* **Limite configurabile**: Puoi regolare il massimo di token di output MCP consentiti utilizzando la variabile di ambiente `MAX_MCP_OUTPUT_TOKENS`929* **Limite configurabile**: potete regolare il massimo di token di output MCP consentiti utilizzando la variabile di ambiente `MAX_MCP_OUTPUT_TOKENS`

868* **Limite predefinito**: Il massimo predefinito è 25.000 token930* **Limite predefinito**: il massimo predefinito è 25.000 token

869* **Ambito**: La variabile di ambiente si applica agli strumenti che non dichiarano il loro limite. Gli strumenti che impostano [`anthropic/maxResultSizeChars`](#raise-the-limit-for-a-specific-tool) utilizzano quel valore invece per il contenuto di testo, indipendentemente da ciò che `MAX_MCP_OUTPUT_TOKENS` è impostato. Gli strumenti che restituiscono dati di immagine sono ancora soggetti a `MAX_MCP_OUTPUT_TOKENS`931* **Ambito**: la variabile di ambiente si applica agli strumenti che non dichiarano il loro limite. Gli strumenti che impostano [`anthropic/maxResultSizeChars`](#raise-the-limit-for-a-specific-tool) utilizzano quel valore invece per il contenuto di testo, indipendentemente da ciò che `MAX_MCP_OUTPUT_TOKENS` è impostato. Gli strumenti che restituiscono dati di immagine sono ancora soggetti a `MAX_MCP_OUTPUT_TOKENS`

870 932 

871Per aumentare il limite per gli strumenti che producono output di grandi dimensioni:933Per aumentare il limite per gli strumenti che producono output di grandi dimensioni:

872 934 


877 939 

878Questo è particolarmente utile quando si lavora con server MCP che:940Questo è particolarmente utile quando si lavora con server MCP che:

879 941 

880* Interrogano grandi set di dati o database942* interrogano grandi set di dati o database

881* Generano report o documentazione dettagliati943* generano report o documentazione dettagliati

882* Elaborano file di log estesi o informazioni di debug944* elaborano file di log estesi o informazioni di debug

883 945 

884### Aumenta il limite per uno strumento specifico946<h3 id="raise-the-limit-for-a-specific-tool">

947 Aumenta il limite per uno strumento specifico

948</h3>

885 949 

886Se stai costruendo un server MCP, puoi consentire ai singoli strumenti di restituire risultati più grandi della soglia predefinita impostando `_meta["anthropic/maxResultSizeChars"]` nella voce dello strumento nella risposta `tools/list`. Claude Code aumenta la soglia di quello strumento al valore annotato, fino a un limite massimo di 500.000 caratteri.950Se state costruendo un server MCP, potete consentire ai singoli strumenti di restituire risultati più grandi della soglia predefinita impostando `_meta["anthropic/maxResultSizeChars"]` nella voce dello strumento nella risposta `tools/list`. Claude Code aumenta la soglia di quello strumento al valore annotato, fino a un limite massimo di 500.000 caratteri.

887 951 

888Questo è utile per strumenti che restituiscono output intrinsecamente grandi ma necessari, come schemi di database o alberi di file completi. Senza l'annotazione, i risultati che superano la soglia predefinita vengono persistiti su disco e sostituiti con un riferimento a file nella conversazione.952Questo è utile per strumenti che restituiscono output intrinsecamente grandi ma necessari, come schemi di database o alberi di file completi. Senza l'annotazione, i risultati che superano la soglia predefinita vengono persistiti su disco e sostituiti con un riferimento a file nella conversazione.

889 953 


900L'annotazione si applica indipendentemente da `MAX_MCP_OUTPUT_TOKENS` per il contenuto di testo, quindi gli utenti non hanno bisogno di aumentare la variabile di ambiente per gli strumenti che la dichiarano. Gli strumenti che restituiscono dati di immagine sono ancora soggetti al limite di token.964L'annotazione si applica indipendentemente da `MAX_MCP_OUTPUT_TOKENS` per il contenuto di testo, quindi gli utenti non hanno bisogno di aumentare la variabile di ambiente per gli strumenti che la dichiarano. Gli strumenti che restituiscono dati di immagine sono ancora soggetti al limite di token.

901 965 

902<Warning>966<Warning>

903 Se incontri frequentemente avvisi di output con server MCP specifici che non controlli, considera di aumentare il limite `MAX_MCP_OUTPUT_TOKENS`. Puoi anche chiedere all'autore del server di aggiungere l'annotazione `anthropic/maxResultSizeChars` o di impaginare le loro risposte. L'annotazione non ha effetto sugli strumenti che restituiscono contenuto di immagine; per quelli, aumentare `MAX_MCP_OUTPUT_TOKENS` è l'unica opzione.967 Se incontrate frequentemente avvisi di output con server MCP specifici che non controllate, considerate di aumentare il limite `MAX_MCP_OUTPUT_TOKENS`. Potete anche chiedere all'autore del server di aggiungere l'annotazione `anthropic/maxResultSizeChars` o di impaginare le loro risposte. L'annotazione non ha effetto sugli strumenti che restituiscono contenuto di immagine; per quelli, aumentare `MAX_MCP_OUTPUT_TOKENS` è l'unica opzione.

904</Warning>968</Warning>

905 969 

906## Rispondi alle richieste di elicitazione MCP970<h2 id="respond-to-mcp-elicitation-requests">

971 Rispondi alle richieste di elicitazione MCP

972</h2>

907 973 

908I server MCP possono richiedere input strutturato da te durante un'attività utilizzando l'elicitazione. Quando un server ha bisogno di informazioni che non può ottenere da solo, Claude Code visualizza una finestra di dialogo interattiva e passa la tua risposta al server. Non è richiesta alcuna configurazione da parte tua: le finestre di dialogo di elicitazione appaiono automaticamente quando un server le richiede.974I server MCP possono richiedere input strutturato da te durante un'attività utilizzando l'elicitazione. Quando un server ha bisogno di informazioni che non può ottenere da solo, Claude Code visualizza una finestra di dialogo interattiva e passa la tua risposta al server. Non è richiesta alcuna configurazione da parte tua: le finestre di dialogo di elicitazione appaiono automaticamente quando un server le richiede.

909 975 


916 982 

917Se stai costruendo un server MCP che utilizza l'elicitazione, vedi la [specifica di elicitazione MCP](https://modelcontextprotocol.io/docs/learn/client-concepts#elicitation) per i dettagli del protocollo e gli esempi di schema.983Se stai costruendo un server MCP che utilizza l'elicitazione, vedi la [specifica di elicitazione MCP](https://modelcontextprotocol.io/docs/learn/client-concepts#elicitation) per i dettagli del protocollo e gli esempi di schema.

918 984 

919## Utilizza risorse MCP985<h2 id="use-mcp-resources">

986 Utilizza risorse MCP

987</h2>

920 988 

921I server MCP possono esporre risorse che puoi referenziare utilizzando menzioni @, simile a come referenzi i file.989I server MCP possono esporre risorse che puoi referenziare utilizzando menzioni @, simile a come referenzi i file.

922 990 

923### Referenzia risorse MCP991<h3 id="reference-mcp-resources">

992 Referenzia risorse MCP

993</h3>

924 994 

925<Steps>995<Steps>

926 <Step title="Elenca le risorse disponibili">996 <Step title="Elenca le risorse disponibili">


957 * Le risorse possono contenere qualsiasi tipo di contenuto fornito dal server MCP (testo, JSON, dati strutturati, ecc.)1027 * Le risorse possono contenere qualsiasi tipo di contenuto fornito dal server MCP (testo, JSON, dati strutturati, ecc.)

958</Tip>1028</Tip>

959 1029 

960## Scala con MCP Tool Search1030<h2 id="scale-with-mcp-tool-search">

1031 Scala con MCP Tool Search

1032</h2>

961 1033 

962Tool search mantiene l'utilizzo del contesto MCP basso rimandando le definizioni degli strumenti fino a quando Claude ne ha bisogno. Solo i nomi degli strumenti e le istruzioni del server vengono caricati all'avvio della sessione, quindi aggiungere più server MCP ha un impatto minimo sulla tua finestra di contesto.1034Tool search mantiene l'utilizzo del contesto MCP basso rimandando le definizioni degli strumenti fino a quando Claude ne ha bisogno. Solo i nomi degli strumenti e le istruzioni del server vengono caricati all'avvio della sessione, quindi aggiungere più server MCP ha un impatto minimo sulla tua finestra di contesto. Claude Code non impone un limite fisso di strumenti per server; il limite pratico è il tuo budget della finestra di contesto.

963 1035 

964### Come funziona1036<h3 id="how-it-works">

1037 Come funziona

1038</h3>

965 1039 

966Tool search è abilitato per impostazione predefinita. Gli strumenti MCP vengono rimandati piuttosto che caricati nel contesto in anticipo, e Claude utilizza uno strumento di ricerca per scoprire quelli rilevanti quando un'attività ne ha bisogno. Solo gli strumenti che Claude effettivamente utilizza entrano nel contesto. Dal tuo punto di vista, gli strumenti MCP funzionano esattamente come prima.1040Tool search è abilitato per impostazione predefinita. Gli strumenti MCP vengono rimandati piuttosto che caricati nel contesto in anticipo, e Claude utilizza uno strumento di ricerca per scoprire quelli rilevanti quando un'attività ne ha bisogno. Solo gli strumenti che Claude effettivamente utilizza entrano nel contesto. Dal tuo punto di vista, gli strumenti MCP funzionano esattamente come prima.

967 1041 

968Se preferisci il caricamento basato su soglia, imposta `ENABLE_TOOL_SEARCH=auto` per caricare gli schemi in anticipo quando si adattano entro il 10% della finestra di contesto e rimanda solo l'overflow. Vedi [Configura tool search](#configure-tool-search) per tutte le opzioni.1042Se preferisci il caricamento basato su soglia, imposta `ENABLE_TOOL_SEARCH=auto` per caricare gli schemi in anticipo quando si adattano entro il 10% della finestra di contesto e rimanda solo l'overflow. Vedi [Configura tool search](#configure-tool-search) per tutte le opzioni.

969 1043 

970### Per gli autori di server MCP1044<h3 id="for-mcp-server-authors">

1045 Per gli autori di server MCP

1046</h3>

971 1047 

972Se stai costruendo un server MCP, il campo delle istruzioni del server diventa più utile con Tool Search abilitato. Le istruzioni del server aiutano Claude a capire quando cercare i tuoi strumenti, simile a come funzionano le [skills](/it/skills).1048Se stai costruendo un server MCP, il campo delle istruzioni del server diventa più utile con Tool Search abilitato. Le istruzioni del server aiutano Claude a capire quando cercare i tuoi strumenti, simile a come funzionano le [skills](/it/skills).

973 1049 


979 1055 

980Claude Code tronca le descrizioni degli strumenti e le istruzioni del server a 2KB ciascuna. Mantienile concise per evitare il troncamento e metti i dettagli critici all'inizio.1056Claude Code tronca le descrizioni degli strumenti e le istruzioni del server a 2KB ciascuna. Mantienile concise per evitare il troncamento e metti i dettagli critici all'inizio.

981 1057 

982### Configura tool search1058<h3 id="configure-tool-search">

1059 Configura tool search

1060</h3>

983 1061 

984Tool search è abilitato per impostazione predefinita: gli strumenti MCP vengono rimandati e scoperti su richiesta. Claude Code lo disabilita per impostazione predefinita su Vertex AI. È anche disabilitato quando `ANTHROPIC_BASE_URL` punta a un host non di prima parte, poiché la maggior parte dei proxy non inoltrano blocchi `tool_reference`. Imposta `ENABLE_TOOL_SEARCH` esplicitamente per ignorare uno qualsiasi dei fallback.1062Tool search è abilitato per impostazione predefinita: gli strumenti MCP vengono rimandati e scoperti su richiesta. Claude Code lo disabilita per impostazione predefinita su Vertex AI. È anche disabilitato quando `ANTHROPIC_BASE_URL` punta a un host non di prima parte, poiché la maggior parte dei proxy non inoltrano blocchi `tool_reference`. Imposta `ENABLE_TOOL_SEARCH` esplicitamente per ignorare uno qualsiasi dei fallback.

985 1063 

986Tool search richiede un modello che supporta blocchi `tool_reference`: Sonnet 4 e successivi, oppure Opus 4 e successivi. I modelli Haiku non lo supportano. Su Vertex AI, tool search è supportato per Claude Sonnet 4.5 e successivi e Claude Opus 4.5 e successivi.1064Tool search richiede un modello che supporta blocchi `tool_reference`. I modelli Haiku non lo supportano. Su Vertex AI, tool search è supportato per Claude Sonnet 4.5 e successivi e Claude Opus 4.5 e successivi.

987 1065 

988Controlla il comportamento di tool search con la variabile di ambiente `ENABLE_TOOL_SEARCH`:1066Controlla il comportamento di tool search con la variabile di ambiente `ENABLE_TOOL_SEARCH`:

989 1067 


1015}1093}

1016```1094```

1017 1095 

1018### Esentare un server dal rinvio1096<h3 id="exempt-a-server-from-deferral">

1097 Esentare un server dal rinvio

1098</h3>

1019 1099 

1020Se gli strumenti di un server dovrebbero essere sempre visibili a Claude senza un passaggio di ricerca, imposta `alwaysLoad` su `true` nella configurazione di quel server. Ogni strumento da quel server viene quindi caricato nel contesto all'avvio della sessione indipendentemente dall'impostazione `ENABLE_TOOL_SEARCH`. Utilizza questa opzione per un piccolo numero di strumenti che Claude necessita ad ogni turno, poiché ogni strumento in anticipo consuma contesto che altrimenti sarebbe disponibile per la tua conversazione.1100Se gli strumenti di un server dovrebbero essere sempre visibili a Claude senza un passaggio di ricerca, imposta `alwaysLoad` su `true` nella configurazione di quel server. Ogni strumento da quel server viene quindi caricato nel contesto all'avvio della sessione indipendentemente dall'impostazione `ENABLE_TOOL_SEARCH`. Utilizza questa opzione per un piccolo numero di strumenti che Claude necessita ad ogni turno, poiché ogni strumento in anticipo consuma contesto che altrimenti sarebbe disponibile per la tua conversazione.

1021 1101 


1037 1117 

1038L'impostazione di `alwaysLoad: true` blocca anche l'avvio fino a quando il server non si connette, limitato al timeout di connessione standard di 5 secondi. Questo si applica anche se MCP startup è altrimenti [non-blocking per impostazione predefinita](/it/env-vars), poiché gli strumenti devono essere presenti quando viene costruito il primo prompt. Gli altri server continuano a connettersi in background.1118L'impostazione di `alwaysLoad: true` blocca anche l'avvio fino a quando il server non si connette, limitato al timeout di connessione standard di 5 secondi. Questo si applica anche se MCP startup è altrimenti [non-blocking per impostazione predefinita](/it/env-vars), poiché gli strumenti devono essere presenti quando viene costruito il primo prompt. Gli altri server continuano a connettersi in background.

1039 1119 

1040## Utilizza i prompt MCP come comandi1120<h2 id="use-mcp-prompts-as-commands">

1121 Utilizza i prompt MCP come comandi

1122</h2>

1041 1123 

1042I server MCP possono esporre prompt che diventano disponibili come comandi in Claude Code.1124I server MCP possono esporre prompt che diventano disponibili come comandi in Claude Code.

1043 1125 

1044### Esegui i prompt MCP1126<h3 id="execute-mcp-prompts">

1127 Esegui i prompt MCP

1128</h3>

1045 1129 

1046<Steps>1130<Steps>

1047 <Step title="Scopri i prompt disponibili">1131 <Step title="Scopri i prompt disponibili">


1076 * I nomi del server e del prompt vengono normalizzati (gli spazi diventano trattini bassi)1160 * I nomi del server e del prompt vengono normalizzati (gli spazi diventano trattini bassi)

1077</Tip>1161</Tip>

1078 1162 

1079## Configurazione MCP gestita1163<h2 id="managed-mcp-configuration">

1164 Configurazione MCP gestita

1165</h2>

1080 1166 

1081Per le organizzazioni che necessitano di un controllo centralizzato su quali server MCP gli utenti possono connettere, consulta [Managed MCP configuration](/it/managed-mcp). Copre la distribuzione di un set fisso di server con `managed-mcp.json`, la restrizione dei server con `allowedMcpServers` e `deniedMcpServers`, e cosa vedono gli utenti quando un server è bloccato.1167Per le organizzazioni che necessitano di un controllo centralizzato su quali server MCP gli utenti possono connettere, consulta [Configurazione MCP gestita](/it/managed-mcp). Copre la distribuzione di un set fisso di server con `managed-mcp.json`, la restrizione dei server con `allowedMcpServers` e `deniedMcpServers`, e cosa vedono gli utenti quando un server è bloccato.

memory.md +92 −32

Details

18* [Configurare la memoria automatica](#auto-memory) in modo che Claude prenda note automaticamente18* [Configurare la memoria automatica](#auto-memory) in modo che Claude prenda note automaticamente

19* [Risolvere i problemi](#troubleshoot-memory-issues) quando le istruzioni non vengono seguite19* [Risolvere i problemi](#troubleshoot-memory-issues) quando le istruzioni non vengono seguite

20 20 

21## CLAUDE.md vs memoria automatica21<h2 id="claude-md-vs-auto-memory">

22 CLAUDE.md vs memoria automatica

23</h2>

22 24 

23Claude Code ha due sistemi di memoria complementari. Entrambi vengono caricati all'inizio di ogni conversazione. Claude li tratta come contesto, non come configurazione forzata. Per bloccare un'azione indipendentemente da ciò che Claude decide, utilizza un [hook PreToolUse](/it/hooks-guide) invece. Più specifiche e concise sono le tue istruzioni, più coerentemente Claude le segue.25Claude Code ha due sistemi di memoria complementari. Entrambi vengono caricati all'inizio di ogni conversazione. Claude li tratta come contesto, non come configurazione forzata. Per bloccare un'azione indipendentemente da ciò che Claude decide, utilizza un [hook PreToolUse](/it/hooks-guide) invece. Più specifiche e concise sono le tue istruzioni, più coerentemente Claude le segue.

24 26 


34 36 

35I subagents possono anche mantenere la propria memoria automatica. Vedi [configurazione subagent](/it/sub-agents#enable-persistent-memory) per i dettagli.37I subagents possono anche mantenere la propria memoria automatica. Vedi [configurazione subagent](/it/sub-agents#enable-persistent-memory) per i dettagli.

36 38 

37## File CLAUDE.md39<h2 id="claude-md-files">

40 File CLAUDE.md

41</h2>

38 42 

39I file CLAUDE.md sono file markdown che forniscono a Claude istruzioni persistenti per un progetto, il tuo flusso di lavoro personale o l'intera organizzazione. Scrivi questi file in testo semplice; Claude li legge all'inizio di ogni sessione.43I file CLAUDE.md sono file markdown che forniscono a Claude istruzioni persistenti per un progetto, il tuo flusso di lavoro personale o l'intera organizzazione. Scrivi questi file in testo semplice; Claude li legge all'inizio di ogni sessione.

40 44 

41### Quando aggiungere a CLAUDE.md45<h3 id="when-to-add-to-claude-md">

46 Quando aggiungere a CLAUDE.md

47</h3>

42 48 

43Tratta CLAUDE.md come il posto dove scrivi quello che altrimenti dovresti rispiegare. Aggiungi a esso quando:49Tratta CLAUDE.md come il posto dove scrivi quello che altrimenti dovresti rispiegare. Aggiungi a esso quando:

44 50 


49 55 

50Mantienilo su fatti che Claude dovrebbe tenere in ogni sessione: comandi di compilazione, convenzioni, layout del progetto, regole "fai sempre X". Se una voce è una procedura multi-step o riguarda solo una parte della base di codice, spostala in una [skill](/it/skills) o in una [regola con ambito di percorso](#organize-rules-with-claude/rules/) invece. La [panoramica dell'estensione](/it/features-overview#build-your-setup-over-time) copre quando usare ogni meccanismo.56Mantienilo su fatti che Claude dovrebbe tenere in ogni sessione: comandi di compilazione, convenzioni, layout del progetto, regole "fai sempre X". Se una voce è una procedura multi-step o riguarda solo una parte della base di codice, spostala in una [skill](/it/skills) o in una [regola con ambito di percorso](#organize-rules-with-claude/rules/) invece. La [panoramica dell'estensione](/it/features-overview#build-your-setup-over-time) copre quando usare ogni meccanismo.

51 57 

52### Scegli dove mettere i file CLAUDE.md58<h3 id="choose-where-to-put-claude-md-files">

59 Scegli dove mettere i file CLAUDE.md

60</h3>

53 61 

54I file CLAUDE.md possono trovarsi in diversi percorsi, ognuno con un ambito diverso. La tabella seguente li elenca in ordine di caricamento, dall'ambito più ampio al più specifico, quindi un'istruzione di progetto appare nel contesto dopo un'istruzione utente.62I file CLAUDE.md possono trovarsi in diversi percorsi, ognuno con un ambito diverso. La tabella seguente li elenca in ordine di caricamento, dall'ambito più ampio al più specifico, quindi un'istruzione di progetto appare nel contesto dopo un'istruzione utente.

55 63 


64 72 

65Per i progetti di grandi dimensioni, puoi suddividere le istruzioni in file specifici per argomento utilizzando [regole di progetto](#organize-rules-with-claude/rules/). Le regole ti consentono di limitare le istruzioni a tipi di file specifici o sottodirectory.73Per i progetti di grandi dimensioni, puoi suddividere le istruzioni in file specifici per argomento utilizzando [regole di progetto](#organize-rules-with-claude/rules/). Le regole ti consentono di limitare le istruzioni a tipi di file specifici o sottodirectory.

66 74 

67### Configura un CLAUDE.md di progetto75<h3 id="set-up-a-project-claude-md">

76 Configura un CLAUDE.md di progetto

77</h3>

68 78 

69Un CLAUDE.md di progetto può essere archiviato in `./CLAUDE.md` o `./.claude/CLAUDE.md`. Crea questo file e aggiungi istruzioni che si applicano a chiunque lavori sul progetto: comandi di compilazione e test, standard di codifica, decisioni architettoniche, convenzioni di denominazione e flussi di lavoro comuni. Queste istruzioni vengono condivise con il tuo team tramite controllo del codice sorgente, quindi concentrati su standard a livello di progetto piuttosto che su preferenze personali.79Un CLAUDE.md di progetto può essere archiviato in `./CLAUDE.md` o `./.claude/CLAUDE.md`. Crea questo file e aggiungi istruzioni che si applicano a chiunque lavori sul progetto: comandi di compilazione e test, standard di codifica, decisioni architettoniche, convenzioni di denominazione e flussi di lavoro comuni. Queste istruzioni vengono condivise con il tuo team tramite controllo del codice sorgente, quindi concentrati su standard a livello di progetto piuttosto che su preferenze personali.

70 80 


74 Imposta `CLAUDE_CODE_NEW_INIT=1` per abilitare un flusso interattivo multi-fase. `/init` chiede quali artefatti configurare: file CLAUDE.md, skills e hooks. Quindi esplora la tua base di codice con un subagent, colma le lacune tramite domande di follow-up e presenta una proposta revisionabile prima di scrivere qualsiasi file.84 Imposta `CLAUDE_CODE_NEW_INIT=1` per abilitare un flusso interattivo multi-fase. `/init` chiede quali artefatti configurare: file CLAUDE.md, skills e hooks. Quindi esplora la tua base di codice con un subagent, colma le lacune tramite domande di follow-up e presenta una proposta revisionabile prima di scrivere qualsiasi file.

75</Tip>85</Tip>

76 86 

77### Scrivi istruzioni efficaci87<h3 id="write-effective-instructions">

88 Scrivi istruzioni efficaci

89</h3>

78 90 

79I file CLAUDE.md vengono caricati nella finestra di contesto all'inizio di ogni sessione, consumando token insieme alla tua conversazione. La [visualizzazione della finestra di contesto](/it/context-window) mostra dove CLAUDE.md si carica rispetto al resto del contesto di avvio. Poiché sono contesto piuttosto che configurazione forzata, il modo in cui scrivi le istruzioni influisce su quanto affidabilmente Claude le segue. Le istruzioni specifiche, concise e ben strutturate funzionano meglio.91I file CLAUDE.md vengono caricati nella finestra di contesto all'inizio di ogni sessione, consumando token insieme alla tua conversazione. La [visualizzazione della finestra di contesto](/it/context-window) mostra dove CLAUDE.md si carica rispetto al resto del contesto di avvio. Poiché sono contesto piuttosto che configurazione forzata, il modo in cui scrivi le istruzioni influisce su quanto affidabilmente Claude le segue. Le istruzioni specifiche, concise e ben strutturate funzionano meglio.

80 92 


90 102 

91**Coerenza**: se due regole si contraddicono a vicenda, Claude potrebbe sceglierne una arbitrariamente. Rivedi periodicamente i tuoi file CLAUDE.md, i file CLAUDE.md annidati nelle sottodirectory e i file [`.claude/rules/`](#organize-rules-with-claude/rules/) per rimuovere istruzioni obsolete o conflittuali. Nei monorepo, usa [`claudeMdExcludes`](#exclude-specific-claude-md-files) per saltare i file CLAUDE.md di altri team che non sono rilevanti per il tuo lavoro.103**Coerenza**: se due regole si contraddicono a vicenda, Claude potrebbe sceglierne una arbitrariamente. Rivedi periodicamente i tuoi file CLAUDE.md, i file CLAUDE.md annidati nelle sottodirectory e i file [`.claude/rules/`](#organize-rules-with-claude/rules/) per rimuovere istruzioni obsolete o conflittuali. Nei monorepo, usa [`claudeMdExcludes`](#exclude-specific-claude-md-files) per saltare i file CLAUDE.md di altri team che non sono rilevanti per il tuo lavoro.

92 104 

93### Importa file aggiuntivi105<h3 id="import-additional-files">

106 Importa file aggiuntivi

107</h3>

94 108 

95I file CLAUDE.md possono importare file aggiuntivi usando la sintassi `@path/to/import`. I file importati vengono espansi e caricati nel contesto all'avvio insieme al CLAUDE.md che li riferisce.109I file CLAUDE.md possono importare file aggiuntivi usando la sintassi `@path/to/import`. I file importati vengono espansi e caricati nel contesto all'avvio insieme al CLAUDE.md che li riferisce.

96 110 


120 134 

121Per un approccio più strutturato all'organizzazione delle istruzioni, vedi [`.claude/rules/`](#organize-rules-with-claude/rules/).135Per un approccio più strutturato all'organizzazione delle istruzioni, vedi [`.claude/rules/`](#organize-rules-with-claude/rules/).

122 136 

123### AGENTS.md137<h3 id="agents-md">

138 AGENTS.md

139</h3>

124 140 

125Claude Code legge `CLAUDE.md`, non `AGENTS.md`. Se il tuo repository utilizza già `AGENTS.md` per altri agenti di codifica, crea un `CLAUDE.md` che lo importa in modo che entrambi gli strumenti leggano le stesse istruzioni senza duplicarle. Puoi anche aggiungere istruzioni specifiche di Claude Code sotto l'importazione. Claude carica il file importato all'inizio della sessione, quindi aggiunge il resto:141Claude Code legge `CLAUDE.md`, non `AGENTS.md`. Se il tuo repository utilizza già `AGENTS.md` per altri agenti di codifica, crea un `CLAUDE.md` che lo importa in modo che entrambi gli strumenti leggano le stesse istruzioni senza duplicarle. Puoi anche aggiungere istruzioni specifiche di Claude Code sotto l'importazione. Claude carica il file importato all'inizio della sessione, quindi aggiunge il resto:

126 142 


140 156 

141Su Windows, la creazione di un symlink richiede privilegi di amministratore o modalità sviluppatore, quindi usa l'importazione `@AGENTS.md` invece.157Su Windows, la creazione di un symlink richiede privilegi di amministratore o modalità sviluppatore, quindi usa l'importazione `@AGENTS.md` invece.

142 158 

143L'esecuzione di [`/init`](/it/commands) in un repository che ha già un `AGENTS.md` lo legge e incorpora le parti rilevanti nel `CLAUDE.md` generato. Legge anche altre configurazioni di strumenti come `.cursorrules` e `.windsurfrules`.159L'esecuzione di [`/init`](/it/commands) in un repository che ha già un `AGENTS.md` lo legge e incorpora le parti rilevanti nel `CLAUDE.md` generato. Legge anche altre configurazioni di strumenti come `.cursorrules`, `.devin/rules/` e `.windsurfrules`.

144 160 

145### Come vengono caricati i file CLAUDE.md161<h3 id="how-claude-md-files-load">

162 Come vengono caricati i file CLAUDE.md

163</h3>

146 164 

147Claude Code legge i file CLAUDE.md camminando verso l'alto nell'albero delle directory dalla tua directory di lavoro corrente, controllando ogni directory lungo il percorso per i file `CLAUDE.md` e `CLAUDE.local.md`. Ciò significa che se esegui Claude Code in `foo/bar/`, carica le istruzioni da `foo/bar/CLAUDE.md`, `foo/CLAUDE.md` e qualsiasi file `CLAUDE.local.md` accanto a loro.165Claude Code legge i file CLAUDE.md camminando verso l'alto nell'albero delle directory dalla tua directory di lavoro corrente, controllando ogni directory lungo il percorso per i file `CLAUDE.md` e `CLAUDE.local.md`. Ciò significa che se esegui Claude Code in `foo/bar/`, carica le istruzioni da `foo/bar/CLAUDE.md`, `foo/CLAUDE.md` e qualsiasi file `CLAUDE.local.md` accanto a loro.

148 166 


154 172 

155I commenti HTML a livello di blocco (`<!-- maintainer notes -->`) nei file CLAUDE.md vengono rimossi prima che il contenuto venga iniettato nel contesto di Claude. Usali per lasciare note per i manutentori umani senza spendere token di contesto su di essi. I commenti all'interno dei blocchi di codice vengono preservati. Quando apri un file CLAUDE.md direttamente con lo strumento Read, i commenti rimangono visibili.173I commenti HTML a livello di blocco (`<!-- maintainer notes -->`) nei file CLAUDE.md vengono rimossi prima che il contenuto venga iniettato nel contesto di Claude. Usali per lasciare note per i manutentori umani senza spendere token di contesto su di essi. I commenti all'interno dei blocchi di codice vengono preservati. Quando apri un file CLAUDE.md direttamente con lo strumento Read, i commenti rimangono visibili.

156 174 

157#### Carica da directory aggiuntive175<h4 id="load-from-additional-directories">

176 Carica da directory aggiuntive

177</h4>

158 178 

159Il flag `--add-dir` dà a Claude accesso a directory aggiuntive al di fuori della tua directory di lavoro principale. Per impostazione predefinita, i file CLAUDE.md da queste directory non vengono caricati.179Il flag `--add-dir` dà a Claude accesso a directory aggiuntive al di fuori della tua directory di lavoro principale. Per impostazione predefinita, i file CLAUDE.md da queste directory non vengono caricati.

160 180 


166 186 

167Questo carica `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md` e `CLAUDE.local.md` dalla directory aggiuntiva. `CLAUDE.local.md` viene saltato se escludi `local` da [`--setting-sources`](/it/cli-reference).187Questo carica `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md` e `CLAUDE.local.md` dalla directory aggiuntiva. `CLAUDE.local.md` viene saltato se escludi `local` da [`--setting-sources`](/it/cli-reference).

168 188 

169### Organizza le regole con `.claude/rules/`189<h3 id="organize-rules-with-claude/rules/">

190 Organizza le regole con `.claude/rules/`

191</h3>

170 192 

171Per i progetti più grandi, puoi organizzare le istruzioni in più file usando la directory `.claude/rules/`. Questo mantiene le istruzioni modulari e più facili da mantenere per i team. Le regole possono anche essere [limitate a percorsi di file specifici](#path-specific-rules), quindi vengono caricate nel contesto solo quando Claude lavora con file corrispondenti, riducendo il rumore e risparmiando spazio di contesto.193Per i progetti più grandi, puoi organizzare le istruzioni in più file usando la directory `.claude/rules/`. Questo mantiene le istruzioni modulari e più facili da mantenere per i team. Le regole possono anche essere [limitate a percorsi di file specifici](#path-specific-rules), quindi vengono caricate nel contesto solo quando Claude lavora con file corrispondenti, riducendo il rumore e risparmiando spazio di contesto.

172 194 


174 Le regole vengono caricate nel contesto ogni sessione o quando vengono aperti file corrispondenti. Per le istruzioni specifiche dell'attività che non devono essere nel contesto tutto il tempo, usa [skills](/it/skills) invece, che vengono caricate solo quando le invochi o quando Claude determina che sono rilevanti per il tuo prompt.196 Le regole vengono caricate nel contesto ogni sessione o quando vengono aperti file corrispondenti. Per le istruzioni specifiche dell'attività che non devono essere nel contesto tutto il tempo, usa [skills](/it/skills) invece, che vengono caricate solo quando le invochi o quando Claude determina che sono rilevanti per il tuo prompt.

175</Note>197</Note>

176 198 

177#### Configura le regole199<h4 id="set-up-rules">

200 Configura le regole

201</h4>

178 202 

179Posiziona i file markdown nella directory `.claude/rules/` del tuo progetto. Ogni file dovrebbe coprire un argomento, con un nome file descrittivo come `testing.md` o `api-design.md`. Tutti i file `.md` vengono scoperti ricorsivamente, quindi puoi organizzare le regole in sottodirectory come `frontend/` o `backend/`:203Posiziona i file markdown nella directory `.claude/rules/` del tuo progetto. Ogni file dovrebbe coprire un argomento, con un nome file descrittivo come `testing.md` o `api-design.md`. Tutti i file `.md` vengono scoperti ricorsivamente, quindi puoi organizzare le regole in sottodirectory come `frontend/` o `backend/`:

180 204 


190 214 

191Le regole senza [frontmatter `paths`](#path-specific-rules) vengono caricate all'avvio con la stessa priorità di `.claude/CLAUDE.md`.215Le regole senza [frontmatter `paths`](#path-specific-rules) vengono caricate all'avvio con la stessa priorità di `.claude/CLAUDE.md`.

192 216 

193#### Regole specifiche del percorso217<h4 id="path-specific-rules">

218 Regole specifiche del percorso

219</h4>

194 220 

195Le regole possono essere limitate a file specifici usando il frontmatter YAML con il campo `paths`. Queste regole condizionali si applicano solo quando Claude lavora con file che corrispondono ai modelli specificati.221Le regole possono essere limitate a file specifici usando il frontmatter YAML con il campo `paths`. Queste regole condizionali si applicano solo quando Claude lavora con file che corrispondono ai modelli specificati.

196 222 


229---255---

230```256```

231 257 

232#### Condividi le regole tra i progetti con symlink258<h4 id="share-rules-across-projects-with-symlinks">

259 Condividi le regole tra i progetti con symlink

260</h4>

233 261 

234La directory `.claude/rules/` supporta symlink, quindi puoi mantenere un set di regole condivise e collegarle a più progetti. I symlink vengono risolti e caricati normalmente, e i symlink circolari vengono rilevati e gestiti correttamente.262La directory `.claude/rules/` supporta symlink, quindi puoi mantenere un set di regole condivise e collegarle a più progetti. I symlink vengono risolti e caricati normalmente, e i symlink circolari vengono rilevati e gestiti correttamente.

235 263 


240ln -s ~/company-standards/security.md .claude/rules/security.md268ln -s ~/company-standards/security.md .claude/rules/security.md

241```269```

242 270 

243#### Regole a livello di utente271<h4 id="user-level-rules">

272 Regole a livello di utente

273</h4>

244 274 

245Le regole personali in `~/.claude/rules/` si applicano a ogni progetto sulla tua macchina. Usale per le preferenze che non sono specifiche del progetto:275Le regole personali in `~/.claude/rules/` si applicano a ogni progetto sulla tua macchina. Usale per le preferenze che non sono specifiche del progetto:

246 276 


252 282 

253Le regole a livello di utente vengono caricate prima delle regole di progetto, dando alle regole di progetto una priorità più alta.283Le regole a livello di utente vengono caricate prima delle regole di progetto, dando alle regole di progetto una priorità più alta.

254 284 

255### Gestisci CLAUDE.md per team di grandi dimensioni285<h3 id="manage-claude-md-for-large-teams">

286 Gestisci CLAUDE.md per team di grandi dimensioni

287</h3>

256 288 

257Per le organizzazioni che distribuiscono Claude Code tra i team, puoi centralizzare le istruzioni e controllare quali file CLAUDE.md vengono caricati.289Per le organizzazioni che distribuiscono Claude Code tra i team, puoi centralizzare le istruzioni e controllare quali file CLAUDE.md vengono caricati.

258 290 

259#### Distribuisci CLAUDE.md a livello di organizzazione291<h4 id="deploy-organization-wide-claude-md">

292 Distribuisci CLAUDE.md a livello di organizzazione

293</h4>

260 294 

261Le organizzazioni possono distribuire un CLAUDE.md gestito centralmente che si applica a tutti gli utenti su una macchina. Questo file non può essere escluso dalle impostazioni individuali.295Le organizzazioni possono distribuire un CLAUDE.md gestito centralmente che si applica a tutti gli utenti su una macchina. Questo file non può essere escluso dalle impostazioni individuali.

262 296 


302 336 

303Le regole delle impostazioni vengono applicate dal client indipendentemente da ciò che Claude decide di fare. Le istruzioni CLAUDE.md modellano il comportamento di Claude ma non sono un livello di applicazione rigido.337Le regole delle impostazioni vengono applicate dal client indipendentemente da ciò che Claude decide di fare. Le istruzioni CLAUDE.md modellano il comportamento di Claude ma non sono un livello di applicazione rigido.

304 338 

305#### Escludi file CLAUDE.md specifici339<h4 id="exclude-specific-claude-md-files">

340 Escludi file CLAUDE.md specifici

341</h4>

306 342 

307Nei grandi monorepo, i file CLAUDE.md antenati possono contenere istruzioni che non sono rilevanti per il tuo lavoro. L'impostazione `claudeMdExcludes` ti consente di saltare file specifici per percorso o modello glob.343Nei grandi monorepo, i file CLAUDE.md antenati possono contenere istruzioni che non sono rilevanti per il tuo lavoro. L'impostazione `claudeMdExcludes` ti consente di saltare file specifici per percorso o modello glob.

308 344 


321 357 

322I file CLAUDE.md della politica gestita non possono essere esclusi. Ciò garantisce che le istruzioni a livello di organizzazione si applichino sempre indipendentemente dalle impostazioni individuali.358I file CLAUDE.md della politica gestita non possono essere esclusi. Ciò garantisce che le istruzioni a livello di organizzazione si applichino sempre indipendentemente dalle impostazioni individuali.

323 359 

324## Memoria automatica360<h2 id="auto-memory">

361 Memoria automatica

362</h2>

325 363 

326La memoria automatica consente a Claude di accumulare conoscenze tra le sessioni senza che tu scriva nulla. Claude salva note per se stesso mentre lavora: comandi di compilazione, approfondimenti sul debug, note sull'architettura, preferenze di stile del codice e abitudini di flusso di lavoro. Claude non salva qualcosa ogni sessione. Decide cosa vale la pena ricordare in base al fatto che l'informazione sarebbe utile in una conversazione futura.364La memoria automatica consente a Claude di accumulare conoscenze tra le sessioni senza che tu scriva nulla. Claude salva note per se stesso mentre lavora: comandi di compilazione, approfondimenti sul debug, note sull'architettura, preferenze di stile del codice e abitudini di flusso di lavoro. Claude non salva qualcosa ogni sessione. Decide cosa vale la pena ricordare in base al fatto che l'informazione sarebbe utile in una conversazione futura.

327 365 


329 La memoria automatica richiede Claude Code v2.1.59 o successivo. Controlla la tua versione con `claude --version`.367 La memoria automatica richiede Claude Code v2.1.59 o successivo. Controlla la tua versione con `claude --version`.

330</Note>368</Note>

331 369 

332### Abilita o disabilita la memoria automatica370<h3 id="enable-or-disable-auto-memory">

371 Abilita o disabilita la memoria automatica

372</h3>

333 373 

334La memoria automatica è attivata per impostazione predefinita. Per attivarla/disattivarla, apri `/memory` in una sessione e usa l'interruttore di memoria automatica, oppure imposta `autoMemoryEnabled` nelle impostazioni del tuo progetto:374La memoria automatica è attivata per impostazione predefinita. Per attivarla/disattivarla, apri `/memory` in una sessione e usa l'interruttore di memoria automatica, oppure imposta `autoMemoryEnabled` nelle impostazioni del tuo progetto:

335 375 


341 381 

342Per disabilitare la memoria automatica tramite variabile di ambiente, imposta `CLAUDE_CODE_DISABLE_AUTO_MEMORY=1`.382Per disabilitare la memoria automatica tramite variabile di ambiente, imposta `CLAUDE_CODE_DISABLE_AUTO_MEMORY=1`.

343 383 

344### Posizione di archiviazione384<h3 id="storage-location">

385 Posizione di archiviazione

386</h3>

345 387 

346Ogni progetto ottiene la propria directory di memoria in `~/.claude/projects/<project>/memory/`. Il percorso `<project>` è derivato dal repository git, quindi tutti i worktrees e le sottodirectory all'interno dello stesso repo condividono una directory di memoria automatica. Al di fuori di un repository git, viene utilizzata la radice del progetto.388Ogni progetto ottiene la propria directory di memoria in `~/.claude/projects/<project>/memory/`. Il percorso `<project>` è derivato dal repository git, quindi tutti i worktrees e le sottodirectory all'interno dello stesso repo condividono una directory di memoria automatica. Al di fuori di un repository git, viene utilizzata la radice del progetto.

347 389 


369 411 

370La memoria automatica è locale alla macchina. Tutti i worktrees e le sottodirectory all'interno dello stesso repository git condividono una directory di memoria automatica. I file non vengono condivisi tra macchine o ambienti cloud.412La memoria automatica è locale alla macchina. Tutti i worktrees e le sottodirectory all'interno dello stesso repository git condividono una directory di memoria automatica. I file non vengono condivisi tra macchine o ambienti cloud.

371 413 

372### Come funziona414<h3 id="how-it-works">

415 Come funziona

416</h3>

373 417 

374Le prime 200 righe di `MEMORY.md`, o i primi 25KB, a seconda di quale viene raggiunto per primo, vengono caricate all'inizio di ogni conversazione. Il contenuto oltre quella soglia non viene caricato all'inizio della sessione. Claude mantiene `MEMORY.md` conciso spostando le note dettagliate in file di argomento separati.418Le prime 200 righe di `MEMORY.md`, o i primi 25KB, a seconda di quale viene raggiunto per primo, vengono caricate all'inizio di ogni conversazione. Il contenuto oltre quella soglia non viene caricato all'inizio della sessione. Claude mantiene `MEMORY.md` conciso spostando le note dettagliate in file di argomento separati.

375 419 


379 423 

380Claude legge e scrive file di memoria durante la tua sessione. Quando vedi "Writing memory" o "Recalled memory" nell'interfaccia di Claude Code, Claude sta attivamente aggiornando o leggendo da `~/.claude/projects/<project>/memory/`.424Claude legge e scrive file di memoria durante la tua sessione. Quando vedi "Writing memory" o "Recalled memory" nell'interfaccia di Claude Code, Claude sta attivamente aggiornando o leggendo da `~/.claude/projects/<project>/memory/`.

381 425 

382### Controlla e modifica la tua memoria426<h3 id="audit-and-edit-your-memory">

427 Controlla e modifica la tua memoria

428</h3>

383 429 

384I file di memoria automatica sono markdown semplice che puoi modificare o eliminare in qualsiasi momento. Esegui [`/memory`](#view-and-edit-with-memory) per sfogliare e aprire i file di memoria da una sessione.430I file di memoria automatica sono markdown semplice che puoi modificare o eliminare in qualsiasi momento. Esegui [`/memory`](#view-and-edit-with-%2Fmemory) per sfogliare e aprire i file di memoria da una sessione.

385 431 

386## Visualizza e modifica con `/memory`432<h2 id="view-and-edit-with-/memory">

433 Visualizza e modifica con `/memory`

434</h2>

387 435 

388Il comando `/memory` elenca tutti i file CLAUDE.md, CLAUDE.local.md e rules caricati nella tua sessione corrente, ti consente di attivare o disattivare la memoria automatica e fornisce un collegamento per aprire la cartella di memoria automatica. Seleziona qualsiasi file per aprirlo nel tuo editor.436Il comando `/memory` elenca tutti i file CLAUDE.md, CLAUDE.local.md e rules caricati nella tua sessione corrente, ti consente di attivare o disattivare la memoria automatica e fornisce un collegamento per aprire la cartella di memoria automatica. Seleziona qualsiasi file per aprirlo nel tuo editor.

389 437 

390Quando chiedi a Claude di ricordare qualcosa, come "usa sempre pnpm, non npm" o "ricorda che i test API richiedono un'istanza Redis locale", Claude lo salva nella memoria automatica. Per aggiungere istruzioni a CLAUDE.md, chiedi direttamente a Claude, come "aggiungi questo a CLAUDE.md", oppure modifica il file tu stesso tramite `/memory`.438Quando chiedi a Claude di ricordare qualcosa, come "usa sempre pnpm, non npm" o "ricorda che i test API richiedono un'istanza Redis locale", Claude lo salva nella memoria automatica. Per aggiungere istruzioni a CLAUDE.md, chiedi direttamente a Claude, come "aggiungi questo a CLAUDE.md", oppure modifica il file tu stesso tramite `/memory`.

391 439 

392## Risolvi i problemi di memoria440<h2 id="troubleshoot-memory-issues">

441 Risolvi i problemi di memoria

442</h2>

393 443 

394Questi sono i problemi più comuni con CLAUDE.md e la memoria automatica, insieme ai passaggi per risolverli.444Questi sono i problemi più comuni con CLAUDE.md e la memoria automatica, insieme ai passaggi per risolverli.

395 445 

396### Claude non sta seguendo il mio CLAUDE.md446<h3 id="claude-isn’t-following-my-claude-md">

447 Claude non sta seguendo il mio CLAUDE.md

448</h3>

397 449 

398Il contenuto di CLAUDE.md viene consegnato come messaggio utente dopo il prompt di sistema, non come parte del prompt di sistema stesso. Claude lo legge e cerca di seguirlo, ma non c'è garanzia di conformità rigorosa, specialmente per istruzioni vaghe o conflittuali.450Il contenuto di CLAUDE.md viene consegnato come messaggio utente dopo il prompt di sistema, non come parte del prompt di sistema stesso. Claude lo legge e cerca di seguirlo, ma non c'è garanzia di conformità rigorosa, specialmente per istruzioni vaghe o conflittuali.

399 451 


412 Usa l'hook [`InstructionsLoaded`](/it/hooks#instructionsloaded) per registrare esattamente quali file di istruzioni vengono caricati, quando vengono caricati e perché. Questo è utile per eseguire il debug di regole specifiche del percorso o file caricati pigriamente nelle sottodirectory.464 Usa l'hook [`InstructionsLoaded`](/it/hooks#instructionsloaded) per registrare esattamente quali file di istruzioni vengono caricati, quando vengono caricati e perché. Questo è utile per eseguire il debug di regole specifiche del percorso o file caricati pigriamente nelle sottodirectory.

413</Tip>465</Tip>

414 466 

415### Non so cosa ha salvato la memoria automatica467<h3 id="i-don’t-know-what-auto-memory-saved">

468 Non so cosa ha salvato la memoria automatica

469</h3>

416 470 

417Esegui `/memory` e seleziona la cartella di memoria automatica per sfogliare ciò che Claude ha salvato. Tutto è markdown semplice che puoi leggere, modificare o eliminare.471Esegui `/memory` e seleziona la cartella di memoria automatica per sfogliare ciò che Claude ha salvato. Tutto è markdown semplice che puoi leggere, modificare o eliminare.

418 472 

419### Il mio CLAUDE.md è troppo grande473<h3 id="my-claude-md-is-too-large">

474 Il mio CLAUDE.md è troppo grande

475</h3>

420 476 

421I file con più di 200 righe consumano più contesto e possono ridurre l'aderenza. Usa [regole con ambito di percorso](#path-specific-rules) per caricare istruzioni solo quando Claude lavora con file corrispondenti, oppure riduci il contenuto che non è necessario in ogni sessione. La divisione in [importazioni `@path`](#import-additional-files) aiuta l'organizzazione ma non riduce il contesto, poiché i file importati vengono caricati all'avvio.477I file con più di 200 righe consumano più contesto e possono ridurre l'aderenza. Usa [regole con ambito di percorso](#path-specific-rules) per caricare istruzioni solo quando Claude lavora con file corrispondenti, oppure riduci il contenuto che non è necessario in ogni sessione. La divisione in [importazioni `@path`](#import-additional-files) aiuta l'organizzazione ma non riduce il contesto, poiché i file importati vengono caricati all'avvio.

422 478 

423### Le istruzioni sembrano perse dopo `/compact`479<h3 id="instructions-seem-lost-after-/compact">

480 Le istruzioni sembrano perse dopo `/compact`

481</h3>

424 482 

425CLAUDE.md di progetto sopravvive alla compattazione: dopo `/compact`, Claude rilegge il tuo CLAUDE.md dal disco e lo reinetta nella sessione. I file CLAUDE.md annidati nelle sottodirectory non vengono reinettati automaticamente; vengono ricaricati la prossima volta che Claude legge un file in quella sottodirectory.483CLAUDE.md di progetto sopravvive alla compattazione: dopo `/compact`, Claude rilegge il tuo CLAUDE.md dal disco e lo reinetta nella sessione. I file CLAUDE.md annidati nelle sottodirectory non vengono reinettati automaticamente; vengono ricaricati la prossima volta che Claude legge un file in quella sottodirectory.

426 484 


428 486 

429Vedi [Scrivi istruzioni efficaci](#write-effective-instructions) per una guida su dimensione, struttura e specificità.487Vedi [Scrivi istruzioni efficaci](#write-effective-instructions) per una guida su dimensione, struttura e specificità.

430 488 

431## Risorse correlate489<h2 id="related-resources">

490 Risorse correlate

491</h2>

432 492 

433* [Esegui il debug della tua configurazione](/it/debug-your-config): diagnostica perché CLAUDE.md o le impostazioni non hanno effetto493* [Esegui il debug della tua configurazione](/it/debug-your-config): diagnostica perché CLAUDE.md o le impostazioni non hanno effetto

434* [Skills](/it/skills): pacchetto di flussi di lavoro ripetibili che si caricano su richiesta494* [Skills](/it/skills): pacchetto di flussi di lavoro ripetibili che si caricano su richiesta

Details

6 6 

7> Scopri come configurare Claude Code tramite Microsoft Foundry, inclusi setup, configurazione e risoluzione dei problemi.7> Scopri come configurare Claude Code tramite Microsoft Foundry, inclusi setup, configurazione e risoluzione dei problemi.

8 8 

9export const ContactSalesCard = ({surface}) => {

10 const utm = content => `utm_source=claude_code&utm_medium=docs&utm_content=${surface}_${content}`;

11 const iconArrowRight = (size = 13) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">

12 <line x1="5" y1="12" x2="19" y2="12" />

13 <polyline points="12 5 19 12 12 19" />

14 </svg>;

15 const STYLES = `

16.cc-cs {

17 --cs-slate: #141413;

18 --cs-clay: #d97757;

19 --cs-clay-deep: #c6613f;

20 --cs-gray-000: #ffffff;

21 --cs-gray-700: #3d3d3a;

22 --cs-border-default: rgba(31, 30, 29, 0.15);

23 font-family: inherit;

24}

25.dark .cc-cs {

26 --cs-slate: #f0eee6;

27 --cs-gray-000: #262624;

28 --cs-gray-700: #bfbdb4;

29 --cs-border-default: rgba(240, 238, 230, 0.14);

30}

31.cc-cs-card {

32 display: flex; align-items: center; justify-content: space-between;

33 gap: 16px; padding: 14px 16px; margin: 0;

34 background: var(--cs-gray-000); border: 0.5px solid var(--cs-border-default);

35 border-radius: 8px; flex-wrap: wrap;

36}

37.cc-cs-text { font-size: 13px; color: var(--cs-gray-700); line-height: 1.5; flex: 1; min-width: 240px; }

38.cc-cs-text strong { font-weight: 550; color: var(--cs-slate); }

39.cc-cs-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

40.cc-cs-btn-clay {

41 display: inline-flex; align-items: center; gap: 8px;

42 background: var(--cs-clay-deep); color: #fff; border: none;

43 border-radius: 8px; padding: 8px 14px;

44 font-size: 13px; font-weight: 500;

45 transition: background-color 0.15s; white-space: nowrap;

46}

47.cc-cs-btn-clay:hover { background: var(--cs-clay); }

48.cc-cs-btn-ghost {

49 display: inline-flex; align-items: center; gap: 8px;

50 background: transparent; color: var(--cs-gray-700);

51 border: 0.5px solid var(--cs-border-default);

52 border-radius: 8px; padding: 8px 14px;

53 font-size: 13px; font-weight: 500;

54}

55.cc-cs-btn-ghost:hover { background: rgba(0, 0, 0, 0.04); }

56.dark .cc-cs-btn-ghost:hover { background: rgba(255, 255, 255, 0.04); }

57@media (max-width: 720px) {

58 .cc-cs-actions { width: 100%; }

59}

60`;

61 return <div className="cc-cs not-prose">

62 <style>{STYLES}</style>

63 <div className="cc-cs-card">

64 <div className="cc-cs-text">

65 <strong>Deploying Claude Code across your organization?</strong> Talk to sales about enterprise plans, SSO, and centralized billing.

66 </div>

67 <div className="cc-cs-actions">

68 <a href={`https://claude.com/pricing?${utm('view_plans')}#plans-business`} className="cc-cs-btn-ghost">

69 View plans

70 </a>

71 <a href={`https://claude.com/contact-sales?${utm('contact_sales')}`} className="cc-cs-btn-clay">

72 Contact sales {iconArrowRight()}

73 </a>

74 </div>

75 </div>

76 </div>;

77};

78 

79<ContactSalesCard surface="foundry" />

80 

9<h2 id="prerequisites">81<h2 id="prerequisites">

10 Prerequisiti82 Prerequisiti

11</h2>83</h2>


17* Azure CLI installato e configurato (facoltativo - necessario solo se non hai un altro meccanismo per ottenere le credenziali)89* Azure CLI installato e configurato (facoltativo - necessario solo se non hai un altro meccanismo per ottenere le credenziali)

18 90 

19<Note>91<Note>

20 Se stai distribuendo Claude Code a più utenti, [fissa le versioni del tuo modello](#4-pin-model-versions) per evitare problemi quando Anthropic rilascia nuovi modelli.92 Se stai distribuendo Claude Code a più utenti, [fissa le versioni del tuo modello](#4-pin-model-versions) prima di implementare.

21</Note>93</Note>

22 94 

23<h2 id="setup">95<h2 id="setup">


25</h2>97</h2>

26 98 

27<h3 id="1-provision-microsoft-foundry-resource">99<h3 id="1-provision-microsoft-foundry-resource">

28 1. Provisioning della risorsa Microsoft Foundry100 1. Provision Microsoft Foundry resource

29</h3>101</h3>

30 102 

31Per prima cosa, crea una risorsa Claude in Azure:103Per prima cosa, crea una risorsa Claude in Azure:


38 * Claude Haiku110 * Claude Haiku

39 111 

40<h3 id="2-configure-azure-credentials">112<h3 id="2-configure-azure-credentials">

41 2) Configurare le credenziali Azure113 2) Configure Azure credentials

42</h3>114</h3>

43 115 

44Claude Code supporta due metodi di autenticazione per Microsoft Foundry. Scegli il metodo che meglio si adatta ai tuoi requisiti di sicurezza.116Claude Code supporta due metodi di autenticazione per Microsoft Foundry. Scegli il metodo che meglio si adatta ai tuoi requisiti di sicurezza.

45 117 

46**Opzione A: Autenticazione tramite chiave API**118**Option A: API key authentication**

47 119 

481. Accedi alla tua risorsa nel portale Microsoft Foundry1201. Accedi alla tua risorsa nel portale Microsoft Foundry

492. Vai alla sezione **Endpoint e chiavi**1212. Vai alla sezione **Endpoints and keys**

503. Copia **Chiave API**1223. Copia **API Key**

514. Imposta la variabile di ambiente:1234. Imposta la variabile di ambiente:

52 124 

53```bash theme={null}125```bash theme={null}

54export ANTHROPIC_FOUNDRY_API_KEY=your-azure-api-key126export ANTHROPIC_FOUNDRY_API_KEY=your-azure-api-key

55```127```

56 128 

57**Opzione B: Autenticazione Microsoft Entra ID**129**Option B: Microsoft Entra ID authentication**

58 130 

59Quando `ANTHROPIC_FOUNDRY_API_KEY` non è impostato, Claude Code utilizza automaticamente la [catena di credenziali predefinita](https://learn.microsoft.com/en-us/azure/developer/javascript/sdk/authentication/credential-chains#defaultazurecredential-overview) di Azure SDK.131Quando `ANTHROPIC_FOUNDRY_API_KEY` non è impostato, Claude Code utilizza automaticamente la [catena di credenziali predefinita](https://learn.microsoft.com/en-us/azure/developer/javascript/sdk/authentication/credential-chains#defaultazurecredential-overview) di Azure SDK.

60Questo supporta una varietà di metodi per autenticare carichi di lavoro locali e remoti.132Questo supporta una varietà di metodi per autenticare carichi di lavoro locali e remoti.


70</Note>142</Note>

71 143 

72<h3 id="3-configure-claude-code">144<h3 id="3-configure-claude-code">

73 3. Configurare Claude Code145 3. Configure Claude Code

74</h3>146</h3>

75 147 

76Imposta le seguenti variabili di ambiente per abilitare Microsoft Foundry:148Imposta le seguenti variabili di ambiente per abilitare Microsoft Foundry:

77 149 

78```bash theme={null}150```bash theme={null}

79# Abilita l'integrazione Microsoft Foundry151# Enable Microsoft Foundry integration

80export CLAUDE_CODE_USE_FOUNDRY=1152export CLAUDE_CODE_USE_FOUNDRY=1

81 153 

82# Nome della risorsa Azure (sostituisci {resource} con il nome della tua risorsa)154# Azure resource name (replace {resource} with your resource name)

83export ANTHROPIC_FOUNDRY_RESOURCE={resource}155export ANTHROPIC_FOUNDRY_RESOURCE={resource}

84# Oppure fornisci l'URL di base completo:156# Or provide the full base URL:

85# export ANTHROPIC_FOUNDRY_BASE_URL=https://{resource}.services.ai.azure.com/anthropic157# export ANTHROPIC_FOUNDRY_BASE_URL=https://{resource}.services.ai.azure.com/anthropic

86```158```

87 159 

88<h3 id="4-pin-model-versions">160<h3 id="4-pin-model-versions">

89 4. Fissa le versioni del modello161 4. Pin model versions

90</h3>162</h3>

91 163 

92<Warning>164<Warning>

93 Fissa versioni specifiche del modello per ogni distribuzione. Se utilizzi alias di modello (`sonnet`, `opus`, `haiku`) senza fissare, Claude Code potrebbe tentare di utilizzare una versione di modello più recente che non è disponibile nel tuo account Foundry, interrompendo gli utenti esistenti quando Anthropic rilascia aggiornamenti. Quando crei distribuzioni Azure, seleziona una versione di modello specifica piuttosto che "aggiornamento automatico alla versione più recente".165 Fissa versioni specifiche del modello per ogni distribuzione. Senza fissare, gli alias di modello come `sonnet` e `opus` si risolvono nel valore predefinito integrato di Claude Code per Foundry, che può essere in ritardo rispetto alla versione più recente e potrebbe non essere ancora disponibile nel tuo account. Foundry non ha un controllo del modello all'avvio, quindi le richieste non riescono quando il valore predefinito non è disponibile. Quando crei distribuzioni Azure, seleziona una versione di modello specifica piuttosto che "aggiornamento automatico alla versione più recente".

94</Warning>166</Warning>

95 167 

96Imposta le variabili del modello in modo che corrispondano ai nomi di distribuzione che hai creato nel passaggio 1.168Imposta le variabili del modello in modo che corrispondano ai nomi di distribuzione che hai creato nel passaggio 1.


105 177 

106I compiti in background come la generazione del titolo della sessione utilizzano il modello piccolo/veloce, normalmente un modello della classe Haiku. Su Foundry, Claude Code utilizza per impostazione predefinita il modello primario perché non tutti gli account hanno una distribuzione Haiku. Per utilizzare Haiku per i compiti in background, imposta `ANTHROPIC_DEFAULT_HAIKU_MODEL` su una distribuzione Haiku disponibile nel tuo account, come mostrato sopra.178I compiti in background come la generazione del titolo della sessione utilizzano il modello piccolo/veloce, normalmente un modello della classe Haiku. Su Foundry, Claude Code utilizza per impostazione predefinita il modello primario perché non tutti gli account hanno una distribuzione Haiku. Per utilizzare Haiku per i compiti in background, imposta `ANTHROPIC_DEFAULT_HAIKU_MODEL` su una distribuzione Haiku disponibile nel tuo account, come mostrato sopra.

107 179 

108Per gli ID dei modelli attuali e legacy, vedi [Panoramica dei modelli](https://platform.claude.com/docs/en/about-claude/models/overview). Vedi [Configurazione del modello](/it/model-config#pin-models-for-third-party-deployments) per l'elenco completo delle variabili di ambiente.180Per gli ID dei modelli attuali e legacy, vedi [Models overview](https://platform.claude.com/docs/en/about-claude/models/overview). Vedi [Model configuration](/it/model-config#pin-models-for-third-party-deployments) per l'elenco completo delle variabili di ambiente.

109 181 

110[Prompt caching](/it/prompt-caching) è abilitato automaticamente. Per richiedere un TTL della cache di 1 ora invece del valore predefinito di 5 minuti, imposta la seguente variabile; le scritture della cache con un TTL di 1 ora vengono fatturate a una tariffa più elevata:182[Prompt caching](/it/prompt-caching) è abilitato automaticamente. Per richiedere un TTL della cache di 1 ora invece del valore predefinito di 5 minuti, imposta la seguente variabile; le scritture della cache con un TTL di 1 ora vengono fatturate a una tariffa più elevata:

111 183 


114```186```

115 187 

116<h3 id="5-run-claude-code">188<h3 id="5-run-claude-code">

117 5. Esegui Claude Code189 5. Run Claude Code

118</h3>190</h3>

119 191 

120Con le variabili di ambiente impostate, avvia Claude Code dalla directory del tuo progetto:192Con le variabili di ambiente impostate, avvia Claude Code dalla directory del tuo progetto:

model-config.md +162 −40

Details

32| Alias del modello | Comportamento |32| Alias del modello | Comportamento |

33| ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |33| ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

34| **`default`** | Valore speciale che cancella qualsiasi override del modello e ripristina il modello consigliato per il tipo di account. Non è di per sé un alias del modello |34| **`default`** | Valore speciale che cancella qualsiasi override del modello e ripristina il modello consigliato per il tipo di account. Non è di per sé un alias del modello |

35| **`best`** | Utilizza il modello più capace disponibile, attualmente equivalente a `opus` |35| **`best`** | Utilizza Fable 5 dove la vostra organizzazione ha accesso, altrimenti il modello Opus più recente |

36| **`fable`** | Utilizza Claude Fable 5 per i vostri compiti più difficili e di lunga durata |

36| **`sonnet`** | Utilizza il modello Sonnet più recente per le attività di codifica quotidiane |37| **`sonnet`** | Utilizza il modello Sonnet più recente per le attività di codifica quotidiane |

37| **`opus`** | Utilizza il modello Opus più recente per attività di ragionamento complesso |38| **`opus`** | Utilizza il modello Opus più recente per attività di ragionamento complesso |

38| **`haiku`** | Utilizza il modello Haiku veloce ed efficiente per attività semplici |39| **`haiku`** | Utilizza il modello Haiku veloce ed efficiente per attività semplici |


48 Opus 4.8 richiede Claude Code v2.1.154 o successivo. Eseguire `claude update` per aggiornare.49 Opus 4.8 richiede Claude Code v2.1.154 o successivo. Eseguire `claude update` per aggiornare.

49</Note>50</Note>

50 51 

52<h3 id="work-with-fable-5">

53 Lavorare con Fable 5

54</h3>

55 

56[Claude Fable 5](https://platform.claude.com/docs/it/about-claude/models/introducing-claude-fable-5-and-claude-mythos-5) è il modello più capace in Claude Code, adatto a compiti più grandi di una singola sessione. Sostiene lunghe sessioni autonome, indaga prima di agire e verifica il suo lavoro più spesso rispetto ai modelli più piccoli.

57 

58Fable 5 non è il modello predefinito. Selezionatelo con `/model fable`. Le richieste che i suoi classificatori di sicurezza contrassegnano, il più delle volte nei domini della sicurezza informatica e della biologia, attivano il [fallback automatico del modello](#automatic-model-fallback).

59 

60Per ottenere il massimo da Fable 5:

61 

62* **Descrivete il risultato, non i passaggi**: dategli il risultato che desiderate e lasciate che pianifichi il percorso. Per mantenerlo al lavoro fino a quando quel risultato non si verifica, [impostate un obiettivo](/it/goal).

63* **Dategli problemi ambigui**: le indagini sulla causa principale, il debug dei disservizi e le decisioni architettoniche sono dove l'indagine e la verifica aggiuntive ripagano.

64* **Saltate i promemoria di verifica**: verifica il suo lavoro con meno sollecitazioni, quindi i promemoria per testare o controllare sono solitamente non necessari.

65* **Dimensionate compiti più grandi**: dategli lavoro che normalmente dividereste in pezzi. Sostiene lunghe sessioni senza perdere il filo.

66 

67<Note>

68 Fable 5 richiede Claude Code v2.1.170 o successivo. Le versioni precedenti non mostrano Fable 5 nel selettore di modelli e non possono selezionarlo. Eseguire `claude update` per aggiornare. Fable 5 non è disponibile con [zero data retention](/it/zero-data-retention), dove il selettore `/model` lo omette o lo mostra disabilitato.

69</Note>

70 

51<h3 id="setting-your-model">71<h3 id="setting-your-model">

52 Impostazione del modello72 Impostazione del modello

53</h3>73</h3>


101 121 

102Gli amministratori aziendali possono utilizzare `availableModels` nelle [impostazioni gestite o di policy](/it/settings#settings-files) per limitare quali modelli gli utenti possono selezionare.122Gli amministratori aziendali possono utilizzare `availableModels` nelle [impostazioni gestite o di policy](/it/settings#settings-files) per limitare quali modelli gli utenti possono selezionare.

103 123 

104Quando `availableModels` è impostato, gli utenti non possono passare a modelli non presenti nell'elenco tramite `/model`, il flag `--model`, o la variabile di ambiente `ANTHROPIC_MODEL`.124Quando `availableModels` è impostato, l'elenco di autorizzazione si applica ovunque un utente possa specificare un modello:

125 

126* **Modello della sessione principale**: `/model`, il flag `--model` e la variabile di ambiente `ANTHROPIC_MODEL`

127* **Risoluzione alias**: {/* min-version: 2.1.176 */}le variabili di ambiente `ANTHROPIC_DEFAULT_OPUS_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL` e `ANTHROPIC_DEFAULT_FABLE_MODEL` non possono reindirizzare un alias consentito a un modello al di fuori dell'elenco

128* **Modalità veloce**: {/* min-version: 2.1.176 */}`/fast` rifiuta di attivare/disattivare quando comporterebbe un passaggio implicito a un modello Opus al di fuori dell'elenco, con il messaggio "is not in your organization's allowed models"

129* **Modelli dei subagent**: il campo `model` nel [frontmatter del subagent](/it/sub-agents#choose-a-model), il parametro `model` dello strumento Agent, il selettore di modelli in `/agents` e `CLAUDE_CODE_SUBAGENT_MODEL`

130* **Modello Advisor**: l'impostazione [`advisorModel`](/it/advisor) configurata

131* **Catene di fallback**: gli elementi di una [catena di modelli di fallback](#fallback-model-chains) al di fuori dell'elenco vengono eliminati

132 

133Il passaggio a un modello bloccato con `/model` viene rifiutato con un errore, mentre un flag `--model` bloccato o un valore `ANTHROPIC_MODEL` viene sostituito all'avvio con un avviso che nomina sia i modelli richiesti che quelli sostituiti, e la sessione inizia sul modello predefinito. Un override di subagent o advisor bloccato ritorna al modello ereditato o predefinito piuttosto che non riuscire nella richiesta.

105 134 

106```json theme={null}135```json theme={null}

107{136{


113 Comportamento del modello predefinito142 Comportamento del modello predefinito

114</h3>143</h3>

115 144 

116L'opzione Predefinito nel selettore di modelli non è interessata da `availableModels`. Rimane sempre disponibile e rappresenta il valore predefinito di runtime del sistema [in base al livello di sottoscrizione dell'utente](#default-model-setting).145Per impostazione predefinita, l'opzione Predefinito nel selettore di modelli non è interessata da `availableModels`. Rimane disponibile e rappresenta il valore predefinito di runtime del sistema [in base al livello di sottoscrizione dell'utente](#default-model-setting).

117 146 

118Anche con `availableModels: []`, gli utenti possono comunque utilizzare Claude Code con il modello Predefinito per il loro livello.147Per estendere l'elenco di autorizzazione all'opzione Predefinito, impostare `enforceAvailableModels` su `true` nelle impostazioni gestite o di policy insieme a un elenco `availableModels` non vuoto. Quando il valore predefinito del livello non è nell'elenco di autorizzazione, Predefinito si risolve nella prima voce consentita invece del valore predefinito del livello. Questo richiede Claude Code v2.1.175 o successivo.

148 

149Un array `availableModels` vuoto non attiva mai l'applicazione. Anche con `availableModels: []`, gli utenti possono comunque utilizzare Claude Code con il modello Predefinito per il loro livello indipendentemente da `enforceAvailableModels`.

119 150 

120<h3 id="control-the-model-users-run-on">151<h3 id="control-the-model-users-run-on">

121 Controllare il modello su cui gli utenti eseguono152 Controllare il modello su cui gli utenti eseguono


123 154 

124L'impostazione `model` è una selezione iniziale, non un'applicazione. Imposta quale modello è attivo quando una sessione inizia, ma gli utenti possono comunque aprire `/model` e scegliere Predefinito, che si risolve nel valore predefinito del sistema per il loro livello indipendentemente da ciò che `model` è impostato.155L'impostazione `model` è una selezione iniziale, non un'applicazione. Imposta quale modello è attivo quando una sessione inizia, ma gli utenti possono comunque aprire `/model` e scegliere Predefinito, che si risolve nel valore predefinito del sistema per il loro livello indipendentemente da ciò che `model` è impostato.

125 156 

126Per controllare completamente l'esperienza del modello, combinare tre impostazioni:157Per controllare completamente l'esperienza del modello, combinare queste impostazioni:

127 158 

128* **`availableModels`**: limita a quali modelli denominati gli utenti possono passare159* **`availableModels`**: limita a quali modelli denominati gli utenti possono passare

160* **`enforceAvailableModels`**: estende l'elenco di autorizzazione `availableModels` all'opzione Predefinito, quindi Predefinito non può risolversi a un modello al di fuori dell'elenco

129* **`model`**: imposta la selezione del modello iniziale quando una sessione inizia161* **`model`**: imposta la selezione del modello iniziale quando una sessione inizia

130* **`ANTHROPIC_DEFAULT_SONNET_MODEL`** / **`ANTHROPIC_DEFAULT_OPUS_MODEL`** / **`ANTHROPIC_DEFAULT_HAIKU_MODEL`**: controllano a cosa si risolvono l'opzione Predefinito e gli alias `sonnet`, `opus` e `haiku`162* **`ANTHROPIC_DEFAULT_SONNET_MODEL`** / **`ANTHROPIC_DEFAULT_OPUS_MODEL`** / **`ANTHROPIC_DEFAULT_HAIKU_MODEL`** / **`ANTHROPIC_DEFAULT_FABLE_MODEL`**: controllano a cosa si risolvono l'opzione Predefinito e gli alias `sonnet`, `opus`, `haiku` e `fable`

131 163 

132Questo esempio avvia gli utenti su Sonnet 4.5, limita il selettore a Sonnet e Haiku, e fissa Predefinito per risolversi a Sonnet 4.5 piuttosto che alla versione più recente:164Questo esempio avvia gli utenti su Sonnet 4.5, limita il selettore a Sonnet e Haiku, e assicura che Predefinito si risolva a un modello nell'elenco di autorizzazione piuttosto che al valore predefinito del livello:

133 165 

134```json theme={null}166```json theme={null}

135{167{

136 "model": "claude-sonnet-4-5",168 "model": "claude-sonnet-4-5",

137 "availableModels": ["claude-sonnet-4-5", "haiku"],169 "availableModels": ["claude-sonnet-4-5", "haiku"],

170 "enforceAvailableModels": true,

138 "env": {171 "env": {

139 "ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-4-5"172 "ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-4-5"

140 }173 }

141}174}

142```175```

143 176 

144Senza il blocco `env`, un utente che seleziona Predefinito nel selettore otterrebbe la versione Sonnet più recente, bypassando il pin di versione in `model` e `availableModels`.177Senza `enforceAvailableModels` o il blocco `env`, un utente che seleziona Predefinito nel selettore otterrebbe la versione più recente per il suo livello, bypassando il pin di versione in `model` e `availableModels`. Le due impostazioni coprono ambiti diversi: `enforceAvailableModels` fa sì che Predefinito obbedisca all'elenco di autorizzazione, mentre il blocco `env` fissa quale versione un alias consentito come `sonnet` si risolve. Utilizzare `enforceAvailableModels` da solo quando limitare le famiglie di modelli è sufficiente; aggiungere il blocco `env` quando è necessario anche fissare una versione specifica.

145 178 

146<h3 id="merge-behavior">179<h3 id="merge-behavior">

147 Comportamento di unione180 Comportamento di unione

148</h3>181</h3>

149 182 

150Quando `availableModels` è impostato a più livelli, come nelle impostazioni utente e nelle impostazioni del progetto, gli array vengono uniti e deduplicati. Per applicare un elenco di autorizzazione rigoroso, impostare `availableModels` nelle impostazioni gestite o di policy che hanno la priorità più alta.183Quando `availableModels` è impostato nelle impostazioni utente, progetto e locali solamente, gli array vengono uniti e deduplicati su questi livelli.

184 

185Quando `availableModels` è impostato nelle impostazioni gestite o di policy, il valore gestito o di policy sostituisce completamente il risultato unito: le voci aggiunte nelle impostazioni utente o progetto non possono ampliarlo. Le impostazioni gestite e di policy sostituiscono i valori di precedenza inferiore per `enforceAvailableModels` allo stesso modo. A partire da Claude Code v2.1.175, questo è l'unico modo per applicare un elenco di autorizzazione rigoroso; le versioni precedenti uniscono l'elenco gestito con le voci di precedenza inferiore.

151 186 

152<h3 id="mantle-model-ids">187<h3 id="mantle-model-ids">

153 ID di modello Mantle188 ID di modello Mantle

154</h3>189</h3>

155 190 

156Quando l'[endpoint Bedrock Mantle](/it/amazon-bedrock#use-the-mantle-endpoint) è abilitato, le voci in `availableModels` che iniziano con `anthropic.` vengono aggiunte al selettore `/model` come opzioni personalizzate e instradate all'endpoint Mantle. Questa è un'eccezione alla corrispondenza solo alias descritta in [Fissare i modelli per distribuzioni di terze parti](#pin-models-for-third-party-deployments). L'impostazione limita comunque il selettore alle voci elencate, quindi includere gli alias standard insieme a qualsiasi ID Mantle.191Quando l'[endpoint Bedrock Mantle](/it/amazon-bedrock#use-the-mantle-endpoint) è abilitato, le voci in `availableModels` che iniziano con `anthropic.` vengono aggiunte al selettore `/model` come opzioni personalizzate e instradate all'endpoint Mantle. L'impostazione limita comunque il selettore alle voci elencate, quindi includere gli alias standard insieme a qualsiasi ID Mantle.

157 192 

158<h2 id="special-model-behavior">193<h2 id="special-model-behavior">

159 Comportamento speciale del modello194 Comportamento speciale del modello


172 207 

173Enterprise pay-as-you-go significa un'organizzazione Enterprise fatturata per utilizzo piuttosto che per posto di abbonamento.208Enterprise pay-as-you-go significa un'organizzazione Enterprise fatturata per utilizzo piuttosto che per posto di abbonamento.

174 209 

175Claude Code potrebbe eseguire automaticamente il fallback a Sonnet se si raggiunge una soglia di utilizzo con Opus.210Fable 5 non è il modello predefinito su alcun tipo di account. Le sessioni utilizzano Fable 5 solo dopo che lo scegliete, con `/model fable`, un'impostazione `model`, o l'alias `best` dove Fable 5 è disponibile. Sceglierlo con `/model` lo salva come modello selezionato nelle impostazioni utente, quindi le sessioni successive iniziano su Fable 5 fino a quando non cambiate modello.

176 211 

177<h3 id="opusplan-model-setting">212<h3 id="opusplan-model-setting">

178 Impostazione del modello `opusplan`213 Impostazione del modello `opusplan`


183* **In Plan Mode** - Utilizza `opus` per il ragionamento complesso e le decisioni architettoniche218* **In Plan Mode** - Utilizza `opus` per il ragionamento complesso e le decisioni architettoniche

184* **In modalità esecuzione** - Passa automaticamente a `sonnet` per la generazione di codice e l'implementazione219* **In modalità esecuzione** - Passa automaticamente a `sonnet` per la generazione di codice e l'implementazione

185 220 

186Questo ti dà il meglio di entrambi i mondi: il ragionamento superiore di Opus per la pianificazione e l'efficienza di Sonnet per l'esecuzione.221Questo vi dà il meglio di entrambi i mondi: il ragionamento superiore di Opus per la pianificazione e l'efficienza di Sonnet per l'esecuzione.

222 

223La fase Opus in Plan Mode utilizza la stessa finestra di contesto dell'impostazione del modello `opus`. Sui livelli di abbonamento in cui Opus viene [automaticamente aggiornato a contesto 1M](#extended-context), `opusplan` riceve l'aggiornamento anche in Plan Mode. Per forzare il contesto 1M per entrambe le fasi quando non siete su un livello di aggiornamento automatico, impostare il modello su `opusplan[1m]`.

224 

225Quando [`availableModels`](#restrict-model-selection) esclude Opus, `opusplan` rimane su Sonnet in Plan Mode invece di passare. Allo stesso modo, una sessione Haiku che normalmente si aggiornerebbe a Sonnet in Plan Mode rimane su Haiku quando Sonnet è escluso.

226 

227Per un approccio ibrido in cui Claude decide a metà attività quando consultare un secondo modello piuttosto che passare al confine del piano, vedere lo [strumento advisor](/it/advisor).

228 

229<h3 id="fallback-model-chains">

230 Catene di modelli di fallback

231</h3>

232 

233Quando il modello primario è sovraccarico, non disponibile o restituisce un altro errore del server non ripetibile, Claude Code può passare a un modello di fallback invece di non riuscire nella richiesta. Gli errori di autenticazione, fatturazione, limite di velocità, dimensione della richiesta e trasporto non attivano mai un passaggio; quelli seguono il loro normale retry e gestione degli errori.

234 

235Configurate uno o più modelli di fallback e Claude Code li prova in ordine, mostrando un avviso quando passa. Il passaggio dura solo il turno corrente, quindi il vostro prossimo messaggio prova prima il modello primario di nuovo. Le catene sono limitate a tre modelli dopo la rimozione dei duplicati e le voci extra vengono ignorate.

236 

237Impostare una catena per una sessione con il flag `--fallback-model`, che accetta un elenco separato da virgole:

238 

239```bash theme={null}

240claude --fallback-model sonnet,haiku

241```

242 

243Per mantenere una catena tra le sessioni, impostare `fallbackModel` in [impostazioni](/it/settings) come array:

244 

245```json theme={null}

246{

247 "fallbackModel": ["claude-sonnet-4-6", "claude-haiku-4-5"]

248}

249```

250 

251Il flag `--fallback-model` ha la precedenza sull'impostazione `fallbackModel`. Ogni elemento accetta un nome di modello o un alias, e `"default"` si espande al modello predefinito.

252 

253Due casi causano il salto di un elemento:

254 

255* **Modello non disponibile**: un modello che non può essere raggiunto, come un modello ritirato bloccato nelle impostazioni, viene saltato e Claude Code continua all'elemento successivo.

256* **Fuori dall'elenco consentito**: un elemento non consentito da [`availableModels`](#restrict-model-selection) viene eliminato quando la catena viene letta e non viene mai provato.

257 

258<h3 id="automatic-model-fallback">

259 Fallback automatico del modello

260</h3>

261 

262Questa sezione copre il fallback basato sul contenuto da Fable 5. Per il fallback basato sulla disponibilità quando un modello è sovraccarico o non disponibile, vedere [Catene di modelli di fallback](#fallback-model-chains).

263 

264Fable 5 viene eseguito con classificatori di sicurezza per il contenuto di sicurezza informatica e biologia. Quando un classificatore contrassegna una richiesta, Claude Code riesegue quella richiesta sul modello Opus predefinito e mostra un avviso nella trascrizione: Opus 4.8 su API Anthropic e distribuzioni [gateway LLM](/it/llm-gateway), oppure Opus 4.7 su [Claude Platform su AWS](/it/claude-platform-on-aws).

265 

266La sessione continua quindi su quel modello Opus. Per tornare a Fable 5, eseguire `/model fable`.

267 

268<h4 id="check-what-triggered-fallback">

269 Verificare cosa ha attivato il fallback

270</h4>

271 

272Il fallback può attivarsi sulla prima richiesta di una sessione, prima di inviare qualcosa di insolito, perché la prima richiesta contiene il contesto dell'area di lavoro come il contenuto di CLAUDE.md e lo stato di git. Un repository che contiene materiale di sicurezza o biologia può attivare il classificatore solo su quel contesto.

273 

274Per verificare se le personalizzazioni sono il trigger, avviare una sessione con `claude --safe-mode`, che disabilita le personalizzazioni come CLAUDE.md, skills, server MCP e hooks. Lo stato di git e i nomi delle directory non sono personalizzazioni e sono ancora inclusi.

187 275 

188La fase Opus in Plan Mode viene eseguita con la finestra di contesto standard di 200K. L'aggiornamento automatico 1M descritto in [Contesto esteso](#extended-context) si applica all'impostazione del modello `opus` e non si estende a `opusplan`.276<h4 id="ask-before-switching">

277 Chiedere prima di passare

278</h4>

279 

280Per decidere cosa accade ogni volta che una richiesta viene contrassegnata, piuttosto che passare automaticamente, eseguire `/config` e disattivare "switch models when a message is flagged". Una richiesta contrassegnata mette quindi in pausa la sessione con due opzioni: passare al modello Opus o modificare il prompt e riprovare su Fable 5.

281 

282Alcuni casi si comportano diversamente:

283 

284* Se entrambi i modelli contrassegnano la stessa richiesta, potete modificare il prompt e riprovare, o avviare una nuova sessione.

285* Su sessioni mobili [Claude Code sul web](/it/claude-code-on-the-web), la modifica e il nuovo tentativo non sono supportati. Passate i modelli o continuate la sessione da un browser desktop o dall'app desktop.

286* In [modalità non interattiva](/it/cli-reference#cli-flags) e integrazioni SDK che non possono mostrare il prompt, una richiesta contrassegnata termina il turno con un rifiuto.

287 

288<h4 id="enable-fallback-on-bedrock-vertex-ai-and-foundry">

289 Abilitare il fallback su Bedrock, Vertex AI e Foundry

290</h4>

291 

292Su [Amazon Bedrock](/it/amazon-bedrock), [Google Vertex AI](/it/google-vertex-ai) e [Microsoft Foundry](/it/microsoft-foundry), gli ID modello sono specifici del provider, quindi il fallback automatico funziona solo quando Claude Code può identificare entrambi i modelli coinvolti:

293 

294* Claude Code deve riconoscere il modello corrente come Fable 5: l'ID modello contiene `claude-fable-5`, corrisponde al valore di `ANTHROPIC_DEFAULT_FABLE_MODEL`, o è mappato con [`modelOverrides`](#override-model-ids-per-version).

295* Il target di fallback deve risolvere a un modello Opus: il valore di `ANTHROPIC_DEFAULT_OPUS_MODEL` se impostato, altrimenti una voce Opus 4.8 nell'elenco dei modelli del provider.

296 

297Se uno dei modelli non può essere identificato, Claude Code non passa automaticamente. La richiesta contrassegnata termina con un messaggio di rifiuto e potete passare i modelli con [`/model`](#setting-your-model) e riprovare. Per abilitare il fallback automatico su questi provider, impostare `ANTHROPIC_DEFAULT_FABLE_MODEL` al vostro ID modello Fable 5 e `ANTHROPIC_DEFAULT_OPUS_MODEL` al vostro ID modello Opus 4.8.

298 

299<h4 id="security-research-and-biology-workloads">

300 Carichi di lavoro di ricerca sulla sicurezza e biologia

301</h4>

302 

303I carichi di lavoro in sicurezza offensiva o biologia, inclusi test di penetrazione, esercizi Capture the Flag (CTF) e basi di codice adiacenti alla biologia, attivano il fallback frequentemente, spesso sulla prima richiesta. Per il lavoro sostanziale di biologia, aspettatevi che quasi tutte le richieste vengano reindirizzate.

304 

305Questo è il routing previsto per questi domini, non un flag di account. Se la vostra organizzazione ha bisogno di capacità di classe Fable per questo lavoro, chiedete al vostro team di account Anthropic riguardo ai programmi di accesso affidabile.

189 306 

190<h3 id="adjust-effort-level">307<h3 id="adjust-effort-level">

191 Regolare il livello di sforzo308 Regolare il livello di sforzo

192</h3>309</h3>

193 310 

194I [livelli di sforzo](https://platform.claude.com/docs/it/build-with-claude/effort) controllano il ragionamento adattivo, che consente al modello di decidere se e quanto pensare ad ogni passo in base alla complessità dell'attività. Lo sforzo inferiore è più veloce ed economico per attività semplici, mentre lo sforzo superiore fornisce un ragionamento più profondo per problemi complessi.311I [livelli di sforzo](https://platform.claude.com/docs/en/build-with-claude/effort) controllano il ragionamento adattivo, che consente al modello di decidere se e quanto pensare ad ogni passo in base alla complessità dell'attività. Lo sforzo inferiore è più veloce ed economico per attività semplici, mentre lo sforzo superiore fornisce un ragionamento più profondo per problemi complessi.

195 312 

196I livelli di sforzo disponibili dipendono dal modello. I modelli non elencati qui non supportano lo sforzo:313I livelli di sforzo disponibili dipendono dal modello. I modelli non elencati qui non supportano lo sforzo:

197 314 

198| Modello | Livelli |315| Modello | Livelli |

199| :-------------------- | :-------------------------------------- |316| :-------------------- | :-------------------------------------- |

317| Fable 5 | `low`, `medium`, `high`, `xhigh`, `max` |

200| Opus 4.8 e Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |318| Opus 4.8 e Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |

201| Opus 4.6 e Sonnet 4.6 | `low`, `medium`, `high`, `max` |319| Opus 4.6 e Sonnet 4.6 | `low`, `medium`, `high`, `max` |

202 320 

203Se imposti un livello che il modello attivo non supporta, Claude Code ricade al livello supportato più alto pari o inferiore a quello impostato. Ad esempio, `xhigh` viene eseguito come `high` su Opus 4.6.321Se impostate un livello che il modello attivo non supporta, Claude Code ricade al livello supportato più alto pari o inferiore a quello impostato. Ad esempio, `xhigh` viene eseguito come `high` su Opus 4.6.

204 322 

205Lo sforzo predefinito è `high` su Opus 4.8, Opus 4.6 e Sonnet 4.6, e `xhigh` su Opus 4.7.323Lo sforzo predefinito è `high` su Fable 5, Opus 4.8, Opus 4.6 e Sonnet 4.6, e `xhigh` su Opus 4.7.

206 324 

207Quando esegui Opus 4.8 o Opus 4.7 per la prima volta, Claude Code applica lo sforzo predefinito di quel modello anche se hai precedentemente impostato un livello diverso per un altro modello: `high` su Opus 4.8 e `xhigh` su Opus 4.7. Esegui `/effort` di nuovo per scegliere un livello diverso dopo il passaggio.325Quando eseguite Fable 5, Opus 4.8 o Opus 4.7 per la prima volta, Claude Code applica lo sforzo predefinito di quel modello anche se avete precedentemente impostato un livello diverso per un altro modello: `high` su Fable 5 e Opus 4.8, e `xhigh` su Opus 4.7. Eseguite `/effort` di nuovo per scegliere un livello diverso dopo il passaggio.

208 326 

209`low`, `medium`, `high` e `xhigh` persistono tra le sessioni. `max` fornisce il ragionamento più profondo senza vincoli sulla spesa di token e si applica solo alla sessione corrente, tranne quando impostato tramite la variabile di ambiente `CLAUDE_CODE_EFFORT_LEVEL`.327`low`, `medium`, `high` e `xhigh` persistono tra le sessioni. `max` fornisce il ragionamento più profondo senza vincoli sulla spesa di token e si applica solo alla sessione corrente, tranne quando impostato tramite la variabile di ambiente `CLAUDE_CODE_EFFORT_LEVEL`.

210 328 

211Il menu `/effort` offre anche `ultracode`. Ultracode è un'impostazione di Claude Code piuttosto che un livello di sforzo del modello: invia `xhigh` al modello e inoltre ha Claude orchestrare [flussi di lavoro dinamici](/it/workflows) per attività sostanziali. Si applica solo alla sessione corrente. Impostalo tramite `/effort`, o passa `"ultracode": true` tramite `--settings` o una richiesta di controllo Agent SDK. Non fa parte dell'impostazione `effortLevel`, del flag `--effort` o di `CLAUDE_CODE_EFFORT_LEVEL`.329Il menu `/effort` offre anche `ultracode`. Ultracode è un'impostazione di Claude Code piuttosto che un livello di sforzo del modello: invia `xhigh` al modello e inoltre ha Claude orchestrare [flussi di lavoro dinamici](/it/workflows) per attività sostanziali. Si applica solo alla sessione corrente. Impostatelo tramite `/effort`, o passate `"ultracode": true` tramite `--settings` o una richiesta di controllo Agent SDK. Non fa parte dell'impostazione `effortLevel`, del flag `--effort` o di `CLAUDE_CODE_EFFORT_LEVEL`.

212 330 

213<h4 id="choose-an-effort-level">331<h4 id="choose-an-effort-level">

214 Scegliere un livello di sforzo332 Scegliere un livello di sforzo

215</h4>333</h4>

216 334 

217Ogni livello scambia la spesa di token rispetto alla capacità. Il valore predefinito è adatto alla maggior parte delle attività di codifica; regola quando desideri un equilibrio diverso.335Ogni livello scambia la spesa di token rispetto alla capacità. Il valore predefinito è adatto alla maggior parte delle attività di codifica; regolate quando desiderate un equilibrio diverso.

218 336 

219| Livello | Quando utilizzarlo |337| Livello | Quando utilizzarlo |

220| :---------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |338| :---------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

221| `low` | Riservare per attività brevi, limitate e sensibili alla latenza che non sono sensibili all'intelligenza |339| `low` | Riservare per attività brevi, limitate e sensibili alla latenza che non sono sensibili all'intelligenza |

222| `medium` | Riduce l'utilizzo di token per il lavoro sensibile ai costi che può scambiare un po' di intelligenza |340| `medium` | Riduce l'utilizzo di token per il lavoro sensibile ai costi che può scambiare un po' di intelligenza |

223| `high` | Bilancia l'utilizzo di token e l'intelligenza. Valore predefinito su Opus 4.8, Opus 4.6 e Sonnet 4.6 |341| `high` | Bilancia l'utilizzo di token e l'intelligenza. Valore predefinito su Fable 5, Opus 4.8, Opus 4.6 e Sonnet 4.6 |

224| `xhigh` | Ragionamento più profondo con spesa di token più elevata. Valore predefinito su Opus 4.7 |342| `xhigh` | Ragionamento più profondo con spesa di token più elevata. Valore predefinito su Opus 4.7 |

225| `max` | Può migliorare le prestazioni su attività impegnative ma potrebbe mostrare rendimenti decrescenti ed è soggetto a pensiero eccessivo. Testare prima di adottare ampiamente |343| `max` | Può migliorare le prestazioni su attività impegnative ma potrebbe mostrare rendimenti decrescenti ed è soggetto a pensiero eccessivo. Testare prima di adottare ampiamente |

226| `ultracode` | Un'impostazione di Claude Code che pianifica un [flusso di lavoro dinamico](/it/workflows) per ogni attività sostanziale con ragionamento `xhigh` per messaggio. Solo sessione |344| `ultracode` | Un'impostazione di Claude Code che pianifica un [flusso di lavoro dinamico](/it/workflows) per ogni attività sostanziale con ragionamento `xhigh` per messaggio. Solo sessione |


231 Utilizzare ultrathink per il ragionamento profondo una tantum349 Utilizzare ultrathink per il ragionamento profondo una tantum

232</h4>350</h4>

233 351 

234Includi `ultrathink` in qualsiasi punto del prompt per richiedere un ragionamento più profondo su quel turno senza modificare l'impostazione dello sforzo della sessione. Claude Code riconosce la parola chiave e aggiunge un'istruzione in contesto. Il livello di sforzo inviato all'API rimane invariato. Altre frasi come "think", "think hard" e "think more" vengono passate come testo ordinario del prompt e non vengono riconosciute come parole chiave.352Includete `ultrathink` in qualsiasi punto del prompt per richiedere un ragionamento più profondo su quel turno senza modificare l'impostazione dello sforzo della sessione. Claude Code riconosce la parola chiave e aggiunge un'istruzione in contesto. Il livello di sforzo inviato all'API rimane invariato. Altre frasi come "think", "think hard" e "think more" vengono passate come testo ordinario del prompt e non vengono riconosciute come parole chiave.

235 353 

236<h4 id="set-the-effort-level">354<h4 id="set-the-effort-level">

237 Impostare il livello di sforzo355 Impostare il livello di sforzo

238</h4>356</h4>

239 357 

240È possibile modificare lo sforzo attraverso uno dei seguenti:358Potete modificare lo sforzo attraverso uno dei seguenti:

241 359 

242* **`/effort`**: eseguire `/effort` senza argomenti per aprire un cursore interattivo, `/effort` seguito da un nome di livello per impostarlo direttamente, o `/effort auto` per ripristinare il valore predefinito del modello360* **`/effort`**: eseguire `/effort` senza argomenti per aprire un cursore interattivo, `/effort` seguito da un nome di livello per impostarlo direttamente, o `/effort auto` per ripristinare il valore predefinito del modello

243* **In `/model`**: utilizzare i tasti freccia sinistra/destra per regolare il cursore dello sforzo quando si seleziona un modello361* **In `/model`**: utilizzare i tasti freccia sinistra/destra per regolare il cursore dello sforzo quando si seleziona un modello


254 Ragionamento adattivo e budget di pensiero fissi372 Ragionamento adattivo e budget di pensiero fissi

255</h4>373</h4>

256 374 

257Il ragionamento adattivo rende il pensiero facoltativo ad ogni passo, quindi Claude può rispondere più velocemente ai prompt di routine e riservare un pensiero più profondo per i passi che ne traggono vantaggio. Se desideri che Claude pensi più o meno spesso di quanto il livello corrente produce, puoi dirlo direttamente nel prompt o in `CLAUDE.md`; il modello risponde a quella guida entro l'impostazione dello sforzo.375Il ragionamento adattivo rende il pensiero facoltativo ad ogni passo, quindi Claude può rispondere più velocemente ai prompt di routine e riservare un pensiero più profondo per i passi che ne traggono vantaggio. Se desiderate che Claude pensi più o meno spesso di quanto il livello corrente produce, potete dirlo direttamente nel prompt o in `CLAUDE.md`; il modello risponde a quella guida entro l'impostazione dello sforzo.

258 376 

259Opus 4.7 e versioni successive utilizzano sempre il ragionamento adattivo. La modalità budget di pensiero fisso e `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` non si applicano ad essi.377Opus 4.7 e versioni successive utilizzano sempre il ragionamento adattivo, così come Fable 5. La modalità budget di pensiero fisso e `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` non si applicano ad essi.

260 378 

261Su Opus 4.6 e Sonnet 4.6, è possibile impostare `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` per ripristinare il budget di pensiero fisso precedente controllato da `MAX_THINKING_TOKENS`. Vedere [variabili di ambiente](/it/env-vars).379Su Opus 4.6 e Sonnet 4.6, potete impostare `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` per ripristinare il budget di pensiero fisso precedente controllato da `MAX_THINKING_TOKENS`. Vedere [variabili di ambiente](/it/env-vars).

262 380 

263<h3 id="extended-thinking">381<h3 id="extended-thinking">

264 Pensiero esteso382 Pensiero esteso


267Il pensiero esteso è il ragionamento che Claude emette prima di rispondere. Sui modelli che supportano il [ragionamento adattivo](#adjust-effort-level), il livello di sforzo è il controllo principale per la quantità di pensiero che si verifica; le impostazioni seguenti attivano o disattivano il pensiero e controllano come viene visualizzato.385Il pensiero esteso è il ragionamento che Claude emette prima di rispondere. Sui modelli che supportano il [ragionamento adattivo](#adjust-effort-level), il livello di sforzo è il controllo principale per la quantità di pensiero che si verifica; le impostazioni seguenti attivano o disattivano il pensiero e controllano come viene visualizzato.

268 386 

269| Controllo | Come impostarlo |387| Controllo | Come impostarlo |

270| :------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ |388| :------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

271| Attiva/disattiva per la sessione corrente | Premere `Option+T` su macOS o `Alt+T` su Windows e Linux |389| Attiva/disattiva per la sessione corrente | Premere `Option+T` su macOS o `Alt+T` su Windows e Linux |

272| Impostare il valore predefinito globale | Eseguire `/config` e attivare/disattivare la modalità di pensiero. Salvato come `alwaysThinkingEnabled` in `~/.claude/settings.json` |390| Impostare il valore predefinito globale | Eseguire `/config` e attivare/disattivare la modalità di pensiero. Salvato come `alwaysThinkingEnabled` in `~/.claude/settings.json` |

273| Disabilitare indipendentemente dallo sforzo | Impostare [`MAX_THINKING_TOKENS=0`](/it/env-vars). Altri valori si applicano solo con un [budget di pensiero fisso](#adaptive-reasoning-and-fixed-thinking-budgets) |391| Disabilitare indipendentemente dallo sforzo | Impostare [`MAX_THINKING_TOKENS=0`](/it/env-vars), che disattiva il pensiero su API Anthropic tranne su Fable 5. Su [provider di terze parti](/it/third-party-integrations) questo omette il parametro `thinking` invece, 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) |

392 

393Il pensiero non può essere disattivato su Fable 5. L'attivazione/disattivazione della sessione, `alwaysThinkingEnabled` e `MAX_THINKING_TOKENS=0` non hanno effetto lì, e Fable 5 decide per ogni passo quanto pensare in base al livello di sforzo.

274 394 

275L'output del pensiero è compresso per impostazione predefinita. Premere `Ctrl+O` per attivare/disattivare la modalità dettagliata e visualizzare il ragionamento come testo grigio in corsivo. Le sessioni interattive sull'API Anthropic ricevono blocchi di pensiero redatti per impostazione predefinita, quindi impostare `showThinkingSummaries: true` nelle [impostazioni](/it/settings) se desideri che i riepiloghi completi siano disponibili quando li espandi. Viene addebitato il costo di tutti i token di pensiero generati, anche quando compressi o redatti.395L'output del pensiero è compresso per impostazione predefinita. Premere `Ctrl+O` per attivare/disattivare la modalità dettagliata e visualizzare il ragionamento come testo grigio in corsivo. Le sessioni interattive su API Anthropic ricevono blocchi di pensiero redatti per impostazione predefinita, quindi impostare `showThinkingSummaries: true` nelle [impostazioni](/it/settings) se desiderate che i riepiloghi completi siano disponibili quando li espandete. Viene addebitato il costo di tutti i token di pensiero generati, anche quando compressi o redatti.

276 396 

277<h3 id="extended-context">397<h3 id="extended-context">

278 Contesto esteso398 Contesto esteso

279</h3>399</h3>

280 400 

281Opus 4.6 e versioni successive, e Sonnet 4.6, supportano una [finestra di contesto di 1 milione di token](https://platform.claude.com/docs/it/build-with-claude/context-windows#1m-token-context-window) per sessioni lunghe con basi di codice di grandi dimensioni.401Fable 5, Opus 4.6 e versioni successive, e Sonnet 4.6 supportano una [finestra di contesto di 1 milione di token](https://platform.claude.com/docs/en/build-with-claude/context-windows#1m-token-context-window) per sessioni lunghe con basi di codice di grandi dimensioni.

282 402 

283La disponibilità varia in base al modello e al piano. Nei piani Max, Team ed Enterprise, Opus viene automaticamente aggiornato al contesto 1M senza configurazione aggiuntiva. Questo si applica sia ai posti Team Standard che Team Premium. Sonnet con contesto 1M non fa parte dell'aggiornamento automatico e richiede [crediti di utilizzo](https://support.claude.com/it/articles/12429409-extra-usage-for-paid-claude-plans) su ogni piano di abbonamento, incluso Max.403La disponibilità varia in base al modello e al piano. Nei piani Max, Team ed Enterprise, Opus viene automaticamente aggiornato al contesto 1M senza configurazione aggiuntiva. Questo si applica sia ai posti Team Standard che Team Premium. Su API Anthropic, Fable 5, Opus 4.8 e Opus 4.7 vengono sempre eseguiti con la finestra 1M. Sonnet con contesto 1M non fa parte dell'aggiornamento automatico e richiede [crediti di utilizzo](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) su ogni piano di abbonamento, incluso Max.

284 404 

285| Piano | Opus con contesto 1M | Sonnet con contesto 1M |405| Piano | Opus con contesto 1M | Sonnet con contesto 1M |

286| ---------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |406| ---------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |

287| Max, Team ed Enterprise | Incluso nell'abbonamento | Richiede [crediti di utilizzo](https://support.claude.com/it/articles/12429409-extra-usage-for-paid-claude-plans) |407| Max, Team ed Enterprise | Incluso nell'abbonamento | Richiede [crediti di utilizzo](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |

288| Pro | Richiede [crediti di utilizzo](https://support.claude.com/it/articles/12429409-extra-usage-for-paid-claude-plans) | Richiede [crediti di utilizzo](https://support.claude.com/it/articles/12429409-extra-usage-for-paid-claude-plans) |408| Pro | Richiede [crediti di utilizzo](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) | Richiede [crediti di utilizzo](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |

289| API e pagamento in base al consumo | Accesso completo | Accesso completo |409| API e pagamento in base al consumo | Accesso completo | Accesso completo |

290 410 

291Per disabilitare completamente il contesto 1M, impostare `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`. Questo rimuove le varianti di modello 1M dal selettore di modelli. Vedere [variabili di ambiente](/it/env-vars).411Per disabilitare completamente il contesto 1M, impostare `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`. Questo rimuove le varianti di modello 1M dal selettore di modelli. Vedere [variabili di ambiente](/it/env-vars).

292 412 

293La 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 nell'abbonamento, l'utilizzo rimane coperto dall'abbonamento. Per i piani che accedono al contesto esteso tramite crediti di utilizzo, i token vengono fatturati ai crediti di utilizzo.413La 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 nell'abbonamento, l'utilizzo rimane coperto dall'abbonamento. Per i piani che accedono al contesto esteso tramite crediti di utilizzo, i token vengono fatturati ai crediti di utilizzo.

294 414 

295Se l'account supporta il contesto 1M, l'opzione appare nel selettore di modelli (`/model`) nelle versioni più recenti di Claude Code. Se non la vedi, prova a riavviare la sessione.415Se l'account supporta il contesto 1M, l'opzione appare nel selettore di modelli (`/model`) nelle versioni più recenti di Claude Code. Se non la vedete, provate a riavviare la sessione.

296 416 

297È anche possibile utilizzare il suffisso `[1m]` con alias di modelli o nomi di modelli completi:417Potete anche utilizzare il suffisso `[1m]` con alias di modelli o nomi di modelli completi:

298 418 

299```bash theme={null}419```bash theme={null}

300# Utilizzare l'alias opus[1m] o sonnet[1m]420# Utilizzare l'alias opus[1m] o sonnet[1m]


340 460 

341| Variabile di ambiente | Descrizione |461| Variabile di ambiente | Descrizione |

342| -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |462| -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

463| `ANTHROPIC_DEFAULT_FABLE_MODEL` | Il modello da utilizzare per `fable`, e l'ID del modello che Claude Code riconosce come Fable 5 per il [fallback automatico del modello](#automatic-model-fallback) su provider di terze parti |

343| `ANTHROPIC_DEFAULT_OPUS_MODEL` | Il modello da utilizzare per `opus`, o per `opusplan` quando Plan Mode è attivo. |464| `ANTHROPIC_DEFAULT_OPUS_MODEL` | Il modello da utilizzare per `opus`, o per `opusplan` quando Plan Mode è attivo. |

344| `ANTHROPIC_DEFAULT_SONNET_MODEL` | Il modello da utilizzare per `sonnet`, o per `opusplan` quando Plan Mode non è attivo. |465| `ANTHROPIC_DEFAULT_SONNET_MODEL` | Il modello da utilizzare per `sonnet`, o per `opusplan` quando Plan Mode non è attivo. |

345| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | Il modello da utilizzare per `haiku`, o [funzionalità in background](/it/costs#background-token-usage) |466| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | Il modello da utilizzare per `haiku`, o [funzionalità in background](/it/costs#background-token-usage) |


353 474 

354Quando si distribuisce Claude Code tramite [Bedrock](/it/amazon-bedrock), [Vertex AI](/it/google-vertex-ai), [Foundry](/it/microsoft-foundry), o [Claude Platform on AWS](/it/claude-platform-on-aws), fissare le versioni dei modelli prima di distribuire agli utenti.475Quando si distribuisce Claude Code tramite [Bedrock](/it/amazon-bedrock), [Vertex AI](/it/google-vertex-ai), [Foundry](/it/microsoft-foundry), o [Claude Platform on AWS](/it/claude-platform-on-aws), fissare le versioni dei modelli prima di distribuire agli utenti.

355 476 

356Senza fissaggio, Claude Code utilizza alias di modelli (`sonnet`, `opus`, `haiku`) che si risolvono nella versione più recente. Quando Anthropic rilascia un nuovo modello che non è ancora abilitato nell'account di un utente, gli utenti Bedrock e Vertex AI vedono un avviso e ricadono nella versione precedente per quella sessione, mentre gli utenti Foundry vedono errori perché Foundry non ha alcun controllo di avvio equivalente.477Senza fissaggio, Claude Code utilizza alias di modelli come `fable`, `opus`, `sonnet` e `haiku` che si risolvono in un ID di modello predefinito incorporato per ogni provider. Tale impostazione predefinita può rimanere indietro rispetto alla versione più recente di Anthropic, e il modello a cui punta potrebbe non essere ancora abilitato nell'account di un utente. Quando l'impostazione predefinita non è disponibile, gli utenti Bedrock e Vertex AI vedono un avviso e ricadono nella versione precedente per quella sessione, mentre gli utenti Foundry vedono errori perché Foundry non ha alcun controllo di avvio equivalente.

357 478 

358<Warning>479<Warning>

359 Impostare tutte e tre le variabili di ambiente del modello su ID di versione specifici come parte della configurazione iniziale. Il fissaggio consente di controllare quando i vostri utenti passano a un nuovo modello.480 Impostare le variabili di ambiente del modello su ID di versione specifici come parte della configurazione iniziale. Il fissaggio consente di controllare quando i vostri utenti passano a un nuovo modello.

360</Warning>481</Warning>

361 482 

362Utilizzare le seguenti variabili di ambiente con ID di modello specifici della versione per il provider:483Utilizzare le seguenti variabili di ambiente con ID di modello specifici della versione per il provider:


367| Vertex AI | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'` |488| Vertex AI | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'` |

368| Foundry | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'` |489| Foundry | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'` |

369 490 

370Applicare lo stesso modello per `ANTHROPIC_DEFAULT_SONNET_MODEL` e `ANTHROPIC_DEFAULT_HAIKU_MODEL`. Per gli ID di modello attuali e legacy su tutti i provider, vedere [Panoramica dei modelli](https://platform.claude.com/docs/en/about-claude/models/overview). Per aggiornare gli utenti a una nuova versione del modello, aggiornare queste variabili di ambiente e ridistribuire.491Applicare lo stesso modello per `ANTHROPIC_DEFAULT_FABLE_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL` e `ANTHROPIC_DEFAULT_HAIKU_MODEL`. Per gli ID di modello attuali e legacy su tutti i provider, vedere [Panoramica dei modelli](https://platform.claude.com/docs/en/about-claude/models/overview). Per aggiornare gli utenti a una nuova versione del modello, aggiornare queste variabili di ambiente e ridistribuire.

371 492 

372Per abilitare il [contesto esteso](#extended-context) per un modello fissato, aggiungere `[1m]` all'ID del modello in `ANTHROPIC_DEFAULT_OPUS_MODEL` o `ANTHROPIC_DEFAULT_SONNET_MODEL`:493Per abilitare il [contesto esteso](#extended-context) per un modello fissato, aggiungere `[1m]` all'ID del modello in `ANTHROPIC_DEFAULT_OPUS_MODEL` o `ANTHROPIC_DEFAULT_SONNET_MODEL`:

373 494 


375export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8[1m]'496export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8[1m]'

376```497```

377 498 

378Il suffisso `[1m]` applica la finestra di contesto 1M a tutto l'utilizzo degli alias `opus` e `sonnet`. Non estende la fase Opus in modalità piano di `opusplan`, che [rimane limitata a 200K](#opusplan-model-setting).499Il suffisso `[1m]` applica la finestra di contesto 1M a tutto l'utilizzo degli alias `opus` e `sonnet`, inclusa la fase Opus in modalità piano di [`opusplan`](#opusplan-model-setting).

379 500 

380* Claude Code rimuove il suffisso prima di inviare l'ID del modello al provider.501* Claude Code rimuove il suffisso prima di inviare l'ID del modello al provider.

381* Aggiungere `[1m]` solo quando il modello sottostante [supporta il contesto 1M](https://platform.claude.com/docs/en/build-with-claude/context-windows#1m-token-context-window).502* Aggiungere `[1m]` solo quando il modello sottostante [supporta il contesto 1M](https://platform.claude.com/docs/en/build-with-claude/context-windows#1m-token-context-window).

382* Il suffisso viene letto per variabile, non per modello. Su Bedrock, Vertex e 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.503* Il suffisso viene letto per variabile, non per modello. Su Bedrock, Vertex e 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.

383 504 

384<Note>505<Note>

385 L'elenco di autorizzazione `settings.availableModels` si applica comunque quando si utilizzano provider di terze parti. Il filtraggio corrisponde all'alias del modello (`opus`, `sonnet`, `haiku`), non all'ID del modello specifico del provider.506 L'elenco di autorizzazione `settings.availableModels` si applica comunque quando si utilizzano provider di terze parti. Il filtraggio corrisponde all'alias del modello come `opus`, al prefisso della versione come `claude-opus-4-8`, o all'ID del modello completo. Qualsiasi suffisso `[1m]` viene rimosso sia dalla voce dell'elenco di autorizzazione che dal modello richiesto prima della corrispondenza, quindi una voce di `claude-opus-4-8` consente sia le righe Opus standard che quelle con contesto 1M. I prefissi specifici del provider come `us.anthropic.` non vengono rimossi: elencare la stessa forma in `availableModels` che il selettore mostra, o mapparla tramite [`modelOverrides`](#override-model-ids-per-version).

386</Note>507</Note>

387 508 

388<h3 id="customize-pinned-model-display-and-capabilities">509<h3 id="customize-pinned-model-display-and-capabilities">


399| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | Descrizione di visualizzazione per il modello Opus fissato nel selettore `/model`. Per impostazione predefinita `Custom Opus model` quando non impostato |520| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | Descrizione di visualizzazione per il modello Opus fissato nel selettore `/model`. Per impostazione predefinita `Custom Opus model` quando non impostato |

400| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | Elenco separato da virgole delle capacità che il modello Opus fissato supporta |521| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | Elenco separato da virgole delle capacità che il modello Opus fissato supporta |

401 522 

402Gli stessi suffissi `_NAME`, `_DESCRIPTION` e `_SUPPORTED_CAPABILITIES` sono disponibili per `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL` e `ANTHROPIC_CUSTOM_MODEL_OPTION`.523Gli stessi suffissi `_NAME`, `_DESCRIPTION` e `_SUPPORTED_CAPABILITIES` sono disponibili per `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL`, `ANTHROPIC_DEFAULT_FABLE_MODEL` e `ANTHROPIC_CUSTOM_MODEL_OPTION`.

403 524 

404Claude Code abilita funzionalità come [livelli di sforzo](#adjust-effort-level) e [extended thinking](#extended-thinking) abbinando l'ID del modello rispetto a modelli noti. Gli ID specifici del provider come ARN Bedrock o nomi di distribuzione personalizzati spesso non corrispondono a questi modelli, lasciando le funzionalità supportate disabilitate. Impostare `_SUPPORTED_CAPABILITIES` per dire a Claude Code quali funzionalità il modello effettivamente supporta:525Claude Code abilita funzionalità come [livelli di sforzo](#adjust-effort-level) e [extended thinking](#extended-thinking) abbinando l'ID del modello rispetto a modelli noti. Gli ID specifici del provider come ARN Bedrock o nomi di distribuzione personalizzati spesso non corrispondono a questi modelli, lasciando le funzionalità supportate disabilitate. Impostare `_SUPPORTED_CAPABILITIES` per dire a Claude Code quali funzionalità il modello effettivamente supporta:

405 526 


463| `DISABLE_PROMPT_CACHING_HAIKU` | Impostare su `1` per disabilitare la prompt caching solo per i modelli Haiku |584| `DISABLE_PROMPT_CACHING_HAIKU` | Impostare su `1` per disabilitare la prompt caching solo per i modelli Haiku |

464| `DISABLE_PROMPT_CACHING_SONNET` | Impostare su `1` per disabilitare la prompt caching solo per i modelli Sonnet |585| `DISABLE_PROMPT_CACHING_SONNET` | Impostare su `1` per disabilitare la prompt caching solo per i modelli Sonnet |

465| `DISABLE_PROMPT_CACHING_OPUS` | Impostare su `1` per disabilitare la prompt caching solo per i modelli Opus |586| `DISABLE_PROMPT_CACHING_OPUS` | Impostare su `1` per disabilitare la prompt caching solo per i modelli Opus |

587| `DISABLE_PROMPT_CACHING_FABLE` | Impostare su `1` per disabilitare la prompt caching solo per i modelli Fable |

466 588 

467Per modificare il TTL della cache o scoprire cosa attiva un cache miss, vedere [Come Claude Code utilizza la prompt caching](/it/prompt-caching).589Per modificare il TTL della cache o scoprire cosa attiva un cache miss, vedere [Come Claude Code utilizza la prompt caching](/it/prompt-caching).

Details

221**`claude_code.tool`**221**`claude_code.tool`**

222 222 

223| Attributo | Descrizione | Controllato da |223| Attributo | Descrizione | Controllato da |

224| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------ | ----------------------- |224| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |

225| `tool_name` | Nome dello strumento | |225| `tool_name` | Nome dello strumento | |

226| `duration_ms` | Durata wall-clock inclusa l'attesa di autorizzazione e l'esecuzione | |226| `duration_ms` | Durata wall-clock inclusa l'attesa di autorizzazione e l'esecuzione | |

227| `result_tokens` | Dimensione approssimativa in token del risultato dello strumento | |227| `result_tokens` | Dimensione approssimativa in token del risultato dello strumento | |

228| `agent_id` | Identificatore del subagent o del collega che ha eseguito lo strumento. Assente nella sessione principale | |228| `agent_id` | Identificatore del subagent o del collega che ha eseguito lo strumento. Assente nella sessione principale | |

229| `parent_agent_id` | Identificatore dell'agente che ha generato questo. Assente per la sessione principale e per gli agenti generati direttamente da essa | |229| `parent_agent_id` | Identificatore dell'agente che ha generato questo. Assente per la sessione principale e per gli agenti generati direttamente da essa | |

230| `tool_use_id` | L'ID del blocco `tool_use` del modello per questa chiamata. Corrisponde al `tool_use_id` sugli eventi [tool\_result](#tool-result-event) e [tool\_decision](#tool-decision-event) e nei payload degli hook, in modo da poter unire lo span a questi record | |

231| `gen_ai.tool.call.id` | Stesso valore di `tool_use_id`. Convenzione semantica OpenTelemetry GenAI | |

230| `file_path` | Percorso del file di destinazione per gli strumenti Read, Edit e Write | `OTEL_LOG_TOOL_DETAILS` |232| `file_path` | Percorso del file di destinazione per gli strumenti Read, Edit e Write | `OTEL_LOG_TOOL_DETAILS` |

231| `full_command` | Stringa di comando per lo strumento Bash | `OTEL_LOG_TOOL_DETAILS` |233| `full_command` | Stringa di comando per lo strumento Bash | `OTEL_LOG_TOOL_DETAILS` |

232| `skill_name` | Nome della skill per lo strumento Skill | `OTEL_LOG_TOOL_DETAILS` |234| `skill_name` | Nome della skill per lo strumento Skill | `OTEL_LOG_TOOL_DETAILS` |


245**`claude_code.tool.execution`**247**`claude_code.tool.execution`**

246 248 

247| Attributo | Descrizione | Controllato da |249| Attributo | Descrizione | Controllato da |

248| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |250| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |

249| `duration_ms` | Tempo trascorso nell'esecuzione del corpo dello strumento | |251| `duration_ms` | Tempo trascorso nell'esecuzione del corpo dello strumento | |

252| `tool_use_id` | Stesso valore dello span genitore `claude_code.tool` | |

253| `gen_ai.tool.call.id` | Stesso valore di `tool_use_id`. Convenzione semantica OpenTelemetry GenAI | |

250| `success` | `true` o `false` | |254| `success` | `true` o `false` | |

251| `error` | Stringa di categoria di errore quando l'esecuzione non è riuscita, come `Error:ENOENT` o `ShellError`. Contiene il messaggio di errore completo quando il gate è impostato | `OTEL_LOG_TOOL_DETAILS` |255| `error` | Stringa di categoria di errore quando l'esecuzione non è riuscita, come `Error:ENOENT` o `ShellError`. Contiene il messaggio di errore completo quando il gate è impostato | `OTEL_LOG_TOOL_DETAILS` |

252 256 


423Tutte le metriche e gli eventi condividono questi attributi standard:427Tutte le metriche e gli eventi condividono questi attributi standard:

424 428 

425| Attributo | Descrizione | Controllato da |429| Attributo | Descrizione | Controllato da |

426| ------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |430| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |

427| `session.id` | Identificatore di sessione univoco | `OTEL_METRICS_INCLUDE_SESSION_ID` (predefinito: true) |431| `session.id` | Identificatore di sessione univoco | `OTEL_METRICS_INCLUDE_SESSION_ID` (predefinito: true) |

428| `app.version` | Versione corrente di Claude Code | `OTEL_METRICS_INCLUDE_VERSION` (predefinito: false) |432| `app.version` | Versione corrente di Claude Code | `OTEL_METRICS_INCLUDE_VERSION` (predefinito: false) |

429| `app.entrypoint` | Come la sessione è stata avviata, come `cli`, `sdk-cli`, `sdk-ts`, `sdk-py`, o `claude-vscode` | `OTEL_METRICS_INCLUDE_ENTRYPOINT` (predefinito: false) |433| `app.entrypoint` | Come la sessione è stata avviata, come `cli`, `sdk-cli`, `sdk-ts`, `sdk-py`, o `claude-vscode` | `OTEL_METRICS_INCLUDE_ENTRYPOINT` (predefinito: false) |

430| `organization.id` | UUID dell'organizzazione (quando autenticato) | Sempre incluso quando disponibile |434| `organization.id` | UUID dell'organizzazione (quando autenticato) | Sempre incluso quando disponibile |

431| `user.account_uuid` | UUID dell'account (quando autenticato) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (predefinito: true) |435| `user.account_uuid` | UUID dell'account (quando autenticato) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (predefinito: true) |

432| `user.account_id` | ID dell'account in formato taggato corrispondente alle API di amministrazione Anthropic (quando autenticato), come `user_01BWBeN28...` | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (predefinito: true) |436| `user.account_id` | ID dell'account in formato taggato corrispondente alle API di amministrazione Anthropic (quando autenticato), come `user_01BWBeN28...` | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (predefinito: true) |

433| `user.id` | Identificatore anonimo del dispositivo/installazione, generato per ogni installazione di Claude Code | Sempre incluso |437| `user.id` | Identificatore anonimo casuale generato al primo avvio e persistente in `~/.claude.json`. Non contiene informazioni personali e non è derivato dal tuo account Claude. L'eliminazione del file produce un nuovo valore non correlato al prossimo avvio. | Sempre incluso |

434| `user.email` | Indirizzo email dell'utente (quando autenticato tramite OAuth) | Sempre incluso quando disponibile |438| `user.email` | Indirizzo email dell'utente (quando autenticato tramite OAuth) | Sempre incluso quando disponibile |

435| `terminal.type` | Tipo di terminale, come `iTerm.app`, `vscode`, `cursor`, o `tmux` | Sempre incluso quando rilevato |439| `terminal.type` | Tipo di terminale, come `iTerm.app`, `vscode`, `cursor`, o `tmux` | Sempre incluso quando rilevato |

436| Chiavi da `OTEL_RESOURCE_ATTRIBUTES` | Attributi personalizzati che imposti, come `department` o `team.id`. Vedi [Supporto per organizzazioni multi-team](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` (predefinito: true) |440| Chiavi da `OTEL_RESOURCE_ATTRIBUTES` | Attributi personalizzati che imposti, come `department` o `team.id`. Vedi [Supporto per organizzazioni multi-team](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` (predefinito: true) |


484 488 

485* Tutti gli [attributi standard](#standard-attributes)489* Tutti gli [attributi standard](#standard-attributes)

486* `type`: (`"added"`, `"removed"`)490* `type`: (`"added"`, `"removed"`)

491* `model`: Identificatore del modello per il modello che ha effettuato la modifica (ad esempio, "claude-sonnet-4-6"). {/* min-version: 2.1.172 */}Richiede Claude Code v2.1.172 o successivo

487 492 

488<h4 id="pull-request-counter">493<h4 id="pull-request-counter">

489 Contatore di pull request494 Contatore di pull request


692* `effort`: [Livello di sforzo](/it/model-config#adjust-effort-level) applicato alla richiesta. Assente quando il modello non supporta lo sforzo.697* `effort`: [Livello di sforzo](/it/model-config#adjust-effort-level) applicato alla richiesta. Assente quando il modello non supporta lo sforzo.

693* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: Attribuzione di skill, plugin, agente e MCP per la richiesta. Vedi [Contatore di costo](#cost-counter) per le definizioni e il comportamento di redazione.698* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: Attribuzione di skill, plugin, agente e MCP per la richiesta. Vedi [Contatore di costo](#cost-counter) per le definizioni e il comportamento di redazione.

694 699 

700<h4 id="api-refusal-event">

701 Evento di rifiuto API

702</h4>

703 

704Registrato quando una richiesta API restituisce `stop_reason: "refusal"`. I rifiuti arrivano su un flusso di risposta riuscito piuttosto che come errore HTTP, quindi l'evento `api_error` non si attiva per loro. Questo evento ti consente di tracciare la frequenza dei rifiuti.

705 

706**Nome evento**: `claude_code.api_refusal`

707 

708**Attributi**:

709 

710* Tutti gli [attributi standard](#standard-attributes)

711* `event.name`: `"api_refusal"`

712* `event.timestamp`: Timestamp ISO 8601

713* `event.sequence`: Contatore monotonicamente crescente per ordinare gli eventi all'interno di una sessione

714* `model`: Identificatore del modello dalla richiesta

715* `request_id`: ID della richiesta API Anthropic dall'intestazione `request-id` della risposta, come `"req_011..."`. Presente solo quando l'API ne restituisce uno.

716 

695<h4 id="api-request-body-event">717<h4 id="api-request-body-event">

696 Evento di corpo della richiesta API718 Evento di corpo della richiesta API

697</h4>719</h4>


823* `server_scope`: Ambito in cui il server è configurato, come `"user"`, `"project"`, o `"local"`845* `server_scope`: Ambito in cui il server è configurato, come `"user"`, `"project"`, o `"local"`

824* `duration_ms`: Durata del tentativo di connessione in millisecondi846* `duration_ms`: Durata del tentativo di connessione in millisecondi

825* `error_code`: Codice di errore quando la connessione non è riuscita847* `error_code`: Codice di errore quando la connessione non è riuscita

848* `is_plugin`: `true` quando il server è fornito da un plugin, `false` altrimenti

849* `plugin_id_hash` (quando `is_plugin` è `true`): Hash stabile del nome del plugin e del marketplace, per raggruppare gli eventi per plugin senza esporre il nome

850* `plugin.name` (quando `is_plugin` è `true`): Nome del plugin che fornisce il server. Per i plugin di terze parti questo è la stringa letterale `"third-party"` a meno che `OTEL_LOG_TOOL_DETAILS=1`; questo protegge i nomi dei plugin di terze parti dall'apparire nei log per impostazione predefinita. I plugin da fonti ufficiali Anthropic sono sempre identificati per nome. Gli attributi `plugin_id_hash` e `plugin.name` fluiscono al tuo backend di monitoraggio e non vengono inviati ad Anthropic

826* `server_name` (quando `OTEL_LOG_TOOL_DETAILS=1`): Nome del server configurato851* `server_name` (quando `OTEL_LOG_TOOL_DETAILS=1`): Nome del server configurato

827* `error` (quando `OTEL_LOG_TOOL_DETAILS=1`): Messaggio di errore completo quando la connessione non è riuscita852* `error` (quando `OTEL_LOG_TOOL_DETAILS=1`): Messaggio di errore completo quando la connessione non è riuscita

828 853 


885* `plugin_id_hash`: Hash deterministico del nome del plugin e del marketplace, inviato solo al tuo esportatore configurato. Ti consente di contare quanti plugin di terze parti distinti sono caricati nella tua flotta senza registrare i loro nomi910* `plugin_id_hash`: Hash deterministico del nome del plugin e del marketplace, inviato solo al tuo esportatore configurato. Ti consente di contare quanti plugin di terze parti distinti sono caricati nella tua flotta senza registrare i loro nomi

886* `has_hooks`: Se il plugin contribuisce hooks911* `has_hooks`: Se il plugin contribuisce hooks

887* `has_mcp`: Se il plugin contribuisce server MCP912* `has_mcp`: Se il plugin contribuisce server MCP

913* `host_owned_mcp`: `true` quando l'host SDK gestisce le connessioni MCP di questo plugin e Claude Code ha saltato la lettura della configurazione del server MCP del plugin, `false` altrimenti. {/* min-version: 2.1.172 */}Richiede Claude Code v2.1.172 o successivo

888* `skill_path_count`: Numero di directory di skill che il plugin dichiara914* `skill_path_count`: Numero di directory di skill che il plugin dichiara

889* `command_path_count`: Numero di directory di comandi che il plugin dichiara915* `command_path_count`: Numero di directory di comandi che il plugin dichiara

890* `agent_path_count`: Numero di directory di agenti che il plugin dichiara916* `agent_path_count`: Numero di directory di agenti che il plugin dichiara

917* `safe_mode`: `"true"` quando la sessione è stata avviata con [`--safe-mode`](/it/cli-reference), `"false"` altrimenti. In modalità sicura questo evento segnala solo l'inventario configurato; i comandi, le skill, gli hooks e i server MCP del plugin non si caricano. {/* min-version: 2.1.169 */}Richiede Claude Code v2.1.169 o successivo

891 918 

892<h4 id="skill-activated-event">919<h4 id="skill-activated-event">

893 Evento di skill attivata920 Evento di skill attivata


906* `skill.name`: Nome della skill. Per le skill definite dall'utente e di terze parti il valore è il placeholder `"custom_skill"` a meno che `OTEL_LOG_TOOL_DETAILS=1`933* `skill.name`: Nome della skill. Per le skill definite dall'utente e di terze parti il valore è il placeholder `"custom_skill"` a meno che `OTEL_LOG_TOOL_DETAILS=1`

907* `invocation_trigger`: Come la skill è stata attivata (`"user-slash"`, `"claude-proactive"`, o `"nested-skill"`)934* `invocation_trigger`: Come la skill è stata attivata (`"user-slash"`, `"claude-proactive"`, o `"nested-skill"`)

908* `skill.source`: Da dove è stata caricata la skill (ad esempio, `"bundled"`, `"userSettings"`, `"projectSettings"`, `"plugin"`)935* `skill.source`: Da dove è stata caricata la skill (ad esempio, `"bundled"`, `"userSettings"`, `"projectSettings"`, `"plugin"`)

936* `skill.kind`: `"workflow"` quando la skill è una skill di workflow. Assente altrimenti

909* `plugin.name` (quando `OTEL_LOG_TOOL_DETAILS=1` o il plugin è da un marketplace ufficiale): Nome del plugin proprietario quando la skill è fornita da un plugin937* `plugin.name` (quando `OTEL_LOG_TOOL_DETAILS=1` o il plugin è da un marketplace ufficiale): Nome del plugin proprietario quando la skill è fornita da un plugin

910* `marketplace.name` (quando `OTEL_LOG_TOOL_DETAILS=1` o il plugin è da un marketplace ufficiale): Marketplace del plugin proprietario da cui è stato installato, quando la skill è fornita da un plugin938* `marketplace.name` (quando `OTEL_LOG_TOOL_DETAILS=1` o il plugin è da un marketplace ufficiale): Marketplace del plugin proprietario da cui è stato installato, quando la skill è fornita da un plugin

911 939 


964* `hook_event`: Tipo di evento hook, come `"PreToolUse"` o `"PostToolUse"`992* `hook_event`: Tipo di evento hook, come `"PreToolUse"` o `"PostToolUse"`

965* `hook_type`: Tipo di implementazione dell'hook: `"command"`, `"prompt"`, `"mcp_tool"`, `"http"`, o `"agent"`993* `hook_type`: Tipo di implementazione dell'hook: `"command"`, `"prompt"`, `"mcp_tool"`, `"http"`, o `"agent"`

966* `hook_source`: Dove è definito l'hook: `"userSettings"`, `"projectSettings"`, `"localSettings"`, `"flagSettings"`, `"policySettings"`, o `"pluginHook"`994* `hook_source`: Dove è definito l'hook: `"userSettings"`, `"projectSettings"`, `"localSettings"`, `"flagSettings"`, `"policySettings"`, o `"pluginHook"`

995* `safe_mode`: `"true"` quando la sessione è stata avviata con [`--safe-mode`](/it/cli-reference), `"false"` altrimenti. {/* min-version: 2.1.169 */}Richiede Claude Code v2.1.169 o successivo

967* `hook_matcher` (quando `OTEL_LOG_TOOL_DETAILS=1`): La stringa matcher dalla configurazione dell'hook, quando è impostata996* `hook_matcher` (quando `OTEL_LOG_TOOL_DETAILS=1`): La stringa matcher dalla configurazione dell'hook, quando è impostata

968* `plugin.name` (quando `hook_source` è `"pluginHook"`): Nome del plugin che contribuisce. Per i plugin al di fuori del marketplace ufficiale e del bundle incorporato il valore è `"third-party"` a meno che `OTEL_LOG_TOOL_DETAILS=1`997* `plugin.name` (quando `hook_source` è `"pluginHook"`): Nome del plugin che contribuisce. Per i plugin al di fuori del marketplace ufficiale e del bundle incorporato il valore è `"third-party"` a meno che `OTEL_LOG_TOOL_DETAILS=1`

969* `plugin_id_hash` (quando `hook_source` è `"pluginHook"`): Hash deterministico del nome del plugin e del marketplace, inviato solo al tuo esportatore configurato. Ti consente di contare i plugin che contribuiscono distinti senza registrare i loro nomi998* `plugin_id_hash` (quando `hook_source` è `"pluginHook"`): Hash deterministico del nome del plugin e del marketplace, inviato solo al tuo esportatore configurato. Ti consente di contare i plugin che contribuiscono distinti senza registrare i loro nomi


987* `num_hooks`: Numero di comandi hook corrispondenti1016* `num_hooks`: Numero di comandi hook corrispondenti

988* `managed_only`: `"true"` quando sono consentiti solo gli hook della politica gestita1017* `managed_only`: `"true"` quando sono consentiti solo gli hook della politica gestita

989* `hook_source`: `"policySettings"` o `"merged"`1018* `hook_source`: `"policySettings"` o `"merged"`

1019* `safe_mode`: `"true"` quando la sessione è stata avviata con [`--safe-mode`](/it/cli-reference), `"false"` altrimenti. {/* min-version: 2.1.169 */}Richiede Claude Code v2.1.169 o successivo

990* `hook_definitions`: Configurazione dell'hook serializzata in JSON. Incluso solo quando sia la traccia beta dettagliata che `OTEL_LOG_TOOL_DETAILS=1` sono abilitati1020* `hook_definitions`: Configurazione dell'hook serializzata in JSON. Incluso solo quando sia la traccia beta dettagliata che `OTEL_LOG_TOOL_DETAILS=1` sono abilitati

991 1021 

992<h4 id="hook-execution-complete-event">1022<h4 id="hook-execution-complete-event">


1013* `total_duration_ms`: Durata wall-clock di tutti gli hook corrispondenti1043* `total_duration_ms`: Durata wall-clock di tutti gli hook corrispondenti

1014* `managed_only`: `"true"` quando sono consentiti solo gli hook della politica gestita1044* `managed_only`: `"true"` quando sono consentiti solo gli hook della politica gestita

1015* `hook_source`: `"policySettings"` o `"merged"`1045* `hook_source`: `"policySettings"` o `"merged"`

1046* `safe_mode`: `"true"` quando la sessione è stata avviata con [`--safe-mode`](/it/cli-reference), `"false"` altrimenti. {/* min-version: 2.1.169 */}Richiede Claude Code v2.1.169 o successivo

1016* `hook_definitions`: Configurazione dell'hook serializzata in JSON. Incluso solo quando sia la traccia beta dettagliata che `OTEL_LOG_TOOL_DETAILS=1` sono abilitati1047* `hook_definitions`: Configurazione dell'hook serializzata in JSON. Incluso solo quando sia la traccia beta dettagliata che `OTEL_LOG_TOOL_DETAILS=1` sono abilitati

1017 1048 

1018<h4 id="hook-plugin-metrics-event">1049<h4 id="hook-plugin-metrics-event">


1089| ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |1120| ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |

1090| `claude_code.token.usage` | Suddividi per `type` (input/output), utente, team, modello, `skill.name`, `plugin.name`, o `agent.name` |1121| `claude_code.token.usage` | Suddividi per `type` (input/output), utente, team, modello, `skill.name`, `plugin.name`, o `agent.name` |

1091| `claude_code.session.count` | Traccia l'adozione e l'engagement nel tempo |1122| `claude_code.session.count` | Traccia l'adozione e l'engagement nel tempo |

1092| `claude_code.lines_of_code.count` | Misura la produttività tracciando le aggiunte/rimozioni di codice |1123| `claude_code.lines_of_code.count` | Misura la produttività tracciando le aggiunte e le rimozioni di codice, suddivise per modello |

1093| `claude_code.commit.count` & `claude_code.pull_request.count` | Comprendi l'impatto sui flussi di lavoro di sviluppo |1124| `claude_code.commit.count` & `claude_code.pull_request.count` | Comprendi l'impatto sui flussi di lavoro di sviluppo |

1094 1125 

1095<h3 id="cost-monitoring">1126<h3 id="cost-monitoring">


1116* Consumo di token inusuale1147* Consumo di token inusuale

1117* Alto volume di sessioni da utenti specifici1148* Alto volume di sessioni da utenti specifici

1118 1149 

1119Tutte le metriche possono essere segmentate per `user.account_uuid`, `user.account_id`, `organization.id`, `session.id`, `model`, e `app.version`.1150Tutte le metriche possono essere segmentate dagli [attributi standard](#standard-attributes). L'attributo `model` è disponibile su `claude_code.token.usage`, `claude_code.cost.usage`, e {/* min-version: 2.1.172 */}da v2.1.172, `claude_code.lines_of_code.count`. Le suddivisioni per modello dei commit possono essere approssimate solo unendo i dati rispetto alle metriche di token o costo su `session.id`, poiché una sessione può estendersi su più modelli.

1120 1151 

1121<h3 id="detect-retry-exhaustion">1152<h3 id="detect-retry-exhaustion">

1122 Rilevare l'esaurimento dei tentativi1153 Rilevare l'esaurimento dei tentativi


1179 1210 

1180* `tool_result`: mantiene `tool_name` e `mcp_server_scope`, omette `mcp_server_name`, `mcp_tool_name`, e argomenti1211* `tool_result`: mantiene `tool_name` e `mcp_server_scope`, omette `mcp_server_name`, `mcp_tool_name`, e argomenti

1181* `tool_decision`: mantiene `tool_name`, omette `tool_parameters`1212* `tool_decision`: mantiene `tool_name`, omette `tool_parameters`

1182* `mcp_server_connection`: omette `server_name` e il messaggio di errore1213* `mcp_server_connection`: omette `server_name` e il messaggio di errore, ma mantiene `is_plugin`, `plugin_id_hash`, e `plugin.name`, con i nomi dei plugin non Anthropic redatti al letterale `"third-party"`, in modo che i server forniti dai plugin rimangono distinguibili senza registrazione dettagliata

1183 1214 

1184<h3 id="map-security-questions-to-events">1215<h3 id="map-security-questions-to-events">

1185 Mappa le domande di sicurezza agli eventi1216 Mappa le domande di sicurezza agli eventi


1193| Escalation della modalità di autorizzazione | `permission_mode_changed` | `from_mode`, `to_mode`, `trigger` |1224| Escalation della modalità di autorizzazione | `permission_mode_changed` | `from_mode`, `to_mode`, `trigger` |

1194| Hook della politica ha bloccato un'azione | `hook_execution_complete` | `hook_event`, `num_blocking` |1225| Hook della politica ha bloccato un'azione | `hook_execution_complete` | `hook_event`, `num_blocking` |

1195| Login, logout e guasto di autenticazione | `auth` | `action`, `success`, `error_category` |1226| Login, logout e guasto di autenticazione | `auth` | `action`, `success`, `error_category` |

1196| Connessione del server MCP o guasto | `mcp_server_connection` | `status`, `server_name`, `error_code` |1227| Connessione del server MCP o guasto | `mcp_server_connection` | `status`, `server_name`, `is_plugin`, `error_code` |

1197| Plugin installato e la sua fonte | `plugin_installed` | `plugin.name`, `marketplace.name`, `marketplace.is_official` |1228| Plugin installato e la sua fonte | `plugin_installed` | `plugin.name`, `marketplace.name`, `marketplace.is_official` |

1198| Comandi eseguiti e file toccati | `tool_result` (eseguito) o `tool_decision` (rifiutato) con `OTEL_LOG_TOOL_DETAILS=1` | `tool_parameters`; `tool_input` (`tool_result` solo) |1229| Comandi eseguiti e file toccati | `tool_result` (eseguito) o `tool_decision` (rifiutato) con `OTEL_LOG_TOOL_DETAILS=1` | `tool_parameters`; `tool_input` (`tool_result` solo) |

1199 1230 


1230 1261 

1231* **Database di serie temporali (ad esempio, Prometheus)**: Calcoli di velocità, metriche aggregate1262* **Database di serie temporali (ad esempio, Prometheus)**: Calcoli di velocità, metriche aggregate

1232* **Archivi colonnari (ad esempio, ClickHouse)**: Query complesse, analisi di utenti univoci1263* **Archivi colonnari (ad esempio, ClickHouse)**: Query complesse, analisi di utenti univoci

1233* **Piattaforme di osservabilità complete (ad esempio, Honeycomb, Datadog)**: Query avanzate, visualizzazione, avvisi1264* **Piattaforme di osservabilità complete (ad esempio, Honeycomb, Datadog, Grafana Cloud)**: Query avanzate, visualizzazione, avvisi

1234 1265 

1235<h3 id="for-events/logs">1266<h3 id="for-events/logs">

1236 Per eventi/log1267 Per eventi/log


1238 1269 

1239* **Sistemi di aggregazione dei log (ad esempio, Elasticsearch, Loki)**: Ricerca full-text, analisi dei log1270* **Sistemi di aggregazione dei log (ad esempio, Elasticsearch, Loki)**: Ricerca full-text, analisi dei log

1240* **Archivi colonnari (ad esempio, ClickHouse)**: Analisi degli eventi strutturati1271* **Archivi colonnari (ad esempio, ClickHouse)**: Analisi degli eventi strutturati

1241* **Piattaforme di osservabilità complete (ad esempio, Honeycomb, Datadog)**: Correlazione tra metriche e eventi1272* **Piattaforme di osservabilità complete (ad esempio, Honeycomb, Datadog, Grafana Cloud)**: Correlazione tra metriche e eventi

1242 1273 

1243<h3 id="for-traces">1274<h3 id="for-traces">

1244 Per tracce1275 Per tracce


1247Scegli un backend che supporti l'archiviazione di tracce distribuite e la correlazione degli span:1278Scegli un backend che supporti l'archiviazione di tracce distribuite e la correlazione degli span:

1248 1279 

1249* **Sistemi di traccia distribuita (ad esempio, Jaeger, Zipkin, Grafana Tempo)**: Visualizzazione degli span, waterfall delle richieste, analisi della latenza1280* **Sistemi di traccia distribuita (ad esempio, Jaeger, Zipkin, Grafana Tempo)**: Visualizzazione degli span, waterfall delle richieste, analisi della latenza

1250* **Piattaforme di osservabilità complete (ad esempio, Honeycomb, Datadog)**: Ricerca di tracce e correlazione con metriche e log1281* **Piattaforme di osservabilità complete (ad esempio, Honeycomb, Datadog, Grafana Cloud)**: Ricerca di tracce e correlazione con metriche e log

1251 1282 

1252Per le organizzazioni che richiedono metriche Daily/Weekly/Monthly Active User (DAU/WAU/MAU), considera backend che supportano query di valori univoci efficienti.1283Per le organizzazioni che richiedono metriche Daily/Weekly/Monthly Active User (DAU/WAU/MAU), considera backend che supportano query di valori univoci efficienti.

1253 1284 


1263* `os.version`: Stringa della versione del sistema operativo1294* `os.version`: Stringa della versione del sistema operativo

1264* `host.arch`: Architettura dell'host (ad esempio, `amd64`, `arm64`)1295* `host.arch`: Architettura dell'host (ad esempio, `amd64`, `arm64`)

1265* `wsl.version`: Numero di versione WSL (presente solo quando si esegue su Windows Subsystem for Linux)1296* `wsl.version`: Numero di versione WSL (presente solo quando si esegue su Windows Subsystem for Linux)

1266* Nome del contatore: `com.anthropic.claude_code`1297* Meter Name: `com.anthropic.claude_code`

1267 1298 

1268<h2 id="roi-measurement-resources">1299<h2 id="roi-measurement-resources">

1269 Risorse di misurazione del ROI1300 Risorse di misurazione del ROI

Details

57 * Utente: `~/.claude/output-styles`57 * Utente: `~/.claude/output-styles`

58 * Progetto: `.claude/output-styles`58 * Progetto: `.claude/output-styles`

59 * Politica gestita: `.claude/output-styles` all'interno della [directory delle impostazioni gestite](/it/settings#settings-files)59 * Politica gestita: `.claude/output-styles` all'interno della [directory delle impostazioni gestite](/it/settings#settings-files)

60 

61 Gli output styles del progetto si caricano da ogni `.claude/output-styles/` tra la directory di lavoro e la radice del repository. {/* min-version: 2.1.178 */}A partire dalla v2.1.178, quando più di una di queste directory annidate definisce uno stile con lo stesso nome, Claude Code utilizza quello più vicino alla directory di lavoro.

60 </Step>62 </Step>

61 63 

62 <Step title="Aggiungere frontmatter e istruzioni">64 <Step title="Aggiungere frontmatter e istruzioni">

overview.md +2 −2

Details

124 <Tab title="JetBrains">124 <Tab title="JetBrains">

125 Un plugin per IntelliJ IDEA, PyCharm, WebStorm e altri IDE JetBrains con visualizzazione diff interattiva e condivisione del contesto di selezione.125 Un plugin per IntelliJ IDEA, PyCharm, WebStorm e altri IDE JetBrains con visualizzazione diff interattiva e condivisione del contesto di selezione.

126 126 

127 Installa il [plugin Claude Code](https://plugins.jetbrains.com/plugin/27310-claude-code-beta-) dal JetBrains Marketplace e riavvia il tuo IDE.127 Installa il [plugin Claude Code](https://plugins.jetbrains.com/plugin/27310-claude-code-beta-) dal JetBrains Marketplace e riavvia il tuo IDE. Il plugin richiede il CLI Claude Code, installato separatamente; vedi i [passaggi di configurazione JetBrains](/it/jetbrains#installation).

128 128 

129 [Inizia con JetBrains →](/it/jetbrains)129 [Inizia con JetBrains →](/it/jetbrains)

130 </Tab>130 </Tab>


209 209 

210 * Allontanati dalla tua scrivania e continua a lavorare dal tuo telefono o da qualsiasi browser con [Remote Control](/it/remote-control)210 * Allontanati dalla tua scrivania e continua a lavorare dal tuo telefono o da qualsiasi browser con [Remote Control](/it/remote-control)

211 * Invia un messaggio a [Dispatch](/it/desktop#sessions-from-dispatch) con un'attività dal tuo telefono e apri la sessione Desktop che crea211 * Invia un messaggio a [Dispatch](/it/desktop#sessions-from-dispatch) con un'attività dal tuo telefono e apri la sessione Desktop che crea

212 * Avvia un'attività a lunga esecuzione sul [web](/it/claude-code-on-the-web) o [app iOS](https://apps.apple.com/app/claude-by-anthropic/id6473753684), quindi trascinala nel tuo terminale con `claude --teleport`212 * Avvia un'attività a lunga esecuzione sul [web](/it/claude-code-on-the-web) o [app iOS](https://apps.apple.com/app/claude-by-anthropic/id6473753684), quindi trascinala nel tuo terminale con `claude --teleport`. Teleport richiede un abbonamento a claude.ai.

213 * Trasferisci una sessione di terminale all'[app Desktop](/it/desktop) con `/desktop` per la revisione visiva dei diff213 * Trasferisci una sessione di terminale all'[app Desktop](/it/desktop) con `/desktop` per la revisione visiva dei diff

214 * Instrada le attività dalla chat del team: menziona `@Claude` in [Slack](/it/slack) con un rapporto di bug e ottieni una pull request in cambio214 * Instrada le attività dalla chat del team: menziona `@Claude` in [Slack](/it/slack) con un rapporto di bug e ottieni una pull request in cambio

215 </Accordion>215 </Accordion>

Details

25 25 

26In ogni modalità tranne `bypassPermissions`, le scritture su [percorsi protetti](#protected-paths) non vengono mai auto-approvate, proteggendo lo stato del repository e la configurazione di Claude da corruzione accidentale.26In ogni modalità tranne `bypassPermissions`, le scritture su [percorsi protetti](#protected-paths) non vengono mai auto-approvate, proteggendo lo stato del repository e la configurazione di Claude da corruzione accidentale.

27 27 

28Le modalità impostano la linea di base. Stratifica [regole di autorizzazione](/it/permissions#manage-permissions) sopra per pre-approvare o bloccare strumenti specifici in qualsiasi modalità tranne `bypassPermissions`, che salta completamente il livello di autorizzazione.28Le modalità impostano la linea di base. Stratificate [regole di autorizzazione](/it/permissions#manage-permissions) sopra per pre-approvare o bloccare strumenti specifici. Le regole di negazione e le regole di richiesta esplicita si applicano in ogni modalità, inclusa `bypassPermissions`. Le regole di autorizzazione non hanno effetto in quella modalità perché tutto il resto è già approvato.

29 29 

30<h2 id="switch-permission-modes">30<h2 id="switch-permission-modes">

31 Cambia modalità di autorizzazione31 Cambia modalità di autorizzazione


95 <Tab title="Web e mobile">95 <Tab title="Web e mobile">

96 Utilizza il menu a discesa della modalità accanto alla casella del prompt su [claude.ai/code](https://claude.ai/code) o nell'app mobile. I prompt di autorizzazione appaiono in claude.ai per l'approvazione. Quali modalità appaiono dipende da dove viene eseguita la sessione:96 Utilizza il menu a discesa della modalità accanto alla casella del prompt su [claude.ai/code](https://claude.ai/code) o nell'app mobile. I prompt di autorizzazione appaiono in claude.ai per l'approvazione. Quali modalità appaiono dipende da dove viene eseguita la sessione:

97 97 

98 * **Sessioni cloud** su [Claude Code sul web](/it/claude-code-on-the-web): Auto accept edits e Plan mode. Ask permissions, Auto e Bypass permissions non sono disponibili.98 * **Sessioni cloud** su [Claude Code sul web](/it/claude-code-on-the-web): Accept edits, Plan mode e Auto mode. Accept edits corrisponde alla modalità `default`: l'ambiente cloud pre-approva le modifiche ai file indipendentemente dalla modalità, quindi il menu a discesa mostra Accept edits invece di Ask permissions. `defaultMode: "acceptEdits"` dalle impostazioni è ancora rispettato. Auto mode appare solo quando la tua organizzazione lo consente e il modello selezionato lo supporta. Bypass permissions non è disponibile.

99 * **Sessioni [Remote Control](/it/remote-control)** sulla tua macchina locale: Ask permissions, Auto accept edits e Plan mode. Auto e Bypass permissions non sono disponibili.99 * **Sessioni [Remote Control](/it/remote-control)** sulla tua macchina locale: Ask permissions, Auto accept edits e Plan mode. Auto e Bypass permissions non sono disponibili.

100 100 

101 Per Remote Control, puoi anche impostare la modalità di avvio quando avvii l'host:101 Per Remote Control, puoi anche impostare la modalità di avvio quando avvii l'host:


176 Auto mode richiede Claude Code v2.1.83 o successivo.176 Auto mode richiede Claude Code v2.1.83 o successivo.

177</Note>177</Note>

178 178 

179Auto mode consente a Claude di eseguire senza prompt di autorizzazione. Un modello classificatore separato esamina le azioni prima che vengano eseguite, bloccando qualsiasi cosa che si escalation oltre la tua richiesta, mira a infrastruttura non riconosciuta o sembra guidata da contenuto ostile che Claude ha letto.179Auto mode consente a Claude di eseguire senza prompt di autorizzazione routine. Un modello classificatore separato esamina le azioni prima che vengano eseguite, bloccando qualsiasi cosa che si escalation oltre la tua richiesta, mira a infrastruttura non riconosciuta o sembra guidata da contenuto ostile che Claude ha letto. Le [regole di richiesta](/it/permissions#manage-permissions) esplicite forzano comunque un prompt.

180 180 

181Auto mode inoltre istruisce Claude a continuare a lavorare senza fermarsi per domande di chiarimento, anche se Claude chiede ancora quando il tuo prompt o una skill si affida esplicitamente a questo. Per un comportamento autonomo più forte mantenendo i prompt di autorizzazione, imposta lo [stile di output proattivo](/it/output-styles) invece.181Auto mode inoltre istruisce Claude a continuare a lavorare senza fermarsi per domande di chiarimento, anche se Claude chiede ancora quando il tuo prompt o una skill si affida esplicitamente a questo. Per un comportamento autonomo più forte mantenendo i prompt di autorizzazione, imposta lo [stile di output proattivo](/it/output-styles) invece.

182 182 


193 193 

194Se Claude Code segnala auto mode come non disponibile, uno di questi requisiti non è soddisfatto; questo non è un'interruzione transitoria. Un messaggio separato che nomina un modello e dice che auto mode "non può determinare la sicurezza" di un'azione è un'interruzione transitoria del classificatore; vedi il [riferimento degli errori](/it/errors#auto-mode-cannot-determine-the-safety-of-an-action).194Se Claude Code segnala auto mode come non disponibile, uno di questi requisiti non è soddisfatto; questo non è un'interruzione transitoria. Un messaggio separato che nomina un modello e dice che auto mode "non può determinare la sicurezza" di un'azione è un'interruzione transitoria del classificatore; vedi il [riferimento degli errori](/it/errors#auto-mode-cannot-determine-the-safety-of-an-action).

195 195 

196Se imposti `defaultMode: "auto"` nelle [impostazioni](/it/settings#available-settings) e la sessione inizia in modalità `default` senza errore, l'impostazione è probabilmente in `.claude/settings.json` o `.claude/settings.local.json`. Claude Code ignora `auto` da questi file quindi un repository non può concedere a se stesso auto mode. Spostalo in `~/.claude/settings.json`.196Se imposti `defaultMode: "auto"` nelle [impostazioni](/it/settings#available-settings) e la sessione inizia in modalità `default` senza errore, l'impostazione è probabilmente in `.claude/settings.json` o `.claude/settings.local.json`. Claude Code v2.1.142 e successivo ignorano `auto` da questi file quindi un repository non può concedere a se stesso auto mode. Spostalo in `~/.claude/settings.json`.

197 197 

198<h3 id="enable-auto-mode-on-bedrock-vertex-ai-or-foundry">198<h3 id="enable-auto-mode-on-bedrock-vertex-ai-or-foundry">

199 Abilita auto mode su Bedrock, Vertex AI o Foundry199 Abilita auto mode su Bedrock, Vertex AI o Foundry

200</h3>200</h3>

201 201 

202Su [Amazon Bedrock](/it/amazon-bedrock), [Google Cloud Vertex AI](/it/google-vertex-ai) e [Microsoft Foundry](/it/microsoft-foundry), auto mode non appare nel ciclo `Shift+Tab` fino a quando `CLAUDE_CODE_ENABLE_AUTO_MODE` non è impostato su `1`. Solo Claude Opus 4.7 e Opus 4.8 sono supportati su questi provider.202Su [Amazon Bedrock](/it/amazon-bedrock), [Google Cloud Vertex AI](/it/google-vertex-ai) e [Microsoft Foundry](/it/microsoft-foundry), auto mode non appare nel ciclo `Shift+Tab` fino a quando `CLAUDE_CODE_ENABLE_AUTO_MODE` non è impostato su `1`. La variabile funziona in Claude Code v2.1.158 e successivo. Solo Claude Opus 4.7 e Opus 4.8 sono supportati su questi provider.

203 203 

204Per abilitarlo per uno sviluppatore, aggiungi la variabile al blocco `env` in `~/.claude/settings.json`:204Per abilitarlo per uno sviluppatore, aggiungi la variabile al blocco `env` in `~/.claude/settings.json`:

205 205 


293 1. Prima che un subagent inizi, la descrizione del compito delegato viene valutata, quindi un compito che sembra pericoloso viene bloccato al momento dello spawn.293 1. Prima che un subagent inizi, la descrizione del compito delegato viene valutata, quindi un compito che sembra pericoloso viene bloccato al momento dello spawn.

294 2. Mentre il subagent viene eseguito, ognuna delle sue azioni passa attraverso il classificatore con le stesse regole della sessione padre, e qualsiasi `permissionMode` nel frontmatter del subagent viene ignorato.294 2. Mentre il subagent viene eseguito, ognuna delle sue azioni passa attraverso il classificatore con le stesse regole della sessione padre, e qualsiasi `permissionMode` nel frontmatter del subagent viene ignorato.

295 3. Quando il subagent finisce, il classificatore esamina la sua intera cronologia di azioni; se quel controllo di ritorno segnala una preoccupazione, un avviso di sicurezza viene anteposto ai risultati del subagent.295 3. Quando il subagent finisce, il classificatore esamina la sua intera cronologia di azioni; se quel controllo di ritorno segnala una preoccupazione, un avviso di sicurezza viene anteposto ai risultati del subagent.

296 

297 Il passaggio 1 richiede Claude Code v2.1.178 o successivo. Le versioni precedenti applicavano il classificatore ai passaggi 2 e 3, ma non valutavano la descrizione del compito prima che il subagent iniziasse.

296 </Accordion>298 </Accordion>

297 299 

298 <Accordion title="Costo e latenza">300 <Accordion title="Costo e latenza">


304 Consenti solo strumenti pre-approvati con la modalità dontAsk306 Consenti solo strumenti pre-approvati con la modalità dontAsk

305</h2>307</h2>

306 308 

307La modalità `dontAsk` auto-nega ogni chiamata di strumento che altrimenti richiederebbe. Solo le azioni che corrispondono alle tue regole `permissions.allow` e ai [comandi Bash di sola lettura](/it/permissions#read-only-commands) possono essere eseguite; le regole `ask` esplicite vengono negate piuttosto che richiedere. Questo rende la modalità completamente non interattiva per pipeline CI o ambienti ristretti in cui pre-definisci esattamente cosa Claude può fare.309La modalità `dontAsk` auto-nega ogni chiamata di strumento che altrimenti richiederebbe. Solo le azioni che corrispondono alle tue regole `permissions.allow` e ai [comandi Bash di sola lettura](/it/permissions#read-only-commands) possono essere eseguite; le regole [`ask` esplicite](/it/permissions#manage-permissions) vengono negate piuttosto che richiedere. Questo rende la modalità completamente non interattiva per pipeline CI o ambienti ristretti in cui pre-definisci esattamente cosa Claude può fare. Le sessioni cloud su [Claude Code sul web](/it/claude-code-on-the-web) ignorano `defaultMode: "dontAsk"`; vedi [bypassPermissions](#skip-all-checks-with-bypasspermissions-mode) per i dettagli.

308 310 

309Impostala all'avvio con il flag:311Impostala all'avvio con il flag:

310 312 


316 Salta tutti i controlli con la modalità bypassPermissions318 Salta tutti i controlli con la modalità bypassPermissions

317</h2>319</h2>

318 320 

319La modalità `bypassPermissions` disabilita i prompt di autorizzazione e i controlli di sicurezza in modo che le chiamate di strumenti vengono eseguite immediatamente. A partire dalla v2.1.126 questo include le scritture su [percorsi protetti](#protected-paths), che le versioni precedenti ancora richiedevano. Le rimozioni che interessano la radice del filesystem o la directory home, come `rm -rf /` e `rm -rf ~`, ancora richiedono un prompt come protezione contro gli errori del modello. Utilizza questa modalità solo in ambienti isolati come container, VM o dev container senza accesso a Internet, dove Claude Code non può danneggiare il tuo sistema host.321La modalità `bypassPermissions` disabilita i prompt di autorizzazione e i controlli di sicurezza in modo che le chiamate di strumenti vengono eseguite immediatamente. A partire dalla v2.1.126 questo include le scritture su [percorsi protetti](#protected-paths), che le versioni precedenti ancora richiedevano. Le [regole ask](/it/permissions#manage-permissions) esplicite forzano comunque un prompt in questa modalità, e le rimozioni che interessano la radice del filesystem o la directory home, come `rm -rf /` e `rm -rf ~`, ancora richiedono un prompt come protezione contro gli errori del modello. Utilizza questa modalità solo in ambienti isolati come container, VM o dev container senza accesso a Internet, dove Claude Code non può danneggiare il tuo sistema host.

320 322 

321Non puoi entrare in `bypassPermissions` da una sessione che è stata avviata senza uno dei flag di abilitazione; riavvia con uno per abilitarlo:323Non puoi entrare in `bypassPermissions` da una sessione che è stata avviata senza uno dei flag di abilitazione; riavvia con uno per abilitarlo:

322 324 


334 336 

335Il controllo viene saltato automaticamente all'interno di una sandbox riconosciuta. Per eseguire autonomamente in un container, utilizza la configurazione [dev container](/it/devcontainer), che esegue Claude Code come utente non root.337Il controllo viene saltato automaticamente all'interno di una sandbox riconosciuta. Per eseguire autonomamente in un container, utilizza la configurazione [dev container](/it/devcontainer), che esegue Claude Code come utente non root.

336 338 

339[Claude Code sul web](/it/claude-code-on-the-web) non rispetta `defaultMode: "bypassPermissions"` o `"dontAsk"` dai tuoi file di impostazioni, quindi le impostazioni archiviate di un repository non possono avviare una sessione cloud in modalità bypass-permissions. L'impostazione viene ignorata silenziosamente e la sessione si avvia nella modalità mostrata nel menu a discesa della modalità. Vedi [Cambia modalità di autorizzazione](#switch-permission-modes) per quali modalità offrono le sessioni cloud.

340 

337<Warning>341<Warning>

338 `bypassPermissions` non offre protezione contro l'iniezione di prompt o azioni indesiderate. Per i controlli di sicurezza in background senza prompt, utilizza [auto mode](#eliminate-prompts-with-auto-mode) invece. Gli amministratori possono bloccare questa modalità impostando `permissions.disableBypassPermissionsMode` su `"disable"` nelle [impostazioni gestite](/it/permissions#managed-settings).342 `bypassPermissions` non offre protezione contro l'iniezione di prompt o azioni indesiderate. Per i controlli di sicurezza in background con molti meno prompt, utilizza [auto mode](#eliminate-prompts-with-auto-mode) invece. Gli amministratori possono bloccare questa modalità impostando `permissions.disableBypassPermissionsMode` su `"disable"` nelle [impostazioni gestite](/it/permissions#managed-settings).

339</Warning>343</Warning>

340 344 

341<h2 id="protected-paths">345<h2 id="protected-paths">


351| `dontAsk` | Negate |355| `dontAsk` | Negate |

352| `bypassPermissions` | Consentite |356| `bypassPermissions` | Consentite |

353 357 

358Le regole [`permissions.allow`](/it/permissions#manage-permissions) nei file di impostazioni non pre-approvano le scritture su percorsi protetti. Il controllo di sicurezza viene eseguito prima che Claude Code valuti le regole allow dalle impostazioni, quindi una voce come `Edit(.claude/**)` in `~/.claude/settings.json` o `.claude/settings.json` non cambia il risultato per modalità nella tabella sopra. Nelle modalità che richiedono conferma, il prompt per una scrittura `.claude/` offre **Sì, e consenti a Claude di modificare le proprie impostazioni per questa sessione**, che approva le successive scritture `.claude/` in quella sessione senza richiedere di nuovo la conferma.

359 

354Directory protette:360Directory protette:

355 361 

356* `.git`362* `.git`


362* `.devcontainer`368* `.devcontainer`

363* `.yarn`369* `.yarn`

364* `.mvn`370* `.mvn`

365* `.claude`, ad eccezione di `.claude/commands`, `.claude/agents`, `.claude/skills` e `.claude/worktrees` dove Claude crea routinariamente contenuto371* `.claude`, ad eccezione di `.claude/worktrees` dove Claude archivia i propri git worktrees

366 372 

367File protetti:373File protetti:

368 374 

permissions.md +80 −8

Details

30* Le regole **Ask** richiedono una conferma ogni volta che Claude Code tenta di utilizzare lo strumento specificato.30* Le regole **Ask** richiedono una conferma ogni volta che Claude Code tenta di utilizzare lo strumento specificato.

31* Le regole **Deny** impediscono a Claude Code di utilizzare lo strumento specificato.31* Le regole **Deny** impediscono a Claude Code di utilizzare lo strumento specificato.

32 32 

33Le regole vengono valutate in ordine: **deny -> ask -> allow**. La prima regola corrispondente vince, quindi le regole deny hanno sempre la precedenza.33Le regole vengono valutate in ordine: deny, quindi ask, quindi allow. La prima corrispondenza in quell'ordine determina il risultato, e la specificità della regola non cambia l'ordine. Una regola deny ampia come `Bash(aws *)` blocca ogni chiamata corrispondente, incluse le chiamate che corrispondono anche a una regola allow più ristretta come `Bash(aws s3 ls)`, quindi una regola deny non può contenere eccezioni di allowlist. La stessa precedenza si applica tra ask e allow: una regola ask corrispondente richiede una conferma anche quando una regola allow più specifica corrisponde anche alla stessa chiamata.

34 34 

35Le regole deny si comportano diversamente a seconda che denominino uno strumento o che limitino un modello all'interno di uno. Un nome di strumento semplice come `Bash` rimuove lo strumento dal contesto di Claude interamente, quindi Claude non lo vede mai. Una regola limitata come `Bash(rm *)` lascia lo strumento disponibile e blocca le chiamate corrispondenti quando Claude tenta di utilizzarle.35Le regole deny si comportano diversamente a seconda che denominino uno strumento o che limitino un modello all'interno di uno. Un nome di strumento semplice come `Bash` rimuove lo strumento dal contesto di Claude interamente, quindi Claude non lo vede mai. Una regola limitata come `Bash(rm *)` lascia lo strumento disponibile e blocca le chiamate corrispondenti quando Claude tenta di utilizzarle.

36 36 


45Claude Code supporta diverse modalità di autorizzazione che controllano come gli strumenti vengono approvati. Vedi [Permission modes](/it/permission-modes) per quando utilizzare ciascuna. Impostate `defaultMode` nei vostri [file di impostazioni](/it/settings#settings-files):45Claude Code supporta diverse modalità di autorizzazione che controllano come gli strumenti vengono approvati. Vedi [Permission modes](/it/permission-modes) per quando utilizzare ciascuna. Impostate `defaultMode` nei vostri [file di impostazioni](/it/settings#settings-files):

46 46 

47| Modalità | Descrizione |47| Modalità | Descrizione |

48| :------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |48| :------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

49| `default` | Comportamento standard: richiede l'autorizzazione al primo utilizzo di ogni strumento |49| `default` | Comportamento standard: richiede l'autorizzazione al primo utilizzo di ogni strumento |

50| `acceptEdits` | Accetta automaticamente le modifiche ai file e i comandi comuni del filesystem (`mkdir`, `touch`, `mv`, `cp`, ecc.) per i percorsi nella directory di lavoro o `additionalDirectories` |50| `acceptEdits` | Accetta automaticamente le modifiche ai file e i comandi comuni del filesystem (`mkdir`, `touch`, `mv`, `cp`, ecc.) per i percorsi nella directory di lavoro o `additionalDirectories` |

51| `plan` | Plan Mode: Claude legge i file ed esegue comandi shell di sola lettura per esplorare ma non modifica i vostri file sorgente |51| `plan` | Plan Mode: Claude legge i file ed esegue comandi shell di sola lettura per esplorare ma non modifica i vostri file sorgente |

52| `auto` | Auto-approva le chiamate di strumento con controlli di sicurezza in background che verificano che le azioni si allineino con la Sua richiesta. Attualmente un'anteprima di ricerca |52| `auto` | Auto-approva le chiamate di strumento con controlli di sicurezza in background che verificano che le azioni si allineino con la Sua richiesta. Attualmente un'anteprima di ricerca |

53| `dontAsk` | Nega automaticamente gli strumenti a meno che non siano pre-approvati tramite `/permissions` o regole `permissions.allow` |53| `dontAsk` | Nega automaticamente gli strumenti a meno che non siano pre-approvati tramite `/permissions` o regole `permissions.allow` |

54| `bypassPermissions` | Salta i prompt di autorizzazione. Le rimozioni che hanno come destinazione la radice del filesystem o la directory home, come `rm -rf /` e `rm -rf ~`, richiedono comunque un prompt come interruttore di protezione contro gli errori del modello |54| `bypassPermissions` | Salta i prompt di autorizzazione, ad eccezione di quelli forzati da regole `ask` esplicite. Le rimozioni che hanno come destinazione la radice del filesystem o la directory home, come `rm -rf /` e `rm -rf ~`, richiedono comunque un prompt come interruttore di protezione contro gli errori del modello |

55 55 

56<Warning>56<Warning>

57 La modalità `bypassPermissions` salta tutti i prompt di autorizzazione, incluse le scritture in `.git`, `.config/git`, `.claude`, `.vscode`, `.idea`, `.husky`, `.cargo`, `.devcontainer`, `.yarn` e `.mvn`. Le rimozioni che hanno come destinazione la radice del filesystem o la directory home, come `rm -rf /` e `rm -rf ~`, richiedono comunque un prompt come interruttore di protezione contro gli errori del modello. Utilizzate questa modalità solo in ambienti isolati come contenitori o macchine virtuali dove Claude Code non può causare danni. Gli amministratori possono impedire questa modalità impostando `permissions.disableBypassPermissionsMode` su `"disable"` nelle [impostazioni gestite](#managed-settings).57 La modalità `bypassPermissions` salta i prompt di autorizzazione, incluse le scritture in `.git`, `.config/git`, `.claude`, `.vscode`, `.idea`, `.husky`, `.cargo`, `.devcontainer`, `.yarn` e `.mvn`. Le regole `ask` esplicite forzano comunque un prompt, e le rimozioni che hanno come destinazione la radice del filesystem o la directory home, come `rm -rf /` e `rm -rf ~`, richiedono comunque un prompt come interruttore di protezione contro gli errori del modello. Utilizzate questa modalità solo in ambienti isolati come contenitori o macchine virtuali dove Claude Code non può causare danni. Gli amministratori possono impedire questa modalità impostando `permissions.disableBypassPermissionsMode` su `"disable"` nelle [impostazioni gestite](#managed-settings).

58</Warning>58</Warning>

59 59 

60Per prevenire che la modalità `bypassPermissions` o `auto` venga utilizzata, impostate `permissions.disableBypassPermissionsMode` o `permissions.disableAutoMode` su `"disable"` in qualsiasi [file di impostazioni](/it/settings#settings-files). Questi sono più utili nelle [impostazioni gestite](#managed-settings) dove non possono essere ignorati.60Per prevenire che la modalità `bypassPermissions` o `auto` venga utilizzata, impostate `permissions.disableBypassPermissionsMode` o `permissions.disableAutoMode` su `"disable"` in qualsiasi [file di impostazioni](/it/settings#settings-files). Questi sono più utili nelle [impostazioni gestite](#managed-settings) dove non possono essere ignorati.


91| `Read(./.env)` | Corrisponde alla lettura del file `.env` nella directory corrente |91| `Read(./.env)` | Corrisponde alla lettura del file `.env` nella directory corrente |

92| `WebFetch(domain:example.com)` | Corrisponde alle richieste di fetch a example.com |92| `WebFetch(domain:example.com)` | Corrisponde alle richieste di fetch a example.com |

93 93 

94<h3 id="match-by-input-parameter">

95 Corrispondere per parametro di input

96</h3>

97 

98Le regole di negazione e richiesta possono corrispondere a un parametro di input di primo livello su qualsiasi strumento con `Tool(param:value)`. La regola corrisponde quando Claude chiama lo strumento con quel parametro impostato su quel valore esatto. Questa sintassi è per le regole di negazione e richiesta; una regola di autorizzazione per un valore di parametro non stabilirerebbe che la chiamata è sicura nel complesso, quindi le regole di autorizzazione continuano a utilizzare la sintassi dello specificatore di ogni strumento. Questo funziona per qualsiasi parametro scalare che lo strumento accetta:

99 

100| Regola | Corrisponde |

101| :----------------------------- | :------------------------------------------------------- |

102| `Agent(model:opus)` | Chiamate Agent che richiedono il livello di modello Opus |

103| `Agent(isolation:worktree)` | Chiamate Agent che richiedono un git worktree |

104| `Bash(run_in_background:true)` | Chiamate Bash che vengono eseguite in background |

105 

106La corrispondenza dei parametri segue queste regole:

107 

108* Il nome del parametro deve essere un campo diretto dell'input dello strumento, come `model` nello strumento Agent. I campi annidati all'interno di un oggetto o di un array non sono corrispondibili

109* Ogni regola nomina un parametro. Per controllare sia `model` che `isolation`, scrivete due regole, `Agent(model:opus)` e `Agent(isolation:worktree)`, piuttosto che combinarle in una sola regola

110* Il valore supporta `*` come carattere jolly che corrisponde a qualsiasi sequenza di caratteri, quindi `Agent(isolation:*)` corrisponde a qualsiasi valore di isolamento esplicito. Senza `*` la corrispondenza è esatta

111* Un parametro che il modello omette non viene mai corrispondente, quindi `Agent(model:*)` non corrisponde a una chiamata che lascia `model` non impostato

112* Il valore viene confrontato con l'input letterale che Claude invia, prima di qualsiasi normalizzazione. `Agent(model:opus)` corrisponde all'alias `opus` ma non a un ID modello completo. Eseguite con [`--verbose`](/it/cli-reference) per vedere i nomi e i valori dei parametri esatti in ogni chiamata dello strumento

113* Lo spazio intorno ai due punti viene ignorato

114 

115I campi che uno strumento già corrisponde con le sue proprie regole di canonicalizzazione non sono corrispondibili in questo modo: `command` per Bash e PowerShell, `file_path` per Read, Edit e Write, `path` per Grep e Glob, `notebook_path` per NotebookEdit, e `url` per WebFetch. Una regola come `Bash(command:rm *)` sarebbe aggirabile da un comando composto, quindi Claude Code la ignora e emette un avviso all'avvio. Utilizzate invece `Bash(rm *)`, `Read(./path)`, o `WebFetch(domain:host)`.

116 

94<h3 id="wildcard-patterns">117<h3 id="wildcard-patterns">

95 Modelli con caratteri jolly118 Modelli con caratteri jolly

96</h3>119</h3>


116 139 

117Lo spazio prima di `*` è importante: `Bash(ls *)` corrisponde a `ls -la` ma non a `lsof`, mentre `Bash(ls*)` corrisponde a entrambi. Il suffisso `:*` è un modo equivalente per scrivere un carattere jolly finale, quindi `Bash(ls:*)` corrisponde agli stessi comandi di `Bash(ls *)`.140Lo spazio prima di `*` è importante: `Bash(ls *)` corrisponde a `ls -la` ma non a `lsof`, mentre `Bash(ls*)` corrisponde a entrambi. Il suffisso `:*` è un modo equivalente per scrivere un carattere jolly finale, quindi `Bash(ls:*)` corrisponde agli stessi comandi di `Bash(ls *)`.

118 141 

119La finestra di dialogo di autorizzazione scrive la forma separata da spazi quando selezionate "Sì, non chiedere più" per un prefisso di comando. La forma `:*` è riconosciuta solo alla fine di un modello. In un modello come `Bash(git:* push)`, il due punti viene trattato come un carattere letterale e non corrisponderà ai comandi git.142La finestra di dialogo di autorizzazione scrive la forma separata da spazi quando selezionate "Sì, non chiedere più" per un prefisso di comando. La forma `:*` è riconosciuta solo alla fine di un modello. In un modello come `Bash(git:* push)`, i due punti vengono trattati come un carattere letterale e non corrisponderanno ai comandi git.

143 

144<h3 id="tool-name-wildcards">

145 Caratteri jolly nei nomi degli strumenti

146</h3>

147 

148Le regole di negazione e richiesta accettano anche modelli glob nella posizione del nome dello strumento. Il modello deve corrispondere al nome completo dello strumento: `"*"` corrisponde a ogni strumento, e `"mcp__*"` corrisponde a ogni strumento MCP su tutti i server. Uno strumento corrispondente a una regola di negazione con nome semplice viene rimosso dal contesto di Claude, come un nome di strumento semplice. Questa configurazione nega ogni strumento MCP:

149 

150```json theme={null}

151{

152 "permissions": {

153 "deny": [

154 "mcp__*"

155 ]

156 }

157}

158```

159 

160Le regole di autorizzazione accettano globs nei nomi degli strumenti solo dopo un prefisso letterale `mcp__<server>__`. Il segmento del server deve essere privo di glob in modo che la regola nomini un server specifico che avete configurato. `mcp__puppeteer__*` corrisponde a ogni strumento dal server `puppeteer`, e `mcp__github__get_*` corrisponde ai suoi strumenti `get_`. Un glob di autorizzazione non ancorato come `"*"`, `"B*"`, o `"mcp__*"` viene saltato con un avviso e non approva automaticamente nulla.

161 

162Una regola di negazione o richiesta il cui nome dello strumento non corrisponde a nessuno strumento noto produce un avviso all'avvio per catturare gli errori di digitazione. I nomi degli strumenti contenenti `_` o `*` sono esenti dal controllo.

163 

164L'etichetta mostrata per uno strumento nella trascrizione e nella finestra di dialogo di autorizzazione può differire dal suo nome canonico. Ad esempio, lo strumento etichettato `Stop Task` nella trascrizione ha il nome canonico `TaskStop`. Le regole di autorizzazione e i [matcher di hook](/it/hooks) corrispondono solo al nome canonico, quindi una regola scritta come `Stop Task` non corrisponde. Per le regole di negazione e richiesta, l'avviso all'avvio di cui sopra cattura la mancata corrispondenza. Utilizzate i nomi canonici elencati nel [riferimento degli strumenti](/it/tools-reference).

120 165 

121<h2 id="tool-specific-permission-rules">166<h2 id="tool-specific-permission-rules">

122 Regole di autorizzazione specifiche dello strumento167 Regole di autorizzazione specifiche dello strumento


266 WebFetch311 WebFetch

267</h3>312</h3>

268 313 

269* `WebFetch(domain:example.com)` corrisponde alle richieste di fetch a example.com314Le regole WebFetch utilizzano un prefisso `domain:` e corrispondono al nome host dell'URL richiesto. La corrispondenza non è sensibile alle maiuscole, supporta caratteri jolly `*` e rimuove un punto finale da entrambi la regola e il nome host in modo che `example.com.` e `example.com` vengono trattati allo stesso modo.

315 

316* `WebFetch(domain:example.com)` corrisponde alle richieste a `example.com`

317* `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

318* `WebFetch(domain:*)` corrisponde a ogni dominio ed è equivalente a una regola WebFetch nuda

319 

320In 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.

270 321 

271<h3 id="mcp">322<h3 id="mcp">

272 MCP323 MCP


296}347}

297```348```

298 349 

350<h3 id="cd">

351 Cd

352</h3>

353 

354Le regole `Cd` controllano in quali directory il comando [`/cd`](/it/commands) può spostare la sessione. `Cd` non è uno strumento invocabile dal modello: Claude non può chiamarlo e le regole si applicano solo quando eseguite `/cd` voi stessi.

355 

356Una regola deny `Cd` nuda disabilita `/cd` completamente. Una regola deny `Cd(<path-pattern>)` blocca i target corrispondenti. Le regole deny controllano ogni ortografia del target, incluso ogni hop symlink attraverso cui si risolve, quindi una regola scritta per un percorso blocca anche i target che si risolvono ad esso.

357 

358L'aggiunta di qualsiasi regola allow `Cd` passa `/cd` alla modalità allowlist: la directory target risolta deve corrispondere a una delle vostre regole allow, o `/cd` rifiuta. Senza regole `Cd` configurate, `/cd` mantiene il suo comportamento predefinito e vi chiede di fidarvi di una directory sconosciuta.

359 

360I modelli di percorso condividono gli ancoraggi `//`, `~/` e `/` dalle [regole Read e Edit](#read-and-edit), ma la corrispondenza è ancorata al percorso della directory intera piuttosto che nello stile gitignore. `*` corrisponde esattamente a un segmento di percorso e `**` corrisponde tra segmenti. Un `/**` finale corrisponde anche alla sua radice denominata.

361 

362| Regola | Corrisponde | Non corrisponde |

363| --------------------- | --------------------------------------------------------- | --------------------------------- |

364| `Cd(~/code/*)` | `~/code/app` | `~/code/app/src`, `~/code` |

365| `Cd(~/code/**)` | `~/code` e qualsiasi directory sotto di esso | directory al di fuori di `~/code` |

366| `Cd(**/node_modules)` | qualsiasi directory `node_modules` a qualsiasi profondità | `node_modules/pkg` |

367 

299<h2 id="extend-permissions-with-hooks">368<h2 id="extend-permissions-with-hooks">

300 Estendere le autorizzazioni con hook369 Estendere le autorizzazioni con hook

301</h2>370</h2>


318 387 

319I file nelle directory aggiuntive seguono le stesse regole di autorizzazione della directory di lavoro originale: diventano leggibili senza prompt e le autorizzazioni di modifica dei file seguono la modalità di autorizzazione corrente.388I file nelle directory aggiuntive seguono le stesse regole di autorizzazione della directory di lavoro originale: diventano leggibili senza prompt e le autorizzazioni di modifica dei file seguono la modalità di autorizzazione corrente.

320 389 

390Per modificare la directory di lavoro primaria della sessione invece di aggiungerne un'altra, utilizzate [`/cd`](/it/commands). Il comando `/cd` richiede Claude Code v2.1.169 o successivo. A differenza di `/add-dir`, trasferisce la sessione: il `CLAUDE.md` della nuova directory viene caricato e `--resume` trova la sessione da lì.

391 

321<h3 id="additional-directories-grant-file-access-not-configuration">392<h3 id="additional-directories-grant-file-access-not-configuration">

322 Le directory aggiuntive concedono l'accesso ai file, non la configurazione393 Le directory aggiuntive concedono l'accesso ai file, non la configurazione

323</h3>394</h3>


331| Configurazione | Caricato da `--add-dir` |402| Configurazione | Caricato da `--add-dir` |

332| :----------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |403| :----------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

333| [Skills](/it/skills) in `.claude/skills/` | Sì, con ricaricamento live |404| [Skills](/it/skills) in `.claude/skills/` | Sì, con ricaricamento live |

405| [Subagents](/it/sub-agents) in `.claude/agents/` | Sì |

334| Impostazioni plugin in `.claude/settings.json` | Solo `enabledPlugins` e `extraKnownMarketplaces` |406| Impostazioni plugin in `.claude/settings.json` | Solo `enabledPlugins` e `extraKnownMarketplaces` |

335| File [CLAUDE.md](/it/memory), `.claude/rules/` e `CLAUDE.local.md` | Solo quando `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1` è impostato. `CLAUDE.local.md` richiede inoltre l'impostazione `local` source, che è abilitata per impostazione predefinita |407| File [CLAUDE.md](/it/memory), `.claude/rules/` e `CLAUDE.local.md` | Solo quando `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1` è impostato. `CLAUDE.local.md` richiede inoltre l'impostazione `local` source, che è abilitata per impostazione predefinita |

336 408 

337Subagents, commands e output styles vengono scoperti dalla directory di lavoro corrente e dai suoi genitori, dalla vostra directory utente in `~/.claude/` e dalle impostazioni gestite. Hooks e altre chiavi `settings.json` vengono caricati dalla cartella `.claude/` della directory di lavoro corrente senza fallback alla directory genitore, insieme al vostro `~/.claude/settings.json` utente e alle impostazioni gestite. Per condividere quella configurazione tra progetti, utilizzate uno di questi approcci:409I comandi e gli stili di output vengono scoperti dalla directory di lavoro corrente e dai suoi genitori, dalla vostra directory utente in `~/.claude/` e dalle impostazioni gestite. Hooks e altre chiavi `settings.json` vengono caricati dalla cartella `.claude/` della directory di lavoro corrente senza fallback alla directory genitore, insieme al vostro `~/.claude/settings.json` utente e alle impostazioni gestite. Per condividere quella configurazione tra progetti, utilizzate uno di questi approcci:

338 410 

339* **Configurazione a livello utente**: posizionate i file in `~/.claude/agents/`, `~/.claude/output-styles/` o `~/.claude/settings.json` per renderli disponibili in ogni progetto411* **Configurazione a livello utente**: posizionate i file in `~/.claude/agents/`, `~/.claude/output-styles/` o `~/.claude/settings.json` per renderli disponibili in ogni progetto

340* **Plugin**: pacchetto e distribuite la configurazione come [plugin](/it/plugins) che i team possono installare412* **Plugin**: pacchetto e distribuite la configurazione come [plugin](/it/plugins) che i team possono installare


356* Le restrizioni del filesystem nella sandbox combinano le impostazioni [`sandbox.filesystem`](/it/sandboxing) con le regole deny di Read e Edit; entrambe vengono unite nel confine sandbox finale428* Le restrizioni del filesystem nella sandbox combinano le impostazioni [`sandbox.filesystem`](/it/sandboxing) con le regole deny di Read e Edit; entrambe vengono unite nel confine sandbox finale

357* Le restrizioni di rete combinano le regole di autorizzazione WebFetch con gli elenchi `allowedDomains` e `deniedDomains` della sandbox429* Le restrizioni di rete combinano le regole di autorizzazione WebFetch con gli elenchi `allowedDomains` e `deniedDomains` della sandbox

358 430 

359Quando il sandboxing è abilitato con `autoAllowBashIfSandboxed: true`, che è l'impostazione predefinita, i comandi Bash in sandbox vengono eseguiti senza richiedere un prompt anche se le vostre autorizzazioni includono `ask: Bash(*)`. Il confine della sandbox sostituisce il prompt per comando. Le regole deny esplicite si applicano ancora, e i comandi `rm` o `rmdir` che hanno come destinazione `/`, la vostra directory home o altri percorsi critici del sistema attivano comunque un prompt. Consultate [modalità sandbox](/it/sandboxing#sandbox-modes) per modificare questo comportamento.431Quando il sandboxing è abilitato con `autoAllowBashIfSandboxed: true`, che è l'impostazione predefinita, i comandi Bash in sandbox vengono eseguiti senza richiedere un prompt anche se le vostre autorizzazioni includono una regola ask bare `Bash`, o la [forma equivalente `Bash(*)` ](#match-all-uses-of-a-tool): il confine della sandbox sostituisce il prompt per l'intero strumento. Le regole ask con ambito di contenuto come `Bash(git push *)` forzano comunque un prompt, le regole deny esplicite si applicano ancora, e i comandi `rm` o `rmdir` che hanno come destinazione `/`, la vostra directory home o altri percorsi critici del sistema attivano comunque un prompt. I comandi che non verranno eseguiti in sandbox, come i comandi esclusi, rispettano la regola ask bare `Bash` come al solito. Consultate [modalità sandbox](/it/sandboxing#sandbox-modes) per modificare questo comportamento.

360 432 

361<h2 id="managed-settings">433<h2 id="managed-settings">

362 Impostazioni gestite434 Impostazioni gestite

platforms.md +1 −1

Details

23| [Web](/it/claude-code-on-the-web) | Attività a lunga esecuzione che non richiedono molto controllo, o lavoro che dovrebbe continuare quando sei offline | Cloud gestito da Anthropic, continua dopo la disconnessione |23| [Web](/it/claude-code-on-the-web) | Attività a lunga esecuzione che non richiedono molto controllo, o lavoro che dovrebbe continuare quando sei offline | Cloud gestito da Anthropic, continua dopo la disconnessione |

24| Mobile | Avviare e monitorare attività mentre sei lontano dal tuo computer | Sessioni cloud dall'app Claude per iOS e Android, [Remote Control](/it/remote-control) per sessioni locali, [Dispatch](/it/desktop#sessions-from-dispatch) verso Desktop su Pro e Max |24| Mobile | Avviare e monitorare attività mentre sei lontano dal tuo computer | Sessioni cloud dall'app Claude per iOS e Android, [Remote Control](/it/remote-control) per sessioni locali, [Dispatch](/it/desktop#sessions-from-dispatch) verso Desktop su Pro e Max |

25 25 

26La CLI è la superficie più completa per il lavoro nativo da terminale: scripting e Agent SDK sono solo CLI. I provider di terze parti funzionano anche in [VS Code](/it/vs-code#use-third-party-providers). Le distribuzioni [Desktop](/it/desktop) aziendali supportano Vertex AI e provider gateway; per Bedrock o Foundry, usa invece la CLI o VS Code al posto di Desktop. Desktop e le estensioni IDE scambiano alcune funzionalità solo CLI per revisione visiva e integrazione editor più stretta. Il web viene eseguito nel cloud di Anthropic, quindi le attività continuano dopo la disconnessione. Mobile è un thin client nelle stesse sessioni cloud o in una sessione locale tramite Remote Control, e può inviare attività a Desktop con Dispatch.26La CLI è la superficie più completa per il lavoro nativo da terminale: scripting e Agent SDK sono solo CLI. I provider di terze parti funzionano anche in [VS Code](/it/vs-code#use-third-party-providers). Le distribuzioni [Desktop](/it/desktop) aziendali supportano Vertex AI e provider gateway; per Bedrock o Foundry, usa la CLI o VS Code, oppure il [Cowork on 3P research preview](https://claude.com/docs/cowork/3p/overview), che esegue la scheda Code su questi provider. Desktop e le estensioni IDE scambiano alcune funzionalità solo CLI per revisione visiva e integrazione editor più stretta. Il web viene eseguito nel cloud di Anthropic, quindi le attività continuano dopo la disconnessione. Mobile è un thin client nelle stesse sessioni cloud o in una sessione locale tramite Remote Control, e può inviare attività a Desktop con Dispatch.

27 27 

28Puoi mescolare superfici sullo stesso progetto. La configurazione, la memoria del progetto e i server MCP sono condivisi tra le superfici locali.28Puoi mescolare superfici sullo stesso progetto. La configurazione, la memoria del progetto e i server MCP sono condivisi tra le superfici locali.

29 29 

plugin-hints.md +7 −4

Details

16 Come funziona16 Come funziona

17</h2>17</h2>

18 18 

19Claude Code imposta la variabile di ambiente [`CLAUDECODE`](/it/env-vars) a `1` per ogni comando che esegue attraverso gli strumenti Bash e PowerShell, e per i comandi [hook](/it/hooks). Quando la tua CLI vede quella variabile, scrive un tag `<claude-code-hint />` auto-chiudente in stderr. Nei comandi hook il tag di suggerimento viene rimosso e ignorato. Solo l'output degli strumenti Bash e PowerShell attiva il prompt di installazione.19Claude Code imposta la variabile di ambiente [`CLAUDECODE`](/it/env-vars) a `1` per ogni comando che esegue attraverso gli strumenti Bash e PowerShell, e per i comandi [hook](/it/hooks). {/* min-version: 2.1.172 */}A partire dalla versione 2.1.172 imposta anche [`CLAUDE_CODE_CHILD_SESSION`](/it/env-vars) a `1` negli stessi sottoprocessi. Quando la tua CLI vede una di queste variabili, scrive un tag `<claude-code-hint />` auto-chiudente in stderr. Nei comandi hook il tag di suggerimento viene rimosso e ignorato. Solo l'output degli strumenti Bash e PowerShell attiva il prompt di installazione.

20 20 

21Quando Claude Code riceve l'output del comando, esegue le seguenti operazioni:21Quando Claude Code riceve l'output del comando, esegue le seguenti operazioni:

22 22 


31 Emetti il suggerimento31 Emetti il suggerimento

32</h2>32</h2>

33 33 

34Condiziona l'emissione sulla variabile di ambiente `CLAUDECODE` in modo che il marcatore non appaia mai nel terminale di un utente umano. Quindi scrivi il tag in stderr sulla sua propria riga.34Condiziona l'emissione su una variabile di ambiente in modo che il marcatore sia improbabile che appaia quando un utente esegue direttamente la tua CLI, quindi scrivi il tag su stderr sulla sua propria riga. Scegli quale variabile controllare:

35 35 

36I seguenti esempi emettono un suggerimento per un plugin denominato `example-cli` nel marketplace ufficiale:36* `CLAUDECODE`: impostata su ogni versione di Claude Code, quindi raggiunge il maggior numero di sessioni. È anche impostata nelle sessioni tmux e nei sottoprocessi del server MCP stdio che Claude Code avvia. Le estensioni IDE la impostano anche nei loro terminali integrati, dove un utente potrebbe eseguire direttamente la tua CLI.

37* {/* min-version: 2.1.172 */}`CLAUDE_CODE_CHILD_SESSION`: impostata solo nei sottoprocessi che Claude Code stesso genera, come le chiamate di strumenti, i comandi hook e i comandi della [riga di stato](/it/statusline), quindi il tag normalmente non raggiunge un terminale umano. Un processo di lunga durata che è stato avviato all'interno di una sessione, come un server tmux, acquisisce la variabile, quindi le shell avviate successivamente da quel processo mostrano comunque il tag grezzo. Richiede Claude Code v2.1.172 o successivo, quindi le sessioni su versioni precedenti non ricevono il suggerimento.

38 

39I seguenti esempi condizionano su `CLAUDECODE` per la massima copertura e emettono un suggerimento per un plugin denominato `example-cli` nel marketplace ufficiale:

37 40 

38<CodeGroup>41<CodeGroup>

39 ```javascript Node.js theme={null}42 ```javascript Node.js theme={null}


147Le linee guida rimanenti sono consigliate ma non applicate. Claude Code non può osservare se la tua CLI le segue:150Le linee guida rimanenti sono consigliate ma non applicate. Claude Code non può osservare se la tua CLI le segue:

148 151 

149* **Scrivi in stderr**: stderr mantiene il tag fuori dalle pipeline di shell come `example-cli deploy | jq`. Claude Code scansiona entrambi i flussi, quindi anche stdout funziona.152* **Scrivi in stderr**: stderr mantiene il tag fuori dalle pipeline di shell come `example-cli deploy | jq`. Claude Code scansiona entrambi i flussi, quindi anche stdout funziona.

150* **Condiziona su `CLAUDECODE`**: emetti solo quando la variabile di ambiente `CLAUDECODE` è impostata. Questo impedisce al marcatore di apparire agli utenti che eseguono la tua CLI direttamente.153* **Condiziona su una variabile di ambiente**: emetti solo quando `CLAUDECODE` o `CLAUDE_CODE_CHILD_SESSION` è impostato. Vedi [Emetti il suggerimento](#emit-the-hint) per come i due variabili differiscono.

151 154 

152<h2 id="get-your-plugin-into-the-official-marketplace">155<h2 id="get-your-plugin-into-the-official-marketplace">

153 Inserisci il tuo plugin nel marketplace ufficiale156 Inserisci il tuo plugin nel marketplace ufficiale

Details

138 {138 {

139 "name": "code-formatter",139 "name": "code-formatter",

140 "source": "./plugins/formatter",140 "source": "./plugins/formatter",

141 "description": "Formattazione automatica del codice al salvataggio",141 "description": "Automatic code formatting on save",

142 "version": "2.1.0",142 "version": "2.1.0",

143 "author": {143 "author": {

144 "name": "DevTools Team"144 "name": "DevTools Team"


150 "source": "github",150 "source": "github",

151 "repo": "company/deploy-plugin"151 "repo": "company/deploy-plugin"

152 },152 },

153 "description": "Strumenti di automazione della distribuzione"153 "description": "Deployment automation tools"

154 }154 }

155 ]155 ]

156}156}


171| `plugins` | array | Elenco dei plugin disponibili | Vedi di seguito |171| `plugins` | array | Elenco dei plugin disponibili | Vedi di seguito |

172 172 

173<Note>173<Note>

174 **Nomi riservati**: I seguenti nomi di marketplace sono riservati per uso ufficiale di Anthropic e non possono essere utilizzati da marketplace di terze parti: `claude-code-marketplace`, `claude-code-plugins`, `claude-plugins-official`, `anthropic-marketplace`, `anthropic-plugins`, `agent-skills`, `anthropic-agent-skills`, `knowledge-work-plugins`, `life-sciences`, `claude-for-legal`, `claude-for-financial-services`, `financial-services-plugins`. Anche i nomi che impersonano marketplace ufficiali, come `official-claude-plugins` o `anthropic-tools-v2`, sono bloccati.174 **Nomi riservati**: I seguenti nomi di marketplace sono riservati per uso ufficiale di Anthropic e non possono essere utilizzati da marketplace di terze parti: `claude-code-marketplace`, `claude-code-plugins`, `claude-plugins-official`, `claude-plugins-community`, `claude-community`, `anthropic-marketplace`, `anthropic-plugins`, `agent-skills`, `anthropic-agent-skills`, `knowledge-work-plugins`, `life-sciences`, `claude-for-legal`, `claude-for-financial-services`, `financial-services-plugins`. Anche i nomi che impersonano marketplace ufficiali, come `official-claude-plugins` o `anthropic-tools-v2`, sono bloccati.

175</Note>175</Note>

176 176 

177<h3 id="owner-fields">177<h3 id="owner-fields">


203 203 

204Ogni voce di plugin nell'array `plugins` descrive un plugin e dove trovarlo. Puoi includere qualsiasi campo dallo [schema del manifest del plugin](/it/plugins-reference#plugin-manifest-schema) (come `description`, `version`, `author`, `commands`, `hooks`, ecc.), più questi campi specifici del marketplace: `source`, `category`, `tags` e `strict`.204Ogni voce di plugin nell'array `plugins` descrive un plugin e dove trovarlo. Puoi includere qualsiasi campo dallo [schema del manifest del plugin](/it/plugins-reference#plugin-manifest-schema) (come `description`, `version`, `author`, `commands`, `hooks`, ecc.), più questi campi specifici del marketplace: `source`, `category`, `tags` e `strict`.

205 205 

206<h3 id="required-fields">206<h3 id="required-fields-1">

207 Campi obbligatori207 Campi obbligatori

208</h3>208</h3>

209 209 


269 Ad esempio, un marketplace ospitato in `acme-corp/plugin-catalog` (marketplace source) può elencare un plugin recuperato da `acme-corp/code-formatter` (plugin source). La marketplace source e la plugin source puntano a repository diversi e sono fissate indipendentemente.269 Ad esempio, un marketplace ospitato in `acme-corp/plugin-catalog` (marketplace source) può elencare un plugin recuperato da `acme-corp/code-formatter` (plugin source). La marketplace source e la plugin source puntano a repository diversi e sono fissate indipendentemente.

270</Note>270</Note>

271 271 

272I tipi di source basati su git di seguito sono `github`, `url` e `git-subdir`. Quando sia `ref` che `sha` sono impostati su uno qualsiasi di essi, `sha` è il pin effettivo. Claude Code recupera e controlla il commit fissato direttamente, quindi l'installazione ha successo anche se il branch o il tag denominato da `ref` è stato eliminato a monte, purché il commit sia ancora raggiungibile dal repository.

273 

272<h3 id="relative-paths">274<h3 id="relative-paths">

273 Percorsi relativi275 Percorsi relativi

274</h3>276</h3>


505* **`${CLAUDE_PLUGIN_ROOT}`**: Usa questa variabile nelle configurazioni degli hook e del server MCP per fare riferimento ai file all'interno della directory di installazione del plugin. Questo è necessario perché i plugin vengono copiati in una posizione cache quando installati. Per le dipendenze o lo stato che dovrebbe sopravvivere agli aggiornamenti dei plugin, usa [`${CLAUDE_PLUGIN_DATA}`](/it/plugins-reference#persistent-data-directory) invece.507* **`${CLAUDE_PLUGIN_ROOT}`**: Usa questa variabile nelle configurazioni degli hook e del server MCP per fare riferimento ai file all'interno della directory di installazione del plugin. Questo è necessario perché i plugin vengono copiati in una posizione cache quando installati. Per le dipendenze o lo stato che dovrebbe sopravvivere agli aggiornamenti dei plugin, usa [`${CLAUDE_PLUGIN_DATA}`](/it/plugins-reference#persistent-data-directory) invece.

506* **`strict: false`**: Poiché è impostato su false, il plugin non ha bisogno del suo `plugin.json`. La voce del marketplace definisce tutto. Vedi [Strict mode](#strict-mode) di seguito.508* **`strict: false`**: Poiché è impostato su false, il plugin non ha bisogno del suo `plugin.json`. La voce del marketplace definisce tutto. Vedi [Strict mode](#strict-mode) di seguito.

507 509 

510Per impostazione predefinita, le skills di un plugin vengono caricate dalla directory `skills/` sotto la sua `source`, e tutti i percorsi elencati sotto `skills` si aggiungono a quella scansione. L'eccezione è una source della radice del marketplace come `source: "./"`, dove più voci di plugin condividono una cartella `skills/`. In quel caso, l'elenco di sottodirectory specifiche sotto `skills` rende questo elenco il set completo per la voce, e altre directory sotto `skills/` non vengono caricate. L'elenco della directory `skills/` stessa o della radice del plugin mantiene la scansione completa. Se nessuno dei percorsi elencati esiste, viene eseguita la scansione predefinita.

511 

508<h3 id="strict-mode">512<h3 id="strict-mode">

509 Strict mode513 Strict mode

510</h3>514</h3>


1020 1024 

1021* `[name]`: nome del marketplace da aggiornare, come mostrato da `claude plugin marketplace list`. Aggiorna tutti i marketplace se omesso1025* `[name]`: nome del marketplace da aggiornare, come mostrato da `claude plugin marketplace list`. Aggiorna tutti i marketplace se omesso

1022 1026 

1023Sia `remove` che `update` non riescono quando eseguiti su un marketplace gestito da seed, che è di sola lettura. Quando si aggiornano tutti i marketplace, le voci gestite da seed vengono saltate e gli altri marketplace si aggiornano comunque. Per modificare i plugin forniti da seed, chiedi al tuo amministratore di aggiornare l'immagine seed. Vedi [Pre-popola plugin per i container](/it/docs/plugins#pre-populate-plugins-for-containers).1027Sia `remove` che `update` non riescono quando eseguiti su un marketplace gestito da seed, che è di sola lettura. Quando si aggiornano tutti i marketplace, le voci gestite da seed vengono saltate e gli altri marketplace si aggiornano comunque. Per modificare i plugin forniti da seed, chiedi al tuo amministratore di aggiornare l'immagine seed. Vedi [Pre-popola plugin per i container](#pre-populate-plugins-for-containers).

1024 1028 

1025<h2 id="troubleshooting">1029<h2 id="troubleshooting">

1026 Troubleshooting1030 Troubleshooting


1074* Controlla che le directory dei plugin contengano i file richiesti1078* Controlla che le directory dei plugin contengano i file richiesti

1075* Per le origini GitHub, assicurati che i repository siano pubblici o che tu abbia accesso1079* Per le origini GitHub, assicurati che i repository siano pubblici o che tu abbia accesso

1076* Testa manualmente le origini dei plugin clonando/scaricando1080* Testa manualmente le origini dei plugin clonando/scaricando

1081* Se l'origine fissa sia `ref` che `sha`, un ramo o un tag upstream eliminato non blocca l'installazione. Se l'installazione continua a non riuscire, conferma che il commit fissato esiste ancora nel repository

1077 1082 

1078<h3 id="private-repository-authentication-fails">1083<h3 id="private-repository-authentication-fails">

1079 L'autenticazione del repository privato non riesce1084 L'autenticazione del repository privato non riesce

plugins.md +9 −5

Details

17Claude Code supporta due modi per aggiungere skills, agents e hooks personalizzati:17Claude Code supporta due modi per aggiungere skills, agents e hooks personalizzati:

18 18 

19| Approccio | Nomi skill | Migliore per |19| Approccio | Nomi skill | Migliore per |

20| :------------------------------------------------------ | :------------------- | :-------------------------------------------------------------------------------------------------------- |20| :------------------------------------------------------------------------------------------ | :------------------- | :-------------------------------------------------------------------------------------------------------- |

21| **Standalone** (directory `.claude/`) | `/hello` | Flussi di lavoro personali, personalizzazioni specifiche del progetto, esperimenti rapidi |21| **Standalone** (directory `.claude/`) | `/hello` | Flussi di lavoro personali, personalizzazioni specifiche del progetto, esperimenti rapidi |

22| **Plugin** (directory con `.claude-plugin/plugin.json`) | `/plugin-name:hello` | Condivisione con i colleghi, distribuzione alla comunità, rilasci versionati, riutilizzabili tra progetti |22| **Plugin** (directory con skills, agents, hooks o un manifest `.claude-plugin/plugin.json`) | `/plugin-name:hello` | Condivisione con i colleghi, distribuzione alla comunità, rilasci versionati, riutilizzabili tra progetti |

23 23 

24**Usa la configurazione standalone quando**:24**Usa la configurazione standalone quando**:

25 25 


216| `bin/` | Radice del plugin | Eseguibili aggiunti al `PATH` dello strumento Bash mentre il plugin è abilitato |216| `bin/` | Radice del plugin | Eseguibili aggiunti al `PATH` dello strumento Bash mentre il plugin è abilitato |

217| `settings.json` | Radice del plugin | [Impostazioni](/it/settings) predefinite applicate quando il plugin è abilitato |217| `settings.json` | Radice del plugin | [Impostazioni](/it/settings) predefinite applicate quando il plugin è abilitato |

218 218 

219Un plugin che fornisce esattamente uno skill può posizionare `SKILL.md` direttamente alla radice del plugin invece di creare una directory `skills/`. Claude Code lo carica come uno skill singolo e utilizza il campo `name` del frontmatter per il nome di invocazione. Usa il layout `skills/` per i plugin che potrebbero crescere fino a più di uno skill.

220 

219<Note>221<Note>

220 **Prossimi passi**: Pronto ad aggiungere più funzionalità? Vai a [Sviluppa plugin più complessi](#develop-more-complex-plugins) per aggiungere agents, hooks, MCP servers e LSP servers. Per le specifiche tecniche complete di tutti i componenti del plugin, vedi [Riferimento plugin](/it/plugins-reference).222 **Prossimi passi**: Pronto ad aggiungere più funzionalità? Vai a [Sviluppa plugin più complessi](#develop-more-complex-plugins) per aggiungere agents, hooks, MCP servers e LSP servers. Per le specifiche tecniche complete di tutti i componenti del plugin, vedi [Riferimento plugin](/it/plugins-reference).

221</Note>223</Note>


402 404 

403Anthropic mantiene due marketplace pubblici per i plugin di Claude Code:405Anthropic mantiene due marketplace pubblici per i plugin di Claude Code:

404 406 

405* **`claude-plugins-official`**: un insieme curato di plugin mantenuti da Anthropic. Disponibile automaticamente in ogni installazione di Claude Code.407* **`claude-plugins-official`**: un insieme curato di plugin mantenuti da Anthropic. Registrato automaticamente la prima volta che avvii Claude Code in modo interattivo. Uno script non interattivo che viene eseguito prima di quel primo avvio deve aggiungerlo esplicitamente con `claude plugin marketplace add anthropics/claude-plugins-official`.

406* **`claude-community`**: il marketplace pubblico della comunità dove gli invii di terze parti arrivano dopo la revisione. Gli utenti lo aggiungono con `/plugin marketplace add anthropics/claude-plugins-community` e lo installano come `@claude-community`.408* **`claude-community`**: il marketplace pubblico della comunità dove gli invii di terze parti arrivano dopo la revisione. Gli utenti lo aggiungono con `/plugin marketplace add anthropics/claude-plugins-community` e lo installano come `@claude-community`.

407 409 

408Per inviare il tuo plugin per la revisione del marketplace della comunità, usa uno dei moduli in-app:410Per inviare il tuo plugin per la revisione del marketplace della comunità, usa uno dei moduli in-app:

409 411 

410* **Claude.ai**: [claude.ai/settings/plugins/submit](https://claude.ai/settings/plugins/submit)412* **claude.ai**: [claude.ai/admin-settings/directory/submissions/plugins/new](https://claude.ai/admin-settings/directory/submissions/plugins/new)

411* **Console**: [platform.claude.com/plugins/submit](https://platform.claude.com/plugins/submit)413* **Console**: [platform.claude.com/plugins/submit](https://platform.claude.com/plugins/submit)

412 414 

415Il modulo claude.ai richiede un'organizzazione Team o Enterprise e accesso alla gestione della directory; i proprietari dell'organizzazione hanno questo accesso per impostazione predefinita. Gli autori individuali che non fanno parte di un'organizzazione Team o Enterprise possono utilizzare il modulo Console.

416 

413Esegui `claude plugin validate` localmente prima di inviare. La pipeline di revisione esegue lo stesso controllo su ogni invio, insieme a uno screening di sicurezza automatizzato.417Esegui `claude plugin validate` localmente prima di inviare. La pipeline di revisione esegue lo stesso controllo su ogni invio, insieme a uno screening di sicurezza automatizzato.

414 418 

415I plugin approvati sono fissati a uno specifico commit SHA nel catalogo [`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community), e CI aumenta automaticamente il pin mentre esegui il push di nuovi commit nel tuo repository. Il catalogo pubblico si sincronizza ogni notte dalla pipeline di revisione, quindi può esserci un ritardo tra l'approvazione e la comparsa del tuo plugin in `marketplace.json`. Per verificare se il tuo plugin è già installabile, cerca il suo nome nel [catalogo della comunità](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/marketplace.json).419I plugin approvati sono fissati a uno specifico commit SHA nel catalogo [`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community), e CI aumenta automaticamente il pin mentre esegui il push di nuovi commit nel tuo repository. Il catalogo pubblico si sincronizza ogni notte dalla pipeline di revisione, quindi può esserci un ritardo tra l'approvazione e la comparsa del tuo plugin in `marketplace.json`. Per verificare se il tuo plugin è già installabile, cerca il suo nome nel [catalogo della comunità](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/marketplace.json).


512| Deve essere copiato manualmente per condividere | Installa con `/plugin install` |516| Deve essere copiato manualmente per condividere | Installa con `/plugin install` |

513 517 

514<Note>518<Note>

515 Dopo la migrazione, puoi rimuovere i file originali da `.claude/` per evitare duplicati. La versione del plugin avrà la precedenza quando caricata.519 Dopo la migrazione, rimuovi i file originali da `.claude/` per evitare duplicati. Le definizioni di `.claude/agents/` a livello di progetto e utente sovrascrivono gli agents del plugin con lo stesso nome, quindi la versione del plugin ha effetto solo una volta rimossi gli originali.

516</Note>520</Note>

517 521 

518<h2 id="next-steps">522<h2 id="next-steps">

Details

46* Claude può invocarli automaticamente in base al contesto dell'attività46* Claude può invocarli automaticamente in base al contesto dell'attività

47* Le skills possono includere file di supporto insieme a SKILL.md47* Le skills possono includere file di supporto insieme a SKILL.md

48 48 

49Se un plugin non ha una directory `skills/` e nessun campo manifest `skills`, un `SKILL.md` nella radice del plugin viene caricato come una singola skill. Impostare il campo frontmatter `name` per controllare il nome di invocazione della skill. Senza di esso, Claude Code ricade al nome della directory di installazione, che per i plugin installati dal marketplace è una stringa di versione che cambia ad ogni aggiornamento. Per i plugin che forniscono più di una skill, utilizzare il layout della directory `skills/` mostrato sopra.

50 

49Per i dettagli completi, vedi [Skills](/it/skills).51Per i dettagli completi, vedi [Skills](/it/skills).

50 52 

51<h3 id="agents">53<h3 id="agents">


256**Campi opzionali:**258**Campi opzionali:**

257 259 

258| Campo | Descrizione |260| Campo | Descrizione |

259| :---------------------- | :-------------------------------------------------------------- |261| :---------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

260| `args` | Argomenti della riga di comando per il server LSP |262| `args` | Argomenti della riga di comando per il server LSP |

261| `transport` | Trasporto di comunicazione: `stdio` (predefinito) o `socket` |263| `transport` | Trasporto di comunicazione: `stdio` (predefinito) o `socket` |

262| `env` | Variabili di ambiente da impostare all'avvio del server |264| `env` | Variabili di ambiente da impostare all'avvio del server |


265| `workspaceFolder` | Percorso della cartella di lavoro per il server |267| `workspaceFolder` | Percorso della cartella di lavoro per il server |

266| `startupTimeout` | Tempo massimo di attesa per l'avvio del server (millisecondi) |268| `startupTimeout` | Tempo massimo di attesa per l'avvio del server (millisecondi) |

267| `maxRestarts` | Numero massimo di tentativi di riavvio prima di rinunciare |269| `maxRestarts` | Numero massimo di tentativi di riavvio prima di rinunciare |

270| `diagnostics` | Se spingere la diagnostica nel contesto di Claude dopo le modifiche (predefinito `true`). Impostare su `false` per mantenere la navigazione del codice ma sopprimere l'iniezione automatica della diagnostica. |

268 271 

269<Warning>272<Warning>

270 **Devi installare il binario del server di linguaggio separatamente.** I plugin LSP configurano come Claude Code si connette a un server di linguaggio, ma non includono il server stesso. Se vedi `Executable not found in $PATH` nella scheda Errors di `/plugin`, installa il binario richiesto per il tuo linguaggio.273 **Devi installare il binario del server di linguaggio separatamente.** I plugin LSP configurano come Claude Code si connette a un server di linguaggio, ma non includono il server stesso. Se vedi `Executable not found in $PATH` nella scheda Errors di `/plugin`, installa il binario richiesto per il tuo linguaggio.


530</h3>533</h3>

531 534 

532| Campo | Tipo | Descrizione | Esempio |535| Campo | Tipo | Descrizione | Esempio |

533| :---------------------- | :-------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- |536| :---------------------- | :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------- |

534| `skills` | string\|array | Directory di skills personalizzate contenenti `<name>/SKILL.md` (in aggiunta al valore predefinito `skills/`) | `"./custom/skills/"` |537| `skills` | string\|array | Directory di skills personalizzate contenenti `<name>/SKILL.md`. Aggiunge alla scansione predefinita `skills/`. Vedi [Regole del comportamento del percorso](#path-behavior-rules) per l'eccezione della radice del marketplace | `"./custom/skills/"` |

535| `commands` | string\|array | File di skill markdown flat personalizzati o directory (sostituisce il valore predefinito `commands/`) | `"./custom/cmd.md"` o `["./cmd1.md"]` |538| `commands` | string\|array | File di skill markdown flat personalizzati o directory (sostituisce il valore predefinito `commands/`) | `"./custom/cmd.md"` o `["./cmd1.md"]` |

536| `agents` | string\|array | File di agent personalizzati (sostituisce il valore predefinito `agents/`) | `"./custom/agents/reviewer.md"` |539| `agents` | string\|array | File di agent personalizzati (sostituisce il valore predefinito `agents/`) | `"./custom/agents/reviewer.md"` |

537| `hooks` | string\|array\|object | Percorsi di configurazione degli hooks o configurazione inline | `"./my-extra-hooks.json"` |540| `hooks` | string\|array\|object | Percorsi di configurazione degli hooks o configurazione inline | `"./my-extra-hooks.json"` |


629Se un percorso personalizzato sostituisce o estende la directory predefinita del plugin dipende dal campo:632Se un percorso personalizzato sostituisce o estende la directory predefinita del plugin dipende dal campo:

630 633 

631* **Sostituisce il valore predefinito**: `commands`, `agents`, `outputStyles`, `experimental.themes`, `experimental.monitors`. Ad esempio, quando il manifest specifica `commands`, la directory predefinita `commands/` non viene scansionata. Per mantenere il valore predefinito e aggiungerne altri, elencalo esplicitamente: `"commands": ["./commands/", "./extras/"]`634* **Sostituisce il valore predefinito**: `commands`, `agents`, `outputStyles`, `experimental.themes`, `experimental.monitors`. Ad esempio, quando il manifest specifica `commands`, la directory predefinita `commands/` non viene scansionata. Per mantenere il valore predefinito e aggiungerne altri, elencalo esplicitamente: `"commands": ["./commands/", "./extras/"]`

632* **Aggiunge al valore predefinito**: `skills`. La directory predefinita `skills/` viene sempre scansionata e le directory elencate in `skills` vengono caricate insieme ad essa635* **Aggiunge al valore predefinito**: `skills`. La directory predefinita `skills/` viene sempre scansionata, e le directory elencate in `skills` vengono caricate insieme ad essa. Eccezione: per una [voce del marketplace il cui `source` si risolve nella radice del marketplace](/it/plugin-marketplaces#advanced-plugin-entries), dichiarare sottodirectory specifiche sostituisce la scansione

633* **Regole di merge proprie**: [hooks](#hooks), [MCP servers](#mcp-servers) e [LSP servers](#lsp-servers). Vedi ogni sezione per come più fonti si combinano636* **Regole di merge proprie**: [hooks](#hooks), [MCP servers](#mcp-servers) e [LSP servers](#lsp-servers). Vedi ogni sezione per come più fonti si combinano

634 637 

635Quando un plugin ha sia una cartella predefinita che la chiave manifest corrispondente, Claude Code v2.1.140 e versioni successive contrassegnano la cartella ignorata in `/doctor`, `claude plugin list` e la vista dettagli `/plugin`. Il plugin continua a caricarsi utilizzando i percorsi del manifest. Nessun avviso viene mostrato quando la chiave manifest punta nella cartella predefinita, ad esempio `"commands": ["./commands/deploy.md"]`, perché la cartella è indirizzata esplicitamente in quel caso.638Quando un plugin ha sia una cartella predefinita che la chiave manifest corrispondente, Claude Code v2.1.140 e versioni successive contrassegnano la cartella ignorata in `/doctor`, `claude plugin list` e la vista dettagli `/plugin`. Il plugin continua a caricarsi utilizzando i percorsi del manifest. Nessun avviso viene mostrato quando la chiave manifest punta nella cartella predefinita, ad esempio `"commands": ["./commands/deploy.md"]`, perché la cartella è indirizzata esplicitamente in quel caso.


1093| `--available` | Includi plugin disponibili dai marketplace. Richiede `--json` | |1096| `--available` | Includi plugin disponibili dai marketplace. Richiede `--json` | |

1094| `-h, --help` | Visualizza la guida per il comando | |1097| `-h, --help` | Visualizza la guida per il comando | |

1095 1098 

1099All'interno di una sessione interattiva, `/plugin list` stampa lo stesso elenco inline. La forma interattiva accetta `--enabled` o `--disabled` per mostrare solo i plugin in quello stato, e `ls` come abbreviazione per `list`.

1100 

1096<h3 id="plugin-details">1101<h3 id="plugin-details">

1097 plugin details1102 plugin details

1098</h3>1103</h3>

prompt-caching.md +35 −32

Details

6 6 

7> Claude Code gestisce il prompt caching automaticamente. Scopri perché un cambio di modello attiva un turno lento senza cache, quanto costa `/compact`, perché le modifiche a CLAUDE.md non si applicano a metà sessione e come controllare il tasso di cache hit.7> Claude Code gestisce il prompt caching automaticamente. Scopri perché un cambio di modello attiva un turno lento senza cache, quanto costa `/compact`, perché le modifiche a CLAUDE.md non si applicano a metà sessione e come controllare il tasso di cache hit.

8 8 

9Il prompt caching rende Claude Code più veloce e più efficiente dal punto di vista dei costi. Senza caching, l'API rielaborerebbe la tua cronologia completa ad ogni turno. Con il caching, riutilizza ciò che ha già elaborato e fa solo il nuovo lavoro per ciò che è cambiato.9Il prompt caching rende Claude Code più veloce e più efficiente dal punto di vista dei costi. Senza caching, l'API rielaborerebbe la vostra cronologia completa ad ogni turno. Con il caching, riutilizza ciò che ha già elaborato e fa solo il nuovo lavoro per ciò che è cambiato.

10 10 

11Claude Code gestisce il prompt caching per te, a meno che non lo [disabiliti](#disable-prompt-caching). È comunque utile sapere come funziona il prompt caching, perché alcune azioni invalidano la cache e rendono la risposta successiva più lenta e più costosa mentre la ricostruisce. Questa pagina copre quali azioni sono quelle, perché alcune impostazioni attendono un riavvio per applicarsi e come controllare le prestazioni della cache quando l'utilizzo sembra elevato.11Claude Code gestisce il prompt caching per voi, a meno che non lo [disabiliti](#disable-prompt-caching). È comunque utile sapere come funziona il prompt caching, perché alcune azioni invalidano la cache e rendono la risposta successiva più lenta e più costosa mentre la ricostruisce. Questa pagina copre quali azioni sono quelle, perché alcune impostazioni attendono un riavvio per applicarsi e come controllare le prestazioni della cache quando l'utilizzo sembra elevato.

12 12 

13<h2 id="how-the-cache-is-organized">13<h2 id="how-the-cache-is-organized">

14 Come è organizzata la cache14 Come è organizzata la cache


79 79 

80L'impostazione [`opusplan` model](/it/model-config#opusplan-model-setting) si risolve in Opus durante la modalità piano e Sonnet durante l'esecuzione, quindi ogni toggle della modalità piano è un cambio di modello e avvia una cache fresca.80L'impostazione [`opusplan` model](/it/model-config#opusplan-model-setting) si risolve in Opus durante la modalità piano e Sonnet durante l'esecuzione, quindi ogni toggle della modalità piano è un cambio di modello e avvia una cache fresca.

81 81 

82Il [fallback automatico del modello](/it/model-config#automatic-model-fallback) su Fable 5 è anche un cambio di modello. Quando un classificatore di sicurezza contrassegna una richiesta, Claude Code la riesegue sul modello Opus predefinito e la sessione continua lì.

83 

82<h3 id="changing-effort-level">84<h3 id="changing-effort-level">

83 Changing effort level85 Changing effort level

84</h3>86</h3>


101 Connecting or disconnecting an MCP server103 Connecting or disconnecting an MCP server

102</h3>104</h3>

103 105 

104Le definizioni degli strumenti si trovano nel layer del prompt di sistema, quindi la cache si invalida quando l'insieme delle definizioni degli strumenti nella richiesta cambia tra i turni. Se un cambio di [MCP server](/it/mcp) fa questo dipende dal fatto che i suoi strumenti siano rimandati dalla [tool search](/it/mcp#scale-with-mcp-tool-search) o caricati nel prefisso:106Le definizioni degli strumenti si trovano nel layer del prompt di sistema, quindi la cache si invalida quando l'insieme delle definizioni degli strumenti nella richiesta cambia tra i turni. Attivare lo [strumento advisor](/it/advisor) è un'eccezione: la sua definizione si trova dopo il punto di interruzione della cache, quindi abilitare o disabilitare `/advisor` mantiene il prefisso memorizzato nella cache intatto. Se un cambio di [MCP server](/it/mcp) fa questo dipende dal fatto che i suoi strumenti siano rimandati dalla [tool search](/it/mcp#scale-with-mcp-tool-search) o caricati nel prefisso:

105 107 

106* **Strumenti rimandati**, il valore predefinito sui modelli supportati: un server che si connette, disconnette, o cambia il suo elenco di strumenti aggiunge solo nuovo contenuto e non disturba nulla che sia già memorizzato nella cache.108* **Strumenti rimandati**, il valore predefinito sui modelli supportati: un server che si connette, disconnette, o cambia il suo elenco di strumenti aggiunge solo nuovo contenuto e non disturba nulla che sia già memorizzato nella cache.

107* **Strumenti caricati nel prefisso**: qualsiasi cambio ad essi invalida la cache. Questo accade quando [tool search non è disponibile o disabilitato](/it/mcp#configure-tool-search), come sui modelli Haiku, su Vertex AI, o con un gateway `ANTHROPIC_BASE_URL` personalizzato. Accade anche per un server o uno strumento contrassegnato [`alwaysLoad`](/it/mcp#exempt-a-server-from-deferral), e per le definizioni mantenute in primo piano dal [caricamento basato su soglia](/it/mcp#configure-tool-search).109* **Strumenti caricati nel prefisso**: qualsiasi cambio ad essi invalida la cache. Questo accade quando [tool search non è disponibile o disabilitato](/it/mcp#configure-tool-search), come sui modelli Haiku, su Vertex AI, o con un gateway `ANTHROPIC_BASE_URL` personalizzato. Accade anche per un server o uno strumento contrassegnato [`alwaysLoad`](/it/mcp#exempt-a-server-from-deferral), e per le definizioni mantenute in primo piano dal [caricamento basato su soglia](/it/mcp#configure-tool-search).


118 120 

119L'eccezione è un plugin che fornisce [MCP server](/it/plugins-reference#mcp-servers). Abilitare o disabilitare uno segue le stesse regole di [connessione o disconnessione di un MCP server](#connecting-or-disconnecting-an-mcp-server): la cache sopravvive quando gli strumenti del server sono rimandati, e la richiesta successiva rilegge l'intera conversazione quando si caricano nel prefisso.121L'eccezione è un plugin che fornisce [MCP server](/it/plugins-reference#mcp-servers). Abilitare o disabilitare uno segue le stesse regole di [connessione o disconnessione di un MCP server](#connecting-or-disconnecting-an-mcp-server): la cache sopravvive quando gli strumenti del server sono rimandati, e la richiesta successiva rilegge l'intera conversazione quando si caricano nel prefisso.

120 122 

121I cambiamenti dei plugin si applicano quando esegui [`/reload-plugins`](/it/discover-plugins#apply-plugin-changes-without-restarting) o avvii una nuova sessione. Il costo, sia annunci aggiunti che una rilettura completa, si mostra al primo turno dopo il ricaricamento, non quando esegui `/plugin install`, `/plugin enable`, o `/plugin disable`.123I cambiamenti dei plugin si applicano quando esegui [`/reload-plugins`](/it/discover-plugins#apply-plugin-changes-without-restarting) o avvii una nuova sessione. Il costo, sia annunci aggiunti che una rilettura completa, si mostra al primo turno dopo il ricaricamento, non quando esegui `/plugin install`, `/plugin enable`, o `/plugin disable`. {/* min-version: 2.1.163 */}A partire da v2.1.163, quando un ricaricamento attiverebbe la rilettura completa, `/reload-plugins` mostra un avviso e non applica il ricaricamento. Passa `--force` per applicare comunque.

122 124 

123Disabilitare un plugin che hai abilitato in precedenza nella sessione ripristina la forma di richiesta precedente. Se quel prefisso è ancora entro la sua [durata della cache](#cache-lifetime), la richiesta successiva legge la voce di cache più vecchia invece di ricostruirla.125Disabilitare un plugin che hai abilitato in precedenza nella sessione ripristina la forma di richiesta precedente. Se quel prefisso è ancora entro la sua [durata della cache](#cache-lifetime), la richiesta successiva legge la voce di cache più vecchia invece di ricostruirla.

124 126 


128 130 

129Aggiungere un nome di strumento semplice come `Bash` o `WebFetch` come [deny rule](/it/permissions#manage-permissions) rimuove completamente quello strumento dal contesto di Claude. Le definizioni degli strumenti incorporati si caricano nel layer del prompt di sistema, quindi aggiungere o rimuovere una di queste regole a metà sessione invalida la cache. La modifica ha effetto al turno successivo sia che la aggiungi tramite `/permissions` o [modificando direttamente un file di impostazioni](/it/settings#when-edits-take-effect).131Aggiungere un nome di strumento semplice come `Bash` o `WebFetch` come [deny rule](/it/permissions#manage-permissions) rimuove completamente quello strumento dal contesto di Claude. Le definizioni degli strumenti incorporati si caricano nel layer del prompt di sistema, quindi aggiungere o rimuovere una di queste regole a metà sessione invalida la cache. La modifica ha effetto al turno successivo sia che la aggiungi tramite `/permissions` o [modificando direttamente un file di impostazioni](/it/settings#when-edits-take-effect).

130 132 

131Solo un nome di strumento semplice, o la forma equivalente `Bash(*)`, ha questo effetto. Le regole di negazione con ambito come `Bash(rm *)`, e tutte le regole di consentimento e richiesta, non cambiano quali strumenti Claude vede. Claude Code le controlla quando Claude tenta una chiamata, lasciando il prefisso intatto.133Solo una deny rule che corrisponde nella posizione del nome dello strumento ha questo effetto: un nome di strumento semplice, la forma equivalente `Bash(*)`, o un [tool-name glob](/it/permissions#tool-name-wildcards) come `"*"`. Un glob che corrisponde solo agli strumenti MCP, come `"mcp__*"`, rimuove quegli strumenti allo stesso modo ma lascia la cache intatta quando gli strumenti corrispondenti sono [rimandati](#connecting-or-disconnecting-an-mcp-server), il valore predefinito, poiché le definizioni rimandate non erano mai nel prefisso memorizzato nella cache. Le deny rule con ambito come `Bash(rm *)`, e tutte le regole di consentimento e richiesta, non cambiano quali strumenti Claude vede. Claude Code le controlla quando Claude tenta una chiamata, lasciando il prefisso intatto.

132 134 

133<h3 id="compacting-the-conversation">135<h3 id="compacting-the-conversation">

134 Compacting the conversation136 Compacting the conversation


158 160 

159Queste azioni aggiungono alla fine della conversazione o non toccano affatto la richiesta. Alcune di esse, come modificare CLAUDE.md o cambiare lo stile di output, sono anche il motivo per cui una modifica dell'impostazione attende un riavvio per applicarsi.161Queste azioni aggiungono alla fine della conversazione o non toccano affatto la richiesta. Alcune di esse, come modificare CLAUDE.md o cambiare lo stile di output, sono anche il motivo per cui una modifica dell'impostazione attende un riavvio per applicarsi.

160 162 

161* [Editing files in your repository](#editing-files-in-your-repository)163* [Modifica dei file nel tuo repository](#editing-files-in-your-repository)

162* [Editing CLAUDE.md mid-session](#editing-claude-md-mid-session)164* [Modifica di CLAUDE.md durante la sessione](#editing-claude-md-mid-session)

163* [Changing output style](#changing-output-style)165* [Cambio dello stile di output](#changing-output-style)

164* [Changing permission mode](#changing-permission-mode)166* [Cambio della modalità di autorizzazione](#changing-permission-mode)

165* [Invoking skills and commands](#invoking-skills-and-commands)167* [Invocazione di skills e comandi](#invoking-skills-and-commands)

166* [Running `/recap`](#running-%2Frecap)168* [Esecuzione di `/recap`](#running-%2Frecap)

167* [Rewinding the conversation](#rewinding-the-conversation)169* [Riavvolgimento della conversazione](#rewinding-the-conversation)

168* [Spawning a subagent](#subagents-and-the-cache)170* [Generazione di un subagent](#subagents-and-the-cache)

169 171 

170<h3 id="editing-files-in-your-repository">172<h3 id="editing-files-in-your-repository">

171 Editing files in your repository173 Modifica dei file nel tuo repository

172</h3>174</h3>

173 175 

174I contenuti dei file entrano nel contesto solo quando Claude li legge, e le letture si aggiungono alla conversazione. Modificare un file che Claude ha letto in precedenza non cambia retroattivamente la lettura precedente nella cronologia. Invece, Claude Code aggiunge un `<system-reminder>` notando che il file è cambiato, e Claude lo rilegge se necessario.176I contenuti dei file entrano nel contesto solo quando Claude li legge, e le letture si aggiungono alla conversazione. Modificare un file che Claude ha letto in precedenza non cambia retroattivamente la lettura precedente nella cronologia. Invece, Claude Code aggiunge un `<system-reminder>` notando che il file è cambiato, e Claude lo rilegge se necessario.

175 177 

176<h3 id="editing-claude-md-mid-session">178<h3 id="editing-claude-md-mid-session">

177 Editing CLAUDE.md mid-session179 Modifica di CLAUDE.md durante la sessione

178</h3>180</h3>

179 181 

180I tuoi file CLAUDE.md a livello di radice del progetto e a livello utente vengono letti una sola volta all'inizio della sessione e mantenuti in memoria. Modificarli a metà sessione non invalida la cache, ma la modifica non si applica nemmeno. Claude continua a lavorare con la versione che è stata caricata all'inizio della sessione. Il nuovo contenuto viene caricato al prossimo `/clear`, `/compact` o riavvio.182I tuoi file CLAUDE.md a livello di radice del progetto e a livello utente vengono letti una sola volta all'inizio della sessione e mantenuti in memoria. Modificarli durante la sessione non invalida la cache, ma la modifica non si applica nemmeno. Claude continua a lavorare con la versione che è stata caricata all'inizio della sessione. Il nuovo contenuto viene caricato al prossimo `/clear`, `/compact` o riavvio.

181 183 

182[Nested CLAUDE.md files in subdirectories](/it/memory) e [rules with `paths:` frontmatter](/it/memory#path-specific-rules) vengono caricati in seguito, quando Claude legge per la prima volta un file corrispondente. Modificarne uno prima che venga caricato ha effetto. Dopo che viene caricato, il contenuto fa parte della cronologia della conversazione, quindi una modifica a metà sessione non lo cambia retroattivamente.184[I file CLAUDE.md annidati nelle sottodirectory](/it/memory) e [le regole con frontmatter `paths:`](/it/memory#path-specific-rules) vengono caricati in seguito, quando Claude legge per la prima volta un file corrispondente. Modificarne uno prima che venga caricato ha effetto. Dopo che viene caricato, il contenuto fa parte della cronologia della conversazione, quindi una modifica durante la sessione non lo cambia retroattivamente.

183 185 

184<h3 id="changing-output-style">186<h3 id="changing-output-style">

185 Changing output style187 Cambio dello stile di output

186</h3>188</h3>

187 189 

188[Output style](/it/output-styles) fa parte del prompt di sistema, che Claude Code legge una sola volta all'inizio della sessione. Cambiarlo tramite `/config` o l'impostazione `outputStyle` a metà sessione non invalida la cache, ma il cambiamento non si applica nemmeno. Claude continua a usare lo stile che è stato caricato all'inizio della sessione. Il nuovo stile viene caricato al prossimo `/clear` o riavvio.190[Lo stile di output](/it/output-styles) fa parte del prompt di sistema, che Claude Code legge una sola volta all'inizio della sessione. Cambiarlo tramite `/config` o l'impostazione `outputStyle` durante la sessione non invalida la cache, ma il cambiamento non si applica nemmeno. Claude continua a usare lo stile che è stato caricato all'inizio della sessione. Il nuovo stile viene caricato al prossimo `/clear` o riavvio.

189 191 

190<h3 id="changing-permission-mode">192<h3 id="changing-permission-mode">

191 Changing permission mode193 Cambio della modalità di autorizzazione

192</h3>194</h3>

193 195 

194Passare tra [permission modes](/it/permission-modes), come da predefinito ad accettare modifiche, non cambia il prompt di sistema o le definizioni degli strumenti, quindi i cambi di modalità sono sicuri per la cache. L'eccezione è la modalità piano con l'impostazione [`opusplan`](/it/model-config#opusplan-model-setting) del modello, che cambia il modello tra Opus e Sonnet quando entri o esci dalla modalità piano. Questo rende il toggle della modalità un [model switch](#switching-models).196Passare tra [modalità di autorizzazione](/it/permission-modes), come da predefinito ad accettare modifiche, non cambia il prompt di sistema o le definizioni degli strumenti, quindi i cambi di modalità sono sicuri per la cache. L'eccezione è la modalità piano con l'impostazione [`opusplan`](/it/model-config#opusplan-model-setting) del modello, che cambia il modello tra Opus e Sonnet quando entri o esci dalla modalità piano. Questo rende il toggle della modalità un [cambio di modello](#switching-models).

195 197 

196<h3 id="invoking-skills-and-commands">198<h3 id="invoking-skills-and-commands">

197 Invoking skills and commands199 Invocazione di skills e comandi

198</h3>200</h3>

199 201 

200[Skills](/it/skills) e [commands](/it/commands) iniettano le loro istruzioni come messaggi utente nel punto di invocazione. Nulla prima nella conversazione cambia.202[Skills](/it/skills) e [comandi](/it/commands) iniettano le loro istruzioni come messaggi utente nel punto di invocazione. Nulla prima nella conversazione cambia.

201 203 

202<h3 id="running-/recap">204<h3 id="running-/recap">

203 Running `/recap`205 Esecuzione di `/recap`

204</h3>206</h3>

205 207 

206[`/recap`](/it/interactive-mode#session-recap) genera un riepilogo per la visualizzazione nel tuo terminale. A differenza di `/compact`, aggiunge il riepilogo come output del comando piuttosto che sostituire la tua cronologia dei messaggi, quindi il prefisso memorizzato nella cache rimane intatto.208[`/recap`](/it/interactive-mode#session-recap) genera un riepilogo per la visualizzazione nel tuo terminale. A differenza di `/compact`, aggiunge il riepilogo come output del comando piuttosto che sostituire la tua cronologia dei messaggi, quindi il prefisso memorizzato nella cache rimane intatto.

207 209 

208<h3 id="rewinding-the-conversation">210<h3 id="rewinding-the-conversation">

209 Rewinding the conversation211 Riavvolgimento della conversazione

210</h3>212</h3>

211 213 

212[`/rewind`](/it/checkpointing) tronca la tua conversazione a un turno precedente. La cronologia rimanente è lo stesso contenuto da cui la cache è stata costruita in quel momento, e i layer del prompt di sistema e del contesto del progetto sono invariati, quindi la richiesta successiva colpisce la voce della cache precedente. Ogni turno da allora ha letto attraverso quel prefisso, che ha mantenuto la voce calda anche se il turno originale era più tempo fa del TTL.214[`/rewind`](/it/checkpointing) tronca la tua conversazione a un turno precedente. La cronologia rimanente è lo stesso contenuto da cui la cache è stata costruita in quel momento, e i layer del prompt di sistema e del contesto del progetto sono invariati, quindi la richiesta successiva colpisce la voce della cache precedente. Ogni turno da allora ha letto attraverso quel prefisso, che ha mantenuto la voce calda anche se il turno originale era più tempo fa del TTL.

213 215 

214Il ripristino dei checkpoint dei file insieme alla conversazione non ha alcun effetto separato sulla cache. I contenuti dei file entrano nel contesto solo quando Claude li legge, come [editing files in your repository](#editing-files-in-your-repository).216Il ripristino dei checkpoint dei file insieme alla conversazione non ha alcun effetto separato sulla cache. I contenuti dei file entrano nel contesto solo quando Claude li legge, come [modifica dei file nel tuo repository](#editing-files-in-your-repository).

215 217 

216<h2 id="cache-lifetime">218<h2 id="cache-lifetime">

217 Cache lifetime219 Cache lifetime


219 221 

220I prefissi memorizzati nella cache scadono dopo un periodo di inattività. Ogni richiesta che colpisce la cache ripristina il timer, quindi la cache rimane calda finché continui a lavorare. Dopo un intervallo abbastanza lungo, la richiesta successiva ricalcola l'input completo e ristabilisce la cache, il che è il motivo per cui il primo turno di ritorno dopo essersi allontanato può essere notevolmente più lento.222I prefissi memorizzati nella cache scadono dopo un periodo di inattività. Ogni richiesta che colpisce la cache ripristina il timer, quindi la cache rimane calda finché continui a lavorare. Dopo un intervallo abbastanza lungo, la richiesta successiva ricalcola l'input completo e ristabilisce la cache, il che è il motivo per cui il primo turno di ritorno dopo essersi allontanato può essere notevolmente più lento.

221 223 

222Il time to live (TTL) controlla per quanto tempo un intervallo la cache sopravvive. L'API offre due: un TTL di cinque minuti e un [TTL di un'ora](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#1-hour-cache-duration) che mantiene la cache calda attraverso pause più lunghe ma [fattura le scritture della cache a una velocità più elevata](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing). Claude Code sceglie il TTL per te in base a come ti autentichi, e puoi sovrascriverlo con variabili di ambiente.224Il time to live (TTL) controlla per quanto tempo un intervallo la cache sopravvive. L'API offre due: un TTL di cinque minuti e un [TTL di un'ora](https://platform.claude.com/docs/it/build-with-claude/prompt-caching#1-hour-cache-duration) che mantiene la cache calda attraverso pause più lunghe ma [fattura le scritture della cache a una velocità più elevata](https://platform.claude.com/docs/it/build-with-claude/prompt-caching#pricing). Claude Code sceglie il TTL per te in base a come ti autentichi, e puoi sovrascriverlo con variabili di ambiente.

223 225 

224<h3 id="on-a-claude-subscription">226<h3 id="on-a-claude-subscription">

225 On a Claude subscription227 On a Claude subscription


233 On an API key or third-party provider235 On an API key or third-party provider

234</h3>236</h3>

235 237 

236Su una API key, Bedrock, Vertex, Foundry, o Claude Platform on AWS, paghi le tariffe per token, quindi il TTL rimane ai cinque minuti più economici per impostazione predefinita. Per optare per il [TTL di un'ora](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#1-hour-cache-duration), imposta `ENABLE_PROMPT_CACHING_1H=1`.238Su una API key, Bedrock, Vertex, Foundry, o Claude Platform on AWS, paghi le tariffe per token, quindi il TTL rimane ai cinque minuti più economici per impostazione predefinita. Per optare per il [TTL di un'ora](https://platform.claude.com/docs/it/build-with-claude/prompt-caching#1-hour-cache-duration), imposta `ENABLE_PROMPT_CACHING_1H=1`.

237 239 

238Su Bedrock, il supporto del prompt caching, la lunghezza minima del prefisso memorizzabile nella cache e la disponibilità del TTL di un'ora variano a seconda del modello. Se i conteggi dei token della cache rimangono a zero, controlla [supported models, regions, and limits](https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-caching.html#prompt-caching-models) nella documentazione di Bedrock.240Su Bedrock, il supporto del prompt caching, la lunghezza minima del prefisso memorizzabile nella cache e la disponibilità del TTL di un'ora variano a seconda del modello. Se i conteggi dei token della cache rimangono a zero, controlla [supported models, regions, and limits](https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-caching.html#prompt-caching-models) nella documentazione di Bedrock.

239 241 


251 253 

252Le sessioni che esegui in parallelo nella stessa directory costruiscono prefissi corrispondenti e leggono la cache l'una dell'altra. Le sessioni sequenziali condividono il prefisso solo quando lo snapshot dello stato git all'avvio corrisponde, poiché il prompt di sistema cattura anche il ramo e i commit recenti.254Le sessioni che esegui in parallelo nella stessa directory costruiscono prefissi corrispondenti e leggono la cache l'una dell'altra. Le sessioni sequenziali condividono il prefisso solo quando lo snapshot dello stato git all'avvio corrisponde, poiché il prompt di sistema cattura anche il ramo e i commit recenti.

253 255 

254La cache API sottostante è più ampia. Le cache sono isolate tra le organizzazioni e, su alcuni provider, [tra i workspace all'interno di un'organizzazione](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#cache-storage-and-sharing). All'interno di questi confini, qualsiasi due richieste con lo stesso modello e prefisso leggono la stessa cache. Per i chiamanti dell'Agent SDK che eseguono flotte di processi automatizzati, vedi [improve prompt caching across users and machines](/it/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) per sopprimere le sezioni per macchina del prompt di sistema e condividere la cache tra le macchine.256La cache API sottostante è più ampia. Le cache sono isolate tra le organizzazioni e, su alcuni provider, [tra i workspace all'interno di un'organizzazione](https://platform.claude.com/docs/it/build-with-claude/prompt-caching#cache-storage-and-sharing). All'interno di questi confini, qualsiasi due richieste con lo stesso modello e prefisso leggono la stessa cache. Per i chiamanti dell'Agent SDK che eseguono flotte di processi automatizzati, vedi [improve prompt caching across users and machines](/it/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) per sopprimere le sezioni per macchina del prompt di sistema e condividere la cache tra le macchine.

255 257 

256<h2 id="check-cache-performance">258<h2 id="check-cache-performance">

257 Check cache performance259 Verificare le prestazioni della cache

258</h2>260</h2>

259 261 

260Le prestazioni della cache si mostrano come due conteggi di token che l'API segnala su ogni risposta. Il modo più diretto per guardarli dal vivo è uno [statusline script](/it/statusline) che legge l'oggetto `current_usage`:262Le prestazioni della cache si mostrano come due conteggi di token che l'API segnala su ogni risposta. Il modo più diretto per guardarli dal vivo è uno [statusline script](/it/statusline) che legge l'oggetto `current_usage`:


279Un [fork](/it/sub-agents#fork-the-current-conversation), al contrario, eredita il prompt di sistema, gli strumenti e la cronologia della conversazione del genitore esattamente, quindi la sua prima richiesta legge la cache del genitore. La chiamata di riepilogo della compaction descritta in [Compacting the conversation](#compacting-the-conversation) utilizza lo stesso approccio di condivisione dei prefissi.281Un [fork](/it/sub-agents#fork-the-current-conversation), al contrario, eredita il prompt di sistema, gli strumenti e la cronologia della conversazione del genitore esattamente, quindi la sua prima richiesta legge la cache del genitore. La chiamata di riepilogo della compaction descritta in [Compacting the conversation](#compacting-the-conversation) utilizza lo stesso approccio di condivisione dei prefissi.

280 282 

281<h2 id="disable-prompt-caching">283<h2 id="disable-prompt-caching">

282 Disable prompt caching284 Disabilita prompt caching

283</h2>285</h2>

284 286 

285Disabilitare il caching è occasionalmente utile quando si esegue il debug del comportamento della cache con un modello o provider specifico. Per disattivarlo, imposta una di queste variabili di ambiente su `1`:287Disabilitare il caching è occasionalmente utile quando si esegue il debug del comportamento della cache con un modello o provider specifico. Per disattivarlo, imposta una di queste variabili di ambiente su `1`:


290| `DISABLE_PROMPT_CACHING_HAIKU` | Disabilita per Haiku solo |292| `DISABLE_PROMPT_CACHING_HAIKU` | Disabilita per Haiku solo |

291| `DISABLE_PROMPT_CACHING_SONNET` | Disabilita per Sonnet solo |293| `DISABLE_PROMPT_CACHING_SONNET` | Disabilita per Sonnet solo |

292| `DISABLE_PROMPT_CACHING_OPUS` | Disabilita per Opus solo |294| `DISABLE_PROMPT_CACHING_OPUS` | Disabilita per Opus solo |

295| `DISABLE_PROMPT_CACHING_FABLE` | Disabilita per Fable solo |

293 296 

294Per impostare la politica di caching in un'organizzazione, metti una di queste o le [TTL variables](#cache-lifetime) nel blocco `env` di [managed settings](/it/settings#settings-files). Per l'uso normale, lascia il caching abilitato.297Per impostare la politica di caching in un'organizzazione, metti una di queste o le [TTL variables](#cache-lifetime) nel blocco `env` di [managed settings](/it/settings#settings-files). Per l'uso normale, lascia il caching abilitato.

295 298 

296<h2 id="related-resources">299<h2 id="related-resources">

297 Related resources300 Risorse correlate

298</h2>301</h2>

299 302 

300* [Lessons from building Claude Code: Prompt caching is everything](https://claude.com/blog/lessons-from-building-claude-code-prompt-caching-is-everything): la logica di progettazione per la modalità piano, il caricamento differito degli strumenti e la compaction303* [Lessons from building Claude Code: Prompt caching is everything](https://claude.com/blog/lessons-from-building-claude-code-prompt-caching-is-everything): la logica di progettazione per la modalità piano, il caricamento differito degli strumenti e la compaction

quickstart.md +12 −5

Details

118claude118claude

119```119```

120 120 

121Vedrai la schermata di benvenuto di Claude Code con le informazioni della tua sessione, le conversazioni recenti e gli ultimi aggiornamenti. Digita `/help` per i comandi disponibili o `/resume` per continuare una conversazione precedente.121Vedrai il prompt di Claude Code con la versione, il modello attuale e la directory di lavoro mostrati sopra. Digita `/help` per i comandi disponibili o `/resume` per continuare una conversazione precedente.

122 122 

123<Tip>123<Tip>

124 Dopo aver effettuato l'accesso (Passaggio 2), le tue credenziali vengono archiviate sul tuo sistema. Scopri di più in [Gestione delle credenziali](/it/authentication#credential-management).124 Dopo aver effettuato l'accesso (Passaggio 2), le tue credenziali vengono archiviate sul tuo sistema. Scopri di più in [Gestione delle credenziali](/it/authentication#credential-management).


278 Comandi essenziali278 Comandi essenziali

279</h2>279</h2>

280 280 

281Ecco i comandi più importanti per l'uso quotidiano:281Ecco i comandi più importanti per l'uso quotidiano. I comandi shell vengono eseguiti dal vostro terminale per avviare o riprendere Claude Code. I comandi di sessione vengono eseguiti all'interno di Claude Code dopo l'avvio.

282 

283**Comandi shell**

282 284 

283| Comando | Cosa fa | Esempio |285| Comando | Cosa fa | Esempio |

284| ------------------- | -------------------------------------------------------------- | ----------------------------------- |286| ------------------- | -------------------------------------------------------------- | ----------------------------------- |


287| `claude -p "query"` | Esegui una query una tantum, quindi esci | `claude -p "explain this function"` |289| `claude -p "query"` | Esegui una query una tantum, quindi esci | `claude -p "explain this function"` |

288| `claude -c` | Continua la conversazione più recente nella directory corrente | `claude -c` |290| `claude -c` | Continua la conversazione più recente nella directory corrente | `claude -c` |

289| `claude -r` | Riprendi una conversazione precedente | `claude -r` |291| `claude -r` | Riprendi una conversazione precedente | `claude -r` |

292 

293**Comandi di sessione**

294 

295| Comando | Cosa fa | Esempio |

296| ---------------- | ------------------------------------------ | -------- |

290| `/clear` | Cancella la cronologia della conversazione | `/clear` |297| `/clear` | Cancella la cronologia della conversazione | `/clear` |

291| `/help` | Mostra i comandi disponibili | `/help` |298| `/help` | Mostra i comandi disponibili | `/help` |

292| `exit` o Ctrl+D | Esci da Claude Code | `exit` |299| `/exit` o Ctrl+D | Esci da Claude Code | `/exit` |

293 300 

294Vedi il [riferimento CLI](/it/cli-reference) per un elenco completo dei comandi.301Vedi il [riferimento CLI](/it/cli-reference) per l'elenco completo dei comandi shell e il [riferimento comandi](/it/commands) per l'elenco completo dei comandi di sessione.

295 302 

296<h2 id="pro-tips-for-beginners">303<h2 id="pro-tips-for-beginners">

297 Suggerimenti professionali per i principianti304 Suggerimenti professionali per i principianti


336 </Accordion>343 </Accordion>

337</AccordionGroup>344</AccordionGroup>

338 345 

339<h2 id="what-s-next">346<h2 id="whats-next">

340 Cosa fare dopo?347 Cosa fare dopo?

341</h2>348</h2>

342 349 

remote-control.md +22 −11

Details

93 /remote-control My Project93 /remote-control My Project

94 ```94 ```

95 95 

96 Questo avvia una sessione Remote Control che mantiene la cronologia della conversazione corrente e visualizza un URL di sessione e un codice QR che puoi utilizzare per [connetterti da un altro dispositivo](#connect-from-another-device). I flag `--verbose`, `--sandbox` e `--no-sandbox` non sono disponibili con questo comando.96 Questo avvia una sessione Remote Control che mantiene la cronologia della conversazione corrente.

97 

98 I flag `--verbose`, `--sandbox` e `--no-sandbox` non sono disponibili con questo comando.

97 </Tab>99 </Tab>

98 100 

99 <Tab title="VS Code">101 <Tab title="VS Code">


111 </Tab>113 </Tab>

112</Tabs>114</Tabs>

113 115 

116<h3 id="check-connection-status">

117 Verifica lo stato della connessione

118</h3>

119 

120In una sessione di terminale interattiva, un indicatore `/rc active` si trova nel footer sotto la casella di input mentre la connessione è attiva, ed è nascosto se il terminale è troppo stretto per contenerlo. Il testo dell'indicatore è un collegamento alla sessione su claude.ai. Selezionalo con il tasto freccia giù e premi Invio, oppure esegui `/remote-control` di nuovo, per aprire un pannello di stato con l'URL della sessione e un codice QR che puoi utilizzare per [connetterti da un altro dispositivo](#connect-from-another-device).

121 

122Se la connessione non riesce, l'indicatore diventa rosso e legge `/rc failed`. Selezionalo con il tasto freccia giù e premi Invio per vedere il motivo dell'errore e un'opzione di chiusura, oppure esegui `/remote-control` di nuovo per riprovare.

123 

114<h3 id="connect-from-another-device">124<h3 id="connect-from-another-device">

115 Connettiti da un altro dispositivo125 Connettiti da un altro dispositivo

116</h3>126</h3>


1283. L'ultimo messaggio significativo nella cronologia della conversazione esistente1383. L'ultimo messaggio significativo nella cronologia della conversazione esistente

1294. Un nome generato automaticamente come `myhost-graceful-unicorn`, dove `myhost` è il nome host della tua macchina o il prefisso che hai impostato con `--remote-control-session-name-prefix`1394. Un nome generato automaticamente come `myhost-graceful-unicorn`, dove `myhost` è il nome host della tua macchina o il prefisso che hai impostato con `--remote-control-session-name-prefix`

130 140 

131Se non hai impostato un nome esplicito, il titolo si aggiorna per riflettere il tuo prompt una volta che ne invii uno. Rinominare una sessione da claude.ai o dall'app Claude aggiorna anche il titolo locale mostrato in `claude --resume`.141Se non hai impostato un nome esplicito, il titolo si aggiorna per riflettere il tuo prompt una volta che ne invii uno. {/* min-version: 2.1.176 */}A partire da Claude Code v2.1.176, i titoli generati automaticamente corrispondono alla lingua della tua conversazione, o all'impostazione [`language`](/it/settings#available-settings) se ne è configurata una. Rinominare una sessione da claude.ai o dall'app Claude aggiorna anche il titolo locale mostrato in `claude --resume`.

132 142 

133Se l'ambiente ha già una sessione attiva, ti verrà chiesto se continuarla o avviarne una nuova.143Se l'ambiente ha già una sessione attiva, ti verrà chiesto se continuarla o avviarne una nuova.

134 144 


164 174 

165Quando Remote Control è attivo, Claude può inviare notifiche push al tuo telefono.175Quando Remote Control è attivo, Claude può inviare notifiche push al tuo telefono.

166 176 

167Claude decide quando inviare una notifica. Tipicamente ne invia una quando un'attività a lunga esecuzione termina o quando ha bisogno di una decisione da te per continuare. Puoi anche richiedere una notifica nel tuo prompt, ad esempio `notify me when the tests finish`. Oltre all'interruttore on/off qui sotto, non c'è configurazione per evento.177Claude decide quando inviare una notifica. Tipicamente ne invia una quando un'attività a lunga esecuzione termina o quando ha bisogno di una decisione da te per continuare. Puoi anche richiedere una notifica nel tuo prompt, ad esempio `notify me when the tests finish`. Oltre ai due interruttori on/off qui sotto, non c'è configurazione per evento.

168 178 

169<Note>179<Note>

170 Le notifiche push mobili richiedono Claude Code v2.1.110 o successivo.180 Le notifiche push mobili richiedono Claude Code v2.1.110 o successivo.


186 </Step>196 </Step>

187 197 

188 <Step title="Abilita push in Claude Code">198 <Step title="Abilita push in Claude Code">

189 Nel tuo terminale, esegui `/config` e abilita **Push when Claude decides**.199 Nel tuo terminale, esegui `/config` e abilita **Push when Claude decides** per notifiche proattive, **Push when actions required** per prompt di autorizzazione e domande, o entrambi.

190 </Step>200 </Step>

191</Steps>201</Steps>

192 202 


204* **Il processo locale deve continuare a funzionare**: Remote Control viene eseguito come processo locale. Se chiudi il terminale, esci da VS Code, o altrimenti interrompi il processo `claude`, la sessione termina.214* **Il processo locale deve continuare a funzionare**: Remote Control viene eseguito come processo locale. Se chiudi il terminale, esci da VS Code, o altrimenti interrompi il processo `claude`, la sessione termina.

205* **Interruzione di rete prolungata**: se la tua macchina è accesa ma non riesce a raggiungere la rete per più di circa 10 minuti, la sessione scade e il processo esce. Esegui di nuovo `claude remote-control` per avviare una nuova sessione.215* **Interruzione di rete prolungata**: se la tua macchina è accesa ma non riesce a raggiungere la rete per più di circa 10 minuti, la sessione scade e il processo esce. Esegui di nuovo `claude remote-control` per avviare una nuova sessione.

206* **Ultraplan disconnette Remote Control**: avviare una sessione [ultraplan](/it/ultraplan) disconnette qualsiasi sessione Remote Control attiva perché entrambe le funzioni occupano l'interfaccia claude.ai/code e solo una può essere connessa alla volta.216* **Ultraplan disconnette Remote Control**: avviare una sessione [ultraplan](/it/ultraplan) disconnette qualsiasi sessione Remote Control attiva perché entrambe le funzioni occupano l'interfaccia claude.ai/code e solo una può essere connessa alla volta.

207* **Alcuni comandi sono solo locali**: i comandi che aprono un selettore interattivo nel terminale, come `/mcp`, `/plugin`, o `/resume`, funzionano solo dalla CLI locale. I comandi che producono output di testo, inclusi `/compact`, `/clear`, `/context`, `/usage`, `/exit`, `/usage-credits`, `/recap`, e `/reload-plugins`, funzionano da mobile e web.217* **Alcuni comandi sono solo locali**: i comandi che aprono un selettore interattivo nel terminale, come `/plugin` o `/resume`, funzionano solo dalla CLI locale. I comandi che producono output di testo, inclusi `/compact`, `/clear`, `/context`, `/usage`, `/exit`, `/usage-credits`, `/recap`, e `/reload-plugins`, funzionano da mobile e web. {/* min-version: 2.1.166 */}A partire dalla v2.1.166, `/mcp` funziona anche da mobile e web: restituisce un riepilogo testuale dello stato del server invece di aprire il selettore, e accetta gli stessi [sottocomandi](/it/commands#all-commands) della CLI locale, con una differenza: da mobile e web, `/mcp reconnect` senza nome del server riconnette ogni server che ha avuto un errore o necessita autenticazione, mentre la CLI locale richiede un nome del server per `reconnect`.

208 218 

209<h2 id="troubleshooting">219<h2 id="troubleshooting">

210 Risoluzione dei problemi220 Risoluzione dei problemi


232 "Remote Control is not yet enabled for your account"242 "Remote Control is not yet enabled for your account"

233</h3>243</h3>

234 244 

235Il controllo di idoneità può fallire con determinate variabili di ambiente presenti:245Il rollout di Remote Control non ha raggiunto il tuo account, oppure i tuoi diritti memorizzati nella cache sono obsoleti. Se hai recentemente cambiato piano, esegui `claude auth logout` quindi `claude auth login` per aggiornarli. Esegui `claude doctor` per vedere quale controllo di idoneità individuale ha fallito. I conflitti delle variabili di ambiente, i controlli non raggiungibili e la politica organizzativa producono ciascuno il proprio messaggio, quindi questo errore significa il gate di rollout stesso.

236 246 

237* `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` o `DISABLE_TELEMETRY`: annulla l'impostazione e riprova.247<h3 id="couldn’t-verify-remote-control-eligibility">

238* `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_VERTEX`, o `CLAUDE_CODE_USE_FOUNDRY`: Remote Control richiede l'autenticazione claude.ai e non funziona con provider di terze parti.248 "Couldn't verify Remote Control eligibility"

249</h3>

239 250 

240Se nessuno di questi è impostato, esegui `/logout` quindi `/login` per aggiornare.251Claude Code non ha potuto raggiungere il servizio di feature-flag per verificare se Remote Control è abilitato per il tuo account, in genere perché sei offline o un proxy sta bloccando la richiesta. Riprova una volta che hai accesso alla rete, oppure esegui `claude doctor` per i dettagli. Il messaggio correlato "Couldn't verify your organization's Remote Control policy" ha la stessa causa e la stessa soluzione. Entrambi i messaggi sono stati aggiunti nella v2.1.178.

241 252 

242<h3 id="remote-control-is-disabled-by-your-organization-s-policy">253<h3 id="remote-control-is-disabled-by-your-organizations-policy">

243 "Remote Control is disabled by your organization's policy"254 "Remote Control is disabled by your organization's policy"

244</h3>255</h3>

245 256 

246Questo errore ha quattro cause distinte. Esegui prima `/status` per vedere quale metodo di accesso e abbonamento stai utilizzando.257Questo errore ha quattro cause distinte. Esegui `/status` prima per vedere quale metodo di accesso e abbonamento stai utilizzando.

247 258 

248* **Sei autenticato con una chiave API o un account Console**: Remote Control richiede OAuth claude.ai. Esegui `/login` e scegli l'opzione claude.ai. Se `ANTHROPIC_API_KEY` è impostato nel tuo ambiente, annulla l'impostazione.259* **Sei autenticato con una chiave API o un account Console**: Remote Control richiede OAuth claude.ai. Esegui `/login` e scegli l'opzione claude.ai. Se `ANTHROPIC_API_KEY` è impostato nel tuo ambiente, annulla l'impostazione.

249* **Il tuo amministratore di Team o Enterprise non l'ha abilitato**: Remote Control è disabilitato per impostazione predefinita su questi piani. Un amministratore può abilitarlo su [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) attivando l'interruttore **Remote Control**. Questo interruttore è un'impostazione organizzativa lato server.260* **Il tuo amministratore di Team o Enterprise non l'ha abilitato**: Remote Control è disabilitato per impostazione predefinita su questi piani. Un amministratore può abilitarlo su [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) attivando l'interruttore **Remote Control**. Questo interruttore è un'impostazione organizzativa lato server.

routines.md +77 −27

Details

26 26 

27Questa pagina copre la creazione di una routine, la configurazione di ogni tipo di trigger, la gestione delle esecuzioni e come si applicano i limiti di utilizzo.27Questa pagina copre la creazione di una routine, la configurazione di ogni tipo di trigger, la gestione delle esecuzioni e come si applicano i limiti di utilizzo.

28 28 

29## Esempi di casi d'uso29<h2 id="example-use-cases">

30 Esempi di casi d'uso

31</h2>

30 32 

31Ogni esempio abbina un tipo di trigger al tipo di lavoro per cui le routine sono adatte: incustodito, ripetibile e legato a un risultato chiaro.33Ogni esempio abbina un tipo di trigger al tipo di lavoro per cui le routine sono adatte: incustodito, ripetibile e legato a un risultato chiaro.

32 34 


44 46 

45Le sezioni seguenti illustrano come creare una routine e configurare ognuno di questi tipi di trigger.47Le sezioni seguenti illustrano come creare una routine e configurare ognuno di questi tipi di trigger.

46 48 

47## Creare una routine49<h2 id="create-a-routine">

50 Creare una routine

51</h2>

48 52 

49Crea una routine dal web su [claude.ai/code/routines](https://claude.ai/code/routines), dall'app Desktop o dalla CLI. Tutte e tre le superfici scrivono nello stesso account cloud, quindi una routine che crei in una appare nelle altre immediatamente. Nell'app Desktop, fai clic su **Routines** nella barra laterale, quindi su **New routine**, e scegli **Remote**; scegliere **Local** invece crea un [Desktop scheduled task](/it/desktop-scheduled-tasks), che viene eseguito sulla tua macchina piuttosto che nel cloud.53Crea una routine dal web su [claude.ai/code/routines](https://claude.ai/code/routines), dall'app Desktop o dalla CLI. Tutte e tre le superfici scrivono nello stesso account cloud, quindi una routine che crei in una appare nelle altre immediatamente. Nell'app Desktop, fai clic su **Routines** nella barra laterale, quindi su **New routine**, e scegli **Remote**; scegliere **Local** invece crea un [Desktop scheduled task](/it/desktop-scheduled-tasks), che viene eseguito sulla tua macchina piuttosto che nel cloud.

50 54 


54 58 

55Le 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.59Le 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.

56 60 

57### Creare dal web61<h3 id="create-from-the-web">

62 Creare dal web

63</h3>

58 64 

59<Steps>65<Steps>

60 <Step title="Apri il modulo di creazione">66 <Step title="Apri il modulo di creazione">


114 </Step>120 </Step>

115</Steps>121</Steps>

116 122 

117### Creare dalla CLI123<h3 id="create-from-the-cli">

124 Creare dalla CLI

125</h3>

118 126 

119Esegui `/schedule` in qualsiasi sessione per creare una routine pianificata in modo conversazionale. Puoi anche passare una descrizione direttamente, per una routine ricorrente come `/schedule daily PR review at 9am` o una una tantum come `/schedule clean up feature flag in one week`. Claude esamina le stesse informazioni che il modulo web raccoglie, quindi salva la routine nel tuo account.127Esegui `/schedule` in qualsiasi sessione per creare una routine pianificata in modo conversazionale. Puoi anche passare una descrizione direttamente, per una routine ricorrente come `/schedule daily PR review at 9am` o una una tantum come `/schedule clean up feature flag in one week`. Claude esamina le stesse informazioni che il modulo web raccoglie, quindi salva la routine nel tuo account.

120 128 


122 130 

123La CLI supporta anche la gestione delle routine esistenti. Esegui `/schedule list` per vedere tutte le routine, `/schedule update` per modificarne una, o `/schedule run` per attivarla immediatamente.131La CLI supporta anche la gestione delle routine esistenti. Esegui `/schedule list` per vedere tutte le routine, `/schedule update` per modificarne una, o `/schedule run` per attivarla immediatamente.

124 132 

125## Configurare i trigger133<h2 id="configure-triggers">

134 Configurare i trigger

135</h2>

126 136 

127Una routine inizia quando uno dei suoi trigger corrisponde. Puoi allegare qualsiasi combinazione di trigger di pianificazione, API e GitHub alla stessa routine e aggiungerli o rimuoverli in qualsiasi momento dalla sezione **Select a trigger** del modulo di modifica della routine.137Una routine inizia quando uno dei suoi trigger corrisponde. Puoi allegare qualsiasi combinazione di trigger di pianificazione, API e GitHub alla stessa routine e aggiungerli o rimuoverli in qualsiasi momento dalla sezione **Select a trigger** del modulo di modifica della routine.

128 138 

129### Aggiungi un trigger di pianificazione139<h3 id="add-a-schedule-trigger">

140 Aggiungi un trigger di pianificazione

141</h3>

130 142 

131Un trigger di pianificazione esegue la routine su una cadenza ricorrente, o una sola volta a un momento futuro specifico. Scegli una frequenza preimpostata nella sezione **Select a trigger**: oraria, giornaliera, giorni feriali o settimanale. I tempi vengono inseriti nella tua zona locale e convertiti automaticamente, quindi la routine viene eseguita a quell'ora di parete indipendentemente da dove si trova l'infrastruttura cloud.143Un trigger di pianificazione esegue la routine su una cadenza ricorrente, o una sola volta a un momento futuro specifico. Scegli una frequenza preimpostata nella sezione **Select a trigger**: oraria, giornaliera, giorni feriali o settimanale. I tempi vengono inseriti nella tua zona locale e convertiti automaticamente, quindi la routine viene eseguita a quell'ora di parete indipendentemente da dove si trova l'infrastruttura cloud.

132 144 


134 146 

135Per un intervallo personalizzato come ogni due ore o il primo di ogni mese, scegli il preset più vicino nel modulo, quindi esegui `/schedule update` nella CLI per impostare un'espressione cron specifica. L'intervallo minimo è un'ora; le espressioni che vengono eseguite più frequentemente vengono rifiutate.147Per un intervallo personalizzato come ogni due ore o il primo di ogni mese, scegli il preset più vicino nel modulo, quindi esegui `/schedule update` nella CLI per impostare un'espressione cron specifica. L'intervallo minimo è un'ora; le espressioni che vengono eseguite più frequentemente vengono rifiutate.

136 148 

137#### Pianifica un'esecuzione una tantum149<h4 id="schedule-a-one-off-run">

150 Pianifica un'esecuzione una tantum

151</h4>

138 152 

139Una pianificazione una tantum attiva la routine una sola volta a un timestamp specifico. Usala per ricordarti più tardi nella settimana, per aprire una PR di pulizia dopo che un rollout finisce, o per avviare un'attività di follow-up quando un cambiamento upstream arriva. Dopo che la routine si attiva, si disabilita automaticamente e l'interfaccia utente web la contrassegna come **Ran**. Per eseguirla di nuovo, modifica la routine e imposta un nuovo orario una tantum.153Una pianificazione una tantum attiva la routine una sola volta a un timestamp specifico. Usala per ricordarti più tardi nella settimana, per aprire una PR di pulizia dopo che un rollout finisce, o per avviare un'attività di follow-up quando un cambiamento upstream arriva. Dopo che la routine si attiva, si disabilita automaticamente e l'interfaccia utente web la contrassegna come **Ran**. Per eseguirla di nuovo, modifica la routine e imposta un nuovo orario una tantum.

140 154 


152 166 

153Le esecuzioni una tantum non contano rispetto al limite di esecuzione della routine giornaliera. Consumano l'utilizzo della sottoscrizione regolare del tuo piano come qualsiasi altra sessione. Vedi [Usage and limits](#usage-and-limits) per i dettagli.167Le esecuzioni una tantum non contano rispetto al limite di esecuzione della routine giornaliera. Consumano l'utilizzo della sottoscrizione regolare del tuo piano come qualsiasi altra sessione. Vedi [Usage and limits](#usage-and-limits) per i dettagli.

154 168 

155### Aggiungi un trigger API169<h3 id="add-an-api-trigger">

170 Aggiungi un trigger API

171</h3>

156 172 

157Un trigger API fornisce a una routine un endpoint HTTP dedicato. POSTing all'endpoint con il token bearer della routine avvia una nuova sessione e restituisce un URL di sessione. Usalo per collegare Claude Code nei sistemi di avviso, pipeline di distribuzione, strumenti interni o ovunque tu possa fare una richiesta HTTP autenticata.173Un trigger API fornisce a una routine un endpoint HTTP dedicato. POSTing all'endpoint con il token bearer della routine avvia una nuova sessione e restituisce un URL di sessione. Usalo per collegare Claude Code nei sistemi di avviso, pipeline di distribuzione, strumenti interni o ovunque tu possa fare una richiesta HTTP autenticata.

158 174 


178 194 

179Ogni routine ha il suo token, limitato all'attivazione di quella routine sola. Per ruotarlo o revocarlo, torna allo stesso modale e fai clic su **Regenerate** o **Revoke**.195Ogni routine ha il suo token, limitato all'attivazione di quella routine sola. Per ruotarlo o revocarlo, torna allo stesso modale e fai clic su **Regenerate** o **Revoke**.

180 196 

181#### Attiva una routine197<h4 id="trigger-a-routine">

198 Attiva una routine

199</h4>

182 200 

183Invia una richiesta POST all'endpoint `/fire` con il token bearer nell'intestazione `Authorization`. Il corpo della richiesta accetta un campo `text` facoltativo per il contesto specifico dell'esecuzione come un corpo di avviso o un log in errore, passato alla routine insieme al suo prompt salvato. Il valore è testo libero e non viene analizzato: se invii JSON o un altro payload strutturato, la routine lo riceve come stringa letterale.201Invia una richiesta POST all'endpoint `/fire` con il token bearer nell'intestazione `Authorization`. Il corpo della richiesta accetta un campo `text` facoltativo per il contesto specifico dell'esecuzione come un corpo di avviso o un log in errore, passato alla routine insieme al suo prompt salvato. Il valore è testo libero e non viene analizzato: se invii JSON o un altro payload strutturato, la routine lo riceve come stringa letterale.

184 202 


209 L'endpoint `/fire` viene fornito con l'intestazione beta `experimental-cc-routine-2026-04-01`. Le forme di richiesta e risposta, i limiti di velocità e la semantica dei token potrebbero cambiare mentre la funzione è in anteprima di ricerca. Le modifiche di rilievo vengono fornite dietro nuove versioni di intestazione beta con data, e le due versioni di intestazione precedenti più recenti continuano a funzionare in modo che i chiamanti abbiano tempo per migrare.227 L'endpoint `/fire` viene fornito con l'intestazione beta `experimental-cc-routine-2026-04-01`. Le forme di richiesta e risposta, i limiti di velocità e la semantica dei token potrebbero cambiare mentre la funzione è in anteprima di ricerca. Le modifiche di rilievo vengono fornite dietro nuove versioni di intestazione beta con data, e le due versioni di intestazione precedenti più recenti continuano a funzionare in modo che i chiamanti abbiano tempo per migrare.

210</Warning>228</Warning>

211 229 

212#### Riferimento API230<h4 id="api-reference">

231 Riferimento API

232</h4>

213 233 

214Per il riferimento API completo, incluse tutte le risposte di errore, le regole di convalida e i limiti dei campi, vedi [Trigger a routine via API](https://platform.claude.com/docs/it/api/claude-code/routines-fire) nella documentazione della piattaforma Claude.234Per il riferimento API completo, incluse tutte le risposte di errore, le regole di convalida e i limiti dei campi, vedi [Trigger a routine via API](https://platform.claude.com/docs/it/api/claude-code/routines-fire) nella documentazione della piattaforma Claude.

215 235 

216L'endpoint `/fire` è disponibile solo per gli utenti di claude.ai e non fa parte della superficie dell'API della piattaforma Claude.236L'endpoint `/fire` è disponibile solo per gli utenti di claude.ai e non fa parte della superficie dell'API della piattaforma Claude.

217 237 

218### Aggiungi un trigger GitHub238<h3 id="add-a-github-trigger">

239 Aggiungi un trigger GitHub

240</h3>

219 241 

220Un trigger GitHub avvia una nuova sessione automaticamente quando si verifica un evento corrispondente su un repository connesso. Ogni evento corrispondente avvia la sua sessione.242Un trigger GitHub avvia una nuova sessione automaticamente quando si verifica un evento corrispondente su un repository connesso. Ogni evento corrispondente avvia la sua sessione.

221 243 


247 </Step>269 </Step>

248</Steps>270</Steps>

249 271 

250#### Eventi supportati272<h4 id="supported-events">

273 Eventi supportati

274</h4>

251 275 

252I trigger GitHub possono sottoscriversi a una delle seguenti categorie di eventi. All'interno di ogni categoria puoi scegliere un'azione specifica, come `pull_request.opened`, o reagire a tutte le azioni nella categoria.276I trigger GitHub possono sottoscriversi a una delle seguenti categorie di eventi. All'interno di ogni categoria puoi scegliere un'azione specifica, come `pull_request.opened`, o reagire a tutte le azioni nella categoria.

253 277 


256| Pull request | Un PR viene aperto, chiuso, assegnato, etichettato, sincronizzato o altrimenti aggiornato |280| Pull request | Un PR viene aperto, chiuso, assegnato, etichettato, sincronizzato o altrimenti aggiornato |

257| Release | Un rilascio viene creato, pubblicato, modificato o eliminato |281| Release | Un rilascio viene creato, pubblicato, modificato o eliminato |

258 282 

259#### Filtra le pull request283<h4 id="filter-pull-requests">

284 Filtra le pull request

285</h4>

260 286 

261Usa i filtri per restringere quali pull request avviano una nuova sessione. Tutte le condizioni di filtro devono corrispondere affinché la routine si attivi. I campi di filtro disponibili sono:287Usa i filtri per restringere quali pull request avviano una nuova sessione. Tutte le condizioni di filtro devono corrispondere affinché la routine si attivi. I campi di filtro disponibili sono:

262 288 


281* **Ready-for-review only**: is draft is `false`. Salta le bozze in modo che la routine venga eseguita solo quando il PR è pronto per la revisione.307* **Ready-for-review only**: is draft is `false`. Salta le bozze in modo che la routine venga eseguita solo quando il PR è pronto per la revisione.

282* **Label-gated backport**: labels include `needs-backport`. Attiva una routine di port-to-another-branch solo quando un manutentore etichetta il PR.308* **Label-gated backport**: labels include `needs-backport`. Attiva una routine di port-to-another-branch solo quando un manutentore etichetta il PR.

283 309 

284#### Come le sessioni si mappano agli eventi310<h4 id="how-sessions-map-to-events">

311 Come le sessioni si mappano agli eventi

312</h4>

285 313 

286Ogni evento GitHub corrispondente avvia una nuova sessione. Il riutilizzo della sessione tra gli eventi non è disponibile per le routine attivate da GitHub, quindi due aggiornamenti PR producono due sessioni indipendenti.314Ogni evento GitHub corrispondente avvia una nuova sessione. Il riutilizzo della sessione tra gli eventi non è disponibile per le routine attivate da GitHub, quindi due aggiornamenti PR producono due sessioni indipendenti.

287 315 

288## Gestisci le routine316<h2 id="manage-routines">

317 Gestisci le routine

318</h2>

289 319 

290Fai clic su una routine nell'elenco per aprire la sua pagina di dettagli. La pagina dei dettagli mostra i repository della routine, i connector, il prompt, la pianificazione, i token API, i trigger GitHub e un elenco delle esecuzioni passate.320Fai clic su una routine nell'elenco per aprire la sua pagina di dettagli. La pagina dei dettagli mostra i repository della routine, i connector, il prompt, la pianificazione, i token API, i trigger GitHub e un elenco delle esecuzioni passate.

291 321 

292### Visualizza e interagisci con le esecuzioni322<h3 id="view-and-interact-with-runs">

323 Visualizza e interagisci con le esecuzioni

324</h3>

293 325 

294Fai clic su qualsiasi esecuzione per aprirla come sessione completa. Da lì puoi vedere cosa ha fatto Claude, rivedere le modifiche, creare una pull request o continuare la conversazione. Ogni sessione di esecuzione funziona come qualsiasi altra sessione: usa il menu a discesa accanto al titolo della sessione per rinominare, archiviare o eliminare.326Fai clic su qualsiasi esecuzione per aprirla come sessione completa. Da lì puoi vedere cosa ha fatto Claude, rivedere le modifiche, creare una pull request o continuare la conversazione. Ogni sessione di esecuzione funziona come qualsiasi altra sessione: usa il menu a discesa accanto al titolo della sessione per rinominare, archiviare o eliminare.

295 327 


297 Uno stato verde nell'elenco delle esecuzioni significa che la sessione è stata avviata e chiusa senza un errore di infrastruttura. Non significa che l'attività nel tuo prompt sia riuscita. Apri l'esecuzione per leggere la trascrizione e confermare cosa ha effettivamente fatto Claude. Le richieste di rete bloccate, gli strumenti connector mancanti e i guasti a livello di attività vengono visualizzati lì piuttosto che nell'indicatore di stato.329 Uno stato verde nell'elenco delle esecuzioni significa che la sessione è stata avviata e chiusa senza un errore di infrastruttura. Non significa che l'attività nel tuo prompt sia riuscita. Apri l'esecuzione per leggere la trascrizione e confermare cosa ha effettivamente fatto Claude. Le richieste di rete bloccate, gli strumenti connector mancanti e i guasti a livello di attività vengono visualizzati lì piuttosto che nell'indicatore di stato.

298</Note>330</Note>

299 331 

300### Modifica e controlla le routine332<h3 id="edit-and-control-routines">

333 Modifica e controlla le routine

334</h3>

301 335 

302Dalla pagina dei dettagli della routine puoi:336Dalla pagina dei dettagli della routine puoi:

303 337 


306* Fai clic sull'icona della matita per aprire **Edit routine** e modificare il nome, il prompt, i repository, l'ambiente, i connector o uno qualsiasi dei trigger della routine. La sezione **Select a trigger** è dove aggiungi o rimuovi pianificazioni, token API e trigger di eventi GitHub.340* Fai clic sull'icona della matita per aprire **Edit routine** e modificare il nome, il prompt, i repository, l'ambiente, i connector o uno qualsiasi dei trigger della routine. La sezione **Select a trigger** è dove aggiungi o rimuovi pianificazioni, token API e trigger di eventi GitHub.

307* Fai clic sull'icona di eliminazione per rimuovere la routine. Le sessioni passate create dalla routine rimangono nell'elenco delle sessioni.341* Fai clic sull'icona di eliminazione per rimuovere la routine. Le sessioni passate create dalla routine rimangono nell'elenco delle sessioni.

308 342 

309### Repository e autorizzazioni di ramo343<h3 id="repositories-and-branch-permissions">

344 Repository e autorizzazioni di ramo

345</h3>

310 346 

311Le routine necessitano dell'accesso a GitHub per clonare i repository. Quando crei una routine dalla CLI con `/schedule`, Claude verifica se il tuo account ha GitHub connesso e ti chiede di eseguire `/web-setup` se non lo è. Vedi [GitHub authentication options](/it/claude-code-on-the-web#github-authentication-options) per i due modi per concedere l'accesso.347Le routine necessitano dell'accesso a GitHub per clonare i repository. Quando crei una routine dalla CLI con `/schedule`, Claude verifica se il tuo account ha GitHub connesso e ti chiede di eseguire `/web-setup` se non lo è. Vedi [Opzioni di autenticazione GitHub](/it/claude-code-on-the-web#github-authentication-options) per i due modi per concedere l'accesso.

312 348 

313Ogni repository che aggiungi viene clonato su ogni esecuzione. Claude inizia dal ramo predefinito del repository a meno che il tuo prompt non specifichi diversamente.349Ogni repository che aggiungi viene clonato su ogni esecuzione. Claude inizia dal ramo predefinito del repository a meno che il tuo prompt non specifichi diversamente.

314 350 

315Per impostazione predefinita, Claude può solo eseguire il push ai rami con prefisso `claude/`. Questo impedisce alle routine di modificare accidentalmente rami protetti o di lunga durata. Per rimuovere questa restrizione per un repository specifico, abilita **Allow unrestricted branch pushes** per quel repository quando crei o modifichi la routine.351Per impostazione predefinita, Claude può solo eseguire il push ai rami con prefisso `claude/`. Questo impedisce alle routine di modificare accidentalmente rami protetti o di lunga durata. Per rimuovere questa restrizione per un repository specifico, abilita **Allow unrestricted branch pushes** per quel repository quando crei o modifichi la routine.

316 352 

317### Connector353<h3 id="connectors">

354 Connector

355</h3>

318 356 

319Le routine possono utilizzare i tuoi MCP connector connessi per leggere e scrivere nei servizi esterni durante ogni esecuzione. Ad esempio, una routine che triage le richieste di supporto potrebbe leggere da un canale Slack e creare problemi in Linear.357Le routine possono utilizzare i tuoi MCP connector connessi per leggere e scrivere nei servizi esterni durante ogni esecuzione. Ad esempio, una routine che triage le richieste di supporto potrebbe leggere da un canale Slack e creare problemi in Linear.

320 358 


324 362 

325Per gestire o aggiungere connector al di fuori del modulo della routine, visita **Settings > Connectors** su claude.ai o usa `/schedule update` nella CLI.363Per gestire o aggiungere connector al di fuori del modulo della routine, visita **Settings > Connectors** su claude.ai o usa `/schedule update` nella CLI.

326 364 

327### Ambienti e accesso di rete365<h3 id="environments-and-network-access">

366 Ambienti e accesso di rete

367</h3>

328 368 

329Ogni routine viene eseguita in un [cloud environment](/it/claude-code-on-the-web#the-cloud-environment) che controlla l'accesso di rete, le variabili di ambiente e gli script di configurazione. La routine eredita la politica di rete dell'ambiente su ogni esecuzione.369Ogni routine viene eseguita in un [cloud environment](/it/claude-code-on-the-web#the-cloud-environment) che controlla l'accesso di rete, le variabili di ambiente e gli script di configurazione. La routine eredita la politica di rete dell'ambiente su ogni esecuzione.

330 370 

331L'ambiente **Default** utilizza l'accesso di rete **Trusted**: l'[elenco di autorizzazione predefinito](/it/claude-code-on-the-web#default-allowed-domains) dei registri di pacchetti, delle API dei provider cloud, dei registri di container e dei domini di sviluppo comuni è raggiungibile, ma i domini arbitrari non lo sono. Le richieste in uscita verso altri host non riescono con `403` e `x-deny-reason: host_not_allowed`. Il traffico del connector MCP viene instradato attraverso i server di Anthropic, quindi i connector che aggiungi alla routine funzionano senza aggiungere i loro host ai **Allowed domains**. Rimuovi eventuali connector che non ti servono in [Connector](#connector).371L'ambiente **Default** utilizza l'accesso di rete **Trusted**: l'[elenco di autorizzazione predefinito](/it/claude-code-on-the-web#default-allowed-domains) dei registri di pacchetti, delle API dei provider cloud, dei registri di container e dei domini di sviluppo comuni è raggiungibile, ma i domini arbitrari non lo sono. Le richieste in uscita verso altri host non riescono con `403` e `x-deny-reason: host_not_allowed`. Il traffico del connector MCP viene instradato attraverso i server di Anthropic, quindi i connector che aggiungi alla routine funzionano senza aggiungere i loro host ai **Allowed domains**. Rimuovi eventuali connector che non ti servono in [Connector](#connectors).

332 372 

333Per consentire domini aggiuntivi:373Per consentire domini aggiuntivi:

334 374 


356 396 

357Vedi [Network access](/it/claude-code-on-the-web#network-access) per i dettagli sui livelli di accesso e l'elenco di autorizzazione predefinito.397Vedi [Network access](/it/claude-code-on-the-web#network-access) per i dettagli sui livelli di accesso e l'elenco di autorizzazione predefinito.

358 398 

359## Utilizzo e limiti399<h2 id="usage-and-limits">

400 Utilizzo e limiti

401</h2>

360 402 

361Le 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).403Le 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).

362 404 


364 406 

365Le esecuzioni una tantum non contano rispetto al limite giornaliero di esecuzioni di routine. Riducono l'utilizzo regolare dell'abbonamento come qualsiasi altra sessione, ma sono esenti dall'indennità giornaliera di esecuzioni di routine per account.407Le esecuzioni una tantum non contano rispetto al limite giornaliero di esecuzioni di routine. Riducono l'utilizzo regolare dell'abbonamento come qualsiasi altra sessione, ma sono esenti dall'indennità giornaliera di esecuzioni di routine per account.

366 408 

367## Troubleshooting409<h2 id="troubleshooting">

410 Troubleshooting

411</h2>

368 412 

369### `/schedule` restituisce "Unknown command"413<h3 id="/schedule-returns-unknown-command">

414 `/schedule` restituisce "Unknown command"

415</h3>

370 416 

371La CLI nasconde `/schedule` quando uno dei suoi requisiti non è soddisfatto. La causa è solitamente una delle seguenti:417La CLI nasconde `/schedule` quando uno dei suoi requisiti non è soddisfatto. La causa è solitamente una delle seguenti:

372 418 


377 423 

378Puoi sempre creare e gestire le routine su [claude.ai/code/routines](https://claude.ai/code/routines) indipendentemente da come è configurata la CLI.424Puoi sempre creare e gestire le routine su [claude.ai/code/routines](https://claude.ai/code/routines) indipendentemente da come è configurata la CLI.

379 425 

380### "Routines are disabled by your organization's policy"426<h3 id="routines-are-disabled-by-your-organizations-policy">

427 "Routines are disabled by your organization's policy"

428</h3>

381 429 

382Il tuo amministratore di Team o Enterprise ha probabilmente disattivato l'interruttore **Routines** su [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code). Questa è un'impostazione dell'organizzazione lato server, quindi non può essere ignorata dalla tua configurazione locale. Contatta il tuo amministratore per richiedere che le routine siano abilitate per la tua organizzazione.430Il tuo amministratore di Team o Enterprise ha probabilmente disattivato l'interruttore **Routines** su [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code). Questa è un'impostazione dell'organizzazione lato server, quindi non può essere ignorata dalla tua configurazione locale. Contatta il tuo amministratore per richiedere che le routine siano abilitate per la tua organizzazione.

383 431 

384## Risorse correlate432<h2 id="related-resources">

433 Risorse correlate

434</h2>

385 435 

386* [`/loop` e pianificazione in-sessione](/it/scheduled-tasks): pianifica attività locali all'interno di una sessione CLI aperta436* [`/loop` e pianificazione in-sessione](/it/scheduled-tasks): pianifica attività locali all'interno di una sessione CLI aperta

387* [Desktop scheduled tasks](/it/desktop-scheduled-tasks): attività pianificate locali che vengono eseguite sulla tua macchina con accesso ai file locali437* [Desktop scheduled tasks](/it/desktop-scheduled-tasks): attività pianificate locali che vengono eseguite sulla tua macchina con accesso ai file locali

Details

65 65 

66Le [modalità di autorizzazione](/it/permission-modes) decidono se una chiamata di strumento viene eseguita e se sei richiesto per primo. L'isolamento limita ciò che un comando può accedere una volta eseguito. I due lavorano insieme: quando una modalità di autorizzazione consente l'esecuzione di azioni senza chiederti, un confine di isolamento limita ciò che quelle azioni possono raggiungere.66Le [modalità di autorizzazione](/it/permission-modes) decidono se una chiamata di strumento viene eseguita e se sei richiesto per primo. L'isolamento limita ciò che un comando può accedere una volta eseguito. I due lavorano insieme: quando una modalità di autorizzazione consente l'esecuzione di azioni senza chiederti, un confine di isolamento limita ciò che quelle azioni possono raggiungere.

67 67 

68`--dangerously-skip-permissions` rimuove completamente la revisione per azione, quindi un confine di isolamento è l'unica cosa che limita ciò che Claude può fare. Eseguilo sempre all'interno di un container, una VM, o il [sandbox runtime](#sandbox-runtime), in modo che i file tools, i server MCP e gli hooks siano anch'essi all'interno del confine.68`--dangerously-skip-permissions` rimuove la revisione per azione al di là delle [regole ask](/it/permissions#manage-permissions) esplicite, quindi un confine di isolamento è l'unica cosa che limita ciò che Claude può fare. Eseguilo sempre all'interno di un container, una VM, o il [sandbox runtime](#sandbox-runtime), in modo che i file tools, i server MCP e gli hooks siano anch'essi all'interno del confine.

69 69 

70La [modalità auto](/it/permission-modes#eliminate-prompts-with-auto-mode) sostituisce il prompt con un classificatore che esamina le azioni e blocca quelle che vanno oltre la richiesta, puntano a infrastrutture non riconosciute, o sembrano guidate da contenuti ostili che Claude ha letto. Il classificatore è un controllo per azione, non un confine di isolamento, quindi un confine di isolamento aggiunge comunque difesa in profondità per esecuzioni automatiche, e non è richiesto come lo è per `--dangerously-skip-permissions`.70La [modalità auto](/it/permission-modes#eliminate-prompts-with-auto-mode) sostituisce il prompt con un classificatore che esamina le azioni e blocca quelle che vanno oltre la richiesta, puntano a infrastrutture non riconosciute, o sembrano guidate da contenuti ostili che Claude ha letto. Il classificatore è un controllo per azione, non un confine di isolamento, quindi un confine di isolamento aggiunge comunque difesa in profondità per esecuzioni automatiche, e non è richiesto come lo è per `--dangerously-skip-permissions`.

71 71 

72Lo [sandboxed Bash tool](#sandboxed-bash-tool) da solo vincola solo Bash, quindi non è sufficiente per esecuzioni completamente automatiche in nessuna delle due modalità. Puoi stratificare gli approcci: eseguire lo sandboxed Bash tool all'interno di un container o VM ti dà restrizioni di comando a livello di SO in cima al confine dell'ambiente esterno. Per come la sandbox Bash stessa interagisce con le regole di autorizzazione e le modalità, vedi [Come il sandboxing si relaziona alle autorizzazioni e alle modalità di autorizzazione](/it/sandboxing#how-sandboxing-relates-to-permissions-and-permission-modes).72Lo [sandboxed Bash tool](#sandboxed-bash-tool) da solo vincola solo Bash, quindi non è sufficiente per esecuzioni completamente automatiche in nessuna delle due modalità. Puoi stratificare gli approcci: eseguire lo sandboxed Bash tool all'interno di un container o VM ti dà restrizioni di comando a livello di SO in cima al confine dell'ambiente esterno. Per come la sandbox Bash stessa interagisce con le regole di autorizzazione e le modalità di autorizzazione, vedi [Come il sandboxing si relaziona alle autorizzazioni e alle modalità di autorizzazione](/it/sandboxing#how-sandboxing-relates-to-permissions-and-permission-modes).

73 73 

74<h2 id="sandboxed-bash-tool">74<h2 id="sandboxed-bash-tool">

75 Sandboxed Bash tool75 Sandboxed Bash tool

sandboxing.md +15 −12

Details

49 </Step>49 </Step>

50 50 

51 <Step title="Esegui un comando Bash">51 <Step title="Esegui un comando Bash">

52 Chiedi a Claude di eseguire un comando, come una build o una suite di test. Per impostazione predefinita, i comandi all'interno della sandbox possono scrivere solo nella directory di lavoro. La prima volta che un comando ha bisogno di un nuovo dominio di rete, Claude Code richiede l'approvazione.52 Chiedi a Claude di eseguire un comando, come una build o una suite di test. Per impostazione predefinita, i comandi all'interno della sandbox possono scrivere solo nella directory di lavoro e nella directory temporanea della sessione. La prima volta che un comando ha bisogno di un nuovo dominio di rete, Claude Code richiede l'approvazione.

53 53 

54 I comandi che non possono essere eseguiti sandboxati ricadono nel flusso di autorizzazione regolare. Per ampliare o restringere questi confini, vedi [Configure sandboxing](#configure-sandboxing).54 I comandi che non possono essere eseguiti sandboxati ricadono nel flusso di autorizzazione regolare. Per ampliare o restringere questi confini, vedi [Configure sandboxing](#configure-sandboxing).

55 </Step>55 </Step>


134 134 

135* Le [regole di negazione](/it/permissions) esplicite sono sempre rispettate135* Le [regole di negazione](/it/permissions) esplicite sono sempre rispettate

136* I comandi `rm` o `rmdir` che puntano a `/`, alla tua directory home o ad altri percorsi critici del sistema attivano comunque un prompt di autorizzazione136* I comandi `rm` o `rmdir` che puntano a `/`, alla tua directory home o ad altri percorsi critici del sistema attivano comunque un prompt di autorizzazione

137* Le [regole Ask](/it/permissions) si applicano ai comandi che ricadono nel flusso di autorizzazione regolare137* Le [regole ask](/it/permissions) con ambito di contenuto come `Bash(git push *)` forzano comunque un prompt anche per i comandi sandboxati

138* Una regola ask `Bash` semplice, o la forma equivalente `Bash(*)`, viene saltata per i comandi che vengono eseguiti sandboxati; si applica comunque ai comandi che ricadono nel flusso di autorizzazione regolare

138 139 

139**Modalità autorizzazioni regolari**: Tutti i comandi Bash passano attraverso il flusso di autorizzazione regolare, anche quando sandboxati. Questo fornisce più controllo ma richiede più approvazioni.140**Modalità autorizzazioni regolari**: Tutti i comandi Bash passano attraverso il flusso di autorizzazione regolare, anche quando sandboxati. Questo fornisce più controllo ma richiede più approvazioni.

140 141 

141In entrambe le modalità, la sandbox applica le stesse restrizioni di filesystem e rete. La differenza è solo se i comandi sandboxati sono auto-approvati o richiedono autorizzazione esplicita.142In entrambe le modalità, la sandbox applica le stesse restrizioni di filesystem e rete. La differenza è solo se i comandi sandboxati sono auto-approvati o richiedono autorizzazione esplicita.

142 143 

144La directory temporanea della sessione è scrivibile all'interno della sandbox per impostazione predefinita, insieme alla directory di lavoro. Claude Code imposta `$TMPDIR` su questa directory per i comandi sandboxati, quindi gli strumenti che scrivono file temporanei funzionano senza configurazione aggiuntiva. I comandi non sandboxati ereditano il tuo `$TMPDIR` della shell invariato, il che significa che i comandi sandboxati e non sandboxati risolvono `$TMPDIR` in directory diverse. Per passare file temporanei tra i due, scrivili nella directory di lavoro.

145 

143Alcuni comandi non possono essere eseguiti all'interno della sandbox, come strumenti incompatibili con essa o che necessitano di un host che non hai consentito. Piuttosto che fallire il compito o richiedere di disattivare il sandboxing, Claude Code include un escape hatch: quando un comando fallisce a causa di restrizioni della sandbox, Claude analizza il fallimento e potrebbe riprovare il comando con il parametro `dangerouslyDisableSandbox`. Il comando riprovato viene eseguito al di fuori della sandbox, quindi passa attraverso il flusso di autorizzazione regolare e richiede la tua approvazione.146Alcuni comandi non possono essere eseguiti all'interno della sandbox, come strumenti incompatibili con essa o che necessitano di un host che non hai consentito. Piuttosto che fallire il compito o richiedere di disattivare il sandboxing, Claude Code include un escape hatch: quando un comando fallisce a causa di restrizioni della sandbox, Claude analizza il fallimento e potrebbe riprovare il comando con il parametro `dangerouslyDisableSandbox`. Il comando riprovato viene eseguito al di fuori della sandbox, quindi passa attraverso il flusso di autorizzazione regolare e richiede la tua approvazione.

144 147 

145Puoi disabilitare questo escape hatch impostando `"allowUnsandboxedCommands": false` nelle tue [impostazioni sandbox](/it/settings#sandbox-settings). Quando disabilitato, che la scheda Overrides di `/sandbox` mostra come **Modalità sandbox rigorosa**, il parametro `dangerouslyDisableSandbox` viene completamente ignorato e tutti i comandi devono essere eseguiti sandboxati o essere esplicitamente elencati in `excludedCommands`.148Puoi disabilitare questo escape hatch impostando `"allowUnsandboxedCommands": false` nelle tue [impostazioni sandbox](/it/settings#sandbox-settings). Quando disabilitato, che la scheda Overrides di `/sandbox` mostra come **Modalità sandbox rigorosa**, il parametro `dangerouslyDisableSandbox` viene completamente ignorato e tutti i comandi devono essere eseguiti sandboxati o essere esplicitamente elencati in `excludedCommands`.


154 157 

155Personalizza il comportamento della sandbox tramite il file `settings.json`. Vedi [Settings](/it/settings#sandbox-settings) per il riferimento di configurazione completo.158Personalizza il comportamento della sandbox tramite il file `settings.json`. Vedi [Settings](/it/settings#sandbox-settings) per il riferimento di configurazione completo.

156 159 

157Per impostazione predefinita, i comandi sandboxati possono scrivere solo nella directory di lavoro corrente. Se i comandi dei sottoprocessi come `kubectl`, `terraform` o `npm` devono scrivere al di fuori della directory del progetto, utilizza `sandbox.filesystem.allowWrite` per concedere l'accesso a percorsi specifici:160Per impostazione predefinita, i comandi sandboxati possono scrivere solo nella directory di lavoro corrente e nella directory temporanea della sessione. Se i comandi dei sottoprocessi come `kubectl`, `terraform` o `npm` devono scrivere al di fuori di quelle directory, utilizza `sandbox.filesystem.allowWrite` per concedere l'accesso a percorsi specifici:

158 161 

159```json theme={null}162```json theme={null}

160{163{


209 212 

210Lo strumento Bash in sandbox limita l'accesso al file system a directory specifiche:213Lo strumento Bash in sandbox limita l'accesso al file system a directory specifiche:

211 214 

212* **Comportamento di scrittura predefinito**: accesso in lettura e scrittura alla directory di lavoro corrente e alle sue sottodirectory215* **Comportamento di scrittura predefinito**: accesso in lettura e scrittura alla directory di lavoro corrente e alle sue sottodirectory, più la directory temporanea della sessione a cui `$TMPDIR` punta

213* **Comportamento di lettura predefinito**: accesso in lettura all'intero computer, ad eccezione di determinate directory negate. Nota che questo predefinito consente comunque la lettura di file di credenziali come `~/.aws/credentials` e `~/.ssh/`. Aggiungili a `denyRead` per bloccarli.216* **Comportamento di lettura predefinito**: accesso in lettura all'intero computer, ad eccezione di determinate directory negate. Nota che questo predefinito consente comunque la lettura di file di credenziali come `~/.aws/credentials` e `~/.ssh/`. Aggiungili a `denyRead` per bloccarli.

214* **Accesso bloccato**: non è possibile modificare file al di fuori della directory di lavoro corrente senza autorizzazione esplicita, inclusi file di configurazione shell come `~/.bashrc` e binari di sistema in `/bin/`217* **Accesso bloccato**: non è possibile modificare file al di fuori della directory di lavoro corrente e della directory temporanea della sessione senza autorizzazione esplicita, inclusi file di configurazione shell come `~/.bashrc` e binari di sistema in `/bin/`

215* **Git worktrees**: quando la directory di lavoro è un [git worktree collegato](/it/worktrees), la sandbox consente anche scritture nella directory `.git` condivisa del repository principale in modo che comandi come `git commit` possano aggiornare i ref e l'indice. Le scritture in `hooks/` e `config` all'interno di quella directory rimangono negate.218* **Git worktrees**: quando la directory di lavoro è un [git worktree collegato](/it/worktrees), la sandbox consente anche scritture nella directory `.git` condivisa del repository principale in modo che comandi come `git commit` possano aggiornare i ref e l'indice. Le scritture in `hooks/` e `config` all'interno di quella directory rimangono negate.

216* **Configurabile**: definisci percorsi consentiti e negati personalizzati tramite le impostazioni219* **Configurabile**: definisci percorsi consentiti e negati personalizzati tramite le impostazioni

217 220 


247Questi stessi primitivi sono disponibili come pacchetto standalone [`@anthropic-ai/sandbox-runtime`](https://github.com/anthropic-experimental/sandbox-runtime), che la pagina [Sandbox environments](/it/sandbox-environments#sandbox-runtime) copre come approccio separato per avvolgere l'intero processo di Claude Code.250Questi stessi primitivi sono disponibili come pacchetto standalone [`@anthropic-ai/sandbox-runtime`](https://github.com/anthropic-experimental/sandbox-runtime), che la pagina [Sandbox environments](/it/sandbox-environments#sandbox-runtime) copre come approccio separato per avvolgere l'intero processo di Claude Code.

248 251 

249<h2 id="how-sandboxing-relates-to-permissions-and-permission-modes">252<h2 id="how-sandboxing-relates-to-permissions-and-permission-modes">

250 How sandboxing relates to permissions and permission modes253 Come il sandboxing si relaziona alle autorizzazioni e alle modalità di autorizzazione

251</h2>254</h2>

252 255 

253Il sandboxing, le [regole di autorizzazione](/it/permissions) e le [modalità di autorizzazione](/it/permission-modes) sono livelli complementari. Le sezioni seguenti coprono come la sandbox interagisce con ciascuno.256Il sandboxing, le [regole di autorizzazione](/it/permissions) e le [modalità di autorizzazione](/it/permission-modes) sono livelli complementari. Le sezioni seguenti coprono come la sandbox interagisce con ciascuno.


295La [modalità auto-allow](#sandbox-modes) della sandbox è separata dalla [modalità auto](/it/permission-modes#eliminate-prompts-with-auto-mode): auto-allow approva i comandi Bash perché il confine della sandbox li contiene, mentre la modalità auto utilizza un classificatore per esaminare le azioni. I due funzionano indipendentemente e possono essere combinati. Per scegliere un confine di isolamento per esecuzioni incustodite, vedi [Sandbox environments](/it/sandbox-environments#how-isolation-relates-to-permission-modes).298La [modalità auto-allow](#sandbox-modes) della sandbox è separata dalla [modalità auto](/it/permission-modes#eliminate-prompts-with-auto-mode): auto-allow approva i comandi Bash perché il confine della sandbox li contiene, mentre la modalità auto utilizza un classificatore per esaminare le azioni. I due funzionano indipendentemente e possono essere combinati. Per scegliere un confine di isolamento per esecuzioni incustodite, vedi [Sandbox environments](/it/sandbox-environments#how-isolation-relates-to-permission-modes).

296 299 

297<h2 id="configure-the-sandbox-for-your-organization">300<h2 id="configure-the-sandbox-for-your-organization">

298 Configure the sandbox for your organization301 Configura la sandbox per la tua organizzazione

299</h2>302</h2>

300 303 

301Gli amministratori possono richiedere il sandboxing per ogni utente, impedire agli sviluppatori di ampliare la politica e instradare il traffico sandbox attraverso un proxy aziendale.304Gli amministratori possono richiedere il sandboxing per ogni utente, impedire agli sviluppatori di ampliare la politica e instradare il traffico sandbox attraverso un proxy aziendale.


376* **`--dangerously-skip-permissions` fallisce come root**: questo flag viene bloccato quando viene eseguito come root o tramite sudo su Linux e macOS, perché l'accesso root combinato con nessun prompt di autorizzazione può modificare qualsiasi file o servizio sul sistema. Il controllo viene saltato automaticamente all'interno di una sandbox riconosciuta. Per eseguire autonomamente in un container, utilizza la configurazione [dev container](/it/devcontainer), che esegue Claude Code come utente non root.379* **`--dangerously-skip-permissions` fallisce come root**: questo flag viene bloccato quando viene eseguito come root o tramite sudo su Linux e macOS, perché l'accesso root combinato con nessun prompt di autorizzazione può modificare qualsiasi file o servizio sul sistema. Il controllo viene saltato automaticamente all'interno di una sandbox riconosciuta. Per eseguire autonomamente in un container, utilizza la configurazione [dev container](/it/devcontainer), che esegue Claude Code come utente non root.

377 380 

378<h2 id="limitations">381<h2 id="limitations">

379 Limitations382 Limitazioni

380</h2>383</h2>

381 384 

382Il sandboxing riduce il rischio ma non è un confine di isolamento completo. Rivedi le limitazioni seguenti prima di fare affidamento su di esso come controllo di sicurezza rigido.385Il sandboxing riduce il rischio ma non è un confine di isolamento completo. Rivedi le limitazioni seguenti prima di fare affidamento su di esso come controllo di sicurezza rigido.

383 386 

384<h3 id="security-limitations">387<h3 id="security-limitations">

385 Security limitations388 Limitazioni di sicurezza

386</h3>389</h3>

387 390 

388* **Filtraggio della rete**: il sistema di filtraggio della rete funziona limitando i domini a cui i processi possono connettersi. Il proxy integrato non termina o esegue l'ispezione TLS sul traffico in uscita, quindi i contenuti delle connessioni crittografate non vengono esaminati. Sei responsabile di assicurarti che solo i domini affidabili siano consentiti nella tua politica.391* **Filtraggio della rete**: il sistema di filtraggio della rete funziona limitando i domini a cui i processi possono connettersi. Il proxy integrato non termina o esegue l'ispezione TLS sul traffico in uscita, quindi i contenuti delle connessioni crittografate non vengono esaminati. Sei responsabile di assicurarti che solo i domini affidabili siano consentiti nella tua politica.


397* **File di impostazioni protetti**: la sandbox nega automaticamente l'accesso in scrittura ai file `settings.json` di Claude Code a ogni ambito e alla directory delle impostazioni gestite, quindi un comando sandboxato non può modificare la sua stessa politica.400* **File di impostazioni protetti**: la sandbox nega automaticamente l'accesso in scrittura ai file `settings.json` di Claude Code a ogni ambito e alla directory delle impostazioni gestite, quindi un comando sandboxato non può modificare la sua stessa politica.

398 401 

399<h3 id="platform-and-tool-compatibility">402<h3 id="platform-and-tool-compatibility">

400 Platform and tool compatibility403 Compatibilità della piattaforma e degli strumenti

401</h3>404</h3>

402 405 

403* **Supporto della piattaforma**: supporta macOS, Linux e WSL2. WSL1 e Windows nativo non sono supportati.406* **Supporto della piattaforma**: supporta macOS, Linux e WSL2. WSL1 e Windows nativo non sono supportati.


405* **Compatibilità degli strumenti**: alcuni strumenti che richiedono modelli di accesso al sistema specifici potrebbero necessitare di regolazioni di configurazione, o potrebbero anche dover essere eseguiti al di fuori della sandbox.408* **Compatibilità degli strumenti**: alcuni strumenti che richiedono modelli di accesso al sistema specifici potrebbero necessitare di regolazioni di configurazione, o potrebbero anche dover essere eseguiti al di fuori della sandbox.

406 409 

407<h3 id="scope">410<h3 id="scope">

408 Scope411 Ambito

409</h3>412</h3>

410 413 

411La sandbox isola i sottoprocessi Bash. Altri strumenti operano sotto confini diversi:414La sandbox isola i sottoprocessi Bash. Altri strumenti operano sotto confini diversi:


416* **Subagenti**: i [subagenti](/it/sub-agents) vengono eseguiti nello stesso processo della sessione padre e utilizzano la stessa configurazione sandbox. I comandi Bash all'interno di un subagente vengono sandboxati quando il sandboxing è abilitato nella sessione padre.419* **Subagenti**: i [subagenti](/it/sub-agents) vengono eseguiti nello stesso processo della sessione padre e utilizzano la stessa configurazione sandbox. I comandi Bash all'interno di un subagente vengono sandboxati quando il sandboxing è abilitato nella sessione padre.

417 420 

418<Warning>421<Warning>

419 Il sandboxing efficace richiede **sia** l'isolamento del filesystem che della rete. Senza isolamento della rete, un agente compromesso potrebbe esfiltare file sensibili come chiavi SSH. Senza isolamento del filesystem, un agente compromesso potrebbe backdoor le risorse di sistema per ottenere accesso alla rete. Quando ampli i predefiniti, verifica che un percorso `allowWrite`, una voce `allowedDomains` ampia o un'eccezione `excludedCommands` non annulli una restrizione dall'altro lato.422 Il sandboxing efficace richiede sia l'isolamento del filesystem che della rete. Senza isolamento della rete, un agente compromesso potrebbe esfiltare file sensibili come chiavi SSH. Senza isolamento del filesystem, un agente compromesso potrebbe backdoor le risorse di sistema per ottenere accesso alla rete. Quando ampli i predefiniti, verifica che un percorso `allowWrite`, una voce `allowedDomains` ampia o un'eccezione `excludedCommands` non annulli una restrizione dall'altro lato.

420</Warning>423</Warning>

421 424 

422<h2 id="see-also">425<h2 id="see-also">

security.md +4 −4

Details

22 22 

23Claude Code utilizza permessi di sola lettura rigorosi per impostazione predefinita. Quando sono necessarie azioni aggiuntive (modifica di file, esecuzione di test, esecuzione di comandi), Claude Code richiede un'autorizzazione esplicita. Gli utenti controllano se approvare le azioni una sola volta o consentirle automaticamente.23Claude Code utilizza permessi di sola lettura rigorosi per impostazione predefinita. Quando sono necessarie azioni aggiuntive (modifica di file, esecuzione di test, esecuzione di comandi), Claude Code richiede un'autorizzazione esplicita. Gli utenti controllano se approvare le azioni una sola volta o consentirle automaticamente.

24 24 

25Abbiamo progettato Claude Code per essere trasparente e sicuro. Ad esempio, richiediamo l'approvazione per i comandi bash prima di eseguirli, dandovi il controllo diretto. Questo approccio consente agli utenti e alle organizzazioni di configurare i permessi direttamente.25Claude Code richiede l'approvazione prima di eseguire comandi Bash che possono modificare il vostro sistema. Un insieme integrato di comandi di sola lettura come `ls`, `cat` e `git status` viene eseguito senza un prompt. Questo approccio consente agli utenti e alle organizzazioni di configurare i permessi direttamente.

26 26 

27Per la configurazione dettagliata dei permessi, vedere [Permissions](/it/permissions).27Per la configurazione dettagliata dei permessi, vedere [Permissions](/it/permissions).

28 28 


56* **Sistema di permessi**: Le operazioni sensibili richiedono un'approvazione esplicita56* **Sistema di permessi**: Le operazioni sensibili richiedono un'approvazione esplicita

57* **Analisi consapevole del contesto**: Rileva istruzioni potenzialmente dannose analizzando la richiesta completa57* **Analisi consapevole del contesto**: Rileva istruzioni potenzialmente dannose analizzando la richiesta completa

58* **Sanitizzazione dell'input**: Previene l'iniezione di comandi elaborando gli input dell'utente58* **Sanitizzazione dell'input**: Previene l'iniezione di comandi elaborando gli input dell'utente

59* **Blocklist di comandi**: Blocca i comandi rischiosi che recuperano contenuti arbitrari dal web come `curl` e `wget` per impostazione predefinita. Quando esplicitamente consentiti, siate consapevoli delle [limitazioni del modello di permesso](/it/permissions#tool-specific-permission-rules)59* **Approvazione dei comandi di rete**: I comandi che recuperano contenuti dal web come `curl` e `wget` non sono approvati automaticamente per impostazione predefinita. Richiedono un'approvazione come qualsiasi altro comando Bash non di sola lettura, quindi è possibile comunque approvarli una volta o aggiungere una regola di autorizzazione esplicita come `Bash(curl *)`. Per bloccarli completamente, aggiungeteli a [`permissions.deny`](/it/permissions#tool-specific-permission-rules)

60 60 

61<h3 id="privacy-safeguards">61<h3 id="privacy-safeguards">

62 Misure di protezione della privacy62 Misure di protezione della privacy


77* **Approvazione della richiesta di rete**: Gli strumenti che effettuano richieste di rete richiedono l'approvazione dell'utente per impostazione predefinita77* **Approvazione della richiesta di rete**: Gli strumenti che effettuano richieste di rete richiedono l'approvazione dell'utente per impostazione predefinita

78* **Finestre di contesto isolate**: Web fetch utilizza una finestra di contesto separata per evitare di iniettare prompt potenzialmente dannosi78* **Finestre di contesto isolate**: Web fetch utilizza una finestra di contesto separata per evitare di iniettare prompt potenzialmente dannosi

79* **Verifica della fiducia**: Le prime esecuzioni di codebase e i nuovi server MCP richiedono la verifica della fiducia79* **Verifica della fiducia**: Le prime esecuzioni di codebase e i nuovi server MCP richiedono la verifica della fiducia

80 * Nota: La verifica della fiducia è disabilitata quando si esegue in modo non interattivo con il flag `-p`. L'eccezione è [`--worktree`](/it/worktrees), che richiede comunque che la fiducia sia stata accettata per la directory80 * Nota: La verifica della fiducia è disabilitata quando si esegue in modo non interattivo con il flag `-p`

81 * Nota: Quando avvii Claude Code direttamente nella tua directory home, l'accettazione della fiducia viene mantenuta solo per la sessione corrente e non viene scritta su disco, quindi il prompt riappare ad ogni avvio. Non esiste un'impostazione per renderla persistente. Avvia Claude Code da una sottodirectory del progetto, dove l'accettazione della fiducia viene salvata per directory81 * Nota: Quando avvii Claude Code direttamente nella tua directory home, l'accettazione della fiducia viene mantenuta solo per la sessione corrente e non viene scritta su disco, quindi il prompt riappare ad ogni avvio. Non esiste un'impostazione per renderla persistente. Avvia Claude Code da una sottodirectory del progetto, dove l'accettazione della fiducia viene salvata per directory

82* **Rilevamento dell'iniezione di comandi**: I comandi bash sospetti richiedono l'approvazione manuale anche se precedentemente allowlisted82* **Rilevamento dell'iniezione di comandi**: I comandi bash sospetti richiedono l'approvazione manuale anche se precedentemente allowlisted

83* **Corrispondenza fail-closed**: I comandi non corrispondenti richiedono per impostazione predefinita l'approvazione manuale83* **Corrispondenza fail-closed**: I comandi non corrispondenti richiedono per impostazione predefinita l'approvazione manuale

84* **Descrizioni in linguaggio naturale**: I comandi bash complessi includono spiegazioni per la comprensione dell'utente84* **Descrizioni in linguaggio naturale**: I comandi bash complessi includono spiegazioni per la comprensione dell'utente

85* **Archiviazione sicura delle credenziali**: Le chiavi API e i token sono crittografati. Vedere [Credential Management](/it/authentication#credential-management)85* **Archiviazione sicura delle credenziali**: Le chiavi API e i token sono archiviati nel Keychain di macOS quando disponibile, e protetti dalle autorizzazioni dei file su Windows e Linux. Vedere [Credential Management](/it/authentication#credential-management)

86 86 

87<Warning>87<Warning>

88 **Rischio di sicurezza WebDAV su Windows**: Quando si esegue Claude Code su Windows, consigliamo di non abilitare WebDAV o di non consentire a Claude Code di accedere a percorsi come `\\*` che potrebbero contenere sottodirectory WebDAV. [WebDAV è stato deprecato da Microsoft](https://learn.microsoft.com/en-us/windows/whats-new/deprecated-features#:~:text=The%20Webclient%20\(WebDAV\)%20service%20is%20deprecated) a causa di rischi di sicurezza. L'abilitazione di WebDAV potrebbe consentire a Claude Code di attivare richieste di rete a host remoti, aggirando il sistema di permessi.88 **Rischio di sicurezza WebDAV su Windows**: Quando si esegue Claude Code su Windows, consigliamo di non abilitare WebDAV o di non consentire a Claude Code di accedere a percorsi come `\\*` che potrebbero contenere sottodirectory WebDAV. [WebDAV è stato deprecato da Microsoft](https://learn.microsoft.com/en-us/windows/whats-new/deprecated-features#:~:text=The%20Webclient%20\(WebDAV\)%20service%20is%20deprecated) a causa di rischi di sicurezza. L'abilitazione di WebDAV potrebbe consentire a Claude Code di attivare richieste di rete a host remoti, aggirando il sistema di permessi.

Details

174 174 

175Claude Code applica gli aggiornamenti delle impostazioni automaticamente senza un riavvio, ad eccezione delle impostazioni avanzate come la configurazione di OpenTelemetry, che richiedono un riavvio completo per avere effetto.175Claude Code applica gli aggiornamenti delle impostazioni automaticamente senza un riavvio, ad eccezione delle impostazioni avanzate come la configurazione di OpenTelemetry, che richiedono un riavvio completo per avere effetto.

176 176 

177<h3 id="invalid-entries-in-delivered-settings">

178 Voci non valide nelle impostazioni consegnate

179</h3>

180 

181I payload consegnati vengono analizzati in modo tollerante con le stesse regole delle altre fonti gestite. Quando un payload contiene una voce che non supera la convalida dello schema, Claude Code rimuove quella voce, visualizza un errore di convalida e applica ogni impostazione valida rimanente. Vedere [Voci non valide nelle impostazioni gestite](/it/settings#invalid-entries-in-managed-settings) per il comportamento a livello di campo, incluso il modo in cui vengono gestiti i campi di applicazione della sicurezza. Richiede Claude Code v2.1.169 o successivo.

182 

183La consegna gestita dal server aggiunge questi comportamenti:

184 

185* La cache in `~/.claude/remote-settings.json` memorizza il payload salvato con le voci non valide rimosse. Il payload non valido grezzo non viene mai persistito.

186* Quando nessun campo nel payload può essere salvato, Claude Code mantiene le ultime impostazioni memorizzate nella cache accettate e registra un errore fatale.

187* La [finestra di dialogo di approvazione della sicurezza](#security-approval-dialogs) valuta il payload salvato, quindi una voce non valida rimossa non viene mai presentata per l'approvazione e non viene mai eseguita.

188 

189Per eseguire il debug dei problemi di consegna, eseguite `claude --debug-file <path>` e cercate nel log `Remote settings`. Convalidate una modifica del payload con `claude doctor` su una macchina di test prima di distribuirla all'organizzazione.

190 

177<h3 id="enforce-fail-closed-startup">191<h3 id="enforce-fail-closed-startup">

178 Applicare l'avvio fail-closed192 Applicare l'avvio fail-closed

179</h3>193</h3>

sessions.md +2 −2

Details

30| `claude --from-pr <number>` | Riprende la sessione collegata a quella pull request |30| `claude --from-pr <number>` | Riprende la sessione collegata a quella pull request |

31| `/resume` | Passa a una conversazione diversa da una sessione attiva |31| `/resume` | Passa a una conversazione diversa da una sessione attiva |

32 32 

33Le sessioni create con [`claude -p`](/it/headless) o l'[Agent SDK](/it/agent-sdk/overview) non vengono visualizzate nel selezionatore di sessioni, ma puoi comunque riprenderne una passando il suo ID di sessione a `claude --resume <session-id>`.33Le sessioni create con [`claude -p`](/it/headless) o l'[Agent SDK](/it/agent-sdk/overview) non vengono visualizzate nel selezionatore di sessioni, ma puoi comunque riprenderne una passando il suo ID di sessione a `claude --resume <session-id>`. Esegui questo dalla directory in cui è stata avviata la sessione: la ricerca dell'ID di sessione è limitata alla directory del progetto corrente e ai suoi git worktrees, quindi una sessione creata altrove segnala `No conversation found with session ID: <session-id>`.

34 34 

35<h3 id="where-the-session-picker-looks">35<h3 id="where-the-session-picker-looks">

36 Dove il selezionatore di sessioni cerca36 Dove il selezionatore di sessioni cerca

37</h3>37</h3>

38 38 

39Le sessioni vengono archiviate per directory di progetto. Per impostazione predefinita, il selezionatore di sessioni mostra le sessioni interattive dal worktree corrente, più le sessioni avviate altrove che hanno aggiunto la directory corrente con `/add-dir`. Usa `Ctrl+W` per ampliare a tutti i worktree del repository o `Ctrl+A` per ampliare a ogni progetto su questa macchina.39Le sessioni vengono archiviate per directory di progetto. Per impostazione predefinita, il selezionatore di sessioni mostra le sessioni interattive dal worktree corrente, più le sessioni avviate altrove che hanno aggiunto la directory corrente con `/add-dir`. {/* min-version: 2.1.169 */}A partire dalla v2.1.169, lo spostamento di una sessione con [`/cd`](/it/commands) la trasferisce nell'archivio del progetto della nuova directory, quindi appare nel selezionatore di quella directory in seguito. Usa `Ctrl+W` per ampliare a tutti i worktree del repository o `Ctrl+A` per ampliare a ogni progetto su questa macchina.

40 40 

41Selezionare una sessione da un altro worktree dello stesso repository la riprende sul posto. Selezionare una sessione da un progetto non correlato copia un comando `cd` e resume negli appunti.41Selezionare una sessione da un altro worktree dello stesso repository la riprende sul posto. Selezionare una sessione da un progetto non correlato copia un comando `cd` e resume negli appunti.

42 42 

settings.md +112 −26

Details

6 6 

7> Configura Claude Code con impostazioni globali e a livello di progetto, e variabili di ambiente.7> Configura Claude Code con impostazioni globali e a livello di progetto, e variabili di ambiente.

8 8 

9Claude Code offre una varietà di impostazioni per configurare il suo comportamento in base alle tue esigenze. Puoi configurare Claude Code eseguendo il comando `/config` quando utilizzi il REPL interattivo, che apre un'interfaccia Impostazioni con schede dove puoi visualizzare le informazioni di stato e modificare le opzioni di configurazione.9Claude Code offre una varietà di impostazioni per configurare il suo comportamento in base alle vostre esigenze. Potete configurare Claude Code eseguendo il comando `/config` quando utilizzate il REPL interattivo, che apre un'interfaccia Impostazioni con schede dove potete visualizzare le informazioni di stato e modificare le opzioni di configurazione.

10 10 

11<h2 id="configuration-scopes">11<h2 id="configuration-scopes">

12 Ambiti di configurazione12 Ambiti di configurazione


19</h3>19</h3>

20 20 

21| Ambito | Posizione | Chi è interessato | Condiviso con il team? |21| Ambito | Posizione | Chi è interessato | Condiviso con il team? |

22| :---------- | :------------------------------------------------------------------------------------------------ | :----------------------------------------- | :--------------------- |22| :---------- | :------------------------------------------------------------------------------------------------ | :----------------------------------------- | :----------------------------------------- |

23| **Managed** | Impostazioni gestite dal server, plist / registro, o `managed-settings.json` a livello di sistema | Tutti gli utenti sulla macchina | Sì (distribuito da IT) |23| **Managed** | Impostazioni gestite dal server, plist / registro, o `managed-settings.json` a livello di sistema | Tutti gli utenti sulla macchina | Sì (distribuito da IT) |

24| **User** | Directory `~/.claude/` | Tu, in tutti i progetti | No |24| **User** | Directory `~/.claude/` | Tu, in tutti i progetti | No |

25| **Project** | `.claude/` nel repository | Tutti i collaboratori su questo repository | Sì (committato in git) |25| **Project** | `.claude/` nel repository | Tutti i collaboratori su questo repository | Sì (committato in git) |

26| **Local** | `.claude/settings.local.json` | Tu, solo in questo repository | No (gitignored) |26| **Local** | `.claude/settings.local.json` | Tu, solo in questo repository | No (gitignored quando Claude Code lo crea) |

27 27 

28<h3 id="when-to-use-each-scope">28<h3 id="when-to-use-each-scope">

29 Quando utilizzare ogni ambito29 Quando utilizzare ogni ambito


94* **Le impostazioni utente** sono definite in `~/.claude/settings.json` e si applicano a tutti i progetti.94* **Le impostazioni utente** sono definite in `~/.claude/settings.json` e si applicano a tutti i progetti.

95* **Le impostazioni di progetto** vengono salvate nella directory del tuo progetto:95* **Le impostazioni di progetto** vengono salvate nella directory del tuo progetto:

96 * `.claude/settings.json` per le impostazioni che vengono controllate nel controllo del codice sorgente e condivise con il tuo team96 * `.claude/settings.json` per le impostazioni che vengono controllate nel controllo del codice sorgente e condivise con il tuo team

97 * `.claude/settings.local.json` per le impostazioni che non vengono controllate, utili per preferenze personali e sperimentazione. Claude Code configurerà git per ignorare `.claude/settings.local.json` quando viene creato.97 * `.claude/settings.local.json` per le impostazioni che non vengono controllate, utili per preferenze personali e sperimentazione. Quando Claude Code crea `.claude/settings.local.json`, configura git per ignorare il file. Se crei il file tu stesso, aggiungilo al tuo gitignore manualmente.

98* **Impostazioni gestite**: Per le organizzazioni che necessitano di controllo centralizzato, Claude Code supporta più meccanismi di distribuzione per le impostazioni gestite. Tutti utilizzano lo stesso formato JSON e non possono essere ignorati dalle impostazioni utente o di progetto:98* **Impostazioni gestite**: Per le organizzazioni che necessitano di controllo centralizzato, Claude Code supporta più meccanismi di distribuzione per le impostazioni gestite. Tutti utilizzano lo stesso formato JSON e non possono essere ignorati dalle impostazioni utente o di progetto:

99 99 

100 * **Impostazioni gestite dal server**: consegnate dai server di Anthropic tramite la console di amministrazione Claude.ai. Vedi [impostazioni gestite dal server](/it/server-managed-settings).100 * **Impostazioni gestite dal server**: consegnate dai server di Anthropic tramite la console di amministrazione Claude.ai. Vedi [impostazioni gestite dal server](/it/server-managed-settings).


174* `model`: usa [`/model`](/it/model-config#setting-your-model) per cambiare durante la sessione174* `model`: usa [`/model`](/it/model-config#setting-your-model) per cambiare durante la sessione

175* [`outputStyle`](/it/output-styles): parte del prompt di sistema, che viene ricostruito su `/clear` o riavvio175* [`outputStyle`](/it/output-styles): parte del prompt di sistema, che viene ricostruito su `/clear` o riavvio

176 176 

177<h3 id="invalid-entries-in-managed-settings">

178 Voci non valide nelle impostazioni gestite

179</h3>

180 

181Le impostazioni gestite analizzano in modo tollerante. Quando una configurazione gestita contiene una voce che non supera la convalida dello schema, Claude Code rimuove quella voce, registra un avviso e applica ogni politica valida rimanente. Un singolo errore di battitura non può disabilitare il resto della politica della tua organizzazione. Questo comportamento è coerente in tutti e tre i meccanismi di distribuzione: [impostazioni gestite dal server](/it/server-managed-settings), politiche plist e registro distribuite tramite MDM, e file `managed-settings.json`. Richiede Claude Code v2.1.169 o successivo.

182 

183I campi di applicazione della sicurezza vengono gestiti per campo invece di essere rimossi all'ingrosso quando sono presenti ma non validi:

184 

185| Campo | Comportamento quando presente ma non valido |

186| :--------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

187| `allowedMcpServers` | Applicato come una lista di autorizzazione vuota, quindi nessun MCP server viene ammesso fino a quando il valore non viene corretto. Una singola voce non valida viene rimossa e il sottoinsieme valido viene applicato. |

188| `allowManagedMcpServersOnly` | Trattato come `true`. |

189| `availableModels` | {/* min-version: 2.1.175 */}Applicato come una lista di autorizzazione vuota, quindi solo il modello Predefinito è disponibile fino a quando il valore non viene corretto. Una singola voce non stringa viene rimossa e il sottoinsieme valido viene applicato. Si applica in v2.1.175 e successivo. |

190| `enforceAvailableModels` | {/* min-version: 2.1.175 */}Trattato come `true`. Si applica in v2.1.175 e successivo. |

191| `forceLoginOrgUUID` | Nessuna organizzazione è autorizzata ad accedere fino a quando il valore non viene corretto. |

192| `deniedMcpServers` | Una singola voce non valida viene rimossa e il sottoinsieme valido viene applicato. Un valore completamente non valido viene eliminato con un avviso, poiché negare ogni server bloccherebbe i server che la politica non ha mai nominato. |

193 

194`requiredMinimumVersion` e `requiredMaximumVersion` falliscono in modo aperto per progettazione: un valore non valido viene rimosso piuttosto che applicato, quindi una politica errata non può impedire l'avvio di Claude Code.

195 

196Gli errori di convalida vengono visualizzati in tre posizioni:

197 

198* Le sessioni interattive mostrano una finestra di dialogo all'avvio che elenca le voci non valide.

199* Le esecuzioni headless con `-p` stampano un riepilogo su stderr.

200* [`claude doctor`](/it/debug-your-config) elenca ogni voce non valida con la sua fonte e il campo.

201 

202Convalida i cambiamenti di politica eseguendo `claude doctor` su una macchina di test prima di distribuirli su tutta la flotta.

203 

204Questa tolleranza si applica solo alle impostazioni gestite. I file di impostazioni utente, progetto e locale rimangono rigorosi: un file che non supera la convalida viene rifiutato nel complesso e segnalato.

205 

177<h3 id="available-settings">206<h3 id="available-settings">

178 Impostazioni disponibili207 Impostazioni disponibili

179</h3>208</h3>


181`settings.json` supporta un numero di opzioni:210`settings.json` supporta un numero di opzioni:

182 211 

183| Chiave | Descrizione | Esempio |212| Chiave | Descrizione | Esempio |

184| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------- |213| :-------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------ |

214| `advisorModel` | {/* min-version: 2.1.98 */}Modello per lo [strumento advisor](/it/advisor) lato server. Accetta un alias di modello come `"opus"`, `"sonnet"`, o `"fable"` ({/* min-version: 2.1.170 */}v2.1.170+), o un ID modello completo. Scritto automaticamente quando esegui `/advisor`. Non impostato per disabilitare l'advisor. Richiede Claude Code v2.1.98 o successivo | `"opus"` |

185| `agent` | Esegui il thread principale come un subagent denominato e imposta l'agente predefinito per le sessioni inviate da `claude agents`. Applica il prompt di sistema, le restrizioni degli strumenti e il modello di quel subagent. Vedi [Invoca i subagent esplicitamente](/it/sub-agents#invoke-subagents-explicitly) | `"code-reviewer"` |215| `agent` | Esegui il thread principale come un subagent denominato e imposta l'agente predefinito per le sessioni inviate da `claude agents`. Applica il prompt di sistema, le restrizioni degli strumenti e il modello di quel subagent. Vedi [Invoca i subagent esplicitamente](/it/sub-agents#invoke-subagents-explicitly) | `"code-reviewer"` |

216| `agentPushNotifEnabled` | {/* min-version: 2.1.119 */}Quando il [Controllo remoto](/it/remote-control) è connesso, consenti a Claude di inviare notifiche push proattive al tuo telefono, ad esempio quando un'attività lunga finisce. Predefinito: `false`. Appare in `/config` come **Push when Claude decides**. Vedi [Notifiche push mobile](/it/remote-control#mobile-push-notifications). Richiede Claude Code v2.1.119 o successivo | `true` |

186| `allowAllClaudeAiMcps` | (Solo impostazioni gestite) Carica i connettori claude.ai insieme a un `managed-mcp.json` distribuito, che altrimenti assume il controllo esclusivo e li sopprime. Vedi [Configurazione MCP gestita](/it/managed-mcp) | `true` |217| `allowAllClaudeAiMcps` | (Solo impostazioni gestite) Carica i connettori claude.ai insieme a un `managed-mcp.json` distribuito, che altrimenti assume il controllo esclusivo e li sopprime. Vedi [Configurazione MCP gestita](/it/managed-mcp) | `true` |

187| `allowedChannelPlugins` | (Solo impostazioni gestite) Elenco di autorizzazione dei plugin di canale che possono inviare messaggi. Sostituisce l'elenco di autorizzazione predefinito di Anthropic quando impostato. Non definito = ricaduta al predefinito, array vuoto = blocca tutti i plugin di canale. Richiede `channelsEnabled: true`. Vedi [Limita quali plugin di canale possono essere eseguiti](/it/channels#restrict-which-channel-plugins-can-run) | `[{ "marketplace": "claude-plugins-official", "plugin": "telegram" }]` |218| `allowedChannelPlugins` | (Solo impostazioni gestite) Elenco di autorizzazione dei plugin di canale che possono inviare messaggi. Sostituisce l'elenco di autorizzazione predefinito di Anthropic quando impostato. Non definito = ricaduta al predefinito, array vuoto = blocca tutti i plugin di canale. Richiede `channelsEnabled: true`. Vedi [Limita quali plugin di canale possono essere eseguiti](/it/channels#restrict-which-channel-plugins-can-run) | `[{ "marketplace": "claude-plugins-official", "plugin": "telegram" }]` |

188| `allowedHttpHookUrls` | Elenco di autorizzazione dei modelli di URL che gli hook HTTP possono indirizzare. Supporta `*` come carattere jolly. Quando impostato, gli hook con URL non corrispondenti vengono bloccati. Non definito = nessuna restrizione, array vuoto = blocca tutti gli hook HTTP. Gli array si uniscono tra le fonti di impostazioni. Vedi [Configurazione hook](#hook-configuration) | `["https://hooks.example.com/*"]` |219| `allowedHttpHookUrls` | Elenco di autorizzazione dei modelli di URL che gli hook HTTP possono indirizzare. Supporta `*` come carattere jolly. Quando impostato, gli hook con URL non corrispondenti vengono bloccati. Non definito = nessuna restrizione, array vuoto = blocca tutti gli hook HTTP. Gli array si uniscono tra le fonti di impostazioni. Vedi [Configurazione hook](#hook-configuration) | `["https://hooks.example.com/*"]` |


190| `allowManagedHooksOnly` | (Solo impostazioni gestite) Solo gli hook gestiti, gli hook SDK e gli hook dai plugin forzatamente abilitati nelle impostazioni gestite `enabledPlugins` vengono caricati. Gli hook utente, di progetto e di tutti gli altri plugin vengono bloccati. Vedi [Configurazione hook](#hook-configuration) | `true` |221| `allowManagedHooksOnly` | (Solo impostazioni gestite) Solo gli hook gestiti, gli hook SDK e gli hook dai plugin forzatamente abilitati nelle impostazioni gestite `enabledPlugins` vengono caricati. Gli hook utente, di progetto e di tutti gli altri plugin vengono bloccati. Vedi [Configurazione hook](#hook-configuration) | `true` |

191| `allowManagedMcpServersOnly` | (Solo impostazioni gestite) Solo `allowedMcpServers` dalle impostazioni gestite sono rispettati. `deniedMcpServers` si unisce comunque da tutte le fonti. Gli utenti possono ancora aggiungere MCP server, ma si applica solo l'elenco di autorizzazione definito dall'amministratore. Vedi [Configurazione MCP gestita](/it/managed-mcp) | `true` |222| `allowManagedMcpServersOnly` | (Solo impostazioni gestite) Solo `allowedMcpServers` dalle impostazioni gestite sono rispettati. `deniedMcpServers` si unisce comunque da tutte le fonti. Gli utenti possono ancora aggiungere MCP server, ma si applica solo l'elenco di autorizzazione definito dall'amministratore. Vedi [Configurazione MCP gestita](/it/managed-mcp) | `true` |

192| `allowManagedPermissionRulesOnly` | (Solo impostazioni gestite) Previeni che le impostazioni utente e di progetto definiscano regole di permesso `allow`, `ask` o `deny`. Si applicano solo le regole nelle impostazioni gestite. Vedi [Impostazioni solo gestite](/it/permissions#managed-only-settings) | `true` |223| `allowManagedPermissionRulesOnly` | (Solo impostazioni gestite) Previeni che le impostazioni utente e di progetto definiscano regole di permesso `allow`, `ask` o `deny`. Si applicano solo le regole nelle impostazioni gestite. Vedi [Impostazioni solo gestite](/it/permissions#managed-only-settings) | `true` |

193| `alwaysThinkingEnabled` | Abilita il [pensiero esteso](/it/model-config#extended-thinking) per impostazione predefinita per tutte le sessioni. Tipicamente configurato tramite il comando `/config` piuttosto che modificato direttamente. Per forzare il pensiero disattivato indipendentemente da questa impostazione, imposta [`CLAUDE_CODE_DISABLE_THINKING`](/it/env-vars) in `env` | `true` |224| `alwaysThinkingEnabled` | Abilita il [pensiero esteso](/it/model-config#extended-thinking) per impostazione predefinita per tutte le sessioni. Tipicamente configurato tramite il comando `/config` piuttosto che modificato direttamente. Per forzare il pensiero disattivato indipendentemente da questa impostazione, imposta [`MAX_THINKING_TOKENS=0`](/it/env-vars) in `env`, che disabilita il pensiero sull'API Anthropic tranne su Fable 5, che non può avere il pensiero disattivato. Su [provider di terze parti](/it/third-party-integrations) questo omette il parametro `thinking` invece, e i modelli di ragionamento adattivo potrebbero comunque pensare | `true` |

194| `apiKeyHelper` | Script personalizzato, da eseguire in `/bin/sh`, per generare un valore di autenticazione. Questo valore verrà inviato come intestazioni `X-Api-Key` e `Authorization: Bearer` per le richieste di modello. Imposta l'intervallo di aggiornamento con [`CLAUDE_CODE_API_KEY_HELPER_TTL_MS`](/it/env-vars) | `/bin/generate_temp_api_key.sh` |225| `apiKeyHelper` | Script personalizzato, da eseguire in `/bin/sh`, per generare un valore di autenticazione. Questo valore verrà inviato come intestazioni `X-Api-Key` e `Authorization: Bearer` per le richieste di modello. Imposta l'intervallo di aggiornamento con [`CLAUDE_CODE_API_KEY_HELPER_TTL_MS`](/it/env-vars) | `/bin/generate_temp_api_key.sh` |

195| `attribution` | Personalizza l'attribuzione per i commit git e le pull request. Vedi [Impostazioni di attribuzione](#attribution-settings) | `{"commit": "🤖 Generated with Claude Code", "pr": ""}` |226| `attribution` | Personalizza l'attribuzione per i commit git e le pull request. Vedi [Impostazioni di attribuzione](#attribution-settings) | `{"commit": "🤖 Generated with Claude Code", "pr": ""}` |

227| `autoCompactEnabled` | {/* min-version: 2.1.119 */}Compatta automaticamente la conversazione quando il contesto si avvicina al limite. Predefinito: `true`. Appare in `/config` come **Auto-compact**. Per disabilitare tramite variabile di ambiente, imposta [`DISABLE_AUTO_COMPACT`](/it/env-vars) in `env` | `false` |

196| `autoMemoryDirectory` | Directory personalizzata per l'archiviazione della [memoria automatica](/it/memory#storage-location). Accetta un percorso assoluto o un percorso con prefisso `~/`. Dalle impostazioni di progetto o locale, questo viene onorato solo dopo che accetti la finestra di dialogo di fiducia dell'area di lavoro, poiché un repository clonato può fornire questo file | `"~/my-memory-dir"` |228| `autoMemoryDirectory` | Directory personalizzata per l'archiviazione della [memoria automatica](/it/memory#storage-location). Accetta un percorso assoluto o un percorso con prefisso `~/`. Dalle impostazioni di progetto o locale, questo viene onorato solo dopo che accetti la finestra di dialogo di fiducia dell'area di lavoro, poiché un repository clonato può fornire questo file | `"~/my-memory-dir"` |

197| `autoMemoryEnabled` | Abilita la [memoria automatica](/it/memory#enable-or-disable-auto-memory). Quando `false`, Claude non legge da o scrive nella directory di memoria automatica. Predefinito: `true`. Puoi anche attivare/disattivare questo con `/memory` durante una sessione. Per disabilitare tramite variabile di ambiente, imposta [`CLAUDE_CODE_DISABLE_AUTO_MEMORY`](/it/env-vars) in `env` | `false` |229| `autoMemoryEnabled` | Abilita la [memoria automatica](/it/memory#enable-or-disable-auto-memory). Quando `false`, Claude non legge da o scrive nella directory di memoria automatica. Predefinito: `true`. Puoi anche attivare/disattivare questo con `/memory` durante una sessione. Per disabilitare tramite variabile di ambiente, imposta [`CLAUDE_CODE_DISABLE_AUTO_MEMORY`](/it/env-vars) in `env` | `false` |

198| `autoMode` | Personalizza cosa il classificatore della [modalità auto](/it/permission-modes#eliminate-prompts-with-auto-mode) blocca e consente. Contiene array `environment`, `allow`, `soft_deny` e `hard_deny` di regole in prosa. Includi la stringa letterale `"$defaults"` in un array per ereditare le regole incorporate in quella posizione. Vedi [Configura la modalità auto](/it/auto-mode-config). Non letto dalle impostazioni di progetto condivise | `{"soft_deny": ["$defaults", "Never run terraform apply"]}` |230| `autoMode` | Personalizza cosa il classificatore della [modalità auto](/it/permission-modes#eliminate-prompts-with-auto-mode) blocca e consente. Contiene array `environment`, `allow`, `soft_deny` e `hard_deny` di regole in prosa. Includi la stringa letterale `"$defaults"` in un array per ereditare le regole incorporate in quella posizione. Vedi [Configura la modalità auto](/it/auto-mode-config). Non letto dalle impostazioni di progetto condivise | `{"soft_deny": ["$defaults", "Never run terraform apply"]}` |

199| `autoScrollEnabled` | Nel [rendering fullscreen](/it/fullscreen), segui il nuovo output fino al fondo della conversazione. Predefinito: `true`. Appare in `/config` come **Auto-scroll**. I prompt di permesso scorrono comunque in vista quando questo è disattivato | `false` |231| `autoScrollEnabled` | Nel [rendering fullscreen](/it/fullscreen), segui il nuovo output fino al fondo della conversazione. Predefinito: `true`. Appare in `/config` come **Auto-scroll**. I prompt di permesso scorrono comunque in vista quando questo è disattivato | `false` |

200| `autoUpdatesChannel` | Canale di rilascio da seguire per gli aggiornamenti. Usa `"stable"` per una versione che è tipicamente circa una settimana vecchia e salta le versioni con regressioni importanti, o `"latest"` (predefinito) per il rilascio più recente. Per disabilitare completamente gli auto-aggiornamenti, imposta [`DISABLE_AUTOUPDATER`](/it/setup#disable-auto-updates) in `env` | `"stable"` |232| `autoUpdatesChannel` | Canale di rilascio da seguire per gli aggiornamenti. Usa `"stable"` per una versione che è tipicamente circa una settimana vecchia e salta le versioni con regressioni importanti, o `"latest"` (predefinito) per il rilascio più recente. Per disabilitare completamente gli auto-aggiornamenti, imposta [`DISABLE_AUTOUPDATER`](/it/setup#disable-auto-updates) in `env` | `"stable"` |

201| `availableModels` | Limita quali modelli gli utenti possono selezionare tramite `/model`, `--model`, o `ANTHROPIC_MODEL`. Non influisce sull'opzione Predefinito. Vedi [Limita la selezione del modello](/it/model-config#restrict-model-selection) | `["sonnet", "haiku"]` |233| `availableModels` | Limita quali modelli gli utenti possono selezionare per la sessione principale, i [subagent](/it/sub-agents), e l'[advisor](/it/advisor). Vedi [Limita la selezione del modello](/it/model-config#restrict-model-selection). Vedi `enforceAvailableModels` per vincolare anche il modello Predefinito | `["sonnet", "haiku"]` |

202| `awaySummaryEnabled` | Mostra un riepilogo di una riga della sessione quando torni al terminale dopo alcuni minuti di assenza. Imposta a `false` o disattiva Riepilogo sessione in `/config` per disabilitare. Uguale a [`CLAUDE_CODE_ENABLE_AWAY_SUMMARY`](/it/env-vars) | `true` |234| `awaySummaryEnabled` | Mostra un riepilogo di una riga della sessione quando torni al terminale dopo alcuni minuti di assenza. Imposta a `false` o disattiva Riepilogo sessione in `/config` per disabilitare. Uguale a [`CLAUDE_CODE_ENABLE_AWAY_SUMMARY`](/it/env-vars) | `true` |

203| `awsAuthRefresh` | Script personalizzato che modifica la directory `.aws` (vedi [configurazione avanzata delle credenziali](/it/amazon-bedrock#advanced-credential-configuration)) | `aws sso login --profile myprofile` |235| `awsAuthRefresh` | Script personalizzato che modifica la directory `.aws` (vedi [configurazione avanzata delle credenziali](/it/amazon-bedrock#advanced-credential-configuration)) | `aws sso login --profile myprofile` |

204| `awsCredentialExport` | Script personalizzato che restituisce JSON con le credenziali AWS (vedi [configurazione avanzata delle credenziali](/it/amazon-bedrock#advanced-credential-configuration)) | `/bin/generate_aws_grant.sh` |236| `awsCredentialExport` | Script personalizzato che restituisce JSON con le credenziali AWS (vedi [configurazione avanzata delle credenziali](/it/amazon-bedrock#advanced-credential-configuration)) | `/bin/generate_aws_grant.sh` |


213| `disableAgentView` | Imposta a `true` per disattivare gli [agenti in background e la visualizzazione degli agenti](/it/agent-view): `claude agents`, `--bg`, `/background`, e il supervisore su richiesta. Tipicamente impostato nelle [impostazioni gestite](/it/permissions#managed-settings). Equivalente all'impostazione di `CLAUDE_CODE_DISABLE_AGENT_VIEW` a `1` | `true` |245| `disableAgentView` | Imposta a `true` per disattivare gli [agenti in background e la visualizzazione degli agenti](/it/agent-view): `claude agents`, `--bg`, `/background`, e il supervisore su richiesta. Tipicamente impostato nelle [impostazioni gestite](/it/permissions#managed-settings). Equivalente all'impostazione di `CLAUDE_CODE_DISABLE_AGENT_VIEW` a `1` | `true` |

214| `disableAllHooks` | Disabilita tutti gli [hooks](/it/hooks) e qualsiasi [status line](/it/statusline) personalizzato | `true` |246| `disableAllHooks` | Disabilita tutti gli [hooks](/it/hooks) e qualsiasi [status line](/it/statusline) personalizzato | `true` |

215| `disableAutoMode` | Imposta a `"disable"` per prevenire l'attivazione della [modalità auto](/it/permission-modes#eliminate-prompts-with-auto-mode). Rimuove `auto` dal ciclo `Shift+Tab` e rifiuta `--permission-mode auto` all'avvio. Molto utile nelle [impostazioni gestite](/it/permissions#managed-settings) dove gli utenti non possono ignorarla | `"disable"` |247| `disableAutoMode` | Imposta a `"disable"` per prevenire l'attivazione della [modalità auto](/it/permission-modes#eliminate-prompts-with-auto-mode). Rimuove `auto` dal ciclo `Shift+Tab` e rifiuta `--permission-mode auto` all'avvio. Molto utile nelle [impostazioni gestite](/it/permissions#managed-settings) dove gli utenti non possono ignorarla | `"disable"` |

248| `disableBundledSkills` | Imposta a `true` per disabilitare gli [skills](/it/skills) e i flussi di lavoro che vengono forniti con Claude Code: gli skills bundled e i flussi di lavoro vengono rimossi completamente, mentre i comandi slash incorporati come `/init` rimangono digitabili ma sono nascosti dal modello. Gli skills dai plugin, `.claude/skills/`, e `.claude/commands/` non sono interessati. Equivalente all'impostazione di `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` a `1` | `true` |

216| `disableDeepLinkRegistration` | Imposta a `"disable"` per prevenire che Claude Code registri il gestore del protocollo `claude-cli://` con il sistema operativo all'avvio. I [deep link](/it/deep-links) consentono agli strumenti esterni di aprire una sessione di Claude Code con un prompt pre-compilato. Utile negli ambienti in cui la registrazione del gestore del protocollo è limitata o gestita separatamente | `"disable"` |249| `disableDeepLinkRegistration` | Imposta a `"disable"` per prevenire che Claude Code registri il gestore del protocollo `claude-cli://` con il sistema operativo all'avvio. I [deep link](/it/deep-links) consentono agli strumenti esterni di aprire una sessione di Claude Code con un prompt pre-compilato. Utile negli ambienti in cui la registrazione del gestore del protocollo è limitata o gestita separatamente | `"disable"` |

217| `disabledMcpjsonServers` | Elenco di MCP server specifici dai file `.mcp.json` da rifiutare | `["filesystem"]` |250| `disabledMcpjsonServers` | Elenco di MCP server specifici dai file `.mcp.json` da rifiutare | `["filesystem"]` |

218| `disableRemoteControl` | {/* min-version: 2.1.128 */}Disabilita il [Controllo remoto](/it/remote-control): blocca `claude remote-control`, il flag `--remote-control`, l'avvio automatico e l'interruttore in-sessione. Tipicamente posizionato nelle [impostazioni gestite](/it/permissions#managed-settings) per l'applicazione MDM per dispositivo, ma funziona da qualsiasi ambito. Richiede Claude Code v2.1.128 o successivo | `true` |251| `disableRemoteControl` | {/* min-version: 2.1.128 */}Disabilita il [Controllo remoto](/it/remote-control): blocca `claude remote-control`, il flag `--remote-control`, l'avvio automatico e l'interruttore in-sessione. Tipicamente posizionato nelle [impostazioni gestite](/it/permissions#managed-settings) per l'applicazione MDM per dispositivo, ma funziona da qualsiasi ambito. Richiede Claude Code v2.1.128 o successivo | `true` |

219| `disableSkillShellExecution` | Disabilita l'esecuzione inline della shell per i blocchi `` !`...` `` e ` ```! ` nei [skills](/it/skills) e nei comandi personalizzati da fonti utente, progetto, plugin o directory aggiuntive. I comandi vengono sostituiti con `[shell command execution disabled by policy]` invece di essere eseguiti. I skills bundled e gestiti non sono interessati. Molto utile nelle [impostazioni gestite](/it/permissions#managed-settings) dove gli utenti non possono ignorarla | `true` |252| `disableSkillShellExecution` | Disabilita l'esecuzione inline della shell per i blocchi `` !`...` `` e ` ```! ` negli [skills](/it/skills) e nei comandi personalizzati da fonti utente, progetto, plugin o directory aggiuntive. I comandi vengono sostituiti con `[shell command execution disabled by policy]` invece di essere eseguiti. Gli skills bundled e gestiti non sono interessati. Molto utile nelle [impostazioni gestite](/it/permissions#managed-settings) dove gli utenti non possono ignorarla | `true` |

220| `disableWorkflows` | Disabilita i [flussi di lavoro dinamici](/it/workflows#turn-workflows-off) e i comandi di flusso di lavoro bundled. Predefinito: `false`. Equivalente all'impostazione di `CLAUDE_CODE_DISABLE_WORKFLOWS` a `1` | `true` |253| `disableWorkflows` | Disabilita i [flussi di lavoro dinamici](/it/workflows#turn-workflows-off) e i comandi di flusso di lavoro bundled. Predefinito: `false`. Equivalente all'impostazione di `CLAUDE_CODE_DISABLE_WORKFLOWS` a `1` | `true` |

221| `editorMode` | Modalità di scorciatoie da tastiera per il prompt di input: `"normal"` o `"vim"`. Predefinito: `"normal"`. Appare in `/config` come **Editor mode** | `"vim"` |254| `editorMode` | Modalità di scorciatoie da tastiera per il prompt di input: `"normal"` o `"vim"`. Predefinito: `"normal"`. Appare in `/config` come **Editor mode** | `"vim"` |

222| `effortLevel` | Persisti il [livello di sforzo](/it/model-config#adjust-effort-level) tra le sessioni. Accetta `"low"`, `"medium"`, `"high"`, o `"xhigh"`. Scritto automaticamente quando esegui `/effort` con uno di questi valori. `--effort` e [`CLAUDE_CODE_EFFORT_LEVEL`](/it/env-vars) ignorano questo per una sessione. Vedi [Regola il livello di sforzo](/it/model-config#adjust-effort-level) per i modelli supportati | `"xhigh"` |255| `effortLevel` | Persisti il [livello di sforzo](/it/model-config#adjust-effort-level) tra le sessioni. Accetta `"low"`, `"medium"`, `"high"`, o `"xhigh"`. Scritto automaticamente quando esegui `/effort` con uno di questi valori. `--effort` e [`CLAUDE_CODE_EFFORT_LEVEL`](/it/env-vars) ignorano questo per una sessione. Vedi [Regola il livello di sforzo](/it/model-config#adjust-effort-level) per i modelli supportati | `"xhigh"` |

223| `enableAllProjectMcpServers` | Approva automaticamente tutti i MCP server definiti nei file `.mcp.json` del progetto | `true` |256| `enableAllProjectMcpServers` | Approva automaticamente tutti i MCP server definiti nei file `.mcp.json` del progetto | `true` |

224| `enabledMcpjsonServers` | Elenco di MCP server specifici dai file `.mcp.json` da approvare | `["memory", "github"]` |257| `enabledMcpjsonServers` | Elenco di MCP server specifici dai file `.mcp.json` da approvare | `["memory", "github"]` |

258| `enforceAvailableModels` | {/* min-version: 2.1.175 */}Quando `true` e `availableModels` è una lista non vuota nelle impostazioni gestite o di politica, il modello Predefinito è anche vincolato all'elenco di autorizzazione. Vedi [Limita la selezione del modello](/it/model-config#restrict-model-selection) per i dettagli e il [comportamento di unione](/it/model-config#merge-behavior) quando `availableModels` è impostato a più livelli. Richiede Claude Code v2.1.175 o successivo | `true` |

225| `env` | Variabili di ambiente applicate a ogni sessione e ai sottoprocessi che Claude Code genera da essa. {/* min-version: 2.1.143 */}A partire da v2.1.143, `NO_COLOR` e `FORCE_COLOR` impostati qui vengono passati ai sottoprocessi ma non cambiano i colori dell'interfaccia di Claude Code stesso. Imposta quelli nella tua shell prima di lanciare `claude` per cambiare i colori dell'interfaccia | `{"FOO": "bar"}` |259| `env` | Variabili di ambiente applicate a ogni sessione e ai sottoprocessi che Claude Code genera da essa. {/* min-version: 2.1.143 */}A partire da v2.1.143, `NO_COLOR` e `FORCE_COLOR` impostati qui vengono passati ai sottoprocessi ma non cambiano i colori dell'interfaccia di Claude Code stesso. Imposta quelli nella tua shell prima di lanciare `claude` per cambiare i colori dell'interfaccia | `{"FOO": "bar"}` |

260| `fallbackModel` | Modello/i di fallback da provare in ordine quando il modello primario è sovraccarico o non disponibile. Claude Code passa al modello disponibile successivo nella catena per il resto del turno e mostra un avviso. `"default"` si espande al modello predefinito. Le catene sono limitate a tre modelli; le voci extra vengono ignorate. A differenza della maggior parte delle impostazioni di array, questa chiave non si unisce tra i file di impostazioni: il file con la precedenza più alta che la definisce fornisce l'intera catena. Il flag [`--fallback-model`](/it/cli-reference#cli-flags) ignora questo per una sessione. Vedi [Catene di modelli di fallback](/it/model-config#fallback-model-chains) | `["claude-sonnet-4-6", "claude-haiku-4-5"]` |

226| `fastModePerSessionOptIn` | Quando `true`, la modalità veloce non persiste tra le sessioni. Ogni sessione inizia con la modalità veloce disattivata, richiedendo agli utenti di abilitarla con `/fast`. La preferenza della modalità veloce dell'utente viene comunque salvata. Vedi [Richiedi opt-in per sessione](/it/fast-mode#require-per-session-opt-in) | `true` |261| `fastModePerSessionOptIn` | Quando `true`, la modalità veloce non persiste tra le sessioni. Ogni sessione inizia con la modalità veloce disattivata, richiedendo agli utenti di abilitarla con `/fast`. La preferenza della modalità veloce dell'utente viene comunque salvata. Vedi [Richiedi opt-in per sessione](/it/fast-mode#require-per-session-opt-in) | `true` |

227| `feedbackSurveyRate` | Probabilità (0–1) che il [sondaggio sulla qualità della sessione](/it/data-usage#session-quality-surveys) appaia quando idoneo. Imposta a `0` per sopprimere completamente, o imposta [`CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY`](/it/env-vars) in `env`. Utile quando si utilizza Bedrock, Vertex, o Foundry dove il tasso di campionamento predefinito non si applica | `0.05` |262| `feedbackSurveyRate` | Probabilità (0–1) che il [sondaggio sulla qualità della sessione](/it/data-usage#session-quality-surveys) appaia quando idoneo. Imposta a `0` per sopprimere completamente, o imposta [`CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY`](/it/env-vars) in `env`. Utile quando si utilizza Bedrock, Vertex, o Foundry dove il tasso di campionamento predefinito non si applica | `0.05` |

263| `fileCheckpointingEnabled` | {/* min-version: 2.1.119 */}Snapshot dei file prima di ogni edit in modo che [`/rewind`](/it/checkpointing) possa ripristinarli. Predefinito: `true`. Appare in `/config` come **Rewind code (checkpoints)**. Per disabilitare tramite variabile di ambiente, imposta [`CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING`](/it/env-vars) in `env` | `false` |

228| `fileSuggestion` | Configura uno script personalizzato per l'autocompletamento dei file `@`. Vedi [Impostazioni di suggerimento file](#file-suggestion-settings) | `{"type": "command", "command": "~/.claude/file-suggestion.sh"}` |264| `fileSuggestion` | Configura uno script personalizzato per l'autocompletamento dei file `@`. Vedi [Impostazioni di suggerimento file](#file-suggestion-settings) | `{"type": "command", "command": "~/.claude/file-suggestion.sh"}` |

265| `footerLinksRegexes` | {/* min-version: 2.1.176 */}Renderizza badge cliccabili extra nel footer quando un regex corrisponde all'output del turno. Ogni voce ha un `pattern`, un modello di URL `url` con placeholder `{name}` riempiti dai gruppi di cattura denominati, e un `label` opzionale. Letto dalle impostazioni utente, dal flag `--settings`, e dalle impostazioni gestite solo. Vedi [Badge di link nel footer](#footer-link-badges) per i vincoli dell'URL, l'elenco di schemi consentiti, e i limiti. Richiede Claude Code v2.1.176 o successivo | `[{"type": "regex", "pattern": "\\b(?<key>PROJ-\\d+)\\b", "url": "https://issues.example.com/browse/{key}", "label": "{key}"}]` |

229| `forceLoginMethod` | Usa `claudeai` per limitare l'accesso agli account Claude.ai, `console` per limitare l'accesso agli account Claude Console. Quando impostato nelle impostazioni gestite, le sessioni autenticate tramite `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, o `apiKeyHelper` vengono bloccate all'avvio, poiché nessuno dei due valori può essere soddisfatto senza OAuth di prima parte. Le sessioni del provider di terze parti come Bedrock, Vertex e Foundry non vengono bloccate: si autenticano rispetto al tuo provider cloud piuttosto che ad Anthropic | `claudeai` |266| `forceLoginMethod` | Usa `claudeai` per limitare l'accesso agli account Claude.ai, `console` per limitare l'accesso agli account Claude Console. Quando impostato nelle impostazioni gestite, le sessioni autenticate tramite `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, o `apiKeyHelper` vengono bloccate all'avvio, poiché nessuno dei due valori può essere soddisfatto senza OAuth di prima parte. Le sessioni del provider di terze parti come Bedrock, Vertex e Foundry non vengono bloccate: si autenticano rispetto al tuo provider cloud piuttosto che ad Anthropic | `claudeai` |

230| `forceLoginOrgUUID` | Richiedi che l'accesso appartenga a un'organizzazione specifica di Anthropic. Accetta una singola stringa UUID, che pre-seleziona anche quell'organizzazione durante l'accesso, o un array di UUID dove qualsiasi organizzazione elencata è accettata senza pre-selezione. Quando impostato nelle impostazioni gestite, l'accesso fallisce se l'account autenticato non appartiene a un'organizzazione elencata, e le sessioni autenticate tramite `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, o `apiKeyHelper` vengono bloccate all'avvio poiché l'appartenenza all'organizzazione non può essere verificata per loro. Le sessioni del provider di terze parti come Bedrock, Vertex e Foundry non vengono bloccate: usa il tuo IAM cloud per limitare quali account cloud possono essere utilizzati. Un array vuoto fallisce in modo chiuso e blocca l'accesso con un messaggio di errore di configurazione | `"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"` o `["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"]` |267| `forceLoginOrgUUID` | Richiedi che l'accesso appartenga a un'organizzazione specifica di Anthropic. Accetta una singola stringa UUID, che pre-seleziona anche quell'organizzazione durante l'accesso, o un array di UUID dove qualsiasi organizzazione elencata è accettata senza pre-selezione. Quando impostato nelle impostazioni gestite, l'accesso fallisce se l'account autenticato non appartiene a un'organizzazione elencata, e le sessioni autenticate tramite `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, o `apiKeyHelper` vengono bloccate all'avvio poiché l'appartenenza all'organizzazione non può essere verificata per loro. Le sessioni del provider di terze parti come Bedrock, Vertex e Foundry non vengono bloccate: usa il tuo IAM cloud per limitare quali account cloud possono essere utilizzati. Un array vuoto fallisce in modo chiuso e blocca l'accesso con un messaggio di errore di configurazione | `"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"` o `["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"]` |

231| `forceRemoteSettingsRefresh` | (Solo impostazioni gestite) Blocca l'avvio della CLI fino a quando le impostazioni gestite remote non vengono recuperate di recente dal server. Se il recupero fallisce, la CLI esce invece di continuare con le impostazioni memorizzate nella cache o senza impostazioni. Quando non impostato, l'avvio continua senza attendere le impostazioni remote. Vedi [applicazione fail-closed](/it/server-managed-settings#enforce-fail-closed-startup) | `true` |268| `forceRemoteSettingsRefresh` | (Solo impostazioni gestite) Blocca l'avvio della CLI fino a quando le impostazioni gestite remote non vengono recuperate di recente dal server. Se il recupero fallisce, la CLI esce invece di continuare con le impostazioni memorizzate nella cache o senza impostazioni. Quando non impostato, l'avvio continua senza attendere le impostazioni remote. Vedi [applicazione fail-closed](/it/server-managed-settings#enforce-fail-closed-startup) | `true` |


234| `httpHookAllowedEnvVars` | Elenco di autorizzazione dei nomi delle variabili di ambiente che gli hook HTTP possono interpolare nelle intestazioni. Quando impostato, l'`allowedEnvVars` effettivo di ogni hook è l'intersezione del suo elenco e di questa impostazione. Non definito = nessuna restrizione. Gli array si uniscono tra le fonti di impostazioni. Vedi [Configurazione hook](#hook-configuration) | `["MY_TOKEN", "HOOK_SECRET"]` |271| `httpHookAllowedEnvVars` | Elenco di autorizzazione dei nomi delle variabili di ambiente che gli hook HTTP possono interpolare nelle intestazioni. Quando impostato, l'`allowedEnvVars` effettivo di ogni hook è l'intersezione del suo elenco e di questa impostazione. Non definito = nessuna restrizione. Gli array si uniscono tra le fonti di impostazioni. Vedi [Configurazione hook](#hook-configuration) | `["MY_TOKEN", "HOOK_SECRET"]` |

235| `includeCoAuthoredBy` | **Deprecato**: Usa `attribution` invece. Se includere la riga `co-authored-by Claude` nei commit git e nelle pull request (predefinito: `true`) | `false` |272| `includeCoAuthoredBy` | **Deprecato**: Usa `attribution` invece. Se includere la riga `co-authored-by Claude` nei commit git e nelle pull request (predefinito: `true`) | `false` |

236| `includeGitInstructions` | Includi le istruzioni integrate del flusso di lavoro di commit e PR e lo snapshot dello stato git nel prompt di sistema di Claude (predefinito: `true`). Imposta a `false` per rimuovere entrambi, ad esempio quando utilizzi le tue skill di flusso di lavoro git. La variabile di ambiente `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` ha la precedenza su questa impostazione quando impostata | `false` |273| `includeGitInstructions` | Includi le istruzioni integrate del flusso di lavoro di commit e PR e lo snapshot dello stato git nel prompt di sistema di Claude (predefinito: `true`). Imposta a `false` per rimuovere entrambi, ad esempio quando utilizzi le tue skill di flusso di lavoro git. La variabile di ambiente `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` ha la precedenza su questa impostazione quando impostata | `false` |

237| `language` | Configura la lingua di risposta preferita di Claude (ad es., `"japanese"`, `"spanish"`, `"french"`). Claude risponderà in questa lingua per impostazione predefinita. Imposta anche la lingua della [dettatura vocale](/it/voice-dictation#change-the-dictation-language) | `"japanese"` |274| `inputNeededNotifEnabled` | {/* min-version: 2.1.119 */}Quando il [Controllo remoto](/it/remote-control) è connesso, invia una notifica push al tuo telefono quando un prompt di permesso o una domanda è in attesa del tuo input. Predefinito: `false`. Appare in `/config` come **Push when actions required**. Vedi [Notifiche push mobile](/it/remote-control#mobile-push-notifications). Richiede Claude Code v2.1.119 o successivo | `true` |

275| `language` | Configura la lingua di risposta preferita di Claude (ad es., `"japanese"`, `"spanish"`, `"french"`). Claude risponderà in questa lingua per impostazione predefinita. Imposta anche la lingua della [dettatura vocale](/it/voice-dictation#change-the-dictation-language) e dei titoli di sessione generati automaticamente. {/* min-version: 2.1.176 */}A partire da v2.1.176, quando non impostato, i titoli delle sessioni corrispondono alla lingua della tua conversazione | `"japanese"` |

238| `maxSkillDescriptionChars` | {/* min-version: 2.1.105 */}Limite di caratteri per skill sul testo combinato `description` e `when_to_use` nell'[elenco di skills](/it/skills#skill-descriptions-are-cut-short) che Claude vede ogni turno (predefinito: `1536`). Il testo più lungo di questo viene troncato. Aumenta per mantenere le descrizioni lunghe intatte al costo di più contesto per turno; riduci per adattare più skills sotto [`skillListingBudgetFraction`](#available-settings). Richiede Claude Code v2.1.105 o successivo | `2048` |276| `maxSkillDescriptionChars` | {/* min-version: 2.1.105 */}Limite di caratteri per skill sul testo combinato `description` e `when_to_use` nell'[elenco di skills](/it/skills#skill-descriptions-are-cut-short) che Claude vede ogni turno (predefinito: `1536`). Il testo più lungo di questo viene troncato. Aumenta per mantenere le descrizioni lunghe intatte al costo di più contesto per turno; riduci per adattare più skills sotto [`skillListingBudgetFraction`](#available-settings). Richiede Claude Code v2.1.105 o successivo | `2048` |

239| `minimumVersion` | Floor che previene l'auto-aggiornamento in background e `claude update` dall'installazione di una versione al di sotto di questa. Passare dal canale `"latest"` a `"stable"` tramite `/config` ti chiede di rimanere sulla versione corrente o di consentire il downgrade. Scegliere di rimanere imposta questo valore. Utile anche nelle [impostazioni gestite](/it/permissions#managed-settings) per fissare un minimo a livello organizzativo | `"2.1.100"` |277| `minimumVersion` | Floor che previene l'auto-aggiornamento in background e `claude update` dall'installazione di una versione al di sotto di questa. Passare dal canale `"latest"` a `"stable"` tramite `/config` ti chiede di rimanere sulla versione corrente o di consentire il downgrade. Scegliere di rimanere imposta questo valore. Utile anche nelle [impostazioni gestite](/it/permissions#managed-settings) per fissare un minimo a livello organizzativo. Per un floor rigido che blocca completamente l'avvio, vedi `requiredMinimumVersion` | `"2.1.100"` |

240| `model` | Ignora il modello predefinito da utilizzare per Claude Code. `--model` e [`ANTHROPIC_MODEL`](/it/model-config#environment-variables) ignorano questo per una sessione | `"claude-sonnet-4-6"` |278| `model` | Ignora il modello predefinito da utilizzare per Claude Code. `--model` e [`ANTHROPIC_MODEL`](/it/model-config#environment-variables) ignorano questo per una sessione | `"claude-sonnet-4-6"` |

241| `modelOverrides` | Mappa gli ID dei modelli Anthropic agli ID dei modelli specifici del provider come gli ARN del profilo di inferenza Bedrock. Ogni voce del selettore di modello utilizza il suo valore mappato quando chiama l'API del provider. Vedi [Ignora gli ID dei modelli per versione](/it/model-config#override-model-ids-per-version) | `{"claude-opus-4-6": "arn:aws:bedrock:..."}` |279| `modelOverrides` | Mappa gli ID dei modelli Anthropic agli ID dei modelli specifici del provider come gli ARN del profilo di inferenza Bedrock. Ogni voce del selettore di modello utilizza il suo valore mappato quando chiama l'API del provider. Vedi [Ignora gli ID dei modelli per versione](/it/model-config#override-model-ids-per-version) | `{"claude-opus-4-6": "arn:aws:bedrock:..."}` |

242| `otelHeadersHelper` | Script per generare intestazioni OpenTelemetry dinamiche. Viene eseguito all'avvio e periodicamente. Imposta l'intervallo di aggiornamento con [`CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`](/it/env-vars). Vedi [Intestazioni dinamiche](/it/monitoring-usage#dynamic-headers) | `/bin/generate_otel_headers.sh` |280| `otelHeadersHelper` | Script per generare intestazioni OpenTelemetry dinamiche. Viene eseguito all'avvio e periodicamente. Imposta l'intervallo di aggiornamento con [`CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`](/it/env-vars). Vedi [Intestazioni dinamiche](/it/monitoring-usage#dynamic-headers) | `/bin/generate_otel_headers.sh` |


244| `parentSettingsBehavior` | {/* min-version: 2.1.133 */}(Solo impostazioni gestite) Controlla se le impostazioni gestite fornite programmaticamente da un processo host di incorporamento, come l'Agent SDK o un'estensione IDE, si applicano quando è presente anche un livello gestito distribuito da un amministratore. `"first-wins"`: le impostazioni fornite dal parent vengono eliminate e si applica solo il livello amministrativo. `"merge"`: le impostazioni fornite dal parent si applicano sotto il livello amministrativo, filtrate in modo che possano stringere la politica ma non allentarla. Non ha effetto quando non è distribuito alcun livello amministrativo. Predefinito: `"first-wins"`. Richiede Claude Code v2.1.133 o successivo | `"merge"` |282| `parentSettingsBehavior` | {/* min-version: 2.1.133 */}(Solo impostazioni gestite) Controlla se le impostazioni gestite fornite programmaticamente da un processo host di incorporamento, come l'Agent SDK o un'estensione IDE, si applicano quando è presente anche un livello gestito distribuito da un amministratore. `"first-wins"`: le impostazioni fornite dal parent vengono eliminate e si applica solo il livello amministrativo. `"merge"`: le impostazioni fornite dal parent si applicano sotto il livello amministrativo, filtrate in modo che possano stringere la politica ma non allentarla. Non ha effetto quando non è distribuito alcun livello amministrativo. Predefinito: `"first-wins"`. Richiede Claude Code v2.1.133 o successivo | `"merge"` |

245| `permissions` | Vedi la tabella sottostante per la struttura dei permessi. | |283| `permissions` | Vedi la tabella sottostante per la struttura dei permessi. | |

246| `plansDirectory` | Personalizza dove vengono archiviati i file di piano. Il percorso è relativo alla radice del progetto. Predefinito: `~/.claude/plans` | `"./plans"` |284| `plansDirectory` | Personalizza dove vengono archiviati i file di piano. Il percorso è relativo alla radice del progetto. Predefinito: `~/.claude/plans` | `"./plans"` |

247| `pluginSuggestionMarketplaces` | (Solo impostazioni gestite) Nomi dei marketplace i cui plugin possono apparire come suggerimenti di installazione contestuali, oltre al marketplace ufficiale. I suggerimenti provengono dalla dichiarazione `relevance` di ogni plugin nella sua voce del marketplace. Un nome ha effetto solo quando il marketplace è registrato sulla macchina e la sua fonte registrata è anche dichiarata nelle impostazioni gestite, come voce `extraKnownMarketplaces` per quel nome o come voce di `strictKnownMarketplaces`. Un marketplace registrato da una fonte diversa con un nome nella lista di autorizzazione viene ignorato. | `["acme-corp-plugins"]` |285| `pluginSuggestionMarketplaces` | (Solo impostazioni gestite) Nomi dei marketplace i cui plugin possono apparire come suggerimenti di installazione contestuali. Nessun suggerimento dichiarato dal marketplace viene visualizzato senza questo elenco di autorizzazione; il suggerimento incorporato di design frontend di prima parte non è interessato. I suggerimenti provengono dalla dichiarazione `relevance` di ogni plugin nella sua voce del marketplace. Un nome ha effetto solo quando il marketplace è registrato sulla macchina e la sua fonte registrata è anche dichiarata nelle impostazioni gestite, come voce `extraKnownMarketplaces` per quel nome o come voce di `strictKnownMarketplaces`. Un marketplace registrato da una fonte diversa con un nome nella lista di autorizzazione viene ignorato. Il marketplace ufficiale è esente dal requisito della fonte: autorizzare il suo nome da solo è sufficiente, poiché quel nome può registrarsi solo dalla fonte Anthropic ufficiale. | `["acme-corp-plugins"]` |

248| `pluginTrustMessage` | (Solo impostazioni gestite) Messaggio personalizzato aggiunto all'avviso di fiducia del plugin mostrato prima dell'installazione. Usa questo per aggiungere contesto specifico dell'organizzazione, ad esempio per confermare che i plugin dal tuo marketplace interno sono controllati. | `"All plugins from our marketplace are approved by IT"` |286| `pluginTrustMessage` | (Solo impostazioni gestite) Messaggio personalizzato aggiunto all'avviso di fiducia del plugin mostrato prima dell'installazione. Usa questo per aggiungere contesto specifico dell'organizzazione, ad esempio per confermare che i plugin dal tuo marketplace interno sono controllati. | `"All plugins from our marketplace are approved by IT"` |

249| `policyHelper` | {/* min-version: 2.1.136 */}Eseguibile distribuito dall'amministratore che calcola le impostazioni gestite dinamicamente all'avvio. Onorato solo da MDM o da un file `managed-settings.json` di sistema. Vedi [Calcola le impostazioni gestite con un policy helper](#compute-managed-settings-with-a-policy-helper). Richiede Claude Code v2.1.136 o successivo | `{"path": "/usr/local/bin/claude-policy"}` |287| `policyHelper` | {/* min-version: 2.1.136 */}Eseguibile distribuito dall'amministratore che calcola le impostazioni gestite dinamicamente all'avvio. Onorato solo da MDM o da un file `managed-settings.json` di sistema. Vedi [Calcola le impostazioni gestite con un policy helper](#compute-managed-settings-with-a-policy-helper). Richiede Claude Code v2.1.136 o successivo | `{"path": "/usr/local/bin/claude-policy"}` |

250| `preferredNotifChannel` | Metodo per le notifiche di completamento attività e prompt di permesso: `"auto"`, `"terminal_bell"`, `"iterm2"`, `"iterm2_with_bell"`, `"kitty"`, `"ghostty"`, o `"notifications_disabled"`. Predefinito: `"auto"`, che invia una notifica desktop in iTerm2, Ghostty e Kitty e non fa nulla in altri terminali. Imposta `"terminal_bell"` per suonare il carattere di campanello in qualsiasi terminale. Appare in `/config` come **Notifications**. Vedi [Ottieni un campanello del terminale o una notifica](/it/terminal-config#get-a-terminal-bell-or-notification) | `"terminal_bell"` |288| `preferredNotifChannel` | Metodo per le notifiche di completamento attività e prompt di permesso: `"auto"`, `"terminal_bell"`, `"iterm2"`, `"iterm2_with_bell"`, `"kitty"`, `"ghostty"`, o `"notifications_disabled"`. Predefinito: `"auto"`, che invia una notifica desktop in iTerm2, Ghostty e Kitty e non fa nulla in altri terminali. Imposta `"terminal_bell"` per suonare il carattere di campanello in qualsiasi terminale. Appare in `/config` come **Notifications**. Vedi [Ottieni un campanello del terminale o una notifica](/it/terminal-config#get-a-terminal-bell-or-notification) | `"terminal_bell"` |

251| `prefersReducedMotion` | Riduci o disabilita le animazioni dell'interfaccia utente (spinner, shimmer, effetti flash) per l'accessibilità | `true` |289| `prefersReducedMotion` | Riduci o disabilita le animazioni dell'interfaccia utente (spinner, shimmer, effetti flash) per l'accessibilità | `true` |

252| `prUrlTemplate` | Modello di URL per il badge PR mostrato nel footer e nei riassunti dei risultati degli strumenti. Sostituisce `{host}`, `{owner}`, `{repo}`, `{number}`, e `{url}` dall'URL PR segnalato da `gh`. Usa per puntare i link PR a uno strumento di revisione del codice interno invece di `github.com`. Non influisce sui link automatici `#123` nella prosa di Claude | `"https://reviews.example.com/{owner}/{repo}/pull/{number}"` |290| `prUrlTemplate` | Modello di URL per il badge PR mostrato nel footer e nei riassunti dei risultati degli strumenti. Sostituisce `{host}`, `{owner}`, `{repo}`, `{number}`, e `{url}` dall'URL PR segnalato da `gh`. Usa per puntare i link PR a uno strumento di revisione del codice interno invece di `github.com`. Non influisce sui link automatici `#123` nella prosa di Claude | `"https://reviews.example.com/{owner}/{repo}/pull/{number}"` |

291| `requiredMaximumVersion` | Solo impostazioni gestite. Versione massima di Claude Code consentita per l'avvio. Se la versione in esecuzione è più recente, Claude Code esce all'avvio e istruisce l'utente a installare una versione approvata tramite il metodo approvato dell'organizzazione; `claude install <version>` potrebbe anche funzionare. L'auto-aggiornamento in background e `claude update` saltano le versioni sopra il limite, quindi un'installazione in intervallo rimane in intervallo. `claude update`, `claude install`, e `claude doctor` continuano a funzionare sopra il limite in modo che gli utenti possano recuperare. Le versioni che precedono questa impostazione la ignorano | `"2.1.150"` |

292| `requiredMinimumVersion` | Solo impostazioni gestite. Versione minima di Claude Code richiesta per l'avvio. Se la versione in esecuzione è più vecchia, Claude Code esce all'avvio e istruisce l'utente ad aggiornare tramite il metodo approvato dell'organizzazione. `claude update`, `claude install`, e `claude doctor` continuano a funzionare sotto il limite in modo che gli utenti possano recuperare. Differisce da `minimumVersion`, che previene i downgrade ma non blocca mai l'avvio. Le versioni che precedono questa impostazione la ignorano | `"2.1.150"` |

253| `respectGitignore` | Controlla se il selettore di file `@` rispetta i modelli `.gitignore`. Quando `true` (predefinito), i file che corrispondono ai modelli `.gitignore` sono esclusi dai suggerimenti | `false` |293| `respectGitignore` | Controlla se il selettore di file `@` rispetta i modelli `.gitignore`. Quando `true` (predefinito), i file che corrispondono ai modelli `.gitignore` sono esclusi dai suggerimenti | `false` |

254| `showClearContextOnPlanAccept` | Mostra l'opzione "cancella contesto" nella schermata di accettazione del piano. Predefinito: `false`. Imposta a `true` per ripristinare l'opzione | `true` |294| `showClearContextOnPlanAccept` | Mostra l'opzione "cancella contesto" nella schermata di accettazione del piano. Predefinito: `false`. Imposta a `true` per ripristinare l'opzione | `true` |

255| `showThinkingSummaries` | Mostra i riassunti del [pensiero esteso](/it/model-config#extended-thinking) nelle sessioni interattive. Quando non impostato o `false` (predefinito in modalità interattiva), i blocchi di pensiero vengono redatti dall'API e mostrati come uno stub compresso. La redazione cambia solo quello che vedi, non quello che il modello genera: per ridurre la spesa di pensiero, [abbassa il budget o disabilita il pensiero](/it/model-config#extended-thinking) invece. Questa impostazione non ha effetto in modalità non interattiva (`-p`), l'Agent SDK, o le estensioni IDE come VS Code | `true` |295| `showThinkingSummaries` | Mostra i riassunti del [pensiero esteso](/it/model-config#extended-thinking) nelle sessioni interattive. Quando non impostato o `false` (predefinito in modalità interattiva), i blocchi di pensiero vengono redatti dall'API e mostrati come uno stub compresso. La redazione cambia solo quello che vedi, non quello che il modello genera: per ridurre la spesa di pensiero, [abbassa il budget o disabilita il pensiero](/it/model-config#extended-thinking) invece. Questa impostazione non ha effetto in modalità non interattiva (`-p`), l'Agent SDK, o le estensioni IDE come VS Code | `true` |


265| `strictKnownMarketplaces` | (Solo impostazioni gestite) Elenco di autorizzazione dei marketplace dei plugin. Non definito = nessuna restrizione, array vuoto = blocco. Applicato all'aggiunta del marketplace e all'installazione, aggiornamento, aggiornamento e auto-aggiornamento del plugin, quindi un marketplace aggiunto prima che la politica fosse impostata non può essere utilizzato per recuperare i plugin. Vedi [Restrizioni del marketplace gestito](/it/plugin-marketplaces#managed-marketplace-restrictions) | `[{ "source": "github", "repo": "acme-corp/plugins" }]` |305| `strictKnownMarketplaces` | (Solo impostazioni gestite) Elenco di autorizzazione dei marketplace dei plugin. Non definito = nessuna restrizione, array vuoto = blocco. Applicato all'aggiunta del marketplace e all'installazione, aggiornamento, aggiornamento e auto-aggiornamento del plugin, quindi un marketplace aggiunto prima che la politica fosse impostata non può essere utilizzato per recuperare i plugin. Vedi [Restrizioni del marketplace gestito](/it/plugin-marketplaces#managed-marketplace-restrictions) | `[{ "source": "github", "repo": "acme-corp/plugins" }]` |

266| `strictPluginOnlyCustomization` | (Solo impostazioni gestite) Blocca skills, agenti, hooks e MCP server dalle fonti utente e di progetto, in modo che possano provenire solo da plugin o impostazioni gestite. `true` blocca tutti e quattro; un array blocca solo quelli denominati. Vedi [`strictPluginOnlyCustomization`](#strictpluginonlycustomization) | `["skills", "hooks"]` |306| `strictPluginOnlyCustomization` | (Solo impostazioni gestite) Blocca skills, agenti, hooks e MCP server dalle fonti utente e di progetto, in modo che possano provenire solo da plugin o impostazioni gestite. `true` blocca tutti e quattro; un array blocca solo quelli denominati. Vedi [`strictPluginOnlyCustomization`](#strictpluginonlycustomization) | `["skills", "hooks"]` |

267| `syntaxHighlightingDisabled` | Disabilita l'evidenziazione della sintassi nei diff, nei blocchi di codice e nelle anteprime dei file | `true` |307| `syntaxHighlightingDisabled` | Disabilita l'evidenziazione della sintassi nei diff, nei blocchi di codice e nelle anteprime dei file | `true` |

268| `teammateMode` | Come i compagni di squadra del [team di agenti](/it/agent-teams) vengono visualizzati: `auto` (sceglie riquadri divisi in tmux o iTerm2, in-process altrimenti), `in-process`, o `tmux`. `--teammate-mode` ignora questo per una sessione. Vedi [scegli una modalità di visualizzazione](/it/agent-teams#choose-a-display-mode) | `"in-process"` |308| `teammateMode` | Come i compagni di squadra del [team di agenti](/it/agent-teams) vengono visualizzati: `auto` (sceglie riquadri divisi in tmux o iTerm2, in-process altrimenti), `in-process`, o `tmux` (sceglie riquadri divisi usando tmux o iTerm2, rilevato dal tuo terminale). `--teammate-mode` ignora questo per una sessione. Vedi [scegli una modalità di visualizzazione](/it/agent-teams#choose-a-display-mode) | `"in-process"` |

269| `terminalProgressBarEnabled` | Mostra la barra di avanzamento del terminale nei terminali supportati: ConEmu, Ghostty 1.2.0+, e iTerm2 3.6.6+. Predefinito: `true`. Appare in `/config` come **Terminal progress bar** | `false` |309| `terminalProgressBarEnabled` | Mostra la barra di avanzamento del terminale nei terminali supportati: ConEmu, Ghostty 1.2.0+, e iTerm2 3.6.6+. Predefinito: `true`. Appare in `/config` come **Terminal progress bar** | `false` |

310| `theme` | {/* min-version: 2.1.119 */}Tema di colore per l'interfaccia: `"auto"`, `"dark"`, `"light"`, `"dark-daltonized"`, `"light-daltonized"`, `"dark-ansi"`, `"light-ansi"`, o un riferimento a tema personalizzato come `"custom:<slug>"` o `"custom:<plugin-name>:<slug>"`. Predefinito: `"dark"`. Vedi [Crea un tema personalizzato](/it/terminal-config#create-a-custom-theme). Appare in `/config` come **Theme** | `"dark"` |

270| `tui` | Renderer dell'interfaccia utente del terminale. Usa `"fullscreen"` per il renderer [alt-screen](/it/fullscreen) senza sfarfallio con scrollback virtualizzato. Usa `"default"` per il renderer classico della schermata principale. Imposta tramite `/tui`. Puoi anche impostare la variabile di ambiente [`CLAUDE_CODE_NO_FLICKER`](/it/env-vars) | `"fullscreen"` |311| `tui` | Renderer dell'interfaccia utente del terminale. Usa `"fullscreen"` per il renderer [alt-screen](/it/fullscreen) senza sfarfallio con scrollback virtualizzato. Usa `"default"` per il renderer classico della schermata principale. Imposta tramite `/tui`. Puoi anche impostare la variabile di ambiente [`CLAUDE_CODE_NO_FLICKER`](/it/env-vars) | `"fullscreen"` |

271| `ultracode` | Attiva [ultracode](/it/workflows#let-claude-decide-with-ultracode) per la sessione. Solo per sessione e non letto da `settings.json`. Imposta tramite `/effort ultracode`, `--settings`, o una richiesta di controllo dell'Agent SDK | `true` |312| `ultracode` | Attiva [ultracode](/it/workflows#let-claude-decide-with-ultracode) per la sessione. Solo per sessione e non letto da `settings.json`. Imposta tramite `/effort ultracode`, `--settings`, o una richiesta di controllo dell'Agent SDK | `true` |

272| `useAutoModeDuringPlan` | Se la modalità piano utilizza la semantica della modalità auto quando la modalità auto è disponibile. Predefinito: `true`. Non letto dalle impostazioni di progetto condivise. Appare in `/config` come "Use auto mode during plan" | `false` |313| `useAutoModeDuringPlan` | Se la modalità piano utilizza la semantica della modalità auto quando la modalità auto è disponibile. Predefinito: `true`. Non letto dalle impostazioni di progetto condivise. Appare in `/config` come "Use auto mode during plan" | `false` |

314| `verbose` | {/* min-version: 2.1.119 */}Mostra l'output completo dello strumento invece dei riassunti troncati. Predefinito: `false`. Appare in `/config` come **Verbose output**. Il flag `--verbose` ignora questo per una sessione | `true` |

273| `viewMode` | Modalità di visualizzazione della trascrizione predefinita all'avvio: `"default"`, `"verbose"`, o `"focus"`. Ignora la selezione sticky `/focus` quando impostato. Il flag `--verbose` ignora questo per una sessione | `"verbose"` |315| `viewMode` | Modalità di visualizzazione della trascrizione predefinita all'avvio: `"default"`, `"verbose"`, o `"focus"`. Ignora la selezione sticky `/focus` quando impostato. Il flag `--verbose` ignora questo per una sessione | `"verbose"` |

274| `voice` | Impostazioni della [dettatura vocale](/it/voice-dictation): `enabled` attiva la dettatura, `mode` seleziona `"hold"` o `"tap"`, e `autoSubmit` invia il prompt al rilascio del tasto in modalità hold. Scritto automaticamente quando esegui `/voice`. Richiede un account Claude.ai | `{ "enabled": true, "mode": "tap" }` |316| `voice` | Impostazioni della [dettatura vocale](/it/voice-dictation): `enabled` attiva la dettatura, `mode` seleziona `"hold"` o `"tap"`, e `autoSubmit` invia il prompt al rilascio del tasto in modalità hold. Scritto automaticamente quando esegui `/voice`. Richiede un account Claude.ai | `{ "enabled": true, "mode": "tap" }` |

275| `voiceEnabled` | Alias legacy per `voice.enabled`. Preferisci l'oggetto `voice` | `true` |317| `voiceEnabled` | Alias legacy per `voice.enabled`. Preferisci l'oggetto `voice` | `true` |

318| `wheelScrollAccelerationEnabled` | {/* min-version: 2.1.174 */}Nel [rendering fullscreen](/it/fullscreen#mouse-wheel-scrolling), accelera la velocità di scorrimento della rotella del mouse durante gli scorrimenti veloci. Predefinito: `true`. Imposta a `false` per una velocità di scorrimento costante per tacca della rotella. Richiede Claude Code v2.1.174 o successivo | `false` |

276| `workflowKeywordTriggerEnabled` | {/* min-version: 2.1.157 */}Se la parola chiave `ultracode` in un prompt attiva un [flusso di lavoro dinamico](/it/workflows#ask-for-a-workflow-in-your-prompt). Imposta a `false` per digitare la parola senza attivarne uno. L'impostazione ultracode, `/workflows`, e i comandi di flusso di lavoro salvati non sono interessati. Predefinito: `true`. Appare in `/config` come **Ultracode keyword trigger**. Aggiunto in v2.1.157; prima di v2.1.160 la parola chiave di attivazione era `workflow` | `false` |319| `workflowKeywordTriggerEnabled` | {/* min-version: 2.1.157 */}Se la parola chiave `ultracode` in un prompt attiva un [flusso di lavoro dinamico](/it/workflows#ask-for-a-workflow-in-your-prompt). Imposta a `false` per digitare la parola senza attivarne uno. L'impostazione ultracode, `/workflows`, e i comandi di flusso di lavoro salvati non sono interessati. Predefinito: `true`. Appare in `/config` come **Ultracode keyword trigger**. Aggiunto in v2.1.157; prima di v2.1.160 la parola chiave di attivazione era `workflow` | `false` |

277| `wslInheritsWindowsSettings` | (Solo impostazioni gestite Windows) Quando `true`, Claude Code su WSL legge le impostazioni gestite dalla catena di politiche Windows in aggiunta a `/etc/claude-code`, con le fonti Windows che hanno priorità. Onorato solo quando impostato nella chiave di registro HKLM o in `C:\Program Files\ClaudeCode\managed-settings.json`, entrambi richiedono privilegi di amministratore Windows per scrivere. Affinché la politica HKCU si applichi anche su WSL, il flag deve essere impostato anche in HKCU stesso. Non ha effetto su Windows nativo | `true` |320| `wslInheritsWindowsSettings` | (Solo impostazioni gestite Windows) Quando `true`, Claude Code su WSL legge le impostazioni gestite dalla catena di politiche Windows in aggiunta a `/etc/claude-code`, con le fonti Windows che hanno priorità. Onorato solo quando impostato nella chiave di registro HKLM o in `C:\Program Files\ClaudeCode\managed-settings.json`, entrambi richiedono privilegi di amministratore Windows per scrivere. Affinché la politica HKCU si applichi anche su WSL, il flag deve essere impostato anche in HKCU stesso. Non ha effetto su Windows nativo | `true` |

278 321 


283Queste impostazioni sono archiviate in `~/.claude.json` piuttosto che in `settings.json`. Aggiungerle a `settings.json` attiverà un errore di convalida dello schema.326Queste impostazioni sono archiviate in `~/.claude.json` piuttosto che in `settings.json`. Aggiungerle a `settings.json` attiverà un errore di convalida dello schema.

284 327 

285<Note>328<Note>

286 Le versioni precedenti a v2.1.119 archiviano anche `autoScrollEnabled`, `editorMode`, `showTurnDuration`, `teammateMode`, e `terminalProgressBarEnabled` qui invece che in `settings.json`.329 Le versioni precedenti a v2.1.119 archiviano anche un numero di chiavi di preferenza `/config` qui invece che in `settings.json`, inclusi `theme`, `verbose`, `editorMode`, `autoCompactEnabled`, e `preferredNotifChannel`.

287</Note>330</Note>

288 331 

289| Chiave | Descrizione | Esempio |332| Chiave | Descrizione | Esempio |


314 357 

315| Chiavi | Descrizione | Esempio |358| Chiavi | Descrizione | Esempio |

316| :---------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------- |359| :---------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------- |

317| `allow` | Array di regole di permesso per consentire l'uso dello strumento. Vedi [Sintassi della regola di permesso](#permission-rule-syntax) sottostante per i dettagli della corrispondenza dei modelli | `[ "Bash(git diff *)" ]` |360| `allow` | Array di regole di permesso per consentire l'uso dello strumento. I glob dei nomi degli strumenti sono supportati solo nella posizione dello strumento dopo un prefisso letterale `mcp__<server>__`, come `mcp__github__get_*`; il segmento del server deve essere privo di glob. Vedi [Sintassi della regola di permesso](#permission-rule-syntax) sottostante per i dettagli della corrispondenza dei modelli | `[ "Bash(git diff *)" ]` |

318| `ask` | Array di regole di permesso per chiedere conferma all'uso dello strumento. Vedi [Sintassi della regola di permesso](#permission-rule-syntax) sottostante | `[ "Bash(git push *)" ]` |361| `ask` | Array di regole di permesso per chiedere conferma all'uso dello strumento. Vedi [Sintassi della regola di permesso](#permission-rule-syntax) sottostante | `[ "Bash(git push *)" ]` |

319| `deny` | Array di regole di permesso per negare l'uso dello strumento. Usa questo per escludere file sensibili dall'accesso di Claude Code. Vedi [Sintassi della regola di permesso](#permission-rule-syntax) e [Limitazioni dei permessi Bash](/it/permissions#tool-specific-permission-rules) | `[ "WebFetch", "Bash(curl *)", "Read(./.env)", "Read(./secrets/**)" ]` |362| `deny` | Array di regole di permesso per negare l'uso dello strumento. Usa questo per escludere file sensibili dall'accesso di Claude Code. I nomi degli strumenti accettano modelli glob: `"*"` nega ogni strumento e `"mcp__*"` nega tutti gli strumenti MCP. Vedi [Sintassi della regola di permesso](#permission-rule-syntax) e [Limitazioni dei permessi Bash](/it/permissions#tool-specific-permission-rules) | `[ "WebFetch", "Bash(curl *)", "Read(./.env)", "Read(./secrets/**)" ]` |

320| `additionalDirectories` | [Directory di lavoro](/it/permissions#working-directories) aggiuntive per l'accesso ai file. La maggior parte della configurazione `.claude/` [non viene scoperta](/it/permissions#additional-directories-grant-file-access-not-configuration) da queste directory | `[ "../docs/" ]` |363| `additionalDirectories` | [Directory di lavoro](/it/permissions#working-directories) aggiuntive per l'accesso ai file. La maggior parte della configurazione `.claude/` [non viene scoperta](/it/permissions#additional-directories-grant-file-access-not-configuration) da queste directory | `[ "../docs/" ]` |

321| `defaultMode` | [Modalità di permesso](/it/permission-modes) predefinita quando si apre Claude Code. Valori validi: `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, `bypassPermissions`. {/* min-version: 2.1.142 */}A partire da Claude Code v2.1.142, `auto` viene ignorato quando impostato nelle impostazioni di progetto o locale (`.claude/settings.json`, `.claude/settings.local.json`) in modo che un repository non possa concedere a se stesso la modalità auto. Impostalo invece in `~/.claude/settings.json`. Il flag CLI `--permission-mode` ignora questa impostazione per una singola sessione | `"acceptEdits"` |364| `defaultMode` | [Modalità di permesso](/it/permission-modes) predefinita quando si apre Claude Code. Valori validi: `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, `bypassPermissions`. {/* min-version: 2.1.142 */}A partire da Claude Code v2.1.142, `auto` viene ignorato quando impostato nelle impostazioni di progetto o locale (`.claude/settings.json`, `.claude/settings.local.json`) in modo che un repository non possa concedere a se stesso la modalità auto. Impostalo invece in `~/.claude/settings.json`. Il flag CLI `--permission-mode` ignora questa impostazione per una singola sessione | `"acceptEdits"` |

322| `disableBypassPermissionsMode` | Imposta a `"disable"` per prevenire l'attivazione della modalità `bypassPermissions`. Disabilita il flag della riga di comando `--dangerously-skip-permissions`. Molto utile nelle [impostazioni gestite](/it/permissions#managed-settings) per applicare la politica organizzativa, ma funziona da qualsiasi ambito | `"disable"` |365| `disableBypassPermissionsMode` | Imposta a `"disable"` per prevenire l'attivazione della modalità `bypassPermissions`. Disabilita il flag della riga di comando `--dangerously-skip-permissions`. Molto utile nelle [impostazioni gestite](/it/permissions#managed-settings) per applicare la politica organizzativa, ma funziona da qualsiasi ambito | `"disable"` |


326 Sintassi della regola di permesso369 Sintassi della regola di permesso

327</h3>370</h3>

328 371 

329Le regole di permesso seguono il formato `Tool` o `Tool(specifier)`. Le regole vengono valutate in ordine: prima le regole di negazione, poi di richiesta, poi di autorizzazione. La prima regola corrispondente vince.372Le regole di permesso seguono il formato `Tool` o `Tool(specifier)`. Le regole vengono valutate in ordine: prima le regole di negazione, poi di richiesta, poi di autorizzazione. La prima regola corrispondente determina il risultato indipendentemente dalla specificità della regola. Vedi l'[ordine di valutazione della regola di permesso](/it/permissions#manage-permissions) per i dettagli.

330 373 

331Esempi rapidi:374Esempi rapidi:

332 375 


431**Attribuzione predefinita del commit:**474**Attribuzione predefinita del commit:**

432 475 

433```text theme={null}476```text theme={null}

434🤖 Generated with [Claude Code](https://claude.com/claude-code)477Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

435 

436 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

437```478```

438 479 

480Il nome del modello nel trailer riflette il modello attivo per la sessione.

481 

439**Attribuzione predefinita della pull request:**482**Attribuzione predefinita della pull request:**

440 483 

441```text theme={null}484```text theme={null}


491```bash theme={null}534```bash theme={null}

492#!/bin/bash535#!/bin/bash

493query=$(cat | jq -r '.query')536query=$(cat | jq -r '.query')

537# Sostituisci your-repo-file-index con il tuo comando di ricerca file

494your-repo-file-index --query "$query" | head -20538your-repo-file-index --query "$query" | head -20

495```539```

496 540 

541<h3 id="footer-link-badges">

542 Badge di link nel footer

543</h3>

544 

545L'impostazione `footerLinksRegexes` renderizza badge cliccabili extra nel footer sotto la casella di input. Usalo per trasformare gli ID stampati dai CLI del progetto, come strumenti di revisione e tracker di problemi, in link di sessione.

546 

547Ogni voce del `pattern` regex viene confrontata con l'output del turno: risultati degli strumenti, inclusi contenuti di file e pagine recuperate, e le risposte di Claude stesso. I placeholder `{name}` in `url` e `label` vengono riempiti dai gruppi di cattura denominati nel pattern.

548 

549L'esempio seguente renderizza un badge ogni volta che appare una chiave di problema come `PROJ-1234` nell'output del turno. Il gruppo denominato `(?<key>...)` cattura la chiave, e `{key}` la sostituisce nell'URL e nell'etichetta:

550 

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

552{

553 "footerLinksRegexes": [

554 {

555 "type": "regex",

556 "pattern": "\\b(?<key>PROJ-\\d+)\\b",

557 "url": "https://issues.example.com/browse/{key}",

558 "label": "{key}"

559 }

560 ]

561}

562```

563 

564Con questo configurato, quando `PROJ-1234` appare in un risultato dello strumento o nella risposta di Claude, un chip `PROJ-1234` appare nel footer collegato a `https://issues.example.com/browse/PROJ-1234`.

565 

566I seguenti vincoli si applicano a ogni voce:

567 

568| Vincolo | Comportamento |

569| :------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

570| Origine URL | I valori catturati sono codificati in URL e l'URL costruito deve condividere l'origine letterale del modello. Una cattura può riempire un segmento di percorso o un valore di query ma non può cambiare dove punta il link |

571| Lunghezza URL | Gli URL costruiti più lunghi di 2048 caratteri vengono eliminati |

572| Schema URL | Deve essere `https`, `http`, o uno schema di deep-link riconosciuto per editor o workspace: `vscode`, `vscode-insiders`, `cursor`, `windsurf`, `zed`, `jetbrains`, `idea`, `slack`, `linear`, `notion`, `figma` |

573| Etichetta | Predefinito al testo corrispondente e viene troncato a 28 colonne di visualizzazione |

574| Conteggio badge | Al massimo 5 badge vengono renderizzati. Il più vecchio viene spostato dai nuovi match e `/clear` li rimuove |

575| Ambito impostazioni | Letto dalle impostazioni utente, dal flag `--settings`, e dalle impostazioni gestite solo. Ignorato in `.claude/settings.json` e `.claude/settings.local.json` del progetto |

576 

577Quando un turno si completa, Claude Code confronta ogni voce del `pattern` regex con l'output del turno sul thread principale, quindi un regex lento blocca l'interfaccia utente fino al completamento. I quantificatori annidati come `(a+)+$` possono richiedere un tempo esponenziale rispetto a certi input e bloccare la sessione, quindi mantieni ogni `pattern` lineare ed evita di annidare `+` o `*`.

578 

579I badge del footer vengono renderizzati insieme a una [status line personalizzata](/it/statusline) quando una è configurata; nessuno sostituisce l'altro. Usa una status line per una riga guidata da script che calcola il suo contenuto dai dati della sessione, e i badge del footer per trasformare gli ID dalla conversazione in link senza uno script.

580 

497<h3 id="hook-configuration">581<h3 id="hook-configuration">

498 Configurazione hook582 Configurazione hook

499</h3>583</h3>


583Ad esempio, se le tue impostazioni utente impostano `permissions.defaultMode` a `acceptEdits` e le impostazioni condivise di un progetto lo impostano a `default`, il valore del progetto si applica. L'esempio sottostante copre come le impostazioni con valore di array come le regole di permesso si combinano invece.667Ad esempio, se le tue impostazioni utente impostano `permissions.defaultMode` a `acceptEdits` e le impostazioni condivise di un progetto lo impostano a `default`, il valore del progetto si applica. L'esempio sottostante copre come le impostazioni con valore di array come le regole di permesso si combinano invece.

584 668 

585<Note>669<Note>

586 **Le impostazioni di array si uniscono tra gli ambiti.** Quando la stessa impostazione con valore di array (come `sandbox.filesystem.allowWrite` o `permissions.allow`) appare in più ambiti, gli array vengono **concatenati e deduplicati**, non sostituiti. Ciò significa che gli ambiti con priorità inferiore possono aggiungere voci senza ignorare quelle impostate da ambiti con priorità più alta, e viceversa. Ad esempio, se le impostazioni gestite impostano `allowWrite` a `["/opt/company-tools"]` e un utente aggiunge `["~/.kube"]`, entrambi i percorsi sono inclusi nella configurazione finale.670 **Le impostazioni di array si uniscono tra gli ambiti.** Quando la stessa impostazione con valore di array (come `sandbox.filesystem.allowWrite` o `permissions.allow`) appare in più ambiti, gli array vengono **concatenati e deduplicati**, non sostituiti. Ciò significa che gli ambiti con priorità inferiore possono aggiungere voci senza ignorare quelle impostate da ambiti con priorità più alta, e viceversa. Ad esempio, se le impostazioni gestite impostano `allowWrite` a `["/opt/company-tools"]` e un utente aggiunge `["~/.kube"]`, entrambi i percorsi sono inclusi nella configurazione finale. Due eccezioni: [`fallbackModel`](#available-settings), una catena ordinata dove la posizione ha significato in modo che il file con la precedenza più alta che la definisce fornisce l'intero valore, e {/* min-version: 2.1.175 */}a partire da v2.1.175, [`availableModels`](#available-settings), dove un valore gestito o di politica sostituisce completamente le voci con precedenza inferiore. Vedi [Comportamento di unione](/it/model-config#merge-behavior).

587</Note>671</Note>

588 672 

589<h3 id="verify-active-settings">673<h3 id="verify-active-settings">

590 Verifica le impostazioni attive674 Verifica le impostazioni attive

591</h3>675</h3>

592 676 

593Esegui `/status` all'interno di Claude Code per vedere quali fonti di impostazioni sono attive. La scheda Status include una riga `Setting sources` che elenca ogni livello di configurazione che Claude Code ha caricato per la sessione corrente, come `User settings` o `Project local settings`. Quando le [impostazioni gestite](/it/admin-setup#decide-how-settings-reach-devices) sono in vigore, la voce mostra il canale di distribuzione tra parentesi, ad esempio `Enterprise managed settings (remote)`, `(plist)`, `(HKLM)`, `(HKCU)`, o `(file)`. Un livello appare nell'elenco solo quando quella fonte viene caricata con almeno una chiave, quindi un elenco vuoto significa che non sono state trovate fonti di impostazioni.677Esegui `/status` dentro Claude Code per vedere quali fonti di impostazioni sono attive. All'interno del menu, la scheda **Status** include una riga `Setting sources` che elenca ogni livello Claude Code ha caricato per la sessione corrente, come `User settings` o `Project local settings`. Quando le [impostazioni gestite](/it/admin-setup#decide-how-settings-reach-devices) sono in vigore, la voce mostra il canale di distribuzione tra parentesi, ad esempio `Enterprise managed settings (remote)`, `(plist)`, `(HKLM)`, `(HKCU)`, o `(file)`. Un livello appare nell'elenco solo quando quella fonte viene caricata con almeno una chiave, quindi un elenco vuoto significa che non sono state trovate fonti di impostazioni.

678 

679La riga `Setting sources` conferma quali fonti vengono lette. Non mostra quale livello ha fornito ogni singola chiave. La scheda **Config** nello stesso dialogo è un editor per un insieme fisso di interruttori come tema e output dettagliato, non una visualizzazione dei contenuti del tuo `settings.json`.

594 680 

595La riga `Setting sources` conferma quali fonti vengono lette. Non mostra quale livello ha fornito ogni singola chiave. La scheda Config nello stesso dialogo è un editor per un insieme fisso di interruttori come tema e output dettagliato, non una visualizzazione dei contenuti del tuo `settings.json`. Se un file di impostazioni contiene errori, come JSON non valido o un valore che non supera la convalida, `/status` segnala il problema in modo che tu possa risolverlo.681Se un file di impostazioni contiene errori, come JSON non valido o un valore che non supera la convalida, Claude Code mostra un avviso di problemi di configurazione all'avvio e `/status` elenca i file interessati. Esegui `/doctor` per i dettagli di ogni errore.

596 682 

597<h3 id="key-points-about-the-configuration-system">683<h3 id="key-points-about-the-configuration-system">

598 Punti chiave sul sistema di configurazione684 Punti chiave sul sistema di configurazione


603* **Skills**: Prompt personalizzati che possono essere invocati con `/skill-name` o caricati automaticamente da Claude689* **Skills**: Prompt personalizzati che possono essere invocati con `/skill-name` o caricati automaticamente da Claude

604* **MCP server**: Estendono Claude Code con strumenti e integrazioni aggiuntivi690* **MCP server**: Estendono Claude Code con strumenti e integrazioni aggiuntivi

605* **Precedenza**: Le configurazioni di livello superiore (Managed) ignorano quelle di livello inferiore (User/Project)691* **Precedenza**: Le configurazioni di livello superiore (Managed) ignorano quelle di livello inferiore (User/Project)

606* **Ereditarietà**: Le impostazioni vengono unite, con impostazioni più specifiche che aggiungono o ignorano quelle più ampie692* **Ereditarietà**: Le impostazioni vengono unite tra gli ambiti; i valori scalari da ambiti con priorità più alta ignorano, e gli array si concatenano. Eccezioni: `fallbackModel`, dove l'ambito con la precedenza più alta fornisce l'intera catena, e `availableModels`, dove un valore gestito o di politica sostituisce le voci con precedenza inferiore

607 693 

608<h3 id="system-prompt">694<h3 id="system-prompt">

609 Prompt di sistema695 Prompt di sistema


684 770 

685* **Impostazioni utente** (`~/.claude/settings.json`): Preferenze personali dei plugin771* **Impostazioni utente** (`~/.claude/settings.json`): Preferenze personali dei plugin

686* **Impostazioni di progetto** (`.claude/settings.json`): Plugin specifici del progetto condivisi con il team772* **Impostazioni di progetto** (`.claude/settings.json`): Plugin specifici del progetto condivisi con il team

687* **Impostazioni locali** (`.claude/settings.local.json`): Override per macchina (non committati)773* **Impostazioni locali** (`.claude/settings.local.json`): Override per macchina, gitignored quando Claude Code lo crea

688* **Impostazioni gestite** (`managed-settings.json`): Override della politica a livello organizzativo che blocca l'installazione in tutti gli ambiti e nasconde il plugin dal marketplace774* **Impostazioni gestite** (`managed-settings.json`): Override della politica a livello organizzativo che blocca l'installazione in tutti gli ambiti e nasconde il plugin dal marketplace

689 775 

690<Note>776<Note>


1075 Variabili di ambiente1161 Variabili di ambiente

1076</h2>1162</h2>

1077 1163 

1078Le variabili di ambiente ti consentono di controllare il comportamento di Claude Code senza modificare i file di impostazioni. Qualsiasi variabile può anche essere configurata in [`settings.json`](#available-settings) sotto la chiave `env` per applicarla a ogni sessione o distribuirla al tuo team.1164Le variabili di ambiente consentono di controllare il comportamento di Claude Code senza modificare i file di impostazioni. Qualsiasi variabile può anche essere configurata in [`settings.json`](#available-settings) sotto la chiave `env` per applicarla a ogni sessione o distribuirla al vostro team.

1079 1165 

1080Vedi il [riferimento delle variabili di ambiente](/it/env-vars) per l'elenco completo.1166Consultare il [riferimento delle variabili di ambiente](/it/env-vars) per l'elenco completo.

1081 1167 

1082<h2 id="tools-available-to-claude">1168<h2 id="tools-available-to-claude">

1083 Strumenti disponibili per Claude1169 Strumenti disponibili per Claude

setup.md +26 −4

Details

258 258 

259Nelle [impostazioni gestite](/it/permissions#managed-settings), questo applica un minimo a livello di organizzazione che le impostazioni utente e di progetto non possono ignorare.259Nelle [impostazioni gestite](/it/permissions#managed-settings), questo applica un minimo a livello di organizzazione che le impostazioni utente e di progetto non possono ignorare.

260 260 

261Il pin `minimumVersion` vincola solo gli aggiornamenti. Per fare in modo che Claude Code rifiuti di avviarsi al di fuori di un intervallo di versioni, utilizzate invece le impostazioni gestite `requiredMinimumVersion` e `requiredMaximumVersion`. Gli aggiornamenti rispettano anche il limite `requiredMaximumVersion`. Consultate [impostazioni disponibili](/it/settings#available-settings).

262 

261<h3 id="disable-auto-updates">263<h3 id="disable-auto-updates">

262 Disabilitare gli aggiornamenti automatici264 Disabilitare gli aggiornamenti automatici

263</h3>265</h3>


366 Installare con i gestori di pacchetti Linux368 Installare con i gestori di pacchetti Linux

367</h3>369</h3>

368 370 

369Claude Code pubblica repository apt, dnf e apk firmati. Sostituite `stable` con `latest` per il canale rolling. Le installazioni tramite gestore di pacchetti non si aggiornano automaticamente tramite Claude Code; gli aggiornamenti arrivano attraverso il vostro normale flusso di lavoro di aggiornamento del sistema.371Claude Code pubblica repository apt, dnf e apk firmati. Ogni repository offre due canali: `stable` fornisce una versione che è tipicamente circa una settimana vecchia, saltando i rilasci con regressioni importanti, e `latest` fornisce ogni rilascio non appena viene spedito. I comandi seguenti configurano il canale `stable`, che si adatta alla maggior parte degli utenti; ogni scheda mostra anche l'URL del repository `latest`. Le installazioni tramite gestore di pacchetti non si aggiornano automaticamente tramite Claude Code; gli aggiornamenti arrivano attraverso il vostro normale flusso di lavoro di aggiornamento del sistema.

370 372 

371Tutti i repository sono firmati con la [chiave di firma del rilascio di Claude Code](#binary-integrity-and-code-signing). Prima di fidarvi della chiave, verificatela come descritto in ogni scheda.373Tutti i repository sono firmati con la [chiave di firma del rilascio di Claude Code](#binary-integrity-and-code-signing). Prima di fidarvi della chiave, verificatela come descritto in ogni scheda.

372 374 

373<Tabs>375<Tabs>

374 <Tab title="apt">376 <Tab title="apt">

375 Per Debian e Ubuntu. Per utilizzare il canale rolling, cambiate entrambi gli occorrimenti di `stable` nella riga `deb`: il percorso dell'URL e il nome della suite.377 Per Debian e Ubuntu. I comandi seguenti configurano il canale `stable`:

376 378 

377 ```bash theme={null}379 ```bash theme={null}

378 sudo install -d -m 0755 /etc/apt/keyrings380 sudo install -d -m 0755 /etc/apt/keyrings


384 sudo apt install claude-code386 sudo apt install claude-code

385 ```387 ```

386 388 

389 Per utilizzare il canale `latest` invece, sia il percorso dell'URL che il nome della suite cambiano. Utilizzate questa riga `deb`:

390 

391 ```bash theme={null}

392 echo "deb [signed-by=/etc/apt/keyrings/claude-code.asc] https://downloads.claude.ai/claude-code/apt/latest latest main" \

393 | sudo tee /etc/apt/sources.list.d/claude-code.list

394 ```

395 

387 Verificate l'impronta digitale della chiave GPG prima di fidarvi: `gpg --show-keys /etc/apt/keyrings/claude-code.asc` dovrebbe riportare `31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE`.396 Verificate l'impronta digitale della chiave GPG prima di fidarvi: `gpg --show-keys /etc/apt/keyrings/claude-code.asc` dovrebbe riportare `31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE`.

388 397 

389 Per aggiornare in seguito, eseguite `sudo apt update && sudo apt upgrade claude-code`.398 Per aggiornare in seguito, eseguite `sudo apt update && sudo apt upgrade claude-code`.

390 </Tab>399 </Tab>

391 400 

392 <Tab title="dnf">401 <Tab title="dnf">

393 Per Fedora e RHEL:402 Per Fedora e RHEL. I comandi seguenti configurano il canale `stable`:

394 403 

395 ```bash theme={null}404 ```bash theme={null}

396 sudo tee /etc/yum.repos.d/claude-code.repo <<'EOF'405 sudo tee /etc/yum.repos.d/claude-code.repo <<'EOF'


404 sudo dnf install claude-code413 sudo dnf install claude-code

405 ```414 ```

406 415 

416 Per utilizzare il canale `latest` invece, impostate `baseurl` al repository `latest`:

417 

418 ```ini theme={null}

419 baseurl=https://downloads.claude.ai/claude-code/rpm/latest

420 ```

421 

407 dnf scarica la chiave al primo install e vi chiede di confermare l'impronta digitale. Verificate che corrisponda a `31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE` prima di accettare.422 dnf scarica la chiave al primo install e vi chiede di confermare l'impronta digitale. Verificate che corrisponda a `31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE` prima di accettare.

408 423 

409 Per aggiornare in seguito, eseguite `sudo dnf upgrade claude-code`.424 Per aggiornare in seguito, eseguite `sudo dnf upgrade claude-code`.

410 </Tab>425 </Tab>

411 426 

412 <Tab title="apk">427 <Tab title="apk">

413 Per Alpine Linux:428 Per Alpine Linux. I comandi seguenti configurano il canale `stable`:

414 429 

415 ```sh theme={null}430 ```sh theme={null}

416 wget -O /etc/apk/keys/claude-code.rsa.pub \431 wget -O /etc/apk/keys/claude-code.rsa.pub \


419 apk add claude-code434 apk add claude-code

420 ```435 ```

421 436 

437 Per passare al canale `latest`, rimuovete la riga del repository `stable` e aggiungete il repository `latest`:

438 

439 ```sh theme={null}

440 sed -i '\|downloads.claude.ai/claude-code/apk/stable|d' /etc/apk/repositories

441 echo "https://downloads.claude.ai/claude-code/apk/latest" >> /etc/apk/repositories

442 ```

443 

422 Verificate la chiave scaricata con `sha256sum /etc/apk/keys/claude-code.rsa.pub`, che dovrebbe riportare `395759c1f7449ef4cdef305a42e820f3c766d6090d142634ebdb049f113168b6`.444 Verificate la chiave scaricata con `sha256sum /etc/apk/keys/claude-code.rsa.pub`, che dovrebbe riportare `395759c1f7449ef4cdef305a42e820f3c766d6090d142634ebdb049f113168b6`.

423 445 

424 Per aggiornare in seguito, eseguite `apk update && apk upgrade claude-code`.446 Per aggiornare in seguito, eseguite `apk update && apk upgrade claude-code`.

skills.md +19 −6

Details

22 Skills raggruppate22 Skills raggruppate

23</h2>23</h2>

24 24 

25Claude Code include un set di skills raggruppate che sono disponibili in ogni sessione, incluse `/code-review`, `/batch`, `/debug`, `/loop`, e `/claude-api`. A differenza della maggior parte dei comandi integrati, che eseguono logica fissa direttamente, le skills raggruppate sono basate su prompt: danno a Claude istruzioni dettagliate e gli permettono di orchestrare il lavoro utilizzando i suoi strumenti. Le invochi allo stesso modo di qualsiasi altra skill, digitando `/` seguito dal nome della skill.25Claude Code include un set di skills raggruppate che sono disponibili in ogni sessione a meno che non siano disabilitate con l'impostazione [`disableBundledSkills`](/it/settings#available-settings), incluse `/code-review`, `/batch`, `/debug`, `/loop`, e `/claude-api`. A differenza della maggior parte dei comandi integrati, che eseguono logica fissa direttamente, le skills raggruppate sono basate su prompt: danno a Claude istruzioni dettagliate e gli permettono di orchestrare il lavoro utilizzando i suoi strumenti. Le invochi allo stesso modo di qualsiasi altra skill, digitando `/` seguito dal nome della skill.

26 26 

27Le skills raggruppate sono elencate insieme ai comandi integrati nel [riferimento dei comandi](/it/commands), contrassegnate come **Skill** nella colonna Scopo.27Le skills raggruppate sono elencate insieme ai comandi integrati nel [riferimento dei comandi](/it/commands), contrassegnate come **Skill** nella colonna Scopo.

28 28 


117| Progetto | `.claude/skills/<skill-name>/SKILL.md` | Solo questo progetto |117| Progetto | `.claude/skills/<skill-name>/SKILL.md` | Solo questo progetto |

118| Plugin | `<plugin>/skills/<skill-name>/SKILL.md` | Dove il plugin è abilitato |118| Plugin | `<plugin>/skills/<skill-name>/SKILL.md` | Dove il plugin è abilitato |

119 119 

120Quando le skills condividono lo stesso nome tra i livelli, enterprise ha la priorità su personale, e personale ha la priorità su progetto. Le skills dei plugin utilizzano uno spazio dei nomi `plugin-name:skill-name`, quindi non possono entrare in conflitto con altri livelli. Se hai file in `.claude/commands/`, funzionano allo stesso modo, ma se una skill e un comando condividono lo stesso nome, la skill ha la precedenza.120Quando le skills condividono lo stesso nome tra i livelli, enterprise ha la priorità su personale, e personale ha la priorità su progetto. Una skill a uno qualsiasi di questi livelli sostituisce anche una skill raggruppata con lo stesso nome. Ad esempio, una skill `code-review` nella `.claude/skills/` del tuo progetto sostituisce la `/code-review` raggruppata. Le skills dei plugin utilizzano uno spazio dei nomi `plugin-name:skill-name`, quindi non possono entrare in conflitto con altri livelli. Se hai file in `.claude/commands/`, funzionano allo stesso modo, ma se una skill e un comando condividono lo stesso nome, la skill ha la precedenza.

121 

122Le skills vengono caricate anche da directory `.claude/skills/` annidate al di sotto della tua directory di lavoro. Quando Claude legge o modifica un file in una sottodirectory, le skills dalla `.claude/skills/` di quella sottodirectory diventano disponibili. Questo consente a un pacchetto monorepo di fornire le proprie skills che si applicano quando si lavora su quel pacchetto, anche se la sessione è iniziata alla radice del repository.

123 

124Se una skill annidata condivide un nome con un'altra skill, entrambe rimangono disponibili. Ad esempio, con una skill `deploy` alla radice del progetto e un'altra in `apps/web/.claude/skills/`:

125 

126* Quella annidata appare con un nome qualificato dalla directory, `apps/web:deploy`.

127* La sua descrizione dice quale directory si applica.

128* Claude sceglie la variante che corrisponde ai file su cui sta lavorando.

129 

130Digitando `/deploy` esegui la skill della radice del progetto. Digita il nome qualificato `/apps/web:deploy` per eseguire esplicitamente la variante annidata.

121 131 

122<Note>132<Note>

123 Aggiungi un `.claude-plugin/plugin.json` a una cartella di skill e viene caricato come un [plugin](/it/plugins-reference#skills-directory-plugins) denominato `<name>@skills-dir`, in modo che possa raggruppare agenti, hooks e server MCP. In una `.claude/skills/` di un progetto, questo richiede di accettare prima la finestra di dialogo di fiducia dell'area di lavoro.133 Aggiungi un `.claude-plugin/plugin.json` a una cartella di skill e viene caricato come un [plugin](/it/plugins-reference#skills-directory-plugins) denominato `<name>@skills-dir`, in modo che possa raggruppare agenti, hooks e server MCP. In una `.claude/skills/` di un progetto, questo richiede di accettare prima la finestra di dialogo di fiducia dell'area di lavoro.


262La tabella seguente mostra da dove proviene il nome del comando per ogni layout:272La tabella seguente mostra da dove proviene il nome del comando per ogni layout:

263 273 

264| Posizione della skill | Fonte del nome del comando | Esempio |274| Posizione della skill | Fonte del nome del comando | Esempio |

265| :------------------------------------------------------------------ | :----------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- |275| :------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- |

266| Directory della skill sotto `~/.claude/skills/` o `.claude/skills/` | Nome della directory | `.claude/skills/deploy-staging/SKILL.md` → `/deploy-staging` |276| Directory della skill sotto `~/.claude/skills/` o `.claude/skills/` | Nome della directory | `.claude/skills/deploy-staging/SKILL.md` → `/deploy-staging` |

277| [Directory annidata](#where-skills-live) `.claude/skills/`, quando il nome si scontra con un'altra skill | Percorso della sottodirectory relativo alla directory di lavoro, quindi il nome della directory della skill | `apps/web/.claude/skills/deploy/SKILL.md` → `/apps/web:deploy` |

267| File sotto `.claude/commands/` | Nome del file senza estensione | `.claude/commands/deploy.md` → `/deploy` |278| File sotto `.claude/commands/` | Nome del file senza estensione | `.claude/commands/deploy.md` → `/deploy` |

268| Sottodirectory `skills/` del plugin | Nome della directory, con namespace dal plugin | `my-plugin/skills/review/SKILL.md` → `/my-plugin:review` |279| Sottodirectory `skills/` del plugin | Nome della directory, con namespace dal plugin | `my-plugin/skills/review/SKILL.md` → `/my-plugin:review` |

269| Plugin root `SKILL.md` | Frontmatter `name`, con il nome della directory del plugin come fallback | `my-plugin/SKILL.md` con `name: review` → `/my-plugin:review`. Vedi [Regole di comportamento del percorso](/it/plugins-reference#path-behavior-rules) |280| Plugin root `SKILL.md` | Frontmatter `name`, con il nome della directory del plugin come fallback | `my-plugin/SKILL.md` con `name: review` → `/my-plugin:review`. Vedi [Regole di comportamento del percorso](/it/plugins-reference#path-behavior-rules) |


288 299 

289Gli argomenti indicizzati utilizzano le virgolette in stile shell, quindi racchiudi i valori multi-parola tra virgolette per passarli come un singolo argomento. Ad esempio, `/my-skill "hello world" second` fa sì che `$0` si espanda a `hello world` e `$1` a `second`. Il placeholder `$ARGUMENTS` si espande sempre alla stringa di argomenti completa come digitata.300Gli argomenti indicizzati utilizzano le virgolette in stile shell, quindi racchiudi i valori multi-parola tra virgolette per passarli come un singolo argomento. Ad esempio, `/my-skill "hello world" second` fa sì che `$0` si espanda a `hello world` e `$1` a `second`. Il placeholder `$ARGUMENTS` si espande sempre alla stringa di argomenti completa come digitata.

290 301 

302Per includere un `$` letterale prima di una cifra, `ARGUMENTS`, o un nome di argomento dichiarato, come `$1.00` in prosa, sfuggilo con una barra rovesciata: `\$1.00`. Una barra rovesciata prima di qualsiasi altro `$` viene lasciata invariata. Solo una singola barra rovesciata direttamente prima del token lo sfugge. Una barra rovesciata doppia come `\\$1` lascia entrambe le barre rovesciate in posizione, e `$1` si espande comunque al valore dell'argomento.

303 

291**Esempio usando sostituzioni:**304**Esempio usando sostituzioni:**

292 305 

293```yaml theme={null}306```yaml theme={null}


395---408---

396```409```

397 410 

398Per bloccare una skill dall'usare certi strumenti, aggiungi regole di negazione nelle tue [impostazioni di permesso](/it/permissions) invece.411Per rimuovere gli strumenti dal pool disponibile di Claude mentre una skill è attiva, elencali in `disallowed-tools` nel frontmatter della skill. La restrizione si cancella quando invii il tuo prossimo messaggio. Per bloccare gli strumenti in tutte le skills e i prompt, aggiungi regole di negazione nelle tue [impostazioni di permesso](/it/permissions).

399 412 

400<h3 id="pass-arguments-to-skills">413<h3 id="pass-arguments-to-skills">

401 Passa argomenti alle skills414 Passa argomenti alle skills


557 570 

558Il campo `agent` specifica quale configurazione di subagent usare. Le opzioni includono agent integrati (`Explore`, `Plan`, `general-purpose`) o qualsiasi subagent personalizzato da `.claude/agents/`. Se omesso, utilizza `general-purpose`.571Il campo `agent` specifica quale configurazione di subagent usare. Le opzioni includono agent integrati (`Explore`, `Plan`, `general-purpose`) o qualsiasi subagent personalizzato da `.claude/agents/`. Se omesso, utilizza `general-purpose`.

559 572 

560<h3 id="restrict-claude-s-skill-access">573<h3 id="restrict-claudes-skill-access">

561 Limita l'accesso alle skills di Claude574 Limita l'accesso alle skills di Claude

562</h3>575</h3>

563 576 


850 Le descrizioni delle skills vengono tagliate863 Le descrizioni delle skills vengono tagliate

851</h3>864</h3>

852 865 

853Le descrizioni delle skills vengono caricate nel contesto in modo che Claude sappia cosa è disponibile. Tutti i nomi delle skills sono sempre inclusi, ma se hai molte skills, le descrizioni vengono accorciate per adattarsi al budget dei caratteri, il che può rimuovere le parole chiave di cui Claude ha bisogno per corrispondere alla tua richiesta. Il budget si ridimensiona all'1% della finestra di contesto del modello. Quando supera il limite, le descrizioni per le skills che invochi meno frequentemente vengono eliminate per prime, in modo che le skills che effettivamente usi mantengano il loro testo completo. Esegui `/doctor` per vedere se il budget sta superando il limite e quali skills sono interessate.866Le descrizioni delle skills vengono caricate nel contesto in modo che Claude sappia cosa è disponibile. Tutti i nomi delle skills sono sempre inclusi, ma se hai molte skills, le descrizioni vengono accorciate per adattarsi al budget dei caratteri, il che può rimuovere le parole chiave di cui Claude ha bisogno per corrispondere alla tua richiesta. Il budget si ridimensiona all'1% della finestra di contesto del modello. Quando supera il limite, le descrizioni per le skills che invochi meno frequentemente vengono eliminate per prime, in modo che le skills che effettivamente usi mantengano il loro testo completo. Esegui `/doctor` per vedere quante descrizioni di skills vengono accorciate o eliminate e quali skills sono interessate.

854 867 

855Per aumentare il budget, imposta l'impostazione [`skillListingBudgetFraction`](/it/settings#available-settings) (ad esempio `0.02` = 2%) o la variabile di ambiente `SLASH_COMMAND_TOOL_CHAR_BUDGET` su un conteggio di caratteri fisso. Per liberare budget per altre skills, imposta le voci a bassa priorità su `"name-only"` in [`skillOverrides`](#override-skill-visibility-from-settings) in modo che si elenchino senza una descrizione. Puoi anche ridurre il testo di `description` e `when_to_use` alla fonte: metti in primo piano il caso d'uso chiave, poiché il testo combinato di ogni voce è limitato a 1.536 caratteri indipendentemente dal budget. Il limite è configurabile con [`maxSkillDescriptionChars`](/it/settings#available-settings).868Per aumentare il budget, imposta l'impostazione [`skillListingBudgetFraction`](/it/settings#available-settings) (ad esempio `0.02` = 2%) o la variabile di ambiente `SLASH_COMMAND_TOOL_CHAR_BUDGET` su un conteggio di caratteri fisso. Per liberare budget per altre skills, imposta le voci a bassa priorità su `"name-only"` in [`skillOverrides`](#override-skill-visibility-from-settings) in modo che si elenchino senza una descrizione. Puoi anche ridurre il testo di `description` e `when_to_use` alla fonte: metti in primo piano il caso d'uso chiave, poiché il testo combinato di ogni voce è limitato a 1.536 caratteri indipendentemente dal budget. Il limite è configurabile con [`maxSkillDescriptionChars`](/it/settings#available-settings).

856 869 

slack.md +1 −1

Details

182 182 

183Questo modello basato su canale consente ai team di limitare l'utilizzo di Claude Code a canali specifici, fornendo un ulteriore livello di controllo dell'accesso oltre alle autorizzazioni a livello di workspace.183Questo modello basato su canale consente ai team di limitare l'utilizzo di Claude Code a canali specifici, fornendo un ulteriore livello di controllo dell'accesso oltre alle autorizzazioni a livello di workspace.

184 184 

185<h2 id="what-s-accessible-where">185<h2 id="whats-accessible-where">

186 Cosa è accessibile dove186 Cosa è accessibile dove

187</h2>187</h2>

188 188 

statusline.md +64 −22

Details

15* Lavori su più sessioni e hai bisogno di distinguerle15* Lavori su più sessioni e hai bisogno di distinguerle

16* Vuoi che il ramo git e lo stato siano sempre visibili16* Vuoi che il ramo git e lo stato siano sempre visibili

17 17 

18Claude Code può anche eseguire il rendering di [badge di collegamento nel footer](/it/settings#footer-link-badges): chip cliccabili che appaiono nel footer quando un'espressione regolare configurata corrisponde al testo nella conversazione. Questi sono indipendenti dalla barra di stato e non interagiscono con il tuo script; configurali invece con l'impostazione [`footerLinksRegexes`](/it/settings#footer-link-badges).

19 

18Ecco un esempio di una [barra di stato multi-riga](#display-multiple-lines) che visualizza le informazioni git sulla prima riga e una barra di contesto codificata a colori sulla seconda.20Ecco un esempio di una [barra di stato multi-riga](#display-multiple-lines) che visualizza le informazioni git sulla prima riga e una barra di contesto codificata a colori sulla seconda.

19 21 

20<Frame>22<Frame>


23 25 

24Questa pagina illustra come [configurare una barra di stato di base](#set-up-a-status-line), spiega [come fluiscono i dati](#how-status-lines-work) da Claude Code al tuo script, elenca [tutti i campi che puoi visualizzare](#available-data), e fornisce [esempi pronti all'uso](#examples) per modelli comuni come lo stato git, il tracciamento dei costi e le barre di progresso.26Questa pagina illustra come [configurare una barra di stato di base](#set-up-a-status-line), spiega [come fluiscono i dati](#how-status-lines-work) da Claude Code al tuo script, elenca [tutti i campi che puoi visualizzare](#available-data), e fornisce [esempi pronti all'uso](#examples) per modelli comuni come lo stato git, il tracciamento dei costi e le barre di progresso.

25 27 

26## Configura una barra di stato28<h2 id="set-up-a-status-line">

29 Configura una barra di stato

30</h2>

27 31 

28Usa il [comando `/statusline`](#use-the-statusline-command) per far generare uno script a Claude Code, oppure [crea manualmente uno script](#manually-configure-a-status-line) e aggiungilo alle tue impostazioni.32Usa il [comando `/statusline`](#use-the-%2Fstatusline-command) per far generare uno script a Claude Code, oppure [crea manualmente uno script](#manually-configure-a-status-line) e aggiungilo alle tue impostazioni.

29 33 

30### Usa il comando /statusline34<h3 id="use-the-/statusline-command">

35 Usa il comando /statusline

36</h3>

31 37 

32Il comando `/statusline` accetta istruzioni in linguaggio naturale che descrivono cosa vuoi visualizzare. Claude Code genera un file di script in `~/.claude/` e aggiorna automaticamente le tue impostazioni:38Il comando `/statusline` accetta istruzioni in linguaggio naturale che descrivono cosa vuoi visualizzare. Claude Code genera un file di script in `~/.claude/` e aggiorna automaticamente le tue impostazioni:

33 39 


35/statusline show model name and context percentage with a progress bar41/statusline show model name and context percentage with a progress bar

36```42```

37 43 

38### Configura manualmente una barra di stato44<h3 id="manually-configure-a-status-line">

45 Configura manualmente una barra di stato

46</h3>

39 47 

40Aggiungi un campo `statusLine` alle tue impostazioni utente (`~/.claude/settings.json`, dove `~` è la tua directory home) o alle [impostazioni del progetto](/it/settings#settings-files). Imposta `type` su `"command"` e punta `command` a un percorso di script o a un comando di shell inline. Per una procedura dettagliata sulla creazione di uno script, vedi [Costruisci una barra di stato passo dopo passo](#build-a-status-line-step-by-step).48Aggiungi un campo `statusLine` alle tue impostazioni utente (`~/.claude/settings.json`, dove `~` è la tua directory home) o alle [impostazioni del progetto](/it/settings#settings-files). Imposta `type` su `"command"` e punta `command` a un percorso di script o a un comando di shell inline. Per una procedura dettagliata sulla creazione di uno script, vedi [Costruisci una barra di stato passo dopo passo](#build-a-status-line-step-by-step).

41 49 


66 74 

67Il campo opzionale `hideVimModeIndicator` sopprime il testo integrato `-- INSERT --` sotto il prompt. Impostalo su `true` quando il tuo script renderizza [`vim.mode`](#available-data) stesso, in modo che la modalità non venga visualizzata due volte.75Il campo opzionale `hideVimModeIndicator` sopprime il testo integrato `-- INSERT --` sotto il prompt. Impostalo su `true` quando il tuo script renderizza [`vim.mode`](#available-data) stesso, in modo che la modalità non venga visualizzata due volte.

68 76 

69### Disabilita la barra di stato77<h3 id="disable-the-status-line">

78 Disabilita la barra di stato

79</h3>

70 80 

71Esegui `/statusline` e chiedigli di rimuovere o cancellare la tua barra di stato (ad esempio, `/statusline delete`, `/statusline clear`, `/statusline remove it`). Puoi anche eliminare manualmente il campo `statusLine` dal tuo settings.json.81Esegui `/statusline` e chiedigli di rimuovere o cancellare la tua barra di stato (ad esempio, `/statusline delete`, `/statusline clear`, `/statusline remove it`). Puoi anche eliminare manualmente il campo `statusLine` dal tuo settings.json.

72 82 

73## Costruisci una barra di stato passo dopo passo83<h2 id="build-a-status-line-step-by-step">

84 Costruisci una barra di stato passo dopo passo

85</h2>

74 86 

75Questa procedura mostra cosa sta accadendo dietro le quinte creando manualmente una barra di stato che visualizza il modello corrente, la directory di lavoro e la percentuale di utilizzo della finestra di contesto.87Questa procedura mostra cosa sta accadendo dietro le quinte creando manualmente una barra di stato che visualizza il modello corrente, la directory di lavoro e la percentuale di utilizzo della finestra di contesto.

76 88 

77<Note>Eseguire [`/statusline`](#use-the-statusline-command) con una descrizione di quello che vuoi configura tutto questo automaticamente per te.</Note>89<Note>Eseguire [`/statusline`](#use-the-%2Fstatusline-command) con una descrizione di quello che vuoi configura tutto questo automaticamente per te.</Note>

78 90 

79Questi esempi usano script Bash, che funzionano su macOS e Linux. Su Windows, vedi [Configurazione Windows](#windows-configuration) per esempi PowerShell e Git Bash.91Questi esempi usano script Bash, che funzionano su macOS e Linux. Su Windows, vedi [Configurazione Windows](#windows-configuration) per esempi PowerShell e Git Bash.

80 92 


128 </Step>140 </Step>

129</Steps>141</Steps>

130 142 

131## Come funzionano le barre di stato143<h2 id="how-status-lines-work">

144 Come funzionano le barre di stato

145</h2>

132 146 

133Claude Code esegue il tuo script e invia i [dati di sessione JSON](#available-data) ad esso tramite stdin. Il tuo script legge il JSON, estrae quello di cui ha bisogno e stampa il testo su stdout. Claude Code visualizza tutto ciò che il tuo script stampa.147Claude Code esegue il tuo script e invia i [dati di sessione JSON](#available-data) ad esso tramite stdin. Il tuo script legge il JSON, estrae quello di cui ha bisogno e stampa il testo su stdout. Claude Code visualizza tutto ciò che il tuo script stampa.

134 148 


150 164 

151<Note>La barra di stato viene eseguita localmente e non consuma token API. Si nasconde temporaneamente durante determinate interazioni dell'interfaccia utente, inclusi i suggerimenti di completamento automatico, il menu della guida e i prompt di autorizzazione.</Note>165<Note>La barra di stato viene eseguita localmente e non consuma token API. Si nasconde temporaneamente durante determinate interazioni dell'interfaccia utente, inclusi i suggerimenti di completamento automatico, il menu della guida e i prompt di autorizzazione.</Note>

152 166 

153## Dati disponibili167<h2 id="available-data">

168 Dati disponibili

169</h2>

154 170 

155Claude Code invia i seguenti campi JSON al tuo script tramite stdin:171Claude Code invia i seguenti campi JSON al tuo script tramite stdin:

156 172 


297 Gestisci i campi mancanti con accesso condizionale e i valori null con fallback predefiniti nei tuoi script.313 Gestisci i campi mancanti con accesso condizionale e i valori null con fallback predefiniti nei tuoi script.

298</Accordion>314</Accordion>

299 315 

300### Campi della finestra di contesto316<h3 id="context-window-fields">

317 Campi della finestra di contesto

318</h3>

301 319 

302L'oggetto `context_window` descrive la finestra di contesto attiva dalla risposta API più recente. A partire dalla v2.1.132, `total_input_tokens` e `total_output_tokens` riflettono l'utilizzo del contesto corrente, non i totali cumulativi della sessione.320L'oggetto `context_window` descrive la finestra di contesto attiva dalla risposta API più recente. A partire dalla v2.1.132, `total_input_tokens` e `total_output_tokens` riflettono l'utilizzo del contesto corrente, non i totali cumulativi della sessione.

303 321 


319 337 

320L'oggetto `current_usage` è `null` prima della prima chiamata API in una sessione, e di nuovo immediatamente dopo `/compact` fino a quando la prossima chiamata API non lo ripopola.338L'oggetto `current_usage` è `null` prima della prima chiamata API in una sessione, e di nuovo immediatamente dopo `/compact` fino a quando la prossima chiamata API non lo ripopola.

321 339 

322## Esempi340<h2 id="examples">

341 Esempi

342</h2>

323 343 

324Questi esempi mostrano modelli comuni della barra di stato. Per usare qualsiasi esempio:344Questi esempi mostrano modelli comuni della barra di stato. Per usare qualsiasi esempio:

325 345 


329 349 

330Gli esempi Bash usano [`jq`](https://jqlang.github.io/jq/) per analizzare JSON. Python e Node.js hanno l'analisi JSON integrata.350Gli esempi Bash usano [`jq`](https://jqlang.github.io/jq/) per analizzare JSON. Python e Node.js hanno l'analisi JSON integrata.

331 351 

332### Utilizzo della finestra di contesto352<h3 id="context-window-usage">

353 Utilizzo della finestra di contesto

354</h3>

333 355 

334Visualizza il modello corrente e l'utilizzo della finestra di contesto con una barra di progresso visiva. Ogni script legge JSON da stdin, estrae il campo `used_percentage` e costruisce una barra di 10 caratteri dove i blocchi pieni (▓) rappresentano l'utilizzo:356Visualizza il modello corrente e l'utilizzo della finestra di contesto con una barra di progresso visiva. Ogni script legge JSON da stdin, estrae il campo `used_percentage` e costruisce una barra di 10 caratteri dove i blocchi pieni (▓) rappresentano l'utilizzo:

335 357 


396 ```418 ```

397</CodeGroup>419</CodeGroup>

398 420 

399### Stato git con colori421<h3 id="git-status-with-colors">

422 Stato git con colori

423</h3>

400 424 

401Mostra il ramo git con indicatori codificati a colori per i file in staging e modificati. Questo script usa [codici di escape ANSI](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors) per i colori del terminale: `\033[32m` è verde, `\033[33m` è giallo e `\033[0m` ripristina il valore predefinito.425Mostra il ramo git con indicatori codificati a colori per i file in staging e modificati. Questo script usa [codici di escape ANSI](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors) per i colori del terminale: `\033[32m` è verde, `\033[33m` è giallo e `\033[0m` ripristina il valore predefinito.

402 426 


490 ```514 ```

491</CodeGroup>515</CodeGroup>

492 516 

493### Tracciamento di costi e durata517<h3 id="cost-and-duration-tracking">

518 Tracciamento di costi e durata

519</h3>

494 520 

495Traccia i costi API della tua sessione e il tempo trascorso. Il campo `cost.total_cost_usd` accumula il costo stimato di tutte le chiamate API nella sessione corrente. Il campo `cost.total_duration_ms` misura il tempo totale trascorso dall'inizio della sessione, mentre `cost.total_api_duration_ms` traccia solo il tempo trascorso in attesa delle risposte API.521Traccia i costi API della tua sessione e il tempo trascorso. Il campo `cost.total_cost_usd` accumula il costo stimato di tutte le chiamate API nella sessione corrente. Il campo `cost.total_duration_ms` misura il tempo totale trascorso dall'inizio della sessione, mentre `cost.total_api_duration_ms` traccia solo il tempo trascorso in attesa delle risposte API.

496 522 


551 ```577 ```

552</CodeGroup>578</CodeGroup>

553 579 

554### Visualizza più righe580<h3 id="display-multiple-lines">

581 Visualizza più righe

582</h3>

555 583 

556Il tuo script può produrre più righe per creare una visualizzazione più ricca. Ogni istruzione `echo` produce una riga separata nell'area di stato.584Il tuo script può produrre più righe per creare una visualizzazione più ricca. Ogni istruzione `echo` produce una riga separata nell'area di stato.

557 585 


658 ```686 ```

659</CodeGroup>687</CodeGroup>

660 688 

661### Link cliccabili689<h3 id="clickable-links">

690 Link cliccabili

691</h3>

662 692 

663Questo esempio crea un link cliccabile al tuo repository GitHub. Legge l'URL del remote git, converte il formato SSH in HTTPS con `sed` e avvolge il nome del repository nei codici di escape OSC 8. Tieni premuto Cmd (macOS) o Ctrl (Windows/Linux) e fai clic per aprire il link nel tuo browser.693Questo esempio crea un link cliccabile al tuo repository GitHub. Legge l'URL del remote git, converte il formato SSH in HTTPS con `sed` e avvolge il nome del repository nei codici di escape OSC 8. Tieni premuto Cmd (macOS) o Ctrl (Windows/Linux) e fai clic per aprire il link nel tuo browser.

664 694 


738 ```768 ```

739</CodeGroup>769</CodeGroup>

740 770 

741### Utilizzo del limite di velocità771<h3 id="rate-limit-usage">

772 Utilizzo del limite di velocità

773</h3>

742 774 

743Visualizza l'utilizzo del limite di velocità dell'abbonamento Claude.ai nella barra di stato. L'oggetto `rate_limits` contiene `five_hour` (finestra mobile di 5 ore) e `seven_day` (finestra settimanale). Ogni finestra fornisce `used_percentage` (0-100) e `resets_at` (secondi di epoca Unix quando la finestra si ripristina).775Visualizza l'utilizzo del limite di velocità dell'abbonamento Claude.ai nella barra di stato. L'oggetto `rate_limits` contiene `five_hour` (finestra mobile di 5 ore) e `seven_day` (finestra settimanale). Ogni finestra fornisce `used_percentage` (0-100) e `resets_at` (secondi di epoca Unix quando la finestra si ripristina).

744 776 


804 ```836 ```

805</CodeGroup>837</CodeGroup>

806 838 

807### Memorizza nella cache le operazioni costose839<h3 id="cache-expensive-operations">

840 Memorizza nella cache le operazioni costose

841</h3>

808 842 

809Il tuo script della barra di stato viene eseguito frequentemente durante le sessioni attive. Comandi come `git status` o `git diff` possono essere lenti, specialmente in repository di grandi dimensioni. Questo esempio memorizza nella cache le informazioni git in un file temporaneo e le aggiorna solo ogni 5 secondi.843Il tuo script della barra di stato viene eseguito frequentemente durante le sessioni attive. Comandi come `git status` o `git diff` possono essere lenti, specialmente in repository di grandi dimensioni. Questo esempio memorizza nella cache le informazioni git in un file temporaneo e le aggiorna solo ogni 5 secondi.

810 844 


935 ```969 ```

936</CodeGroup>970</CodeGroup>

937 971 

938### Configurazione Windows972<h3 id="windows-configuration">

973 Configurazione Windows

974</h3>

939 975 

940Su Windows, Claude Code esegue i comandi della barra di stato tramite Git Bash quando Git Bash è installato, o tramite PowerShell quando Git Bash è assente.976Su Windows, Claude Code esegue i comandi della barra di stato tramite Git Bash quando Git Bash è installato, o tramite PowerShell quando Git Bash è assente.

941 977 


990 ```1026 ```

991</CodeGroup>1027</CodeGroup>

992 1028 

993## Barre di stato dei subagent1029<h2 id="subagent-status-lines">

1030 Barre di stato dei subagent

1031</h2>

994 1032 

995L'impostazione `subagentStatusLine` renderizza un corpo di riga personalizzato per ogni [subagent](/it/sub-agents) mostrato nel pannello dell'agente sotto il prompt. Usalo per sostituire la riga predefinita `name · description · token count` con la tua formattazione.1033L'impostazione `subagentStatusLine` renderizza un corpo di riga personalizzato per ogni [subagent](/it/sub-agents) mostrato nel pannello dell'agente sotto il prompt. Usalo per sostituire la riga predefinita `name · description · token count` con la tua formattazione.

996 1034 


1009 1047 

1010Gli stessi gate di fiducia e `disableAllHooks` che si applicano a `statusLine` si applicano qui. I plugin possono fornire un `subagentStatusLine` predefinito nel loro [`settings.json`](/it/plugins-reference#standard-plugin-layout).1048Gli stessi gate di fiducia e `disableAllHooks` che si applicano a `statusLine` si applicano qui. I plugin possono fornire un `subagentStatusLine` predefinito nel loro [`settings.json`](/it/plugins-reference#standard-plugin-layout).

1011 1049 

1012## Suggerimenti1050<h2 id="tips">

1051 Suggerimenti

1052</h2>

1013 1053 

1014* **Testa con input simulato**: `echo '{"model":{"display_name":"Opus"},"workspace":{"current_dir":"/home/user/project"},"context_window":{"used_percentage":25},"session_id":"test-session-abc"}' | ./statusline.sh`1054* **Testa con input simulato**: `echo '{"model":{"display_name":"Opus"},"workspace":{"current_dir":"/home/user/project"},"context_window":{"used_percentage":25},"session_id":"test-session-abc"}' | ./statusline.sh`

1015* **Mantieni l'output breve**: la barra di stato ha una larghezza limitata, quindi l'output lungo potrebbe essere troncato o andare a capo in modo sgradevole1055* **Mantieni l'output breve**: la barra di stato ha una larghezza limitata, quindi l'output lungo potrebbe essere troncato o andare a capo in modo sgradevole


1017 1057 

1018Progetti della comunità come [ccstatusline](https://github.com/sirmalloc/ccstatusline) e [starship-claude](https://github.com/martinemde/starship-claude) forniscono configurazioni pre-costruite con temi e funzionalità aggiuntive.1058Progetti della comunità come [ccstatusline](https://github.com/sirmalloc/ccstatusline) e [starship-claude](https://github.com/martinemde/starship-claude) forniscono configurazioni pre-costruite con temi e funzionalità aggiuntive.

1019 1059 

1020## Risoluzione dei problemi1060<h2 id="troubleshooting">

1061 Risoluzione dei problemi

1062</h2>

1021 1063 

1022**La barra di stato non appare**1064**La barra di stato non appare**

1023 1065 

sub-agents.md +50 −20

Details

55 </Tab>55 </Tab>

56 56 

57 <Tab title="Plan">57 <Tab title="Plan">

58 Un agente di ricerca utilizzato durante la [plan mode](/it/permission-modes#analyze-before-you-edit-with-plan-mode) per raccogliere contesto prima di presentare un piano.58 Un agente di ricerca utilizzato durante la [Plan Mode](/it/permission-modes#analyze-before-you-edit-with-plan-mode) per raccogliere contesto prima di presentare un piano.

59 59 

60 * **Model**: Eredita dalla conversazione principale60 * **Model**: Eredita dalla conversazione principale

61 * **Tools**: Strumenti di sola lettura (accesso negato agli strumenti Write e Edit)61 * **Tools**: Strumenti di sola lettura (accesso negato agli strumenti Write e Edit)

62 * **Purpose**: Ricerca della base di codice per la pianificazione62 * **Purpose**: Ricerca della base di codice per la pianificazione

63 63 

64 Quando è in plan mode e Claude ha bisogno di comprendere la sua base di codice, delega la ricerca al subagent Plan. Questo previene l'annidamento infinito (i subagent non possono generare altri subagent) mentre raccoglie comunque il contesto necessario.64 Quando è in Plan Mode e Claude ha bisogno di comprendere la sua base di codice, delega la ricerca al subagent Plan in modo che l'output dell'esplorazione rimanga in una finestra di contesto separata mentre la conversazione principale rimane di sola lettura.

65 </Tab>65 </Tab>

66 66 

67 <Tab title="General-purpose">67 <Tab title="General-purpose">


84 </Tab>84 </Tab>

85</Tabs>85</Tabs>

86 86 

87I subagent integrati sono sempre registrati nelle sessioni interattive. Per bloccare un tipo integrato specifico, aggiungetelo a `permissions.deny` come mostrato in [Disabilitare subagent specifici](#disable-specific-subagents). Per impedire a Claude di delegare a qualsiasi subagent, negate lo strumento `Agent` stesso con [`permissions.deny`](/it/permissions#tool-specific-permission-rules). In [modalità non interattiva](/it/headless) e in [Agent SDK](/it/agent-sdk/overview), impostate [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/it/env-vars) per rimuovere tutti i tipi integrati e fornire solo i vostri.

88 

87Oltre a questi subagent integrati, potete creare i vostri con prompt personalizzati, restrizioni di strumenti, modalità di autorizzazione, hooks e skills. Le sezioni seguenti mostrano come iniziare e personalizzare i subagent.89Oltre a questi subagent integrati, potete creare i vostri con prompt personalizzati, restrizioni di strumenti, modalità di autorizzazione, hooks e skills. Le sezioni seguenti mostrano come iniziare e personalizzare i subagent.

88 90 

89<h2 id="quickstart-create-your-first-subagent">91<h2 id="quickstart-create-your-first-subagent">


158 Usi il comando /agents160 Usi il comando /agents

159</h3>161</h3>

160 162 

161Il comando `/agents` apre un'interfaccia a schede per gestire i subagent. La scheda **Running** mostra i subagent live e le consente di aprirli o fermarli. La scheda **Library** le consente di:163Il comando `/agents` apre un'interfaccia a schede per gestire i subagent. La scheda **Running** elenca i subagent live e quelli terminati di recente e le consente di aprirli o fermarli. La scheda **Library** le consente di:

162 164 

163* Visualizzare tutti i subagent disponibili (integrati, utente, progetto e plugin)165* Visualizzare tutti i subagent disponibili (integrati, utente, progetto e plugin)

164* Creare nuovi subagent con configurazione guidata o generazione Claude166* Creare nuovi subagent con configurazione guidata o generazione Claude


184 186 

185I **subagent di progetto** (`.claude/agents/`) sono ideali per subagent specifici di una base di codice. Li archivi nel controllo della versione in modo che il suo team possa utilizzarli e migliorarli in modo collaborativo.187I **subagent di progetto** (`.claude/agents/`) sono ideali per subagent specifici di una base di codice. Li archivi nel controllo della versione in modo che il suo team possa utilizzarli e migliorarli in modo collaborativo.

186 188 

187I subagent di progetto vengono scoperti camminando verso l'alto dalla directory di lavoro corrente. Le directory aggiunte con `--add-dir` [concedono solo l'accesso ai file](/it/permissions#additional-directories-grant-file-access-not-configuration) e non vengono scansionate per i subagent. Per condividere i subagent tra progetti, usi `~/.claude/agents/` o un [plugin](/it/plugins).189I subagent di progetto vengono scoperti camminando verso l'alto dalla directory di lavoro corrente, quindi ogni `.claude/agents/` tra e la radice del repository viene scansionato. {/* min-version: 2.1.178 */}A partire da v2.1.178, quando più di una di queste directory annidate definisce lo stesso `name`, Claude Code utilizza la definizione più vicina alla directory di lavoro.

190 

191Le directory aggiunte con `--add-dir` vengono anche scansionate: una cartella `.claude/agents/` all'interno di una directory aggiunta si carica insieme ai subagent di progetto. Consulti [Directory aggiuntive](/it/permissions#additional-directories-grant-file-access-not-configuration) per quali altri tipi di configurazione si caricano da `--add-dir`. Per condividere i subagent tra progetti senza `--add-dir`, usi `~/.claude/agents/` o un [plugin](/it/plugins).

188 192 

189I **subagent utente** (`~/.claude/agents/`) sono subagent personali disponibili in tutti i suoi progetti.193I **subagent utente** (`~/.claude/agents/`) sono subagent personali disponibili in tutti i suoi progetti.

190 194 


282| `description` | Yes | Quando Claude dovrebbe delegare a questo subagent |286| `description` | Yes | Quando Claude dovrebbe delegare a questo subagent |

283| `tools` | No | [Strumenti](#available-tools) che il subagent può utilizzare. Eredita tutti gli strumenti se omesso. Per precaricare Skills nel contesto, usi il campo `skills` piuttosto che elencare `Skill` qui |287| `tools` | No | [Strumenti](#available-tools) che il subagent può utilizzare. Eredita tutti gli strumenti se omesso. Per precaricare Skills nel contesto, usi il campo `skills` piuttosto che elencare `Skill` qui |

284| `disallowedTools` | No | Strumenti da negare, rimossi dall'elenco ereditato o specificato |288| `disallowedTools` | No | Strumenti da negare, rimossi dall'elenco ereditato o specificato |

285| `model` | No | [Modello](#choose-a-model) da utilizzare: `sonnet`, `opus`, `haiku`, un ID modello completo (ad esempio, `claude-opus-4-8`), o `inherit`. Predefinito: `inherit` |289| `model` | No | [Modello](#choose-a-model) da utilizzare: `sonnet`, `opus`, `haiku`, `fable`, un ID modello completo (ad esempio, `claude-opus-4-8`), o `inherit`. Predefinito: `inherit` |

286| `permissionMode` | No | [Modalità di autorizzazione](#permission-modes): `default`, `acceptEdits`, `auto`, `dontAsk`, `bypassPermissions`, o `plan`. Ignorato per [subagent plugin](#choose-the-subagent-scope) |290| `permissionMode` | No | [Modalità di autorizzazione](#permission-modes): `default`, `acceptEdits`, `auto`, `dontAsk`, `bypassPermissions`, o `plan`. Ignorato per [subagent plugin](#choose-the-subagent-scope) |

287| `maxTurns` | No | Numero massimo di turni agentici prima che il subagent si fermi |291| `maxTurns` | No | Numero massimo di turni agentici prima che il subagent si fermi |

288| `skills` | No | [Skills](/it/skills) da precaricare nel contesto del subagent all'avvio. Il contenuto completo della skill viene iniettato, non solo la descrizione. I subagent possono ancora invocare skills di progetto, utente e plugin non elencate tramite lo strumento Skill |292| `skills` | No | [Skills](/it/skills) da precaricare nel contesto del subagent all'avvio. Il contenuto completo della skill viene iniettato, non solo la descrizione. I subagent possono ancora invocare skills di progetto, utente e plugin non elencate tramite lo strumento Skill |


301 305 

302Il campo `model` controlla quale [modello AI](/it/model-config) utilizza il subagent:306Il campo `model` controlla quale [modello AI](/it/model-config) utilizza il subagent:

303 307 

304* **Alias modello**: Usi uno degli alias disponibili: `sonnet`, `opus`, o `haiku`308* **Alias modello**: Usi uno degli alias disponibili: `sonnet`, `opus`, `haiku`, o `fable`

305* **ID modello completo**: Usi un ID modello completo come `claude-opus-4-8` o `claude-sonnet-4-6`. Accetta gli stessi valori del flag `--model`309* **ID modello completo**: Usi un ID modello completo come `claude-opus-4-8` o `claude-sonnet-4-6`. Accetta gli stessi valori del flag `--model`

306* **inherit**: Usi lo stesso modello della conversazione principale310* **inherit**: Usi lo stesso modello della conversazione principale

307* **Omesso**: Se non specificato, predefinito a `inherit` (usa lo stesso modello della conversazione principale)311* **Omesso**: Se non specificato, predefinito a `inherit` (usa lo stesso modello della conversazione principale)


325 329 

326I subagent ereditano gli [strumenti interni](/it/tools-reference) e gli strumenti MCP disponibili nella conversazione principale per impostazione predefinita. I seguenti strumenti dipendono dall'interfaccia utente della conversazione principale o dallo stato della sessione e non sono disponibili per i subagent, anche se elencati nel campo `tools`:330I subagent ereditano gli [strumenti interni](/it/tools-reference) e gli strumenti MCP disponibili nella conversazione principale per impostazione predefinita. I seguenti strumenti dipendono dall'interfaccia utente della conversazione principale o dallo stato della sessione e non sono disponibili per i subagent, anche se elencati nel campo `tools`:

327 331 

328* `Agent`

329* `AskUserQuestion`332* `AskUserQuestion`

330* `EnterPlanMode`333* `EnterPlanMode`

331* `ExitPlanMode`, a meno che la [`permissionMode`](#permission-modes) del subagent non sia `plan`334* `ExitPlanMode`, a meno che la [`permissionMode`](#permission-modes) del subagent non sia `plan`


354 357 

355Se entrambi sono impostati, `disallowedTools` viene applicato per primo, quindi `tools` viene risolto rispetto al pool rimanente. Uno strumento elencato in entrambi viene rimosso.358Se entrambi sono impostati, `disallowedTools` viene applicato per primo, quindi `tools` viene risolto rispetto al pool rimanente. Uno strumento elencato in entrambi viene rimosso.

356 359 

360Entrambi i campi accettano modelli a livello di server MCP oltre ai nomi esatti degli strumenti: `mcp__<server>` o `mcp__<server>__*` concede o rimuove ogni strumento dal server denominato. In `disallowedTools`, `mcp__*` rimuove anche ogni strumento MCP da qualsiasi server. Questo esempio rimuove ogni strumento dal server MCP `github` mentre mantiene gli strumenti da altri server e ogni strumento integrato:

361 

362```yaml theme={null}

363---

364name: local-only

365description: Inherits every tool except those from the github MCP server

366disallowedTools: mcp__github

367---

368```

369 

357<h4 id="restrict-which-subagents-can-be-spawned">370<h4 id="restrict-which-subagents-can-be-spawned">

358 Limiti quali subagent possono essere generati371 Limiti quali subagent possono essere generati

359</h4>372</h4>


378tools: Agent, Read, Bash391tools: Agent, Read, Bash

379```392```

380 393 

381Se `Agent` è completamente omesso dall'elenco `tools`, l'agente non può generare alcun subagent. Questa restrizione si applica solo agli agenti eseguiti come thread principale con `claude --agent`. I subagent non possono generare altri subagent, quindi `Agent(agent_type)` non ha effetto nelle definizioni dei subagent.394Se `Agent` è completamente omesso dall'elenco `tools`, l'agente non può generare alcun subagent.

395 

396La sintassi allowlist `Agent(agent_type)` si applica solo a un agente eseguito come thread principale con `claude --agent`. In una definizione di subagent, elencare `Agent` in `tools` consente a quel subagent di [generare subagent annidati](#spawn-nested-subagents), ma qualsiasi elenco di tipi all'interno delle parentesi viene ignorato.

382 397 

383<h4 id="scope-mcp-servers-to-a-subagent">398<h4 id="scope-mcp-servers-to-a-subagent">

384 Limiti i server MCP a un subagent399 Limiti i server MCP a un subagent


444| `plan` | Plan mode (esplorazione di sola lettura) |459| `plan` | Plan mode (esplorazione di sola lettura) |

445 460 

446<Warning>461<Warning>

447 Usi `bypassPermissions` con cautela. Salta i prompt di autorizzazione, consentendo al subagent di eseguire operazioni senza approvazione, incluse le scritture in `.git`, `.config/git`, `.claude`, `.vscode`, `.idea`, `.husky`, `.cargo`, `.devcontainer`, `.yarn` e `.mvn`. Le rimozioni della directory root e home come `rm -rf /` continuano a richiedere come interruttore di protezione. Consulti [permission modes](/it/permission-modes#skip-all-checks-with-bypasspermissions-mode) per i dettagli.462 Usi `bypassPermissions` con cautela. Salta i prompt di autorizzazione, consentendo al subagent di eseguire operazioni senza approvazione, incluse le scritture in `.git`, `.config/git`, `.claude`, `.vscode`, `.idea`, `.husky`, `.cargo`, `.devcontainer`, `.yarn` e `.mvn`. Le regole [`ask`](/it/permissions#manage-permissions) esplicite e le rimozioni della directory root e home come `rm -rf /` continuano a richiedere come interruttore di protezione. Consulti [permission modes](/it/permission-modes#skip-all-checks-with-bypasspermissions-mode) per i dettagli.

448</Warning>463</Warning>

449 464 

450Se il principale utilizza `bypassPermissions` o `acceptEdits`, questo ha la precedenza e non può essere sovrascritto. Se il principale utilizza [auto mode](/it/permission-modes#eliminate-prompts-with-auto-mode), il subagent eredita auto mode e qualsiasi `permissionMode` nel suo frontmatter viene ignorato: il classificatore valuta le chiamate di strumenti del subagent con le stesse regole di blocco e consentimento della sessione principale.465Se il principale utilizza `bypassPermissions` o `acceptEdits`, questo ha la precedenza e non può essere sovrascritto. Se il principale utilizza [auto mode](/it/permission-modes#eliminate-prompts-with-auto-mode), il subagent eredita auto mode e qualsiasi `permissionMode` nel suo frontmatter viene ignorato: il classificatore valuta le chiamate di strumenti del subagent con le stesse regole di blocco e consentimento della sessione principale.


526 Regole condizionali con hooks541 Regole condizionali con hooks

527</h4>542</h4>

528 543 

529Per un controllo più dinamico sull'utilizzo degli strumenti, usi gli hook `PreToolUse` per convalidare le operazioni prima che vengano eseguite. Questo è utile quando ha bisogno di consentire alcune operazioni di uno strumento mentre ne blocca altre.544Per un controllo più dinamico sull'utilizzo degli strumenti, usi gli hook `PreToolUse` per convalidare le operazioni prima che vengono eseguite. Questo è utile quando ha bisogno di consentire alcune operazioni di uno strumento mentre ne blocca altre.

530 545 

531Questo esempio crea un subagent che consente solo query di database di sola lettura. L'hook `PreToolUse` esegue lo script specificato in `command` prima di ogni comando Bash:546Questo esempio crea un subagent che consente solo query di database di sola lettura. L'hook `PreToolUse` esegue lo script specificato in `command` prima di ogni comando Bash:

532 547 


761 776 

762Per disabilitare tutta la funzionalità di background task, imposti la variabile di ambiente `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` su `1`. Consulti [Environment variables](/it/env-vars).777Per disabilitare tutta la funzionalità di background task, imposti la variabile di ambiente `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` su `1`. Consulti [Environment variables](/it/env-vars).

763 778 

764Quando [`CLAUDE_CODE_FORK_SUBAGENT`](#fork-the-current-conversation) è impostato, ogni spawn di subagent viene eseguito in background indipendentemente dal campo `background`. I fork continuano a far emergere i prompt di autorizzazione nel suo terminale mentre si verificano; i subagent denominati auto-negano qualsiasi cosa che altrimenti richiederebbe un prompt, come descritto sopra.779Quando [`CLAUDE_CODE_FORK_SUBAGENT`](#fork-the-current-conversation) è impostato su `1`, ogni spawn di subagent viene eseguito in background indipendentemente dal campo `background`. I fork continuano a far emergere i prompt di autorizzazione nel suo terminale mentre si verificano; i subagent denominati auto-negano qualsiasi cosa che altrimenti richiederebbe un prompt, come descritto sopra.

765 780 

766<h3 id="common-patterns">781<h3 id="common-patterns">

767 Modelli comuni782 Modelli comuni


826 841 

827Per una domanda rapida su qualcosa già nella sua conversazione, usi [`/btw`](/it/interactive-mode#side-questions-with-%2Fbtw) invece di un subagent. Vede il suo contesto completo ma non ha accesso agli strumenti e la risposta viene scartata piuttosto che aggiunta alla cronologia.842Per una domanda rapida su qualcosa già nella sua conversazione, usi [`/btw`](/it/interactive-mode#side-questions-with-%2Fbtw) invece di un subagent. Vede il suo contesto completo ma non ha accesso agli strumenti e la risposta viene scartata piuttosto che aggiunta alla cronologia.

828 843 

829<Note>844<h3 id="spawn-nested-subagents">

830 I subagent non possono generare altri subagent. Se il suo flusso di lavoro richiede delegazione annidata, usi [Skills](/it/skills) o [concateni i subagent](#chain-subagents) dalla conversazione principale.845 Generi subagent annidati

831</Note>846</h3>

847 

848{/* min-version: 2.1.172 */}A partire da Claude Code v2.1.172, un subagent può generare i suoi propri subagent. Usi questo quando un'attività delegata si divide in sottoattività parallele, come un subagent revisore che invia un verificatore per ogni risultato, in modo che l'output intermedio non raggiunga mai la sua conversazione principale. Solo il riassunto del subagent di livello superiore ritorna a lei.

849 

850Un subagent annidato è configurato nello stesso modo di uno di livello superiore e si risolve dagli stessi [ambiti](#choose-the-subagent-scope). Il pannello dei subagent sotto l'input del prompt mostra l'albero completo: ogni riga visualizza un conteggio `(+N)` di discendenti, e aprire una riga mostra i figli diretti di quel subagent con un percorso di ritorno a `main`. La scheda Running in [`/agents`](#use-the-%2Fagents-command) elenca i subagent in esecuzione come un elenco piatto.

851 

852La profondità viene conteggiata come il numero di livelli di subagent sotto la conversazione principale, indipendentemente dal fatto che ogni livello venga eseguito in [primo piano o in background](#run-subagents-in-foreground-or-background):

853 

854* **Subagent in primo piano**: possono generare a qualsiasi profondità. Ogni livello blocca il suo genitore fino a quando non ritorna, quindi la catena è auto-limitante: la conversazione principale attende l'intera catena.

855* **Subagent in background**: un subagent in background a profondità cinque non riceve lo strumento Agent e non può generare ulteriormente. Il limite è fisso e non configurabile, ed esiste per prevenire alberi concorrenti incontrollati.

856 

857Per impedire a un subagent specifico di generare altri, ometta `Agent` dal suo elenco [`tools`](#available-tools) o aggiunga a `disallowedTools`.

858 

859Una [fork](#fork-the-current-conversation) ancora non può generare un'altra fork. Può generare altri tipi di subagent, e questi contano verso il limite di profondità.

832 860 

833<h3 id="manage-subagent-context">861<h3 id="manage-subagent-context">

834 Gestisca il contesto del subagent862 Gestisca il contesto del subagent


860 888 

861I subagent ripresi mantengono la loro cronologia di conversazione completa, incluse tutte le precedenti chiamate di strumenti, risultati e ragionamento. Il subagent riprende esattamente da dove si era fermato piuttosto che ricominciare da zero.889I subagent ripresi mantengono la loro cronologia di conversazione completa, incluse tutte le precedenti chiamate di strumenti, risultati e ragionamento. Il subagent riprende esattamente da dove si era fermato piuttosto che ricominciare da zero.

862 890 

863Quando un subagent completa, Claude riceve il suo ID agente. Claude utilizza lo strumento `SendMessage` con l'ID dell'agente come campo `to` per riprendere. Lo strumento `SendMessage` è disponibile solo quando [agent teams](/it/agent-teams) sono abilitati tramite `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`.891Quando un subagent completa, Claude riceve il suo ID agente. Gli agenti integrati Explore e Plan sono una tantum e non restituiscono alcun ID agente, quindi non possono essere ripresi; usi `general-purpose` o un subagent personalizzato quando ha bisogno di continuare il lavoro. Claude utilizza lo strumento `SendMessage` con l'ID dell'agente come campo `to` per riprendere. Lo strumento `SendMessage` è disponibile solo quando [agent teams](/it/agent-teams) sono abilitati tramite `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`.

864 892 

865Per riprendere un subagent, chieda a Claude di continuare il lavoro precedente:893Per riprendere un subagent, chieda a Claude di continuare il lavoro precedente:

866 894 


886 Auto-compattazione914 Auto-compattazione

887</h4>915</h4>

888 916 

889I subagent supportano la compattazione automatica utilizzando la stessa logica della conversazione principale. Per impostazione predefinita, la compattazione automatica si attiva a circa il 95% della capacità. Per attivare la compattazione prima, imposti `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` su una percentuale inferiore (ad esempio, `50`). Consulti [environment variables](/it/env-vars) per i dettagli.917I subagent supportano la compattazione automatica utilizzando la stessa logica della conversazione principale. La compattazione si attiva nelle stesse condizioni, e `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` si applica anche ai subagent. Consulti [environment variables](/it/env-vars) per quando l'override ha effetto.

890 918 

891Gli eventi di compattazione vengono registrati nei file di trascrizione dei subagent:919Gli eventi di compattazione vengono registrati nei file di trascrizione dei subagent:

892 920 


908</h2>936</h2>

909 937 

910<Note>938<Note>

911 I subagent di fork richiedono Claude Code v2.1.117 o successivo. {/* min-version: 2.1.161 */}Da v2.1.161 il comando `/fork` è abilitato per impostazione predefinita; nelle versioni precedenti richiede l'impostazione della variabile di ambiente [`CLAUDE_CODE_FORK_SUBAGENT`](/it/env-vars) su `1`. Rendere i fork il comportamento di spawn *predefinito* del modello è sperimentale e potrebbe cambiare nelle versioni future; abilitarlo impostando la stessa variabile. La variabile è rispettata in modalità interattiva e tramite SDK o `claude -p`.939 I subagent di fork richiedono Claude Code v2.1.117 o successivo. {/* min-version: 2.1.161 */}Da v2.1.161 il comando `/fork` è abilitato per impostazione predefinita; nelle versioni precedenti richiede l'impostazione della variabile di ambiente [`CLAUDE_CODE_FORK_SUBAGENT`](/it/env-vars) su `1`. Consentire a Claude stesso di generare fork è sperimentale e potrebbe cambiare nelle versioni future. Questa capacità può anche essere abilitata nelle sessioni interattive come parte di un rollout graduale.

912</Note>940</Note>

913 941 

914Un fork è un subagent che eredita l'intera conversazione fino ad ora invece di iniziare da zero. Questo elimina l'isolamento dell'input che i subagent altrimenti forniscono: un fork vede lo stesso prompt di sistema, strumenti, modello e cronologia dei messaggi della sessione principale, in modo che possa assegnargli un'attività secondaria senza re-spiegare la situazione. Le proprie chiamate di strumenti del fork rimangono comunque fuori dalla sua conversazione e solo il suo risultato finale ritorna, in modo che la sua finestra di contesto principale rimanga pulita. Usi un fork quando un subagent denominato avrebbe bisogno di troppo background per essere utile, o quando vuole provare diversi approcci in parallelo dallo stesso punto di partenza.942Un fork è un subagent che eredita l'intera conversazione fino ad ora invece di iniziare da zero. Questo elimina l'isolamento dell'input che i subagent altrimenti forniscono: un fork vede lo stesso prompt di sistema, strumenti, modello e cronologia dei messaggi della sessione principale, in modo che possa assegnargli un'attività secondaria senza re-spiegare la situazione. Le proprie chiamate di strumenti del fork rimangono comunque fuori dalla sua conversazione e solo il suo risultato finale ritorna, in modo che la sua finestra di contesto principale rimanga pulita. Usi un fork quando un subagent denominato avrebbe bisogno di troppo background per essere utile, o quando vuole provare diversi approcci in parallelo dallo stesso punto di partenza.

915 943 

916L'impostazione di `CLAUDE_CODE_FORK_SUBAGENT` cambia Claude Code in due modi:944Per controllare la modalità fork indipendentemente dal rollout graduale, imposti [`CLAUDE_CODE_FORK_SUBAGENT`](/it/env-vars) su `1` per abilitarla esplicitamente o su `0` per disabilitarla. La variabile è rispettata in modalità interattiva e tramite SDK o `claude -p`.

945 

946L'abilitazione della modalità fork cambia Claude Code in due modi:

917 947 

918* Claude genera un fork ogni volta che altrimenti utilizzerebbe il subagent [general-purpose](#built-in-subagents). I subagent denominati come Explore continuano a generarsi come prima.948* Claude può generare un fork richiedendo esplicitamente il tipo di subagent `fork`. Gli spawn senza un tipo di subagent continuano a utilizzare il subagent [general-purpose](#built-in-subagents), e i subagent denominati come Explore continuano a generarsi come prima.

919* Ogni spawn di subagent viene eseguito in [background](#run-subagents-in-foreground-or-background), sia che sia un fork che un subagent denominato. Imposti `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` su `1` per mantenere gli spawn sincroni.949* Ogni spawn di subagent viene eseguito in [background](#run-subagents-in-foreground-or-background), sia che sia un fork che un subagent denominato. Imposti `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` su `1` per mantenere gli spawn sincroni.

920 950 

921Può avviare un fork lei stesso con `/fork` seguito da una direttiva, con o senza la variabile impostata. Claude Code nomina il fork dalle prime parole della direttiva. L'esempio seguente esegue il fork della conversazione per redigere casi di test mentre continua con l'implementazione nella sessione principale:951Può avviare un fork lei stesso con `/fork` seguito da una direttiva, con o senza la variabile impostata. Claude Code nomina il fork dalle prime parole della direttiva. L'esempio seguente esegue il fork della conversazione per redigere casi di test mentre continua con l'implementazione nella sessione principale:


961 Limitazioni991 Limitazioni

962</h3>992</h3>

963 993 

964L'impostazione di `CLAUDE_CODE_FORK_SUBAGENT=1` abilita la fork mode in sessioni interattive, [modalità non interattiva](/it/headless) e SDK Agent. Un fork non può generare ulteriori fork.994L'impostazione di `CLAUDE_CODE_FORK_SUBAGENT=1` abilita la modalità fork in sessioni interattive, [modalità non interattiva](/it/headless) e SDK Agent; l'impostazione su `0` disabilita la modalità fork ovunque, incluso qualsiasi rollout lato server. Un fork non può generare ulteriori fork.

965 995 

966<h2 id="example-subagents">996<h2 id="example-subagents">

967 Subagent di esempio997 Subagent di esempio

Details

291</Accordion>291</Accordion>

292 292 

293<h2 id="switch-to-fullscreen-rendering">293<h2 id="switch-to-fullscreen-rendering">

294 Switch to fullscreen rendering294 Passa al rendering a schermo intero

295</h2>295</h2>

296 296 

297Se lo schermo sfarfalla o la posizione di scorrimento salta mentre Claude sta lavorando, passa alla [modalità di rendering a schermo intero](/it/fullscreen). Disegna su uno schermo separato che il terminale riserva per le app a schermo intero invece di aggiungere al tuo normale scrollback, il che mantiene l'utilizzo della memoria piatto e aggiunge il supporto del mouse per lo scorrimento e la selezione. In questa modalità scorri con il mouse o PageUp dentro Claude Code piuttosto che con lo scrollback nativo del tuo terminale; consulta la [pagina fullscreen](/it/fullscreen#search-and-review-the-conversation) per come cercare e copiare.297Se lo schermo sfarfalla o la posizione di scorrimento salta mentre Claude sta lavorando, passa alla [modalità di rendering a schermo intero](/it/fullscreen). Disegna su uno schermo separato che il terminale riserva per le app a schermo intero invece di aggiungere al tuo normale scrollback, il che mantiene l'utilizzo della memoria piatto e aggiunge il supporto del mouse per lo scorrimento e la selezione. In questa modalità scorri con il mouse o PageUp dentro Claude Code piuttosto che con lo scrollback nativo del tuo terminale; consulta la [pagina fullscreen](/it/fullscreen#search-and-review-the-conversation) per come cercare e copiare.


317</CodeGroup>317</CodeGroup>

318 318 

319<h2 id="paste-large-content">319<h2 id="paste-large-content">

320 Paste large content320 Incolla contenuti di grandi dimensioni

321</h2>321</h2>

322 322 

323Quando incolla più di 10.000 caratteri nel prompt, Claude Code comprime l'input a un placeholder `[Pasted text]` in modo che la casella di input rimanga utilizzabile. Il contenuto completo viene comunque inviato a Claude quando invii.323Quando incolla più di 10.000 caratteri nel prompt, Claude Code comprime l'input a un placeholder `[Pasted text]` in modo che la casella di input rimanga utilizzabile. Il contenuto completo viene comunque inviato a Claude quando invii.

Details

6 6 

7> Scopri come Claude Code può integrarsi con vari servizi di terze parti e infrastrutture per soddisfare i requisiti di distribuzione aziendale.7> Scopri come Claude Code può integrarsi con vari servizi di terze parti e infrastrutture per soddisfare i requisiti di distribuzione aziendale.

8 8 

9export const ContactSalesCard = ({surface}) => {

10 const utm = content => `utm_source=claude_code&utm_medium=docs&utm_content=${surface}_${content}`;

11 const iconArrowRight = (size = 13) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">

12 <line x1="5" y1="12" x2="19" y2="12" />

13 <polyline points="12 5 19 12 12 19" />

14 </svg>;

15 const STYLES = `

16.cc-cs {

17 --cs-slate: #141413;

18 --cs-clay: #d97757;

19 --cs-clay-deep: #c6613f;

20 --cs-gray-000: #ffffff;

21 --cs-gray-700: #3d3d3a;

22 --cs-border-default: rgba(31, 30, 29, 0.15);

23 font-family: inherit;

24}

25.dark .cc-cs {

26 --cs-slate: #f0eee6;

27 --cs-gray-000: #262624;

28 --cs-gray-700: #bfbdb4;

29 --cs-border-default: rgba(240, 238, 230, 0.14);

30}

31.cc-cs-card {

32 display: flex; align-items: center; justify-content: space-between;

33 gap: 16px; padding: 14px 16px; margin: 0;

34 background: var(--cs-gray-000); border: 0.5px solid var(--cs-border-default);

35 border-radius: 8px; flex-wrap: wrap;

36}

37.cc-cs-text { font-size: 13px; color: var(--cs-gray-700); line-height: 1.5; flex: 1; min-width: 240px; }

38.cc-cs-text strong { font-weight: 550; color: var(--cs-slate); }

39.cc-cs-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

40.cc-cs-btn-clay {

41 display: inline-flex; align-items: center; gap: 8px;

42 background: var(--cs-clay-deep); color: #fff; border: none;

43 border-radius: 8px; padding: 8px 14px;

44 font-size: 13px; font-weight: 500;

45 transition: background-color 0.15s; white-space: nowrap;

46}

47.cc-cs-btn-clay:hover { background: var(--cs-clay); }

48.cc-cs-btn-ghost {

49 display: inline-flex; align-items: center; gap: 8px;

50 background: transparent; color: var(--cs-gray-700);

51 border: 0.5px solid var(--cs-border-default);

52 border-radius: 8px; padding: 8px 14px;

53 font-size: 13px; font-weight: 500;

54}

55.cc-cs-btn-ghost:hover { background: rgba(0, 0, 0, 0.04); }

56.dark .cc-cs-btn-ghost:hover { background: rgba(255, 255, 255, 0.04); }

57@media (max-width: 720px) {

58 .cc-cs-actions { width: 100%; }

59}

60`;

61 return <div className="cc-cs not-prose">

62 <style>{STYLES}</style>

63 <div className="cc-cs-card">

64 <div className="cc-cs-text">

65 <strong>Deploying Claude Code across your organization?</strong> Talk to sales about enterprise plans, SSO, and centralized billing.

66 </div>

67 <div className="cc-cs-actions">

68 <a href={`https://claude.com/pricing?${utm('view_plans')}#plans-business`} className="cc-cs-btn-ghost">

69 View plans

70 </a>

71 <a href={`https://claude.com/contact-sales?${utm('contact_sales')}`} className="cc-cs-btn-clay">

72 Contact sales {iconArrowRight()}

73 </a>

74 </div>

75 </div>

76 </div>;

77};

78 

9Le organizzazioni possono distribuire Claude Code direttamente tramite Anthropic o tramite un provider cloud. Questa pagina ti aiuta a scegliere la configurazione giusta.79Le organizzazioni possono distribuire Claude Code direttamente tramite Anthropic o tramite un provider cloud. Questa pagina ti aiuta a scegliere la configurazione giusta.

10 80 

81<ContactSalesCard surface="third_party_overview" />

82 

11<h2 id="compare-deployment-options">83<h2 id="compare-deployment-options">

12 Confronta le opzioni di distribuzione84 Confronta le opzioni di distribuzione

13</h2>85</h2>


245</h2>317</h2>

246 318 

247<h3 id="invest-in-documentation-and-memory">319<h3 id="invest-in-documentation-and-memory">

248 Investi nella documentazione e nella memoria320 Invest in documentation and memory

249</h3>321</h3>

250 322 

251Ti consigliamo vivamente di investire nella documentazione in modo che Claude Code comprenda il tuo codebase. Le organizzazioni possono distribuire file CLAUDE.md a più livelli:323Ti consigliamo vivamente di investire nella documentazione in modo che Claude Code comprenda il tuo codebase. Le organizzazioni possono distribuire file CLAUDE.md a più livelli:


256Scopri di più in [Memory and CLAUDE.md files](/it/memory).328Scopri di più in [Memory and CLAUDE.md files](/it/memory).

257 329 

258<h3 id="simplify-deployment">330<h3 id="simplify-deployment">

259 Semplifica la distribuzione331 Simplify deployment

260</h3>332</h3>

261 333 

262Se hai un ambiente di sviluppo personalizzato, riteniamo che creare un modo "one click" per installare Claude Code sia fondamentale per aumentare l'adozione in tutta l'organizzazione.334Se hai un ambiente di sviluppo personalizzato, riteniamo che creare un modo "one click" per installare Claude Code sia fondamentale per aumentare l'adozione in tutta l'organizzazione.

263 335 

264<h3 id="start-with-guided-usage">336<h3 id="start-with-guided-usage">

265 Inizia con un utilizzo guidato337 Start with guided usage

266</h3>338</h3>

267 339 

268Incoraggia i nuovi utenti a provare Claude Code per domande e risposte sul codebase, o su correzioni di bug più piccole o richieste di funzionalità. Chiedi a Claude Code di fare un piano. Controlla i suggerimenti di Claude e fornisci feedback se è fuori strada. Nel tempo, man mano che gli utenti comprendono meglio questo nuovo paradigma, saranno più efficaci nel permettere a Claude Code di funzionare in modo più agentico.340Incoraggia i nuovi utenti a provare Claude Code per domande e risposte sul codebase, o su correzioni di bug più piccole o richieste di funzionalità. Chiedi a Claude Code di fare un piano. Controlla i suggerimenti di Claude e fornisci feedback se è fuori strada. Nel tempo, man mano che gli utenti comprendono meglio questo nuovo paradigma, saranno più efficaci nel permettere a Claude Code di funzionare in modo più agentico.

269 341 

270<h3 id="pin-model-versions-for-cloud-providers">342<h3 id="pin-model-versions-for-cloud-providers">

271 Fissa le versioni dei modelli per i provider cloud343 Pin model versions for cloud providers

272</h3>344</h3>

273 345 

274Se distribuisci tramite [Bedrock](/it/amazon-bedrock), [Vertex AI](/it/google-vertex-ai), [Foundry](/it/microsoft-foundry), o [Claude Platform on AWS](/it/claude-platform-on-aws), fissa versioni specifiche dei modelli utilizzando `ANTHROPIC_DEFAULT_OPUS_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL`, e `ANTHROPIC_DEFAULT_HAIKU_MODEL`. Senza fissare, gli alias dei modelli si risolvono nella versione più recente, che potrebbe non essere ancora abilitata nel tuo account quando Anthropic rilascia un aggiornamento. Fissare le versioni ti consente di controllare quando i tuoi utenti passano a un nuovo modello. Vedi [Model configuration](/it/model-config#pin-models-for-third-party-deployments) per ciò che ogni provider fa quando la versione più recente non è disponibile.346Se distribuisci tramite [Bedrock](/it/amazon-bedrock), [Vertex AI](/it/google-vertex-ai), [Foundry](/it/microsoft-foundry), o [Claude Platform on AWS](/it/claude-platform-on-aws), fissa versioni specifiche dei modelli utilizzando `ANTHROPIC_DEFAULT_FABLE_MODEL`, `ANTHROPIC_DEFAULT_OPUS_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL`, e `ANTHROPIC_DEFAULT_HAIKU_MODEL`. Senza fissare, gli alias dei modelli si risolvono nel valore predefinito integrato di Claude Code per quel provider, che può essere in ritardo rispetto alla versione più recente e potrebbe non essere ancora abilitato nel tuo account. Fissare le versioni ti consente di controllare quando i tuoi utenti passano a un nuovo modello. Vedi [Model configuration](/it/model-config#pin-models-for-third-party-deployments) per ciò che ogni provider fa quando il valore predefinito non è disponibile.

275 347 

276<h3 id="configure-security-policies">348<h3 id="configure-security-policies">

277 Configura le policy di sicurezza349 Configure security policies

278</h3>350</h3>

279 351 

280I team di sicurezza possono configurare autorizzazioni gestite per ciò che Claude Code è e non è autorizzato a fare, che non può essere sovrascritto dalla configurazione locale. [Scopri di più](/it/security).352I team di sicurezza possono configurare autorizzazioni gestite per ciò che Claude Code è e non è autorizzato a fare, che non può essere sovrascritto dalla configurazione locale. [Scopri di più](/it/security).

281 353 

282<h3 id="leverage-mcp-for-integrations">354<h3 id="leverage-mcp-for-integrations">

283 Sfrutta MCP per le integrazioni355 Leverage MCP for integrations

284</h3>356</h3>

285 357 

286MCP è un ottimo modo per fornire a Claude Code più informazioni, come la connessione a sistemi di gestione dei ticket o log degli errori. Ti consigliamo che un team centrale configuri i server MCP e archivi una configurazione `.mcp.json` nel codebase in modo che tutti gli utenti ne traggano beneficio. [Scopri di più](/it/mcp).358MCP è un ottimo modo per fornire a Claude Code più informazioni, come la connessione a sistemi di gestione dei ticket o log degli errori. Ti consigliamo che un team centrale configuri i server MCP e archivi una configurazione `.mcp.json` nel codebase in modo che tutti gli utenti ne traggano beneficio. [Scopri di più](/it/mcp).

Details

44| `TaskOutput` | (Deprecato) Recupera l'output da un'attività in background. Preferisci `Read` sul percorso del file di output dell'attività | No |44| `TaskOutput` | (Deprecato) Recupera l'output da un'attività in background. Preferisci `Read` sul percorso del file di output dell'attività | No |

45| `TaskStop` | Termina un'attività in background in esecuzione per ID | No |45| `TaskStop` | Termina un'attività in background in esecuzione per ID | No |

46| `TaskUpdate` | Aggiorna lo stato dell'attività, le dipendenze, i dettagli, o elimina le attività | No |46| `TaskUpdate` | Aggiorna lo stato dell'attività, le dipendenze, i dettagli, o elimina le attività | No |

47| `TeamCreate` | Crea un [team di agenti](/it/agent-teams) con più compagni. Disponibile solo quando `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` è impostato | No |

48| `TeamDelete` | Scioglie un team di agenti e pulisce i processi dei compagni. Disponibile solo quando `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` è impostato | No |

49| `TodoWrite` | {/* min-version: 2.1.142 */}Gestisce l'elenco di controllo delle attività della sessione. Disabilitato per impostazione predefinita a partire da v2.1.142 a favore di `TaskCreate`, `TaskGet`, `TaskList`, e `TaskUpdate`. Imposta `CLAUDE_CODE_ENABLE_TASKS=0` per riabilitare | No |47| `TodoWrite` | {/* min-version: 2.1.142 */}Gestisce l'elenco di controllo delle attività della sessione. Disabilitato per impostazione predefinita a partire da v2.1.142 a favore di `TaskCreate`, `TaskGet`, `TaskList`, e `TaskUpdate`. Imposta `CLAUDE_CODE_ENABLE_TASKS=0` per riabilitare | No |

50| `ToolSearch` | Cerca e carica strumenti differiti quando [tool search](/it/mcp#scale-with-mcp-tool-search) è abilitato | No |48| `ToolSearch` | Cerca e carica strumenti differiti quando [tool search](/it/mcp#scale-with-mcp-tool-search) è abilitato | No |

51| `WaitForMcpServers` | {/* min-version: 2.1.142 */}Attende uno o più [server MCP](/it/mcp) che sono ancora in fase di connessione in background, in modo che una richiesta possa utilizzare i loro strumenti senza riavviare la sessione. Claude lo chiama quando un server necessario non è ancora connesso. Appare solo quando [tool search](/it/mcp#scale-with-mcp-tool-search) è disabilitato, poiché `ToolSearch` gestisce l'attesa quando è abilitato | No |49| `WaitForMcpServers` | {/* min-version: 2.1.142 */}Attende uno o più [server MCP](/it/mcp) che sono ancora in fase di connessione in background, in modo che una richiesta possa utilizzare i loro strumenti senza riavviare la sessione. Claude lo chiama quando un server necessario non è ancora connesso. Appare solo quando [tool search](/it/mcp#scale-with-mcp-tool-search) è disabilitato, poiché `ToolSearch` gestisce l'attesa quando è abilitato | No |


70Tutti questi accettano lo stesso formato di regola, `ToolName(specifier)`. Lo specifier dipende dallo strumento, e diversi strumenti condividono un formato:68Tutti questi accettano lo stesso formato di regola, `ToolName(specifier)`. Lo specifier dipende dallo strumento, e diversi strumenti condividono un formato:

71 69 

72| Formato di regola | Si applica a | Dettagli |70| Formato di regola | Si applica a | Dettagli |

73| :----------------------------- | :------------------------ | :------------------------------------------------------------------------ |71| :----------------------------- | :------------------------ | :-------------------------------------------------------------------------------- |

74| `Bash(npm run *)` | Bash, Monitor | [Corrispondenza di pattern di comando](/it/permissions#bash) |72| `Bash(npm run *)` | Bash, Monitor | [Corrispondenza di pattern di comando](/it/permissions#bash) |

75| `PowerShell(Get-ChildItem *)` | PowerShell | [Corrispondenza di pattern di comando](/it/permissions#powershell) |73| `PowerShell(Get-ChildItem *)` | PowerShell | [Corrispondenza di pattern di comando](/it/permissions#powershell) |

76| `Read(~/secrets/**)` | Read, Grep, Glob, LSP | [Corrispondenza di pattern di percorso](/it/permissions#read-and-edit) |74| `Read(~/secrets/**)` | Read, Grep, Glob, LSP | [Corrispondenza di pattern di percorso](/it/permissions#read-and-edit) |

77| `Edit(/src/**)` | Edit, Write, NotebookEdit | [Corrispondenza di pattern di percorso](/it/permissions#read-and-edit) |75| `Edit(/src/**)` | Edit, Write, NotebookEdit | [Corrispondenza di pattern di percorso](/it/permissions#read-and-edit) |

78| `Skill(deploy *)` | Skill | [Corrispondenza di nome skill](/it/skills#restrict-claude's-skill-access) |76| `Skill(deploy *)` | Skill | [Corrispondenza di nome skill](/it/skills#restrict-claude%E2%80%99s-skill-access) |

79| `Agent(Explore)` | Agent | [Corrispondenza di tipo subagent](/it/permissions#agent-subagents) |77| `Agent(Explore)` | Agent | [Corrispondenza di tipo subagent](/it/permissions#agent-subagents) |

80| `WebFetch(domain:example.com)` | WebFetch | [Corrispondenza di dominio](/it/permissions#webfetch) |78| `WebFetch(domain:example.com)` | WebFetch | [Corrispondenza di dominio](/it/permissions#webfetch) |

81| `WebSearch` | WebSearch | Nessuno specifier; consenti o nega lo strumento nel suo insieme |79| `WebSearch` | WebSearch | Nessuno specifier; consenti o nega lo strumento nel suo insieme |


186* Salta alla definizione di un simbolo184* Salta alla definizione di un simbolo

187* Trova tutti i riferimenti a un simbolo185* Trova tutti i riferimenti a un simbolo

188* Ottieni informazioni sul tipo in una posizione186* Ottieni informazioni sul tipo in una posizione

189* Elenca i simboli in un file o workspace187* Elenca i simboli in un file

188* Cerca un simbolo per nome in tutto il workspace

190* Trova implementazioni di un'interfaccia189* Trova implementazioni di un'interfaccia

191* Traccia gerarchie di chiamate190* Traccia gerarchie di chiamate

192 191 


305* Le risposte vengono memorizzate nella cache per 15 minuti, quindi i recuperi ripetuti dello stesso URL vengono restituiti rapidamente.304* Le risposte vengono memorizzate nella cache per 15 minuti, quindi i recuperi ripetuti dello stesso URL vengono restituiti rapidamente.

306* Quando un URL reindirizza a un host diverso, WebFetch restituisce un risultato di testo che nomina l'URL originale e il target di reindirizzamento invece di seguirlo. Claude quindi recupera il nuovo URL con una seconda chiamata WebFetch.305* Quando un URL reindirizza a un host diverso, WebFetch restituisce un risultato di testo che nomina l'URL originale e il target di reindirizzamento invece di seguirlo. Claude quindi recupera il nuovo URL con una seconda chiamata WebFetch.

307 306 

308Nelle modalità di autorizzazione predefinita e `acceptEdits`, WebFetch richiede la prima volta che raggiunge un nuovo dominio. Per consentire un dominio in anticipo senza un prompt, aggiungi una regola di autorizzazione come `WebFetch(domain:example.com)`. Le modalità di autorizzazione `auto` e `bypassPermissions` saltano completamente il prompt.307Nelle modalità di autorizzazione predefinita e `acceptEdits`, WebFetch richiede la prima volta che raggiunge un nuovo dominio, ad eccezione di un insieme integrato di domini di documentazione preapprovati che vengono recuperati senza un prompt. Per consentire un altro dominio in anticipo senza un prompt, aggiungi una regola di autorizzazione come `WebFetch(domain:example.com)`. Le modalità di autorizzazione `auto` e `bypassPermissions` [permission modes](/it/permissions#permission-modes) saltano completamente il prompt.

309 308 

310WebFetch imposta un'intestazione `User-Agent` che inizia con `Claude-User`, e un'intestazione `Accept` che preferisce Markdown a HTML in modo che i server che supportano la negoziazione dei contenuti possano restituire Markdown direttamente. Le [regole di rete della Sandbox](/it/sandboxing) sono configurate separatamente, quindi un dominio che vuoi che un processo in sandbox raggiunga ha ancora bisogno di una regola di autorizzazione sandbox esplicita.309Una regola esplicita `WebFetch(domain:...)` in `deny`, `ask`, o `allow` ha la precedenza rispetto all'insieme preapprovato, quindi puoi bloccare un dominio preapprovato o richiedere un prompt per esso.

310 

311WebFetch imposta un'intestazione `User-Agent` che inizia con `Claude-User`, e un'intestazione `Accept` che preferisce Markdown a HTML in modo che i server che supportano la negoziazione dei contenuti possano restituire Markdown direttamente. [Sandbox](/it/sandboxing) Le regole di rete sono configurate separatamente, quindi un dominio che vuoi che un processo in sandbox raggiunga ha ancora bisogno di una regola di autorizzazione sandbox esplicita.

311 312 

312<h2 id="websearch-tool-behavior">313<h2 id="websearch-tool-behavior">

313 Comportamento dello strumento WebSearch314 Comportamento dello strumento WebSearch


349 350 

350Claude fornisce un riepilogo conversazionale. Per i nomi esatti degli strumenti MCP, esegui `/mcp`.351Claude fornisce un riepilogo conversazionale. Per i nomi esatti degli strumenti MCP, esegui `/mcp`.

351 352 

353<Note>

354 Lo [strumento advisor](/it/advisor) è uno [strumento server](https://platform.claude.com/docs/en/agents-and-tools/tool-use/advisor-tool) che l'API esegue, piuttosto che uno strumento che Claude Code implementa. Non ha un nome che puoi referenziare nelle regole di autorizzazione o nei matcher degli hook.

355</Note>

356 

352<h2 id="see-also">357<h2 id="see-also">

353 Vedi anche358 Vedi anche

354</h2>359</h2>

Details

24| `TLS connect error` o `SSL/TLS secure channel` | [Aggiorna i certificati CA](#tls-or-ssl-connection-errors) |24| `TLS connect error` o `SSL/TLS secure channel` | [Aggiorna i certificati CA](#tls-or-ssl-connection-errors) |

25| `Failed to fetch version` o impossibile raggiungere il server di download | [Controlla le impostazioni di rete e proxy](#check-network-connectivity) |25| `Failed to fetch version` o impossibile raggiungere il server di download | [Controlla le impostazioni di rete e proxy](#check-network-connectivity) |

26| `irm is not recognized` o `&& is not valid` | [Usa il comando giusto per la tua shell](#wrong-install-command-on-windows) |26| `irm is not recognized` o `&& is not valid` | [Usa il comando giusto per la tua shell](#wrong-install-command-on-windows) |

27| `Cask 'claude-code' is unavailable: No Cask with this name exists` | [Aggiorna Homebrew](#homebrew-cask-unavailable-or-outdated) |

27| `'bash' is not recognized as the name of a cmdlet` | [Usa il comando del programma di installazione di Windows](#wrong-install-command-on-windows) |28| `'bash' is not recognized as the name of a cmdlet` | [Usa il comando del programma di installazione di Windows](#wrong-install-command-on-windows) |

28| `Claude Code on Windows requires either Git for Windows (for bash) or PowerShell` | [Installa una shell](#claude-code-on-windows-requires-either-git-for-windows-for-bash-or-powershell) |29| `Claude Code on Windows requires either Git for Windows (for bash) or PowerShell` | [Installa una shell](#claude-code-on-windows-requires-either-git-for-windows-for-bash-or-powershell) |

29| `Claude Code does not support 32-bit Windows` | [Apri Windows PowerShell, non la voce x86](#claude-code-does-not-support-32-bit-windows) |30| `Claude Code does not support 32-bit Windows` | [Apri Windows PowerShell, non la voce x86](#claude-code-does-not-support-32-bit-windows) |


61curl -sI https://downloads.claude.ai/claude-code-releases/latest62curl -sI https://downloads.claude.ai/claude-code-releases/latest

62```63```

63 64 

65In PowerShell, esegui `curl.exe -sI` invece. PowerShell crea un alias di `curl` a `Invoke-WebRequest`, che rifiuta i flag `-sI`.

66 

64Una riga `HTTP/2 200` significa che hai raggiunto il server. Se non vedi output, `Could not resolve host`, o un timeout di connessione, la tua rete sta bloccando la connessione. Le cause comuni sono:67Una riga `HTTP/2 200` significa che hai raggiunto il server. Se non vedi output, `Could not resolve host`, o un timeout di connessione, la tua rete sta bloccando la connessione. Le cause comuni sono:

65 68 

66* Firewall aziendali o proxy che bloccano `downloads.claude.ai`69* Firewall aziendali o proxy che bloccano `downloads.claude.ai`


95 98 

96Se l'installazione è riuscita ma ricevi un errore `command not found` o `not recognized` quando esegui `claude`, la directory di installazione non è nel tuo PATH. La tua shell cerca i programmi nelle directory elencate in PATH, e il programma di installazione posiziona `claude` in `~/.local/bin/claude` su macOS/Linux o `%USERPROFILE%\.local\bin\claude.exe` su Windows.99Se l'installazione è riuscita ma ricevi un errore `command not found` o `not recognized` quando esegui `claude`, la directory di installazione non è nel tuo PATH. La tua shell cerca i programmi nelle directory elencate in PATH, e il programma di installazione posiziona `claude` in `~/.local/bin/claude` su macOS/Linux o `%USERPROFILE%\.local\bin\claude.exe` su Windows.

97 100 

101<Note>

102 L'[estensione VS Code](/it/vs-code) non posiziona `claude` in questa posizione. Raggruppa una copia privata della CLI all'interno della directory dell'estensione per il suo pannello di chat e non la aggiunge a PATH. Se hai installato solo l'estensione, `~/.local/bin/claude` non esisterà. Esegui l'[installazione standalone](/it/setup) per utilizzare `claude` da un terminale, quindi continua di seguito.

103</Note>

104 

98Controlla se la directory di installazione è nel tuo PATH elencando le tue voci PATH e filtrando per `local/bin`:105Controlla se la directory di installazione è nel tuo PATH elencando le tue voci PATH e filtrando per `local/bin`:

99 106 

100<Tabs>107<Tabs>


188 ls -la ~/.local/bin/claude195 ls -la ~/.local/bin/claude

189 ```196 ```

190 197 

198 Se uno dei comandi `ls` stampa `No such file or directory`, non è un errore. Significa che nulla è installato in quella posizione, quindi passa al controllo successivo.

199 

191 ```bash theme={null}200 ```bash theme={null}

192 ls -la ~/.claude/local/201 ls -la ~/.claude/local/

193 ```202 ```


390 winget install Anthropic.ClaudeCode399 winget install Anthropic.ClaudeCode

391 ```400 ```

392 401 

402<h3 id="homebrew-cask-unavailable-or-outdated">

403 Cask Homebrew non disponibile o obsoleto

404</h3>

405 

406Homebrew segnala `Error: Cask 'claude-code' is unavailable: No Cask with this name exists` quando la tua copia locale dell'indice cask di Homebrew è precedente alla pubblicazione del cask. Aggiorna l'indice e riprova:

407 

408```bash theme={null}

409brew update

410brew install --cask claude-code

411```

412 

413Se Homebrew installa una versione di Claude Code più vecchia di quella che ti aspetti, di solito la stessa causa è l'indice obsoleto. Il cask `claude-code` traccia il canale stabile ed è in genere circa una settimana dietro l'ultima versione; per la versione più recente esegui `brew install --cask claude-code@latest` invece. Vedi [Configura il canale di rilascio](/it/setup#configure-release-channel) per la differenza tra i due cask.

414 

393<h3 id="tls-or-ssl-connection-errors">415<h3 id="tls-or-ssl-connection-errors">

394 Errori di connessione TLS o SSL416 Errori di connessione TLS o SSL

395</h3>417</h3>


578 600 

579**Se PowerShell manca dal tuo PATH**, la sua posizione predefinita è `C:\Windows\System32\WindowsPowerShell\v1.0\`. Aggiungi quella directory al tuo `PATH`, o installa [PowerShell 7](https://aka.ms/powershell), che fornisce `pwsh`.601**Se PowerShell manca dal tuo PATH**, la sua posizione predefinita è `C:\Windows\System32\WindowsPowerShell\v1.0\`. Aggiungi quella directory al tuo `PATH`, o installa [PowerShell 7](https://aka.ms/powershell), che fornisce `pwsh`.

580 602 

581**Per installare Git for Windows invece**, scaricalo da [git-scm.com/downloads/win](https://git-scm.com/downloads/win). Durante la configurazione, seleziona "Add to PATH." Riavvia il tuo terminale dopo l'installazione. L'installazione lo abilita lo strumento Bash, utile quando si lavora con script e strumenti basati su Bash.603**Per installare Git for Windows invece**, scaricalo da [git-scm.com/downloads/win](https://git-scm.com/downloads/win). Durante la configurazione, seleziona "Add to PATH." Riavvia il tuo terminale dopo l'installazione. L'installazione abilita lo strumento Bash, utile quando si lavora con script e strumenti basati su Bash.

582 604 

583**Se Git è già installato** ma Claude Code non riesce a trovarlo, imposta il percorso nel tuo [file settings.json](/it/settings):605**Se Git è già installato** ma Claude Code non riesce a trovarlo, imposta il percorso nel tuo [file settings.json](/it/settings):

584 606 


592 614 

593Se il tuo Git è installato da qualche altra parte, trova il percorso eseguendo `where.exe git` in PowerShell e usa il percorso `bin\bash.exe` da quella directory.615Se il tuo Git è installato da qualche altra parte, trova il percorso eseguendo `where.exe git` in PowerShell e usa il percorso `bin\bash.exe` da quella directory.

594 616 

617**Se il percorso è corretto e il file esiste** ma Claude Code continua a segnalarlo come non trovato, il software di sicurezza degli endpoint come AppLocker, i criteri di restrizione software di Criteri di gruppo, o gli agenti EDR potrebbero interferire. Nelle versioni precedenti a v2.1.116, Claude Code generava un processo figlio (`cmd.exe`) per verificare il percorso, che questi criteri possono bloccare — un segnale comune è che `cmd.exe /c dir "C:\Program Files\Git\bin\bash.exe"` funziona quando lo esegui direttamente in PowerShell ma fallisce silenziosamente quando lanciato da `claude.exe`.

618 

619Claude Code v2.1.116 e versioni successive controllano il filesystem direttamente, quindi aggiorna prima. Se l'errore persiste su una versione attuale, chiedi al tuo team IT di aggiungere alla whitelist `claude.exe` e i processi che genera, inclusi `cmd.exe` e `bash.exe`, nella tua politica di protezione degli endpoint.

620 

595<h3 id="claude-code-does-not-support-32-bit-windows">621<h3 id="claude-code-does-not-support-32-bit-windows">

596 Claude Code non supporta Windows a 32 bit622 Claude Code non supporta Windows a 32 bit

597</h3>623</h3>

Details

14| Loop di accesso, errori OAuth, `403 Forbidden`, "organization disabled", credenziali Bedrock/Vertex/Foundry | [Troubleshoot installation and login](/it/troubleshoot-install#login-and-authentication) |14| Loop di accesso, errori OAuth, `403 Forbidden`, "organization disabled", credenziali Bedrock/Vertex/Foundry | [Troubleshoot installation and login](/it/troubleshoot-install#login-and-authentication) |

15| Le impostazioni non si applicano, gli hooks non si attivano, i server MCP non si caricano | [Debug your configuration](/it/debug-your-config) |15| Le impostazioni non si applicano, gli hooks non si attivano, i server MCP non si caricano | [Debug your configuration](/it/debug-your-config) |

16| `API Error: 5xx`, `529 Overloaded`, `429`, errori di convalida delle richieste | [Error reference](/it/errors) |16| `API Error: 5xx`, `529 Overloaded`, `429`, errori di convalida delle richieste | [Error reference](/it/errors) |

17| `model not found` o `you may not have access to it` | [Error reference](/it/errors#theres-an-issue-with-the-selected-model) |17| `model not found` o `you may not have access to it` | [Error reference](/it/errors#there%E2%80%99s-an-issue-with-the-selected-model) |

18| L'estensione VS Code non si connette o non rileva Claude | [VS Code integration](/it/vs-code#fix-common-issues) |18| L'estensione VS Code non si connette o non rileva Claude | [VS Code integration](/it/vs-code#fix-common-issues) |

19| Il plugin JetBrains o l'IDE non viene rilevato | [JetBrains integration](/it/jetbrains#troubleshooting) |19| Il plugin JetBrains o l'IDE non viene rilevato | [JetBrains integration](/it/jetbrains#troubleshooting) |

20| Utilizzo elevato di CPU o memoria, risposte lente, blocchi, la ricerca non trova file | [Performance and stability](#performance-and-stability) di seguito |20| Utilizzo elevato di CPU o memoria, risposte lente, blocchi, la ricerca non trova file | [Performance and stability](#performance-and-stability) di seguito |


361. Usa `/compact` regolarmente per ridurre la dimensione del contesto361. Usa `/compact` regolarmente per ridurre la dimensione del contesto

372. Chiudi e riavvia Claude Code tra i compiti principali372. Chiudi e riavvia Claude Code tra i compiti principali

383. Considera di aggiungere grandi directory di build al tuo file `.gitignore`383. Considera di aggiungere grandi directory di build al tuo file `.gitignore`

394. Riavvia con [`claude --safe-mode`](/it/cli-reference#cli-flags) per verificare se un plugin, un server MCP o un hook è la fonte. Disabilita tutte le personalizzazioni per la sessione; se l'utilizzo diminuisce, vedi [Debug your configuration](/it/debug-your-config#test-against-a-clean-configuration) per trovare quale sia

39 40 

40Se l'utilizzo della memoria rimane elevato dopo questi passaggi, esegui `/heapdump` per scrivere uno snapshot dell'heap JavaScript e una suddivisione della memoria su `~/Desktop`. Su Linux senza una cartella Desktop, i file vengono scritti nella tua directory home.41Se l'utilizzo della memoria rimane elevato dopo questi passaggi, esegui `/heapdump` per scrivere uno snapshot dell'heap JavaScript e una suddivisione della memoria su `~/Desktop`. Su Linux senza una cartella Desktop, i file vengono scritti nella tua directory home.

41 42 


65 66 

66Il riavvio non perde la tua conversazione. Esegui `claude --resume` nella stessa directory per riprendere la sessione.67Il riavvio non perde la tua conversazione. Esegui `claude --resume` nella stessa directory per riprendere la sessione.

67 68 

68<h3 id="garbled-or-corrupted-text-in-an-editor-s-integrated-terminal">69<h3 id="garbled-or-corrupted-text-in-an-editors-integrated-terminal">

69 Garbled or corrupted text in an editor's integrated terminal70 Garbled or corrupted text in an editor's integrated terminal

70</h3>71</h3>

71 72 

vs-code.md +34 −8

Details

19Prima di installare, assicurati di avere:19Prima di installare, assicurati di avere:

20 20 

21* VS Code 1.98.0 o superiore21* VS Code 1.98.0 o superiore

22* Un account Anthropic (accederai quando aprirai l'estensione per la prima volta). Se stai utilizzando un provider di terze parti come Amazon Bedrock o Google Vertex AI, consulta invece [Usa provider di terze parti](#use-third-party-providers).22* Un account Anthropic: qualsiasi abbonamento Claude a pagamento (Pro, Max, Team o Enterprise) o un account Claude Console funziona, e non è richiesta alcuna chiave API. Accederai [con questo account](/it/authentication#log-in-to-claude-code) quando aprirai l'estensione per la prima volta. Se accedi a Claude tramite un provider di terze parti come Amazon Bedrock o Google Vertex AI, consulta [Usa provider di terze parti](#use-third-party-providers) per le istruzioni di configurazione.

23 23 

24<Tip>24<Tip>

25 L'estensione include la CLI (interfaccia della riga di comando), a cui puoi accedere dal terminale integrato di VS Code per funzioni avanzate. Consulta [Estensione VS Code vs. Claude Code CLI](#vs-code-extension-vs-claude-code-cli) per i dettagli.25 L'estensione include la propria copia della CLI (interfaccia della riga di comando) per il pannello di chat. Per eseguire `claude` nel terminale integrato di VS Code, hai anche bisogno dell'[installazione CLI standalone](/it/setup). Consulta [Estensione VS Code vs. Claude Code CLI](#vs-code-extension-vs-claude-code-cli) per i dettagli.

26</Tip>26</Tip>

27 27 

28<h2 id="install-the-extension">28<h2 id="install-the-extension">


36 36 

37Oppure in VS Code, premi `Cmd+Shift+X` (Mac) o `Ctrl+Shift+X` (Windows/Linux) per aprire la visualizzazione Estensioni, cerca "Claude Code" e fai clic su **Installa**.37Oppure in VS Code, premi `Cmd+Shift+X` (Mac) o `Ctrl+Shift+X` (Windows/Linux) per aprire la visualizzazione Estensioni, cerca "Claude Code" e fai clic su **Installa**.

38 38 

39L'estensione si installa anche in altri fork di VS Code come Devin Desktop o Kiro. Cerca "Claude Code" nella visualizzazione Estensioni dell'editor, oppure installa dal [registro Open VSX](https://open-vsx.org/extension/Anthropic/claude-code). Se il tuo editor non riesce a installare l'estensione, esegui `claude` nel suo terminale integrato. La [CLI](/it/quickstart) funziona in qualsiasi terminale.39L'estensione si installa anche in altri fork di VS Code come Devin Desktop o Kiro. Cerca "Claude Code" nella visualizzazione Estensioni dell'editor, oppure installa dal [registro Open VSX](https://open-vsx.org/extension/Anthropic/claude-code). Se il tuo editor non riesce a installare l'estensione, [installa la CLI](/it/quickstart) ed esegui `claude` nel suo terminale integrato. La CLI funziona in qualsiasi terminale.

40 40 

41<Note>Se l'estensione non appare dopo l'installazione, riavvia VS Code o esegui "Developer: Reload Window" dalla Tavolozza dei comandi.</Note>41<Note>Se l'estensione non appare dopo l'installazione, riavvia VS Code o esegui "Developer: Reload Window" dalla Tavolozza dei comandi.</Note>

42 42 


131 131 

132Fai clic sul pulsante **Cronologia sessioni** in cima al pannello Claude Code per accedere alla cronologia delle conversazioni. Puoi cercare per parola chiave o sfogliare per tempo (Oggi, Ieri, Ultimi 7 giorni, ecc.). Fai clic su qualsiasi conversazione per riprenderla con la cronologia completa dei messaggi. Le nuove sessioni ricevono titoli generati dall'IA in base al tuo primo messaggio. Passa il mouse su una sessione per rivelare le azioni di rinomina e rimozione: rinomina per darle un titolo descrittivo, o rimuovi per eliminarla dall'elenco. Per ulteriori informazioni sulla ripresa delle sessioni, consulta [Gestisci sessioni](/it/sessions).132Fai clic sul pulsante **Cronologia sessioni** in cima al pannello Claude Code per accedere alla cronologia delle conversazioni. Puoi cercare per parola chiave o sfogliare per tempo (Oggi, Ieri, Ultimi 7 giorni, ecc.). Fai clic su qualsiasi conversazione per riprenderla con la cronologia completa dei messaggi. Le nuove sessioni ricevono titoli generati dall'IA in base al tuo primo messaggio. Passa il mouse su una sessione per rivelare le azioni di rinomina e rimozione: rinomina per darle un titolo descrittivo, o rimuovi per eliminarla dall'elenco. Per ulteriori informazioni sulla ripresa delle sessioni, consulta [Gestisci sessioni](/it/sessions).

133 133 

134<h3 id="resume-remote-sessions-from-claude-ai">134<h3 id="resume-cloud-sessions-from-claude-ai">

135 Riprendi sessioni remote da Claude.ai135 Riprendi sessioni remote da Claude.ai

136</h3>136</h3>

137 137 


155 Solo le sessioni web avviate con un repository GitHub appaiono nella scheda Remote. La ripresa carica la cronologia della conversazione localmente; le modifiche non vengono sincronizzate di nuovo a claude.ai.155 Solo le sessioni web avviate con un repository GitHub appaiono nella scheda Remote. La ripresa carica la cronologia della conversazione localmente; le modifiche non vengono sincronizzate di nuovo a claude.ai.

156</Note>156</Note>

157 157 

158<h3 id="check-account-and-usage">

159 Controlla account e utilizzo

160</h3>

161 

162Esegui `/usage` dal menu dei comandi per aprire la finestra di dialogo Account e utilizzo. Mostra il tuo account con accesso effettuato, il piano e le barre di utilizzo per la sessione corrente e la settimana con quanto tempo rimane prima che ogni limite si ripristini.

163 

164La finestra di dialogo suddivide anche ciò che contribuisce ai tuoi limiti di piano. Evidenzia i comportamenti che rappresentano il 10% o più dell'utilizzo recente, come i mancati accessi alla cache, il contesto lungo e le sessioni pesanti di subagent o altamente parallele, ciascuno con un suggerimento per ridurlo. Le tabelle di attribuzione mostrano quanto utilizzo è provenuto da ogni skill, subagent, plugin e server MCP. Richiede Claude Code v2.1.174 o successivo.

165 

166Utilizza l'interruttore Day e Week per passare tra le ultime 24 ore e gli ultimi 7 giorni. Le cifre sono approssimative e calcolate dalle sessioni locali su questa macchina, quindi l'utilizzo da altri dispositivi o da claude.ai non è incluso. Per ulteriori informazioni sul tracciamento e la riduzione dell'utilizzo, consulta [Traccia i tuoi costi](/it/costs#track-your-costs).

167 

158<h2 id="customize-your-workflow">168<h2 id="customize-your-workflow">

159 Personalizza il tuo flusso di lavoro169 Personalizza il tuo flusso di lavoro

160</h2>170</h2>


366 Estensione VS Code vs. Claude Code CLI376 Estensione VS Code vs. Claude Code CLI

367</h2>377</h2>

368 378 

369Claude Code è disponibile sia come estensione VS Code (pannello grafico) che come CLI (interfaccia della riga di comando nel terminale). Alcune funzioni sono disponibili solo nella CLI. Se hai bisogno di una funzione solo CLI, esegui `claude` nel terminale integrato di VS Code.379Claude Code è disponibile sia come estensione VS Code (pannello grafico) che come CLI (interfaccia della riga di comando nel terminale). Alcune funzioni sono disponibili solo nella CLI. Se hai bisogno di una funzione solo CLI, esegui `claude` nel terminale integrato di VS Code. Questo richiede l'[installazione CLI standalone](/it/setup): l'estensione non aggiunge `claude` al tuo PATH. Vedi [Esegui CLI in VS Code](#run-cli-in-vs-code).

370 380 

371| Funzione | CLI | Estensione VS Code |381| Funzione | CLI | Estensione VS Code |

372| ----------------------------- | --------------------- | --------------------------------------------------------------------------------------------------- |382| ----------------------------- | --------------------- | --------------------------------------------------------------------------------------------------- |


394 404 

395Per utilizzare la CLI mentre rimani in VS Code, apri il terminale integrato (`` Ctrl+` `` su Windows/Linux o `` Cmd+` `` su Mac) ed esegui `claude`. La CLI si integra automaticamente con il tuo IDE per funzioni come la visualizzazione dei diff e la condivisione dei diagnostici.405Per utilizzare la CLI mentre rimani in VS Code, apri il terminale integrato (`` Ctrl+` `` su Windows/Linux o `` Cmd+` `` su Mac) ed esegui `claude`. La CLI si integra automaticamente con il tuo IDE per funzioni come la visualizzazione dei diff e la condivisione dei diagnostici.

396 406 

407L'installazione dell'estensione non mette `claude` sul tuo PATH della shell. L'estensione raggruppa una copia privata della CLI per il suo pannello di chat, ma digitare `claude` in un terminale richiede l'[installazione CLI standalone](/it/setup). Esegui l'installazione una volta e i comandi su questa pagina, inclusi `claude mcp add` e `claude --resume`, funzionano in qualsiasi terminale. Se `claude` non viene ancora trovato dopo l'installazione, [verifica il tuo PATH](/it/troubleshoot-install#verify-your-path).

408 

397Se utilizzi un terminale esterno, esegui `/ide` all'interno di Claude Code per collegarlo a VS Code.409Se utilizzi un terminale esterno, esegui `/ide` all'interno di Claude Code per collegarlo a VS Code.

398 410 

399<h3 id="switch-between-extension-and-cli">411<h3 id="switch-between-extension-and-cli">


530 Risolvi i problemi comuni542 Risolvi i problemi comuni

531</h2>543</h2>

532 544 

533<h3 id="extension-won-t-install">545<h3 id="extension-wont-install">

534 L'estensione non si installa546 L'estensione non si installa

535</h3>547</h3>

536 548 


5862. Cerca "Claude Code"5982. Cerca "Claude Code"

5873. Fai clic su **Disinstalla**5993. Fai clic su **Disinstalla**

588 600 

589Per rimuovere anche i dati dell'estensione e ripristinare tutte le impostazioni:601Per rimuovere anche i dati dell'estensione e ripristinare tutte le impostazioni, elimina la directory di archiviazione dell'estensione per la tua piattaforma.

602 

603Su macOS:

590 604 

591```bash theme={null}605```bash theme={null}

592rm -rf ~/.vscode/globalStorage/anthropic.claude-code606rm -rf ~/Library/"Application Support"/Code/User/globalStorage/anthropic.claude-code

607```

608 

609Su Linux:

610 

611```bash theme={null}

612rm -rf ~/.config/Code/User/globalStorage/anthropic.claude-code

613```

614 

615Su Windows, in PowerShell:

616 

617```powershell theme={null}

618Remove-Item -Recurse -Force "$env:APPDATA\Code\User\globalStorage\anthropic.claude-code"

593```619```

594 620 

595Per ulteriore aiuto, consulta la [guida alla risoluzione dei problemi](/it/troubleshooting).621Per ulteriore aiuto, consulta la [guida alla risoluzione dei problemi](/it/troubleshooting).

whats-new.md +16 −0

Details

8 8 

9Il digest settimanale per sviluppatori evidenzia le funzionalità più probabili a cambiare il modo in cui lavorate. Ogni voce include codice eseguibile, una breve demo e un collegamento alla documentazione completa. Per ogni correzione di bug e miglioramento minore, consultate il [changelog](/it/changelog).9Il digest settimanale per sviluppatori evidenzia le funzionalità più probabili a cambiare il modo in cui lavorate. Ogni voce include codice eseguibile, una breve demo e un collegamento alla documentazione completa. Per ogni correzione di bug e miglioramento minore, consultate il [changelog](/it/changelog).

10 10 

11<Update label="Week 24" description="June 8–12, 2026" tags={["v2.1.166–v2.1.176"]}>

12 **`/cd`**: sposta la sessione corrente in una nuova directory di lavoro a metà conversazione senza ricostruire la cache del prompt.

13 

14 Anche questa settimana: **i sub-agent possono generare i propri sub-agent** (le catene di background sono limitate a cinque livelli di profondità); **`--safe-mode`** avvia Claude Code con tutte le personalizzazioni disabilitate per la risoluzione dei problemi; e **`fallbackModel`** configura fino a tre modelli di fallback provati in ordine.

15 

16 [Leggi il digest della Week 24 →](/it/whats-new/2026-w24)

17</Update>

18 

19<Update label="Week 23" description="June 1–5, 2026" tags={["v2.1.158–v2.1.165"]}>

20 **Auto mode su Bedrock, Vertex e Foundry**: auto mode è ora disponibile su provider di terze parti per Opus 4.7 e Opus 4.8, sostituendo i prompt di autorizzazione con controlli di sicurezza in background.

21 

22 Anche questa settimana: **modifiche automatiche più sicure** richiedono conferma prima di scrivere file che possono eseguire codice in modalità `acceptEdits`; **`/plugin list`** stampa i vostri plugin installati inline; e **requisiti di versione** consentono alle distribuzioni gestite di richiedere un intervallo di versione di Claude Code approvato.

23 

24 [Leggi il digest della Week 23 →](/it/whats-new/2026-w23)

25</Update>

26 

11<Update label="Week 22" description="May 25–29, 2026" tags={["v2.1.150–v2.1.157"]}>27<Update label="Week 22" description="May 25–29, 2026" tags={["v2.1.150–v2.1.157"]}>

12 **Claude Opus 4.8**: il nuovo modello predefinito per Max, Team Premium, Enterprise pay-as-you-go e account Anthropic API, con sforzo elevato per impostazione predefinita e `/effort xhigh` per i compiti più difficili.28 **Claude Opus 4.8**: il nuovo modello predefinito per Max, Team Premium, Enterprise pay-as-you-go e account Anthropic API, con sforzo elevato per impostazione predefinita e `/effort xhigh` per i compiti più difficili.

13 29 

whats-new/2026-w23.md +100 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Settimana 23 · 1–5 giugno 2026

6 

7> Esegui la modalità auto su Bedrock, Vertex e Foundry, richiedi conferma prima di scrivere file che possono eseguire codice in modalità acceptEdits, elenca i plugin installati con /plugin list e richiedi un intervallo di versione approvato per le distribuzioni gestite.

8 

9<div className="digest-meta">

10 <span>Releases <a href="/docs/it/changelog#2-1-158">v2.1.158 → v2.1.165</a></span>

11 <span>4 funzionalità · 1–5 giugno</span>

12</div>

13 

14<div className="digest-feature">

15 <div className="digest-feature-header">

16 <span className="digest-feature-title">Modalità auto su Bedrock, Vertex e Foundry</span>

17 <span className="digest-feature-pill">v2.1.158</span>

18 </div>

19 

20 <p className="digest-feature-lede">La modalità auto è ora disponibile su Bedrock, Vertex e Foundry per Opus 4.7 e Opus 4.8, sostituendo i prompt di autorizzazione con controlli di sicurezza in background su provider di terze parti. Attiva la funzione impostando <code>CLAUDE\_CODE\_ENABLE\_AUTO\_MODE=1</code>.</p>

21 

22 <p className="digest-feature-try">Attiva la funzione su un provider di terze parti, quindi passa alla modalità auto con Shift+Tab:</p>

23 

24 ```bash terminal theme={null}

25 export CLAUDE_CODE_ENABLE_AUTO_MODE=1

26 ```

27 

28 <a className="digest-feature-link" href="/docs/it/permission-modes#enable-auto-mode-on-bedrock-vertex-ai-or-foundry">Abilita la modalità auto su provider di terze parti</a>

29</div>

30 

31<div className="digest-feature">

32 <div className="digest-feature-header">

33 <span className="digest-feature-title">Modifiche automatiche più sicure</span>

34 <span className="digest-feature-pill">v2.1.160</span>

35 </div>

36 

37 <p className="digest-feature-lede">Claude Code ora richiede conferma prima di scrivere file che possono eseguire codice, anche in modalità <code>acceptEdits</code>. L'insieme protetto copre i file di avvio della shell come <code>.zshenv</code> e <code>.bash\_login</code>, la configurazione git in <code>\~/.config/git/</code> e le configurazioni degli strumenti di compilazione come <code>.npmrc</code>, <code>.bazelrc</code> e <code>.pre-commit-config.yaml</code>. Queste scritture non vengono mai approvate automaticamente in nessuna modalità tranne <code>bypassPermissions</code>.</p>

38 

39 <p className="digest-feature-try">Lavora in modalità acceptEdits; Claude ora si ferma prima di scrivere questi file:</p>

40 

41 ```bash terminal theme={null}

42 claude --permission-mode acceptEdits

43 ```

44 

45 <a className="digest-feature-link" href="/docs/it/permission-modes#protected-paths">Percorsi protetti</a>

46</div>

47 

48<div className="digest-feature">

49 <div className="digest-feature-header">

50 <span className="digest-feature-title">Elenca i plugin installati con /plugin list</span>

51 <span className="digest-feature-pill">v2.1.163</span>

52 </div>

53 

54 <p className="digest-feature-lede">Il nuovo comando <code>/plugin list</code> stampa i tuoi plugin installati inline, senza aprire il menu <code>/plugin</code>, ed è disponibile anche come <code>claude plugin list</code> dalla shell. Nel modulo interattivo, aggiungi `--enabled` o `--disabled` per mostrare solo i plugin in quello stato.</p>

55 

56 <p className="digest-feature-try">Elenca i plugin che sono attualmente attivati:</p>

57 

58 ```text Claude Code theme={null}

59 > /plugin list --enabled

60 ```

61 

62 <a className="digest-feature-link" href="/docs/it/plugins-reference#plugin-list">Comandi dei plugin</a>

63</div>

64 

65<div className="digest-feature">

66 <div className="digest-feature-header">

67 <span className="digest-feature-title">Requisiti di versione per le distribuzioni gestite</span>

68 <span className="digest-feature-pill">v2.1.163</span>

69 </div>

70 

71 <p className="digest-feature-lede">Due impostazioni gestite, <code>requiredMinimumVersion</code> e <code>requiredMaximumVersion</code>, consentono alla tua organizzazione di richiedere un intervallo di versione di Claude Code approvato. Un client al di fuori dell'intervallo si chiude all'avvio e comunica all'utente di aggiornare tramite il metodo dell'organizzazione. <code>claude update</code>, <code>claude install</code> e <code>claude doctor</code> continuano a funzionare in modo che gli utenti possano ancora recuperare.</p>

72 

73 <p className="digest-feature-try">Aggiungi un limite minimo alle tue impostazioni gestite in modo che i client più vecchi rifiutino di avviarsi:</p>

74 

75 ```json managed-settings.json theme={null}

76 "requiredMinimumVersion": "2.1.163"

77 ```

78 

79 <a className="digest-feature-link" href="/docs/it/admin-setup#decide-what-to-enforce">Decidi cosa applicare</a>

80</div>

81 

82<div className="digest-wins">

83 <p className="digest-wins-title">Altri vantaggi</p>

84 

85 <div className="digest-wins-grid">

86 <div>La parola chiave di attivazione per i <a href="/docs/it/workflows">workflow dinamici</a> è cambiata da <code>workflow</code> a <code>ultracode</code>; chiedere un workflow con le tue stesse parole funziona ancora, e la parola chiave è evidenziata in viola nel prompt</div>

87 <div>Gli hook <a href="/docs/it/hooks">Stop e SubagentStop</a> possono restituire <code>hookSpecificOutput.additionalContext</code> per fornire feedback a Claude e mantenere il turno in corso invece di essere trattati come un errore</div>

88 <div><code>claude mcp</code> list, get e add non stampano più i segreti: i riferimenti alle variabili di ambiente non vengono espansi e le intestazioni delle credenziali e i segreti degli URL vengono oscurati</div>

89 <div>Un comando Bash non riuscito in un batch di strumenti paralleli non annulla più gli altri; ogni strumento restituisce il suo risultato in modo indipendente</div>

90 <div>La modifica di un file non richiede più un Read separato quando lo hai visualizzato con un singolo file <code>grep</code>, <code>egrep</code> o <code>fgrep</code></div>

91 <div>Fare clic su un comando nel menu di completamento automatico ora lo inserisce nel tuo prompt invece di eseguirlo immediatamente; premi Invio per eseguire</div>

92 <div>L'elenco di <code>Grep</code> o <code>Glob</code> in `--tools` ora fornisce gli strumenti di ricerca dedicati su build native con ricerca incorporata, invece di ignorare silenziosamente questi nomi</div>

93 <div><code>/effort</code> ora conferma quando il livello scelto persisterà come predefinito per le nuove sessioni</div>

94 <div>I valori di <code>OTEL\_RESOURCE\_ATTRIBUTES</code> sono ora allegati come etichette sui punti dati delle metriche, in modo da poter suddividere le metriche di utilizzo per dimensioni personalizzate come team o repo</div>

95 <div>Windsurf è rinominato in Devin Desktop in <code>/ide</code>, <code>/terminal-setup</code> e <code>/scroll-speed</code>, seguendo il rebranding dell'editor</div>

96 <div><code>/btw</code> guadagna una scorciatoia <code>c to copy</code> che copia la risposta markdown grezza negli appunti</div>

97 </div>

98</div>

99 

100[Changelog completo per v2.1.158–v2.1.165 →](/it/changelog#2-1-158)

whats-new/2026-w24.md +84 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Settimana 24 · 8–12 giugno 2026

6 

7> Sposta una sessione in una nuova directory con /cd, consenti ai sub-agent di generare i propri sub-agent e risolvi i problemi di una configurazione non funzionante con la modalità sicura.

8 

9<div className="digest-meta">

10 <span>Releases <a href="/docs/it/changelog#2-1-166">v2.1.166 → v2.1.176</a></span>

11 <span>3 funzionalità · 8–12 giugno</span>

12</div>

13 

14<div className="digest-feature">

15 <div className="digest-feature-header">

16 <span className="digest-feature-title">Sposta una sessione con /cd</span>

17 <span className="digest-feature-pill">v2.1.169</span>

18 </div>

19 

20 <p className="digest-feature-lede">Il nuovo comando <code>/cd</code> sposta la sessione corrente in una directory di lavoro diversa senza ricostruire la cache del prompt: il <code>CLAUDE.md</code> della nuova directory viene aggiunto come messaggio invece di sostituire il prompt di sistema. La sessione si trasferisce nell'archivio del progetto della nuova directory, quindi `--resume` e `--continue` lo trovano lì. Claude ti chiede di fidarti della directory se non hai mai lavorato in essa prima.</p>

21 

22 <p className="digest-feature-try">Sposta la sessione in un altro progetto senza riavviare:</p>

23 

24 ```text Claude Code theme={null}

25 > /cd ../other-project

26 ```

27 

28 <a className="digest-feature-link" href="/docs/it/commands#all-commands">Riferimento dei comandi</a>

29</div>

30 

31<div className="digest-feature">

32 <div className="digest-feature-header">

33 <span className="digest-feature-title">I sub-agent possono generare sub-agent</span>

34 <span className="digest-feature-pill">v2.1.172</span>

35 </div>

36 

37 <p className="digest-feature-lede">I sub-agent possono ora generare i propri sub-agent. Il pannello dei subagent sotto il prompt mostra l'albero completo: ogni riga contiene un conteggio dei suoi discendenti e un percorso di ritorno a <code>main</code>. I sub-agent in background sono limitati a cinque livelli di profondità per prevenire alberi concorrenti incontrollati; le catene in foreground possono generare a qualsiasi profondità e sono auto-limitanti.</p>

38 

39 <p className="digest-feature-try">Apri la visualizzazione degli agenti per osservare l'albero annidato mentre il lavoro si espande:</p>

40 

41 ```text Claude Code theme={null}

42 > /agents

43 ```

44 

45 <a className="digest-feature-link" href="/docs/it/sub-agents#spawn-nested-subagents">Genera sub-agent annidati</a>

46</div>

47 

48<div className="digest-feature">

49 <div className="digest-feature-header">

50 <span className="digest-feature-title">Risolvi i problemi con la modalità sicura</span>

51 <span className="digest-feature-pill">v2.1.169</span>

52 </div>

53 

54 <p className="digest-feature-lede">Avvia Claude Code con `--safe-mode`, oppure imposta <code>CLAUDE\_CODE\_SAFE\_MODE</code>, per avviare con tutte le personalizzazioni disabilitate: <code>CLAUDE.md</code>, skills, plugins, hooks, server MCP e comandi e agenti personalizzati non vengono caricati. L'autenticazione, la selezione del modello, gli strumenti integrati e le autorizzazioni continuano a funzionare. Se un problema scompare in modalità sicura, una di queste superfici è la causa.</p>

55 

56 <p className="digest-feature-try">Avvia una sessione pulita per isolare una configurazione non funzionante:</p>

57 

58 ```bash terminal theme={null}

59 claude --safe-mode

60 ```

61 

62 <a className="digest-feature-link" href="/docs/it/debug-your-config#test-against-a-clean-configuration">Testa rispetto a una configurazione pulita</a>

63</div>

64 

65<div className="digest-wins">

66 <p className="digest-wins-title">Altri successi</p>

67 

68 <div className="digest-wins-grid">

69 <div><a href="/docs/it/model-config#fallback-model-chains"><code>fallbackModel</code></a> configura fino a tre modelli di fallback provati in ordine quando il primario è sovraccarico o non disponibile, e `--fallback-model` ora si applica anche alle sessioni interattive</div>

70 <div>I titoli delle sessioni vengono ora generati nella lingua della tua conversazione; fissa uno specifico con l'impostazione <code>language</code></div>

71 <div>`claude agents --json` aggiunge `--all` per includere le sessioni completate più i nuovi campi <code>id</code> e <code>state</code>, e non omette più le sessioni bloccate o appena inviate</div>

72 <div>La navigazione dei plugin del marketplace in <code>/plugin</code> ora ha una barra di ricerca</div>

73 <div>La nuova impostazione <code>disableBundledSkills</code> e <code>CLAUDE\_CODE\_DISABLE\_BUNDLED\_SKILLS</code> nascondono le skill in bundle, i flussi di lavoro e i comandi integrati dal modello</div>

74 <div>Le regole di negazione accettano un glob nella posizione del nome dello strumento, quindi <code>"\*"</code> nega tutti gli strumenti, e i nomi di strumenti sconosciuti nelle regole di negazione ora avvertono all'avvio</div>

75 <div>La messaggistica tra sessioni è rafforzata: i messaggi inoltrati tramite <code>SendMessage</code> da altre sessioni non portano più l'autorità dell'utente, e la modalità automatica li blocca</div>

76 <div>Amazon Bedrock legge la regione AWS dai file di configurazione `~/.aws` quando <code>AWS\_REGION</code> non è impostato, e `/status` mostra da dove proviene la regione</div>

77 <div>La nuova impostazione gestita <code>enforceAvailableModels</code> rende l'elenco di autorizzazione <code>availableModels</code> anche vincolante per il modello predefinito</div>

78 <div>Claude negli strumenti del browser Chrome ora si carica in una singola chiamata in batch invece di una per strumento</div>

79 <div><code>claude update</code> annuncia la versione di destinazione prima di scaricare invece di rimanere silenzioso</div>

80 <div>La nuova impostazione <code>footerLinksRegexes</code> aggiunge badge di collegamento corrispondenti a regex alla riga del piè di pagina</div>

81 </div>

82</div>

83 

84[Changelog completo per v2.1.166–v2.1.176 →](/it/changelog#2-1-166)

workflows.md +3 −1

Details

9{/* plan-availability: feature=workflows plans=pro,max,team,enterprise providers=all */}9{/* plan-availability: feature=workflows plans=pro,max,team,enterprise providers=all */}

10 10 

11<Note>11<Note>

12 I flussi di lavoro dinamici sono in anteprima di ricerca. Richiedono Claude Code v2.1.154 o successivo e sono disponibili su tutti i piani a pagamento, con accesso all'API Anthropic, e su Amazon Bedrock, Google Cloud Vertex AI e Microsoft Foundry. Su Pro, attivali dalla riga Dynamic workflows in `/config`.12 I flussi di lavoro dinamici richiedono Claude Code v2.1.154 o successivo e sono disponibili su tutti i piani a pagamento, con accesso all'API Anthropic, e su Amazon Bedrock, Google Cloud Vertex AI e Microsoft Foundry. Su Pro, attivali dalla riga Dynamic workflows in `/config`.

13</Note>13</Note>

14 14 

15Un flusso di lavoro dinamico è uno script JavaScript che orchestra [subagenti](/it/sub-agents) su larga scala. Claude scrive lo script per il compito che descrivi, e un runtime lo esegue in background mentre la tua sessione rimane reattiva.15Un flusso di lavoro dinamico è uno script JavaScript che orchestra [subagenti](/it/sub-agents) su larga scala. Claude scrive lo script per il compito che descrivi, e un runtime lo esegue in background mentre la tua sessione rimane reattiva.


198 198 

199Premi Invio per salvare. Il flusso di lavoro viene eseguito come `/<name>` nelle future sessioni da entrambi i percorsi.199Premi Invio per salvare. Il flusso di lavoro viene eseguito come `/<name>` nelle future sessioni da entrambi i percorsi.

200 200 

201{/* min-version: 2.1.178 */}A partire dalla v2.1.178, il salvataggio nella posizione del progetto scrive nella directory `.claude/workflows/` più vicina che già esiste tra la tua directory di lavoro e la radice del repository, o nella radice del repository se non ne esiste ancora nessuna. I flussi di lavoro del progetto si caricano anche da ogni `.claude/workflows/` lungo quel percorso, e quando più di uno definisce lo stesso nome Claude Code esegue quello più vicino alla directory di lavoro.

202 

201Se un flusso di lavoro di progetto e un flusso di lavoro personale condividono un nome, viene eseguito quello di progetto.203Se un flusso di lavoro di progetto e un flusso di lavoro personale condividono un nome, viene eseguito quello di progetto.

202 204 

203<h3 id="pass-input-to-a-saved-workflow">205<h3 id="pass-input-to-a-saved-workflow">

worktrees.md +3 −1

Details

36 36 

37Potete anche chiedere a Claude di "lavorare in un worktree" durante una sessione, e creerà uno con lo strumento [`EnterWorktree`](/it/tools-reference). Una volta in un worktree, Claude può passare direttamente a un altro sotto `.claude/worktrees/` chiamando `EnterWorktree` con il percorso di destinazione. Il worktree precedente rimane su disco intatto.37Potete anche chiedere a Claude di "lavorare in un worktree" durante una sessione, e creerà uno con lo strumento [`EnterWorktree`](/it/tools-reference). Una volta in un worktree, Claude può passare direttamente a un altro sotto `.claude/worktrees/` chiamando `EnterWorktree` con il percorso di destinazione. Il worktree precedente rimane su disco intatto.

38 38 

39Prima di utilizzare `--worktree` in una directory per la prima volta, accettate la finestra di dialogo di fiducia dell'area di lavoro eseguendo `claude` una volta in quella directory. Se la fiducia non è stata ancora accettata, `--worktree` esce con un errore e vi chiede di eseguire `claude` nella directory per primo, anche quando combinato con `-p`.39Prima di utilizzare `--worktree` in modo interattivo in una directory per la prima volta, accettate la finestra di dialogo di fiducia dell'area di lavoro eseguendo `claude` una volta in quella directory. Se la fiducia non è stata ancora accettata, `--worktree` esce con un errore e vi chiede di eseguire `claude` nella directory per primo. Le esecuzioni non interattive con `-p` saltano il [controllo di fiducia](/it/security), quindi `claude -p --worktree` procede senza di esso.

40 40 

41<Tip>41<Tip>

42 Aggiungete `.claude/worktrees/` al vostro `.gitignore` in modo che i contenuti del worktree non appaiano come file non tracciati nel vostro checkout principale.42 Aggiungete `.claude/worktrees/` al vostro `.gitignore` in modo che i contenuti del worktree non appaiano come file non tracciati nel vostro checkout principale.


102 102 

103I worktree che Claude ha creato per i subagent e le [sessioni in background](/it/agent-view#how-file-edits-are-isolated) vengono rimossi automaticamente una volta che sono più vecchi della vostra impostazione [`cleanupPeriodDays`](/it/settings#available-settings), a condizione che non abbiano modifiche non committate, nessun file non tracciato e nessun commit non spinto. I worktree che create con `--worktree` non vengono mai rimossi da questa scansione.103I worktree che Claude ha creato per i subagent e le [sessioni in background](/it/agent-view#how-file-edits-are-isolated) vengono rimossi automaticamente una volta che sono più vecchi della vostra impostazione [`cleanupPeriodDays`](/it/settings#available-settings), a condizione che non abbiano modifiche non committate, nessun file non tracciato e nessun commit non spinto. I worktree che create con `--worktree` non vengono mai rimossi da questa scansione.

104 104 

105Mentre un agente è in esecuzione, Claude esegue `git worktree lock` sul suo worktree in modo che la pulizia concorrente non possa rimuoverlo. Il blocco viene rilasciato quando l'agente termina. Per pulire un worktree che la scansione mantiene, eseguite `git worktree remove`, aggiungendo `--force` se il worktree ha modifiche non committate o file non tracciati.

106 

105<h2 id="manage-worktrees-manually">107<h2 id="manage-worktrees-manually">

106 Gestire i worktrees manualmente108 Gestire i worktrees manualmente

107</h2>109</h2>

Details

4 4 

5# Zero data retention5# Zero data retention

6 6 

7> Scopri Zero Data Retention (ZDR) per Claude Code su Claude for Enterprise, inclusi ambito, funzionalità disabilitate e come richiedere l'abilitazione.7> Scopri Zero Data Retention (ZDR) per Claude Code, disponibile per account qualificati su Claude for Enterprise, inclusi ambito, funzionalità disabilitate e come richiedere l'abilitazione.

8 8 

9Zero Data Retention (ZDR) è disponibile per Claude Code quando utilizzato tramite Claude for Enterprise. Quando ZDR è abilitato, i prompt e le risposte del modello generate durante le sessioni di Claude Code vengono elaborate in tempo reale e non vengono archiviate da Anthropic dopo la restituzione della risposta, tranne dove necessario per conformarsi alla legge o combattere l'uso improprio.9Zero Data Retention (ZDR) per Claude Code è disponibile per account qualificati su Claude for Enterprise. Quando ZDR è abilitato, i prompt e le risposte del modello generate durante le sessioni di Claude Code vengono elaborate in tempo reale e non vengono archiviate da Anthropic dopo la restituzione della risposta, tranne dove necessario per conformarsi alla legge o combattere l'uso improprio.

10 

11<Note>

12 ZDR non è incluso nel piano standard Claude for Enterprise e non può essere abilitato dalle impostazioni di amministrazione. È disponibile per account qualificati e richiede un'abilitazione separata da parte di Anthropic. Se la vostra organizzazione richiede ZDR, [contattate il team di vendita](https://www.anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=zero_data_retention_request) o il vostro team di account Anthropic per confermare l'idoneità.

13</Note>

10 14 

11ZDR su Claude for Enterprise offre ai clienti enterprise la possibilità di utilizzare Claude Code con zero data retention e accedere alle funzionalità amministrative:15ZDR su Claude for Enterprise offre ai clienti enterprise la possibilità di utilizzare Claude Code con zero data retention e accedere alle funzionalità amministrative:

12 16 


31 Cosa copre ZDR35 Cosa copre ZDR

32</h3>36</h3>

33 37 

34ZDR copre le chiamate di inferenza del modello effettuate tramite Claude Code su Claude for Enterprise. Quando si utilizza Claude Code nel terminale, i prompt inviati e le risposte generate da Claude non vengono conservate da Anthropic. Questo si applica indipendentemente dal modello Claude utilizzato.38ZDR copre le chiamate di inferenza del modello effettuate tramite Claude Code su Claude for Enterprise. Quando si utilizza Claude Code nel terminale, i prompt inviati e le risposte generate da Claude non vengono conservate da Anthropic. Questo si applica a ogni modello disponibile per le organizzazioni ZDR. Alcuni modelli richiedono la conservazione dei dati e non sono disponibili in ZDR; vedere [Disponibilità dei modelli in ZDR](#model-availability-under-zdr).

35 39 

36<h3 id="what-zdr-does-not-cover">40<h3 id="what-zdr-does-not-cover">

37 Cosa non copre ZDR41 Cosa non copre ZDR


54Quando ZDR è abilitato per un'organizzazione Claude Code su Claude for Enterprise, determinate funzionalità che richiedono l'archiviazione di prompt o completamenti vengono automaticamente disabilitate a livello di backend:58Quando ZDR è abilitato per un'organizzazione Claude Code su Claude for Enterprise, determinate funzionalità che richiedono l'archiviazione di prompt o completamenti vengono automaticamente disabilitate a livello di backend:

55 59 

56| Funzionalità | Motivo |60| Funzionalità | Motivo |

57| --------------------------------------------------------------- | --------------------------------------------------------------------------- |61| ------------------------------------------------------------- | --------------------------------------------------------------------------- |

58| [Claude Code on the Web](/it/claude-code-on-the-web) | Richiede l'archiviazione lato server della cronologia delle conversazioni. |62| [Claude Code on the Web](/it/claude-code-on-the-web) | Richiede l'archiviazione lato server della cronologia delle conversazioni. |

59| [Remote sessions](/it/desktop#remote-sessions) dall'app Desktop | Richiede dati di sessione persistenti che includono prompt e completamenti. |63| [Cloud sessions](/it/desktop#cloud-sessions) dall'app Desktop | Richiede dati di sessione persistenti che includono prompt e completamenti. |

60| Invio di feedback (`/feedback`) | L'invio di feedback invia i dati della conversazione ad Anthropic. |64| Invio di feedback (`/feedback`) | L'invio di feedback invia i dati della conversazione ad Anthropic. |

61 65 

62Queste funzionalità sono bloccate nel backend indipendentemente dalla visualizzazione lato client. Se si vede una funzionalità disabilitata nel terminale Claude Code durante l'avvio, il tentativo di utilizzarla restituisce un errore che indica che le politiche dell'organizzazione non consentono tale azione.66Queste funzionalità sono bloccate nel backend indipendentemente dalla visualizzazione lato client. Se si vede una funzionalità disabilitata nel terminale Claude Code durante l'avvio, il tentativo di utilizzarla restituisce un errore che indica che le politiche dell'organizzazione non consentono tale azione.

63 67 

64Le funzionalità future potrebbero anche essere disabilitate se richiedono l'archiviazione di prompt o completamenti.68Le funzionalità future potrebbero anche essere disabilitate se richiedono l'archiviazione di prompt o completamenti.

65 69 

70<h3 id="model-availability-under-zdr">

71 Disponibilità dei modelli in ZDR

72</h3>

73 

74Claude Fable 5 non è disponibile per le organizzazioni con zero data retention abilitato. Questa classe di modello [richiede la conservazione dei dati](https://platform.claude.com/docs/en/manage-claude/api-and-data-retention#model-specific-data-retention-requirements), quindi le richieste provenienti da organizzazioni ZDR non possono essere servite da essa. Il modello è assente dal selettore `/model` per le organizzazioni ZDR oppure viene visualizzato come disabilitato con un avviso che indica che è necessario disabilitare ZDR, e il server rifiuta le richieste per esso indipendentemente dalla configurazione del client.

75 

76Gli altri modelli rimangono disponibili in ZDR. Fable 5 non è il modello predefinito, e l'alias `best`, che si risolve in Fable 5 dove è disponibile, si risolve in Opus per le organizzazioni dove non lo è, incluse le organizzazioni ZDR.

77 

66<h2 id="data-retention-for-policy-violations">78<h2 id="data-retention-for-policy-violations">

67 Data retention per violazioni delle politiche79 Data retention per violazioni delle politiche

68</h2>80</h2>