SpyBara
Go Premium

Documentation 2026-11-09 23:02 UTC to 2026-11-10 21:57 UTC

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

advisor.md +1 −1

Details

160* **Fatturazione API**: paghi le tariffe di input e output del modello advisor per i token dell'advisor160* **Fatturazione API**: paghi le tariffe di input e output del modello advisor per i token dell'advisor

161* **Piani di abbonamento**: l'utilizzo dell'advisor conta verso i limiti di utilizzo del tuo piano, ad eccezione del fatto che un advisor Fable viene fatturato ai [crediti di utilizzo](https://code.claude.com/docs/it/model-config.md#fable-and-usage-credits) sui piani in cui l'utilizzo di Fable lo fa161* **Piani di abbonamento**: l'utilizzo dell'advisor conta verso i limiti di utilizzo del tuo piano, ad eccezione del fatto che un advisor Fable viene fatturato ai [crediti di utilizzo](https://code.claude.com/docs/it/model-config.md#fable-and-usage-credits) sui piani in cui l'utilizzo di Fable lo fa

162 162 

163Se il tuo account richiede il consenso ai crediti di utilizzo, un advisor Fable non viene fatturato finché non lo dai, perché Claude Code [non applica la selezione](#fable-advisor-and-usage-credits) fino ad allora.163Per come un advisor Fable funziona con i crediti di utilizzo, vedi [Advisor Fable e crediti di utilizzo](#fable-advisor-and-usage-credits).

164 164 

165Claude 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`](https://code.claude.com/docs/it/costs#track-your-costs).165Claude 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`](https://code.claude.com/docs/it/costs#track-your-costs).

166 166 

Details

247* **Campi di livello superiore** sono accettati su ogni evento: `systemMessage` mostra un messaggio all'utente, e `continue` (`continue_` in Python) determina se l'agente continua a funzionare dopo questo hook. Alcuni eventi li scartano o li consegnano altrove. La sezione di ogni [evento](https://code.claude.com/docs/it/hooks.md#hook-events) sulla pagina degli hook dice dove finiscono.247* **Campi di livello superiore** sono accettati su ogni evento: `systemMessage` mostra un messaggio all'utente, e `continue` (`continue_` in Python) determina se l'agente continua a funzionare dopo questo hook. Alcuni eventi li scartano o li consegnano altrove. La sezione di ogni [evento](https://code.claude.com/docs/it/hooks.md#hook-events) sulla pagina degli hook dice dove finiscono.

248* **`hookSpecificOutput`** controlla l'operazione corrente. I campi che imposti all'interno dipendono dal tipo di evento hook:248* **`hookSpecificOutput`** controlla l'operazione corrente. I campi che imposti all'interno dipendono dal tipo di evento hook:

249 * Per gli hook `PreToolUse`, è qui che imposti `permissionDecision` (`"allow"`, `"deny"`, `"ask"` o `"defer"`), `permissionDecisionReason` e `updatedInput`. Se restituisci `"defer"`, il turno termina con un messaggio di risultato il cui `stop_reason` è `"tool_deferred"`, in modo da poter [riprendere la chiamata in seguito](https://code.claude.com/docs/it/hooks.md#defer-a-tool-call-for-later).249 * Per gli hook `PreToolUse`, è qui che imposti `permissionDecision` (`"allow"`, `"deny"`, `"ask"` o `"defer"`), `permissionDecisionReason` e `updatedInput`. Se restituisci `"defer"`, il turno termina con un messaggio di risultato il cui `stop_reason` è `"tool_deferred"`, in modo da poter [riprendere la chiamata in seguito](https://code.claude.com/docs/it/hooks.md#defer-a-tool-call-for-later).

250 * Per gli hook `PostToolUse`, puoi impostare `additionalContext` per aggiungere informazioni al risultato dello strumento. Per sostituire l'output dello strumento prima che Claude lo veda, imposta `updatedToolOutput`, che funziona per qualsiasi strumento in entrambi gli SDK. Il campo più vecchio `updatedMCPToolOutput` sostituisce solo l'output dello strumento MCP.250 * Per gli hook `PostToolUse`, puoi impostare `additionalContext` per aggiungere informazioni al risultato dello strumento. Per sostituire l'output dello strumento prima che Claude lo veda, imposta `updatedToolOutput`, che funziona per gli strumenti incorporati e MCP in entrambi gli SDK. Il campo più vecchio `updatedMCPToolOutput` sostituisce solo l'output dello strumento MCP.

251 * Nel TypeScript SDK, un callback `PostToolUse` può anche restituire `classifierContext`, una breve nota sul risultato della chiamata allo strumento per il classificatore dei permessi della [modalità auto](https://code.claude.com/docs/it/permission-modes.md#eliminate-prompts-with-auto-mode). Poiché il tuo callback viene eseguito nel processo della tua applicazione, il classificatore può pesare una dichiarazione dell'utente che inoltri nella nota come intenzione dell'utente. Il campo richiede TypeScript Agent SDK v0.3.236 o successivo. [Annotare un risultato per il classificatore della modalità auto](https://code.claude.com/docs/it/hooks.md#annotate-a-result-for-the-auto-mode-classifier) copre il limite di lunghezza, la regola solo sincrona e cosa non mettere nella nota.251 * Nel TypeScript SDK, un callback `PostToolUse` può anche restituire `classifierContext`, una breve nota sul risultato della chiamata allo strumento per il classificatore dei permessi della [modalità auto](https://code.claude.com/docs/it/permission-modes.md#eliminate-prompts-with-auto-mode). Poiché il tuo callback viene eseguito nel processo della tua applicazione, il classificatore può pesare una dichiarazione dell'utente che inoltri nella nota come intenzione dell'utente. Il campo richiede TypeScript Agent SDK v0.3.236 o successivo. [Annotare un risultato per il classificatore della modalità auto](https://code.claude.com/docs/it/hooks.md#annotate-a-result-for-the-auto-mode-classifier) copre il limite di lunghezza, la regola solo sincrona e cosa non mettere nella nota.

252 252 

253Restituisci `{}` per consentire l'operazione senza modifiche. Gli hook di callback SDK utilizzano lo stesso formato di output JSON degli [hook dei comandi shell di Claude Code](https://code.claude.com/docs/it/hooks.md#json-output), che documenta ogni campo e opzione specifica dell'evento. Per le definizioni di tipo SDK, consulta i riferimenti SDK [TypeScript](https://code.claude.com/docs/it/agent-sdk/typescript.md#synchookjsonoutput) e [Python](https://code.claude.com/docs/it/agent-sdk/python.md#synchookjsonoutput).253Restituisci `{}` per consentire l'operazione senza modifiche. Gli hook di callback SDK utilizzano lo stesso formato di output JSON degli [hook dei comandi shell di Claude Code](https://code.claude.com/docs/it/hooks.md#json-output), che documenta ogni campo e opzione specifica dell'evento. Per le definizioni di tipo SDK, consulta i riferimenti SDK [TypeScript](https://code.claude.com/docs/it/agent-sdk/typescript.md#synchookjsonoutput) e [Python](https://code.claude.com/docs/it/agent-sdk/python.md#synchookjsonoutput).

Details

186 ...process.env,186 ...process.env,

187 // ... exporter configuration from the Enable telemetry export example ...187 // ... exporter configuration from the Enable telemetry export example ...

188 OTEL_SERVICE_NAME: "support-triage-agent",188 OTEL_SERVICE_NAME: "support-triage-agent",

189 OTEL_RESOURCE_ATTRIBUTES":189 OTEL_RESOURCE_ATTRIBUTES:

190 "service.version=1.4.0,deployment.environment=production",190 "service.version=1.4.0,deployment.environment=production",

191 },191 },

192};192};

Details

1858 1858 

1859### `TaskStartedMessage`1859### `TaskStartedMessage`

1860 1860 

1861Emesso 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](#monitor), un subagent generato tramite lo strumento Agent, o un agente remoto. Il campo `task_type` ti dice quale. Questo nome non è correlato alla rinomina dello strumento da `Task` ad `Agent`.1861Emesso quando un'attività in background inizia. Un'attività in background è qualsiasi cosa tracciata al di fuori del turno principale, come un comando Bash in background, un watch [Monitor](#monitor), un subagent generato tramite lo strumento Agent, o un agente remoto. Questo nome non è correlato alla rinomina dello strumento da `Task` ad `Agent`.

1862 1862 

1863```python theme={null}1863```python theme={null}

1864@dataclass1864@dataclass


1878| `uuid` | `str` | Identificatore di messaggio univoco |1878| `uuid` | `str` | Identificatore di messaggio univoco |

1879| `session_id` | `str` | Identificatore di sessione |1879| `session_id` | `str` | Identificatore di sessione |

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

1881| `task_type` | `str \| None` | Quale tipo di attività in background: `"local_bash"` per Bash in background e watch Monitor, `"local_agent"`, o `"remote_agent"` |1881| `task_type` | `str \| None` | Quale tipo di attività in background, come `"local_bash"` per Bash in background e watch Monitor, `"local_agent"` per i subagent, `"mcp_task"` per le [chiamate a strumenti MCP in background](https://code.claude.com/docs/it/mcp.md#automatic-backgrounding-of-long-tool-calls), o `"remote_agent"` |

1882 1882 

1883### `TaskUsage`1883### `TaskUsage`

1884 1884 

Details

12 12 

13## Perché gli output strutturati?13## Perché gli output strutturati?

14 14 

15Gli agenti restituiscono testo libero per impostazione predefinita, il che funziona per la chat ma non quando è necessario utilizzare l'output a livello di programmazione. Gli output strutturati forniscono dati tipizzati che è possibile passare direttamente alla logica dell'applicazione, al database o ai componenti dell'interfaccia utente.15Per impostazione predefinita, gli agenti restituiscono testo in formato libero, il che funziona per la chat ma non quando devi usare l'output a livello di programmazione. Gli output strutturati ti forniscono dati tipizzati che puoi passare direttamente alla logica della tua applicazione, al database o ai componenti dell'interfaccia utente.

16 16 

17Consideriamo un'app di ricette in cui un agente cerca sul web e recupera ricette. Senza output strutturati, si ottiene testo libero che sarebbe necessario analizzare manualmente. Con output strutturati, si definisce la forma desiderata e si ottengono dati tipizzati che è possibile utilizzare direttamente nell'app.17Considera un'app di ricette in cui un agente cerca sul web e restituisce ricette. Senza output strutturati, ottieni testo in formato libero che dovresti analizzare da solo. Con gli output strutturati, definisci la forma che desideri e ottieni dati tipizzati che puoi usare direttamente nella tua app.

18 18 

19> [accordion] Senza output strutturati19> [accordion] Senza output strutturati

20>20>

21> ```text theme={null}21> ```text theme={null}

22> Ecco una ricetta classica di biscotti al cioccolato!22> Here's a classic chocolate chip cookie recipe!

23>23>

24> **Biscotti al cioccolato**24> **Chocolate Chip Cookies**

25> Tempo di preparazione: 15 minuti | Tempo di cottura: 10 minuti25> Prep time: 15 minutes | Cook time: 10 minutes

26>26>

27> Ingredienti:27> Ingredients:

28> - 2 1/4 tazze di farina per tutti gli usi28> - 2 1/4 cups all-purpose flour

29> - 1 tazza di burro, ammorbidito29> - 1 cup butter, softened

30> ...30> ...

31> ```31> ```

32>32>

33> Per utilizzare questo nell'app, sarebbe necessario analizzare il titolo, convertire "15 minuti" in un numero, separare gli ingredienti dalle istruzioni e gestire la formattazione incoerente tra le risposte.33> Per usarlo nella tua app, dovresti estrarre il titolo, convertire "15 minutes" in un numero, separare gli ingredienti dalle istruzioni e gestire la formattazione incoerente tra le risposte.

34 34 

35> [accordion] Con output strutturati35> [accordion] Con output strutturati

36>36>

37> ```jsonc theme={null}37> ```jsonc theme={null}

38> {38> {

39> "name": "Biscotti al cioccolato",39> "name": "Chocolate Chip Cookies",

40> "prep_time_minutes": 15,40> "prep_time_minutes": 15,

41> "cook_time_minutes": 10,41> "cook_time_minutes": 10,

42> "ingredients": [42> "ingredients": [

43> { "item": "farina per tutti gli usi", "amount": 2.25, "unit": "tazze" },43> { "item": "all-purpose flour", "amount": 2.25, "unit": "cups" },

44> { "item": "burro, ammorbidito", "amount": 1, "unit": "tazza" }44> { "item": "butter, softened", "amount": 1, "unit": "cup" }

45> // ...45> // ...

46> ],46> ],

47> "steps": ["Preriscaldare il forno a 375°F", "Mescolare burro e zucchero" /* ... */]47> "steps": ["Preheat oven to 375°F", "Cream butter and sugar" /* ... */]

48> }48> }

49> ```49> ```

50>50>

51> Dati tipizzati che è possibile utilizzare direttamente nell'interfaccia utente.51> Dati tipizzati che puoi usare direttamente nella tua interfaccia utente.

52 52 

53## Avvio rapido53## Guida rapida

54 54 

55Per utilizzare gli output strutturati, definire uno [JSON Schema](https://json-schema.org/understanding-json-schema/about) che descriva la forma dei dati desiderati, quindi passarlo a `query()` tramite l'opzione `outputFormat` (TypeScript) o `output_format` (Python). Quando l'agente termina, il messaggio di risultato include un campo `structured_output` con dati convalidati corrispondenti allo schema.55Per usare gli output strutturati, definisci uno [JSON Schema](https://json-schema.org/understanding-json-schema/about) che descriva la forma dei dati che desideri, quindi passalo a `query()` tramite l'opzione `outputFormat` (TypeScript) o l'opzione `output_format` (Python). Quando l'agente termina, il messaggio di risultato include un campo `structured_output` con dati validati conformi al tuo schema.

56 56 

57Prima di eseguire gli esempi in questa pagina, installa il Claude Agent SDK seguendo la [guida rapida](https://code.claude.com/docs/it/agent-sdk/quickstart.md#setup). L'esempio seguente chiede all'agente di ricercare Anthropic e restituire il nome dell'azienda, l'anno di fondazione e la sede come output strutturato.57Prima di eseguire gli esempi di questa pagina, installa il Claude Agent SDK seguendo la [guida rapida](https://code.claude.com/docs/it/agent-sdk/quickstart.md#setup). L'esempio seguente chiede all'agente di fare ricerche su Anthropic e di restituire il nome dell'azienda, l'anno di fondazione e la sede come output strutturato.

58 58 

59```typescript TypeScript theme={null}59```typescript TypeScript theme={null}

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

61 61 

62// Definire la forma dei dati desiderati62// Definisci la forma dei dati che vuoi ricevere

63const schema = {63const schema = {

64 type: "object",64 type: "object",

65 properties: {65 properties: {


72 72 

73try {73try {

74 for await (const message of query({74 for await (const message of query({

75 prompt: "Ricerca Anthropic e fornisci informazioni chiave sull'azienda",75 prompt: "Research Anthropic and provide key company information",

76 options: {76 options: {

77 outputFormat: {77 outputFormat: {

78 type: "json_schema",78 type: "json_schema",


80 }80 }

81 }81 }

82 })) {82 })) {

83 // Il messaggio di risultato contiene structured_output con dati convalidati83 // Il messaggio di risultato contiene structured_output con dati validati

84 if (message.type === "result" && message.subtype === "success" && message.structured_output) {84 if (message.type === "result" && message.subtype === "success" && !message.is_error && message.structured_output) {

85 console.log(message.structured_output);85 console.log(message.structured_output);

86 // { company_name: "Anthropic", founded_year: 2021, headquarters: "San Francisco, CA" }86 // { company_name: "Anthropic", founded_year: 2021, headquarters: "San Francisco, CA" }

87 }87 }

88 }88 }

89} catch (error) {89} catch (error) {

90 // Una singola query() genera un errore dopo aver restituito un risultato di errore, come90 // Una query() a singolo colpo genera un'eccezione dopo aver prodotto un risultato di errore, come

91 // error_max_structured_output_retries; vedere la sezione Gestione degli errori.91 // error_max_structured_output_retries; consulta la sezione Gestione degli errori.

92 console.error(`La sessione è terminata con un errore: ${error}`);92 console.error(`Session ended with an error: ${error}`);

93}93}

94```94```

95 95 


97import asyncio97import asyncio

98from claude_agent_sdk import query, ClaudeAgentOptions, ResultMessage98from claude_agent_sdk import query, ClaudeAgentOptions, ResultMessage

99 99 

100# Definire la forma dei dati desiderati100# Definisci la forma dei dati che vuoi ricevere

101schema = {101schema = {

102 "type": "object",102 "type": "object",

103 "properties": {103 "properties": {


112async def main():112async def main():

113 try:113 try:

114 async for message in query(114 async for message in query(

115 prompt="Ricerca Anthropic e fornisci informazioni chiave sull'azienda",115 prompt="Research Anthropic and provide key company information",

116 options=ClaudeAgentOptions(116 options=ClaudeAgentOptions(

117 output_format={"type": "json_schema", "schema": schema}117 output_format={"type": "json_schema", "schema": schema}

118 ),118 ),

119 ):119 ):

120 # Il messaggio di risultato contiene structured_output con dati convalidati120 # Il messaggio di risultato contiene structured_output con dati validati

121 if isinstance(message, ResultMessage) and message.structured_output:121 if (

122 isinstance(message, ResultMessage)

123 and not message.is_error

124 and message.structured_output

125 ):

122 print(message.structured_output)126 print(message.structured_output)

123 # {'company_name': 'Anthropic', 'founded_year': 2021, 'headquarters': 'San Francisco, CA'}127 # {'company_name': 'Anthropic', 'founded_year': 2021, 'headquarters': 'San Francisco, CA'}

124 except Exception as error:128 except Exception as error:

125 # Una singola query() genera un errore dopo aver restituito un risultato di errore, come129 # Una query() a singolo colpo solleva un'eccezione dopo aver prodotto un risultato di errore, come

126 # error_max_structured_output_retries; vedere la sezione Gestione degli errori.130 # error_max_structured_output_retries; consulta la sezione Gestione degli errori.

127 print(f"La sessione è terminata con un errore: {error}")131 print(f"Session ended with an error: {error}")

128 132 

129 133 

130asyncio.run(main())134asyncio.run(main())

131```135```

132 136 

133## Schema type-safe con Zod e Pydantic137## Schemi type-safe con Zod e Pydantic

134 138 

135Invece di scrivere JSON Schema manualmente, è possibile utilizzare [Zod](https://zod.dev/) (TypeScript) o [Pydantic](https://docs.pydantic.dev/latest/) (Python) per definire lo schema. Queste librerie generano JSON Schema per voi e consentono di analizzare la risposta in un oggetto completamente tipizzato che è possibile utilizzare in tutto il codebase con autocomplete e type checking.139Invece di scrivere JSON Schema a mano, puoi usare [Zod](https://zod.dev/) (TypeScript) o [Pydantic](https://docs.pydantic.dev/latest/) (Python) per definire il tuo schema. Queste librerie generano il JSON Schema per te e ti permettono di analizzare la risposta in un oggetto completamente tipizzato che puoi usare in tutto il tuo codebase con autocompletamento e controllo dei tipi.

136 140 

137L'esempio seguente definisce uno schema per un piano di implementazione delle funzionalità con un riepilogo, un elenco di passaggi (ciascuno con livello di complessità) e rischi potenziali. L'agente pianifica la funzionalità e restituisce un oggetto `FeaturePlan` tipizzato. È quindi possibile accedere a proprietà come `plan.summary` e iterare su `plan.steps` con sicurezza dei tipi completa.141L'esempio seguente definisce uno schema per un piano di implementazione di una funzionalità con un riepilogo, un elenco di passaggi (ciascuno con un livello di complessità) e i potenziali rischi. L'agente pianifica la funzionalità e restituisce un oggetto `FeaturePlan` tipizzato. Puoi quindi accedere a proprietà come `plan.summary` e iterare su `plan.steps` con piena sicurezza dei tipi.

138 142 

139L'SDK convalida gli schemi con JSON Schema draft-07, quindi gli schemi che dichiarano una versione più recente vengono rifiutati. Zod ha come target draft 2020-12 per impostazione predefinita, quindi passare `target: "draft-7"` quando si converte lo schema.143L'SDK convalida gli schemi con JSON Schema draft-07, quindi gli schemi che dichiarano una versione più recente vengono rifiutati. Zod usa come target predefinito la draft 2020-12, quindi passa `target: "draft-7"` quando converti il tuo schema.

140 144 

141```typescript TypeScript theme={null}145```typescript TypeScript theme={null}

142import { z } from "zod";146import { z } from "zod";

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

144 148 

145// Definire lo schema con Zod149// Definisci lo schema con Zod

146const FeaturePlan = z.object({150const FeaturePlan = z.object({

147 feature_name: z.string(),151 feature_name: z.string(),

148 summary: z.string(),152 summary: z.string(),


158 162 

159type FeaturePlan = z.infer<typeof FeaturePlan>;163type FeaturePlan = z.infer<typeof FeaturePlan>;

160 164 

161// Convertire in JSON Schema utilizzando il target draft-07 che l'SDK prevede165// Converti in JSON Schema usando il target draft-07 previsto dall'SDK

162const schema = z.toJSONSchema(FeaturePlan, { target: "draft-7" });166const schema = z.toJSONSchema(FeaturePlan, { target: "draft-7" });

163 167 

164// Utilizzare nella query168// Usa in query

165try {169try {

166 for await (const message of query({170 for await (const message of query({

167 prompt:171 prompt:

168 "Pianifica come aggiungere il supporto della modalità scura a un'app React. Suddividilo in passaggi di implementazione.",172 "Plan how to add dark mode support to a React app. Break it into implementation steps.",

169 options: {173 options: {

170 outputFormat: {174 outputFormat: {

171 type: "json_schema",175 type: "json_schema",


173 }177 }

174 }178 }

175 })) {179 })) {

176 if (message.type === "result" && message.subtype === "success" && message.structured_output) {180 if (message.type === "result" && message.subtype === "success" && !message.is_error && message.structured_output) {

177 // Convalidare e ottenere il risultato completamente tipizzato181 // Valida e ottieni il risultato completamente tipizzato

178 const parsed = FeaturePlan.safeParse(message.structured_output);182 const parsed = FeaturePlan.safeParse(message.structured_output);

179 if (parsed.success) {183 if (parsed.success) {

180 const plan: FeaturePlan = parsed.data;184 const plan: FeaturePlan = parsed.data;

181 console.log(`Funzionalità: ${plan.feature_name}`);185 console.log(`Feature: ${plan.feature_name}`);

182 console.log(`Riepilogo: ${plan.summary}`);186 console.log(`Summary: ${plan.summary}`);

183 plan.steps.forEach((step) => {187 plan.steps.forEach((step) => {

184 console.log(`${step.step_number}. [${step.estimated_complexity}] ${step.description}`);188 console.log(`${step.step_number}. [${step.estimated_complexity}] ${step.description}`);

185 });189 });


187 }191 }

188 }192 }

189} catch (error) {193} catch (error) {

190 // Una query() a singolo scatto genera un'eccezione dopo aver restituito un risultato di errore, come194 // Una query() single-shot genera un'eccezione dopo aver restituito un risultato di errore, come

191 // error_max_structured_output_retries; vedere la sezione Gestione degli errori.195 // error_max_structured_output_retries; consulta la sezione Gestione degli errori.

192 console.error(`Session ended with an error: ${error}`);196 console.error(`Session ended with an error: ${error}`);

193}197}

194```198```


215async def main():219async def main():

216 try:220 try:

217 async for message in query(221 async for message in query(

218 prompt="Pianifica come aggiungere il supporto della modalità scura a un'app React. Suddividilo in passaggi di implementazione.",222 prompt="Plan how to add dark mode support to a React app. Break it into implementation steps.",

219 options=ClaudeAgentOptions(223 options=ClaudeAgentOptions(

220 output_format={224 output_format={

221 "type": "json_schema",225 "type": "json_schema",


223 }227 }

224 ),228 ),

225 ):229 ):

226 if isinstance(message, ResultMessage) and message.structured_output:230 if (

227 # Convalidare e ottenere il risultato completamente tipizzato231 isinstance(message, ResultMessage)

232 and not message.is_error

233 and message.structured_output

234 ):

235 # Valida e ottieni il risultato completamente tipizzato

228 plan = FeaturePlan.model_validate(message.structured_output)236 plan = FeaturePlan.model_validate(message.structured_output)

229 print(f"Funzionalità: {plan.feature_name}")237 print(f"Feature: {plan.feature_name}")

230 print(f"Riepilogo: {plan.summary}")238 print(f"Summary: {plan.summary}")

231 for step in plan.steps:239 for step in plan.steps:

232 print(240 print(

233 f"{step.step_number}. [{step.estimated_complexity}] {step.description}"241 f"{step.step_number}. [{step.estimated_complexity}] {step.description}"

234 )242 )

235 except Exception as error:243 except Exception as error:

236 # Una query() a singolo scatto genera un'eccezione dopo aver restituito un risultato di errore, come244 # Una query() single-shot solleva un'eccezione dopo aver restituito un risultato di errore, come

237 # error_max_structured_output_retries; vedere la sezione Gestione degli errori.245 # error_max_structured_output_retries; consulta la sezione Gestione degli errori.

238 print(f"Session ended with an error: {error}")246 print(f"Session ended with an error: {error}")

239 247 

240 248 


254 262 

255La parola chiave `format`, come `"format": "email"`, viene accettata come annotazione e non viene applicata dal validatore dell'SDK. Prima della v2.1.205, qualsiasi schema contenente `format` veniva trattato come non valido.263La parola chiave `format`, come `"format": "email"`, viene accettata come annotazione e non viene applicata dal validatore dell'SDK. Prima della v2.1.205, qualsiasi schema contenente `format` veniva trattato come non valido.

256 264 

257## Esempio: agente di tracciamento TODO265## Esempio: agente per il tracciamento dei TODO

258 266 

259Questo esempio dimostra come funzionano gli output strutturati con l'uso di strumenti multi-step. L'agente deve trovare commenti TODO nel codebase, quindi cercare le informazioni di git blame per ciascuno. Decide autonomamente quali strumenti utilizzare (Grep per la ricerca, Bash per eseguire comandi git) e combina i risultati in una singola risposta strutturata.267Questo esempio mostra come funzionano gli output strutturati con l'uso di strumenti in più passaggi. L'agente deve trovare i commenti TODO nel codebase, quindi cercare le informazioni di git blame per ciascuno di essi. Decide autonomamente quali strumenti usare (Grep per cercare, Bash per eseguire i comandi git) e combina i risultati in un'unica risposta strutturata.

260 268 

261Lo schema include campi facoltativi (`author` e `date`) poiché le informazioni di git blame potrebbero non essere disponibili per tutti i file. L'agente compila ciò che riesce a trovare e omette il resto.269Lo schema include campi opzionali (`author` e `date`) perché le informazioni di git blame potrebbero non essere disponibili per tutti i file. L'agente compila ciò che riesce a trovare e omette il resto.

262 270 

263```typescript TypeScript theme={null}271```typescript TypeScript theme={null}

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

265 273 

266// Definire la struttura per l'estrazione TODO274// Definisci la struttura per l'estrazione dei TODO

267const todoSchema = {275const todoSchema = {

268 type: "object",276 type: "object",

269 properties: {277 properties: {


286 required: ["todos", "total_count"]294 required: ["todos", "total_count"]

287};295};

288 296 

289// L'agente utilizza Grep per trovare TODO, Bash per ottenere informazioni di git blame297// L'agente usa Grep per trovare i TODO e Bash per ottenere le informazioni di git blame

290try {298try {

291 for await (const message of query({299 for await (const message of query({

292 prompt: "Trova tutti i commenti TODO in questo codebase e identifica chi li ha aggiunti",300 prompt: "Find all TODO comments in this codebase and identify who added them",

293 options: {301 options: {

294 outputFormat: {302 outputFormat: {

295 type: "json_schema",303 type: "json_schema",


297 }305 }

298 }306 }

299 })) {307 })) {

300 if (message.type === "result" && message.subtype === "success" && message.structured_output) {308 if (message.type === "result" && message.subtype === "success" && !message.is_error && message.structured_output) {

301 const data = message.structured_output as { total_count: number; todos: Array<{ file: string; line: number; text: string; author?: string; date?: string }> };309 const data = message.structured_output as { total_count: number; todos: Array<{ file: string; line: number; text: string; author?: string; date?: string }> };

302 console.log(`Trovati ${data.total_count} TODO`);310 console.log(`Found ${data.total_count} TODOs`);

303 data.todos.forEach((todo) => {311 data.todos.forEach((todo) => {

304 console.log(`${todo.file}:${todo.line} - ${todo.text}`);312 console.log(`${todo.file}:${todo.line} - ${todo.text}`);

305 if (todo.author) {313 if (todo.author) {

306 console.log(` Aggiunto da ${todo.author} il ${todo.date}`);314 console.log(` Added by ${todo.author} on ${todo.date}`);

307 }315 }

308 });316 });

309 }317 }

310 }318 }

311} catch (error) {319} catch (error) {

312 // Una singola query() genera un errore dopo aver restituito un risultato di errore, come320 // Una query() a singola esecuzione genera un'eccezione dopo aver prodotto un risultato di errore, come

313 // error_max_structured_output_retries; vedere la sezione Gestione degli errori.321 // error_max_structured_output_retries; consulta la sezione sulla gestione degli errori.

314 console.error(`Sessione terminata con un errore: ${error}`);322 console.error(`Session ended with an error: ${error}`);

315}323}

316```324```

317 325 


319import asyncio327import asyncio

320from claude_agent_sdk import query, ClaudeAgentOptions, ResultMessage328from claude_agent_sdk import query, ClaudeAgentOptions, ResultMessage

321 329 

322# Definire la struttura per l'estrazione TODO330# Definisci la struttura per l'estrazione dei TODO

323todo_schema = {331todo_schema = {

324 "type": "object",332 "type": "object",

325 "properties": {333 "properties": {


344 352 

345 353 

346async def main():354async def main():

347 # L'agente utilizza Grep per trovare TODO, Bash per ottenere informazioni di git blame355 # L'agente usa Grep per trovare i TODO e Bash per ottenere le informazioni di git blame

348 try:356 try:

349 async for message in query(357 async for message in query(

350 prompt="Trova tutti i commenti TODO in questo codebase e identifica chi li ha aggiunti",358 prompt="Find all TODO comments in this codebase and identify who added them",

351 options=ClaudeAgentOptions(359 options=ClaudeAgentOptions(

352 output_format={"type": "json_schema", "schema": todo_schema}360 output_format={"type": "json_schema", "schema": todo_schema}

353 ),361 ),

354 ):362 ):

355 if isinstance(message, ResultMessage) and message.structured_output:363 if (

364 isinstance(message, ResultMessage)

365 and not message.is_error

366 and message.structured_output

367 ):

356 data = message.structured_output368 data = message.structured_output

357 print(f"Trovati {data['total_count']} TODO")369 print(f"Found {data['total_count']} TODOs")

358 for todo in data["todos"]:370 for todo in data["todos"]:

359 print(f"{todo['file']}:{todo['line']} - {todo['text']}")371 print(f"{todo['file']}:{todo['line']} - {todo['text']}")

360 if "author" in todo:372 if "author" in todo:

361 print(f" Aggiunto da {todo['author']} il {todo['date']}")373 print(f" Added by {todo['author']} on {todo['date']}")

362 except Exception as error:374 except Exception as error:

363 # Una singola query() genera un errore dopo aver restituito un risultato di errore, come375 # Una query() a singola esecuzione solleva un'eccezione dopo aver prodotto un risultato di errore, come

364 # error_max_structured_output_retries; vedere la sezione Gestione degli errori.376 # error_max_structured_output_retries; consulta la sezione sulla gestione degli errori.

365 print(f"Sessione terminata con un errore: {error}")377 print(f"Session ended with an error: {error}")

366 378 

367 379 

368asyncio.run(main())380asyncio.run(main())


383 395 

384La generazione di output strutturati può non riuscire quando l'agente non può produrre JSON valido corrispondente al tuo 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](https://code.claude.com/docs/it/model-config.md#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. Controlla l'elenco `errors` sul messaggio di risultato per distinguere le due cause prima di eseguire il debug del tuo schema.396La generazione di output strutturati può non riuscire quando l'agente non può produrre JSON valido corrispondente al tuo 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](https://code.claude.com/docs/it/model-config.md#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. Controlla l'elenco `errors` sul messaggio di risultato per distinguere le due cause prima di eseguire il debug del tuo schema.

385 397 

386Quando si verifica un errore, il messaggio di risultato ha un `subtype` che indica cosa è andato storto:398Controlla il `subtype` del messaggio di risultato:

387 399 

388| Subtype | Significato |400| Subtype | Significato |

389| - | - |401| - | - |

390| `success` | L'output è stato generato e convalidato con successo |402| `success` | L'esecuzione è terminata senza un subtype di errore |

391| `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) |403| `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) |

392 404 

393Un risultato può anche terminare con subtype `success` ma senza valore `structured_output`, ad esempio quando l'esecuzione si completa senza che l'agente produca un output strutturato. Trattare anche quel caso come un errore. La voce di troubleshooting [structured\_output è None ma il risultato dice success](https://code.claude.com/docs/it/agent-sdk/troubleshooting.md#structured_output-is-none-but-the-result-says-success) copre questo caso. L'esempio seguente tratta un risultato come riuscito solo quando il `subtype` è `success` e `structured_output` è presente, e gestisce ogni altro risultato come un errore:405Un subtype `success` non significa di per sé che l'esecuzione abbia prodotto una risposta. Tratta un risultato come un errore quando `is_error` del risultato è `true` oppure `structured_output` è assente:

406 

407* **`is_error` sul risultato è `true`**: ad esempio, la richiesta finale al modello è terminata con un errore API o un rifiuto. Non usare un valore `structured_output` su un risultato di questo tipo.

408* **`structured_output` è assente**: per trovare la causa, consulta [structured\_output è None ma il risultato dice success](https://code.claude.com/docs/it/agent-sdk/troubleshooting.md#structured_output-is-none-but-the-result-says-success)

409 

410L'esempio seguente applica questi controlli:

394 411 

395```typescript TypeScript theme={null}412```typescript TypeScript theme={null}

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


415 }432 }

416 })) {433 })) {

417 if (msg.type === "result") {434 if (msg.type === "result") {

418 if (msg.subtype === "success" && msg.structured_output) {435 if (msg.subtype === "success" && !msg.is_error && msg.structured_output) {

419 // Use the validated output436 // Use the validated output

420 console.log(msg.structured_output);437 console.log(msg.structured_output);

421 } else if (msg.subtype === "error_max_structured_output_retries") {438 } else if (msg.subtype === "error_max_structured_output_retries") {

422 console.error("Could not produce valid output");439 console.error("Could not produce valid output");

423 } else {440 } else {

424 console.error("Run ended without a structured output");441 console.error("Run ended with an error or without a structured output");

425 }442 }

426 }443 }

427 }444 }


456 ),473 ),

457 ):474 ):

458 if isinstance(message, ResultMessage):475 if isinstance(message, ResultMessage):

459 if message.subtype == "success" and message.structured_output:476 if (

477 message.subtype == "success"

478 and not message.is_error

479 and message.structured_output

480 ):

460 # Use the validated output481 # Use the validated output

461 print(message.structured_output)482 print(message.structured_output)

462 elif message.subtype == "error_max_structured_output_retries":483 elif message.subtype == "error_max_structured_output_retries":

463 print("Could not produce valid output")484 print("Could not produce valid output")

464 else:485 else:

465 print("Run ended without a structured output")486 print("Run ended with an error or without a structured output")

466 except Exception as error:487 except Exception as error:

467 # A single-shot query() raises after yielding an error result. If the488 # A single-shot query() raises after yielding an error result. If the

468 # failure was an error result, the error subtype branches above have489 # failure was an error result, the error subtype branches above have

Details

142 142 

143Un messaggio di risultato può terminare con `subtype: "success"` mentre `structured_output` è `None` in Python o `undefined` in TypeScript. L'esecuzione si completa, ma non esiste un output convalidato.143Un messaggio di risultato può terminare con `subtype: "success"` mentre `structured_output` è `None` in Python o `undefined` in TypeScript. L'esecuzione si completa, ma non esiste un output convalidato.

144 144 

145Tratta questo risultato come un errore nel codice dell'applicazione. Controlla sia che `subtype` sia `success` che che `structured_output` sia presente prima di utilizzarlo. La sezione [Error handling](https://code.claude.com/docs/it/agent-sdk/structured-outputs.md#error-handling) mostra questo modello per entrambi gli SDK. Poi verifica queste cause:145Tratta questo risultato come un errore nel codice dell'applicazione. La sezione [Error handling](https://code.claude.com/docs/it/agent-sdk/structured-outputs.md#error-handling) mostra questo modello per entrambi gli SDK. Poi verifica queste cause:

146 146 

147* **Una richiesta che Claude ha rifiutato**: per rilevare questo caso nel tuo codice, controlla se lo `stop_reason` del messaggio di risultato è `"refusal"`. Per sapere cosa provare dopo, consulta [Usage Policy refusal](https://code.claude.com/docs/it/errors.md#usage-policy-refusal).147* **Una richiesta che Claude ha rifiutato**: per rilevare questo caso nel tuo codice, controlla se lo `stop_reason` del messaggio di risultato è `"refusal"`. Per sapere cosa provare dopo, consulta [Usage Policy refusal](https://code.claude.com/docs/it/errors.md#usage-policy-refusal).

148* **Uno schema che nessun output può soddisfare**: ad esempio, una stringa il cui `minLength` è maggiore del suo `maxLength`. Se `structured_output` manca ripetutamente con uno schema che ritieni corretto, cerca vincoli in contraddizione tra loro. Se non ne trovi, semplifica lo schema finché gli output non si convalidano, quindi reintroduci i vincoli uno alla volta.148* **Uno schema che nessun output può soddisfare**: ad esempio, una stringa il cui `minLength` è maggiore del suo `maxLength`. Se `structured_output` manca ripetutamente con uno schema che ritieni corretto, cerca vincoli in contraddizione tra loro. Se non ne trovi, semplifica lo schema finché gli output non si convalidano, quindi reintroduci i vincoli uno alla volta.

Details

1923| `extra_usage_disabled` | I crediti di utilizzo sono disattivati per l'account |1923| `extra_usage_disabled` | I crediti di utilizzo sono disattivati per l'account |

1924| `network_error` | Il [controllo di disponibilità](https://code.claude.com/docs/it/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) non è riuscito a raggiungere `api.anthropic.com` |1924| `network_error` | Il [controllo di disponibilità](https://code.claude.com/docs/it/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) non è riuscito a raggiungere `api.anthropic.com` |

1925| `unknown` | Claude Code non è riuscito a determinare la disponibilità |1925| `unknown` | Claude Code non è riuscito a determinare la disponibilità |

1926| `not_first_party` | La sessione usa un provider diverso dall'API Anthropic |1926| `not_first_party` | La sessione usa un provider che non offre la modalità veloce |

1927| `disabled_by_env` | [`CLAUDE_CODE_DISABLE_FAST_MODE`](https://code.claude.com/docs/it/env-vars) è impostato |1927| `disabled_by_env` | [`CLAUDE_CODE_DISABLE_FAST_MODE`](https://code.claude.com/docs/it/env-vars) è impostata, oppure la regione del modello su [Agent Platform di Google Cloud](https://code.claude.com/docs/it/fast-mode.md#use-fast-mode-on-agent-platform) non offre la modalità veloce |

1928| `model_not_allowed` | Il modello Opus della modalità veloce non è nell'allowlist [`availableModels`](https://code.claude.com/docs/it/model-config#restrict-model-selection) dell'organizzazione |1928| `model_not_allowed` | Il modello della modalità veloce non è nell'allowlist [`availableModels`](https://code.claude.com/docs/it/model-config#restrict-model-selection) dell'organizzazione, oppure il provider ha rifiutato la modalità veloce per il modello della sessione |

1929| `sdk_opt_in_required` | La sessione non ha aderito alla modalità veloce: passa `fastMode: true` nell'opzione [`settings`](#options) o tramite [`applyFlagSettings()`](#applyflagsettings) |1929| `sdk_opt_in_required` | La sessione non ha aderito alla modalità veloce: passa `fastMode: true` nell'opzione [`settings`](#options) o tramite [`applyFlagSettings()`](#applyflagsettings) |

1930| `pending` | Il controllo di disponibilità non è ancora stato completato |1930| `pending` | Il controllo di disponibilità non è ancora stato completato |

1931 1931 


2007 2007 

2008#### `startup_failure_reason`2008#### `startup_failure_reason`

2009 2009 

2010Il motivo per cui Claude Code si è rifiutato di avviarsi, in modo che la tua applicazione possa proporre la correzione invece di un nuovo tentativo. Claude Code lo imposta sul risultato `error_during_execution` che scrive prima di uscire in caso di un errore di avvio noto. Quel risultato contiene totali azzerati, e il suo array `errors` contiene lo stesso testo di stderr. Il campo è assente su ogni altro risultato. Richiede Agent SDK v0.3.274 o successivo.2010Il motivo per cui Claude Code si è rifiutato di avviarsi, così la tua applicazione può proporre la correzione invece di un nuovo tentativo. Claude Code lo imposta sul risultato `error_during_execution` che scrive prima di uscire a causa di un errore di avvio noto. Quel risultato contiene totali azzerati, e il suo array `errors` contiene il messaggio di errore. Il campo è assente in tutti gli altri risultati. Richiede Agent SDK v0.3.274 o successiva.

2011 2011 

2012Imposta `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` a `1` in [`env`](#options) per ricevere questo risultato per ogni valore di `SDKStartupFailureReason`. Senza quella variabile, Claude Code scrive il risultato solo per questi errori, mentre gli altri terminano con output su stderr, un codice di uscita diverso da zero e nessun messaggio di risultato:2012Imposta `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` a `1` in [`env`](#options) per ricevere questo risultato per ogni valore di `SDKStartupFailureReason`. Senza quella variabile, Claude Code scrive il risultato solo per questi errori, mentre gli altri terminano con output su stderr, un codice di uscita diverso da zero e nessun messaggio di risultato:

2013 2013 


5711 5711 

5712### `SDKTaskStartedMessage`5712### `SDKTaskStartedMessage`

5713 5713 

5714Emesso quando un'attività inizia. Il campo `task_type` è `"local_bash"` per i comandi Bash e le osservazioni [Monitor](#monitor), `"local_agent"` per i subagent, oppure `"remote_agent"`.5714Emesso quando un'attività inizia. `task_type` indica il tipo di attività, ad esempio `"local_bash"` per i comandi Bash e le osservazioni [Monitor](#monitor), `"local_agent"` per i subagent, `"mcp_task"` per le [chiamate a strumenti MCP in background](https://code.claude.com/docs/it/mcp.md#automatic-backgrounding-of-long-tool-calls), oppure `"remote_agent"`.

5715 5715 

5716```typescript theme={null}5716```typescript theme={null}

5717type SDKTaskStartedMessage = {5717type SDKTaskStartedMessage = {


5920 errorCode?: "credits_required";5920 errorCode?: "credits_required";

5921 canUserPurchaseCredits?: boolean;5921 canUserPurchaseCredits?: boolean;

5922 hasChargeableSavedPaymentMethod?: boolean;5922 hasChargeableSavedPaymentMethod?: boolean;

5923 overageEnabled?: boolean;

5923 };5924 };

5924 uuid: UUID;5925 uuid: UUID;

5925 session_id: string;5926 session_id: string;


5928 5929 

5929Quando `errorCode` è `"credits_required"`, il rifiuto proviene da un abbonamento claude.ai il cui utilizzo incluso è esaurito, e la sessione non può continuare finché l'utente non acquista crediti di utilizzo. `canUserPurchaseCredits` indica se l'utente autenticato può acquistare crediti per l'account, e `hasChargeableSavedPaymentMethod` indica se è registrato un metodo di pagamento salvato. Tutti e tre i campi sono assenti negli eventi di rate limit che non sono rifiuti per crediti richiesti. Richiede Claude Code v2.1.181 o versioni successive.5930Quando `errorCode` è `"credits_required"`, il rifiuto proviene da un abbonamento claude.ai il cui utilizzo incluso è esaurito, e la sessione non può continuare finché l'utente non acquista crediti di utilizzo. `canUserPurchaseCredits` indica se l'utente autenticato può acquistare crediti per l'account, e `hasChargeableSavedPaymentMethod` indica se è registrato un metodo di pagamento salvato. Tutti e tre i campi sono assenti negli eventi di rate limit che non sono rifiuti per crediti richiesti. Richiede Claude Code v2.1.181 o versioni successive.

5930 5931 

5932In un avviso relativo a un limite di utilizzo del piano, in cui `status` è `"allowed_warning"`, `overageEnabled` indica se l'account ha i [crediti di utilizzo](https://code.claude.com/docs/it/costs.md#add-usage-credits-to-your-subscription) attivati. Richiede Claude Code v2.1.295 o versioni successive.

5933 

5931### `SDKLocalCommandOutputMessage`5934### `SDKLocalCommandOutputMessage`

5932 5935 

5933Claude Code non emette questo tipo di messaggio. Quando invii un comando come `/context` o `/usage` come prompt, il suo output arriva come [`SDKAssistantMessage`](#sdkassistantmessage).5936Claude Code non emette questo tipo di messaggio. Quando invii un comando come `/context` o `/usage` come prompt, il suo output arriva come [`SDKAssistantMessage`](#sdkassistantmessage).

Details

647 647 

648 648 

649def parse_response(response: str, options: list) -> str:649def parse_response(response: str, options: list) -> str:

650 """Analizza l'input dell'utente come numero(i) di opzione o testo libero."""650 """Parse user input as option number(s) or free text."""

651 try:651 try:

652 indices = [int(s.strip()) - 1 for s in response.split(",")]652 indices = [int(s.strip()) - 1 for s in response.split(",")]

653 labels = [options[i]["label"] for i in indices if 0 <= i < len(options)]653 labels = [options[i]["label"] for i in indices if 0 <= i < len(options)]


657 657 

658 658 

659async def handle_ask_user_question(input_data: dict) -> PermissionResultAllow:659async def handle_ask_user_question(input_data: dict) -> PermissionResultAllow:

660 """Visualizza le domande di Claude e raccogli le risposte dell'utente."""660 """Display Claude's questions and collect user answers."""

661 answers = {}661 answers = {}

662 662 

663 for q in input_data.get("questions", []):663 for q in input_data.get("questions", []):

agent-teams.md +1 −1

Details

8 8 

9> [!WARNING]9> [!WARNING]

10>10>

11> I team di agenti sono sperimentali e disabilitati per impostazione predefinita. Abilitateli impostando `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` nel vostro [settings.json](https://code.claude.com/docs/it/settings.md) o nell'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> I team di agenti sono sperimentali e disabilitati per impostazione predefinita. Abilitali impostando `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` nel tuo [settings.json](https://code.claude.com/docs/it/settings.md) o nell'ambiente. I team di agenti hanno [limitazioni note](#limitations) relative alla ripresa della sessione, al coordinamento delle attività e al comportamento di arresto.

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. Potete anche parlare direttamente con qualsiasi compagno di team senza passare attraverso il lead.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. Potete anche parlare direttamente con qualsiasi compagno di team senza passare attraverso il lead.

14 14 

agent-view.md +0 −2

Details

892 892 

893Il 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.893Il 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.

894 894 

895Le sessioni sopravvivono intatte a quel mismatch di versione: una versione più vecchia di Claude Code che aggiorna il file `state.json` di una sessione preserva i campi che non riconosce e mantiene la sessione elencata. L'elenco delle sessioni in `roster.json` segue la stessa regola, quindi le sessioni avviate dalla versione più nuova rimangono raggiungibili e continuano ad accettare input dopo il riavvio del supervisor.

896 

897### Disattiva agent view895### Disattiva agent view

898 896 

899Per disattivare completamente gli agenti in background e agent view, imposta l'[impostazione](https://code.claude.com/docs/it/settings.md) `disableAgentView` su `true` o imposta la variabile d'ambiente `CLAUDE_CODE_DISABLE_AGENT_VIEW`. Gli amministratori possono applicare questo attraverso [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md).897Per disattivare completamente gli agenti in background e agent view, imposta l'[impostazione](https://code.claude.com/docs/it/settings.md) `disableAgentView` su `true` o imposta la variabile d'ambiente `CLAUDE_CODE_DISABLE_AGENT_VIEW`. Gli amministratori possono applicare questo attraverso [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md).

Details

367| `ap-*` | `apac.` |367| `ap-*` | `apac.` |

368| Tutte le altre regioni | `global.` |368| Tutte le altre regioni | `global.` |

369 369 

370Impostare `ANTHROPIC_BEDROCK_REGION_PREFIX` per scegliere il prefisso che Claude Code prova per primo; quando Claude Code può verificare la disponibilità del profilo e non trova alcun profilo corrispondente per un modello, esegue il fallback come descritto nell'ordine di risoluzione di seguito. I valori validi sono `us`, `eu`, `apac`, `jp`, `au` e `global`. Ad esempio, impostatelo su `global` quando il vostro account ha profili `global.` abilitati ma Claude Code ne deriverebbe uno specifico della geografia dalla vostra regione AWS. Richiede Claude Code v2.1.224 o successivo.370Imposta `ANTHROPIC_BEDROCK_REGION_PREFIX` per scegliere il prefisso che Claude Code prova per primo. I valori validi sono `us`, `eu`, `apac`, `jp`, `au` e `global`. Ad esempio, impostalo su `global` quando il tuo account ha profili `global.` abilitati ma Claude Code ne deriverebbe uno specifico della geografia dalla tua regione AWS.

371 371 

372Questo esempio instrada i modelli predefiniti attraverso profili `global.`:372Questo esempio instrada i modelli predefiniti attraverso profili `global.`:

373 373 

artifacts.md +21 −4

Details

64| :- | :- |64| :- | :- |

65| La sessione è in [plan mode](https://code.claude.com/docs/it/permission-modes.md#analyze-before-you-edit-with-plan-mode) | Chiede prima della prima pubblicazione di ogni artefatto |65| La sessione è in [plan mode](https://code.claude.com/docs/it/permission-modes.md#analyze-before-you-edit-with-plan-mode) | Chiede prima della prima pubblicazione di ogni artefatto |

66| La pubblicazione dichiara capacità di runtime per la pagina, come [chiamate ai connettori](#pull-live-data-with-mcp-connectors) o [download di file](#offer-a-file-download) | Chiede prima di quella pubblicazione |66| La pubblicazione dichiara capacità di runtime per la pagina, come [chiamate ai connettori](#pull-live-data-with-mcp-connectors) o [download di file](#offer-a-file-download) | Chiede prima di quella pubblicazione |

67| Hai condiviso l'artefatto pubblicamente | Chiede una volta per conversazione prima di modificarlo |67| Hai condiviso l'artefatto pubblicamente | Chiede una volta per conversazione prima di modificarlo, e prima di ogni risposta a un commento su di esso |

68| Claude pubblica in un turno avviato da un'[attività pianificata con ambito di sessione](https://code.claude.com/docs/it/scheduled-tasks.md) eseguita nella tua sessione, anziché da un prompt che hai digitato | Chiede prima della prima pubblicazione di ogni artefatto |68| Claude pubblica in un turno avviato da un'[attività pianificata con ambito di sessione](https://code.claude.com/docs/it/scheduled-tasks.md) eseguita nella tua sessione, anziché da un prompt che hai digitato | Chiede prima della prima pubblicazione di ogni artefatto |

69| Claude non può leggere il file senza la tua approvazione | Chiede prima di pubblicarlo. Una regola allow per lo strumento `Artifact` non evita questa richiesta |69| Claude non può leggere il file senza la tua approvazione | Chiede prima di pubblicarlo. Una regola allow per lo strumento `Artifact` non evita questa richiesta |

70| In modalità [Manual](https://code.claude.com/docs/it/permission-modes.md) o `acceptEdits`, Claude apporta una piccola modifica al file di un artefatto che non può modificare senza la tua approvazione, come un file di progetto in modalità Manual | Chiede prima di pubblicare la modifica. La richiesta ti viene mostrata anche se una regola allow copre lo strumento `Artifact`, perché la modifica al file richiede la tua approvazione |70| In modalità [Manual](https://code.claude.com/docs/it/permission-modes.md) o `acceptEdits`, Claude apporta una piccola modifica al file di un artefatto che non può modificare senza la tua approvazione, come un file di progetto in modalità Manual | Chiede prima di pubblicare la modifica. La richiesta ti viene mostrata anche se una regola allow copre lo strumento `Artifact`, perché la modifica al file richiede la tua approvazione |


78Chiedete a Claude di revisionare la pagina, oppure lasciate che un'attività a lunga esecuzione ripubblichi man mano che fa progressi. Claude modifica il file sottostante e ripubblica allo stesso URL.78Chiedete a Claude di revisionare la pagina, oppure lasciate che un'attività a lunga esecuzione ripubblichi man mano che fa progressi. Claude modifica il file sottostante e ripubblica allo stesso URL.

79 79 

80```text wrap theme={null}80```text wrap theme={null}

81Aggiungete una suddivisione per regione sotto il grafico di riepilogo e ripubblicate.81Aggiungi una suddivisione per regione sotto il grafico di riepilogo e ripubblica.

82```82```

83 83 

84Chiunque abbia la pagina aperta vede l'aggiornamento in tempo reale. Ogni pubblicazione diventa una versione, e dal controllo **Share** nell'intestazione della pagina potete scegliere quale versione vedono i visualizzatori.84Chiunque abbia la pagina aperta vede l'aggiornamento in tempo reale. Ogni pubblicazione diventa una versione, e dal controllo **Share** nell'intestazione della pagina potete scegliere quale versione vedono i visualizzatori.


86Per aggiornare un artifact da una sessione diversa, fornite a Claude il suo URL, oppure allegate con [`/artifacts`](#find-an-artifact-again). Senza uno dei due, una nuova sessione crea un nuovo artifact invece di aggiornarne uno.86Per aggiornare un artifact da una sessione diversa, fornite a Claude il suo URL, oppure allegate con [`/artifacts`](#find-an-artifact-again). Senza uno dei due, una nuova sessione crea un nuovo artifact invece di aggiornarne uno.

87 87 

88```text wrap theme={null}88```text wrap theme={null}

89Aggiornate https://claude.ai/code/artifact/5fbea6f3-... con i numeri di oggi.89Aggiorna https://claude.ai/code/artifact/5fbea6f3-... con i numeri di oggi.

90```90```

91 91 

92### Disattivare gli aggiornamenti degli artefatti in un solo passaggio

93 

94Un aggiornamento in un solo passaggio è una piccola modifica che Claude apporta al file di un artefatto come parte di una pubblicazione, invece che tramite una chiamata `Edit` o `Write`.

95 

96Per disattivare gli aggiornamenti in un solo passaggio, imposta [`CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS`](https://code.claude.com/docs/it/env-vars) su `0`. Questo esempio aggiunge la variabile al blocco `env` in `~/.claude/settings.json`:

97 

98```json theme={null}

99{

100 "env": {

101 "CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS": "0"

102 }

103}

104```

105 

106Poi chiudi e riavvia Claude Code, perché una sessione in esecuzione non rilegge la variabile.

107 

92## Trovare di nuovo un artifact108## Trovare di nuovo un artifact

93 109 

94Esegui `/artifacts` in Claude Code per elencare gli artefatti che possiedi e quelli condivisi con te. Gli artefatti della sessione corrente compaiono per primi, sotto **This session**.110Esegui `/artifacts` in Claude Code per elencare gli artefatti che possiedi e quelli condivisi con te. Gli artefatti della sessione corrente compaiono per primi, sotto **This session**.


111Chi potete condividere dipende dal vostro piano:127Chi potete condividere dipende dal vostro piano:

112 128 

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

130* **Persone con accesso a una cartella condivisa**: nei piani Team e Enterprise, sposta l'artefatto in una cartella di cui sei proprietario o editor. Spostalo dalla [pagina Artifacts](https://claude.ai/artifacts), disponibile se puoi utilizzare la chat di claude.ai. Tutti coloro che hanno accesso alla cartella possono quindi aprirlo, e il proprietario e gli editor della cartella possono modificarlo.

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

115 132 

116### Collegarsi a una vista specifica133### Collegarsi a una vista specifica


178La tua [modalità di autorizzazione](https://code.claude.com/docs/it/permission-modes.md) decide cosa fa Claude quando arriva un commento inviato:195La tua [modalità di autorizzazione](https://code.claude.com/docs/it/permission-modes.md) decide cosa fa Claude quando arriva un commento inviato:

179 196 

180* **Claude risponde da solo**: se sei in una modalità di permesso che consente a Claude di pubblicare la risposta senza chiederti, Claude legge il thread e risponde. Vedi `Auto-replied to comment thread on Artifact: <name>`.197* **Claude risponde da solo**: se sei in una modalità di permesso che consente a Claude di pubblicare la risposta senza chiederti, Claude legge il thread e risponde. Vedi `Auto-replied to comment thread on Artifact: <name>`.

181* **Claude aspetta te**: al di fuori della plan mode, quando la pubblicazione della risposta avrebbe bisogno della tua approvazione, vedi `Comments are waiting on Artifact: <name>`. Claude quindi ti chiede l'approvazione per leggere il thread, e di nuovo per pubblicare la risposta.198* **Claude aspetta te**: al di fuori della plan mode, quando la pubblicazione della risposta [avrebbe bisogno della tua approvazione](#when-claude-code-asks-before-publishing), vedi `Comments are waiting on Artifact: <name>`. Claude quindi ti chiede l'approvazione per leggere il thread, e di nuovo per pubblicare la risposta.

182* **Claude si mette in pausa in plan mode**: vedi `Comments are waiting on Artifact: <name>`, e Claude non risponde finché non esci dalla plan mode e non gli chiedi di leggere e rispondere.199* **Claude si mette in pausa in plan mode**: vedi `Comments are waiting on Artifact: <name>`, e Claude non risponde finché non esci dalla plan mode e non gli chiedi di leggere e rispondere.

183 200 

184Claude smette anche di rispondere da solo a un artefatto dopo aver gestito 60 commenti inviati o attivazioni di thread su quell'artefatto entro un'ora. Vedi `Comments are waiting on Artifact: <name>` una volta, e Claude riprende mentre i commenti di quell'ora invecchiano.201Claude smette anche di rispondere da solo a un artefatto dopo aver gestito 60 commenti inviati o attivazioni di thread su quell'artefatto entro un'ora. Vedi `Comments are waiting on Artifact: <name>` una volta, e Claude riprende mentre i commenti di quell'ora invecchiano.

Details

34* **Richieste**: per far passare i controlli, il gateway inoltra senza modifiche sia l'intestazione `anthropic-beta` sia il campo del corpo `safeguards`, perché [i due viaggiano in coppia](https://code.claude.com/docs/it/llm-gateway-protocol.md#beta-header-and-body-field-pairs). Nel [formato InvokeModel di Amazon Bedrock](https://code.claude.com/docs/it/llm-gateway-protocol.md#api-formats), inoltra il campo del corpo `anthropic_beta` al posto dell'intestazione.34* **Richieste**: per far passare i controlli, il gateway inoltra senza modifiche sia l'intestazione `anthropic-beta` sia il campo del corpo `safeguards`, perché [i due viaggiano in coppia](https://code.claude.com/docs/it/llm-gateway-protocol.md#beta-header-and-body-field-pairs). Nel [formato InvokeModel di Amazon Bedrock](https://code.claude.com/docs/it/llm-gateway-protocol.md#api-formats), inoltra il campo del corpo `anthropic_beta` al posto dell'intestazione.

35* **Risposte**: il gateway restituisce risposte ed eventi di streaming senza eliminare campi o riscrivere gli ID di tool-use. Per far passare i risultati dei controlli, mantiene il campo `safeguard_results`.35* **Risposte**: il gateway restituisce risposte ed eventi di streaming senza eliminare campi o riscrivere gli ID di tool-use. Per far passare i risultati dei controlli, mantiene il campo `safeguard_results`.

36 36 

37Un gateway che fa passare il traffico in questo modo continua a funzionare con questa funzionalità e con quelle future. Le nuove sessioni utilizzano quindi di nuovo i controlli del server.37Una volta che il tuo gateway fa questo, le nuove sessioni utilizzano di nuovo i controlli del server.

38 38 

39Se sai già che il tuo gateway non può fornire i controlli del server, comunica a Claude Code di non chiederli lì impostando `CLAUDE_CODE_AUTO_MODE_SERVER` a `0` prima di avviare la sessione, nella tua shell o nella [chiave di impostazioni `env`](https://code.claude.com/docs/it/settings-reference#env):39Se sai già che il tuo gateway non può fornire i controlli del server, comunica a Claude Code di non chiederli lì impostando `CLAUDE_CODE_AUTO_MODE_SERVER` a `0` prima di avviare la sessione, nella tua shell o nella [chiave di impostazioni `env`](https://code.claude.com/docs/it/settings-reference#env):

40 40 

Details

180 180 

181Claude Code esegue la scansione in background, quindi ti mostra la bozza. La accetti o la scarta nel complesso, quindi modifica `~/.claude/settings.json` in seguito per regolare le singole voci. Quando accetti, Claude Code scrive la bozza e la riconcilia con le impostazioni che hai già:181Claude Code esegue la scansione in background, quindi ti mostra la bozza. La accetti o la scarta nel complesso, quindi modifica `~/.claude/settings.json` in seguito per regolare le singole voci. Quando accetti, Claude Code scrive la bozza e la riconcilia con le impostazioni che hai già:

182 182 

183* Claude Code scrive la lista `environment` senza `"$defaults"`, perché la bozza esplicita le voci incorporate che ha lasciato invariate183* Se hai scelto di aggiungere alla lista `environment` in `~/.claude/settings.json`, mantieni qualsiasi voce `"$defaults"` presente al suo interno. Se hai scelto di sostituire quella lista, perdi quella voce, quindi aggiungi di nuovo `"$defaults"` se vuoi le voci predefinite

184* Claude Code include `"$defaults"` in ognuno degli elenchi `allow`, `soft_deny` e `hard_deny` a cui la bozza aggiunge voci, a meno che tu non abbia già scritto un elenco `allow` senza di esso, quindi le [regole incorporate](#override-the-block-and-allow-rules) che non hai sostituito rimangono in vigore184* Claude Code include `"$defaults"` in ognuno degli elenchi `allow`, `soft_deny` e `hard_deny` a cui la bozza aggiunge voci, a meno che tu non abbia già scritto un elenco `allow` senza di esso, quindi le [regole incorporate](#override-the-block-and-allow-rules) che non hai sostituito rimangono in vigore

185* Dopo il salvataggio, Claude Code offre di rimuovere le regole `permissions.allow` in `~/.claude/settings.json` che la modalità auto ignora, come `Bash(*)`, o che approvano automaticamente i comandi distruttivi185* Dopo il salvataggio, Claude Code offre di rimuovere le regole `permissions.allow` in `~/.claude/settings.json` che la modalità auto ignora, come `Bash(*)`, o che approvano automaticamente i comandi distruttivi

186 186 


216 216 

217Tre campi aggiuntivi ti permettono di sostituire gli elenchi di regole incorporate del classificatore:217Tre campi aggiuntivi ti permettono di sostituire gli elenchi di regole incorporate del classificatore:

218 218 

219* `autoMode.hard_deny`: confini di sicurezza incondizionati219* `autoMode.hard_deny`: azioni da bloccare anche quando l'utente le richiede

220* `autoMode.soft_deny`: azioni distruttive che l'intento dell'utente può annullare220* `autoMode.soft_deny`: azioni distruttive che l'intento dell'utente può annullare

221* `autoMode.allow`: eccezioni alle regole di blocco soft221* `autoMode.allow`: eccezioni alle regole di blocco soft

222 222 


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

226 226 

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

228* Le regole `soft_deny` bloccano successivamente. L'intento dell'utente e le eccezioni `allow` possono ignorare questi blocchi.228* Le regole `soft_deny` bloccano successivamente. L'intento dell'utente e le eccezioni `allow` possono sovrascrivere questi blocchi.

229* Le regole `allow` quindi sostituiscono i blocchi `soft_deny` corrispondenti come eccezioni.229* Le regole `allow` quindi sovrascrivono le regole `soft_deny` corrispondenti come eccezioni.

230* L'intento esplicito dell'utente ignora i blocchi soft rimanenti: se il messaggio dell'utente descrive direttamente e specificamente l'azione esatta che Claude sta per intraprendere, il classificatore la consente anche quando una regola `soft_deny` corrisponde.230* L'intento esplicito dell'utente sovrascrive i blocchi soft rimanenti: se il messaggio dell'utente descrive direttamente e specificamente l'azione esatta che Claude sta per intraprendere, il classificatore la consente anche quando una regola `soft_deny` corrisponde.

231 231 

232Le 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ì.232Le richieste generali non contano come intento esplicito. Chiedere a Claude di "pulire il repository" non autorizza il force-push, ma chiedere a Claude di "fare force-push di questo branch" sì.

233 233 

234Per 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.234Per allentare, aggiungi a `allow` quando il classificatore segnala 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 le azioni da bloccare anche quando l'utente le richiede.

235 235 

236Per 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.236Per 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.

237 237 


252 "soft_deny": [252 "soft_deny": [

253 "$defaults",253 "$defaults",

254 "Never run database migrations outside the migrations CLI, even against dev databases",254 "Never run database migrations outside the migrations CLI, even against dev databases",

255 "Never modify files under infra/terraform/prod/: production infrastructure changes go through the review workflow"255 "Running terraform apply in infra/terraform/prod/ needs an explicit request: production infrastructure changes go through the review workflow"

256 ],256 ],

257 "hard_deny": [257 "hard_deny": [

258 "$defaults",258 "$defaults",


264 264 

265> [!CAUTION]265> [!CAUTION]

266>266>

267> L'impostazione di uno qualsiasi di `environment`, `allow`, `soft_deny` o `hard_deny` senza `"$defaults"` sostituisce l'intero elenco predefinito per quella sezione. Se imposti un array senza `"$defaults"`, scarta le regole incorporate per quella sezione:267> L'impostazione di uno qualsiasi di `environment`, `allow`, `soft_deny` o `hard_deny` senza `"$defaults"` sostituisce l'intero elenco predefinito per quella sezione. Se imposti un array senza `"$defaults"`, scarti le regole incorporate per quella sezione:

268>268>

269> * `soft_deny`: ogni regola di blocco soft incorporata, inclusi force push, `curl | bash`, distribuzioni di produzione e bypass della modalità auto269> * `soft_deny`: ogni regola di blocco soft incorporata, inclusi force push, `curl | bash`, distribuzioni di produzione e bypass della modalità auto

270> * `hard_deny`: la regola incorporata di esfiltrazione dei dati270> * `hard_deny`: la regola incorporata di esfiltrazione dei dati

271 271 

272Ogni sezione viene valutata indipendentemente, quindi l'impostazione di `environment` da sola lascia intatti gli elenchi predefiniti `allow`, `soft_deny` e `hard_deny`. Ometti `"$defaults"` solo quando intendi assumere la piena proprietà dell'elenco. Per farlo in modo sicuro, esegui `claude auto-mode defaults` per stampare le regole incorporate, copiale nel tuo file di impostazioni, quindi esamina ogni regola rispetto alla tua pipeline e tolleranza al rischio.272Ogni sezione viene valutata indipendentemente, quindi l'impostazione di `environment` da sola lascia intatti gli elenchi predefiniti `allow`, `soft_deny` e `hard_deny`.

273 

274Ometti `"$defaults"` solo quando intendi assumere la piena proprietà dell'elenco. Per farlo in modo sicuro, esegui `claude auto-mode defaults` per stampare le regole incorporate, copiale nel tuo file di impostazioni, quindi esamina ogni regola rispetto alla tua pipeline e tolleranza al rischio.

273 275 

274## Modificare le regole da `/permissions`276## Modificare le regole da `/permissions`

275 277 

Details

213 tools: {}, // ometti per canali unidirezionali213 tools: {}, // ometti per canali unidirezionali

214 },214 },

215 // Claude Code lo consegna a Claude come contesto quando il server si connette, in modo che sappia come gestire i tuoi eventi215 // Claude Code lo consegna a Claude come contesto quando il server si connette, in modo che sappia come gestire i tuoi eventi

216 instructions: 'I messaggi arrivano come <channel source="your-channel" ...>. Rispondi con lo strumento di risposta.',216 instructions: 'Messages arrive as <channel source="your-channel" ...>. Reply with the reply tool.',

217 },217 },

218)218)

219```219```


286mcp.setRequestHandler(ListToolsRequestSchema, async () => ({286mcp.setRequestHandler(ListToolsRequestSchema, async () => ({

287 tools: [{287 tools: [{

288 name: 'reply',288 name: 'reply',

289 description: 'Invia un messaggio indietro su questo canale',289 description: 'Send a message back over this channel',

290 // inputSchema dice a Claude quali argomenti passare290 // inputSchema dice a Claude quali argomenti passare

291 inputSchema: {291 inputSchema: {

292 type: 'object',292 type: 'object',

293 properties: {293 properties: {

294 chat_id: { type: 'string', description: 'La conversazione in cui rispondere' },294 chat_id: { type: 'string', description: 'The conversation to reply in' },

295 text: { type: 'string', description: 'Il messaggio da inviare' },295 text: { type: 'string', description: 'The message to send' },

296 },296 },

297 required: ['chat_id', 'text'],297 required: ['chat_id', 'text'],

298 },298 },


317Aggiorna la stringa `instructions` nel tuo costruttore `Server` in modo che Claude sappia di instradare le risposte indietro tramite lo strumento. Questo esempio dice a Claude di passare `chat_id` dal tag in entrata:317Aggiorna la stringa `instructions` nel tuo costruttore `Server` in modo che Claude sappia di instradare le risposte indietro tramite lo strumento. Questo esempio dice a Claude di passare `chat_id` dal tag in entrata:

318 318 

319```ts theme={null}319```ts theme={null}

320instructions: 'I messaggi arrivano come <channel source="webhook" chat_id="...">. Rispondi con lo strumento di risposta, passando il chat_id dal tag.'320instructions: 'Messages arrive as <channel source="webhook" chat_id="...">. Reply with the reply tool, passing the chat_id from the tag.'

321```321```

322 322 

323Ecco il `webhook.ts` completo con supporto bidirezionale. Le risposte in uscita vengono trasmesse su `GET /events` utilizzando [Server-Sent Events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events) (SSE), quindi `curl -N localhost:8788/events` può guardarle dal vivo; la chat in entrata arriva su `POST /`:323Ecco il `webhook.ts` completo con supporto bidirezionale. Le risposte in uscita vengono trasmesse su `GET /events` utilizzando [Server-Sent Events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events) (SSE), quindi `curl -N localhost:8788/events` può guardarle dal vivo; la chat in entrata arriva su `POST /`:

324 324 

325```ts title="Full webhook.ts with reply tool' expandable theme={null}325```ts title="Full webhook.ts with reply tool" expandable theme={null}

326#!/usr/bin/env bun326#!/usr/bin/env bun

327import { Server } from '@modelcontextprotocol/sdk/server/index.js'327import { Server } from '@modelcontextprotocol/sdk/server/index.js'

328import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'328import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'


343 experimental: { 'claude/channel': {} },343 experimental: { 'claude/channel': {} },

344 tools: {},344 tools: {},

345 },345 },

346 instructions: 'I messaggi arrivano come <channel source="webhook" chat_id="...">. Rispondi con lo strumento di risposta, passando il chat_id dal tag.',346 instructions: 'Messages arrive as <channel source="webhook" chat_id="...">. Reply with the reply tool, passing the chat_id from the tag.',

347 },347 },

348)348)

349 349 

350mcp.setRequestHandler(ListToolsRequestSchema, async () => ({350mcp.setRequestHandler(ListToolsRequestSchema, async () => ({

351 tools: [{351 tools: [{

352 name: 'reply',352 name: 'reply',

353 description: 'Invia un messaggio indietro su questo canale',353 description: 'Send a message back over this channel',

354 inputSchema: {354 inputSchema: {

355 type: 'object',355 type: 'object',

356 properties: {356 properties: {

357 chat_id: { type: 'string', description: 'La conversazione in cui rispondere' },357 chat_id: { type: 'string', description: 'The conversation to reply in' },

358 text: { type: 'string', description: 'Il messaggio da inviare' },358 text: { type: 'string', description: 'The message to send' },

359 },359 },

360 required: ['chat_id', 'text'],360 required: ['chat_id', 'text'],

361 },361 },


534 // send() è il tuo outbound: POST alla tua piattaforma di chat, o per il test locale534 // send() è il tuo outbound: POST alla tua piattaforma di chat, o per il test locale

535 // il broadcast SSE mostrato nell'esempio completo di seguito.535 // il broadcast SSE mostrato nell'esempio completo di seguito.

536 send(536 send(

537 `Claude vuole eseguire ${params.tool_name}: ${params.description}\n` +537 `Claude wants to run ${params.tool_name}: ${params.description}\n` +

538 // input_preview contiene gli argomenti effettivi; renderizzalo quando538 // input_preview contiene gli argomenti effettivi; renderizzalo quando

539 // hai spazio: per Bash la descrizione da sola potrebbe essere solo539 // hai spazio: per Bash la descrizione da sola potrebbe essere solo

540 // "Run shell command" senza alcun dettaglio del comando540 // "Run shell command" senza alcun dettaglio del comando

541 `${params.input_preview}\n\n` +541 `${params.input_preview}\n\n` +

542 // l'ID nell'istruzione è ciò che il tuo gestore in entrata analizza nel Passaggio 3542 // l'ID nell'istruzione è ciò che il tuo gestore in entrata analizza nel Passaggio 3

543 `Rispondi "yes ${params.request_id}" o "no ${params.request_id}"`,543 `Reply "yes ${params.request_id}" or "no ${params.request_id}"`,

544 )544 )

545})545})

546```546```


627 tools: {},627 tools: {},

628 },628 },

629 instructions:629 instructions:

630 'I messaggi arrivano come <channel source="webhook" chat_id="...">. ' +630 'Messages arrive as <channel source="webhook" chat_id="...">. ' +

631 'Rispondi con lo strumento di risposta, passando il chat_id dal tag.',631 'Reply with the reply tool, passing the chat_id from the tag.',

632 },632 },

633)633)

634 634 


636mcp.setRequestHandler(ListToolsRequestSchema, async () => ({636mcp.setRequestHandler(ListToolsRequestSchema, async () => ({

637 tools: [{637 tools: [{

638 name: 'reply',638 name: 'reply',

639 description: 'Invia un messaggio indietro su questo canale',639 description: 'Send a message back over this channel',

640 inputSchema: {640 inputSchema: {

641 type: 'object',641 type: 'object',

642 properties: {642 properties: {

643 chat_id: { type: 'string', description: 'La conversazione in cui rispondere' },643 chat_id: { type: 'string', description: 'The conversation to reply in' },

644 text: { type: 'string', description: 'Il messaggio da inviare' },644 text: { type: 'string', description: 'The message to send' },

645 },645 },

646 required: ['chat_id', 'text'],646 required: ['chat_id', 'text'],

647 },647 },


670 670 

671mcp.setNotificationHandler(PermissionRequestSchema, async ({ params }) => {671mcp.setNotificationHandler(PermissionRequestSchema, async ({ params }) => {

672 send(672 send(

673 `Claude vuole eseguire ${params.tool_name}: ${params.description}\n` +673 `Claude wants to run ${params.tool_name}: ${params.description}\n` +

674 `${params.input_preview}\n\n` +674 `${params.input_preview}\n\n` +

675 `Rispondi "yes ${params.request_id}" o "no ${params.request_id}"`,675 `Reply "yes ${params.request_id}" or "no ${params.request_id}"`,

676 )676 )

677})677})

678 678 

Details

763. Prezzo di listino per il [`models[].id`](https://code.claude.com/docs/it/claude-apps-gateway-config#models) che hai mappato a quell'ID upstream, per stringhe upstream che non contengono un nome di modello, come un ARN del profilo di inferenza di Amazon Bedrock o un nome di distribuzione di Microsoft Foundry. Richiede v2.1.218 o successivo.763. Prezzo di listino per il [`models[].id`](https://code.claude.com/docs/it/claude-apps-gateway-config#models) che hai mappato a quell'ID upstream, per stringhe upstream che non contengono un nome di modello, come un ARN del profilo di inferenza di Amazon Bedrock o un nome di distribuzione di Microsoft Foundry. Richiede v2.1.218 o successivo.

774. Il livello di modello sconosciuto di \$5/\$25 per milione di token di input/output, quindi un ID che il misuratore non riesce a posizionare non è mai gratuito. Il gateway avvisa all'avvio e una volta per ID al runtime quando utilizza questo livello.774. Il livello di modello sconosciuto di \$5/\$25 per milione di token di input/output, quindi un ID che il misuratore non riesce a posizionare non è mai gratuito. Il gateway avvisa all'avvio e una volta per ID al runtime quando utilizza questo livello.

78 78 

79Qualunque sia il tasso applicabile, il misuratore moltiplica quindi l'importo per [`pricing.multiplier`](https://code.claude.com/docs/it/claude-apps-gateway-config#pricing), predefinito `1`.79Qualunque sia il tasso applicabile, il misuratore moltiplica quindi l'importo per [`pricing.multiplier`](https://code.claude.com/docs/it/claude-apps-gateway-config#pricing), predefinito `1`. Richiede un server gateway che esegue Claude Code v2.1.227 o successivo.

80 80 

81Gli abort dei client vengono fatturati anche. Quando un flusso termina senza il frame di utilizzo finale dell'upstream, il misuratore fattura una stima minima di circa quattro caratteri per token di output per il testo già inviato al client, quindi interrompere le richieste in anticipo non consente di aggirare un limite.81Gli abort dei client vengono fatturati anche. Quando un flusso termina senza il frame di utilizzo finale dell'upstream, il misuratore fattura una stima minima di circa quattro caratteri per token di output per il testo già inviato al client, quindi interrompere le richieste in anticipo non consente di aggirare un limite.

82 82 

Details

205* **Usando `/teleport`**: all'interno di una sessione CLI esistente, esegui `/teleport` o `/tp` per aprire lo stesso selettore di sessione senza riavviare Claude Code.205* **Usando `/teleport`**: all'interno di una sessione CLI esistente, esegui `/teleport` o `/tp` per aprire lo stesso selettore di sessione senza riavviare Claude Code.

206* **Da `/tasks`**: esegui `/tasks` per vedere le tue sessioni in background, quindi premi `t` per teletrasportarti in una.206* **Da `/tasks`**: esegui `/tasks` per vedere le tue sessioni in background, quindi premi `t` per teletrasportarti in una.

207* **Da claude.ai/code**: seleziona **Open in > Terminal** dal menu della sessione per copiare un comando che puoi incollare nel tuo terminale.207* **Da claude.ai/code**: seleziona **Open in > Terminal** dal menu della sessione per copiare un comando che puoi incollare nel tuo terminale.

208* **Dall'interno della sessione cloud**: digita `/teleport` e Claude Code risponde con il comando esatto `claude --teleport <session-id>` per quella sessione, pronto per essere eseguito da un checkout del repository. Richiede Claude Code v2.1.223 o successivo nell'ambiente della sessione.208* **Dall'interno della sessione cloud**: digita `/teleport` e Claude Code risponde con il comando esatto `claude --teleport <session-id>` per quella sessione, pronto per essere eseguito da un checkout del repository.

209 209 

210Quando teletrasporti una sessione, Claude verifica che sei nel repository corretto, recupera il branch dalla sessione cloud ed esegue il checkout, e carica la conversazione nel tuo terminale.210Quando teletrasporti una sessione, Claude verifica che sei nel repository corretto, recupera il branch dalla sessione cloud ed esegue il checkout, e carica la conversazione nel tuo terminale.

211 211 


499* **Autenticazione del repository**: puoi estrarre una sessione cloud nel tuo terminale solo quando sei autenticato allo stesso account499* **Autenticazione del repository**: puoi estrarre una sessione cloud nel tuo terminale solo quando sei autenticato allo stesso account

500* **Restrizioni della piattaforma**: il clonaggio del repository negli ambienti ospitati da Anthropic e la creazione di pull request richiedono GitHub. Le istanze self-hosted di [GitHub Enterprise Server](https://code.claude.com/docs/it/github-enterprise-server.md) sono supportate per i piani Team ed Enterprise. Puoi inviare un repository GitLab, Bitbucket o altro non-GitHub a una sessione cloud come [bundle locale](#send-local-repositories-without-github) impostando `CCR_FORCE_BUNDLE=1`, ma la sessione non può eseguire il push dei risultati di nuovo a quel remoto500* **Restrizioni della piattaforma**: il clonaggio del repository negli ambienti ospitati da Anthropic e la creazione di pull request richiedono GitHub. Le istanze self-hosted di [GitHub Enterprise Server](https://code.claude.com/docs/it/github-enterprise-server.md) sono supportate per i piani Team ed Enterprise. Puoi inviare un repository GitLab, Bitbucket o altro non-GitHub a una sessione cloud come [bundle locale](#send-local-repositories-without-github) impostando `CCR_FORCE_BUNDLE=1`, ma la sessione non può eseguire il push dei risultati di nuovo a quel remoto

501 * **Ambienti self-hosted**: per un repository su un altro host Git, consulta i [requisiti per avviare una sessione con `--environment`](https://code.claude.com/docs/it/self-hosted-environments-deploy#start-a-session-on-a-repository-outside-github).501 * **Ambienti self-hosted**: per un repository su un altro host Git, consulta i [requisiti per avviare una sessione con `--environment`](https://code.claude.com/docs/it/self-hosted-environments-deploy#start-a-session-on-a-repository-outside-github).

502* **Allowlist IP dell'organizzazione**: le sessioni cloud chiamano l'API Anthropic dall'infrastruttura gestita da Anthropic, non dalla tua rete, mentre le sessioni in un [ambiente self-hosted](https://code.claude.com/docs/it/self-hosted-environments) la chiamano 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 ospitata da Anthropic fallisce con un errore di autenticazione.

503 * **Code Review e attività pianificate**: lo stesso vale per [Code Review](https://code.claude.com/docs/it/code-review.md) e per le [attività pianificate cloud](https://code.claude.com/docs/it/routines.md) che vengono eseguite su ambienti ospitati da Anthropic. Un'attività pianificata instradata a un ambiente self-hosted chiama l'API dalla tua rete.

504 * **Ottenere un'esenzione**: contatta il [supporto Anthropic](https://support.claude.com/) per esentare i servizi ospitati da Anthropic dall'allowlist IP della tua organizzazione.

505 502 

506## Risorse correlate503## Risorse correlate

507 504 

Details

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

143 143 

144* **`sessions/`**: contiene un piccolo file per ogni sessione in esecuzione, usato per rilevare sessioni simultanee e arresti anomali. Non fa parte della pulizia automatica basata sull'età: Claude Code rimuove ogni file quando la sua sessione termina ed elimina i residui degli arresti anomali all'avvio successivo.144* **`sessions/`**: contiene un piccolo file per ogni sessione in esecuzione, usato per rilevare sessioni simultanee e arresti anomali. Non fa parte della pulizia automatica basata sull'età: Claude Code rimuove ogni file quando la sua sessione termina ed elimina i residui degli arresti anomali all'avvio successivo.

145* **`seed-admin/`**: directory git temporanee che Claude Code crea mentre impacchetta il tuo repository per un [ultrareview](https://code.claude.com/docs/it/ultrareview.md) o per un [caricamento di una sessione cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md#send-local-repositories-without-github). Quando un caricamento termina, o in una sessione successiva se è stato interrotto, Claude Code rimuove la directory di quel caricamento e lascia `seed-admin/` al suo posto.

145* **Memoria automatica**: la pulizia automatica non elimina i file di memoria nella directory della [memoria automatica](https://code.claude.com/docs/it/memory.md#auto-memory) di un progetto, `projects/<project>/memory/`. Claude Code rimuove quella directory solo se è rimasta vuota per l'intero periodo di conservazione. Prima della v2.1.228, la pulizia automatica trattava le cartelle all'interno della directory della memoria come dati di sessione e poteva eliminare i file vecchi al loro interno.146* **Memoria automatica**: la pulizia automatica non elimina i file di memoria nella directory della [memoria automatica](https://code.claude.com/docs/it/memory.md#auto-memory) di un progetto, `projects/<project>/memory/`. Claude Code rimuove quella directory solo se è rimasta vuota per l'intero periodo di conservazione. Prima della v2.1.228, la pulizia automatica trattava le cartelle all'interno della directory della memoria come dati di sessione e poteva eliminare i file vecchi al loro interno.

146* **Trascrizioni di Claude Desktop e Cowork**: Claude Code conserva la trascrizione di una sessione che hai avviato o proseguito più di recente in Claude Desktop o Cowork, a prescindere dalla sua età. Per dare a queste trascrizioni un limite di età, imposta [`desktopSessionCleanupPeriodDays`](https://code.claude.com/docs/it/settings-reference#desktopsessioncleanupperioddays). Richiede Claude Code v2.1.248 o successivo; le versioni precedenti le eliminano dopo `cleanupPeriodDays`.147* **Trascrizioni di Claude Desktop e Cowork**: Claude Code conserva la trascrizione di una sessione che hai avviato o proseguito più di recente in Claude Desktop o Cowork, a prescindere dalla sua età. Per dare a queste trascrizioni un limite di età, imposta [`desktopSessionCleanupPeriodDays`](https://code.claude.com/docs/it/settings-reference#desktopsessioncleanupperioddays). Richiede Claude Code v2.1.248 o successivo; le versioni precedenti le eliminano dopo `cleanupPeriodDays`.

147 148 


153Claude Code salta la pulizia automatica basata sull'età in questi casi:154Claude Code salta la pulizia automatica basata sull'età in questi casi:

154 155 

155* **Modalità bare**: quando esegui `claude -p` con [`--bare`](https://code.claude.com/docs/it/headless#start-faster-with-bare-mode), Claude Code non esegue la pulizia automatica in quella sessione.156* **Modalità bare**: quando esegui `claude -p` con [`--bare`](https://code.claude.com/docs/it/headless#start-faster-with-bare-mode), Claude Code non esegue la pulizia automatica in quella sessione.

156* **Pulizia automatica sospesa**: se Claude Code non riesce a determinare in modo sicuro il periodo di conservazione, sospende la pulizia automatica di conservazione; l'[evento `retention_sweep`](https://code.claude.com/docs/it/monitoring-usage#retention-sweep-event) elenca ogni configurazione che la sospende. Quando la causa è un file di impostazioni che non può essere letto o analizzato, oppure errori nelle impostazioni con `cleanupPeriodDays` o `desktopSessionCleanupPeriodDays` impostati esplicitamente, Claude Code mostra anche un avviso in `/status` finché non correggi gli errori nelle impostazioni. Quando le [impostazioni gestite](https://code.claude.com/docs/it/server-managed-settings.md) forniscono `cleanupPeriodDays`, Claude Code esegue la pulizia automatica con il valore gestito in entrambi i casi.157* **Pulizia automatica sospesa**: se Claude Code non riesce a determinare in modo sicuro il periodo di conservazione, sospende la pulizia automatica; l'[evento `retention_sweep`](https://code.claude.com/docs/it/monitoring-usage#retention-sweep-event) elenca ogni configurazione che la sospende. Quando la causa è un file di impostazioni che non può essere letto o analizzato, oppure errori nelle impostazioni con `cleanupPeriodDays` o `desktopSessionCleanupPeriodDays` impostati, `/status` mostra un avviso finché non correggi la causa.

158 

159Quando le [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md) forniscono `cleanupPeriodDays`, Claude Code esegue la pulizia automatica con il valore gestito anche quando un file di impostazioni con priorità inferiore contiene errori.

157 160 

158Per verificare che le macchine della tua organizzazione eseguano la pulizia automatica con il periodo di conservazione che hai impostato, consulta [Verificare la pulizia automatica di conservazione](https://code.claude.com/docs/it/monitoring-usage.md#check-the-retention-sweep).161Per verificare che le macchine della tua organizzazione eseguano la pulizia automatica con il periodo di conservazione che hai impostato, consulta [Verificare la pulizia automatica di conservazione](https://code.claude.com/docs/it/monitoring-usage.md#check-the-retention-sweep).

159 162 

claude-projects.md +24 −26

Details

20 20 

21* **Invia il lavoro in un unico posto**: incolla una segnalazione di bug, una traccia dello stack, o un elenco di attività nella conversazione ogni volta che ne viene fuori una. Claude avvia un thread per ogni pezzo di lavoro o lo passa al thread già al lavoro in quell'area, e risponde a domande rapide sul posto.21* **Invia il lavoro in un unico posto**: incolla una segnalazione di bug, una traccia dello stack, o un elenco di attività nella conversazione ogni volta che ne viene fuori una. Claude avvia un thread per ogni pezzo di lavoro o lo passa al thread già al lavoro in quell'area, e risponde a domande rapide sul posto.

22* **Imposta il contesto una volta**: ogni nuovo thread inizia con le istruzioni del progetto, quindi una regola che dichiari una volta, come quale branch scegliere come target, raggiunge tutti loro.22* **Imposta il contesto una volta**: ogni nuovo thread inizia con le istruzioni del progetto, quindi una regola che dichiari una volta, come quale branch scegliere come target, raggiunge tutti loro.

23* **Allontanati e torna al lavoro finito**: quando torni un'ora dopo o la mattina successiva, il riquadro **Overview** mostra quali thread sono terminati, quali pull request sono pronte per la revisione, e quale thread sta aspettando la tua risposta.23* **Allontanati e torna al lavoro finito**: il riquadro Overview mostra quali thread sono terminati, quali pull request sono pronte per la revisione, e quale thread sta aspettando la tua risposta.

24 24 

25Se conosci già il lavoro che desideri che un progetto esegua, vai direttamente a [Crea un progetto](#create-a-project).25Se conosci già il lavoro che desideri che un progetto esegua, vai direttamente a [Crea un progetto](#create-a-project).

26 26 


28 28 

29Un progetto vale la pena crearlo quando il lavoro ha un obiettivo che va oltre una singola sessione e continua a generare attività. Questi tipi di lavoro si adattano bene a un progetto:29Un progetto vale la pena crearlo quando il lavoro ha un obiettivo che va oltre una singola sessione e continua a generare attività. Questi tipi di lavoro si adattano bene a un progetto:

30 30 

31* **Un obiettivo su molti repository**: "Portare ogni servizio alla nuova configurazione lint." Claude può eseguire un thread per repository, ognuno con la propria pull request, e il riquadro [**Overview**](#see-what-needs-you-in-overview) mostra quali sono pronti per la revisione.31* **Un obiettivo su molti repository**: "Portare ogni servizio alla nuova configurazione lint." Claude può eseguire un thread per repository, ognuno con la propria pull request, e il [riquadro Overview](#see-what-needs-you-in-overview) mostra quali sono pronti per la revisione.

32* **Un'area che continui ad alimentare**: i bug, le stack trace e le richieste di revisione per un servizio, incollati nella conversazione man mano che li ricevi. Un errore che dici a Claude di ricordare dopo una correzione è nella [memoria del progetto](#give-a-project-standing-context) per il prossimo.32* **Un'area che continui ad alimentare**: i bug, le stack trace e le richieste di revisione per un servizio, incollati nella conversazione man mano che li ricevi. Un errore che dici a Claude di ricordare dopo una correzione è nella [memoria del progetto](#give-a-project-standing-context) per il prossimo.

33* **Una build o migrazione più grande di una sessione**: "Costruisci quello che `docs/spec.md` descrive" o "Sposta l'app dal vecchio ORM deprecato." Il lavoro si divide in thread che affrontano ciascuno una parte, le decisioni che chiedi a Claude di ricordare all'inizio raggiungono i thread successivi, e le specifiche e i bug che trovi durante la build vanno nella stessa conversazione.33* **Una build o migrazione più grande di una sessione**: "Costruisci quello che `docs/spec.md` descrive" o "Sposta l'app dal vecchio ORM deprecato." Il lavoro si divide in thread che affrontano ciascuno una parte, le decisioni che chiedi a Claude di ricordare all'inizio raggiungono i thread successivi, e le specifiche e i bug che trovi durante la build vanno nella stessa conversazione.

34* **Lavoro che non è codice**: una cartella di contratti o un'esportazione di ticket di supporto a cui continui a tornare con nuove domande, come "trova i dieci errori di integrazione più comuni in questi ticket." Carica i documenti invece di aggiungere un repository, e i thread consegnano ogni relazione come file nella scheda [**Library**](#see-what-needs-you-in-overview) del progetto.34* **Lavoro che non è codice**: una cartella di contratti o un'esportazione di ticket di supporto su cui torni continuamente con nuove domande, come "trova i dieci errori di integrazione più comuni in questi ticket." Carica i documenti invece di aggiungere un repository, e i thread consegnano ogni resoconto come file nella [**Library**](#see-what-needs-you-in-overview) del progetto.

35 35 

36In ognuno di essi puoi inviare un batch di attività, dire a Claude di iniziare senza chiederti di confermare e allontanarti. Quando torni, puoi trovare i thread che hanno bisogno di te sotto [**Waiting on you**](#see-what-needs-you-in-overview). Puoi anche chiedere a Claude di pianificare parte del lavoro come [attività pianificata cloud](https://code.claude.com/docs/it/routines.md). Se una di queste è la tua situazione, [crea un progetto](#create-a-project).36In ognuno di essi puoi inviare un batch di attività, dire a Claude di iniziare senza chiederti di confermare e allontanarti. Quando torni, puoi trovare i thread che hanno bisogno di te sotto [**Waiting on you**](#see-what-needs-you-in-overview). Puoi anche chiedere a Claude di pianificare parte del lavoro come [attività pianificata cloud](https://code.claude.com/docs/it/routines.md). Se una di queste è la tua situazione, [crea un progetto](#create-a-project).

37 37 


57 * Il `CLAUDE.md` in [ogni repository del progetto](#what-threads-pick-up-from-your-repositories), ma non le skill, il `.claude/settings.json` o il `.mcp.json` dei repository57 * Il `CLAUDE.md` in [ogni repository del progetto](#what-threads-pick-up-from-your-repositories), ma non le skill, il `.claude/settings.json` o il `.mcp.json` dei repository

58 * I [connettori](#get-skills-plugins-connectors-and-tools-into-threads) sul tuo account claude.ai58 * I [connettori](#get-skills-plugins-connectors-and-tools-into-threads) sul tuo account claude.ai

59 * Un [ambiente cloud](#choose-an-environment-for-threads) che imposta il suo accesso di rete, le variabili d'ambiente, i segreti di rete e gli strumenti installati59 * Un [ambiente cloud](#choose-an-environment-for-threads) che imposta il suo accesso di rete, le variabili d'ambiente, i segreti di rete e gli strumenti installati

60* **Il riquadro Overview**: dove [vedi tutti i thread contemporaneamente](#see-what-needs-you-in-overview) e quali di loro hanno bisogno di te. Le sue altre schede sono **Library** per i file che hai aggiunto e i file che i thread hanno prodotto, **Pull requests** per quelle che i thread hanno aperto, e **Scheduled tasks** per il lavoro pianificato nel progetto.60* **Il riquadro Overview**: dove [vedi tutti i thread contemporaneamente](#see-what-needs-you-in-overview) e quali di loro hanno bisogno di te.

61 61 

62I thread cloud non raccolgono nulla dalla configurazione di Claude Code sulla tua macchina. [Ottieni skills, plugins, connectors e strumenti nei thread](#get-skills-plugins-connectors-and-tools-into-threads) spiega come dare loro quello che altrimenti mancherebbe.62I thread cloud non raccolgono nulla dalla configurazione di Claude Code sulla tua macchina. [Ottieni skills, plugins, connectors e strumenti nei thread](#get-skills-plugins-connectors-and-tools-into-threads) spiega come dare loro quello che altrimenti mancherebbe.

63 63 

64Ecco come queste parti si collegano, da te attraverso la conversazione ai thread che svolgono il lavoro, con **Overview** che traccia il loro stato:64Ecco come queste parti si collegano, da te attraverso la conversazione ai thread che svolgono il lavoro, con Overview che traccia il loro stato:

65 65 

66![Diagram of a project. You write in the project conversation, where Claude answers or starts a thread. Each cloud thread works on its own branch and pull request. The Overview pane lists threads by state, such as ready for review, waiting on you, and working.](https://mintcdn.com/claude-code/e8CLbxM17eD7cAiv/images/claude-projects-overview.svg?fit=max\&auto=format\&n=e8CLbxM17eD7cAiv\&q=85\&s=dbf446f69f0bbdb9961d21af207cb93b)66![Diagram of a project. You write in the project conversation, where Claude answers or starts a thread. Each cloud thread works on its own branch and pull request. The Overview pane lists threads by state, such as ready for review, waiting on you, and working.](https://mintcdn.com/claude-code/e8CLbxM17eD7cAiv/images/claude-projects-overview.svg?fit=max\&auto=format\&n=e8CLbxM17eD7cAiv\&q=85\&s=dbf446f69f0bbdb9961d21af207cb93b)

67 67 


96 96 

97* **Name**: come il project appare nell'elenco **Projects**.97* **Name**: come il project appare nell'elenco **Projects**.

98* **What do you want to work on?** (facoltativo): una riga che diventa l'obiettivo del project, come "Mantieni la latenza API p95 sotto 200 ms". Claude nella conversazione lavora verso di esso. Senza un obiettivo, Claude lavora dai compiti che invii, e puoi aggiungere un obiettivo in seguito in **Project settings > General**.98* **What do you want to work on?** (facoltativo): una riga che diventa l'obiettivo del project, come "Mantieni la latenza API p95 sotto 200 ms". Claude nella conversazione lavora verso di esso. Senza un obiettivo, Claude lavora dai compiti che invii, e puoi aggiungere un obiettivo in seguito in **Project settings > General**.

99* **Context** (facoltativo): i repository GitHub su cui questo project lavora, più eventuali file, cartelle o cartelle Google Drive che i thread dovrebbero leggere. Fai clic su **Add** per ognuno. Aggiungi i repository di cui la maggior parte dei compiti ha bisogno piuttosto che ogni uno che il lavoro potrebbe toccare; [Decidi quali repository aggiungere](#decide-which-repositories-to-add) copre la scelta, e puoi aggiungerne altri in seguito in **Project settings > Environment**.99* **Context** (facoltativo): i repository GitHub su cui questo project lavora, più eventuali file, cartelle o cartelle Google Drive che i thread dovrebbero leggere. Fai clic su **+** per ognuno. Aggiungi i repository di cui la maggior parte dei compiti ha bisogno piuttosto che ogni uno che il lavoro potrebbe toccare; [Decidi quali repository aggiungere](#decide-which-repositories-to-add) copre la scelta, e puoi aggiungerne altri in seguito in **Project settings > Environment**.

100 100 

101Le regole permanenti su come i thread dovrebbero funzionare vanno in [project instructions](#give-a-project-standing-context), che imposti dopo che il project esiste.101Le regole permanenti su come i thread dovrebbero funzionare vanno in [project instructions](#give-a-project-standing-context), che imposti dopo che il project esiste.

102 102 


109* Avviare un thread che esplora il repository senza cambiare nulla e propone i prossimi passi, se il project ha un repository che può leggere.109* Avviare un thread che esplora il repository senza cambiare nulla e propone i prossimi passi, se il project ha un repository che può leggere.

110* Pubblicare **Setup recommendations** tratte dalle tue recenti sessioni cloud: repository da aggiungere, attività pianificate da creare e thread che potrebbe avviare. Ogni repository e attività pianificata consigliati iniziano attivati. Disattiva quelli che non vuoi, quindi fai clic su **Update setup** per aggiungere il resto, o ignora le raccomandazioni e descrivi il lavoro da solo.110* Pubblicare **Setup recommendations** tratte dalle tue recenti sessioni cloud: repository da aggiungere, attività pianificate da creare e thread che potrebbe avviare. Ogni repository e attività pianificata consigliati iniziano attivati. Disattiva quelli che non vuoi, quindi fai clic su **Update setup** per aggiungere il resto, o ignora le raccomandazioni e descrivi il lavoro da solo.

111 111 

112Il project è ora elencato sotto **Projects** nella barra laterale, e la sua conversazione è aperta. [Il tuo primo batch](#your-first-batch) copre cosa configurare prima di inviargli il lavoro.112Il project è ora nella barra laterale, e la sua conversazione è aperta. [Il tuo primo batch](#your-first-batch) copre cosa configurare prima di inviargli il lavoro.

113 113 

114### Avvia da una sessione esistente114### Avvia da una sessione esistente

115 115 


168 168 

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

170 170 

171I risultati completi di un thread rimangono nel thread e apri la sua card nella conversazione per leggerli. I file che un thread ha prodotto sono anche nella scheda **Library** in **Overview**.171I risultati completi di un thread rimangono nel thread e apri la sua card nella conversazione per leggerli. I file che un thread ha prodotto si trovano anche nella [**Library**](#see-what-needs-you-in-overview) del progetto.

172 172 

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

174 174 


190 190 

191### Vedi cosa ha bisogno di te in Overview191### Vedi cosa ha bisogno di te in Overview

192 192 

193Il riquadro **Overview** accanto alla conversazione traccia i thread del progetto. È già aperto la prima volta che apri un nuovo progetto. Il pulsante **Overview** nell'intestazione del progetto lo chiude e lo riapre, e mostra un punto quando un thread è in attesa di te.193Il riquadro Overview accanto alla conversazione traccia i thread del progetto. È già aperto la prima volta che apri un nuovo progetto. Per riaprirlo dopo averlo chiuso, fai clic sul pulsante **Threads** nell'intestazione del progetto. Il pulsante mostra un punto quando un thread è in attesa di te.

194 194 

195Nell'app desktop, ricevi anche una notifica desktop quando Claude pubblica nella conversazione, un thread raggiunge un errore, o un thread ha bisogno del tuo input, così non devi tenere il progetto aperto per scoprirlo. Per riceverne una anche ogni volta che un thread finisce un turno, o per disattivarle per un progetto, scegli **Notifications** nel menu della barra laterale del progetto. Queste notifiche sono solo desktop: in un browser, controlla il punto sul pulsante **Overview**.195Nell'app desktop, per impostazione predefinita appare una notifica quando Claude pubblica nella conversazione, un thread incontra un errore o un thread ha bisogno del tuo input. Non ne appare nessuna mentre stai visualizzando il progetto. Per riceverne una anche ogni volta che un thread finisce un turno, o per disattivarle per un progetto, scegli **Notifications** nel menu della barra laterale del progetto. In un browser, controlla il punto sul pulsante **Threads**.

196 196 

197La scheda **Threads** del riquadro raggruppa i thread per stato:197La vista **Threads** del riquadro raggruppa i thread per stato:

198 198 

199| Gruppo | Cosa contiene |199| Gruppo | Cosa contiene |

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


205| **Idle** | Thread che hanno finito e non sono in attesa di nulla |205| **Idle** | Thread che hanno finito e non sono in attesa di nulla |

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

207 207 

208Le altre schede del riquadro sono:208Apri i file e le attività pianificate del progetto nel riquadro dall'intestazione del progetto:

209 209 

210* **Library**: i file e le cartelle che hai aggiunto e i file che i thread hanno prodotto210* **Library**: i file e le cartelle che hai aggiunto e i file che i thread hanno prodotto. Fai clic sul pulsante **Library** accanto a **Threads**.

211* **Pull requests**: mostrata una volta che i thread ne hanno aperte211* **Scheduled tasks**: le [attività pianificate cloud](https://code.claude.com/docs/it/routines.md) che Claude ha configurato da questo progetto. Selezionalo nel menu **⋯** dell'intestazione.

212* **Scheduled tasks**: le [attività pianificate cloud](https://code.claude.com/docs/it/routines.md) che Claude ha configurato da questo progetto

213 212 

214### Apri un thread quando hai bisogno di controllo213### Apri un thread quando hai bisogno di controllo

215 214 

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

217 216 

218* Leggere cosa ha fatto Claude, passo dopo passo.217* Leggere cosa ha fatto Claude, passo dopo passo.

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


290| :- | :- | :- |289| :- | :- | :- |

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

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

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

294 293 

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

296 295 

297### Scrivi le istruzioni del progetto296### Scrivi le istruzioni del progetto

298 297 

299Le istruzioni del progetto sono il briefing da cui ogni nuovo thread inizia. Fai clic sull'icona dell'ingranaggio nell'intestazione del progetto per aprire **Project settings**, quindi vai a **Memory > Project instructions**. Un briefing utile copre:298Le istruzioni del progetto sono il briefing da cui ogni nuovo thread inizia. Seleziona **Settings** nel menu **⋯** nell'intestazione del progetto per aprire **Project settings**, quindi vai a **Memory > Project instructions**. Un briefing utile copre:

300 299 

301* A cosa serve il progetto300* A cosa serve il progetto

302* Dove avviene il lavoro: quali repository, da quale branch iniziare, come denominare le pull request301* Dove avviene il lavoro: quali repository, da quale branch iniziare, come denominare le pull request


324* **Aggiungilo al progetto**, nella finestra di dialogo **New project**, in **Project settings > Environment**, oppure chiedendo a Claude nella conversazione di aggiungerlo al progetto. Ogni thread cloud da quel momento in poi lo clona e inizia con il suo `CLAUDE.md` caricato, indipendentemente dal fatto che il compito lo tocchi o meno.323* **Aggiungilo al progetto**, nella finestra di dialogo **New project**, in **Project settings > Environment**, oppure chiedendo a Claude nella conversazione di aggiungerlo al progetto. Ogni thread cloud da quel momento in poi lo clona e inizia con il suo `CLAUDE.md` caricato, indipendentemente dal fatto che il compito lo tocchi o meno.

325* **Lascialo fuori e lascia che i thread lo aggiungano quando necessario.** Un thread cloud il cui compito richiede un repository che il progetto non ha può aggiungerlo a se stesso, e una nota nel thread dice che è stato aggiunto solo a questo thread. Il clone avviene a metà del compito, quindi il `CLAUDE.md` di quel repository non era presente quando il thread è iniziato. Il thread successivo inizia senza di esso. Un repository aggiunto in questo modo ha bisogno degli stessi [prerequisiti](#check-the-prerequisites) di un repository del progetto: l'app GitHub di Claude installata su di esso e accesso push dal tuo account GitHub.324* **Lascialo fuori e lascia che i thread lo aggiungano quando necessario.** Un thread cloud il cui compito richiede un repository che il progetto non ha può aggiungerlo a se stesso, e una nota nel thread dice che è stato aggiunto solo a questo thread. Il clone avviene a metà del compito, quindi il `CLAUDE.md` di quel repository non era presente quando il thread è iniziato. Il thread successivo inizia senza di esso. Un repository aggiunto in questo modo ha bisogno degli stessi [prerequisiti](#check-the-prerequisites) di un repository del progetto: l'app GitHub di Claude installata su di esso e accesso push dal tuo account GitHub.

326 325 

327Un progetto non ha bisogno di un repository affatto. I suoi thread cloud possono comunque fare ricerche, scrivere documenti e scrivere ed eseguire codice nella propria sandbox, e consegnano file alla scheda **Library**. Ognuno dei suoi thread cloud può comunque aggiungere un repository a se stesso quando un compito lo richiede.326Un progetto non ha bisogno di un repository affatto. I suoi thread cloud possono comunque fare ricerche, scrivere documenti e scrivere ed eseguire codice nella propria sandbox. Consegnano file alla **Library** del progetto. Ognuno dei suoi thread cloud può comunque aggiungere un repository a se stesso quando un compito lo richiede.

328 327 

329Una volta che il progetto ha repository, Claude può aggiungere solo repository da un proprietario GitHub che il progetto già utilizza, sia che ne aggiunga uno al progetto sia che un thread ne aggiunga uno a se stesso. Per portare un repository da un proprietario diverso, aggiungilo tu stesso al progetto in **Project settings > Environment**.328Una volta che il progetto ha repository, Claude può aggiungere solo repository da un proprietario GitHub che il progetto già utilizza, sia che ne aggiunga uno al progetto sia che un thread ne aggiunga uno a se stesso. Per portare un repository da un proprietario diverso, aggiungilo tu stesso al progetto in **Project settings > Environment**.

330 329 


332 331 

333### Aggiungi file e cartelle332### Aggiungi file e cartelle

334 333 

335Aggiungi i file e le cartelle che desideri che i thread leggano nel campo **Context** della finestra di dialogo **New project**, oppure successivamente con **Add** nella scheda **Library** in **Overview**. Questi limiti si applicano a ciò che aggiungi:334Aggiungi i file e le cartelle che desideri che i thread leggano nel campo **Context** della finestra di dialogo **New project**, oppure successivamente con **Add** nella [**Library**](#see-what-needs-you-in-overview) del progetto. Questi limiti si applicano a ciò che aggiungi:

336 335 

337* **Scheda Library**: fino a 100 file e 2 GB in una selezione, con un singolo file fino a 480 MB.336* **File che carichi su claude.ai/code o nell'app desktop**: fino a 1.000 file e 2 GB alla volta, con un singolo file fino a 480 MB.

338* **Finestra di dialogo New project**: i file superiori a 30 MB vengono saltati, quindi aggiungi file più grandi dalla scheda **Library** dopo aver creato il progetto.337* **Cartelle che carichi**: i file nascosti e `node_modules` non vengono aggiunti. Un progetto contiene fino a 10 cartelle e cartelle Google Drive combinate, e i singoli file non contano verso quel limite.

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

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

341 339 

342### Cosa i thread prendono dai tuoi repository340### Cosa i thread prendono dai tuoi repository


373 371 

374## Riferimento delle impostazioni del project372## Riferimento delle impostazioni del project

375 373 

376Cambi le impostazioni del project su claude.ai/code o nell'app desktop, non in `settings.json`. Apri **Project settings** da **Settings** nel menu della barra laterale del project o dall'icona dell'ingranaggio nell'intestazione del project.374Cambi le impostazioni del project su claude.ai/code o nell'app desktop, non in `settings.json`. Apri **Project settings** da **Settings** nel menu della barra laterale del project o nel menu **⋯** dell'intestazione del project.

377 375 

378Le impostazioni vengono salvate mentre le modifichi; un campo di testo che stai modificando, come l'obiettivo o le istruzioni, mostra **Save changes** e **Discard** finché non lo lasci. Le modifiche alle istruzioni, ai repository, ai plugin e all'ambiente in **Project settings** raggiungono i nuovi thread, non i thread già in esecuzione.376Le impostazioni vengono salvate mentre le modifichi; un campo di testo che stai modificando, come l'obiettivo o le istruzioni, mostra **Save changes** e **Discard** finché non lo lasci. Le modifiche alle istruzioni, ai repository, ai plugin e all'ambiente in **Project settings** raggiungono i nuovi thread, non i thread già in esecuzione.

379 377 


434 432 

435 I project sono disponibili su Pro, Max e Ultra. Un project è solo tuo: sei l'unico che gli invia lavoro o vede i suoi thread, e usa il tuo accesso GitHub e i tuoi connettori. [Come Claude Tag differisce da Cowork e Claude Code](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code) ha il confronto fianco a fianco.433 I project sono disponibili su Pro, Max e Ultra. Un project è solo tuo: sei l'unico che gli invia lavoro o vede i suoi thread, e usa il tuo accesso GitHub e i tuoi connettori. [Come Claude Tag differisce da Cowork e Claude Code](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code) ha il confronto fianco a fianco.

436* **Sessioni cloud**: ogni thread è una [sessione cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md) a meno che non chiedi a Claude di eseguirla sulla tua macchina. In entrambi i casi, Claude la avvia e la traccia invece di te. Puoi anche portare in un project il lavoro di una sessione cloud che hai avviato da solo: scegli [**Continue in project**](#start-from-an-existing-cloud-session) nel menu della barra laterale di quella sessione.434* **Sessioni cloud**: ogni thread è una [sessione cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md) a meno che non chiedi a Claude di eseguirla sulla tua macchina. In entrambi i casi, Claude la avvia e la traccia invece di te. Puoi anche portare in un project il lavoro di una sessione cloud che hai avviato da solo: scegli [**Continue in project**](#start-from-an-existing-cloud-session) nel menu della barra laterale di quella sessione.

437* **Attività pianificate**: quando chiedi lavoro pianificato in un project, Claude crea un'[attività pianificata cloud](https://code.claude.com/docs/it/routines.md) che viene eseguita come thread in quel project e appare nella sua scheda **Scheduled tasks**. Le attività pianificate che crei al di fuori di un project continuano a funzionare da sole.435* **Attività pianificate**: quando chiedi lavoro pianificato in un project, Claude crea un'[attività pianificata cloud](https://code.claude.com/docs/it/routines.md) che viene eseguita come thread in quel project e appare nella sua vista **Scheduled tasks**. Le attività pianificate che crei al di fuori di un project continuano a funzionare da sole.

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

439* **Sessioni locali e agent view**: una sessione che avvii da solo nel tuo terminale, IDE o nell'ambiente locale dell'app desktop rimane al di fuori dei tuoi project, anche se puoi [portarne il lavoro in uno di essi](#start-from-an-existing-cloud-session). [Agent view](https://code.claude.com/docs/it/agent-view.md) è una schermata per tracciare diverse sessioni locali fianco a fianco, e tu avvii ancora ognuna e le dai il suo compito da solo.437* **Sessioni locali e agent view**: una sessione che avvii da solo nel tuo terminale, IDE o nell'ambiente locale dell'app desktop rimane al di fuori dei tuoi project, anche se puoi [portarne il lavoro in uno di essi](#start-from-an-existing-cloud-session). [Agent view](https://code.claude.com/docs/it/agent-view.md) è una schermata per tracciare diverse sessioni locali fianco a fianco, e tu avvii ancora ognuna e le dai il suo compito da solo.

440* **Worktree**: un [worktree](https://code.claude.com/docs/it/worktrees.md) dà a ogni sessione locale la sua copia di lavoro di un repository. I thread cloud non ne hanno bisogno: ognuno clona i suoi repository nella sua sandbox cloud e lavora sul suo branch.438* **Worktree**: un [worktree](https://code.claude.com/docs/it/worktrees.md) dà a ogni sessione locale la sua copia di lavoro di un repository. I thread cloud non ne hanno bisogno: ognuno clona i suoi repository nella sua sandbox cloud e lavora sul suo branch.


466Quando più thread tornano avendo assunto qualcosa di sbagliato, hanno aggirato l'accesso mancante o si sono fermati con "bloccato", la causa di solito è lo stesso gap nella configurazione del project piuttosto che un problema con ogni compito. Ordina quali thread sono solidi prima di correggere qualsiasi cosa:464Quando più thread tornano avendo assunto qualcosa di sbagliato, hanno aggirato l'accesso mancante o si sono fermati con "bloccato", la causa di solito è lo stesso gap nella configurazione del project piuttosto che un problema con ogni compito. Ordina quali thread sono solidi prima di correggere qualsiasi cosa:

467 465 

4681. Chiedi a Claude nella conversazione: "Per ogni thread aperto, elenca quello che gli hai chiesto di fare, cosa ha assunto o non poteva raggiungere e cosa sta aspettando." Claude legge ogni thread e risponde nella conversazione.4661. Chiedi a Claude nella conversazione: "Per ogni thread aperto, elenca quello che gli hai chiesto di fare, cosa ha assunto o non poteva raggiungere e cosa sta aspettando." Claude legge ogni thread e risponde nella conversazione.

4692. Per i thread che hanno iniziato da un'assunzione sbagliata, apri il thread da **Overview** e contrassegnalo come risolto dal suo menu, o digli cosa fare invece nella sua casella di messaggio. Il suo branch e qualsiasi pull request rimangono su GitHub finché non li elimini.4672. Per i thread che hanno iniziato da un'assunzione sbagliata, apri il thread da Overview e contrassegnalo come risolto dal suo menu, o digli cosa fare invece. Il suo branch e qualsiasi pull request rimangono su GitHub finché non li elimini.

4703. Correggi il gap una volta, nelle [istruzioni del project](#give-a-project-standing-context) o nell'[ambiente](#choose-an-environment-for-threads), quindi invia un thread prima di inviare il resto del lavoro di nuovo come nuovi thread.4683. Correggi il gap una volta, nelle [istruzioni del project](#give-a-project-standing-context) o nell'[ambiente](#choose-an-environment-for-threads), quindi invia un thread prima di inviare il resto del lavoro di nuovo come nuovi thread.

471 469 

472### Claude non ha risposto470### Claude non ha risposto

Details

71 71 

72**2. Scegli cosa scansionare**72**2. Scegli cosa scansionare**

73 73 

74Il plugin legge prima il tuo repository, quindi offre l'intero repository o un'area focalizzata, con il conteggio dei file e il costo relativo di ogni opzione indicati. Scegli l'intero repository, oppure rispondi "I don't know" e il plugin sceglie un valore predefinito sensato per la dimensione del tuo repository.74Il plugin legge prima il tuo repository, quindi offre l'intero repository o un'area focalizzata. Scegli l'intero repository, oppure rispondi "I don't know" e il plugin sceglie un valore predefinito sensato per la dimensione del tuo repository.

75 75 

76**3. Conferma l'esecuzione**76**3. Conferma l'esecuzione**

77 77 


79 79 

80**4. Leggi il rapporto**80**4. Leggi il rapporto**

81 81 

82Mentre la scansione viene eseguita, segnala ogni fase mentre inizia, con i dettagli disponibili in [`/workflows`](https://code.claude.com/docs/it/workflows). I risultati si trovano in una directory con timestamp nel tuo repository, descritta in [Leggi i risultati della scansione](#read-the-scan-results).82Mentre la scansione viene eseguita, segnala ogni fase mentre inizia, con i dettagli disponibili in [`/workflows`](https://code.claude.com/docs/it/workflows). I risultati vengono scritti in una directory con timestamp nel tuo repository, descritta in [Leggi i risultati della scansione](#read-the-scan-results).

83 83 

84**5. Trasforma i risultati in patch**84**5. Trasforma i risultati in patch**

85 85 

86Esegui `/claude-security` di nuovo e scegli **Suggest patches**, quindi scegli quali risultati affrontare. Le patch esaminate si trovano nella cartella `patches/` del rapporto; [Correggi i risultati](#fix-findings) spiega come ogni patch viene costruita ed esaminata.86Esegui `/claude-security` di nuovo e scegli **Suggest patches**, quindi scegli quali risultati affrontare. Le patch esaminate vengono scritte nella cartella `patches/` del rapporto; [Correggi i risultati](#fix-findings) spiega come ogni patch viene costruita ed esaminata.

87 87 

88**6. Applica le patch che accetti**88**6. Applica le patch che accetti**

89 89 


95 95 

96Quando il tuo branch ha commit che la base non ha, il menu `/claude-security` offre di scansionare solo quel diff, così puoi controllare un branch prima di unirlo. Puoi anche scansionare una delle tue pull request aperte, o un singolo commit chiedendolo, come "scan commit abc1234". Vengono scansionate solo le modifiche committate: esegui prima il commit o lo stash delle modifiche in corso, oppure esegui una scansione completa, che legge l'albero di lavoro.96Quando il tuo branch ha commit che la base non ha, il menu `/claude-security` offre di scansionare solo quel diff, così puoi controllare un branch prima di unirlo. Puoi anche scansionare una delle tue pull request aperte, o un singolo commit chiedendolo, come "scan commit abc1234". Vengono scansionate solo le modifiche committate: esegui prima il commit o lo stash delle modifiche in corso, oppure esegui una scansione completa, che legge l'albero di lavoro.

97 97 

98Le scansioni di modifiche richiedono un repository git; le scansioni complete di una directory senza versione funzionano comunque. Trovare le tue pull request aperte è l'unico passaggio che raggiunge la rete, ed è offerto solo quando la tua sessione ha già il permesso di eseguire la CLI di GitHub e `gh` è connesso.98Le scansioni di modifiche richiedono un repository git; le scansioni complete di una directory senza versione funzionano comunque. Trovare le tue pull request aperte è offerto solo quando la tua sessione ha già il permesso di eseguire la CLI di GitHub e `gh` è connesso.

99 99 

100### Delimita i repository di grandi dimensioni100### Delimita i repository di grandi dimensioni

101 101 


120* **`CLAUDE-SECURITY-RESULTS.md`**: il rapporto, con l'ID di ogni risultato, come `F1`, più il suo impatto, lo scenario di exploit, la gravità, la confidenza e la raccomandazione120* **`CLAUDE-SECURITY-RESULTS.md`**: il rapporto, con l'ID di ogni risultato, come `F1`, più il suo impatto, lo scenario di exploit, la gravità, la confidenza e la raccomandazione

121* **`CLAUDE-SECURITY-RESULTS.jsonl`**: gli stessi risultati in forma leggibile da macchina, un oggetto JSON per riga121* **`CLAUDE-SECURITY-RESULTS.jsonl`**: gli stessi risultati in forma leggibile da macchina, un oggetto JSON per riga

122* **`CLAUDE-SECURITY-RESULTS.sarif`**: gli stessi risultati come un log [SARIF 2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html) per la scansione del codice GitHub e qualsiasi altro strumento che legge lo standard. La scansione classifica i risultati secondo le loro categorie di debolezza [CWE](https://cwe.mitre.org/)122* **`CLAUDE-SECURITY-RESULTS.sarif`**: gli stessi risultati come un log [SARIF 2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html) per la scansione del codice GitHub e qualsiasi altro strumento che legge lo standard. La scansione classifica i risultati secondo le loro categorie di debolezza [CWE](https://cwe.mitre.org/)

123* **`CLAUDE-SECURITY-REVISION-<commit>.json`**: il timbro di revisione, che registra quale commit è stato scansionato, con quale [sforzo di scansione](#choose-a-scan-effort), se le modifiche non sottoposte a commit facevano parte dell'albero scansionato e quanto accuratamente l'esecuzione è stata verificata, così un rapporto è sempre legato al codice che descrive. Una scansione al di fuori del controllo versione timbra `UNVERSIONED` al posto del commit123* **`CLAUDE-SECURITY-REVISION-<commit>.json`**: il timbro di revisione, che registra quale commit è stato scansionato, con quale [sforzo di scansione](#choose-a-scan-effort), se le modifiche non sottoposte a commit facevano parte dell'albero scansionato e quanto accuratamente l'esecuzione è stata verificata. Una scansione al di fuori del controllo versione timbra `UNVERSIONED` al posto del commit

124 124 

125Quella directory è l'unica modifica che una scansione apporta al tuo checkout, e ha il suo `.gitignore`, così un `git add` casuale non spazza mai un rapporto in un commit. Per mantenere un rapporto nella cronologia per un audit trail, elimina quel singolo file `.gitignore` e esegui il commit della directory come qualsiasi altro.125Quella directory è l'unica modifica che una scansione apporta al tuo checkout, e ha il suo `.gitignore`, così un `git add` casuale non spazza mai un rapporto in un commit. Per mantenere un rapporto nella cronologia per un audit trail, elimina quel singolo file `.gitignore` e esegui il commit della directory come qualsiasi altro.

126 126 

127I risultati appaiono nel rapporto solo dopo che gli agenti verificatori indipendenti li analizzano, il che mantiene i rapporti brevi e degni di lettura. Le scansioni sono non deterministiche: due scansioni dello stesso codice possono far emergere risultati diversi. Esegui scansioni regolarmente e utilizza i timbri di revisione per attribuire ogni rapporto al codice esatto e alle impostazioni che ha coperto.127I risultati appaiono nel rapporto solo dopo che gli agenti verificatori indipendenti li analizzano, il che mantiene i rapporti brevi e degni di lettura. Le scansioni sono non deterministiche: due scansioni dello stesso codice possono far emergere risultati diversi. Esegui scansioni regolarmente.

128 128 

129## Correggi i risultati129## Correggi i risultati

130 130 

Details

102* **Ruolo**: su ogni piano, puoi aggiungere ed eliminare segreti nei tuoi ambienti qualunque sia il tuo ruolo. Su Team ed Enterprise, gli Owner detengono un ruolo di amministratore dell'organizzazione nella tua organizzazione claude.ai e gli Admin no, il che cambia ciò che vedi in questi casi:102* **Ruolo**: su ogni piano, puoi aggiungere ed eliminare segreti nei tuoi ambienti qualunque sia il tuo ruolo. Su Team ed Enterprise, gli Owner detengono un ruolo di amministratore dell'organizzazione nella tua organizzazione claude.ai e gli Admin no, il che cambia ciò che vedi in questi casi:

103 * **Il tuo ambiente**: senza un ruolo di amministratore dell'organizzazione, **Add secret** apre un [modulo più breve](#add-a-secret-without-the-role)103 * **Il tuo ambiente**: senza un ruolo di amministratore dell'organizzazione, **Add secret** apre un [modulo più breve](#add-a-secret-without-the-role)

104 * **Un ambiente condiviso**: gli Owner [aggiungono ed eliminano i suoi segreti](#add-a-credential) dalle impostazioni di amministrazione. Senza un ruolo di amministratore dell'organizzazione, chiedi a un Owner di aggiungere il segreto, perché la finestra di dialogo dell'ambiente non ha una sezione **Network secrets**104 * **Un ambiente condiviso**: gli Owner [aggiungono ed eliminano i suoi segreti](#add-a-credential) dalle impostazioni di amministrazione. Senza un ruolo di amministratore dell'organizzazione, chiedi a un Owner di aggiungere il segreto, perché la finestra di dialogo dell'ambiente non ha una sezione **Network secrets**

105* **Tipo di ambiente**: un ambiente cloud ospitato da Anthropic che esiste già. Un [ambiente self-hosted](https://code.claude.com/docs/it/self-hosted-environments) non ha segreti di rete105* **Tipo di ambiente**: un ambiente cloud ospitato da Anthropic. Un [ambiente self-hosted](https://code.claude.com/docs/it/self-hosted-environments) non ha segreti di rete

106* **Raggiungibilità API**: l'API accetta connessioni da internet, perché le richieste escono dalla rete di Anthropic106* **Raggiungibilità API**: l'API accetta connessioni da internet, perché le richieste escono dalla rete di Anthropic

107* **Chiavi di crittografia**: se la tua organizzazione utilizza chiavi di crittografia gestite dal cliente, non puoi salvare segreti di rete107* **Chiavi di crittografia**: se la tua organizzazione utilizza chiavi di crittografia gestite dal cliente, non puoi salvare segreti di rete

108 108 

Details

14>14>

15> Per far revisionare automaticamente su GitHub ogni pull request di un repository, consulta [Code Review](https://code.claude.com/docs/it/code-review.md), un servizio gestito che un Owner attiva per la tua organizzazione.15> Per far revisionare automaticamente su GitHub ogni pull request di un repository, consulta [Code Review](https://code.claude.com/docs/it/code-review.md), un servizio gestito che un Owner attiva per la tua organizzazione.

16 16 

17`/review` è un alias di `/code-review`. Prima della v2.1.223, `/review` era un comando separato che eseguiva una revisione a passaggio singolo e di sola lettura di una pull request GitHub.17`/review` è un alias di `/code-review`.

18 18 

19**1. Esegui /code-review**19**1. Esegui /code-review**

20 20 


91* **`ultra`**: la revisione non usa né aggiorna il livello memorizzato91* **`ultra`**: la revisione non usa né aggiorna il livello memorizzato

92* **Nessun livello mai digitato**: la revisione usa lo sforzo corrente della sessione92* **Nessun livello mai digitato**: la revisione usa lo sforzo corrente della sessione

93 93 

94Prima della v2.1.223, un `/code-review` senza livello usava sempre lo sforzo corrente della sessione.

95 

96### Pubblica i risultati su una merge request GitLab94### Pubblica i risultati su una merge request GitLab

97 95 

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

commands.md +2 −2

Details

104| `/install-github-app` | Installa la Claude GitHub App per un repository, con un passaggio facoltativo per configurare i workflow e i secret di [GitHub Actions](https://code.claude.com/docs/it/github-actions.md). Ti guida nella selezione di un repository e nella configurazione dell'integrazione. Funziona solo con i repository github.com. Quando il remote git del tuo repository si trova su gitlab.com o bitbucket.org, il comando stampa un avviso ed esce invece di avviare la configurazione. Per eseguire Claude Code dalle pipeline GitLab, consulta [GitLab CI/CD](https://code.claude.com/docs/it/gitlab-ci-cd.md) |104| `/install-github-app` | Installa la Claude GitHub App per un repository, con un passaggio facoltativo per configurare i workflow e i secret di [GitHub Actions](https://code.claude.com/docs/it/github-actions.md). Ti guida nella selezione di un repository e nella configurazione dell'integrazione. Funziona solo con i repository github.com. Quando il remote git del tuo repository si trova su gitlab.com o bitbucket.org, il comando stampa un avviso ed esce invece di avviare la configurazione. Per eseguire Claude Code dalle pipeline GitLab, consulta [GitLab CI/CD](https://code.claude.com/docs/it/gitlab-ci-cd.md) |

105| `/install-slack-app` | Installa l'app Claude per Slack. Apre un browser per completare il flusso OAuth |105| `/install-slack-app` | Installa l'app Claude per Slack. Apre un browser per completare il flusso OAuth |

106| `/keybindings` | Apre il file delle tue [scorciatoie da tastiera](https://code.claude.com/docs/it/keybindings.md) |106| `/keybindings` | Apre il file delle tue [scorciatoie da tastiera](https://code.claude.com/docs/it/keybindings.md) |

107| `/list-agents` | Elenca i subagent, i compagni del [team di agenti](https://code.claude.com/docs/it/agent-teams.md) e le altre sessioni di Claude Code a cui Claude può inviare messaggi, con il nome da usare per ciascuno. Consulta [messaggistica tra sessioni](https://code.claude.com/docs/it/cross-session-messaging.md). Disponibile anche come `/peers`. Richiede Claude Code v2.1.224 o successiva; le versioni precedenti riportano `Unknown command: /list-agents`. Le righe dei compagni di team e la prima riga che mostra il nome di questa sessione richiedono la v2.1.239 o successiva. Disponibile solo nelle sessioni in cui [la messaggistica tra sessioni è abilitata](https://code.claude.com/docs/it/cross-session-messaging.md#availability) |107| `/list-agents` | Elenca i subagent, i compagni del [team di agenti](https://code.claude.com/docs/it/agent-teams.md) e le altre sessioni di Claude Code a cui Claude può inviare messaggi, con il nome da usare per ciascuno. Consulta [messaggistica tra sessioni](https://code.claude.com/docs/it/cross-session-messaging.md). Disponibile anche come `/peers`. Le righe dei compagni di team e la prima riga che mostra il nome di questa sessione richiedono la v2.1.239 o successiva. Disponibile solo nelle sessioni in cui [la messaggistica tra sessioni è abilitata](https://code.claude.com/docs/it/cross-session-messaging.md#availability) |

108| `/login` | Accede al tuo account Anthropic |108| `/login` | Accede al tuo account Anthropic |

109| `/logout` | Esce dal tuo account Anthropic |109| `/logout` | Esce dal tuo account Anthropic |

110| `/loop [interval] [prompt]` | **[Skill](https://code.claude.com/docs/it/skills.md#bundled-skills).** Esegue ripetutamente un prompt finché la sessione rimane aperta. Ometti l'intervallo e Claude [regola autonomamente il ritmo tra le iterazioni](https://code.claude.com/docs/it/scheduled-tasks.md#let-claude-choose-the-interval). Ometti il prompt e Claude esegue il [prompt di manutenzione integrato](https://code.claude.com/docs/it/scheduled-tasks.md#run-the-built-in-maintenance-prompt) o il tuo [`loop.md`](https://code.claude.com/docs/it/scheduled-tasks#customize-the-default-prompt-with-loop-md). Esempio: `/loop 5m check if the deploy finished`. Consulta [Eseguire prompt in base a una pianificazione](https://code.claude.com/docs/it/scheduled-tasks.md). Alias: `/proactive` |110| `/loop [interval] [prompt]` | **[Skill](https://code.claude.com/docs/it/skills.md#bundled-skills).** Esegue ripetutamente un prompt finché la sessione rimane aperta. Ometti l'intervallo e Claude [regola autonomamente il ritmo tra le iterazioni](https://code.claude.com/docs/it/scheduled-tasks.md#let-claude-choose-the-interval). Ometti il prompt e Claude esegue il [prompt di manutenzione integrato](https://code.claude.com/docs/it/scheduled-tasks.md#run-the-built-in-maintenance-prompt) o il tuo [`loop.md`](https://code.claude.com/docs/it/scheduled-tasks#customize-the-default-prompt-with-loop-md). Esempio: `/loop 5m check if the deploy finished`. Consulta [Eseguire prompt in base a una pianificazione](https://code.claude.com/docs/it/scheduled-tasks.md). Alias: `/proactive` |


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

133| `/restart` | Riavvia Claude Code e riprende questa sessione, applicando così un aggiornamento installato. Eseguilo quando il piè di pagina lo propone dopo l'installazione di un aggiornamento. Richiede un piano Pro, Max o Ultra e un'installazione nativa su macOS o Linux, non WSL. Richiede Claude Code v2.1.288 o successiva. Alias: `/update` |133| `/restart` | Riavvia Claude Code e riprende questa sessione, applicando così un aggiornamento installato. Eseguilo quando il piè di pagina lo propone dopo l'installazione di un aggiornamento. Richiede un piano Pro, Max o Ultra e un'installazione nativa su macOS o Linux, non WSL. Richiede Claude Code v2.1.288 o successiva. Alias: `/update` |

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

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

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

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

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

costs.md +6 −6

Details

292 292 

293Gli [hook](https://code.claude.com/docs/it/hooks.md) personalizzati possono pre-elaborare i dati prima che Claude li veda. Invece di Claude che legge un file di log di 10.000 righe per trovare errori, un hook può cercare `ERROR` e restituire solo le righe corrispondenti, riducendo il contesto da decine di migliaia di token a centinaia.293Gli [hook](https://code.claude.com/docs/it/hooks.md) personalizzati possono pre-elaborare i dati prima che Claude li veda. Invece di Claude che legge un file di log di 10.000 righe per trovare errori, un hook può cercare `ERROR` e restituire solo le righe corrispondenti, riducendo il contesto da decine di migliaia di token a centinaia.

294 294 

295Una [skill](https://code.claude.com/docs/it/skills.md) può dare a Claude la conoscenza del dominio in modo che non debba esplorare. Ad esempio, una skill "codebase-overview" potrebbe descrivere l'architettura del tuo progetto, le directory chiave e le convenzioni di denominazione. Quando Claude invoca la skill, ottiene questo contesto immediatamente invece di spendere token leggendo più file per comprendere la struttura.295Questo hook PreToolUse riduce l'output dei test alle sue ultime 100 righe:

296 

297Ad esempio, questo hook PreToolUse filtra l'output del test per mostrare solo i fallimenti:

298 296 

299> [tab] settings.json297> [tab] settings.json

300>298>


320 318 

321> [tab] filter-test-output.sh319> [tab] filter-test-output.sh

322>320>

323> L'hook chiama questo script. Crea la cartella con `mkdir -p ~/.claude/hooks`, salva lo script sottostante come `~/.claude/hooks/filter-test-output.sh` e rendilo eseguibile con `chmod +x ~/.claude/hooks/filter-test-output.sh`. Controlla se il comando è un test runner e lo modifica per mostrare solo i fallimenti:321> L'hook chiama questo script. Crea la cartella con `mkdir -p ~/.claude/hooks`, salva lo script sottostante come `~/.claude/hooks/filter-test-output.sh` e rendilo eseguibile con `chmod +x ~/.claude/hooks/filter-test-output.sh`. Controlla se il comando è un test runner e, in tal caso, mantiene solo le ultime 100 righe del suo output:

324>322>

325> ```bash theme={null}323> ```bash theme={null}

326> #!/bin/bash324> #!/bin/bash

327> input=$(cat)325> input=$(cat)

328> cmd=$(echo "$input" | jq -r '.tool_input.command')326> cmd=$(echo "$input" | jq -r '.tool_input.command')

329>327>

330> # If running tests, filter to show only failures328> # If running tests, keep only the last 100 lines

331> pattern='^(npm test|pytest|go test)( [^;&|<>`$#\\[:cntrl:]]*)?$'329> pattern='^(npm test|pytest|go test)( [^;&|<>`$#\\[:cntrl:]]*)?$'

332> if [[ "$cmd" =~ $pattern ]]; then330> if [[ "$cmd" =~ $pattern ]]; then

333> filtered_cmd="$cmd 2>&1 | grep -A 5 -E '(FAIL|ERROR|error:)' | head -100"331> filtered_cmd="$cmd 2>&1 | tail -n 100"

334> echo "$input" | jq --arg filtered "$filtered_cmd" \332> echo "$input" | jq --arg filtered "$filtered_cmd" \

335> '{hookSpecificOutput: {hookEventName: "PreToolUse", updatedInput: (.tool_input + {command: $filtered})}}'333> '{hookSpecificOutput: {hookEventName: "PreToolUse", updatedInput: (.tool_input + {command: $filtered})}}'

336> else334> else


340 338 

341Per verificare la configurazione, esegui `/hooks` e controlla che l'hook appaia sotto PreToolUse. Puoi anche avviare Claude Code con `claude --debug-file ./claude-debug.txt` e chiedere a Claude di eseguire `npm test`. Quando l'hook riscrive il comando, quel file di log contiene una riga `modified tool input keys` che elenca `command` e gli altri campi di input Bash.339Per verificare la configurazione, esegui `/hooks` e controlla che l'hook appaia sotto PreToolUse. Puoi anche avviare Claude Code con `claude --debug-file ./claude-debug.txt` e chiedere a Claude di eseguire `npm test`. Quando l'hook riscrive il comando, quel file di log contiene una riga `modified tool input keys` che elenca `command` e gli altri campi di input Bash.

342 340 

341Una [skill](https://code.claude.com/docs/it/skills.md) può dare a Claude la conoscenza del dominio in modo che non debba esplorare. Ad esempio, una skill "codebase-overview" potrebbe descrivere l'architettura del tuo progetto, le directory chiave e le convenzioni di denominazione. Quando Claude invoca la skill, ottiene questo contesto immediatamente invece di spendere token leggendo più file per comprendere la struttura.

342 

343### Sposta le istruzioni da CLAUDE.md alle skill343### Sposta le istruzioni da CLAUDE.md alle skill

344 344 

345Il tuo file [CLAUDE.md](https://code.claude.com/docs/it/memory.md) viene caricato nel contesto all'inizio della sessione. Se contiene istruzioni dettagliate per workflow specifici (come revisioni PR o migrazioni di database), quei token sono presenti anche quando stai facendo lavori non correlati. Le [skill](https://code.claude.com/docs/it/skills.md) si caricano su richiesta solo quando invocate, quindi spostare le istruzioni specializzate nelle skill mantiene il tuo contesto di base più piccolo. Mira a mantenere CLAUDE.md sotto 200 righe includendo solo gli elementi essenziali.345Il tuo file [CLAUDE.md](https://code.claude.com/docs/it/memory.md) viene caricato nel contesto all'inizio della sessione. Se contiene istruzioni dettagliate per workflow specifici (come revisioni PR o migrazioni di database), quei token sono presenti anche quando stai facendo lavori non correlati. Le [skill](https://code.claude.com/docs/it/skills.md) si caricano su richiesta solo quando invocate, quindi spostare le istruzioni specializzate nelle skill mantiene il tuo contesto di base più piccolo. Mira a mantenere CLAUDE.md sotto 200 righe includendo solo gli elementi essenziali.

Details

56 56 

57### Consegna del messaggio57### Consegna del messaggio

58 58 

59Il Claude ricevente legge il messaggio tra le chiamate agli strumenti durante un turno attivo, quindi uno strumento in esecuzione non viene mai interrotto. Quando la sessione ricevente è inattiva, Claude Code avvia un nuovo turno con il messaggio.59Il Claude ricevente legge il messaggio tra le chiamate agli strumenti durante un turno attivo. Quando la sessione ricevente è inattiva, Claude Code avvia un nuovo turno con il messaggio.

60 60 

61Un messaggio da un'altra sessione arriva come testo semplice. Se menziona un file o una [risorsa MCP](https://code.claude.com/docs/it/mcp.md#use-mcp-resources) con `@`, Claude vede la menzione come scritta e Claude Code non allega nulla, indipendentemente dal fatto che il messaggio avvii un nuovo turno o arrivi durante uno. Claude può comunque aprire un percorso menzionato sulla macchina ricevente con i suoi stessi strumenti, soggetto alle autorizzazioni di quella sessione.61Un messaggio da un'altra sessione arriva come testo semplice. Se menziona un file o una [risorsa MCP](https://code.claude.com/docs/it/mcp.md#use-mcp-resources) con `@`, Claude vede la menzione come scritta e Claude Code non allega nulla, indipendentemente dal fatto che il messaggio avvii un nuovo turno o arrivi durante uno. Claude può comunque aprire un percorso menzionato sulla macchina ricevente con i suoi stessi strumenti, soggetto alle autorizzazioni di quella sessione.

62 62 

desktop.md +3 −3

Details

256 256 

257### Riduci a icona un pannello257### Riduci a icona un pannello

258 258 

259Per mantenere visibile il pannello Terminal, Browser o [Simulatore iOS](https://code.claude.com/docs/it/desktop-ios-simulator.md) in dimensioni ridotte, fai clic su **Minimize** nell'header del pannello. Il pulsante richiede Claude Desktop v4.0.0 o successivo e un account Claude anziché un [provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md). Il pannello Browser lo ha solo nelle sessioni locali.259Per mantenere visibile il pannello Terminal, Browser, [Simulatore iOS](https://code.claude.com/docs/it/desktop-ios-simulator.md) o una [chat laterale](#ask-a-side-question-without-derailing-the-session) in dimensioni ridotte, fai clic su **Minimize** nell'header del pannello. Il pulsante richiede Claude Desktop v4.0.0 o successivo e un account Claude anziché un [provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md). Il pannello Browser lo ha solo nelle sessioni locali.

260 260 

261Il pannello ridotto a icona si trova nel [pannello dei dettagli della sessione](#see-session-details) quando quel pannello è visibile sullo schermo, altrimenti fluttua in un angolo della chat:261Il pannello ridotto a icona si trova nel [pannello dei dettagli della sessione](#see-session-details) quando quel pannello è visibile sullo schermo, altrimenti fluttua in un angolo della chat:

262 262 


1382 1382 

1383> [accordion] Quando le modifiche in un worktree continuano a funzionare1383> [accordion] Quando le modifiche in un worktree continuano a funzionare

1384>1384>

1385> Su una macchina remota Linux o macOS, il controllo non passa attraverso Desktop, quindi le modifiche all'interno del worktree continuano a funzionare mentre Desktop è disconnesso. Prima di Claude Desktop v2.37337.0, questo vale solo su una macchina remota Linux.1385> Su una macchina remota Linux o macOS, le modifiche all'interno del worktree possono continuare a funzionare mentre Desktop è disconnesso, perché il controllo su ogni modifica può essere eseguito senza Desktop. Prima di [Claude Desktop v2.37337.0](#check-your-version), questo funziona solo su una macchina remota Linux.

1386>1386>

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

1388>1388>


2050 2050 

2051* **Sessioni locali su questa macchina**: un file di impostazioni gestite distribuito su disco si applica. Le impostazioni gestite inviate in remoto tramite la console di amministrazione raggiungono anche queste sessioni sull'API di Anthropic quando la sessione si autentica con un [accesso idoneo](https://code.claude.com/docs/it/server-managed-settings.md#platform-availability), seguendo la stessa [precedenza delle impostazioni](https://code.claude.com/docs/it/settings.md#settings-precedence) del CLI del terminale.2051* **Sessioni locali su questa macchina**: un file di impostazioni gestite distribuito su disco si applica. Le impostazioni gestite inviate in remoto tramite la console di amministrazione raggiungono anche queste sessioni sull'API di Anthropic quando la sessione si autentica con un [accesso idoneo](https://code.claude.com/docs/it/server-managed-settings.md#platform-availability), seguendo la stessa [precedenza delle impostazioni](https://code.claude.com/docs/it/settings.md#settings-precedence) del CLI del terminale.

2052* **[Sessioni cloud](#cloud-sessions)**: ricevono [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md); i file distribuiti su dispositivo non le raggiungono, perché vengono eseguite su VM gestite da Anthropic. Le sessioni instradate a un [ambiente self-hosted](https://code.claude.com/docs/it/self-hosted-environments) leggono anche il file di impostazioni gestite nell'immagine del runner. [Come Claude Code combina le fonti gestite](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources) dice quando quel file si applica.2052* **[Sessioni cloud](#cloud-sessions)**: ricevono [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md); i file distribuiti su dispositivo non le raggiungono, perché vengono eseguite su VM gestite da Anthropic. Le sessioni instradate a un [ambiente self-hosted](https://code.claude.com/docs/it/self-hosted-environments) leggono anche il file di impostazioni gestite nell'immagine del runner. [Come Claude Code combina le fonti gestite](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources) dice quando quel file si applica.

2053* **[Sessioni SSH](#ssh-sessions)**: la sessione legge il file di impostazioni gestite dall'host remoto. Desktop stesso legge `sshConfigs`, `sshHostAllowlist`, `disableSshSavedPasswords` e `disableDesktopLocalSessions` sulla macchina locale. Se fornisci più di una fonte gestita, le legge da [una sola per impostazione predefinita](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources).2053* **[Sessioni SSH](#ssh-sessions)**: la sessione legge il file di impostazioni gestite dall'host remoto. Desktop stesso legge `sshConfigs`, `sshHostAllowlist`, `disableSshSavedPasswords` e `disableDesktopLocalSessions` sulla macchina locale. Se fornisci più di una fonte gestita, le legge da [una sola per impostazione predefinita](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources). Se imposti `permissions.disableBypassPermissionsMode` o `disableAutoMode` nelle impostazioni gestite in vigore sulla macchina locale, il selettore di modalità di una sessione SSH non offre quella modalità, qualunque cosa imposti l'host remoto.

2054* **Sessioni [Cowork](https://claude.com/docs/cowork/overview)**: in una sessione Cowork su questa macchina, Claude Code non recupera mai le impostazioni della console di amministrazione, anche quando l'utente accede con un account Team o Enterprise, e legge la politica distribuita sulla macchina a meno che la tua configurazione di Claude Desktop non imposti `requireCoworkFullVmSandbox`. Le sessioni Cowork remote non ricevono nessuna delle due. Vedi [dove e quando una politica si applica](https://code.claude.com/docs/it/managed-settings.md#where-and-when-a-policy-applies) per sapere quali file di dispositivo raggiungono Cowork, e [regole di permesso MCP](https://code.claude.com/docs/it/permissions.md#mcp) per come le regole `Bash` e `WebFetch` si applicano agli strumenti di Cowork.2054* **Sessioni [Cowork](https://claude.com/docs/cowork/overview)**: in una sessione Cowork su questa macchina, Claude Code non recupera mai le impostazioni della console di amministrazione, anche quando l'utente accede con un account Team o Enterprise, e legge la politica distribuita sulla macchina a meno che la tua configurazione di Claude Desktop non imposti `requireCoworkFullVmSandbox`. Le sessioni Cowork remote non ricevono nessuna delle due. Vedi [dove e quando una politica si applica](https://code.claude.com/docs/it/managed-settings.md#where-and-when-a-policy-applies) per sapere quali file di dispositivo raggiungono Cowork, e [regole di permesso MCP](https://code.claude.com/docs/it/permissions.md#mcp) per come le regole `Bash` e `WebFetch` si applicano agli strumenti di Cowork.

2055 2055 

2056Nelle sessioni locali e SSH, l'app desktop fornisce i connettori claude.ai connessi di ogni utente a Claude Code direttamente. Nessuna impostazione MCP o `managed-mcp.json` raggiunge quei connettori, indipendentemente dalla fonte di impostazioni o dalla posizione del file che usi. Per bloccare gli strumenti di un connettore in queste sessioni, usa i [controlli degli strumenti del connettore](https://code.claude.com/docs/it/mcp.md#organization-controls-on-connector-tools) della tua organizzazione. [Come i connettori raggiungono Claude Code](https://code.claude.com/docs/it/mcp.md#how-connectors-reach-claude-code) mostra quali impostazioni governano i connettori in ogni tipo di sessione.2056Nelle sessioni locali e SSH, l'app desktop fornisce i connettori claude.ai connessi di ogni utente a Claude Code direttamente. Nessuna impostazione MCP o `managed-mcp.json` raggiunge quei connettori, indipendentemente dalla fonte di impostazioni o dalla posizione del file che usi. Per bloccare gli strumenti di un connettore in queste sessioni, usa i [controlli degli strumenti del connettore](https://code.claude.com/docs/it/mcp.md#organization-controls-on-connector-tools) della tua organizzazione. [Come i connettori raggiungono Claude Code](https://code.claude.com/docs/it/mcp.md#how-connectors-reach-claude-code) mostra quali impostazioni governano i connettori in ogni tipo di sessione.

Details

8 8 

9> [!NOTE]9> [!NOTE]

10>10>

11> Il riquadro iOS Simulator è in beta pubblica in Claude Code Desktop su macOS. È disponibile nei piani Pro, Max, Ultra, Team ed Enterprise, tranne nelle organizzazioni Enterprise che hanno una configurazione HIPAA abilitata.11> Il riquadro iOS Simulator è in beta pubblica in Claude Code Desktop su macOS. È disponibile nei piani Pro, Max, Ultra, Team ed Enterprise, tranne nelle organizzazioni Enterprise che hanno una configurazione HIPAA abilitata. Non è disponibile se utilizzi un [provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md).

12 12 

13Il riquadro iOS Simulator mostra la tua app in esecuzione nell'iOS Simulator di Apple accanto alla tua conversazione in Claude Code Desktop. Quando Claude compila, installa, avvia o verifica la tua app in un simulatore, il riquadro si apre automaticamente e trasmette lo schermo del dispositivo in diretta. Usalo per osservare Claude mentre esegue e testa la tua app, oppure per navigare tu stesso nell'app mentre Claude continua a lavorare.13Il riquadro iOS Simulator mostra la tua app in esecuzione nell'iOS Simulator di Apple accanto alla tua conversazione in Claude Code Desktop. Quando Claude compila, installa, avvia o verifica la tua app in un simulatore, il riquadro si apre automaticamente e trasmette lo schermo del dispositivo in diretta. Usalo per osservare Claude mentre esegue e testa la tua app, oppure per navigare tu stesso nell'app mentre Claude continua a lavorare.

14 14 


147* Dichiara l'obiettivo esplicitamente, ad esempio "esegui l'app nell'iOS Simulator e naviga attraverso il flusso di iscrizione".147* Dichiara l'obiettivo esplicitamente, ad esempio "esegui l'app nell'iOS Simulator e naviga attraverso il flusso di iscrizione".

148* Conferma che Xcode e i simulatori iOS siano installati e che stai utilizzando una [versione Xcode consigliata](#requirements).148* Conferma che Xcode e i simulatori iOS siano installati e che stai utilizzando una [versione Xcode consigliata](#requirements).

149* Se la tua organizzazione gestisce Claude Code, gli [strumenti del simulatore potrebbero essere disabilitati dalla politica](#turn-off-simulator-access).149* Se la tua organizzazione gestisce Claude Code, gli [strumenti del simulatore potrebbero essere disabilitati dalla politica](#turn-off-simulator-access).

150* Se sei in un'organizzazione Enterprise che ha una configurazione HIPAA abilitata, il riquadro del simulatore non è disponibile per te.150* Se sei in un'organizzazione Enterprise che ha una configurazione HIPAA abilitata, oppure utilizzi un [provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md), il riquadro del simulatore non è disponibile per te.

151* Il riquadro del simulatore richiede Claude Desktop v1.24012.0 o successivo. Apri **Claude > Check for Updates…**, quindi riavvia l'app.151* Il riquadro del simulatore richiede Claude Desktop v1.24012.0 o successivo. Apri **Claude > Check for Updates…**, quindi riavvia l'app.

152 152 

153### Il riquadro del simulatore dice che non sono stati trovati simulatori153### Il riquadro del simulatore dice che non sono stati trovati simulatori

env-vars.md +5 −5

Details

204| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Imposta su `0` per impedire a Claude Code di aprire automaticamente il browser quando viene pubblicato un nuovo [artefatto](https://code.claude.com/docs/it/artifacts.md#create-an-artifact) |204| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Imposta su `0` per impedire a Claude Code di aprire automaticamente il browser quando viene pubblicato un nuovo [artefatto](https://code.claude.com/docs/it/artifacts.md#create-an-artifact) |

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

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

207| `CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS` | Imposta `0` per impedire a Claude di applicare piccole modifiche al file di un [artefatto](https://code.claude.com/docs/it/artifacts.md#update-an-artifact) durante la sua pubblicazione. Claude modifica quindi il file con i suoi strumenti di modifica dei file e lo pubblica in un passaggio separato. Richiede Claude Code v2.1.300 o successiva |207| `CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS` | Imposta `0` per impedire a Claude di [applicare piccole modifiche](https://code.claude.com/docs/it/artifacts.md#turn-off-one-step-artifact-updates) al file di un artefatto nel corso della sua pubblicazione. Claude modifica quindi il file con i suoi strumenti di modifica dei file e lo pubblica in un passaggio separato. Richiede Claude Code v2.1.300 o successiva |

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

209| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Rimossa nella v2.1.283. Usa invece `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` |209| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Rimossa nella v2.1.283. Usa invece `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` |

210| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Imposta la finestra di compattazione automatica, ovvero quanto si riempie il contesto prima della compattazione, da `100000` a `1000000` token. I valori con suffisso come `200k` richiedono la v2.1.304 o successiva. Per la precedenza rispetto agli altri modi di impostare la finestra e l'effetto sul `used_percentage` della riga di stato, consulta [Impostare la finestra di compattazione automatica](https://code.claude.com/docs/it/model-config.md#set-the-auto-compact-window) |210| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Imposta la finestra di compattazione automatica, ovvero quanto si riempie il contesto prima della compattazione, da `100000` a `1000000` token. I valori con suffisso come `200k` richiedono la v2.1.304 o successiva. Per la precedenza rispetto agli altri modi di impostare la finestra e l'effetto sul `used_percentage` della riga di stato, consulta [Impostare la finestra di compattazione automatica](https://code.claude.com/docs/it/model-config.md#set-the-auto-compact-window) |


502| `OTEL_LOG_TOOL_CONTENT` | Imposta a `1` per includere il contenuto degli strumenti nell'evento di span OpenTelemetry `tool.output`. Gli attributi di span contengono il contenuto degli strumenti in base a [condizioni proprie](https://code.claude.com/docs/it/monitoring-usage.md#new-context-gates). Richiede il [tracciamento](https://code.claude.com/docs/it/monitoring-usage.md#traces-beta). Disabilitata per impostazione predefinita per proteggere i dati sensibili. Impostala nella tua shell, nelle impostazioni utente o nelle impostazioni gestite. Ignorata nelle [impostazioni di progetto e locali](https://code.claude.com/docs/it/settings-reference.md#variables-claude-code-ignores-in-env), a parte i valori di disattivazione descritti in quella sezione. Consulta [Monitoraggio](https://code.claude.com/docs/it/monitoring-usage.md#tool-output-span-event) |502| `OTEL_LOG_TOOL_CONTENT` | Imposta a `1` per includere il contenuto degli strumenti nell'evento di span OpenTelemetry `tool.output`. Gli attributi di span contengono il contenuto degli strumenti in base a [condizioni proprie](https://code.claude.com/docs/it/monitoring-usage.md#new-context-gates). Richiede il [tracciamento](https://code.claude.com/docs/it/monitoring-usage.md#traces-beta). Disabilitata per impostazione predefinita per proteggere i dati sensibili. Impostala nella tua shell, nelle impostazioni utente o nelle impostazioni gestite. Ignorata nelle [impostazioni di progetto e locali](https://code.claude.com/docs/it/settings-reference.md#variables-claude-code-ignores-in-env), a parte i valori di disattivazione descritti in quella sezione. Consulta [Monitoraggio](https://code.claude.com/docs/it/monitoring-usage.md#tool-output-span-event) |

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

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

505| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Imposta a `false` per escludere l'UUID dell'account dagli attributi delle metriche (predefinito: incluso). Consulta [Monitoraggio](https://code.claude.com/docs/it/monitoring-usage.md) |505| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Imposta su `false` per escludere l'UUID dell'account dagli attributi delle metriche e degli eventi (predefinito: incluso). Consulta [Monitoraggio](https://code.claude.com/docs/it/monitoring-usage.md) |

506| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Imposta a `true` per includere l'entrypoint della sessione negli attributi delle metriche (predefinito: escluso). Aggiunta nella v2.1.152. Consulta [Monitoraggio](https://code.claude.com/docs/it/monitoring-usage.md) |506| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Imposta su `true` per includere l'entrypoint della sessione negli attributi delle metriche e degli eventi (predefinito: escluso). Aggiunta nella v2.1.152. Consulta [Monitoraggio](https://code.claude.com/docs/it/monitoring-usage.md) |

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

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

509| `OTEL_METRICS_INCLUDE_SESSION_ID` | Imposta a `false` per escludere l'ID della sessione dagli attributi delle metriche (predefinito: incluso). Consulta [Monitoraggio](https://code.claude.com/docs/it/monitoring-usage.md) |509| `OTEL_METRICS_INCLUDE_SESSION_ID` | Imposta su `false` per escludere l'ID della sessione dagli attributi delle metriche e degli eventi (predefinito: incluso). Consulta [Monitoraggio](https://code.claude.com/docs/it/monitoring-usage.md) |

510| `OTEL_METRICS_INCLUDE_VERSION` | Imposta a `true` per includere la versione di Claude Code negli attributi delle metriche (predefinito: esclusa). Consulta [Monitoraggio](https://code.claude.com/docs/it/monitoring-usage.md) |510| `OTEL_METRICS_INCLUDE_VERSION` | Imposta su `true` per includere la versione di Claude Code negli attributi delle metriche e degli eventi (predefinito: esclusa). Consulta [Monitoraggio](https://code.claude.com/docs/it/monitoring-usage.md) |

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

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

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

errors.md +137 −15

Details

104| `Failed to authenticate: OAuth session expired and could not be refreshed` | [Autenticazione](#login-expired) |104| `Failed to authenticate: OAuth session expired and could not be refreshed` | [Autenticazione](#login-expired) |

105| `Could not refresh your login because another Claude Code process is refreshing it` | [Autenticazione](#could-not-refresh-your-login) |105| `Could not refresh your login because another Claude Code process is refreshing it` | [Autenticazione](#could-not-refresh-your-login) |

106| `Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh` | [Autenticazione](#could-not-refresh-your-login) |106| `Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh` | [Autenticazione](#could-not-refresh-your-login) |

107| `Could not refresh your login: the disk that holds the Claude Code config directory (~/.claude by default), or your disk quota on it, is full` | [Autenticazione](#could-not-refresh-your-login-disk-full) |

108| `Failed to refresh OAuth token: the disk that holds the Claude Code config directory (~/.claude by default), or your disk quota on it, is full` | [Autenticazione](#could-not-refresh-your-login-disk-full) |

107| `Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted` | [Autenticazione](#your-account-is-on-hold) |109| `Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted` | [Autenticazione](#your-account-is-on-hold) |

108| `Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted` | [Autenticazione](#your-account-is-on-hold) |110| `Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted` | [Autenticazione](#your-account-is-on-hold) |

109| `Anthropic profile login expired · Re-authenticate your Anthropic profile` | [Autenticazione](#anthropic-profile-login-expired) |111| `Anthropic profile login expired · Re-authenticate your Anthropic profile` | [Autenticazione](#anthropic-profile-login-expired) |


242| `The current directory no longer exists (it was deleted or moved)` / `Can't read the current directory` | [Errori della riga di comando](#the-current-directory-no-longer-exists) |244| `The current directory no longer exists (it was deleted or moved)` / `Can't read the current directory` | [Errori della riga di comando](#the-current-directory-no-longer-exists) |

243| `Temp directory <dir> ... Refusing to use it` / `Claude Code's temporary directory <dir> could not be created` | [Errori della riga di comando](#temp-directory-refused-or-cannot-be-created) |245| `Temp directory <dir> ... Refusing to use it` / `Claude Code's temporary directory <dir> could not be created` | [Errori della riga di comando](#temp-directory-refused-or-cannot-be-created) |

244| `ENOSPC: no space left on device, mkdir '<dir>'` | [Errori della riga di comando](#temp-directory-refused-or-cannot-be-created) |246| `ENOSPC: no space left on device, mkdir '<dir>'` | [Errori della riga di comando](#temp-directory-refused-or-cannot-be-created) |

247| `Error: Claude Code could not save ... because the disk is full (ENOSPC)` / `because your disk quota is used up (EDQUOT)` | [Errori della riga di comando](#could-not-save-because-the-disk-is-full) |

245| `couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded` | [Errori della riga di comando](#directory-couldnt-be-resolved-to-a-real-location) |248| `couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded` | [Errori della riga di comando](#directory-couldnt-be-resolved-to-a-real-location) |

246| `Error: Workspace not trusted` when starting Remote Control | [Errori della riga di comando](#workspace-not-trusted-when-starting-remote-control) |249| `Error: Workspace not trusted` when starting Remote Control | [Errori della riga di comando](#workspace-not-trusted-when-starting-remote-control) |

247| `Error: Workspace not trusted` quando esegui `claude ultrareview` | [Errori della riga di comando](#workspace-not-trusted-when-running-claude-ultrareview) |250| `Error: Workspace not trusted` quando esegui `claude ultrareview` | [Errori della riga di comando](#workspace-not-trusted-when-running-claude-ultrareview) |

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

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

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

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

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


320| `The packages it lists are not installed` / `The packages it lists were not installed, because` | [Risoluzione dei problemi dei plugin](https://code.claude.com/docs/it/plugins/troubleshooting.md#the-packages-it-lists-are-not-installed) |324| `The packages it lists are not installed` / `The packages it lists were not installed, because` | [Risoluzione dei problemi dei plugin](https://code.claude.com/docs/it/plugins/troubleshooting.md#the-packages-it-lists-are-not-installed) |

321| `does not load (...), so Claude Code ignores the whole file` | [Risoluzione dei problemi dei plugin](https://code.claude.com/docs/it/plugins/troubleshooting.md#does-not-load-so-claude-code-ignores-the-whole-file) |325| `does not load (...), so Claude Code ignores the whole file` | [Risoluzione dei problemi dei plugin](https://code.claude.com/docs/it/plugins/troubleshooting.md#does-not-load-so-claude-code-ignores-the-whole-file) |

322| `path escapes plugin directory` | [Errori dei plugin](#path-escapes-plugin-directory) |326| `path escapes plugin directory` | [Errori dei plugin](#path-escapes-plugin-directory) |

327| `path not read: <path> is absolute or has a ".." part` | [Errori dei plugin](#server-file-path-not-read) |

323| `Plugin not loaded: its manifest <path> was not read` | [Errori dei plugin](#plugin-not-loaded-its-manifest-was-not-read) |328| `Plugin not loaded: its manifest <path> was not read` | [Errori dei plugin](#plugin-not-loaded-its-manifest-was-not-read) |

324| `path could not be checked` | [Errori dei plugin](#path-could-not-be-checked) |329| `path could not be checked` | [Errori dei plugin](#path-could-not-be-checked) |

325| `its marketplace entry path does not stay inside the marketplace directory` | [Errori dei plugin](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |330| `its marketplace entry path does not stay inside the marketplace directory` | [Errori dei plugin](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |


368| `Refusing to write <path>: where it leads on disk could not be determined` / `Refusing to read <path>: where it leads on disk could not be determined` | [Errori degli strumenti](#refusing-after-a-symlink-changed) |373| `Refusing to write <path>: where it leads on disk could not be determined` / `Refusing to read <path>: where it leads on disk could not be determined` | [Errori degli strumenti](#refusing-after-a-symlink-changed) |

369| `Refusing to search <path>: a path one of its Read deny rules is written through changed while the search was being prepared` / `Refusing to search <path>: it could not be opened` | [Errori degli strumenti](#refusing-after-a-symlink-changed) |374| `Refusing to search <path>: a path one of its Read deny rules is written through changed while the search was being prepared` / `Refusing to search <path>: it could not be opened` | [Errori degli strumenti](#refusing-after-a-symlink-changed) |

370| `its permission check expired before it ran (too many concurrent file operations)` / `ripgrep was found only by name on PATH` | [Errori degli strumenti](#refusing-after-a-symlink-changed) |375| `its permission check expired before it ran (too many concurrent file operations)` / `ripgrep was found only by name on PATH` | [Errori degli strumenti](#refusing-after-a-symlink-changed) |

376| `The search failed, so this is not a "no matches" result: matches may exist` | [Errori degli strumenti](#the-search-failed) |

371| `task output swap refused (tasks dir moved or linked)` | [Errori degli strumenti](#task-output-swap-refused) |377| `task output swap refused (tasks dir moved or linked)` | [Errori degli strumenti](#task-output-swap-refused) |

372| `Command killed: its output file was replaced or could no longer be verified` | [Errori degli strumenti](#task-output-swap-refused) |378| `Command killed: its output file was replaced or could no longer be verified` | [Errori degli strumenti](#task-output-swap-refused) |

373| `Disk full: this computer's volume holding <dir> (Claude Code's temporary directory) has <n> MB free` / `Nearly out of inodes: this computer's volume holding <dir>` | [Errori degli strumenti](#disk-quota-or-temp-filesystem-is-full) |379| `Disk full: this computer's volume holding <dir> (Claude Code's temporary directory) has <n> MB free` / `Nearly out of inodes: this computer's volume holding <dir>` | [Errori degli strumenti](#disk-quota-or-temp-filesystem-is-full) |


377| `Command output was lost: the temp filesystem at <dir> is full` / `is out of inodes` | [Errori degli strumenti](#disk-quota-or-temp-filesystem-is-full) |383| `Command output was lost: the temp filesystem at <dir> is full` / `is out of inodes` | [Errori degli strumenti](#disk-quota-or-temp-filesystem-is-full) |

378| `File is not valid UTF-8. It may use a legacy encoding such as Windows-1252, Shift-JIS or GBK, or be binary` | [Errori degli strumenti](#file-is-not-valid-utf-8) |384| `File is not valid UTF-8. It may use a legacy encoding such as Windows-1252, Shift-JIS or GBK, or be binary` | [Errori degli strumenti](#file-is-not-valid-utf-8) |

379| `git is not installed on this Mac. To install it, run xcode-select --install, then try again.` | [Errori degli strumenti](#git-is-not-installed-on-this-mac) |385| `git is not installed on this Mac. To install it, run xcode-select --install, then try again.` | [Errori degli strumenti](#git-is-not-installed-on-this-mac) |

386| `Refusing to apply edits to <path>: a hook is configured for file edits in this session` | [Errori degli strumenti](#a-hook-is-configured-for-file-edits) |

380| `the source file is not valid UTF-8 text` / `the source file is not valid UTF-16 text` | [Errori degli strumenti](#the-source-file-is-not-valid-utf-8-text) |387| `the source file is not valid UTF-8 text` / `the source file is not valid UTF-16 text` | [Errori degli strumenti](#the-source-file-is-not-valid-utf-8-text) |

381| `the source file has the replacement character U+FFFD` | [Errori degli strumenti](#the-source-file-is-not-valid-utf-8-text) |388| `the source file has the replacement character U+FFFD` | [Errori degli strumenti](#the-source-file-is-not-valid-utf-8-text) |

382| `Not published: that file is on a network share` | [Errori degli strumenti](#not-published-that-file-is-on-a-network-share) |389| `Not published: that file is on a network share` | [Errori degli strumenti](#not-published-that-file-is-on-a-network-share) |


387| `The safety check for domain ... is rate-limited` | [Errori degli strumenti](#webfetch-domain-safety-check-failed) |394| `The safety check for domain ... is rate-limited` | [Errori degli strumenti](#webfetch-domain-safety-check-failed) |

388| `The safety check for domain ... is temporarily rate-limited` | [Errori degli strumenti](#webfetch-domain-safety-check-failed) |395| `The safety check for domain ... is temporarily rate-limited` | [Errori degli strumenti](#webfetch-domain-safety-check-failed) |

389| `Unable to verify if domain ... is safe to fetch` | [Errori degli strumenti](#webfetch-domain-safety-check-failed) |396| `Unable to verify if domain ... is safe to fetch` | [Errori degli strumenti](#webfetch-domain-safety-check-failed) |

397| `MCP tool "<tool>" on server "<server>" gave no answer that could be read` / `answered without its text` | [Come viene letto il risultato di un hook di strumento MCP](https://code.claude.com/docs/it/hooks.md#how-the-tools-result-is-read) |

390| `Can't open MCP settings while no terminal is attached to this background session` | [Errori della sessione in background](#commands-refused-in-a-background-session) |398| `Can't open MCP settings while no terminal is attached to this background session` | [Errori della sessione in background](#commands-refused-in-a-background-session) |

391| `Can't open MCP settings in a background session` | [Errori della sessione in background](#commands-refused-in-a-background-session) |399| `Can't open MCP settings in a background session` | [Errori della sessione in background](#commands-refused-in-a-background-session) |

392| `blocked because the path is spelled in a form that cannot be safely resolved` | [Errori della sessione in background](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) |400| `blocked because the path is spelled in a form that cannot be safely resolved` | [Errori della sessione in background](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) |


397| `Can't open — this session is running in another terminal` | [Errori della sessione in background](#this-session-is-running-in-another-terminal) |405| `Can't open — this session is running in another terminal` | [Errori della sessione in background](#this-session-is-running-in-another-terminal) |

398| `This conversation is already open in another running Claude session` | [Errori della sessione in background](#this-session-is-running-in-another-terminal) |406| `This conversation is already open in another running Claude session` | [Errori della sessione in background](#this-session-is-running-in-another-terminal) |

399| `This session's saved conversation is no longer on disk` | [Errori della sessione in background](#this-sessions-saved-conversation-is-no-longer-on-disk) |407| `This session's saved conversation is no longer on disk` | [Errori della sessione in background](#this-sessions-saved-conversation-is-no-longer-on-disk) |

408| `This forked session could not be started. Fork the conversation again to retry.` | [Errori delle sessioni in background](#this-forked-session-could-not-be-started) |

400| `Bypass permissions was requested at launch and ignored` | [Bypass permissions ignorato in una sessione in background](https://code.claude.com/docs/it/permission-modes.md#bypass-permissions-ignored-in-a-background-session) |409| `Bypass permissions was requested at launch and ignored` | [Bypass permissions ignorato in una sessione in background](https://code.claude.com/docs/it/permission-modes.md#bypass-permissions-ignored-in-a-background-session) |

401| `kept <id> — its worktree is still at <path>` | [Errori delle sessioni in background](#worktree-has-commits-that-are-not-pushed-anywhere) se la riga successiva del messaggio menziona commit non inviati, altrimenti [Cosa rimuove l'eliminazione di una sessione](https://code.claude.com/docs/it/agent-view.md#what-deleting-a-session-removes) |410| `kept <id> — its worktree is still at <path>` | [Errori delle sessioni in background](#worktree-has-commits-that-are-not-pushed-anywhere) se la riga successiva del messaggio menziona commit non inviati, altrimenti [Cosa rimuove l'eliminazione di una sessione](https://code.claude.com/docs/it/agent-view.md#what-deleting-a-session-removes) |

402| `kept <id> — <n> unpushed commits on <branch>` | [Errori della sessione in background](#worktree-has-commits-that-are-not-pushed-anywhere) |411| `kept <id> — <n> unpushed commits on <branch>` | [Errori della sessione in background](#worktree-has-commits-that-are-not-pushed-anywhere) |


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

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

550| [`CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS`](https://code.claude.com/docs/it/env-vars) | unset | Tempo massimo in millisecondi che ogni richiesta API trascorre in attesa durante gli errori `429` e `529` quando `CLAUDE_CODE_RETRY_WATCHDOG` è impostato. Se non è impostato, l'attesa non ha limite. Richiede Claude Code v2.1.295 o successivo. |559| [`CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS`](https://code.claude.com/docs/it/env-vars) | unset | Tempo massimo in millisecondi che ogni richiesta API trascorre in attesa durante gli errori `429` e `529` quando `CLAUDE_CODE_RETRY_WATCHDOG` è impostato. Se non è impostato, l'attesa non ha limite. Richiede Claude Code v2.1.295 o successivo. |

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

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

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

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


1436 1446 

1437Questo non è lo stesso stato di [OAuth token revoked or expired](#oauth-token-revoked-or-expired). Quei messaggi segnalano un rifiuto restituito dall'API. `Login expired` lo genera Claude Code stesso per un accesso che non è già riuscito a rinnovare, quindi non invia alcuna richiesta. Quando il rinnovo fallisce perché è l'account stesso a essere sospeso, e non perché l'accesso è obsoleto, Claude Code mostra invece [Your account is on hold](#your-account-is-on-hold).1447Questo non è lo stesso stato di [OAuth token revoked or expired](#oauth-token-revoked-or-expired). Quei messaggi segnalano un rifiuto restituito dall'API. `Login expired` lo genera Claude Code stesso per un accesso che non è già riuscito a rinnovare, quindi non invia alcuna richiesta. Quando il rinnovo fallisce perché è l'account stesso a essere sospeso, e non perché l'accesso è obsoleto, Claude Code mostra invece [Your account is on hold](#your-account-is-on-hold).

1438 1448 

1439Le sessioni autenticate con una chiave API, con [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/it/env-vars) o con un provider di terze parti non usano l'accesso salvato e non vedono mai questo messaggio.

1440 

1441Puoi verificare questo stato prima che una richiesta fallisca: [`/status`](https://code.claude.com/docs/it/commands) mostra una riga `Login` con il valore `Expired — log in again`, oltre all'organizzazione e all'email salvate per l'accesso scaduto. La riga appare solo quando l'accesso salvato è la tua credenziale attiva e non può più essere aggiornato. Le sessioni autenticate in altro modo non mostrano la riga, anche se rimane salvato un accesso scaduto. Prima della v2.1.210, in questo stato `/status` non dava alcuna indicazione che un accesso fosse mai esistito, perché la credenziale cancellata non gli lasciava nulla da riportare.1449Puoi verificare questo stato prima che una richiesta fallisca: [`/status`](https://code.claude.com/docs/it/commands) mostra una riga `Login` con il valore `Expired — log in again`, oltre all'organizzazione e all'email salvate per l'accesso scaduto. La riga appare solo quando l'accesso salvato è la tua credenziale attiva e non può più essere aggiornato. Le sessioni autenticate in altro modo non mostrano la riga, anche se rimane salvato un accesso scaduto. Prima della v2.1.210, in questo stato `/status` non dava alcuna indicazione che un accesso fosse mai esistito, perché la credenziale cancellata non gli lasciava nulla da riportare.

1442 1450 

1443**Cosa fare:**1451**Cosa fare:**


1461Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh. This is usually transient; retry in a minute, and if it persists close other Claude Code processes or sign in again1469Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh. This is usually transient; retry in a minute, and if it persists close other Claude Code processes or sign in again

1462```1470```

1463 1471 

1464Le sessioni autenticate con una chiave API, con [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/it/env-vars) o con un provider di terze parti non usano l'accesso salvato e non vedono mai questo messaggio.

1465 

1466**Cosa fare:**1472**Cosa fare:**

1467 1473 

1468* Riprova tra un minuto. Se un altro processo completa prima l'aggiornamento, questa sessione usa l'accesso rinnovato.1474* Riprova tra un minuto. Se un altro processo completa prima l'aggiornamento, questa sessione usa l'accesso rinnovato.

1469* Se il messaggio continua a ricomparire, chiudi le altre finestre e gli altri processi di Claude Code, poi riprova.1475* Se il messaggio continua a ricomparire, chiudi le altre finestre e gli altri processi di Claude Code, poi riprova.

1470* Se ricompare senza che sia in esecuzione alcun altro processo di Claude Code, esegui `/login`. Accedere di nuovo non attende il lock di aggiornamento.1476* Se ricompare senza che sia in esecuzione alcun altro processo di Claude Code, esegui `/login`. Accedere di nuovo non attende il lock di aggiornamento.

1471 1477 

1478### Could not refresh your login: the disk that holds the Claude Code config directory is full

1479 

1480Libera spazio sul disco che contiene la directory di configurazione di Claude Code, poi invia di nuovo il tuo messaggio. Accedere di nuovo non servirebbe finché il disco è pieno, perché un nuovo login non potrebbe essere salvato. La directory di configurazione è `~/.claude` nella tua directory home, a meno che tu non abbia impostato [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/it/env-vars).

1481 

1482```text wrap theme={null}

1483Could not refresh your login: the disk that holds the Claude Code config directory (~/.claude by default), or your disk quota on it, is full · Delete files you no longer need on that disk, then try again · Signing in again won't help

1484```

1485 

1486In [modalità non interattiva](https://code.claude.com/docs/it/headless.md) (`-p`) e nell'[Agent SDK](https://code.claude.com/docs/it/agent-sdk/overview.md), il messaggio è:

1487 

1488```text wrap theme={null}

1489Failed to refresh OAuth token: the disk that holds the Claude Code config directory (~/.claude by default), or your disk quota on it, is full. Delete files you no longer need on that disk and retry; signing in again won't help

1490```

1491 

1492**Cosa fare:**

1493 

1494* Per uno script, esegui di nuovo il suo comando `claude -p`

1495* Se il disco mostra già spazio libero, l'esaurimento della quota disco o degli inode produce lo stesso messaggio. Elimina i tuoi file su quel disco. Se il messaggio si ripresenta, elimina molti file piccoli anziché pochi file grandi, perché ogni file occupa un inode indipendentemente dalle sue dimensioni.

1496 

1472### Couldn't save your login1497### Couldn't save your login

1473 1498 

1474Hai effettuato l'accesso con claude.ai, ma Claude Code non è riuscito a salvare l'accesso nel suo archivio di credenziali, quindi l'accesso non è stato completato. Su macOS questo può accadere quando il portachiavi login si blocca, ad esempio durante lo stop o l'inattività, dopo che Claude Code ha già letto o salvato credenziali al suo interno durante la stessa sessione.1499Hai effettuato l'accesso con claude.ai, ma Claude Code non è riuscito a salvare l'accesso nel suo archivio di credenziali, quindi l'accesso non è stato completato. Su macOS questo può accadere quando il portachiavi login si blocca, ad esempio durante lo stop o l'inattività, dopo che Claude Code ha già letto o salvato credenziali al suo interno durante la stessa sessione.


2442 2467 

2443### Il contesto supera il limite di token2468### Il contesto supera il limite di token

2444 2469 

2445`/context` mostra questo avviso in cima al suo output quando la conversazione ha superato la finestra di contesto del modello. Le richieste falliscono con [`Prompt is too long`](#prompt-is-too-long) finché non liberi spazio. Una sessione interattiva mostra quell'errore come la riga `Context limit reached`.2470`/context` mostra questo avviso in cima al suo output quando la conversazione è cresciuta oltre la finestra di contesto del modello:

2446 2471 

2447```text theme={null}2472```text theme={null}

2448Context exceeds the 200k-token limit by 94k tokens — run /compact or /clear to continue.2473Context exceeds the 200k-token limit by 94k tokens — run /compact or /clear to continue.

2449```2474```

2450 2475 

2476Dopo un avviso `Context exceeds`, non devi eseguire nessuno dei due comandi mentre la [compattazione automatica](https://code.claude.com/docs/it/settings-reference.md#autocompactenabled) è attiva, come da impostazione predefinita:

2477 

2478* **Compattazione automatica attiva**: invia il tuo prossimo messaggio. Se fallisce ancora con [`Prompt is too long`](#prompt-is-too-long), consulta quella voce.

2479* **Compattazione automatica disattivata**: nella sessione, esegui `/compact` se l'avviso lo cita, oppure `/clear` per ricominciare. Finché non ne esegui uno, i messaggi falliscono con `Context limit reached`, oppure con `Prompt is too long` nell'output di `-p`.

2480 

2451Quando il limite che hai superato è una finestra di compattazione, come il limite di 200K sui modelli con contesto 1M, l'avviso recita diversamente. Una finestra di compattazione può stare al di sotto della finestra di contesto del modello, quindi le richieste oltre ad essa possono ancora avere successo.2481Quando il limite che hai superato è una finestra di compattazione, come il limite di 200K sui modelli con contesto 1M, l'avviso recita diversamente. Una finestra di compattazione può stare al di sotto della finestra di contesto del modello, quindi le richieste oltre ad essa possono ancora avere successo.

2452 2482 

2453```text theme={null}2483```text theme={null}


2458 2488 

2459**Cosa fare:**2489**Cosa fare:**

2460 2490 

2461* In una conversazione multi-turno, esegui `/compact` per riassumere i turni precedenti e liberare spazio. Per ricominciare da capo, esegui `/clear`2491* **Dopo un avviso sulla finestra di compattazione**: in una conversazione con più turni, esegui `/compact` per riassumere i turni precedenti e liberare spazio. Per ricominciare invece da capo, esegui `/clear`.

2462* Per altri modi per ridurre l'utilizzo, vedi [Prompt is too long](#prompt-is-too-long)2492* Per altri modi per ridurre l'utilizzo, vedi [Prompt is too long](#prompt-is-too-long)

2463 2493 

2464Prima della v2.1.216, `/context` mostrava l'utilizzo sopra il 100% senza una riga di avviso che spiegasse cosa significava o come recuperare.2494Prima della v2.1.216, `/context` mostrava l'utilizzo sopra il 100% senza una riga di avviso che spiegasse cosa significava o come recuperare.


3302 3332 

3303### Configuration error in \~/.claude.json3333### Configuration error in \~/.claude.json

3304 3334 

3305Claude Code non è riuscito ad analizzare `~/.claude.json`, il file che contiene i dettagli del tuo account, i server MCP e lo stato per progetto. Il tuo file non è stato modificato. Un avvio [non interattivo](https://code.claude.com/docs/it/headless.md) come `claude -p` termina ogni volta con codice di uscita 1 finché non ripari il file.3335Claude Code non è riuscito ad analizzare `~/.claude.json`, il file che contiene i dettagli del tuo account, i server MCP e lo stato di ogni progetto. Un avvio [non interattivo](https://code.claude.com/docs/it/headless.md) come `claude -p` esce con codice 1.

3306 3336 

3307Quando Claude Code trova un [backup](https://code.claude.com/docs/it/claude-directory.md#cleaned-up-automatically), l'output lo indica e stampa una riga `cp` che lo ricopia al suo posto:3337Quando Claude Code trova un [backup](https://code.claude.com/docs/it/claude-directory.md#cleaned-up-automatically), l'output lo indica e stampa una riga `cp` che lo ricopia al suo posto:

3308 3338 


3317 3347 

3318**Cosa fare:**3348**Cosa fare:**

3319 3349 

3320* **L'output contiene una riga `cp`**: esegui quella riga nel terminale. Su Windows, eseguila in PowerShell. Sostituisce il file danneggiato con il backup, una versione precedente di `~/.claude.json`.3350* **L'output contiene una riga `cp`**: esegui quella riga nel terminale. Su Windows, eseguila in PowerShell.

3321* **L'output non contiene una riga `cp`, oppure l'errore si ripresenta dopo averla eseguita**: correggi il JSON in `~/.claude.json`, copia sopra di esso un altro file `.claude.json.backup.<timestamp>` da [`~/.claude/backups/`](https://code.claude.com/docs/it/claude-directory#cleaned-up-automatically) se ce n'è uno, oppure rinominalo. Senza un file in `~/.claude.json`, Claude Code si avvia con le impostazioni predefinite e senza nulla di ciò che il file conteneva.3351* **L'output non contiene una riga `cp`, oppure l'errore si ripresenta dopo averla eseguita**: se `~/.claude.json` contiene ancora la tua configurazione, correggi il suo JSON. Se non ci riesci, copia sopra di esso un altro file `.claude.json.backup.<timestamp>` da [`~/.claude/backups/`](https://code.claude.com/docs/it/claude-directory#cleaned-up-automatically), se ce n'è uno, oppure rinominalo. Senza alcun file in `~/.claude.json`, Claude Code si avvia con le impostazioni predefinite e senza nulla di ciò che il file conteneva.

3322 3352* **`~/.claude.json` non contiene più la tua configurazione**: trova un file `.claude.json.corrupted.<timestamp>` che la contenga ancora, in [`~/.claude/backups/`](https://code.claude.com/docs/it/claude-directory#cleaned-up-automatically) o nella tua directory home. Correggi il suo JSON, poi copialo sopra `~/.claude.json`. Se non riesci a trovarne o correggerne uno, prova gli stessi passaggi con un file `.claude.json.backup.<timestamp>` che contenga la tua configurazione. Se nessuno la contiene, rinomina `~/.claude.json` e aggiungi di nuovo i tuoi server MCP con [`claude mcp add`](https://code.claude.com/docs/it/mcp#installing-mcp-servers).

3323Prima della v2.1.318, dopo che un avvio non interattivo stampava questo errore ti ritrovavi con i valori predefiniti in `~/.claude.json`, quindi l'avvio successivo veniva eseguito senza la tua configurazione.

3324 3353 

3325### Claude configuration file was empty and no backup holds anything3354### Claude configuration file was empty and no backup holds anything

3326 3355 


3381 3410 

3382Prima della v2.1.309, Claude Code stampava solo il testo di errore del sistema operativo quando il volume era pieno o la tua quota era esaurita. Un esempio è `ENOSPC: no space left on device, mkdir '/tmp/claude-501'`, e si applicano gli stessi passaggi.3411Prima della v2.1.309, Claude Code stampava solo il testo di errore del sistema operativo quando il volume era pieno o la tua quota era esaurita. Un esempio è `ENOSPC: no space left on device, mkdir '/tmp/claude-501'`, e si applicano gli stessi passaggi.

3383 3412 

3413### Claude Code non è riuscito a salvare perché il disco è pieno

3414 

3415Questa riga su stderr dopo un'esecuzione di [`claude -p`](https://code.claude.com/docs/it/headless) indica che il disco è pieno o che la tua quota disco è esaurita, quindi Claude Code non è riuscito a salvare tutto ciò che riguarda l'esecuzione:

3416 

3417```text wrap theme={null}

3418Error: Claude Code could not save all of this session's transcript under /Users/you/.claude because the disk is full (ENOSPC). If you resume this session, part of the conversation may be missing. Free up space on that disk before the next run.

3419```

3420 

3421Con output di testo o `json`, l'esecuzione esce con codice 1 e la risposta è già stata stampata. Con output `stream-json`, l'esecuzione mantiene il suo consueto codice di uscita e la risposta arriva comunque.

3422 

3423**Cosa fare:**

3424 

3425* **`the disk is full (ENOSPC)`**: prima della prossima esecuzione, libera spazio sul disco che contiene il percorso indicato nel messaggio

3426* **`your disk quota is used up (EDQUOT)`**: prima della prossima esecuzione, libera spazio o richiedi una quota maggiore

3427 

3384### Directory couldn't be resolved to a real location3428### Directory couldn't be resolved to a real location

3385 3429 

3386Hai eseguito `/add-dir` per una sottodirectory della tua directory di lavoro, e Claude Code non è riuscito a risolvere la directory nella sua posizione reale.3430Hai eseguito `/add-dir` per una sottodirectory della tua directory di lavoro, e Claude Code non è riuscito a risolvere la directory nella sua posizione reale.


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

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

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

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

3452 3496 

3453Prima della v2.1.309, `claude ultrareview` non accettava `--trust-workspace`.3497Prima della v2.1.309, `claude ultrareview` non accettava `--trust-workspace`.

3454 3498 

3499### Remote Control non si è avviato perché una domanda non ha ricevuto risposta

3500 

3501Questo messaggio indica che [`claude remote-control`](https://code.claude.com/docs/it/remote-control) ha posto la domanda di primo avvio citata nel messaggio e non ha ricevuto risposta:

3502 

3503```text theme={null}

3504Remote Control did not start: "Enable Remote Control?" got no answer. Run `claude remote-control` at a terminal and answer y once; it won't ask again.

3505Remote Control did not start: "Choose [1/2] (default: 1):" got no answer. You can run `claude remote-control` and choose, or pass --spawn=same-dir or --spawn=worktree.

3506```

3507 

3508**Cosa fare:**

3509 

3510* **`Enable Remote Control?`**: in uno script o in un servizio, lo standard input termina prima che qualcuno possa rispondere. Esegui `claude remote-control` una volta in un terminale, con lo stesso utente con cui viene eseguito il tuo script o servizio, e rispondi `y`.

3511* **`Choose [1/2] (default: 1):`**: esegui di nuovo `claude remote-control` e [scegli una modalità di spawn](https://code.claude.com/docs/it/remote-control.md#set-the-default-spawn-mode-for-a-project), oppure passa [`--spawn=same-dir` o `--spawn=worktree`](https://code.claude.com/docs/it/remote-control#start-a-remote-control-session) per saltare la domanda

3512 

3455### Not carried over to the sessions Remote Control starts3513### Not carried over to the sessions Remote Control starts

3456 3514 

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


3741 3799 

3742Stringhe analoghe compaiono prima ancora che il comando venga eseguito:3800Stringhe analoghe compaiono prima ancora che il comando venga eseguito:

3743 3801 

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

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

3746 3804 

3747**Cosa fare:**3805**Cosa fare:**

3748 3806 


3895 3953 

3896* **Non hai passato un branch di base**: Claude Code ha effettuato il confronto con il branch predefinito del repository e suggerisce di passare esplicitamente il tuo branch di base, come nell'esempio sopra3954* **Non hai passato un branch di base**: Claude Code ha effettuato il confronto con il branch predefinito del repository e suggerisce di passare esplicitamente il tuo branch di base, come nell'esempio sopra

3897* **Hai passato un branch di base già presente nel tuo clone**: il suggerimento è ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``3955* **Hai passato un branch di base già presente nel tuo clone**: il suggerimento è ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``

3898* **Hai passato un branch di base che non era nel tuo clone**: Claude Code lo ha recuperato da origin prima del confronto. Il suggerimento recita ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``; quando Claude Code non riesce a stabilire se il tuo clone è shallow, suggerisce invece `git fetch --unshallow origin`. Prima della v2.1.221, il suggerimento proponeva `git fetch --unshallow origin` per ogni branch di base recuperato, e su un clone completo quel comando fallisce con `fatal: --unshallow on a complete repository does not make sense`.3956* **Hai passato un branch di base non presente nel tuo clone**: Claude Code lo ha recuperato da origin prima del confronto. Il suggerimento è ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``; quando Claude Code non riesce a stabilire se il tuo clone è shallow, suggerisce invece `git fetch --unshallow origin`. Prima della v2.1.221, il suggerimento proponeva `git fetch --unshallow origin` per ogni branch di base recuperato, e su un clone completo quel comando fallisce con `fatal: --unshallow on a complete repository does not make sense`.

3899 3957 

3900**Cosa fare:**3958**Cosa fare:**

3901 3959 


4457* Se il messaggio termina con `EACCES`, ripristina il tuo permesso di esecuzione su ogni directory che porta al file o alla cartella indicati dal percorso. Controlla le directory sopra il percorso, quindi segui ogni collegamento simbolico che incontri e controlla le directory che portano a dove punta. Per qualsiasi altro codice di errore, cercalo tra le [cause e i passaggi per un percorso che non è stato possibile controllare](#path-could-not-be-checked).4515* Se il messaggio termina con `EACCES`, ripristina il tuo permesso di esecuzione su ogni directory che porta al file o alla cartella indicati dal percorso. Controlla le directory sopra il percorso, quindi segui ogni collegamento simbolico che incontri e controlla le directory che portano a dove punta. Per qualsiasi altro codice di errore, cercalo tra le [cause e i passaggi per un percorso che non è stato possibile controllare](#path-could-not-be-checked).

4458* Per condividere file con altri plugin nello stesso marketplace, collegali con un symlink all'interno della directory del plugin, seguendo le [regole del symlink](https://code.claude.com/docs/it/plugins/host-marketplace.md#share-files-within-a-marketplace-with-symlinks)4516* Per condividere file con altri plugin nello stesso marketplace, collegali con un symlink all'interno della directory del plugin, seguendo le [regole del symlink](https://code.claude.com/docs/it/plugins/host-marketplace.md#share-files-within-a-marketplace-with-symlinks)

4459 4517 

4518### Percorso del file del server non letto

4519 

4520Il messaggio `path not read` significa che Claude Code non ha letto un file di server MCP o LSP indicato da un plugin, a causa del percorso del file. Il resto del plugin si carica, senza i server definiti dal file.

4521 

4522Una parte `..` conta anche quando il percorso rimane all'interno del plugin, come in questo esempio:

4523 

4524```text theme={null}

4525mcp-servers path not read: ./sub/../x.json is absolute or has a ".." part

4526```

4527 

4528**Cosa fare:**

4529 

4530* Se hai installato il plugin e non lo mantieni, segnala il messaggio al suo autore

4531* Se mantieni il plugin, tieni il file del server all'interno della directory del plugin. Indicalo nel manifest o nella voce del marketplace con un percorso che inizia con `./` e non contiene `..`, ad esempio `./servers/x.json`

4532* Per condividere un file del server tra plugin dello stesso marketplace, collega il file in ciascun plugin con un collegamento simbolico, seguendo le [regole dei collegamenti simbolici](https://code.claude.com/docs/it/plugins/host-marketplace.md#share-files-within-a-marketplace-with-symlinks)

4533 

4460### Plugin non caricato: il suo manifest non è stato letto4534### Plugin non caricato: il suo manifest non è stato letto

4461 4535 

4462Claude Code non è riuscito a confermare che il [manifest](https://code.claude.com/docs/it/plugins/manifest-reference.md) di un plugin del marketplace in `.claude-plugin/plugin.json` si trovi all'interno del plugin, quindi non carica nulla da quel plugin. Per un plugin in un [marketplace locale](https://code.claude.com/docs/it/plugins/loading.md#in-place-and-copied-plugins), Claude Code non è inoltre riuscito a confermare che il manifest si trovi all'interno di quel marketplace. Il messaggio appare nella scheda **Errors** di `/plugin`, e il motivo alla sua fine indica cosa ha trovato Claude Code.4536Claude Code non è riuscito a confermare che il [manifest](https://code.claude.com/docs/it/plugins/manifest-reference.md) di un plugin del marketplace in `.claude-plugin/plugin.json` si trovi all'interno del plugin, quindi non carica nulla da quel plugin. Per un plugin in un [marketplace locale](https://code.claude.com/docs/it/plugins/loading.md#in-place-and-copied-plugins), Claude Code non è inoltre riuscito a confermare che il manifest si trovi all'interno di quel marketplace. Il messaggio appare nella scheda **Errors** di `/plugin`, e il motivo alla sua fine indica cosa ha trovato Claude Code.


5065 5139 

5066Prima della v2.1.280, il rifiuto `where it leads on disk could not be determined` non compariva.5140Prima della v2.1.280, il rifiuto `where it leads on disk could not be determined` non compariva.

5067 5141 

5142### The search failed, so this is not a "no matches" result

5143 

5144Una ricerca [Grep](https://code.claude.com/docs/it/tools-reference.md#grep-tool-behavior) o [Glob](https://code.claude.com/docs/it/tools-reference.md#glob-tool-behavior) eseguita da Claude è fallita prima di restituire qualsiasi risultato, quindi non si sa se esistono corrispondenze. Il messaggio che Claude riceve al posto dei risultati inizia così:

5145 

5146```text wrap theme={null}

5147The search failed, so this is not a "no matches" result: matches may exist. What happened to the search program (ripgrep) is not known, and no results were read. Run the search once more. If it fails again, tell the user that searches are failing.

5148```

5149 

5150**Cosa fare:**

5151 

5152* **La prima volta che compare**: nulla. Il messaggio chiede a Claude di cercare prima di nuovo.

5153* **Se Claude dice che le ricerche stanno fallendo**: acquisisci l'errore di ripgrep per una segnalazione di bug:

5154 1. Dalla tua shell, avvia una sessione con gli stessi flag della sessione in cui le ricerche sono fallite, più [`--debug-file claude-debug.log`](https://code.claude.com/docs/it/cli-reference#cli-flags)

5155 2. Invia a Claude la richiesta che ha portato alla ricerca fallita

5156 3. Se la ricerca fallisce di nuovo, trova la riga che contiene `rg error (signal=` in `claude-debug.log`

5157 4. Includi quella riga quando [segnali il problema](#report-an-error)

5158 

5068### Task output swap refused5159### Task output swap refused

5069 5160 

5070Claude Code salva l'output di ogni comando Bash in un file all'interno della propria directory temporanea. Ogni volta che apre uno di questi file, verifica che il percorso porti ancora al file che ha creato, senza alcun collegamento simbolico, hard link aggiuntivo o directory spostata che lo reindirizzi. Questo messaggio indica che il controllo è fallito, quindi Claude Code ha rifiutato l'operazione invece di scrivere o leggere l'output attraverso quel percorso. Il messaggio compare nel risultato dello strumento Bash:5161Claude Code salva l'output di ogni comando Bash in un file all'interno della propria directory temporanea. Ogni volta che apre uno di questi file, verifica che il percorso porti ancora al file che ha creato, senza alcun collegamento simbolico, hard link aggiuntivo o directory spostata che lo reindirizzi. Questo messaggio indica che il controllo è fallito, quindi Claude Code ha rifiutato l'operazione invece di scrivere o leggere l'output attraverso quel percorso. Il messaggio compare nel risultato dello strumento Bash:


5153 5244 

5154Prima della v2.1.296, Edit e NotebookEdit applicavano una modifica di questo tipo e salvavano ogni byte che non riuscivano a decodificare come `U+FFFD`. Su quelle versioni, aggiorna Claude Code.5245Prima della v2.1.296, Edit e NotebookEdit applicavano una modifica di questo tipo e salvavano ogni byte che non riuscivano a decodificare come `U+FFFD`. Su quelle versioni, aggiorna Claude Code.

5155 5246 

5247### Refusing to apply edits: a hook is configured for file edits in this session

5248 

5249Claude ha tentato di pubblicare un [artefatto](https://code.claude.com/docs/it/artifacts.md) con un [aggiornamento in un solo passaggio](https://code.claude.com/docs/it/artifacts.md#turn-off-one-step-artifact-updates), una piccola modifica al file dell'artefatto inclusa nella pubblicazione, e Claude Code l'ha rifiutato. Non è stato pubblicato nulla e il file è invariato. Il messaggio compare nel risultato dello strumento Artifact:

5250 

5251```text wrap theme={null}

5252Refusing to apply edits to <path>: a hook is configured for file edits in this session, so a publish can't apply edits here. Edit the file, then publish it without edits. Nothing was published.

5253```

5254 

5255Claude Code non consente gli aggiornamenti in un solo passaggio mentre la tua sessione ha un [hook `PreToolUse`](https://code.claude.com/docs/it/hooks#pretooluse) o un [mod](https://code.claude.com/docs/it/plugins/mods/overview.md) su `Edit` o `Write`.

5256 

5257**Cosa fare:**

5258 

5259* Nulla, se Claude ha proceduto a modificare il file e a pubblicarlo

5260* Se Claude si è fermato al messaggio, chiedi a Claude di modificare il file e pubblicarlo

5261* Se il messaggio continua a ripresentarsi, esci e riavvia Claude Code

5262* Se il messaggio si ripresenta anche dopo il riavvio, [disattiva gli aggiornamenti in un solo passaggio](https://code.claude.com/docs/it/artifacts.md#turn-off-one-step-artifact-updates)

5263 

5156### The source file is not valid UTF-8 text5264### The source file is not valid UTF-8 text

5157 5265 

5158Claude ha tentato di pubblicare un [artefatto](https://code.claude.com/docs/it/artifacts.md) da un file i cui byte non si decodificano come testo, o il cui testo contiene già il carattere di sostituzione `U+FFFD`, quindi Claude Code ha rifiutato la pubblicazione prima di caricare qualsiasi cosa. Il messaggio compare nel risultato dello strumento Artifact e indica la prima posizione da correggere:5266Claude ha tentato di pubblicare un [artefatto](https://code.claude.com/docs/it/artifacts.md) da un file i cui byte non si decodificano come testo, o il cui testo contiene già il carattere di sostituzione `U+FFFD`, quindi Claude Code ha rifiutato la pubblicazione prima di caricare qualsiasi cosa. Il messaggio compare nel risultato dello strumento Artifact e indica la prima posizione da correggere:


5623 5731 

5624* Ricrea la directory che il messaggio nomina, o invia da una directory che esiste, quindi riprova5732* Ricrea la directory che il messaggio nomina, o invia da una directory che esiste, quindi riprova

5625 5733 

5734### This forked session could not be started

5735 

5736Hai [creato un fork di una sessione Remote Control](https://code.claude.com/docs/it/remote-control.md#fork-a-session-from-your-browser) da claude.ai, e Claude Code non è riuscito a completare l'avvio della [sessione in background](https://code.claude.com/docs/it/agent-view.md) che esegue il fork sulla tua macchina. Questo avviso appare nella trascrizione della sessione creata con il fork:

5737 

5738```text theme={null}

5739This forked session could not be started. Fork the conversation again to retry.

5740```

5741 

5742La sessione da cui hai creato il fork continua a essere eseguita.

5743 

5744**Cosa fare:**

5745 

5746* Torna alla sessione da cui hai creato il fork e creane di nuovo un fork quando la sessione è inattiva

5747 

5626### Workspace non attendibile quando si invia una sessione in background5748### Workspace non attendibile quando si invia una sessione in background

5627 5749 

5628Hai avviato o riavviato una [sessione in background](https://code.claude.com/docs/it/agent-view.md) in una directory a cui non hai [concesso la fiducia](https://code.claude.com/docs/it/permissions.md#project-allow-rules-and-workspace-trust), e la finestra di dialogo di fiducia del workspace non poteva apparire per chiedertelo. Claude Code non avvia la sessione:5750Hai avviato o riavviato una [sessione in background](https://code.claude.com/docs/it/agent-view.md) in una directory a cui non hai [concesso la fiducia](https://code.claude.com/docs/it/permissions.md#project-allow-rules-and-workspace-trust), e la finestra di dialogo di fiducia del workspace non poteva apparire per chiedertelo. Claude Code non avvia la sessione:

fast-mode.md +40 −18

Details

12 12 

13La modalità veloce è una configurazione ad alta velocità per i modelli supportati, che rende il modello fino a 2,5 volte più veloce a un costo per token più elevato. Attivala con `/fast` quando hai bisogno di velocità per il lavoro interattivo come l'iterazione rapida o il debug in tempo reale, e disattivala quando il costo è più importante della latenza.13La modalità veloce è una configurazione ad alta velocità per i modelli supportati, che rende il modello fino a 2,5 volte più veloce a un costo per token più elevato. Attivala con `/fast` quando hai bisogno di velocità per il lavoro interattivo come l'iterazione rapida o il debug in tempo reale, e disattivala quando il costo è più importante della latenza.

14 14 

15La modalità veloce utilizza lo stesso modello con una configurazione API diversa che dà priorità alla velocità rispetto all'efficienza dei costi, quindi qualità e capacità restano le stesse. La modalità veloce è supportata su Fable 5.2, Opus 5.5, Opus 5 e Opus 4.8. Non è disponibile su Sonnet, Haiku o altri modelli.15La modalità veloce utilizza lo stesso modello con una configurazione API diversa che dà priorità alla velocità rispetto all'efficienza dei costi, quindi qualità e capacità restano le stesse. Sull'API Anthropic, la modalità veloce è supportata su Fable 5.2, Opus 5.5, Opus 5 e Opus 4.8, ma non su Sonnet, Haiku o altri modelli. Per i modelli su Agent Platform di Google Cloud, consulta [Usare la modalità veloce su Agent Platform](#use-fast-mode-on-agent-platform).

16 16 

17> [!WARNING]17> [!WARNING]

18>18>


25 25 

26Cosa sapere:26Cosa sapere:

27 27 

28* Usa `/fast` per attivare/disattivare la modalità veloce in Claude Code CLI. L'[estensione VS Code](https://code.claude.com/docs/it/vs-code.md) offre un comando **Toggle fast mode** quando il modello selezionato supporta la modalità veloce. Claude Code salva tale attivazione/disattivazione nella tua impostazione [`fastMode`](#toggle-fast-mode).28* Usa `/fast` per attivare/disattivare la modalità veloce in Claude Code CLI. L'[estensione VS Code](https://code.claude.com/docs/it/vs-code.md) offre un comando **Toggle fast mode** quando il modello selezionato supporta la modalità veloce. Sull'API Anthropic, Claude Code salva tale attivazione/disattivazione nella tua impostazione [`fastMode`](#toggle-fast-mode).

29* I prezzi della modalità veloce per MTok input/output sono \$16/\$80 su Fable 5.2, \$8/\$40 su Opus 5.5 e \$10/\$50 su Opus 5 e Opus 4.8.29* I prezzi della modalità veloce di Anthropic per MTok input/output sono \$16/\$80 su Fable 5.2, \$8/\$40 su Opus 5.5 e \$10/\$50 su Opus 5 e Opus 4.8.

30* Disponibile per gli utenti di Claude Code sui piani di abbonamento (Pro/Max/Ultra/Team/Enterprise) e su Claude Console. Le organizzazioni Team ed Enterprise hanno bisogno che un Owner la abiliti prima, e le organizzazioni Console hanno bisogno che l'accesso sia fornito prima di poterla usare con Opus 5 o Opus 4.8. [Requisiti](#requirements) descrive entrambi i casi.30* Disponibile per gli utenti di Claude Code sui piani di abbonamento (Pro/Max/Ultra/Team/Enterprise), su Claude Console e su Agent Platform di Google Cloud [a determinate condizioni](#use-fast-mode-on-agent-platform). Le organizzazioni Team ed Enterprise hanno bisogno che un Owner la abiliti prima, e le organizzazioni Console hanno bisogno che l'accesso sia fornito prima di poterla usare con Opus 5 o Opus 4.8. [Requisiti](#requirements) descrive entrambi i casi.

31* Per gli utenti di Claude Code sui piani di abbonamento (Pro/Max/Ultra/Team/Enterprise), la modalità veloce è disponibile solo tramite crediti di utilizzo e non è inclusa nei rate limit dell'abbonamento.31* Per gli utenti di Claude Code sui piani di abbonamento (Pro/Max/Ultra/Team/Enterprise), la modalità veloce è disponibile solo tramite crediti di utilizzo e non è inclusa nei rate limit dell'abbonamento.

32 32 

33## Attivare o disattivare la modalità veloce33## Attivare o disattivare la modalità veloce

34 34 

35Su Agent Platform, `/fast` e l'impostazione `fastMode` funzionano diversamente, quindi segui invece [Usare la modalità veloce su Agent Platform](#use-fast-mode-on-agent-platform).

36 

35Nella CLI, attiva o disattiva la modalità veloce in uno di questi modi:37Nella CLI, attiva o disattiva la modalità veloce in uno di questi modi:

36 38 

37* Esegui `/fast`, premi Space per attivarla o disattivarla, quindi premi Enter per confermare39* Esegui `/fast`, premi Space per attivarla o disattivarla, quindi premi Enter per confermare

38* Su un modello che supporta la modalità veloce, imposta `"fastMode": true` nel tuo [file di impostazioni utente](https://code.claude.com/docs/it/settings.md). Se la imposti su qualsiasi altro modello, rimani su quel modello con la modalità veloce disattivata. Su Fable 5.2, quell'impostazione da sola non ha effetto finché non esegui `/fast` mentre usi Fable 5.2.40* Su un modello che supporta la modalità veloce, imposta `"fastMode": true` nel tuo [file di impostazioni utente](https://code.claude.com/docs/it/settings.md). Se la imposti su qualsiasi altro modello, rimani su quel modello con la modalità veloce disattivata. Su Fable 5.2, quell'impostazione da sola non ha effetto finché non esegui `/fast` mentre usi Fable 5.2.

39 41 

40Per impostazione predefinita, la modalità veloce che attivi in una sessione interattiva persiste tra le sessioni su un modello supportato. Su Fable 5.2, persiste solo se l'hai [attivata mentre usavi Fable 5.2](#switch-models-while-fast-mode-is-on). Puoi configurare la modalità veloce in modo che si reimposti a ogni sessione. Consulta [richiedere l'attivazione per sessione](#require-per-session-opt-in) per i dettagli.42Per impostazione predefinita sull'API Anthropic, la modalità veloce che attivi in una sessione interattiva persiste tra le sessioni su un modello supportato. Su Fable 5.2, persiste solo se l'hai [attivata mentre usavi Fable 5.2](#switch-models-while-fast-mode-is-on). Puoi configurare la modalità veloce in modo che si reimposti a ogni sessione. Consulta [richiedere l'attivazione per sessione](#require-per-session-opt-in) per i dettagli.

41 43 

42Al di fuori di una [sessione cloud](#use-fast-mode-in-cloud-sessions), in [modalità non interattiva](https://code.claude.com/docs/it/headless.md) con il flag `-p`, `/fast` funziona solo in una sessione avviata con la modalità veloce nel valore di [`--settings`](https://code.claude.com/docs/it/cli-reference#cli-flags), ad esempio `claude -p --settings '{"fastMode": true}'`; l'attivazione o disattivazione si applica quindi solo a quella sessione e non viene salvata come impostazione predefinita. La forma con `-p` richiede Claude Code v2.1.205 o successiva. Altrove in modalità non interattiva, il comando segnala che la modalità veloce non è disponibile.44Al di fuori di una [sessione cloud](#use-fast-mode-in-cloud-sessions), in [modalità non interattiva](https://code.claude.com/docs/it/headless.md) con il flag `-p`, `/fast` funziona solo in una sessione avviata con la modalità veloce nel valore di [`--settings`](https://code.claude.com/docs/it/cli-reference#cli-flags), ad esempio `claude -p --settings '{"fastMode": true}'`; l'attivazione o disattivazione si applica quindi solo a quella sessione e non viene salvata come impostazione predefinita. La forma con `-p` richiede Claude Code v2.1.205 o successiva. Altrove in modalità non interattiva, il comando segnala che la modalità veloce non è disponibile.

43 45 


47 49 

48Quando attivi la modalità veloce con `/fast`:50Quando attivi la modalità veloce con `/fast`:

49 51 

50* Se il tuo modello attuale non supporta la modalità veloce, Claude Code passa a Opus52* Sull'API Anthropic, se il tuo modello attuale non supporta la modalità veloce, Claude Code passa a Opus

51* La modalità veloce su Fable 5.2 richiede Claude Code v2.1.321 o successiva53* La modalità veloce su Fable 5.2 richiede Claude Code v2.1.321 o successiva

52* Vedrai un messaggio di conferma: "Fast mode ON"54* Vedrai un messaggio di conferma: "Fast mode ON"

53* Una piccola icona `↯` appare accanto al prompt mentre la modalità veloce è attiva55* Una piccola icona `↯` appare accanto al prompt mentre la modalità veloce è attiva

54* Esegui di nuovo `/fast` in qualsiasi momento per verificare se la modalità veloce è attiva o disattivata56* Esegui di nuovo `/fast` in qualsiasi momento per verificare se la modalità veloce è attiva o disattivata

55 57 

56Opus 5.5 è il modello predefinito della modalità veloce in Claude Code v2.1.280 e successive. Prima della v2.1.280, la modalità veloce usava come predefinito Opus 5 a partire dalla v2.1.219.58Sull'API Anthropic, Opus 5.5 è il modello predefinito della modalità veloce in Claude Code v2.1.280 e successive. Prima della v2.1.280, la modalità veloce usava come predefinito Opus 5 a partire dalla v2.1.219.

57 59 

58Quando disattivi la modalità veloce eseguendo di nuovo `/fast`, rimani sul tuo modello attuale. Per passare a un modello diverso, usa `/model`.60Quando disattivi la modalità veloce eseguendo di nuovo `/fast`, rimani sul tuo modello attuale. Per passare a un modello diverso, usa `/model`.

59 61 


63 65 

64* **Passaggio a un altro modello**: quando passi a un modello che non supporta la modalità veloce, Claude Code disattiva la modalità veloce. Questo include Opus 4.7; prima della v2.1.221, la modalità veloce rimaneva attiva dopo il passaggio a Opus 4.7 e l'API rifiutava le richieste.66* **Passaggio a un altro modello**: quando passi a un modello che non supporta la modalità veloce, Claude Code disattiva la modalità veloce. Questo include Opus 4.7; prima della v2.1.221, la modalità veloce rimaneva attiva dopo il passaggio a Opus 4.7 e l'API rifiutava le richieste.

65* **Ritorno**: la modalità veloce si riattiva su un modello Opus supportato quando la tua preferenza salvata è attiva. Con l'[attivazione per sessione](#require-per-session-opt-in), esegui invece `/fast`.67* **Ritorno**: la modalità veloce si riattiva su un modello Opus supportato quando la tua preferenza salvata è attiva. Con l'[attivazione per sessione](#require-per-session-opt-in), esegui invece `/fast`.

66* **Passaggio a Fable 5.2**: la modalità veloce si disattiva a meno che tu non l'abbia attivata mentre usavi Fable 5.2. Per attivarla, esegui `/fast` su Fable 5.2. A meno che tu non abbia impostato l'[attivazione per sessione](#require-per-session-opt-in), l'attivazione persiste tra le sessioni finché non la disattivi o non la attivi con un altro modello.68* **Passaggio a Fable 5.2**: la modalità veloce si disattiva a meno che tu non l'abbia attivata mentre usavi Fable 5.2. Per attivarla, esegui `/fast` su Fable 5.2. A meno che tu non abbia impostato l'[attivazione per sessione](#require-per-session-opt-in), questa scelta persiste tra le sessioni sull'API Anthropic finché non disattivi la modalità veloce o non la attivi con un altro modello.

67 69 

68Ogni volta che un cambio di modello attiva o disattiva la modalità veloce, Claude Code mostra una conferma `Fast mode ON` o `Fast mode OFF`, e l'icona `↯` appare mentre la modalità veloce è attiva. Questo vale sia che cambi modello con `/model`, con [`/config model=<model>`](https://code.claude.com/docs/it/settings), o da un dispositivo connesso tramite [Remote Control](https://code.claude.com/docs/it/remote-control.md).70Ogni volta che un cambio di modello attiva o disattiva la modalità veloce, Claude Code mostra una conferma `Fast mode ON` o `Fast mode OFF`, e l'icona `↯` appare mentre la modalità veloce è attiva. Questo vale sia che cambi modello con `/model`, con [`/config model=<model>`](https://code.claude.com/docs/it/settings), o da un dispositivo connesso tramite [Remote Control](https://code.claude.com/docs/it/remote-control.md).

69 71 

70Claude Code invia di nuovo lo stato della modalità veloce della sessione ai dispositivi connessi tramite Remote Control dopo un cambio di modello, una riconnessione o un [controllo di disponibilità](#use-fast-mode-behind-proxies-and-llm-gateways) non riuscito.

71 

72### Usare la modalità veloce nelle sessioni cloud72### Usare la modalità veloce nelle sessioni cloud

73 73 

74La modalità veloce funziona nelle [sessioni cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md) quando è disponibile sul tuo account, sia che la sessione venga eseguita su infrastruttura gestita da Anthropic sia su un [runner self-hosted](https://code.claude.com/docs/it/self-hosted-environments). Richiede Claude Code v2.1.271 o successiva nell'ambiente della sessione.74La modalità veloce funziona nelle [sessioni cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md) quando è disponibile sul tuo account, sia che la sessione venga eseguita su infrastruttura gestita da Anthropic sia su un [runner self-hosted](https://code.claude.com/docs/it/self-hosted-environments) sull'API Anthropic. Richiede Claude Code v2.1.271 o successiva nell'ambiente della sessione.

75 75 

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

77 77 


79 79 

80## Comprendi il compromesso di costo80## Comprendi il compromesso di costo

81 81 

82La modalità veloce ha un prezzo per token più elevato rispetto alla velocità standard:82La modalità veloce ha un prezzo per token più elevato rispetto alla velocità standard. Queste sono le tariffe di Anthropic:

83 83 

84| Modello | Input (MTok) | Output (MTok) |84| Modello | Input (MTok) | Output (MTok) |

85| - | - | - |85| - | - | - |


129 129 

130La modalità veloce richiede tutti i seguenti elementi:130La modalità veloce richiede tutti i seguenti elementi:

131 131 

132* **Solo API Anthropic o abbonamento**: la modalità veloce è disponibile tramite l'API Anthropic Console e per i piani di abbonamento Claude utilizzando i crediti di utilizzo. Non è disponibile su Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry o Claude Platform su AWS. Le organizzazioni Console devono anche avere [l'accesso alla modalità veloce abilitato](#enable-fast-mode-for-your-organization) per usarla con Opus 5 o Opus 4.8.132* **Provider supportato**: la modalità veloce è disponibile tramite l'API Anthropic Console, per i piani di abbonamento Claude utilizzando i crediti di utilizzo, e su Google Cloud's Agent Platform [con alcune condizioni](#use-fast-mode-on-agent-platform). Non è disponibile su Amazon Bedrock, Microsoft Foundry o Claude Platform su AWS, dove `/fast` segnala "Fast mode is not available on this provider". Le organizzazioni Console devono anche avere [l'accesso alla modalità veloce abilitato](#enable-fast-mode-for-your-organization) per usarla con Opus 5 o Opus 4.8.

133* **Crediti di utilizzo attivati per i piani di abbonamento**: su un piano Pro, Max, Ultra, Team o Enterprise, il tuo account deve avere i [crediti di utilizzo](https://code.claude.com/docs/it/costs.md#add-usage-credits-to-your-subscription) attivati, il che consente la fatturazione oltre l'utilizzo incluso nel tuo piano. Finché non sono attivati, `/fast` segnala "Fast mode requires usage credits". Per attivarli, segui il passaggio relativo al tuo piano:133* **Crediti di utilizzo attivati per i piani di abbonamento**: su un piano Pro, Max, Ultra, Team o Enterprise, il tuo account deve avere i [crediti di utilizzo](https://code.claude.com/docs/it/costs.md#add-usage-credits-to-your-subscription) attivati, il che consente la fatturazione oltre l'utilizzo incluso nel tuo piano. Finché non sono attivati, `/fast` segnala "Fast mode requires usage credits". Per attivarli, segui il passaggio relativo al tuo piano:

134 * Su Pro, Max e Ultra, attivali nella sezione **Usage credits** di [**Settings > Usage**](https://claude.ai/settings/usage) su claude.ai, oppure esegui `/usage-credits` per aprire quella pagina.134 * Su Pro, Max e Ultra, attivali nella sezione **Usage credits** di [**Settings > Usage**](https://claude.ai/settings/usage) su claude.ai, oppure esegui `/usage-credits` per aprire quella pagina.

135 * Su Team e Enterprise, un membro con accesso alla fatturazione li attiva per l'organizzazione in [**Organization settings > Usage**](https://claude.ai/admin-settings/usage), e un membro senza accesso esegue `/usage-credits` per inviare una richiesta agli amministratori dell'organizzazione.135 * Su Team e Enterprise, un membro con accesso alla fatturazione li attiva per l'organizzazione in [**Organization settings > Usage**](https://claude.ai/admin-settings/usage), e un membro senza accesso esegue `/usage-credits` per inviare una richiesta agli amministratori dell'organizzazione.


150> * **Modalità veloce non abilitata**: se la modalità veloce non è stata abilitata per la tua organizzazione, l'attivazione della modalità veloce con `/fast` mostra "Fast mode has been disabled by your organization."150> * **Modalità veloce non abilitata**: se la modalità veloce non è stata abilitata per la tua organizzazione, l'attivazione della modalità veloce con `/fast` mostra "Fast mode has been disabled by your organization."

151> * **Modalità veloce disattivata dalle impostazioni gestite**: se la tua organizzazione distribuisce [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md) che impostano [`fastMode: false`](https://code.claude.com/docs/it/settings-reference#fastmode), l'attivazione della modalità veloce con `/fast` mostra lo stesso messaggio "Fast mode has been disabled by your organization".151> * **Modalità veloce disattivata dalle impostazioni gestite**: se la tua organizzazione distribuisce [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md) che impostano [`fastMode: false`](https://code.claude.com/docs/it/settings-reference#fastmode), l'attivazione della modalità veloce con `/fast` mostra lo stesso messaggio "Fast mode has been disabled by your organization".

152> * **Opt-in per sessione richiesto**: le impostazioni gestite che impostano [`fastModePerSessionOptIn: true`](#require-per-session-opt-in) rifiutano `/fast on` con lo stesso messaggio ovunque tranne in una sessione di terminale interattiva.152> * **Opt-in per sessione richiesto**: le impostazioni gestite che impostano [`fastModePerSessionOptIn: true`](#require-per-session-opt-in) rifiutano `/fast on` con lo stesso messaggio ovunque tranne in una sessione di terminale interattiva.

153> * **Modello modalità veloce non consentito**: se l'allowlist [`availableModels`](https://code.claude.com/docs/it/model-config#restrict-model-selection) della tua organizzazione esclude il modello Opus della modalità veloce, l'attivazione viene rifiutata con "is not in your organization's allowed models". In una sessione già in esecuzione su un modello consentito che supporta la modalità veloce, `/fast` abilita invece la modalità veloce sul tuo modello attuale senza cambiare modelli.153> * **Modello modalità veloce non consentito**: se l'allowlist [`availableModels`](https://code.claude.com/docs/it/model-config#restrict-model-selection) della tua organizzazione esclude il modello a cui `/fast` passa, l'attivazione viene rifiutata con "is not in your organization's allowed models". In una sessione già in esecuzione su un modello consentito che supporta la modalità veloce, `/fast` abilita invece la modalità veloce sul tuo modello attuale senza cambiare modelli.

154 154 

155### Abilita la modalità veloce per la tua organizzazione155### Abilita la modalità veloce per la tua organizzazione

156 156 


163 163 

164Un'altra opzione per disabilitare completamente la modalità veloce è impostare `CLAUDE_CODE_DISABLE_FAST_MODE=1`. Vedi [Variabili di ambiente](https://code.claude.com/docs/it/env-vars.md).164Un'altra opzione per disabilitare completamente la modalità veloce è impostare `CLAUDE_CODE_DISABLE_FAST_MODE=1`. Vedi [Variabili di ambiente](https://code.claude.com/docs/it/env-vars.md).

165 165 

166### Usa la modalità veloce su Agent Platform

167 

168Su [Google Cloud's Agent Platform](https://code.claude.com/docs/it/google-vertex-ai.md), puoi attivare la modalità veloce per Fable 5.2, con `/fast` in una sessione interattiva o con i flag di avvio in [modalità non interattiva](https://code.claude.com/docs/it/headless.md). Richiede Claude Code v2.1.322 o versioni successive.

169 

170La modalità veloce richiede che la [regione](https://code.claude.com/docs/it/google-vertex-ai.md#region-configuration) per Fable 5.2 sia `global`, `us` o `eu`. In un'altra regione, `/fast` segnala `Fast mode needs Vertex region global, us or eu` e `claude -p` viene eseguito a velocità standard. Imposta la regione nella tua shell prima di avviare Claude Code, ad esempio su `global`:

171 

172```bash theme={null}

173export VERTEX_REGION_CLAUDE_FABLE_5_2=global

174```

175 

176Quindi attiva la modalità veloce:

177 

178* **In una sessione interattiva**: esegui `/fast`. Ti fa passare a Fable 5.2 da un modello Opus o da un altro modello senza modalità veloce su Agent Platform. La modalità veloce non viene salvata come impostazione predefinita.

179* **In modalità non interattiva**: passa Fable 5.2 come [`--model`](https://code.claude.com/docs/it/cli-reference#cli-flags) e la modalità veloce in [`--settings`](https://code.claude.com/docs/it/cli-reference#cli-flags), ad esempio `claude -p "Summarize this project" --model claude-fable-5-2 --settings '{"fastMode": true}'`

180 

181Su Agent Platform, `"fastMode": true` nelle tue impostazioni utente, di progetto, locali o gestite non ha alcun effetto.

182 

183Se Agent Platform rifiuta la modalità veloce, Claude Code torna alla velocità standard. Una sessione interattiva mostra quindi uno di questi messaggi nel terminale:

184 

185* `Using standard speed on Fable 5.2 · fast mode wasn't available`: esegui `/fast on` per provare di nuovo la modalità veloce

186* `Fast mode was refused for this project · trying again in 30m`: Agent Platform ha risposto a una richiesta di modalità veloce con un errore 403 o 404. Per riprovare prima, esegui `/fast on`.

187 

166### Usa la modalità veloce dietro proxy e gateway LLM188### Usa la modalità veloce dietro proxy e gateway LLM

167 189 

168Prima di offrire la modalità veloce, Claude Code verifica la disponibilità della modalità veloce della tua organizzazione con una richiesta diretta a `api.anthropic.com`. Il controllo non segue [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/it/llm-gateway-connect#set-the-base-url-and-credential), quindi su una rete che instrada il traffico Claude attraverso un [gateway LLM](https://code.claude.com/docs/it/llm-gateway) e blocca l'uscita diretta a `api.anthropic.com`, il controllo fallisce anche se le richieste di inferenza funzionano. Il controllo utilizza un [proxy HTTP](https://code.claude.com/docs/it/network-config.md#proxy-configuration) configurato, quindi un blocco di rete fallisce il controllo solo dove `api.anthropic.com` è irraggiungibile anche attraverso il proxy.190Prima di offrire la modalità veloce sull'API Anthropic, Claude Code verifica la disponibilità della modalità veloce della tua organizzazione con una richiesta diretta a `api.anthropic.com`. Il controllo non segue [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/it/llm-gateway-connect#set-the-base-url-and-credential), quindi su una rete che instrada il traffico Claude attraverso un [gateway LLM](https://code.claude.com/docs/it/llm-gateway) e blocca l'uscita diretta a `api.anthropic.com`, il controllo fallisce anche se le richieste di inferenza funzionano.

169 191 

170Se la tua organizzazione ha la modalità veloce abilitata e `/fast` indica il contrario, trova il messaggio che mostra tra questi casi.192Il controllo utilizza invece un [proxy HTTP](https://code.claude.com/docs/it/network-config.md#proxy-configuration) configurato, quindi un blocco di rete fallisce il controllo solo dove `api.anthropic.com` è irraggiungibile anche attraverso il proxy. Se la tua organizzazione ha la modalità veloce abilitata e `/fast` indica il contrario, trova il messaggio che mostra tra questi casi.

171 193 

172#### Fast mode unavailable due to network connectivity issues194#### Fast mode unavailable due to network connectivity issues

173 195 


199 221 

200### Richiedi opt-in per sessione222### Richiedi opt-in per sessione

201 223 

202Per impostazione predefinita, la modalità veloce che un utente attiva in una sessione interattiva persiste tra le sessioni su un modello supportato. Su Fable 5.2, persiste solo se l'utente [l'ha attivata mentre usava Fable 5.2](#switch-models-while-fast-mode-is-on).224Per impostazione predefinita sull'API Anthropic, la modalità veloce che un utente attiva in una sessione interattiva persiste tra le sessioni su un modello supportato. Su Fable 5.2, la modalità veloce persiste solo se l'utente [l'ha attivata mentre usava Fable 5.2](#switch-models-while-fast-mode-is-on).

203 225 

204Per fare in modo che ogni sessione inizi con la modalità veloce disattivata, imposta `fastModePerSessionOptIn` a `true` in qualsiasi [file di impostazioni](https://code.claude.com/docs/it/settings.md#where-settings-live). Gli utenti la abilitano quindi con `/fast` in ogni sessione. Gli Owner sui piani [Team](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_teams#team-&-enterprise) o [Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_enterprise) possono distribuirlo a livello organizzativo tramite [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md).226Per fare in modo che ogni sessione inizi con la modalità veloce disattivata, imposta `fastModePerSessionOptIn` a `true` in qualsiasi [file di impostazioni](https://code.claude.com/docs/it/settings.md#where-settings-live). Gli utenti la abilitano quindi con `/fast` in ogni sessione. Gli Owner sui piani [Team](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_teams#team-&-enterprise) o [Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_enterprise) possono distribuirlo a livello organizzativo tramite [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md).

205 227 


227Se esaurisci i crediti di utilizzo durante una sessione, Claude Code ritenta ogni richiesta della modalità veloce rifiutata a velocità e prezzi standard, quindi continui a lavorare e non c'è raffreddamento. Il modo in cui vedi il rifiuto dipende dal tipo di sessione:249Se esaurisci i crediti di utilizzo durante una sessione, Claude Code ritenta ogni richiesta della modalità veloce rifiutata a velocità e prezzi standard, quindi continui a lavorare e non c'è raffreddamento. Il modo in cui vedi il rifiuto dipende dal tipo di sessione:

228 250 

229* In una sessione interattiva, Claude Code mostra una notifica "Fast mode disabled · Out of usage credits" e disattiva la modalità veloce. La tua preferenza di modalità veloce salvata non cambia; esegui `/fast` per riattivare la modalità veloce.251* In una sessione interattiva, Claude Code mostra una notifica "Fast mode disabled · Out of usage credits" e disattiva la modalità veloce. La tua preferenza di modalità veloce salvata non cambia; esegui `/fast` per riattivare la modalità veloce.

230* In [modalità non interattiva](https://code.claude.com/docs/it/headless.md) con `--output-format stream-json` e tramite l'Agent SDK, Claude Code emette lo stesso testo sul flusso di messaggi come messaggio `system` con sottotipo `notification`, una volta per turno mentre sei senza crediti di utilizzo. La modalità veloce rimane attiva. Richiede Claude Code v2.1.221 o successivo.252* In [modalità non interattiva](https://code.claude.com/docs/it/headless.md) con `--output-format stream-json` e tramite l'Agent SDK, Claude Code emette lo stesso testo sul flusso di messaggi come messaggio `system` con sottotipo `notification`. Il messaggio arriva una volta per turno mentre sei senza crediti di utilizzo. La modalità veloce rimane attiva.

231 253 

232## Anteprima di ricerca254## Anteprima di ricerca

233 255 

Details

93 <td>✓ (Opus 5 e 4.8 richiedono il provisioning)</td>93 <td>✓ (Opus 5 e 4.8 richiedono il provisioning)</td>

94 <td>✗</td>94 <td>✗</td>

95 <td>✗</td>95 <td>✗</td>

96 <td>✗</td>96 <td>✓ ([Fable 5.2, con condizioni](https://code.claude.com/docs/it/fast-mode.md#use-fast-mode-on-agent-platform))</td>

97 <td>✗</td>97 <td>✗</td>

98 </tr>98 </tr>

99 99 


256 256 

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

258>258>

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

260>260>

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

262>262>

263> * [Desktop](https://code.claude.com/docs/it/desktop.md): tramite [impostazioni gestite](https://claude.com/docs/third-party/claude-desktop/configuration) o [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)263> * [Desktop](https://code.claude.com/docs/it/desktop.md): tramite [impostazioni gestite](https://claude.com/docs/third-party/claude-desktop/configuration) o [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)

264> * [Web search](https://code.claude.com/docs/it/tools-reference.md#websearch-tool-behavior): Opus 4, Sonnet 4, Haiku 4.5 e modelli successivi264> * [Web search](https://code.claude.com/docs/it/tools-reference.md#websearch-tool-behavior): Opus 4, Sonnet 4, Haiku 4.5 e modelli successivi

265> * [Fast mode](https://code.claude.com/docs/it/fast-mode.md#use-fast-mode-on-agent-platform): Fable 5.2 nelle regioni `global`, `us` ed `eu`, oppure velocità standard se Agent Platform rifiuta la modalità veloce

265> * [Auto mode](https://code.claude.com/docs/it/auto-mode-config.md): Sonnet 5 o successivi, Opus 4.7 o successivi, Haiku 5.5 e modelli Fable soltanto266> * [Auto mode](https://code.claude.com/docs/it/auto-mode-config.md): Sonnet 5 o successivi, Opus 4.7 o successivi, Haiku 5.5 e modelli Fable soltanto

266> * [Cross-session messaging](https://code.claude.com/docs/it/cross-session-messaging.md): tra le tue sessioni su questa macchina soltanto <sup>[5](#fn5)</sup>267> * [Cross-session messaging](https://code.claude.com/docs/it/cross-session-messaging.md): tra le tue sessioni su questa macchina soltanto <sup>[5](#fn5)</sup>

267> * [Zero Data Retention](https://code.claude.com/docs/it/zero-data-retention.md): soggetto al tuo accordo Google Cloud268> * [Zero Data Retention](https://code.claude.com/docs/it/zero-data-retention.md): soggetto al tuo accordo Google Cloud

gateways.md +1 −1

Details

50 50 

51## Abbonamenti e gateway51## Abbonamenti e gateway

52 52 

53Quando gli sviluppatori si connettono attraverso un gateway con una credenziale gateway, l'utilizzo viene fatturato all'account provider della tua organizzazione alle tariffe API, e i loro abbonamenti claude.ai non vengono utilizzati o addebitati. Impostare [`ANTHROPIC_AUTH_TOKEN`](https://code.claude.com/docs/it/env-vars) per un gateway che esegui, o accedere a un Claude apps gateway con `/login`, disattiva l'accesso all'abbonamento per quella sessione. Ogni richiesta inoltrata sotto quella credenziale viene addebitata all'account dietro la credenziale del provider del gateway.53Quando gli sviluppatori si connettono attraverso un gateway con una credenziale gateway, l'utilizzo viene fatturato all'account provider della tua organizzazione alle tariffe API, e i loro abbonamenti claude.ai non vengono utilizzati o addebitati. Ogni richiesta inoltrata sotto quella credenziale viene addebitata all'account dietro la credenziale del provider del gateway.

54 54 

55L'eccezione è impostare solo `ANTHROPIC_BASE_URL`, senza credenziale gateway. Le richieste vengono comunque instradate attraverso il gateway, ma un accesso claude.ai salvato rimane la credenziale attiva, quindi i limiti di utilizzo e la fatturazione dell'abbonamento si applicano. [Altri gateway LLM](https://code.claude.com/docs/it/llm-gateway#subscriptions-and-gateways) copre quella configurazione e cosa il gateway deve inoltrare affinché funzioni.55L'eccezione è impostare solo `ANTHROPIC_BASE_URL`, senza credenziale gateway. Le richieste vengono comunque instradate attraverso il gateway, ma un accesso claude.ai salvato rimane la credenziale attiva, quindi i limiti di utilizzo e la fatturazione dell'abbonamento si applicano. [Altri gateway LLM](https://code.claude.com/docs/it/llm-gateway#subscriptions-and-gateways) copre quella configurazione e cosa il gateway deve inoltrare affinché funzioni.

56 56 

Details

135| Merge queues | Lettura |135| Merge queues | Lettura |

136| Metadata | Lettura |136| Metadata | Lettura |

137| Pull requests | Lettura e scrittura |137| Pull requests | Lettura e scrittura |

138| Repository creation | Lettura e scrittura |

138| Repository hooks | Lettura e scrittura |139| Repository hooks | Lettura e scrittura |

139| Statuses | Lettura |140| Statuses | Lettura |

140| Workflows | Lettura e scrittura |141| Workflows | Lettura e scrittura |

Details

190Alcune funzionalità si comportano diversamente su GHES rispetto a github.com. La [tabella delle funzionalità](#what-works-with-github-enterprise-server) riassume il supporto; questa sezione copre le soluzioni alternative.190Alcune funzionalità si comportano diversamente su GHES rispetto a github.com. La [tabella delle funzionalità](#what-works-with-github-enterprise-server) riassume il supporto; questa sezione copre le soluzioni alternative.

191 191 

192* **Comando `/install-github-app`**: segui il flusso di [configurazione amministratore](#admin-setup) su claude.ai. Se desideri anche workflow GitHub Actions su GHES, adatta manualmente il [workflow di esempio](https://github.com/anthropics/claude-code-action/blob/main/examples/claude.yml).192* **Comando `/install-github-app`**: segui il flusso di [configurazione amministratore](#admin-setup) su claude.ai. Se desideri anche workflow GitHub Actions su GHES, adatta manualmente il [workflow di esempio](https://github.com/anthropics/claude-code-action/blob/main/examples/claude.yml).

193* **Server GitHub MCP**: utilizza invece la CLI `gh` configurata per il tuo host GHES. Esegui `gh auth login --hostname github.example.com` per autenticarti, quindi Claude può utilizzare i comandi `gh` nelle sessioni.193* **Server GitHub MCP**: in una sessione sulla tua macchina, utilizza invece la CLI `gh` configurata per il tuo host GHES. Esegui `gh auth login --hostname github.example.com` per autenticarti, quindi Claude può utilizzare i comandi `gh` lì.

194 194 

195## Risoluzione dei problemi195## Risoluzione dei problemi

196 196 

goal.md +3 −2

Details

131 131 

132#### Gli errori che devi correggere cancellano l'obiettivo132#### Gli errori che devi correggere cancellano l'obiettivo

133 133 

134Se un turno fallisce con un errore che non si cancellerà finché non lo correggi, Claude Code cancella l'obiettivo e stampa un avviso che nomina la causa. L'avviso inizia con `Goal cleared after an unrecoverable error` e termina con `Run /goal again to continue`. Correggi la causa, quindi [imposta di nuovo l'obiettivo](#set-a-goal) con `/goal <condition>`. Quattro tipi di errore cancellano l'obiettivo:134Se un turno fallisce con un errore che non si cancellerà finché non lo correggi, Claude Code cancella l'obiettivo e stampa un avviso che nomina la causa. L'avviso inizia con `Goal cleared after an unrecoverable error` e termina con `Run /goal again to continue`. Correggi la causa, quindi [imposta di nuovo l'obiettivo](#set-a-goal) con `/goal <condition>`. Gli errori che cancellano l'obiettivo includono:

135 135 

136* Un errore di autenticazione, quando Claude Code gestisce le proprie credenziali. Quando un host le gestisce per te, come l'app desktop o una [sessione cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md), Claude Code lascia l'obiettivo attivo perché l'host ripristina l'accesso da solo.136* Un errore di autenticazione, quando Claude Code gestisce le proprie credenziali. Quando un host le gestisce per te, come l'app desktop o una [sessione cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md), Claude Code lascia l'obiettivo attivo perché l'host ripristina l'accesso da solo.

137* Un disco troppo pieno perché Claude Code possa rinnovare il tuo login claude.ai, quando Claude Code gestisce le proprie credenziali. L'avviso mostra `(disk full)`. [Libera spazio sul disco che contiene la directory di configurazione di Claude Code](https://code.claude.com/docs/it/errors.md#could-not-refresh-your-login-disk-full).

137* Un saldo di credito esaurito138* Un saldo di credito esaurito

138* Un overflow di contesto che [auto-compact](https://code.claude.com/docs/it/model-config.md#set-the-auto-compact-window) non poteva cancellare139* Un overflow di contesto che [auto-compact](https://code.claude.com/docs/it/model-config.md#set-the-auto-compact-window) non poteva cancellare

139* Un modello che non è disponibile140* Un modello che non è disponibile


178 179 

179## Requisiti180## Requisiti

180 181 

181Claude Code rende `/goal` disponibile secondo la stessa [regola di fiducia dell'area di lavoro degli hook nei file di impostazioni](https://code.claude.com/docs/it/permissions.md#what-runs-before-you-trust-a-folder), perché l'evaluator fa parte del sistema di hook. `/goal` è anche non disponibile quando [`disableAllHooks`](https://code.claude.com/docs/it/hooks#disable-or-remove-hooks) è `true` dopo l'applicazione della precedenza delle impostazioni, o quando [`allowManagedHooksOnly`](https://code.claude.com/docs/it/settings-reference#allowmanagedhooksonly) è impostato nelle impostazioni gestite. In ogni caso, il comando ti dice perché invece di non fare nulla silenziosamente.182Claude Code rende `/goal` disponibile secondo la stessa [regola di fiducia del workspace degli hook nei file di impostazioni](https://code.claude.com/docs/it/permissions.md#what-runs-before-you-trust-a-folder), perché l'evaluator fa parte del sistema di hook. `/goal` è anche non disponibile quando [`disableAllHooks`](https://code.claude.com/docs/it/hooks#disable-or-remove-hooks) è `true` dopo l'applicazione della precedenza delle impostazioni, o quando [`allowManagedHooksOnly`](https://code.claude.com/docs/it/settings-reference#allowmanagedhooksonly) è impostato nelle impostazioni gestite.

182 183 

183## Vedi anche184## Vedi anche

184 185 

Details

134 134 

135Per aumentare i tuoi limiti di velocità, contatta il supporto di Google Cloud. Quando utilizzi Google Cloud's Agent Platform, il comando `/logout` non è disponibile poiché l'autenticazione è gestita tramite le credenziali di Google Cloud.135Per aumentare i tuoi limiti di velocità, contatta il supporto di Google Cloud. Quando utilizzi Google Cloud's Agent Platform, il comando `/logout` non è disponibile poiché l'autenticazione è gestita tramite le credenziali di Google Cloud.

136 136 

137Claude Code decide tra [MCP tool search](https://code.claude.com/docs/it/mcp.md#scale-with-mcp-tool-search) e caricamento anticipato per generazione del modello:137Claude Code decide tra [MCP Tool Search](https://code.claude.com/docs/it/mcp.md#scale-with-mcp-tool-search) e caricamento anticipato in base alla generazione del modello:

138 138 

139* **Claude Opus 4.5, Sonnet 4.5, Haiku 4.5 e versioni successive**: Claude Code abilita la ricerca degli strumenti per impostazione predefinita.139* **Claude Opus 4.5, Sonnet 4.5, Haiku 4.5 e versioni successive**: Claude Code abilita la ricerca degli strumenti per impostazione predefinita.

140* **Modelli precedenti**: Claude Code carica le definizioni degli strumenti MCP in anticipo, perché i loro stack di servizio Agent Platform rifiutano l'intestazione beta richiesta. L'impostazione di `ENABLE_TOOL_SEARCH=true` non esegue l'override di questo.140* **Modelli precedenti**: Claude Code carica le definizioni degli strumenti MCP in anticipo, perché i loro stack di servizio Agent Platform rifiutano l'intestazione beta richiesta. L'impostazione di `ENABLE_TOOL_SEARCH=true` non esegue l'override di questo.

141 141 

142Imposta `ENABLE_TOOL_SEARCH=false` per disabilitare la ricerca degli strumenti su ogni modello. Prima della v2.1.221, Claude Code disabilitava la ricerca degli strumenti per tutti i modelli su Google Cloud's Agent Platform a meno che non impostassi `ENABLE_TOOL_SEARCH=true`.142Imposta `ENABLE_TOOL_SEARCH=false` per disabilitare la ricerca degli strumenti su ogni modello.

143 143 

144### Fissa le versioni del modello144### Fissa le versioni del modello

145 145 

hooks.md +28 −4

Details

572 572 

573Claude Code legge il contenuto di testo del tool allo stesso modo in cui legge stdout di hook di comando, seguendo la [regola di analisi sotto il codice di uscita 0](#exit-code-0). Se il tool restituisce `isError: true`, l'hook produce un errore non bloccante e l'esecuzione continua.573Claude Code legge il contenuto di testo del tool allo stesso modo in cui legge stdout di hook di comando, seguendo la [regola di analisi sotto il codice di uscita 0](#exit-code-0). Se il tool restituisce `isError: true`, l'hook produce un errore non bloccante e l'esecuzione continua.

574 574 

575Se un errore dell'hook contiene uno di questi messaggi, Claude Code non è riuscito a leggere la risposta dello strumento, quindi l'hook non ha dato alcun verdetto:

576 

577```text theme={null}

578MCP tool "security_scan" on server "my_server" gave no answer that could be read, because a message from the server was too large, so this hook gave no verdict. If this keeps happening, the tool must send a smaller answer.

579MCP tool "security_scan" on server "my_server" answered without its text, which happens when a result is too large, so this hook gave no verdict. If this keeps happening, the tool must send a smaller answer.

580```

581 

582Su `PreToolUse`, Claude Code rifiuta la chiamata allo strumento che l'hook stava controllando. Su altri eventi come `UserPromptSubmit`, `PostToolUse` e `Stop`, l'errore non è bloccante.

583 

584Se l'errore continua a comparire, fai restituire meno dati allo strumento, oppure modifica [`tool` o `input`](#mcp-tool-hook-fields) dell'hook in modo che la risposta sia più piccola.

585 

575##### Quando il server è ancora in connessione586##### Quando il server è ancora in connessione

576 587 

577Su eventi dove un hook può bloccare o cambiare il risultato, come `PreToolUse` o `Stop`, Claude Code attende un server in connessione prima di chiamare il tool, per al massimo [`MCP_TIMEOUT`](https://code.claude.com/docs/it/env-vars) e entro il [`timeout`](#common-fields) dell'hook stesso. Su eventi osservazionali, come `Notification` o `SessionEnd`, non attende.588Su eventi dove un hook può bloccare o cambiare il risultato, come `PreToolUse` o `Stop`, Claude Code attende un server in connessione prima di chiamare il tool, per al massimo [`MCP_TIMEOUT`](https://code.claude.com/docs/it/env-vars) e entro il [`timeout`](#common-fields) dell'hook stesso. Su eventi osservazionali, come `Notification` o `SessionEnd`, non attende.


892 903 

893#### Hook che avviano un processo in background904#### Hook che avviano un processo in background

894 905 

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

907 

908* Esegui il programma in background

909* Reindirizza il suo stdout e il suo stderr. Ad esempio, il comando Bash `npm run dev > dev-server.log 2>&1 &` li invia entrambi a un file. Se non li reindirizzi, un hook che non è [async](#run-hooks-in-the-background) impiega fino a 10 secondi per terminare dopo l'uscita del proprio processo.

910 

895Se il tuo command hook prende la sua decisione in un processo in background ed esce, un deny che quel processo stampa dopo che Claude Code ha smesso di leggere non blocca la chiamata allo strumento. Per un hook che non è [async](#run-hooks-in-the-background), Claude Code finisce di leggere l'output dell'hook poco dopo l'uscita del processo stesso dell'hook.911Se il tuo command hook prende la sua decisione in un processo in background ed esce, un deny che quel processo stampa dopo che Claude Code ha smesso di leggere non blocca la chiamata allo strumento. Per un hook che non è [async](#run-hooks-in-the-background), Claude Code finisce di leggere l'output dell'hook poco dopo l'uscita del processo stesso dell'hook.

896 912 

897Stampa la decisione prima di avviare un processo in background, e reindirizza lo stdout e lo stderr di quel processo. Se il tuo script stampa un allow e poi avvia un processo in background senza reindirizzarne lo stdout e lo stderr, Claude Code blocca la chiamata allo strumento. L'errore dell'hook include `refusing to honor the suspect capture`.913Stampa la decisione prima di avviare un processo in background, e reindirizza lo stdout e lo stderr di quel processo. Se il tuo script stampa un allow e poi avvia un processo in background senza reindirizzarne lo stdout e lo stderr, Claude Code blocca la chiamata allo strumento. L'errore dell'hook include `stdio went quiet` e `refusing to honor the suspect capture`.

898 914 

899Questo script di hook `PreToolUse` stampa la decisione con `policy-check.sh`, poi carica le metriche in background:915Questo script di hook `PreToolUse` stampa la decisione con `policy-check.sh`, poi carica le metriche in background:

900 916 


1193 1209 

1194* `PreToolUse`: `updatedInput` direttamente sotto `hookSpecificOutput` sostituisce gli argomenti di uno strumento prima che venga eseguito. Consulta [PreToolUse decision control](#pretooluse-decision-control)1210* `PreToolUse`: `updatedInput` direttamente sotto `hookSpecificOutput` sostituisce gli argomenti di uno strumento prima che venga eseguito. Consulta [PreToolUse decision control](#pretooluse-decision-control)

1195* `PermissionRequest`: `updatedInput` all'interno dell'oggetto `decision`. Consulta [PermissionRequest decision control](#permissionrequest-decision-control)1211* `PermissionRequest`: `updatedInput` all'interno dell'oggetto `decision`. Consulta [PermissionRequest decision control](#permissionrequest-decision-control)

1196* `PostToolUse`: `updatedToolOutput` sostituisce il risultato dello strumento. Consulta [PostToolUse decision control](#posttooluse-decision-control)1212* `PostToolUse`: `updatedToolOutput` sostituisce il risultato dello strumento. In una sessione cloud di [Cowork](https://claude.com/docs/cowork/overview), Claude Code ignora `updatedToolOutput` quando lo strumento è `AskUserQuestion` o `ExitPlanMode`, e Claude legge la risposta o il piano originale. Consulta [PostToolUse decision control](#posttooluse-decision-control)

1197* `UserPromptSubmit`: non può sostituire il prompt; si limita a iniettare `additionalContext` insieme a esso1213* `UserPromptSubmit`: non può sostituire il prompt; si limita a iniettare `additionalContext` insieme a esso

1198 1214 

1199Per i casi d'uso di oscuramento o trasformazione, intercetta in `PreToolUse` gli input degli strumenti in uscita e in `PostToolUse` i risultati degli strumenti in entrata.1215Per i casi d'uso di oscuramento o trasformazione, intercetta in `PreToolUse` gli input degli strumenti in uscita e in `PostToolUse` i risultati degli strumenti in entrata.


2210| `addDirectories` | `directories`, `destination` | Aggiunge directory di lavoro. `directories` è un array di stringhe di percorso |2226| `addDirectories` | `directories`, `destination` | Aggiunge directory di lavoro. `directories` è un array di stringhe di percorso |

2211| `removeDirectories` | `directories`, `destination` | Rimuove directory di lavoro |2227| `removeDirectories` | `directories`, `destination` | Rimuove directory di lavoro |

2212 2228 

2229In `rules`, per una [regola di permesso](https://code.claude.com/docs/it/permissions.md#permission-rule-syntax) scritta `Tool(specifier)`, `toolName` è il nome dello strumento e `ruleContent` è lo specificatore:

2230 

2231* `Bash(npm test)`: `{ "toolName": "Bash", "ruleContent": "npm test" }`

2232* `Bash` o `Bash(*)`: `{ "toolName": "Bash" }`, perché entrambi corrispondono all'intero strumento

2233* `mcp__github__get_issue`: `{ "toolName": "mcp__github__get_issue" }`

2234 

2235Non includere `ruleContent` in una regola allow per uno [strumento MCP](https://code.claude.com/docs/it/permissions.md#mcp). Se lo aggiungi, la regola non corrisponde a nessuna chiamata.

2236 

2213> [!NOTE]2237> [!NOTE]

2214>2238>

2215> `setMode` con `bypassPermissions` ha effetto solo se hai avviato la sessione con la modalità bypass già disponibile: `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions` oppure `permissions.defaultMode: "bypassPermissions"` nelle [impostazioni utente, `--settings` o impostazioni gestite](https://code.claude.com/docs/it/settings-reference#permissions-defaultmode). Altrimenti l'aggiornamento non ha alcun effetto. L'aggiornamento non ha effetto neanche quando [`permissions.disableBypassPermissionsMode`](https://code.claude.com/docs/it/permissions#managed-settings) disabilita la modalità, o quando la sessione si avvia in [modalità con restrizioni](https://code.claude.com/docs/it/cli-reference.md#cli-flags).2239> `setMode` con `bypassPermissions` ha effetto solo se hai avviato la sessione con la modalità bypass già disponibile: `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions` oppure `permissions.defaultMode: "bypassPermissions"` nelle [impostazioni utente, `--settings` o impostazioni gestite](https://code.claude.com/docs/it/settings-reference#permissions-defaultmode). Altrimenti l'aggiornamento non ha alcun effetto. L'aggiornamento non ha effetto neanche quando [`permissions.disableBypassPermissionsMode`](https://code.claude.com/docs/it/permissions#managed-settings) disabilita la modalità, o quando la sessione si avvia in [modalità con restrizioni](https://code.claude.com/docs/it/cli-reference.md#cli-flags).


2289| `reason` | Spiegazione mostrata a Claude quando `decision` è `"block"` |2313| `reason` | Spiegazione mostrata a Claude quando `decision` è `"block"` |

2290| `additionalContext` | Stringa aggiunta al contesto di Claude insieme al risultato dello strumento. Vedi [Aggiungere contesto per Claude](#add-context-for-claude) |2314| `additionalContext` | Stringa aggiunta al contesto di Claude insieme al risultato dello strumento. Vedi [Aggiungere contesto per Claude](#add-context-for-claude) |

2291| `classifierContext` | Breve nota sul risultato di questa chiamata destinata al classificatore della [modalità auto](https://code.claude.com/docs/it/permission-modes.md#eliminate-prompts-with-auto-mode) anziché a Claude. Vedi [Annotare un risultato per il classificatore della modalità auto](#annotate-a-result-for-the-auto-mode-classifier). Richiede Claude Code v2.1.236 o successivo |2315| `classifierContext` | Breve nota sul risultato di questa chiamata destinata al classificatore della [modalità auto](https://code.claude.com/docs/it/permission-modes.md#eliminate-prompts-with-auto-mode) anziché a Claude. Vedi [Annotare un risultato per il classificatore della modalità auto](#annotate-a-result-for-the-auto-mode-classifier). Richiede Claude Code v2.1.236 o successivo |

2292| `updatedToolOutput` | Sostituisce l'output dello strumento con il valore fornito prima che venga inviato a Claude. Il valore deve corrispondere alla struttura dell'output dello strumento |2316| `updatedToolOutput` | Sostituisce l'output dello strumento con il valore fornito prima che venga inviato a Claude. Il valore deve corrispondere alla forma dell'output dello strumento. In una sessione cloud di [Cowork](https://claude.com/docs/cowork/overview), Claude Code ignora questo campo quando lo strumento è `AskUserQuestion` o `ExitPlanMode`, e Claude legge la risposta o il piano originale |

2293| `updatedMCPToolOutput` | Sostituisce l'output solo per gli [strumenti MCP](#match-mcp-tools). Preferisci `updatedToolOutput`, che funziona per tutti gli strumenti |2317| `updatedMCPToolOutput` | Sostituisce l'output solo per gli [strumenti MCP](#match-mcp-tools). Preferisci `updatedToolOutput`, che funziona anche per gli strumenti integrati |

2294 2318 

2295L'esempio seguente sostituisce l'output di una chiamata `Bash`. Il valore sostitutivo corrisponde alla struttura dell'output dello strumento `Bash`:2319L'esempio seguente sostituisce l'output di una chiamata `Bash`. Il valore sostitutivo corrisponde alla struttura dell'output dello strumento `Bash`:

2296 2320 

hooks-guide.md +1 −1

Details

964 964 

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

966>966>

967> Se sul tuo computer non ci sono [impostazioni gestite](https://code.claude.com/docs/it/settings.md#check-what-your-organization-enforces) e la tua sessione non usa [credenziali `/login`](https://code.claude.com/docs/it/authentication#authentication-precedence) per un piano Team o Enterprise, un [mod](https://code.claude.com/docs/it/plugins/mods/overview.md) può approvare una chiamata bloccata dal tuo hook `PreToolUse`. Una sessione che usa invece una chiave API o un [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/it/authentication#generate-a-long-lived-token) di lunga durata non sta usando quell'accesso, anche quando quell'accesso è memorizzato.967> Il tuo computer potrebbe non avere [impostazioni gestite](https://code.claude.com/docs/it/settings.md#check-what-your-organization-enforces) né un [file `managed-mcp.json`](https://code.claude.com/docs/it/managed-mcp#deploy-managed-mcp-json), e la tua sessione potrebbe non usare [credenziali `/login`](https://code.claude.com/docs/it/authentication#authentication-precedence) per un piano Team o Enterprise. In questa configurazione, un [mod](https://code.claude.com/docs/it/plugins/mods/overview.md) può approvare una chiamata bloccata dal tuo hook `PreToolUse`. Una sessione che usa invece una chiave API o un [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/it/authentication#generate-a-long-lived-token) di lunga durata non sta usando quell'accesso, anche quando quell'accesso è memorizzato.

968>968>

969> In plan mode, un mod può approvare una chiamata bloccata di questo tipo solo quando è di sola lettura, quindi non la modifica di un file. Per i casi in cui l'approvazione di un mod non supera le tue regole e i tuoi hook, consulta [Estendere i permessi con gli hook](https://code.claude.com/docs/it/permissions.md#precedence-among-rules-hooks-and-mods).969> In plan mode, un mod può approvare una chiamata bloccata di questo tipo solo quando è di sola lettura, quindi non la modifica di un file. Per i casi in cui l'approvazione di un mod non supera le tue regole e i tuoi hook, consulta [Estendere i permessi con gli hook](https://code.claude.com/docs/it/permissions.md#precedence-among-rules-hooks-and-mods).

970 970 

Details

251| `d`/`x` | Elimina selezione |251| `d`/`x` | Elimina selezione |

252| `y` | Copia selezione |252| `y` | Copia selezione |

253| `c`/`s` | Cambia selezione |253| `c`/`s` | Cambia selezione |

254| `p` | Sostituisci selezione con il contenuto del registro |254| `p`/`P` | Sostituisci selezione con il contenuto del registro |

255| `r{char}` | Sostituisci ogni carattere selezionato con `{char}` |255| `r{char}` | Sostituisci ogni carattere selezionato con `{char}` |

256| `~`/`u`/`U` | Attiva/disattiva, minuscole o maiuscole selezione |256| `~`/`u`/`U` | Attiva/disattiva, minuscole o maiuscole selezione |

257| `>`/`<` | Indenta o dedenta righe selezionate |257| `>`/`<` | Indenta o dedenta righe selezionate |


304 304 

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

306 306 

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

308 

307## Comandi Bash in background309## Comandi Bash in background

308 310 

309Claude Code supporta l'esecuzione di comandi Bash in background, permettendovi di continuare a lavorare mentre i processi a lunga esecuzione vengono eseguiti.311Claude Code supporta l'esecuzione di comandi Bash in background, permettendovi di continuare a lavorare mentre i processi a lunga esecuzione vengono eseguiti.

keybindings.md +1 −1

Details

305 305 

306### Azioni del diff306### Azioni del diff

307 307 

308Queste azioni raggiungono solo il precedente visualizzatore di diff di Claude Code, che `/diff` apre al di fuori del [rendering a schermo intero](https://code.claude.com/docs/it/fullscreen.md) dopo aver disabilitato il [mod `cc-plugin-diff`](https://code.claude.com/docs/it/plugins/mods/overview#mods-built-into-claude-code) in `/plugin`. Finché quel mod è abilitato, `/diff` apre invece la [finestra di dialogo del diff](https://code.claude.com/docs/it/interactive-mode.md#diff-dialog). Un `keybindings.json` che nomina queste azioni viene caricato senza errori in entrambi i casi.308Queste azioni raggiungono solo il precedente visualizzatore di diff di Claude Code, che `/diff` apre al di fuori del [rendering a schermo intero](https://code.claude.com/docs/it/fullscreen.md) dopo aver disabilitato il [mod `cc-plugin-diff`](https://code.claude.com/docs/it/plugins/mods/overview#mods-built-into-claude-code) in `/plugin`. Finché quel mod è abilitato, `/diff` apre invece la [finestra di dialogo del diff](https://code.claude.com/docs/it/interactive-mode.md#diff-dialog).

309 309 

310Azioni disponibili nel contesto `DiffDialog`:310Azioni disponibili nel contesto `DiffDialog`:

311 311 

large-codebases.md +30 −28

Details

197* `Marketplace "claude-plugins-official" not found`: aggiungete il marketplace con `/plugin marketplace add anthropics/claude-plugins-official`, quindi riprovate l'installazione.197* `Marketplace "claude-plugins-official" not found`: aggiungete il marketplace con `/plugin marketplace add anthropics/claude-plugins-official`, quindi riprovate l'installazione.

198* `Plugin "<name>" not found in marketplace "claude-plugins-official"`: la tua copia locale del catalogo del marketplace potrebbe non essere aggiornata. Aggiornala con `/plugin marketplace update claude-plugins-official`, quindi riprova l'installazione. Se il nuovo tentativo stampa lo stesso messaggio, consulta [Plugin not found in marketplace](https://code.claude.com/docs/it/plugins/troubleshooting.md#plugin-not-found-in-marketplace).198* `Plugin "<name>" not found in marketplace "claude-plugins-official"`: la tua copia locale del catalogo del marketplace potrebbe non essere aggiornata. Aggiornala con `/plugin marketplace update claude-plugins-official`, quindi riprova l'installazione. Se il nuovo tentativo stampa lo stesso messaggio, consulta [Plugin not found in marketplace](https://code.claude.com/docs/it/plugins/troubleshooting.md#plugin-not-found-in-marketplace).

199 199 

200Per abilitare un plugin per tutti nel repository piuttosto che installarlo voi stessi, aggiungetelo all'impostazione di progetto [`enabledPlugins`](https://code.claude.com/docs/it/settings-reference#plugin-settings).200Per attivare un plugin per tutti nel repository, aggiungilo all'[impostazione di progetto `enabledPlugins`](https://code.claude.com/docs/it/settings-reference#plugin-settings). Ogni persona deve comunque [installarlo](https://code.claude.com/docs/it/plugins/loading.md#enabled-in-project-settings-but-not-installed).

201 201 

202I plugin di code intelligence richiedono il binario del language server del linguaggio su ogni macchina dello sviluppatore. Vedi [quale binario richiede ogni linguaggio](https://code.claude.com/docs/it/plugins/code-intelligence.md). L'installazione dal marketplace ufficiale richiede accesso di rete a GitHub, dove è ospitato il marketplace. Su una rete ristretta, [aggiungete il marketplace da un host Git interno o da un percorso locale](https://code.claude.com/docs/it/plugins/install.md#add-a-marketplace) invece.202I plugin di code intelligence richiedono il binario del language server del linguaggio su ogni macchina dello sviluppatore. Vedi [quale binario richiede ogni linguaggio](https://code.claude.com/docs/it/plugins/code-intelligence.md). L'installazione dal marketplace ufficiale richiede accesso di rete a GitHub, dove è ospitato il marketplace. Su una rete ristretta, [aggiungete il marketplace da un host Git interno o da un percorso locale](https://code.claude.com/docs/it/plugins/install.md#add-a-marketplace) invece.

203 203 

204Questo si abbina bene con `claudeMdExcludes` e le regole `Read` di negazione sopra. Quelli mantengono il contenuto irrilevante fuori dal contesto, e code intelligence impedisce a Claude di leggere attraverso quello che rimane per individuare una definizione.204Questo si abbina bene con `claudeMdExcludes` e le regole `Read` di negazione sopra. Quelli mantengono il contenuto irrilevante fuori dal contesto, e code intelligence impedisce a Claude di leggere attraverso quello che rimane per individuare una definizione.

205 205 

206## Ambito worktrees e accesso ai file206## Limitare i worktree e l'accesso ai file

207 207 

208Queste impostazioni controllano cosa è su disco nei worktrees e quali directory Claude può leggere e scrivere oltre il tuo punto di partenza.208Queste impostazioni controllano cosa si trova su disco nei worktree e quali directory Claude può leggere e scrivere oltre il tuo punto di partenza.

209 209 

210### Controlla solo le directory di cui hai bisogno210### Eseguire il checkout solo delle directory necessarie

211 211 

212Il flag `--worktree` avvia una sessione in un nuovo git worktree in modo che i cambiamenti rimangono isolati dal tuo checkout principale. Per impostazione predefinita controlla l'intero repository. In un repository di grandi dimensioni, l'impostazione `worktree.sparsePaths` usa git sparse-checkout per scrivere solo le directory elencate più i file a livello di radice su disco, in modo che i worktrees si avviino più velocemente e usino meno spazio.212Il flag `--worktree` avvia una sessione in un nuovo worktree git, in modo che le modifiche restino isolate dal tuo checkout principale. Per impostazione predefinita esegue il checkout dell'intero repository. In un repository di grandi dimensioni, l'impostazione `worktree.sparsePaths` usa lo sparse-checkout di git per scrivere su disco solo le directory elencate più i file a livello di root, così i worktree si avviano più velocemente e occupano meno spazio.

213 213 

214Se tutti coloro che lavorano in questa directory hanno bisogno degli stessi percorsi, impegna l'impostazione a `.claude/settings.json`. Per aggiungere percorsi per te, usa `.claude/settings.local.json`: gli elenchi si uniscono tra gli ambiti, quindi un file locale può aggiungere percorsi all'elenco impegnato ma non rimuoverli.214Se tutti coloro che lavorano in questa directory hanno bisogno degli stessi percorsi, fai il commit dell'impostazione in `.claude/settings.json`. Per aggiungere percorsi solo per te, usa `.claude/settings.local.json`: le liste vengono unite tra gli ambiti, quindi un file locale può aggiungere percorsi alla lista di cui è stato fatto il commit ma non rimuoverli.

215 215 

216I JSON esempi su questa pagina mostrano un'impostazione alla volta. Se il tuo `.claude/settings.json` contiene già altre chiavi, come le regole `permissions.deny` sopra, aggiungi la chiave `worktree` accanto a loro piuttosto che sostituire il file. [Mettilo insieme](#put-it-together) mostra il risultato combinato.216Gli esempi JSON in questa pagina mostrano un'impostazione alla volta. Se il tuo `.claude/settings.json` contiene già altre chiavi, come le regole `permissions.deny` viste sopra, aggiungi la chiave `worktree` accanto a esse invece di sostituire il file. [Mettere tutto insieme](#put-it-together) mostra il risultato combinato.

217 217 

218L'esempio sottostante mostra il file impegnato:218L'esempio seguente mostra il file di cui è stato fatto il commit:

219 219 

220```json .claude/settings.json theme={null}220```json .claude/settings.json theme={null}

221{221{


229}229}

230```230```

231 231 

232Quando Claude crea un worktree, controlla solo `.claude/`, `packages/api/` e `packages/shared/` invece dell'albero completo. I percorsi in `sparsePaths` sono relativi alla radice del repository, indipendentemente da quale sottodirectory avvii Claude. Qualsiasi percorso di directory funziona qui, non solo le radici dei pacchetti.232Quando Claude crea un worktree, esegue il checkout solo di `.claude/`, `packages/api/` e `packages/shared/` invece dell'intero albero. I percorsi in `sparsePaths` sono relativi alla root del repository, indipendentemente dalla sottodirectory da cui avvii Claude. Qui funziona qualsiasi percorso di directory, non solo le root dei package.

233 233 

234Questo è particolarmente utile per [l'isolamento del worktree del subagent](https://code.claude.com/docs/it/worktrees.md#isolate-subagents-with-worktrees). I subagent sono istanze Claude parallele generate per sottocompiti, e ognuno che viene eseguito in un worktree ottiene un checkout leggero invece dell'albero completo. Tutti i worktrees in una sessione condividono lo stesso `sparsePaths`, quindi se un subagent ha bisogno di `packages/api/` e un altro ha bisogno di `packages/web/`, elencali entrambi.234Questo è particolarmente utile per l'[isolamento con worktree dei subagent](https://code.claude.com/docs/it/worktrees.md#isolate-subagents-with-worktrees). I subagent sono istanze parallele di Claude generate per le sottoattività, e ognuno di quelli eseguiti in un worktree ottiene un checkout leggero invece dell'intero albero. Tutti i worktree di una sessione condividono gli stessi `sparsePaths`, quindi se un subagent ha bisogno di `packages/api/` e un altro di `packages/web/`, elencali entrambi.

235 235 

236Elenca le directory in `sparsePaths`, non i singoli file. I file a livello di radice come `package.json`, `tsconfig.base.json` e i file di lock vengono sempre controllati insieme alle directory che elenchi. Le directory a livello di radice non lo sono, quindi includi `.claude` nell'elenco se vuoi che il `.claude/settings.json` della radice del repository, `.claude/rules/` e le skills siano disponibili dentro il worktree. Per skills di progetto, agenti e comandi, vedi [Cosa i worktrees condividono con il checkout principale](https://code.claude.com/docs/it/worktrees.md#what-worktrees-share-with-the-main-checkout).236Elenca directory in `sparsePaths`, non singoli file. I file a livello di root come `package.json`, `tsconfig.base.json` e i file di lock vengono sempre inclusi nel checkout insieme alle directory che elenchi. Le directory a livello di root invece no, quindi includi `.claude` nella lista se vuoi che `.claude/settings.json` o `.claude/rules/` della root del repository siano disponibili all'interno del worktree. Per le skill, gli agenti e i comandi del progetto, consulta [Cosa condividono i worktree con il checkout principale](https://code.claude.com/docs/it/worktrees.md#what-worktrees-share-with-the-main-checkout).

237 237 

238Sparse checkout richiede a git di abilitare `extensions.worktreeConfig` nel `.git/config` condiviso del repository mentre esiste un worktree sparse. Claude Code rimuove quella voce dopo che l'ultimo worktree viene rimosso, ma solo se Claude Code l'ha aggiunta. Non rimuove mai un valore che hai impostato tu stesso.238> [!NOTE]

239>

240> Lo sparse checkout richiede che git abiliti `extensions.worktreeConfig` nel file `.git/config` condiviso del repository finché esiste un worktree sparse. Claude Code rimuove quella voce dopo la rimozione dell'ultimo worktree, ma solo se è stato Claude Code ad aggiungerla.

239 241 

240Per evitare di duplicare directory di grandi dimensioni come `node_modules` tra i worktrees, abbina `sparsePaths` con `symlinkDirectories` nello stesso `.claude/settings.json`:242Per evitare di duplicare directory di grandi dimensioni come `node_modules` tra i worktree, abbina `sparsePaths` a `symlinkDirectories` nello stesso `.claude/settings.json`:

241 243 

242```json .claude/settings.json theme={null}244```json .claude/settings.json theme={null}

243{245{


254}256}

255```257```

256 258 

257Questo crea un symlink da `node_modules/` di ogni worktree alla copia del repository principale piuttosto che duplicarlo su disco.259Questo crea un collegamento simbolico dalla directory `node_modules/` di ogni worktree alla copia del repository principale invece di duplicarla su disco.

258 260 

259> [!NOTE]261> [!NOTE]

260>262>

261> Le impostazioni `sparsePaths` e `symlinkDirectories` vengono lette dalla tua directory di avvio prima che il worktree venga creato. Dopo la creazione, la directory di lavoro della sessione è la radice del worktree, non la sottodirectory da cui hai avviato. Le impostazioni di progetto dentro il worktree quindi si caricano da `.claude/settings.json` della radice del worktree, la copia controllata del file della radice del repository. Metti qualsiasi altra impostazione di cui hai bisogno dentro i worktrees, come regole di autorizzazione o hook, in `.claude/settings.json` della radice del repository.263> Le impostazioni `sparsePaths` e `symlinkDirectories` vengono lette dalla tua directory di partenza prima che il worktree venga creato. Dopo la creazione, la directory di lavoro della sessione è la root del worktree, non la sottodirectory da cui hai avviato Claude. Le impostazioni di progetto all'interno del worktree vengono quindi caricate dal `.claude/settings.json` della root del worktree, ovvero la copia sottoposta a checkout del file nella root del repository. Inserisci tutte le altre impostazioni di cui hai bisogno all'interno dei worktree, come regole di permesso o hook, nel `.claude/settings.json` della root del repository.

262 264 

263Per il riferimento completo delle impostazioni del worktree, vedi [Impostazioni del worktree](https://code.claude.com/docs/it/settings-reference.md#worktree).265Per il riferimento completo delle impostazioni dei worktree, consulta [Impostazioni dei worktree](https://code.claude.com/docs/it/settings-reference.md#worktree).

264 266 

265### Concedi accesso tra pacchetti o repository267### Concedere l'accesso tra package o repository

266 268 

267Questa sezione si applica quando avvii Claude da una sottodirectory, o quando un compito si estende su più checkouts. Se avvii dalla radice del repository in un albero singolo di grandi dimensioni, Claude ha già accesso a ogni file e puoi saltare questo.269Questa sezione si applica quando avvii Claude da una sottodirectory, oppure quando un'attività coinvolge più checkout. Se avvii Claude dalla root del repository in un unico albero di grandi dimensioni, Claude ha già accesso a ogni file e puoi saltare questa parte.

268 270 

269Quando avvii Claude da `packages/api/`, può leggere e scrivere file all'interno di quella directory. Se un compito richiede modifiche tra pacchetti, come aggiornare un tipo condiviso che sia `api` che `web` importano, devi concedere accesso alla directory sorella. Lo stesso meccanismo concede accesso a un repository di cui è stato eseguito il checkout separatamente.271Quando avvii Claude da `packages/api/`, può leggere e scrivere file all'interno di quella directory. Se un'attività richiede modifiche tra più package, come l'aggiornamento di un tipo condiviso importato sia da `api` sia da `web`, devi concedere l'accesso alla directory adiacente. Lo stesso meccanismo concede l'accesso a un repository di cui è stato eseguito un checkout separato.

270 272 

271L'impostazione `additionalDirectories` in `.claude/settings.json` dà a Claude accesso alle directory al di fuori della directory di lavoro. L'esempio sottostante concede accesso a due pacchetti fratelli:273L'impostazione `additionalDirectories` in `.claude/settings.json` dà a Claude accesso a directory esterne alla directory di lavoro. L'esempio seguente concede l'accesso a due package adiacenti:

272 274 

273```json packages/api/.claude/settings.json theme={null}275```json packages/api/.claude/settings.json theme={null}

274{276{


281}283}

282```284```

283 285 

284I percorsi relativi si risolvono rispetto alla directory da cui avvii Claude. Con questa configurazione, Claude può leggere e modificare file in `packages/shared/` e `packages/web/` mentre lavora da `packages/api/`.286I percorsi relativi vengono risolti rispetto alla directory da cui avvii Claude. Con questa configurazione, Claude può leggere e modificare file in `packages/shared/` e `packages/web/` mentre lavora da `packages/api/`.

285 287 

286Puoi anche concedere accesso in fase di esecuzione senza modificare le impostazioni passando `--add-dir` quando avvii Claude:288Puoi anche concedere l'accesso in fase di esecuzione senza modificare le impostazioni, passando `--add-dir` quando avvii Claude:

287 289 

288```bash theme={null}290```bash theme={null}

289claude --add-dir ../shared291claude --add-dir ../shared

290```292```

291 293 

292Comunque aggiungi una directory, Claude può leggere e modificare file in essa. Se il CLAUDE.md della directory, i file `.claude/rules/` e le skills si caricano anche dipende da come l'hai aggiunta:294In qualunque modo tu aggiunga una directory, Claude può leggere e modificare i file al suo interno. Il caricamento anche del CLAUDE.md, dei file `.claude/rules/` e delle skill della directory dipende da come l'hai aggiunta:

293 295 

294| Aggiunto con | Carica CLAUDE.md e regole | Carica skills |296| Aggiunta con | Carica CLAUDE.md e regole | Carica le skill |

295| :- | :- | :- |297| :- | :- | :- |

296| Impostazione `additionalDirectories` | Mai | Mai |298| Impostazione `additionalDirectories` | Mai | Mai |

297| Flag `--add-dir` o comando `/add-dir` | Solo con la variabile di ambiente sottostante | Sì |299| Flag `--add-dir` o comando `/add-dir` | Solo con la variabile d'ambiente indicata sotto | Sì |

298 300 

299Per caricare file CLAUDE.md e regole da una directory aggiunta con `--add-dir` o `/add-dir`, imposta la variabile di ambiente `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD`:301Per caricare CLAUDE.md e i file delle regole da una directory aggiunta con `--add-dir` o `/add-dir`, imposta la variabile d'ambiente `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD`:

300 302 

301```bash theme={null}303```bash theme={null}

302CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 claude --add-dir ../shared304CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 claude --add-dir ../shared

303```305```

304 306 

305La variabile di ambiente non ha effetto sulle directory elencate nell'impostazione `additionalDirectories`. Vedi [Carica da directory aggiuntive](https://code.claude.com/docs/it/memory.md#load-from-additional-directories) per i dettagli.307La variabile d'ambiente non ha alcun effetto sulle directory elencate nell'impostazione `additionalDirectories`. Consulta [Caricare da directory aggiuntive](https://code.claude.com/docs/it/memory.md#load-from-additional-directories) per i dettagli.

306 308 

307Per directory fratello che tutti in questa area hanno bisogno, impegna `additionalDirectories` a `.claude/settings.json`. Per una selezione personale o un accesso una tantum, usa `.claude/settings.local.json` o passa `--add-dir` all'avvio.309Per le directory adiacenti di cui tutti in quest'area hanno bisogno, fai il commit di `additionalDirectories` in `.claude/settings.json`. Per una selezione personale o un accesso occasionale, usa `.claude/settings.local.json` oppure passa `--add-dir` all'avvio.

308 310 

309## Aggiungere skills per directory311## Aggiungere skills per directory

310 312 

Details

156 156 

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

158 158 

159Una variabile di credenziale del gateway ha precedenza su un accesso claude.ai salvato o una chiave Console. Il tuo accesso claude.ai rimane salvato e inutilizzato mentre la variabile è impostata; annulla l'impostazione della variabile e Claude Code torna ad esso. Con `ANTHROPIC_AUTH_TOKEN`, la variabile ha precedenza immediatamente. Con `ANTHROPIC_API_KEY`, ti viene chiesto una volta in modalità interattiva di approvare la chiave prima che prenda il controllo.159Una variabile di credenziale del gateway ha la precedenza su un accesso claude.ai salvato o una chiave Console. Con `ANTHROPIC_AUTH_TOKEN`, la variabile ha la precedenza immediatamente. Con `ANTHROPIC_API_KEY`, ti viene chiesto una volta in modalità interattiva di approvare la chiave prima che prenda il controllo.

160 160 

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

162 162 


378L'impostazione della variabile ha questi effetti e limiti:378L'impostazione della variabile ha questi effetti e limiti:

379 379 

380* Disabilita gli aggiornamenti automatici, quindi pianificare un altro percorso di aggiornamento, come il gestore di pacchetti o la distribuzione gestita.380* Disabilita gli aggiornamenti automatici, quindi pianificare un altro percorso di aggiornamento, come il gestore di pacchetti o la distribuzione gestita.

381* Sopprime il controllo di disponibilità della [modalità veloce](https://code.claude.com/docs/it/fast-mode.md). A meno che un controllo precedente non abbia già abilitato la modalità veloce sulla macchina, `/fast` segnala che la modalità veloce non è disponibile.381* Sopprime il controllo di disponibilità della [modalità veloce](https://code.claude.com/docs/it/fast-mode.md). Sulla API Anthropic, se `/fast` segnala poi che la modalità veloce non è disponibile, consulta [usare la modalità veloce dietro proxy e gateway LLM](https://code.claude.com/docs/it/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) per ripristinare la modalità veloce.

382* Non influisce sul [rilevamento dei modelli gateway](#add-gateway-models-to-the-model-picker), che interroga solo il gateway. Prima della v2.1.257, la variabile fermava anche l'aggiornamento del rilevamento, quindi il selettore manteneva l'elenco precedentemente memorizzato nella cache.382* Non influisce sul [rilevamento dei modelli gateway](#add-gateway-models-to-the-model-picker), che interroga solo il gateway. Prima della v2.1.257, la variabile fermava anche l'aggiornamento del rilevamento, quindi il selettore manteneva l'elenco precedentemente memorizzato nella cache.

383* Il [controllo di sicurezza del dominio](https://code.claude.com/docs/it/data-usage.md#webfetch-domain-safety-check) dello strumento WebFetch non è interessato e chiama ancora `api.anthropic.com`. Disattivarlo separatamente con `skipWebFetchPreflight: true` nelle [impostazioni](https://code.claude.com/docs/it/settings.md) se la rete blocca quell'host.383* Il [controllo di sicurezza del dominio](https://code.claude.com/docs/it/data-usage.md#webfetch-domain-safety-check) dello strumento WebFetch non è interessato e chiama ancora `api.anthropic.com`. Disattivarlo separatamente con `skipWebFetchPreflight: true` nelle [impostazioni](https://code.claude.com/docs/it/settings.md) se la rete blocca quell'host.

384* Per ogni flusso di telemetria e la variabile che lo controlla, vedere [servizi di telemetria](https://code.claude.com/docs/it/data-usage.md#telemetry-services).384* Per ogni flusso di telemetria e la variabile che lo controlla, vedere [servizi di telemetria](https://code.claude.com/docs/it/data-usage.md#telemetry-services).

Details

251 251 

252* Un prompt di accesso significa un divario di credenziale. Eseguite `/status` e aprite la scheda **Status**: quando la riga `Setting sources` non include impostazioni gestite, la distribuzione non ha raggiunto la macchina; quando lo fa, la credenziale dello sviluppatore non è stata consegnata, quindi impostate `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper`252* Un prompt di accesso significa un divario di credenziale. Eseguite `/status` e aprite la scheda **Status**: quando la riga `Setting sources` non include impostazioni gestite, la distribuzione non ha raggiunto la macchina; quando lo fa, la credenziale dello sviluppatore non è stata consegnata, quindi impostate `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper`

253* Gli errori `Failed to authenticate` significano che il gateway sta rifiutando le richieste; il suo log dice quale credenziale ha fallito. Un rifiuto che il gateway registra stesso nomina la chiave dello sviluppatore, mentre un `401` da `api.anthropic.com` o dall'endpoint del vostro provider significa che la credenziale del provider che il gateway detiene è stata rifiutata253* Gli errori `Failed to authenticate` significano che il gateway sta rifiutando le richieste; il suo log dice quale credenziale ha fallito. Un rifiuto che il gateway registra stesso nomina la chiave dello sviluppatore, mentre un `401` da `api.anthropic.com` o dall'endpoint del vostro provider significa che la credenziale del provider che il gateway detiene è stata rifiutata

254* Un prompt di approvazione una tantum per la chiave è previsto al primo utilizzo quando il gateway si aspetta chiavi nell'intestazione `x-api-key`, impostata come `ANTHROPIC_API_KEY`. Con `ANTHROPIC_AUTH_TOKEN`, nessun prompt appare e la variabile prende il controllo silenziosamente; un accesso claude.ai precedentemente salvato è inattivo per quella sessione254* Una richiesta di approvazione una tantum per la chiave è prevista al primo utilizzo quando il gateway si aspetta le chiavi nell'intestazione `x-api-key`, impostata come `ANTHROPIC_API_KEY`

255 255 

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

257 257 

managed-mcp.md +1 −1

Details

187 187 

188* `type` è `http` o `sse`. Come in `.mcp.json`, `streamable-http` è accettato come alias per `http`.188* `type` è `http` o `sse`. Come in `.mcp.json`, `streamable-http` è accettato come alias per `http`.

189* `url` è un URL `https://`. Claude Code rifiuta un URL `http://` semplice, incluso uno che punta a `localhost`.189* `url` è un URL `https://`. Claude Code rifiuta un URL `http://` semplice, incluso uno che punta a `localhost`.

190* La voce non ha un membro `command`, `args`, `env` o `headersHelper`, quindi un documento di impostazioni gestite non nomina mai un programma da eseguire sulla macchina di un utente.190* La voce non ha un membro `command`, `args`, `env` o `headersHelper`.

191* Nessun valore contiene un riferimento `${VAR}`. Claude Code non espande le variabili di ambiente in queste voci, quindi scrivi valori letterali.191* Nessun valore contiene un riferimento `${VAR}`. Claude Code non espande le variabili di ambiente in queste voci, quindi scrivi valori letterali.

192* Il nome del server contiene solo lettere, numeri, trattini e sottolineature, e nessuna chiave o valore contiene caratteri di controllo o formattazione invisibile.192* Il nome del server contiene solo lettere, numeri, trattini e sottolineature, e nessuna chiave o valore contiene caratteri di controllo o formattazione invisibile.

193 193 

mcp.md +161 −163

Details

58 58 

59Claude ti chiede informazioni sul tuo caso d'uso e scaffolda un server HTTP remoto o un server stdio locale.59Claude ti chiede informazioni sul tuo caso d'uso e scaffolda un server HTTP remoto o un server stdio locale.

60 60 

61## Installare i server MCP61## Installazione dei server MCP

62 62 

63I server MCP possono essere configurati in diversi modi a seconda delle tue esigenze:63I server MCP possono essere configurati in diversi modi a seconda delle tue esigenze:

64 64 

65### Opzione 1: aggiungere un server HTTP remoto65### Opzione 1: aggiungere un server HTTP remoto

66 66 

67I server HTTP sono l'opzione consigliata per connettersi a server MCP remoti. È il trasporto più ampiamente supportato per i servizi basati su cloud.67I server HTTP sono l'opzione consigliata per connettersi a server MCP remoti. Questo è il trasporto più ampiamente supportato per i servizi basati sul cloud.

68 68 

69```bash theme={null}69```bash theme={null}

70# Basic syntax70# Basic syntax


78 --header "Authorization: Bearer your-token"78 --header "Authorization: Bearer your-token"

79```79```

80 80 

81Quando configuri i server MCP tramite JSON in `.mcp.json`, `~/.claude.json` o `claude mcp add-json`, il campo `type` accetta `streamable-http` come alias di `http`. La specifica MCP usa il nome `streamable-http` per questo trasporto, quindi le configurazioni copiate dalla documentazione del server funzionano senza modifiche.81Quando configuri i server MCP tramite JSON in `.mcp.json`, `~/.claude.json` o `claude mcp add-json`, il campo `type` accetta `streamable-http` come alias di `http`. La specifica MCP usa il nome `streamable-http` per questo trasporto, quindi le configurazioni copiate dalla documentazione dei server funzionano senza modifiche.

82 82 

83Una voce JSON che ha un `url` ma nessun `type` è un errore di configurazione, perché Claude Code legge una voce senza `type` come un server stdio. Claude Code salta quel server e segnala `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`.83Una voce JSON che ha un `url` ma nessun `type` è un errore di configurazione, perché Claude Code interpreta una voce senza `type` come un server stdio. Claude Code salta quel server e segnala `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`.

84 84 

85Solo un'applicazione host dell'SDK, come un'applicazione [Agent SDK](https://code.claude.com/docs/it/agent-sdk/mcp.md) o l'[app desktop](https://code.claude.com/docs/it/desktop.md), può registrare un server in-process `"type": "sdk"`. Claude Code salta una voce `"type": "sdk"` in `.mcp.json`, `~/.claude.json` o nelle impostazioni e segnala `Skipped — MCP server "<name>" declares type "sdk", which only an SDK host application can register`.85Solo un'applicazione host dell'SDK, come un'applicazione [Agent SDK](https://code.claude.com/docs/it/agent-sdk/mcp.md) o l'[app desktop](https://code.claude.com/docs/it/desktop.md), può registrare un server in-process `"type": "sdk"`. Claude Code salta una voce `"type": "sdk"` in `.mcp.json`, `~/.claude.json` o nelle impostazioni e segnala `Skipped — MCP server "<name>" declares type "sdk", which only an SDK host application can register`.

86 86 

87> [!NOTE]87> [!NOTE]

88>88>

89> Nelle esecuzioni con `--output-format stream-json`, Claude Code segnala una voce `--mcp-config` saltata anche nel [campo `mcp_server_errors`](https://code.claude.com/docs/it/headless#stream-responses) dell'evento `system/init`, così gli script possono rilevare che il server non è mai stato caricato.89> Nelle esecuzioni con `--output-format stream-json`, Claude Code segnala anche una voce `--mcp-config` saltata nel [campo `mcp_server_errors`](https://code.claude.com/docs/it/headless#stream-responses) dell'evento `system/init`, così gli script possono rilevare che il server non è mai stato caricato.

90 90 

91### Opzione 2: aggiungere un server SSE remoto91### Opzione 2: aggiungere un server SSE remoto

92 92 


94>94>

95> Il trasporto SSE (Server-Sent Events) è deprecato. Usa invece i server HTTP, dove disponibili.95> Il trasporto SSE (Server-Sent Events) è deprecato. Usa invece i server HTTP, dove disponibili.

96 96 

97Alcuni servizi espongono ancora solo un endpoint SSE. Aggiungili con lo stesso comando `claude mcp add --transport http <name> <url>` usato per [un server HTTP](#option-1-add-a-remote-http-server). Claude Code prova prima il trasporto HTTP e passa a SSE quando il server non lo accetta. Il passaggio automatico richiede Claude Code v2.1.265 o successiva.97Alcuni servizi espongono ancora solo un endpoint SSE. Aggiungili con lo stesso comando `claude mcp add --transport http <name> <url>` usato per [un server HTTP](#option-1-add-a-remote-http-server). Claude Code prova prima il trasporto HTTP e passa a SSE quando il server non lo accetta. Il passaggio automatico richiede Claude Code v2.1.265 o successivo.

98 98 

99In una versione precedente, o per connetterti direttamente tramite SSE, passa invece `--transport sse`:99Su una versione precedente, o per connetterti direttamente tramite SSE, passa invece `--transport sse`:

100 100 

101```bash theme={null}101```bash theme={null}

102# Basic syntax102# Basic syntax


114 114 

115I server stdio vengono eseguiti come processi locali sulla tua macchina. Sono ideali per strumenti che richiedono accesso diretto al sistema o per script personalizzati.115I server stdio vengono eseguiti come processi locali sulla tua macchina. Sono ideali per strumenti che richiedono accesso diretto al sistema o per script personalizzati.

116 116 

117Claude Code imposta `CLAUDE_PROJECT_DIR` nell'ambiente del server avviato sulla radice del progetto, così il tuo server può risolvere i percorsi relativi al progetto senza dipendere dalla directory di lavoro. È la stessa directory che gli hook ricevono nella loro variabile `CLAUDE_PROJECT_DIR`. Leggila dall'interno del processo del tuo server, ad esempio `process.env.CLAUDE_PROJECT_DIR` in Node o `os.environ["CLAUDE_PROJECT_DIR"]` in Python.117Claude Code imposta `CLAUDE_PROJECT_DIR` nell'ambiente del server avviato sulla radice del progetto, così il tuo server può risolvere i percorsi relativi al progetto senza dipendere dalla directory di lavoro. È la stessa directory che gli hook ricevono nella loro variabile `CLAUDE_PROJECT_DIR`. Leggila dall'interno del processo del tuo server, ad esempio con `process.env.CLAUDE_PROJECT_DIR` in Node o `os.environ["CLAUDE_PROJECT_DIR"]` in Python.

118 118 

119`CLAUDE_PROJECT_DIR` è la radice stabile del progetto e non cambia quando aggiungi o rimuovi directory di lavoro a metà sessione. Un server che limita il proprio accesso al filesystem a un insieme di directory consentite dovrebbe invece implementare la richiesta MCP `roots/list`. Claude Code risponde a `roots/list` con la directory di avvio della sessione più ogni [directory di lavoro aggiuntiva](https://code.claude.com/docs/it/permissions.md#working-directories) che hai concesso con `--add-dir`, `/add-dir` o l'impostazione `additionalDirectories`. Claude Code invia `notifications/roots/list_changed` quando quell'insieme cambia.119`CLAUDE_PROJECT_DIR` è la radice stabile del progetto e non cambia quando aggiungi o rimuovi directory di lavoro durante la sessione. Un server che limita il proprio accesso al filesystem a un insieme di directory consentite dovrebbe invece implementare la richiesta MCP `roots/list`. Claude Code risponde a `roots/list` con la directory di avvio della sessione più ogni [directory di lavoro aggiuntiva](https://code.claude.com/docs/it/permissions.md#working-directories) che hai concesso con `--add-dir`, `/add-dir` o l'impostazione `additionalDirectories`. Claude Code invia `notifications/roots/list_changed` quando quell'insieme cambia.

120 120 

121Questa variabile è impostata nell'ambiente del server, non nell'ambiente di Claude Code stesso, quindi fare riferimento a essa tramite espansione `${VAR}` nel `command` o negli `args` di una voce `.mcp.json` con ambito di progetto o di una voce di server con ambito locale o utente in `~/.claude.json` richiede un valore predefinito come `${CLAUDE_PROJECT_DIR:-.}`. Le configurazioni MCP fornite dai plugin sostituiscono `${CLAUDE_PROJECT_DIR}` direttamente e non hanno bisogno del valore predefinito.121Questa variabile è impostata nell'ambiente del server, non nell'ambiente di Claude Code stesso, quindi farvi riferimento tramite l'espansione `${VAR}` nel `command` o negli `args` di una voce `.mcp.json` con ambito di progetto o di una voce di server con ambito locale o utente in `~/.claude.json` richiede un valore predefinito come `${CLAUDE_PROJECT_DIR:-.}`. Le configurazioni MCP fornite dai plugin sostituiscono `${CLAUDE_PROJECT_DIR}` direttamente e non necessitano del valore predefinito.

122 122 

123```bash theme={null}123```bash theme={null}

124# Basic syntax124# Basic syntax


131 131 

132> [!NOTE]132> [!NOTE]

133>133>

134> Per i server stdio, il `--` (doppio trattino) separa le opzioni proprie di Claude, come `--transport`, `--env` e `--scope`, dal comando e dagli argomenti che eseguono il server. Tutto ciò che segue `--` viene passato al server senza modifiche.134> 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 segue `--` viene passato al server senza modifiche.

135>135>

136> Ad esempio:136> Ad esempio:

137>137>

138> * `claude mcp add --transport stdio myserver -- npx server` → esegue `npx server`138> * `claude mcp add --transport stdio myserver -- npx server` → esegue `npx server`

139> * `claude mcp add --env KEY=value --transport stdio myserver -- python server.py --port 8080` → esegue `python server.py --port 8080` con `KEY=value` nell'ambiente139> * `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

140>140>

141> Senza `--`, Claude Code proverebbe ad analizzare i flag del server, come `--port` qui sopra, come se fossero opzioni proprie.141> Senza `--`, Claude Code cercherebbe di interpretare i flag del server, come `--port` qui sopra, come proprie opzioni.

142>142>

143> `--env` accetta più coppie `KEY=value`. Se il nome del server segue direttamente `--env`, la CLI legge il nome come un'altra coppia e lo rifiuta, quindi inserisci almeno un'altra opzione, come `--transport stdio`, tra `--env` e il nome del server.143> `--env` accetta più coppie `KEY=value`. Se il nome del server segue direttamente `--env`, la CLI legge il nome come un'altra coppia e lo rifiuta, quindi inserisci almeno un'altra opzione, come `--transport stdio`, tra `--env` e il nome del server.

144 144 

145#### Come Claude Code arresta un server stdio145#### Come Claude Code arresta un server stdio

146 146 

147Quando Claude Code disconnette un server stdio, ad esempio quando la tua sessione termina, invia un segnale al processo del server e attende brevemente che termini prima di forzarne l'arresto. Se il tuo server salva lo stato o rimuove file di lock all'arresto, gestisci il segnale per la tua piattaforma e completa le operazioni entro quel tempo:147Quando Claude Code disconnette un server stdio, ad esempio quando la tua sessione termina, invia un segnale al processo del server e attende brevemente che termini prima di forzarne l'arresto. Se il tuo server salva lo stato o rimuove file di lock durante l'arresto, gestisci il segnale per la tua piattaforma e completa l'operazione entro quel tempo:

148 148 

149* **Su macOS e Linux**: Claude Code invia `SIGINT`, poi `SIGTERM` se il processo è ancora in esecuzione 100 millisecondi dopo, poi `SIGKILL` dopo ulteriori 400 millisecondi.149* **Su macOS e Linux**: Claude Code invia `SIGINT`, poi `SIGTERM` se il processo è ancora in esecuzione 100 millisecondi dopo, poi `SIGKILL` dopo altri 400 millisecondi.

150* **Su Windows**: Claude Code chiude lo stdin del server, poi termina l'albero dei processi del server se il processo è ancora in esecuzione 300 millisecondi dopo.150* **Su Windows**: Claude Code chiude lo stdin del server, poi termina l'albero dei processi del server se il processo è ancora in esecuzione 300 millisecondi dopo.

151 151 

152Prima della v2.1.296, Claude Code su Windows terminava subito l'albero dei processi del server, senza prima chiudere lo stdin né attendere.152Prima della v2.1.296, Claude Code su Windows terminava subito l'albero dei processi del server, senza prima chiudere lo stdin né attendere.

153 153 

154### Opzione 4: aggiungere un server WebSocket remoto154### Opzione 4: aggiungere un server WebSocket remoto

155 155 

156I server WebSocket mantengono una connessione bidirezionale persistente, adatta ai server MCP remoti che inviano eventi a Claude senza che venga richiesto. Usa invece HTTP quando il tuo server risponde solo alle richieste, poiché HTTP supporta OAuth e il flag `claude mcp add --transport`, mentre WebSocket non supporta nessuno dei due.156I server WebSocket mantengono una connessione bidirezionale persistente, adatta ai server MCP remoti che inviano eventi a Claude senza che vengano richiesti. Usa invece HTTP quando il tuo server risponde solo alle richieste, poiché HTTP supporta OAuth e il flag `claude mcp add --transport`, mentre WebSocket non supporta nessuno dei due.

157 157 

158Configura i server WebSocket in `.mcp.json` o con `claude mcp add-json`:158Configura i server WebSocket in `.mcp.json` o con `claude mcp add-json`:

159 159 


164 164 

165La voce `type: "ws"` accetta gli stessi campi `url`, `headers`, `headersHelper`, `timeout` e `alwaysLoad` di `http`. L'autenticazione avviene 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`.165La voce `type: "ws"` accetta gli stessi campi `url`, `headers`, `headersHelper`, `timeout` e `alwaysLoad` di `http`. L'autenticazione avviene 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`.

166 166 

167### Aggiungere un server da istruzioni di configurazione scritte per un altro client167### Aggiungere un server dalle istruzioni di configurazione scritte per un altro client

168 168 

169I server MCP non sono specifici di Claude Code, quindi le istruzioni di configurazione di un server potrebbero essere scritte per Claude Desktop, Cursor o un altro client MCP e non fornire alcun comando `claude mcp add`. Per aggiungere comunque il server, cerca in quelle istruzioni un URL, un comando di avvio o un blocco JSON:169I server MCP non sono specifici di Claude Code, quindi le istruzioni di configurazione di un server potrebbero essere scritte per Claude Desktop, Cursor o un altro client MCP e non fornire alcun comando `claude mcp add`. Per aggiungere comunque il server, cerca in quelle istruzioni un URL, un comando di avvio o un blocco JSON:

170 170 

171* **Un URL** come `https://mcp.example.com/mcp`: il server è remoto.171* **Un URL** come `https://mcp.example.com/mcp`: il server è remoto.

172* **Un comando di avvio** come `npx -y @example/mcp-server`: il server viene eseguito sulla tua macchina.172* **Un comando di avvio** come `npx -y @example/mcp-server`: il server viene eseguito sulla tua macchina.

173* **Un blocco JSON `mcpServers`**: configurazione scritta per il file delle impostazioni di un altro client.173* **Un blocco JSON `mcpServers`**: configurazione scritta per il file di impostazioni di un altro client.

174 174 

175Ciascuno è uno degli input accettati dalle quattro opzioni in [Installare i server MCP](#installing-mcp-servers). Trova qui sotto la forma che hai per trasformarla nel comando accettato da Claude Code. Ogni comando scrive nell'[ambito locale](#local-scope) a meno che tu non aggiunga `--scope project` o `--scope user`.175Ciascuno è uno degli input accettati dalle quattro opzioni in [Installazione dei server MCP](#installing-mcp-servers). Trova qui sotto la forma che hai per trasformarla nel comando che Claude Code accetta. Ogni comando scrive nell'[ambito locale](#local-scope) a meno che tu non aggiunga `--scope project` o `--scope user`.

176 176 

177#### Aggiungere un server da un URL177#### Aggiungere un server da un URL

178 178 


186 186 

187#### Aggiungere un server da un comando `npx`, `uvx` o binario187#### Aggiungere un server da un comando `npx`, `uvx` o binario

188 188 

189Un comando di avvio significa che il server viene eseguito come processo stdio locale. Inserisci l'intero comando dopo `--`, così Claude Code passa flag come `-y` al comando che avvia il server invece di leggerli come opzioni proprie. Passa le eventuali variabili d'ambiente richieste dalle istruzioni con `--env`, dopo il nome del server e prima di `--`:189Un comando di avvio significa che il server viene eseguito come processo stdio locale. Inserisci l'intero comando dopo `--`, così Claude Code passa i flag come `-y` al comando che avvia il server invece di interpretarli come proprie opzioni. Passa le variabili d'ambiente richieste dalle istruzioni con `--env`, dopo il nome del server e prima di `--`:

190 190 

191```bash theme={null}191```bash theme={null}

192claude mcp add example --env API_KEY=your-key -- npx -y @example/mcp-server192claude mcp add example --env API_KEY=your-key -- npx -y @example/mcp-server

193```193```

194 194 

195L'[Opzione 3](#option-3-add-a-local-stdio-server) descrive in dettaglio il separatore `--`.195L'[Opzione 3](#option-3-add-a-local-stdio-server) tratta in modo completo il separatore `--`.

196 196 

197#### Aggiungere un server da un blocco JSON `mcpServers`197#### Aggiungere un server da un blocco JSON `mcpServers`

198 198 

199Un blocco `mcpServers` scritto per un altro client MCP, come Claude Desktop, usa la chiave contenitore e la forma delle voci che Claude Code legge. Passa a `claude mcp add-json` l'oggetto all'interno di `mcpServers`, non il contenitore. Due tipi di voci richiedono prima una correzione:199Un blocco `mcpServers` scritto per un altro client MCP, come Claude Desktop, usa la chiave contenitore e la forma delle voci che Claude Code legge. Passa a `claude mcp add-json` l'oggetto all'interno di `mcpServers`, non il contenitore. Due tipi di voci richiedono prima una correzione:

200 200 

201* **Un `url` senza `type`**: aggiungi `"type": "http"`, `"type": "sse"` o `"type": "ws"` in base all'endpoint. Claude Code legge una voce senza `type` come un server stdio, quindi una voce `url` senza `type` fallisce.201* **Un `url` senza `type`**: aggiungi `"type": "http"`, `"type": "sse"` o `"type": "ws"` in base all'endpoint. Claude Code interpreta una voce senza `type` come un server stdio, quindi una voce `url` senza `type` non funziona.

202* **Una chiave con caratteri diversi da lettere, numeri, trattini e underscore**: scegli un nome di server che usi solo quei caratteri. Altrimenti la chiave è il nome del server.202* **Una chiave con caratteri diversi da lettere, numeri, trattini e underscore**: scegli un nome di server che usi solo quei caratteri. Altrimenti la chiave è il nome del server.

203 203 

204Ad esempio, questo blocco:204Ad esempio, questo blocco:


220claude mcp add-json example '{"command":"npx","args":["-y","@example/mcp-server"]}'220claude mcp add-json example '{"command":"npx","args":["-y","@example/mcp-server"]}'

221```221```

222 222 

223[Aggiungere server MCP da una configurazione JSON](#add-mcp-servers-from-json-configuration) descrive l'escape nella shell e il flag `--scope` per `add-json`. Per condividere invece il server con il tuo team, aggiungi `--scope project`, oppure aggiungi la voce sotto `mcpServers` in `.mcp.json` nella radice del progetto ed esegui il commit. [Ambito di progetto](#project-scope) descrive come Claude Code carica e approva quel file.223[Aggiungere server MCP da una configurazione JSON](#add-mcp-servers-from-json-configuration) tratta l'escape nella shell e il flag `--scope` per `add-json`. Per condividere invece il server con il tuo team, aggiungi `--scope project`, oppure aggiungi la voce sotto `mcpServers` in `.mcp.json` nella radice del tuo progetto ed esegui il commit. [Ambito di progetto](#project-scope) spiega come Claude Code carica e approva quel file.

224 224 

225Ogni comando `claude mcp add` e `claude mcp add-json` stampa una riga `Added ...` in caso di successo. Per verificare che Claude Code si sia connesso, esegui `claude mcp get <name>`; [Stato del server](#server-status) descrive gli stati mostrati e il passaggio di approvazione per i server `.mcp.json`.225Ogni comando `claude mcp add` e `claude mcp add-json` stampa una riga `Added ...` in caso di successo. Per verificare che Claude Code si sia connesso, esegui `claude mcp get <name>`; [Stato del server](#server-status) descrive gli stati che mostra e il passaggio di approvazione per i server di `.mcp.json`.

226 226 

227### Gestire i tuoi server227### Gestire i tuoi server

228 228 


246 246 

247#### Stato del server247#### Stato del server

248 248 

249`claude mcp add` conferma un'aggiunta riuscita stampando una riga `Added ...`, che significa che la configurazione è stata scritta. Se invece il comando stampa un messaggio `was not saved`, consulta [MCP server was not saved or removed](https://code.claude.com/docs/it/errors.md#mcp-server-was-not-saved-or-removed); per un messaggio `may not have been saved`, consulta [MCP server may not have been saved or removed](https://code.claude.com/docs/it/errors.md#mcp-server-may-not-have-been-saved-or-removed).249`claude mcp add` conferma un'aggiunta riuscita stampando una riga `Added ...`, il che significa che la configurazione è stata scritta. Se invece il comando stampa un messaggio `was not saved`, consulta [MCP server was not saved or removed](https://code.claude.com/docs/it/errors.md#mcp-server-was-not-saved-or-removed); per un messaggio `may not have been saved`, consulta [MCP server may not have been saved or removed](https://code.claude.com/docs/it/errors.md#mcp-server-may-not-have-been-saved-or-removed).

250 250 

251`claude mcp list` mostra uno stato di salute accanto a ogni server elencato, come `✔ Connected`, `! Needs authentication` o `✘ Failed to connect`. Uno stato di errore significa che Claude Code non è riuscito a connettersi a quel server, non che il comando list sia fallito.251`claude mcp list` mostra uno stato di salute accanto a ogni server elencato, come `✔ Connected`, `! Needs authentication` o `✘ Failed to connect`. Uno stato di errore significa che Claude Code non è riuscito a connettersi a quel server, non che il comando list abbia avuto esito negativo.

252 252 

253Gli stati in questo elenco riportano una decisione di configurazione anziché un tentativo di connessione, quindi Claude Code li stampa senza connettersi al server:253Gli stati in questo elenco riportano una decisione di configurazione anziché un tentativo di connessione, quindi Claude Code li stampa senza connettersi al server:

254 254 

255* ``⏸ Pending approval (run `claude` to approve)``: un server con ambito di progetto da `.mcp.json` che non hai ancora approvato. Claude Code lo mostra sia in `claude mcp list` sia in `claude mcp get <name>`. Esegui `claude` in modo interattivo per esaminarlo e approvarlo.255* ``⏸ Pending approval (run `claude` to approve)``: un server con ambito di progetto da `.mcp.json` che non hai ancora approvato. Claude Code lo mostra sia in `claude mcp list` sia in `claude mcp get <name>`. Esegui `claude` in modo interattivo per esaminarlo e approvarlo.

256* `✘ Rejected (see disabledMcpjsonServers in settings)`: un server `.mcp.json` rifiutato da una voce [`disabledMcpjsonServers`](https://code.claude.com/docs/it/settings-reference#disabledmcpjsonservers). Claude Code lo mostra solo in `claude mcp get <name>`.256* `✘ Rejected (see disabledMcpjsonServers in settings)`: un server di `.mcp.json` rifiutato da una voce [`disabledMcpjsonServers`](https://code.claude.com/docs/it/settings-reference#disabledmcpjsonservers). Claude Code lo mostra solo in `claude mcp get <name>`.

257* `⊘ Disabled for this project (re-enable via /mcp)`: un server indicato nell'elenco [`disabledMcpServers`](#disable-a-server-without-removing-it) del progetto. Claude Code lo mostra sia in `claude mcp list` sia in `claude mcp get <name>`. Riattiva il server dal pannello `/mcp`.257* `⊘ Disabled for this project (re-enable via /mcp)`: un server indicato nell'elenco [`disabledMcpServers`](#disable-a-server-without-removing-it) del progetto. Claude Code lo mostra sia in `claude mcp list` sia in `claude mcp get <name>`. Riattiva il server dal pannello `/mcp`.

258* `✘ Blocked by enterprise managed policy`: un server rifiutato da una delle policy della tua organizzazione. Claude Code lo mostra sia in `claude mcp list` sia in `claude mcp get <name>`. Un server bloccato da un'allowlist, una denylist o un'altra restrizione nella [configurazione MCP gestita](https://code.claude.com/docs/it/managed-mcp.md#how-restrictions-appear-to-users) viene nascosto da entrambi i comandi anziché essere mostrato con questo stato. Chiedi al tuo amministratore quale policy blocca il server.258* `✘ Blocked by enterprise managed policy`: un server rifiutato da una delle policy della tua organizzazione. Claude Code lo mostra sia in `claude mcp list` sia in `claude mcp get <name>`. Un server bloccato da un'allowlist, una denylist o un'altra restrizione nella [configurazione MCP gestita](https://code.claude.com/docs/it/managed-mcp.md#how-restrictions-appear-to-users) è nascosto in entrambi i comandi anziché essere mostrato con questo stato. Chiedi al tuo amministratore quale policy blocca il server.

259 259 

260#### Approvazioni dei server di progetto e attendibilità del workspace260#### Approvazioni dei server di progetto e attendibilità del workspace

261 261 

262`claude mcp list` e `claude mcp get` leggono le approvazioni di `.mcp.json` solo dai file delle impostazioni che non sono inclusi nel repository finché non consideri attendibile il workspace eseguendo `claude` al suo interno e accettando la finestra di dialogo sull'attendibilità del workspace. Un repository clonato non può approvare i propri server: [`enableAllProjectMcpServers`](https://code.claude.com/docs/it/settings-reference#enableallprojectmcpservers) o [`enabledMcpjsonServers`](https://code.claude.com/docs/it/settings-reference#enabledmcpjsonservers) inclusi nel commit del file `.claude/settings.json` del progetto vengono ignorati in una cartella non attendibile, e il server resta in `⏸ Pending approval` invece di essere connesso e sottoposto al controllo di salute.262`claude mcp list` e `claude mcp get` leggono le approvazioni di `.mcp.json` solo dai file di impostazioni non inclusi nel repository finché non consideri attendibile il workspace eseguendovi `claude` e accettando la finestra di dialogo di attendibilità del workspace. Un repository clonato non può approvare i propri server: [`enableAllProjectMcpServers`](https://code.claude.com/docs/it/settings-reference#enableallprojectmcpservers) o [`enabledMcpjsonServers`](https://code.claude.com/docs/it/settings-reference#enabledmcpjsonservers) inclusi nel commit nel file `.claude/settings.json` del progetto vengono ignorati in una cartella non attendibile, e il server resta in `⏸ Pending approval` invece di essere connesso e sottoposto al controllo di salute.

263 263 

264Le approvazioni da queste fonti si applicano comunque in una cartella non attendibile:264Le approvazioni provenienti da queste fonti si applicano comunque in una cartella non attendibile:

265 265 

266* il tuo `~/.claude/settings.json` utente266* il tuo `~/.claude/settings.json` utente

267* le impostazioni gestite267* le impostazioni gestite

268* le impostazioni passate con `--settings`268* le impostazioni passate con `--settings`

269 269 

270Claude Code applica anche le approvazioni da un `.claude/settings.local.json` non tracciato, ma esegue git per verificare se il file è tracciato, ed esegue quel controllo solo in una [cartella attendibile](https://code.claude.com/docs/it/permissions.md#project-allow-rules-and-workspace-trust). In una cartella che non hai mai considerato attendibile, Claude Code attende la finestra di dialogo sull'attendibilità prima di applicare le approvazioni del file, a meno che la cartella non sia la tua home di configurazione: la tua directory home, o una directory il cui `.claude` hai impostato come [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/it/env-vars). Prima della v2.1.207, Claude Code applicava le approvazioni da un `.claude/settings.local.json` non tracciato anche in una cartella che non avevi mai considerato attendibile.270Claude Code applica anche le approvazioni da un file `.claude/settings.local.json` non tracciato, ma esegue git per verificare se il file è tracciato, e esegue quel controllo solo in una [cartella attendibile](https://code.claude.com/docs/it/permissions.md#project-allow-rules-and-workspace-trust). In una cartella che non hai mai considerato attendibile, Claude Code attende la finestra di dialogo di attendibilità prima di applicare le approvazioni del file, a meno che la cartella non sia la tua home di configurazione: la tua directory home, o una directory il cui `.claude` hai impostato come [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/it/env-vars). Prima della v2.1.207, Claude Code applicava le approvazioni da un `.claude/settings.local.json` non tracciato anche in una cartella che non avevi mai considerato attendibile.

271 271 

272Una voce `disabledMcpjsonServers` in qualsiasi file delle impostazioni rifiuta comunque il server.272Una voce `disabledMcpjsonServers` in qualsiasi file di impostazioni rifiuta comunque il server.

273 273 

274#### Dettagli sullo stato del server274#### Dettagli dello stato del server

275 275 

276In `/mcp`, incluso il menu di un server al suo interno, e nel gestore [`/plugin`](https://code.claude.com/docs/it/plugins/install), un server HTTP o SSE remoto che hai già usato può mostrare uno stato `cached` come `cached 2h ago · connects on first use · 5 tools`. Claude Code ha caricato l'elenco degli strumenti del server dalla sua cache di rilevamento, salvata in una sessione precedente, invece di connettersi all'avvio, e Claude Code connette il server la prima volta che Claude chiama uno degli strumenti del server. Gli strumenti sono disponibili dal tuo primo messaggio, quindi non devi fare nulla. La cache di rilevamento e il relativo stato `cached` richiedono Claude Code v2.1.221 o successiva.276In `/mcp`, incluso il menu di un server al suo interno, e nel gestore [`/plugin`](https://code.claude.com/docs/it/plugins/install), un server HTTP o SSE remoto che hai già usato può mostrare uno stato `cached` come `cached 2h ago · connects on first use · 5 tools`. Claude Code ha caricato l'elenco degli strumenti del server dalla sua cache di discovery, salvata in una sessione precedente, invece di connettersi all'avvio, e Claude Code connette il server la prima volta che Claude chiama uno dei suoi strumenti. Gli strumenti sono disponibili fin dal tuo primo messaggio, quindi non devi fare nulla. La cache di discovery e il suo stato `cached` richiedono Claude Code v2.1.221 o successivo.

277 277 

278La cache di rilevamento è disattivata per impostazione predefinita, a meno che un rilascio graduale non l'abbia attivata per il tuo account. Imposta [`MCP_DISCOVERY_CACHE=1`](https://code.claude.com/docs/it/env-vars) per attivarla, oppure `0` per mantenerla disattivata anche quando il rilascio l'ha attivata. Prima della v2.1.238, la cache era attiva per impostazione predefinita.278La cache di discovery è disattivata per impostazione predefinita, a meno che un rilascio graduale non l'abbia abilitata per il tuo account. Imposta [`MCP_DISCOVERY_CACHE=1`](https://code.claude.com/docs/it/env-vars) per attivarla, oppure `0` per mantenerla disattivata anche quando il rilascio l'ha abilitata. Prima della v2.1.238, la cache era attiva per impostazione predefinita.

279 279 

280Quando selezioni **Disable** o **Clear authentication** dal menu di un server in `/mcp`, Claude Code scarta anche la voce della cache di quel server. Anche **Reconnect** la scarta su un server connesso o in errore; su un server `cached`, **Reconnect** connette subito il server e mantiene la voce. La volta successiva in cui Claude Code si connette al server dopo aver scartato la voce, recupera l'elenco degli strumenti dal server invece che dalla cache.280Quando selezioni **Disable** o **Clear authentication** dal menu di un server in `/mcp`, Claude Code scarta anche la voce della cache di quel server. Anche **Reconnect** la scarta su un server connesso o in errore; su un server `cached`, **Reconnect** connette subito il server e mantiene la voce. La volta successiva in cui Claude Code si connette al server dopo aver scartato la voce, recupera l'elenco degli strumenti dal server invece che dalla cache.

281 281 

282##### Errori di connessione e server non configurati282##### Errori di connessione e server non configurati

283 283 

284Quando lo stato di un server è `✘ Failed to connect`, `claude mcp list` aggiunge il dettaglio dell'errore a quella riga di stato, e `claude mcp get <name>` lo mostra in una riga `Issue:`. Il dettaglio è lo stato HTTP o il codice di errore, più l'eventuale testo di errore restituito dal server. La vista di dettaglio del server in `/mcp` include lo stesso testo riportato dal server nella sua riga `Issue:`.284Quando lo stato di un server è `✘ Failed to connect`, `claude mcp list` aggiunge il dettaglio dell'errore a quella riga di stato, e `claude mcp get <name>` lo mostra su una riga `Issue:`. Il dettaglio è lo stato HTTP o il codice di errore, più l'eventuale testo di errore restituito dal server. La vista di dettaglio del server in `/mcp` include lo stesso testo riportato dal server nella sua riga `Issue:`.

285 285 

286Claude Code oscura da questo dettaglio il testo simile a credenziali e non include mai l'URL del server espanso, che può contenere segreti. Claude Code non aggiunge alcun dettaglio a uno stato `✘ Connection error`, perché il testo dell'eccezione che vi stamperebbe può incorporare quell'URL.286Claude Code oscura da questo dettaglio il testo simile a credenziali e non include mai l'URL espanso del server, che può contenere segreti. Claude Code non aggiunge alcun dettaglio a uno stato `✘ Connection error`, perché il testo dell'eccezione che stamperebbe lì può incorporare quell'URL.

287 287 

288Quando completi l'autenticazione da `/mcp` e la connessione fallisce ancora con uno stato HTTP o un codice di errore del trasporto, Claude Code aggiunge quel codice e l'origine dell'URL del server al messaggio che stampa dopo il tentativo. L'origine è lo schema e l'host, più la porta quando l'URL ne specifica una, come `https://mcp.example.com`.288Quando completi l'autenticazione da `/mcp` e la connessione fallisce comunque con uno stato HTTP o un codice di errore del trasporto, Claude Code aggiunge quel codice e l'origine dell'URL del server al messaggio che stampa dopo il tentativo. L'origine è lo schema e l'host, più la porta quando l'URL ne specifica una, come `https://mcp.example.com`.

289 289 

290* Il percorso e la query non compaiono mai in quel messaggio.290* Il percorso e la query non compaiono mai in quel messaggio.

291* Per un server nell'[ambito](#mcp-installation-scopes) locale, di progetto o utente o nella configurazione MCP gestita, l'origine mostra l'host come scritto in quella configurazione, quindi un riferimento `${VAR}` nell'host non viene espanso nel messaggio.291* Per un server nell'[ambito](#mcp-installation-scopes) locale, di progetto o utente, o nella configurazione MCP gestita, l'origine mostra l'host come scritto in quella configurazione, quindi un riferimento `${VAR}` nell'host non viene espanso nel messaggio.

292* Per un errore senza stato o codice di errore, Claude Code mostra il testo dell'errore senza l'origine.292* Per un errore senza stato o codice di errore, Claude Code mostra il testo dell'errore senza l'origine.

293 293 

294Un server remoto la cui configurazione ha un `url` vuoto viene mostrato come `not configured` in `/mcp`, in `claude mcp list` e nel gestore [`/plugin`](https://code.claude.com/docs/it/plugins/install), e Claude Code non tenta di connettersi a esso. Un plugin può includere una voce segnaposto di questo tipo per un connettore che configuri in seguito, così Claude Code non la segnala come un errore o un problema di configurazione. La vista di dettaglio del server in `/mcp` riporta `No URL configured for this server`; imposta l'`url` della voce per connetterlo.294Un server remoto la cui configurazione ha un `url` vuoto appare come `not configured` in `/mcp`, in `claude mcp list` e nel gestore [`/plugin`](https://code.claude.com/docs/it/plugins/install), e Claude Code non tenta di connettersi. Un plugin può includere una voce segnaposto di questo tipo per un connettore che configuri in seguito, così Claude Code non la segnala come errore o problema di configurazione. La vista di dettaglio del server in `/mcp` riporta `No URL configured for this server`; imposta l'`url` della voce per connetterlo.

295 295 

296#### Avvisi di configurazione296#### Avvisi di configurazione

297 297 

298Claude Code avvisa dei problemi di configurazione riportati di seguito. Ogni voce indica cosa controlla Claude Code e come eliminare l'avviso:298Claude Code avvisa dei problemi di configurazione elencati di seguito. Ogni voce indica cosa controlla Claude Code e come eliminare l'avviso:

299 299 

300* **Spazi nascosti**: Claude Code avvisa quando un valore di configurazione MCP contiene spazi iniziali o finali nascosti, che spesso derivano dall'incollare un token con un a capo finale. Claude Code controlla `command`, `url`, ogni voce di `args` e i valori e i nomi delle chiavi sotto `env` e `headers`. Claude Code mostra l'avviso nell'output di `claude mcp list` e in `/mcp`, indicando i campi interessati senza mostrarne i valori, ad esempio `Leading or trailing whitespace in: headers.Authorization`. Claude Code non rimuove gli spazi e usa i valori esattamente come scritti, quindi modifica la configurazione per rimuoverli.300* **Spazi nascosti**: Claude Code avvisa quando un valore della configurazione MCP contiene spazi nascosti iniziali o finali, che spesso derivano dall'incollare un token con un a capo finale. Claude Code controlla `command`, `url`, ogni voce di `args` e i valori e i nomi delle chiavi sotto `env` e `headers`. Claude Code mostra l'avviso nell'output di `claude mcp list` e in `/mcp`, indicando i campi interessati senza riportarne i valori, ad esempio `Leading or trailing whitespace in: headers.Authorization`. Claude Code non rimuove gli spazi e usa i valori esattamente come scritti, quindi modifica la configurazione per rimuoverli.

301* **Stesso nome in più ambiti**: se definisci lo stesso nome di server in più di un [ambito](#mcp-installation-scopes) con endpoint diversi, Claude Code avvisa del conflitto nell'output di `claude mcp list` e in `/mcp`. Claude Code memorizza gli accessi OAuth per endpoint, quindi quando ti autentichi con la definizione che viene caricata in un progetto, devi comunque accedere separatamente in un progetto in cui viene caricata una definizione diversa. Mantieni l'endpoint che desideri e rimuovi gli altri con `claude mcp remove <name> --scope <scope>`. Nell'avviso, Claude Code riporta l'endpoint di ciascun ambito come scritto nella tua configurazione, con i [riferimenti `${VAR}`](#environment-variable-expansion-in-mcp-json) non espansi, quindi non mostra mai un valore risolto come una chiave API.301* **Stesso nome in più ambiti**: se definisci lo stesso nome di server in più [ambiti](#mcp-installation-scopes) con endpoint diversi, Claude Code avvisa del conflitto nell'output di `claude mcp list` e in `/mcp`. Claude Code memorizza gli accessi OAuth per endpoint, quindi quando autentichi la definizione che viene caricata in un progetto, devi comunque accedere separatamente in un progetto in cui viene caricata una definizione diversa. Mantieni l'endpoint che desideri e rimuovi gli altri con `claude mcp remove <name> --scope <scope>`. Nell'avviso, Claude Code riporta l'endpoint di ogni ambito come scritto nella tua configurazione, con i [riferimenti `${VAR}`](#environment-variable-expansion-in-mcp-json) non espansi, quindi non mostra mai un valore risolto come una chiave API.

302* **Nomi riservati**: Claude Code riserva i nomi dei suoi server integrati, tra cui `workspace`, `claude-in-chrome`, `computer-use`, `Claude Preview` e `Claude Browser`. Se la tua configurazione definisce un server con un nome riservato, Claude Code lo salta al caricamento e mostra un avviso che ti chiede di rinominarlo. `claude mcp add` rifiuta un nome riservato con un errore. `Claude Preview` e `Claude Browser` indicano entrambi il server integrato usato dal [riquadro di anteprima dell'app desktop di Claude Code](https://code.claude.com/docs/it/desktop.md#preview-your-app).302* **Nomi riservati**: Claude Code riserva i nomi dei suoi server integrati, tra cui `workspace`, `claude-in-chrome`, `computer-use`, `Claude Preview` e `Claude Browser`. Se la tua configurazione definisce un server con un nome riservato, Claude Code lo salta al caricamento e mostra un avviso che ti chiede di rinominarlo. `claude mcp add` rifiuta un nome riservato con un errore. `Claude Preview` e `Claude Browser` indicano entrambi il server integrato usato dal [riquadro di anteprima dell'app desktop di Claude Code](https://code.claude.com/docs/it/desktop.md#preview-your-app).

303* **Variabile d'ambiente mancante**: se un [riferimento `${VAR}`](#environment-variable-expansion-in-mcp-json) nella configurazione di un server indica una variabile non impostata e priva di `:-default`, Claude Code avvisa nell'output di `claude mcp list` e in `/mcp`, indicando la variabile, e carica comunque il server con il testo `${VAR}` non espanso. Imposta la variabile o aggiungi un fallback `${VAR:-default}`. Nell'`url` e negli `headers` di un server remoto, alcune variabili di credenziali [vengono invece lette come vuote](#credential-variables-that-read-as-empty), senza avviso.303* **Variabile d'ambiente mancante**: se un [riferimento `${VAR}`](#environment-variable-expansion-in-mcp-json) nella configurazione di un server indica una variabile non impostata e senza `:-default`, Claude Code avvisa nell'output di `claude mcp list` e in `/mcp`, indicando la variabile, e carica comunque il server con il testo `${VAR}` non espanso. Imposta la variabile o aggiungi un fallback `${VAR:-default}`. Nell'`url` e negli `headers` di un server remoto, alcune variabili di credenziali [vengono invece lette come vuote](#credential-variables-that-read-as-empty), senza alcun avviso.

304 304 

305#### Disponibilità degli strumenti305#### Disponibilità degli strumenti

306 306 


316 316 

317##### Strumenti di un server ancora in fase di connessione317##### Strumenti di un server ancora in fase di connessione

318 318 

319Se la tua richiesta necessita di strumenti di un server che si sta ancora connettendo in background, Claude attende quel server prima di continuare. Il modo in cui avviene l'attesa dipende dalla tua configurazione:319Se la tua richiesta necessita di strumenti da un server che si sta ancora connettendo in background, Claude attende quel server prima di continuare. Il modo in cui avviene l'attesa dipende dalla tua configurazione:

320 320 

321* **Con la [ricerca degli strumenti](#scale-with-mcp-tool-search), il comportamento predefinito**: l'attesa avviene all'interno della chiamata `ToolSearch`.321* **Con la [ricerca degli strumenti](#scale-with-mcp-tool-search), l'impostazione predefinita**: l'attesa avviene all'interno della chiamata `ToolSearch`.

322* **Senza ricerca degli strumenti**: Claude usa invece lo strumento `WaitForMcpServers`. Le configurazioni senza ricerca degli strumenti includono `ENABLE_TOOL_SEARCH=false` e un modello precedente a Claude Opus 4.5, Claude Sonnet 4.5 e Claude Haiku 4.5 su Agent Platform di Google Cloud. Per un gateway `ANTHROPIC_BASE_URL`, consulta [Ricerca degli strumenti tramite un gateway LLM](#tool-search-through-a-gateway).322* **Senza ricerca degli strumenti**: Claude usa invece lo strumento `WaitForMcpServers`. Le configurazioni senza ricerca degli strumenti includono `ENABLE_TOOL_SEARCH=false` e un modello precedente a Claude Opus 4.5, Claude Sonnet 4.5 e Claude Haiku 4.5 su Agent Platform di Google Cloud. Per un gateway `ANTHROPIC_BASE_URL`, consulta [Ricerca degli strumenti tramite un gateway LLM](#tool-search-through-a-gateway).

323* **Su un [deploy di Microsoft Foundry ospitato su Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)**: Claude parte dal percorso della ricerca degli strumenti anziché con `WaitForMcpServers`, poiché Claude Code scopre il rifiuto lato server del deploy solo dall'API. Dopo che Claude Code ha spostato quel deploy al [caricamento anticipato](#scale-with-mcp-tool-search), gli strumenti di un server che completa la connessione diventano disponibili alla successiva richiesta di Claude.323* **Su un [deploy Microsoft Foundry ospitato su Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)**: Claude parte sul percorso della ricerca degli strumenti anziché con `WaitForMcpServers`, poiché Claude Code scopre il rifiuto lato server del deploy solo dall'API. Dopo che Claude Code passa quel deploy al [caricamento anticipato](#scale-with-mcp-tool-search), gli strumenti di un server che completa la connessione diventano disponibili alla richiesta successiva di Claude.

324 324 

325Con la ricerca degli strumenti attiva, quando un server completa la connessione mentre Claude sta lavorando, Claude Code elenca i nomi degli strumenti del server a Claude nella sua richiesta successiva all'interno dello stesso turno. Claude può quindi cercare e chiamare quegli strumenti senza attendere il tuo messaggio successivo.325Con la ricerca degli strumenti abilitata, quando un server completa la connessione mentre Claude sta lavorando, Claude Code elenca i nomi degli strumenti del server a Claude nella sua richiesta successiva dello stesso turno. Claude può quindi cercare e chiamare quegli strumenti senza attendere il tuo messaggio successivo.

326 326 

327Dopo aver ripreso una sessione, Claude può chiamare uno strumento della conversazione salvata mentre il server MCP dello strumento si sta ancora connettendo. Mentre il server è al suo primo tentativo di connessione, Claude Code trattiene la chiamata per un massimo di 10 secondi e la esegue non appena lo strumento è disponibile. Se il server non si connette in tempo, o sta già [riprovando dopo un tentativo fallito](#automatic-reconnection), la chiamata fallisce con l'[errore dello strumento](https://code.claude.com/docs/it/errors.md#no-such-tool-available) `No such tool available`.327Dopo aver ripreso una sessione, Claude può chiamare uno strumento dalla conversazione salvata mentre il server MCP dello strumento si sta ancora connettendo. Mentre il server è al primo tentativo di connessione, Claude Code trattiene la chiamata per un massimo di 10 secondi e la esegue non appena lo strumento è disponibile. Se il server non si connette in tempo, o sta già [riprovando dopo un tentativo fallito](#automatic-reconnection), la chiamata fallisce con l'[errore dello strumento](https://code.claude.com/docs/it/errors.md#no-such-tool-available) `No such tool available`.

328 328 

329### Disattivare un server senza rimuoverlo329### Disabilitare un server senza rimuoverlo

330 330 

331Disattiva un server nel pannello `/mcp` per impedire a Claude Code di connettersi a esso senza perderne la configurazione. Claude Code continua a elencare il server in `/mcp`, contrassegnato come disattivato.331Disattiva un server nel pannello `/mcp` per impedire a Claude Code di connettersi senza perderne la configurazione. Claude Code continua a elencare il server in `/mcp`, contrassegnato come disabilitato.

332 332 

333Quando attivi o disattivi un server, Claude Code registra la tua scelta per progetto in `~/.claude.json`, in uno di due elenchi che coprono insiemi di server disgiunti:333Quando attivi o disattivi un server, Claude Code registra la tua scelta per progetto in `~/.claude.json`, in uno di due elenchi che coprono insiemi disgiunti di server:

334 334 

335* `disabledMcpServers`: un elenco di esclusione per i server configurati dall'utente, i server dei plugin, i server che la tua organizzazione [fornisce tramite le impostazioni gestite](https://code.claude.com/docs/it/managed-mcp.md#provide-servers-through-managed-settings), i connettori claude.ai che Claude Code [recupera autonomamente](#how-connectors-reach-claude-code) e i server integrati attivi per impostazione predefinita. Claude Code non si connette a un server che elenchi qui. Quando disattivi un connettore claude.ai con l'interruttore per progetto di `/mcp` descritto in [Disattivare i connettori claude.ai](#disable-claude-ai-connectors), Claude Code lo scrive in questo elenco con il suo nome visualizzato, ad esempio `claude.ai Slack`.335* `disabledMcpServers`: un elenco di esclusione per i server configurati dall'utente, i server dei plugin, i server che la tua organizzazione [fornisce tramite impostazioni gestite](https://code.claude.com/docs/it/managed-mcp.md#provide-servers-through-managed-settings), i connettori claude.ai che Claude Code [recupera autonomamente](#how-connectors-reach-claude-code) e i server integrati attivi per impostazione predefinita. Claude Code non si connette a un server che elenchi qui. Quando disabiliti un connettore claude.ai con l'interruttore `/mcp` per progetto descritto in [Disabilitare i connettori claude.ai](#disable-claude-ai-connectors), Claude Code lo scrive in questo elenco con il suo nome visualizzato, ad esempio `claude.ai Slack`.

336* `enabledMcpServers`: un elenco di inclusione per i server integrati disattivati per impostazione predefinita, come `computer-use`. Claude Code si connette a un server disattivato per impostazione predefinita solo quando lo elenchi qui.336* `enabledMcpServers`: un elenco di inclusione per i server integrati disattivati per impostazione predefinita, come `computer-use`. Claude Code si connette a un server disattivato per impostazione predefinita solo quando lo elenchi qui.

337 337 

338Claude Code consulta esattamente uno dei due elenchi per ciascun server, quindi nessuno dei due elenchi sovrascrive l'altro. Se aggiungi un server normale a `enabledMcpServers`, o un server integrato disattivato per impostazione predefinita a `disabledMcpServers`, Claude Code ignora la voce.338Claude Code consulta esattamente uno dei due elenchi per ogni server, quindi nessuno dei due sovrascrive l'altro. Se aggiungi un server normale a `enabledMcpServers`, o un server integrato disattivato per impostazione predefinita a `disabledMcpServers`, Claude Code ignora la voce.

339 339 

340`disabledMcpServers` e `enabledMcpServers` non hanno relazione con [`enabledMcpjsonServers`](https://code.claude.com/docs/it/settings-reference#enabledmcpjsonservers) e [`disabledMcpjsonServers`](https://code.claude.com/docs/it/settings-reference#disabledmcpjsonservers), che controllano l'approvazione dei server definiti nel file `.mcp.json` di un progetto.340`disabledMcpServers` e `enabledMcpServers` non hanno relazione con [`enabledMcpjsonServers`](https://code.claude.com/docs/it/settings-reference#enabledmcpjsonservers) e [`disabledMcpjsonServers`](https://code.claude.com/docs/it/settings-reference#disabledmcpjsonservers), che controllano l'approvazione dei server definiti nel file `.mcp.json` di un progetto.

341 341 

342### Runtime del client MCP342### Runtime dei client MCP

343 343 

344Claude Code si connette ai server MCP tramite uno di due runtime del client. Il runtime v1 è basato su MCP TypeScript SDK 1.x. Il runtime v2 è lo stesso codice su [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/), che aggiunge la revisione del protocollo MCP 2026-07-28. Il resto di questa pagina si applica a entrambi i runtime, tranne dove una sezione indica il runtime v2.344Claude Code si connette ai server MCP tramite uno di due runtime client. Il runtime v1 è basato su MCP TypeScript SDK 1.x. Il runtime v2 è lo stesso codice su [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/), che aggiunge la revisione del protocollo MCP 2026-07-28. Il resto di questa pagina si applica a entrambi i runtime, tranne dove una sezione indica il runtime v2.

345 345 

346Claude Code sceglie un runtime ogni volta che lo avvii e lo mantiene finché non esci. Nelle sessioni in cui [recupera i feature flag](https://code.claude.com/docs/it/env-vars.md#features-that-need-feature-flag-fetching), usa il runtime v2 su Claude Code v2.1.232 o successiva.346Claude Code sceglie un runtime ogni volta che lo avvii e lo mantiene fino all'uscita. Nelle sessioni in cui [recupera i feature flag](https://code.claude.com/docs/it/env-vars.md#features-that-need-feature-flag-fetching), usa il runtime v2 su Claude Code v2.1.232 o successivo.

347 347 

348Nelle sessioni in cui non recupera i feature flag, Claude Code usa il runtime v2 per impostazione predefinita su Claude Code v2.1.274 o successiva:348Nelle sessioni in cui non recupera i feature flag, Claude Code usa il runtime v2 per impostazione predefinita su Claude Code v2.1.274 o successivo:

349 349 

350* Sessioni su Amazon Bedrock, Claude Platform on AWS, Agent Platform di Google Cloud o Microsoft Foundry, a meno che una piattaforma host che incorpora Claude Code non imposti [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/it/env-vars)350* Sessioni su Amazon Bedrock, Claude Platform on AWS, Agent Platform di Google Cloud o Microsoft Foundry, a meno che una piattaforma host che incorpora Claude Code non imposti [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/it/env-vars)

351* Sessioni con accesso tramite un [gateway delle app Claude](https://code.claude.com/docs/it/claude-apps-gateway)351* Sessioni con accesso tramite un [gateway delle app Claude](https://code.claude.com/docs/it/claude-apps-gateway)

352* Sessioni in cui disattivi la telemetria o il recupero dei feature flag, ad esempio con `DISABLE_TELEMETRY`352* Sessioni in cui disattivi la telemetria o il recupero dei feature flag, ad esempio con `DISABLE_TELEMETRY`

353 353 

354Su v2, Claude Code inoltre:354Con v2, Claude Code inoltre:

355 355 

356* Chiede ai server HTTP, stdio e connettori claude.ai se supportano la revisione più recente, e la usa con quelli che la supportano. Sono inclusi i connettori delle sessioni cloud e delle sessioni [Remote Control](https://code.claude.com/docs/it/remote-control.md). Claude Code si connette a tutti gli altri server come fa v1.356* Chiede ai server HTTP, stdio e ai connettori claude.ai se supportano la revisione più recente e la usa con quelli che la supportano. Ciò include i connettori delle sessioni cloud e di [Remote Control](https://code.claude.com/docs/it/remote-control.md). Claude Code si connette a tutti gli altri server come fa v1.

357* Riceve le notifiche `list_changed` dai server sulla revisione più recente tramite uno [stream che mantiene aperto](#notification-streams-on-the-v2-runtime).357* Riceve le notifiche `list_changed` dai server sulla revisione più recente tramite uno [stream che mantiene aperto](#notification-streams-on-the-v2-runtime).

358* Non registra un server di [canale](#push-messages-with-channels) che si connette sulla revisione più recente, perché quella revisione non può trasportare messaggi di canale.358* Non registra un server di [canale](#push-messages-with-channels) che si connette sulla revisione più recente, perché quella revisione non può trasportare messaggi di canale.

359* Fa fallire un [accesso OAuth MCP](#authenticate-with-remote-mcp-servers) la cui risposta di autorizzazione indica un emittente inatteso.359* Fa fallire un [accesso MCP OAuth](#authenticate-with-remote-mcp-servers) la cui risposta di autorizzazione indica un emittente inatteso.

360* Invia le credenziali [OAuth MCP](#authenticate-with-remote-mcp-servers) solo a un endpoint dei token servito tramite HTTPS o su `localhost`, `127.0.0.1` o `::1`. L'accesso fallisce per un server il cui endpoint dei token è `http://` semplice in qualsiasi altra posizione, come un dispositivo sulla tua rete locale. Consulta [Refusing to send credentials to non-https token endpoint](https://code.claude.com/docs/it/errors.md#refusing-to-send-credentials-to-non-https-token-endpoint).360* Invia le credenziali [MCP OAuth](#authenticate-with-remote-mcp-servers) solo a un endpoint dei token servito tramite HTTPS o su `localhost`, `127.0.0.1` o `::1`. L'accesso fallisce per un server il cui endpoint dei token è un semplice `http://` in qualsiasi altro punto, come un dispositivo sulla tua rete locale. Consulta [Refusing to send credentials to non-https token endpoint](https://code.claude.com/docs/it/errors.md#refusing-to-send-credentials-to-non-https-token-endpoint).

361 361 

362Anthropic può mantenere un server specifico sul protocollo precedente, o fuori da quello stream, con un feature flag recuperato da Claude Code. Per scegliere tu il runtime, imposta [`MCP_SDK_GENERATION`](https://code.claude.com/docs/it/env-vars) su `v1` o `v2`.362Anthropic può mantenere un server specifico sul protocollo precedente, o fuori da quello stream, con un feature flag che Claude Code recupera. Per scegliere tu il runtime, imposta [`MCP_SDK_GENERATION`](https://code.claude.com/docs/it/env-vars) su `v1` o `v2`.

363 363 

364Per decidere se Claude Code chiede ai server della revisione più recente, imposta [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/it/env-vars) su `auto` o `legacy`. Con quella variabile non impostata, Claude Code può evitare di chiedere a un server stdio per 7 giorni, per esempio dopo che il server termina quando interrogato. Per fare in modo che un server aggiornato venga interrogato prima, imposta `auto`.364Per decidere se Claude Code chiede ai server della revisione più recente, imposta [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/it/env-vars) su `auto` o `legacy`. Con quella variabile non impostata, Claude Code può evitare di chiederlo a un server stdio per 7 giorni, ad esempio dopo che il server è terminato quando gli è stato chiesto. Per fare in modo che un server aggiornato venga interpellato prima, imposta `auto`.

365 365 

366### Aggiornamenti dinamici degli strumenti366### Aggiornamenti dinamici degli strumenti

367 367 

368Un server MCP può modificare gli strumenti, i prompt o le risorse che offre mentre è connesso e inviare una notifica `list_changed`. Quando ne arriva una:368Un server MCP può cambiare gli strumenti, i prompt o le risorse che offre mentre è connesso e inviare una notifica `list_changed`. Quando ne arriva una:

369 369 

370* **In una sessione interattiva del terminale**, Claude Code recupera l'elenco aggiornato da quel server, quindi non devi riconnetterlo.370* **In una sessione di terminale interattiva**, Claude Code recupera l'elenco aggiornato da quel server, quindi non devi riconnetterlo.

371* **In [modalità non interattiva](https://code.claude.com/docs/it/headless.md) con il flag `-p` e nell'[Agent SDK](https://code.claude.com/docs/it/agent-sdk/overview.md)**, Claude Code aggiorna solo l'elenco degli strumenti in risposta a queste notifiche.371* **In [modalità non interattiva](https://code.claude.com/docs/it/headless.md) con il flag `-p` e nell'[Agent SDK](https://code.claude.com/docs/it/agent-sdk/overview.md)**, Claude Code aggiorna solo l'elenco degli strumenti con queste notifiche.

372 372 

373Se una richiesta di aggiornamento fallisce, Claude Code mantiene gli strumenti, i prompt e le risorse rilevati in precedenza per il server fino al successivo aggiornamento riuscito.373Se una richiesta di aggiornamento fallisce, Claude Code mantiene gli strumenti, i prompt e le risorse scoperti in precedenza dal server finché un aggiornamento successivo non riesce.

374 374 

375#### Stream di notifiche sul runtime v2375#### Stream di notifiche sul runtime v2

376 376 

377Sul [runtime v2](#mcp-client-runtimes), Claude Code riceve le notifiche `list_changed` da un server sulla revisione più recente del protocollo tramite uno stream che mantiene aperto. Quando lo stream si chiude, Claude Code lo riapre, con due limiti:377Sul [runtime v2](#mcp-client-runtimes), Claude Code riceve le notifiche `list_changed` da un server sulla revisione del protocollo più recente tramite uno stream che mantiene aperto. Quando lo stream si chiude, Claude Code lo riapre, con due limiti:

378 378 

379* **Lo stream si richiude entro 10 secondi**: Claude Code lo riapre fino a tre volte, poi si ferma per quella connessione.379* **Lo stream si richiude entro 10 secondi**: Claude Code lo riapre fino a tre volte, poi si ferma per quella connessione.

380* **Lo stream resta aperto più di 10 secondi, poi si chiude**, come accade comunemente con gli stream verso host serverless: dopo cinque riaperture in un'ora, Claude Code attende circa sei ore prima della successiva.380* **Lo stream resta aperto più di 10 secondi, poi si chiude**, come accade comunemente agli stream verso host serverless: dopo cinque riaperture in un'ora, Claude Code attende circa sei ore prima della successiva.

381 381 

382Finché lo stream non si riapre, mantieni gli ultimi strumenti, prompt e risorse recuperati dal server. Per acquisire prima le sue modifiche, riconnetti il server da `/mcp`.382Finché lo stream non si riapre, mantieni gli ultimi strumenti, prompt e risorse recuperati dal server. Per recepire prima le sue modifiche, riconnetti il server da `/mcp`.

383 383 

384### Riconnessione automatica384### Riconnessione automatica

385 385 

386Claude Code riconnette un server remoto che si disconnette a metà sessione e riprova la prima connessione di un server HTTP o SSE dopo un errore temporaneo. Per un server stdio, consulta [Server stdio che terminano o non si avviano](#stdio-servers-that-exit-or-fail-to-start).386Claude Code riconnette un server remoto che cade durante la sessione e riprova la prima connessione di un server HTTP o SSE dopo un errore transitorio. Per un server stdio, consulta [Server stdio che terminano o non si avviano](#stdio-servers-that-exit-or-fail-to-start).

387 387 

388#### Disconnessioni di un server remoto a metà sessione388#### Cadute di un server remoto durante la sessione

389 389 

390Claude Code prova innanzitutto a riconnettere un server remoto disconnesso fino a cinque volte con backoff esponenziale, partendo da un ritardo di un secondo e raddoppiandolo ogni volta:390Claude Code prova innanzitutto a riconnettere un server remoto caduto fino a cinque volte con backoff esponenziale, partendo da un ritardo di un secondo e raddoppiandolo ogni volta:

391 391 

392* **In una sessione interattiva**: `/mcp` mostra il server come in attesa mentre Claude Code si riconnette. Dopo cinque tentativi falliti, Claude Code contrassegna il server come in errore, o come bisognoso di autenticazione quando il server deve essere nuovamente autorizzato. Quando contrassegna il server come in errore, vedi una notifica `MCP server "<name>" disconnected · open /mcp to reconnect`. Puoi riprovare manualmente da `/mcp`.392* **In una sessione interattiva**: `/mcp` mostra il server come in attesa mentre Claude Code si riconnette. Dopo cinque tentativi falliti, Claude Code contrassegna il server come in errore, o come bisognoso di autenticazione quando il server richiede una nuova autorizzazione. Quando contrassegna il server come in errore, vedi una notifica `MCP server "<name>" disconnected · open /mcp to reconnect`. Puoi riprovare manualmente da `/mcp`.

393* **Nelle esecuzioni [`claude -p`](https://code.claude.com/docs/it/headless) e nelle sessioni dell'[Agent SDK](https://code.claude.com/docs/it/agent-sdk/overview.md)**: Claude Code effettua gli stessi cinque tentativi, senza alcun pannello `/mcp` per mostrarli. Se falliscono tutti e cinque, l'esecuzione continua senza gli strumenti del server:393* **Nelle esecuzioni [`claude -p`](https://code.claude.com/docs/it/headless) e nelle sessioni [Agent SDK](https://code.claude.com/docs/it/agent-sdk/overview.md)**: Claude Code effettua gli stessi cinque tentativi, senza un pannello `/mcp` che li mostri. Se tutti e cinque falliscono, l'esecuzione continua senza gli strumenti del server:

394 * **Dopo un errore temporaneo, come una risposta 5xx o un timeout**: Claude Code continua a riprovare un server HTTP o SSE in background. I nuovi tentativi durano fino a circa mezz'ora, e gli strumenti del server tornano disponibili quando uno di essi riesce a connettersi. Fino ad allora, una sessione dell'Agent SDK riporta lo [stato](https://code.claude.com/docs/it/agent-sdk/mcp.md#error-handling) `failed`, e il tuo codice può [riconnettere il server](https://code.claude.com/docs/it/agent-sdk/mcp.md#error-handling). Per riconnetterlo in `claude -p`, avvia di nuovo l'esecuzione.394 * **Dopo un errore transitorio, come una risposta 5xx o un timeout**: Claude Code continua a riprovare un server HTTP o SSE in background. I nuovi tentativi durano fino a circa mezz'ora, e gli strumenti del server tornano disponibili quando uno riesce a connettersi. Fino ad allora, una sessione Agent SDK riporta lo [stato](https://code.claude.com/docs/it/agent-sdk/mcp.md#error-handling) `failed`, e il tuo codice può [riconnettere il server](https://code.claude.com/docs/it/agent-sdk/mcp.md#error-handling). Per riconnetterlo in `claude -p`, avvia di nuovo l'esecuzione.

395 * **Quando il server [richiede di accedere di nuovo](#authenticate-with-remote-mcp-servers)**: Claude Code smette di riprovare, e una sessione dell'Agent SDK riporta lo stato del server come `needs-auth`. Accedi con [`claude mcp login <name>`](#authenticate-from-the-command-line) nella tua shell. Poi avvia di nuovo l'esecuzione oppure, in una sessione dell'Agent SDK, [riconnetti invece il server](https://code.claude.com/docs/it/agent-sdk/mcp.md#error-handling).395 * **Quando il server [richiede di accedere di nuovo](#authenticate-with-remote-mcp-servers)**: Claude Code smette di riprovare, e una sessione Agent SDK riporta lo stato del server come `needs-auth`. Accedi con [`claude mcp login <name>`](#authenticate-from-the-command-line) nella tua shell. Poi avvia di nuovo l'esecuzione oppure, in una sessione Agent SDK, [riconnetti invece il server](https://code.claude.com/docs/it/agent-sdk/mcp.md#error-handling).

396 396 

397#### Prime connessioni fallite397#### Prime connessioni fallite

398 398 

399Quando la prima connessione di un server HTTP o SSE fallisce con un errore temporaneo, come una risposta 5xx, una connessione rifiutata o un timeout, Claude Code riprova fino a tre volte. Se la connessione fallisce ancora, Claude Code contrassegna il server come in errore.399Quando la prima connessione di un server HTTP o SSE fallisce con un errore transitorio, come una risposta 5xx, una connessione rifiutata o un timeout, Claude Code riprova fino a tre volte. Se la connessione fallisce ancora, Claude Code contrassegna il server come in errore.

400 400 

401Questi nuovi tentativi non si applicano nei seguenti casi:401Questi nuovi tentativi non si applicano in questi casi:

402 402 

403* La prima connessione di un server stdio. Per riprovarla, consulta [Server stdio che terminano o non si avviano](#stdio-servers-that-exit-or-fail-to-start)403* La prima connessione di un server stdio. Per riprovarla, consulta [Server stdio che terminano o non si avviano](#stdio-servers-that-exit-or-fail-to-start)

404* La prima connessione di un server WebSocket. Per riprovarla in una sessione interattiva del terminale, seleziona **Reconnect** dal menu del server in `/mcp`404* La prima connessione di un server WebSocket. Per riprovarla in una sessione di terminale interattiva, seleziona **Reconnect** dal menu del server in `/mcp`

405* Un errore di autenticazione o di risorsa non trovata, perché per risolverlo è necessaria una modifica alla configurazione. Quando un [`headersHelper`](#use-dynamic-headers-for-custom-authentication) è l'unica fonte dell'header `Authorization` del server, Claude Code riprova comunque un errore di autenticazione, perché riesegue l'helper a ogni tentativo e può ottenere una credenziale nuova405* Un errore di autenticazione o di risorsa non trovata, perché richiede una modifica della configurazione per essere risolto. Quando un [`headersHelper`](#use-dynamic-headers-for-custom-authentication) è l'unica fonte dell'header `Authorization` del server, Claude Code riprova comunque un errore di autenticazione, perché esegue di nuovo l'helper a ogni tentativo e può ottenere una credenziale nuova

406 406 

407#### Server stdio che terminano o non si avviano407#### Server stdio che terminano o non si avviano

408 408 

409Per avviare di nuovo un server stdio, leggi la colonna che corrisponde a ciò che gli è successo. Trova la tua riga in base a come esegui Claude Code: una sessione interattiva, un'esecuzione `claude -p` o una sessione dell'Agent SDK.409Per avviare di nuovo un server stdio, leggi la colonna che corrisponde a ciò che gli è successo. Trova la tua riga in base a come esegui Claude Code: una sessione interattiva, un'esecuzione `claude -p` o una sessione Agent SDK.

410 410 

411| Come esegui Claude Code | Il processo del server termina a metà sessione | La prima connessione del server fallisce |411| Come esegui Claude Code | Il processo del server termina durante la sessione | La prima connessione del server fallisce |

412| - | - | - |412| - | - | - |

413| Sessione interattiva | Claude Code contrassegna il server come in errore. Per avviarlo di nuovo, seleziona **Reconnect** dal menu del server in `/mcp` | Claude Code contrassegna il server come in errore. Per avviarlo di nuovo, seleziona **Reconnect** dal menu del server in `/mcp` |413| Sessione interattiva | Claude Code contrassegna il server come in errore. Per avviarlo di nuovo, seleziona **Reconnect** dal menu del server in `/mcp` | Claude Code contrassegna il server come in errore. Per avviarlo di nuovo, seleziona **Reconnect** dal menu del server in `/mcp` |

414| Esecuzione `claude -p` | Claude Code avvia di nuovo il server la volta successiva in cui Claude chiama uno degli strumenti del server, e la chiamata viene eseguita non appena il server si connette | L'esecuzione continua senza gli strumenti del server. Per fare in modo che Claude Code riprovi la connessione, avvia di nuovo l'esecuzione. Quando il server è fornito da un plugin, le nuove esecuzioni saltano la connessione per 15 minuti dopo un errore, quindi attendi prima quel tempo oppure [riprova prima](https://code.claude.com/docs/it/errors.md#skipping-connection-recent-failure-cached) |414| Esecuzione `claude -p` | Claude Code avvia di nuovo il server la volta successiva in cui Claude chiama uno dei suoi strumenti, e la chiamata viene eseguita non appena il server si connette | L'esecuzione continua senza gli strumenti del server. Per fare in modo che Claude Code riprovi la connessione, avvia di nuovo l'esecuzione. Quando il server è fornito da un plugin, le nuove esecuzioni saltano la connessione per 15 minuti dopo un errore, quindi attendi prima quel tempo oppure [riprova prima](https://code.claude.com/docs/it/errors.md#skipping-connection-recent-failure-cached) |

415| Sessione dell'Agent SDK | Claude Code avvia di nuovo il server la volta successiva in cui Claude chiama uno degli strumenti del server, e la chiamata viene eseguita non appena il server si connette | La sessione continua senza gli strumenti del server. Il tuo codice può [riconnettere il server](https://code.claude.com/docs/it/agent-sdk/mcp.md#error-handling) |415| Sessione Agent SDK | Claude Code avvia di nuovo il server la volta successiva in cui Claude chiama uno dei suoi strumenti, e la chiamata viene eseguita non appena il server si connette | La sessione continua senza gli strumenti del server. Il tuo codice può [riconnettere il server](https://code.claude.com/docs/it/agent-sdk/mcp.md#error-handling) |

416 416 

417#### Richieste di rilevamento fallite417#### Richieste di discovery fallite

418 418 

419Dopo che un server si è connesso, Claude Code gli invia richieste di rilevamento delle capacità come `tools/list`, `prompts/list` e `resources/list`. Claude Code riprova queste richieste fino a tre volte con un breve backoff dopo un errore temporaneo di rete o del server. Non riprova in caso di errori di autenticazione, risposte 4xx o timeout delle richieste.419Dopo che un server si è connesso, Claude Code gli invia richieste di discovery delle capacità come `tools/list`, `prompts/list` e `resources/list`. Claude Code riprova queste richieste fino a tre volte con un breve backoff dopo un errore transitorio di rete o del server. Non riprova in caso di errori di autenticazione, risposte 4xx o timeout delle richieste.

420 420 

421#### Riprovare tu stesso i server in errore421#### Riprovare tu stesso i server in errore

422 422 

423Per riprovare ogni server in errore o che richiede autenticazione, esegui `/mcp reconnect all` al prompt di Claude Code in una sessione interattiva del terminale. Questo richiede Claude Code v2.1.284 o successivo. Le versioni precedenti stampano `MCP server "all" not found`.423Per riprovare tutti i server in errore o che richiedono autenticazione, esegui `/mcp reconnect all` al prompt di Claude Code in una sessione di terminale interattiva. Questo richiede Claude Code v2.1.284 o successivo. Le versioni precedenti stampano `MCP server "all" not found`.

424 424 

425#### Come Claude viene a sapere che un server è in errore425#### Come Claude viene a sapere che un server è in errore

426 426 

427Se Claude Code comunica a Claude che un server configurato non è riuscito a connettersi dipende dalla [ricerca degli strumenti](#scale-with-mcp-tool-search), che è attiva per impostazione predefinita:427Se Claude Code comunica a Claude che un server configurato non è riuscito a connettersi dipende dalla [ricerca degli strumenti](#scale-with-mcp-tool-search), che è attiva per impostazione predefinita:

428 428 

429* Con la ricerca degli strumenti, Claude Code comunica a Claude quale server è in errore e il relativo errore di connessione, così Claude segnala l'errore di connessione nella sua risposta. Claude Code include le stesse informazioni nei risultati di `ToolSearch` che non trovano alcuno strumento corrispondente.429* Con la ricerca degli strumenti, Claude Code comunica a Claude quale server è in errore e il relativo errore di connessione, così Claude riporta l'errore di connessione nella sua risposta. Claude Code include le stesse informazioni nei risultati di `ToolSearch` che non trovano alcuno strumento corrispondente.

430* In qualsiasi [configurazione senza ricerca degli strumenti](#configure-tool-search), Claude Code non segnala a Claude le connessioni ai server fallite.430* In qualsiasi [configurazione senza ricerca degli strumenti](#configure-tool-search), Claude Code non segnala a Claude le connessioni ai server fallite.

431 431 

432### Inviare messaggi con i canali432### Inviare messaggi con i canali

433 433 

434Un server MCP può anche inviare messaggi direttamente nella tua sessione, così Claude può reagire a eventi esterni come risultati della CI, avvisi di monitoraggio o messaggi di chat. Per abilitarlo, il tuo server dichiara la capacità `claude/channel` e tu lo abiliti con il flag `--channels` all'avvio. Consulta [Canali](https://code.claude.com/docs/it/channels.md) per usare un canale supportato ufficialmente, oppure [Riferimento dei canali](https://code.claude.com/docs/it/channels-reference.md) per crearne uno tuo.434Un server MCP può anche inviare messaggi direttamente nella tua sessione, così Claude può reagire a eventi esterni come risultati della CI, avvisi di monitoraggio o messaggi di chat. Per abilitarlo, il tuo server dichiara la capacità `claude/channel` e tu lo abiliti con il flag `--channels` all'avvio. Consulta [Canali](https://code.claude.com/docs/it/channels.md) per usare un canale supportato ufficialmente, oppure [Riferimento dei canali](https://code.claude.com/docs/it/channels-reference.md) per crearne uno tuo.

435 435 

436Sul [runtime v2](#mcp-client-runtimes), un server di canale che negozia la revisione del protocollo MCP 2026-07-28 non può consegnare messaggi di canale, quindi Claude Code non lo registra come canale. Un server di canale che non supporta quella revisione si connette con l'handshake precedente e viene registrato come prima.436Sul [runtime v2](#mcp-client-runtimes), un server di canale che negozia la revisione del protocollo MCP 2026-07-28 non può consegnare messaggi di canale, quindi Claude Code non lo registra come canale. Un server di canale che non supporta quella revisione si connette con l'handshake precedente e si registra come prima.

437 437 

438Claude Code chiede quella revisione ai server stdio per impostazione predefinita. Per mantenere un server di canale stdio sull'handshake precedente, imposta [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/it/env-vars) su `legacy`, che mantiene tutti i server su di esso.438Claude Code chiede quella revisione ai server stdio per impostazione predefinita. Per mantenere un server di canale stdio sull'handshake precedente, imposta [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/it/env-vars) su `legacy`, che mantiene tutti i server su di esso.

439 439 


447> * `user`: disponibile per te in tutti i progetti447> * `user`: disponibile per te in tutti i progetti

448> * Imposta le variabili d'ambiente con i flag `-e` o `--env` (ad esempio, `-e KEY=value`)448> * Imposta le variabili d'ambiente con i flag `-e` o `--env` (ad esempio, `-e KEY=value`)

449> * I flag `--transport` e `--header` accettano anche le forme brevi `-t` e `-H`449> * I flag `--transport` e `--header` accettano anche le forme brevi `-t` e `-H`

450> * Configura il timeout di avvio del server MCP usando la variabile d'ambiente `MCP_TIMEOUT` (ad esempio, `MCP_TIMEOUT=10000 claude` imposta un timeout di 10 secondi)450> * Configura il timeout di avvio dei server MCP usando la variabile d'ambiente `MCP_TIMEOUT` (ad esempio, `MCP_TIMEOUT=10000 claude` imposta un timeout di 10 secondi)

451> * Imposta un timeout di esecuzione degli strumenti per server aggiungendo un campo `timeout` in millisecondi alla voce `.mcp.json` di quel server, ad esempio `"timeout": 600000` per dieci minuti. Questo sovrascrive la variabile d'ambiente `MCP_TOOL_TIMEOUT` solo per quel server451> * Imposta un timeout di esecuzione degli strumenti per singolo server aggiungendo un campo `timeout` in millisecondi alla voce `.mcp.json` di quel server, ad esempio `"timeout": 600000` per dieci minuti. Questo sovrascrive la variabile d'ambiente `MCP_TOOL_TIMEOUT` solo per quel server

452> * Claude Code mostra un avviso quando l'output di uno strumento MCP supera i 10.000 token e limita l'output a 25.000 token per impostazione predefinita. Per modificare il limite di token, imposta la variabile d'ambiente `MAX_MCP_OUTPUT_TOKENS`, ad esempio `MAX_MCP_OUTPUT_TOKENS=50000`. La soglia di avviso è fissa. A meno che il server non aumenti il limite specifico di uno strumento, i risultati testuali riusciti più lunghi di 50.000 caratteri vengono salvati in un file indipendentemente da questa variabile. Consulta [Limiti e avvisi sull'output MCP](#mcp-output-limits-and-warnings)452> * Claude Code mostra un avviso quando l'output di uno strumento MCP supera i 10.000 token e limita l'output a 25.000 token per impostazione predefinita. Per cambiare il limite di token, imposta la variabile d'ambiente `MAX_MCP_OUTPUT_TOKENS`, ad esempio `MAX_MCP_OUTPUT_TOKENS=50000`. La soglia di avviso è fissa. A meno che il server non aumenti il limite proprio di uno strumento, i risultati testuali riusciti più lunghi di 50.000 caratteri vengono salvati in un file indipendentemente da questa variabile. Consulta [Limiti e avvisi sull'output MCP](#mcp-output-limits-and-warnings)

453> * Usa `/mcp` per autenticarti con i server remoti che richiedono l'autenticazione OAuth 2.0453> * Usa `/mcp` per autenticarti con i server remoti che richiedono l'autenticazione OAuth 2.0

454 454 

455### Limiti di tempo sulle chiamate agli strumenti MCP455### Limiti di tempo sulle chiamate agli strumenti MCP


459* **Per server**: aggiungi un campo `timeout` in millisecondi alla voce di configurazione di quel server459* **Per server**: aggiungi un campo `timeout` in millisecondi alla voce di configurazione di quel server

460* **Per tutti i server**: imposta [`MCP_TOOL_TIMEOUT`](https://code.claude.com/docs/it/env-vars)460* **Per tutti i server**: imposta [`MCP_TOOL_TIMEOUT`](https://code.claude.com/docs/it/env-vars)

461 461 

462Il `timeout` per server è un limite rigido di tempo reale per ogni chiamata a uno strumento, e le notifiche di avanzamento del server non lo estendono. I valori inferiori a 1000 vengono ignorati e si ricade su `MCP_TOOL_TIMEOUT`, o sul suo valore predefinito di circa 28 ore quando quella variabile non è impostata. Per un server HTTP, SSE o [connettore claude.ai](https://code.claude.com/docs/it/mcp.md#use-mcp-servers-from-claude-ai) esiste anche un secondo timer per richiesta che copre ogni richiesta fino al primo byte della risposta del server. Claude Code imposta quel timer sul maggiore di tre valori: 60 secondi, il timeout degli strumenti che si applica al server e `MCP_TIMEOUT`. Il valore predefinito di 28 ore di un `MCP_TOOL_TIMEOUT` non impostato non entra in quel confronto, e un valore inferiore a 60 secondi non accorcia il timer. I server stdio e WebSocket non hanno un timer per richiesta.462Il `timeout` per server è un limite rigido in tempo reale per ogni chiamata a uno strumento, e le notifiche di avanzamento del server non lo estendono. I valori inferiori a 1000 vengono ignorati e si ricade su `MCP_TOOL_TIMEOUT`, o sul suo valore predefinito di circa 28 ore quando quella variabile non è impostata. Per un server HTTP, SSE o [connettore claude.ai](https://code.claude.com/docs/it/mcp.md#use-mcp-servers-from-claude-ai) esiste anche un secondo timer per richiesta che copre ogni richiesta fino al primo byte di risposta del server. Claude Code imposta quel timer sul maggiore di tre valori: 60 secondi, il timeout degli strumenti applicabile al server e `MCP_TIMEOUT`. Il valore predefinito di 28 ore di un `MCP_TOOL_TIMEOUT` non impostato non entra in quel confronto, e un valore inferiore a 60 secondi non accorcia il timer. I server stdio e WebSocket non hanno un timer per richiesta.

463 463 

464Un `timeout` per server di almeno 1000 funge anche da soglia minima per il timeout di inattività descritto di seguito: Claude Code non interrompe mai per inattività le chiamate agli strumenti di quel server prima del `timeout` per server.464Un `timeout` per server di almeno 1000 funge anche da soglia minima per il timeout di inattività descritto di seguito: Claude Code non interrompe mai per inattività le chiamate agli strumenti di quel server prima del `timeout` per server.

465 465 

466Una chiamata a uno strumento di un server MCP che non invia alcuna risposta e alcuna notifica di avanzamento per la durata della finestra di inattività viene interrotta con un errore invece di attendere il limite di tempo reale. Il timeout di inattività si applica a tutti i tipi di server tranne i server IDE e i server in-process dell'SDK. La finestra di inattività è per impostazione predefinita di cinque minuti per i server HTTP, SSE, WebSocket e [connettori claude.ai](#use-mcp-servers-from-claude-ai), e di 30 minuti per i server stdio.466Una chiamata a uno strumento di un server MCP che non invia alcuna risposta né notifica di avanzamento per la finestra di inattività viene interrotta con un errore invece di attendere il limite in tempo reale. Il timeout di inattività si applica a tutti i tipi di server tranne i server IDE e i server SDK in-process. La finestra di inattività è di cinque minuti per impostazione predefinita per i server HTTP, SSE, WebSocket e [connettori claude.ai](#use-mcp-servers-from-claude-ai), e di 30 minuti per i server stdio.

467 467 

468Imposta la variabile d'ambiente [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](https://code.claude.com/docs/it/env-vars) in millisecondi per modificare la finestra di inattività, oppure impostala su `0` per disattivare il controllo.468Imposta la variabile d'ambiente [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](https://code.claude.com/docs/it/env-vars) in millisecondi per cambiare la finestra di inattività, oppure impostala su `0` per disabilitare il controllo.

469 469 

470Questi timeout limitano per quanto tempo può essere eseguita una chiamata, non sempre per quanto tempo blocca la sessione: una chiamata nella conversazione principale che supera i due minuti passa prima a un'attività in background. Consulta [Spostamento automatico in background delle chiamate lunghe agli strumenti](#automatic-backgrounding-of-long-tool-calls).470Questi timeout limitano la durata di una chiamata, non sempre il tempo per cui blocca la sessione: una chiamata della conversazione principale che supera i due minuti viene prima spostata in un'attività in background. Consulta [Spostamento automatico in background delle chiamate lunghe agli strumenti](#automatic-backgrounding-of-long-tool-calls).

471 471 

472### Spostamento automatico in background delle chiamate lunghe agli strumenti472### Spostamento automatico in background delle chiamate lunghe agli strumenti

473 473 

474Se la vista di dettaglio di una chiamata in background in [`/tasks`](https://code.claude.com/docs/it/commands#all-commands) mostra `runs on the server; survives exiting this session`, consulta [Attività MCP eseguite sul server](#mcp-tasks-that-run-on-the-server).474Se la vista di dettaglio di una chiamata in background in [`/tasks`](https://code.claude.com/docs/it/commands#all-commands) mostra `runs on the server; survives exiting this session`, consulta [Attività MCP eseguite sul server](#mcp-tasks-that-run-on-the-server).

475 475 

476Una chiamata a uno strumento MCP nella conversazione principale che è ancora in esecuzione dopo due minuti passa a un'attività in background invece di bloccare la sessione. Claude riceve immediatamente l'ID dell'attività e continua a lavorare, e il risultato arriva come notifica dell'attività quando la chiamata si conclude.476Una chiamata a uno strumento MCP nella conversazione principale ancora in esecuzione dopo due minuti viene spostata in un'attività in background invece di bloccare la sessione. Claude riceve subito l'ID dell'attività e continua a lavorare, e il risultato arriva come notifica dell'attività quando la chiamata si conclude.

477 477 

478L'attività compare in [`/tasks`](https://code.claude.com/docs/it/commands#all-commands), dove puoi anche arrestarla, e non sopravvive all'uscita dalla sessione. La voce dell'attività mostra l'ultimo avanzamento riportato dal server. Se arresti l'attività, Claude Code annulla la chiamata e comunica a Claude che non arriverà alcun risultato. L'arresto non garantisce che il server si fermi: potrebbe aver già svolto parte del lavoro, o potrebbe comunque completarlo.478L'attività compare in [`/tasks`](https://code.claude.com/docs/it/commands#all-commands), dove puoi anche arrestarla, e non sopravvive all'uscita dalla sessione. La voce dell'attività mostra l'ultimo avanzamento riportato dal server. Se arresti l'attività, Claude Code annulla la chiamata e comunica a Claude che non arriverà alcun risultato. L'arresto non garantisce che il server si fermi: potrebbe aver già svolto parte del lavoro, o potrebbe comunque completarlo.

479 479 

480I limiti per chiamata si applicano anche mentre la chiamata è in esecuzione in background: il limite di tempo reale impostato dal `timeout` per server o da [`MCP_TOOL_TIMEOUT`](https://code.claude.com/docs/it/env-vars), e il timeout di inattività impostato da [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](https://code.claude.com/docs/it/env-vars).480I limiti per chiamata continuano ad applicarsi mentre la chiamata viene eseguita in background: il limite in tempo reale impostato dal `timeout` per server o da [`MCP_TOOL_TIMEOUT`](https://code.claude.com/docs/it/env-vars), e il timeout di inattività impostato da [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](https://code.claude.com/docs/it/env-vars).

481 481 

482Per modificare o disattivare lo spostamento automatico in background:482Per modificare o disattivare lo spostamento automatico in background:

483 483 

484* Imposta la variabile d'ambiente [`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](https://code.claude.com/docs/it/env-vars) in millisecondi per modificare la soglia, oppure impostala su `0` per disattivare lo spostamento automatico in background. Con `0`, Claude [attende anche le attività MCP](#make-claude-wait-for-the-result-of-an-mcp-task) in una sessione interattiva484* Imposta la variabile d'ambiente [`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](https://code.claude.com/docs/it/env-vars) in millisecondi per cambiare la soglia, oppure impostala su `0` per disattivare lo spostamento automatico in background. Con `0`, Claude [attende anche le attività MCP](#make-claude-wait-for-the-result-of-an-mcp-task) in una sessione interattiva

485* Imposta [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/it/env-vars) su `1` per disattivare il passaggio automatico in background e i [comandi in background](https://code.claude.com/docs/it/tools-reference.md#background-commands)485* Imposta [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/it/env-vars) su `1` per disattivare lo spostamento automatico in background e i [comandi in background](https://code.claude.com/docs/it/tools-reference.md#background-commands)

486 486 

487Alcune chiamate non passano mai in background:487Alcune chiamate non vengono mai spostate in background:

488 488 

489* Le chiamate dai [subagent](https://code.claude.com/docs/it/sub-agents.md); Claude Code sposta in background solo le chiamate della conversazione principale489* Le chiamate dei [subagent](https://code.claude.com/docs/it/sub-agents.md); Claude Code sposta in background solo le chiamate della conversazione principale

490* Le chiamate ai server IDE490* Le chiamate ai server IDE

491* Le chiamate in [modalità non interattiva](https://code.claude.com/docs/it/headless.md), a meno che `CLAUDE_AUTO_BACKGROUND_TASKS` non sia impostato su `1`, poiché un'esecuzione singola può terminare prima che arrivi il risultato491* Le chiamate in [modalità non interattiva](https://code.claude.com/docs/it/headless.md), a meno che `CLAUDE_AUTO_BACKGROUND_TASKS` non sia impostato su `1`, poiché un'esecuzione singola può terminare prima dell'arrivo del risultato

492 492 

493Una chiamata in attesa di una [finestra di dialogo di elicitation](#respond-to-mcp-elicitation-requests) aperta non viene spostata in background mentre la finestra è aperta; il server è bloccato in attesa del tuo input, non è lento, quindi Claude Code rinvia lo spostamento finché la finestra non si chiude.493Una chiamata in attesa di una [finestra di dialogo di elicitation](#respond-to-mcp-elicitation-requests) aperta non viene spostata in background mentre la finestra è aperta; il server è bloccato in attesa del tuo input, non è lento, quindi Claude Code rimanda lo spostamento finché la finestra non si chiude.

494 494 

495### Attività MCP eseguite sul server495### Attività MCP eseguite sul server

496 496 

497Un'attività MCP è un lavoro lungo, come l'esportazione di un report o una build, che un server MCP esegue autonomamente usando l'[estensione MCP tasks](https://modelcontextprotocol.io/extensions/tasks/overview). La chiamata allo strumento di Claude ritorna non appena il server accetta il lavoro, quindi Claude continua a lavorare a meno che tu non [faccia attendere Claude](#make-claude-wait-for-the-result-of-an-mcp-task). Quando il lavoro termina, la trascrizione lo indica e Claude riceve il risultato. Chiedilo a Claude.497Un'attività MCP è un lavoro lungo, come l'esportazione di un report o una build, che un server MCP esegue autonomamente usando l'[estensione MCP tasks](https://modelcontextprotocol.io/extensions/tasks/overview). La chiamata di Claude allo strumento restituisce non appena il server accetta il lavoro, quindi Claude continua a lavorare a meno che tu non [faccia attendere Claude](#make-claude-wait-for-the-result-of-an-mcp-task). Quando il lavoro termina, la trascrizione lo indica e Claude riceve il risultato. Chiedilo a Claude.

498 498 

499Nel frattempo, il piè di pagina mostra un conteggio come `1 MCP task`, e Claude Code segue l'attività controllandone lo stato con il server. Un'attività su un server remoto continua a essere eseguita dopo che esci. Per seguirla di nuovo, [riprendi la stessa sessione](#exit-clear-or-resume-while-an-mcp-task-runs).499Nel frattempo, il piè di pagina mostra un conteggio come `1 MCP task`, e Claude Code segue l'attività controllandone lo stato con il server. Un'attività su un server remoto continua a essere eseguita dopo che esci. Per seguirla di nuovo, [riprendi la stessa sessione](#exit-clear-or-resume-while-an-mcp-task-runs).

500 500 

501> [!NOTE]501> [!NOTE]

502>502>

503> Le attività MCP sono in beta pubblica nella CLI di Claude Code e richiedono Claude Code v2.1.304 o successiva. [Cosa serve a una chiamata per diventare un'attività MCP](#requirements-for-mcp-tasks) elenca le sessioni e i server che le supportano.503> Le attività MCP sono in beta pubblica nella CLI di Claude Code e richiedono Claude Code v2.1.304 o successivo. [Cosa serve a una chiamata per diventare un'attività MCP](#requirements-for-mcp-tasks) elenca le sessioni e i server che le supportano.

504 504 

505#### Arrestare un'attività MCP o ottenerne il risultato505#### Arrestare un'attività MCP o ottenerne il risultato

506 506 


512MCP task <server task id> (<server>/<tool>) completed.512MCP task <server task id> (<server>/<tool>) completed.

513```513```

514 514 

515Il risultato va a Claude, non nella trascrizione, quindi chiedilo a Claude. Se Claude è inattivo quando arriva il risultato, Claude inizia a lavorarci senza sollecitazione.515Il risultato va a Claude, non nella trascrizione, quindi chiedilo a Claude. Se Claude è inattivo quando arriva il risultato, Claude inizia a elaborarlo senza che tu glielo chieda.

516 516 

517#### Rispondere a una domanda di un'attività MCP517#### Rispondere a una domanda di un'attività MCP

518 518 

519Un'attività in esecuzione può aprire una [finestra di dialogo di elicitazione](#respond-to-mcp-elicitation-requests) per chiederti un input. Mentre `/tasks` è aperto, la finestra di dialogo resta nascosta, quindi chiudi `/tasks` per rispondere. Rifiutare o premere `Esc` è una risposta al server, che poi decide se l'attività prosegue.519Un'attività in esecuzione può aprire una [finestra di dialogo di elicitation](#respond-to-mcp-elicitation-requests) per chiederti un input. Mentre `/tasks` è aperto, la finestra di dialogo resta nascosta, quindi chiudi `/tasks` per rispondere. Rifiutare o premere `Esc` è una risposta al server, che decide poi se l'attività prosegue.

520 520 

521In una sessione [non interattiva](https://code.claude.com/docs/it/headless.md), Claude Code chiede al server di annullare un'attività che richiede un input, senza eseguire i tuoi [hook `Elicitation`](https://code.claude.com/docs/it/hooks#elicitation) né chiamare il callback `onElicitation` dell'Agent SDK.521In una sessione [non interattiva](https://code.claude.com/docs/it/headless.md), Claude Code chiede al server di annullare un'attività che richiede input, senza eseguire i tuoi [hook `Elicitation`](https://code.claude.com/docs/it/hooks#elicitation) né chiamare il callback `onElicitation` dell'Agent SDK.

522 522 

523#### Uscire, cancellare o riprendere mentre un'attività MCP è in esecuzione523#### Uscire, cancellare o riprendere mentre un'attività MCP è in esecuzione

524 524 

525Un'attività su un server remoto continua a essere eseguita dopo che esci. Il processo di un server stdio si arresta quando Claude Code esce, anche se le sue attività mostrano `runs on the server; survives exiting this session` in `/tasks`. A meno che la documentazione di quel server non indichi che il lavoro sopravvive al processo, lascia che quelle attività terminino o arrestale prima in `/tasks`.525Un'attività su un server remoto continua a essere eseguita dopo che esci. Il processo di un server stdio si arresta quando Claude Code termina, anche se le sue attività mostrano `runs on the server; survives exiting this session` in `/tasks`. A meno che la documentazione di quel server non indichi che il lavoro sopravvive al processo, lascia prima completare quelle attività oppure arrestale in `/tasks`.

526 526 

527| Situazione | Cosa succede all'attività | Cosa puoi fare |527| Situazione | Cosa succede all'attività | Cosa puoi fare |

528| - | - | - |528| - | - | - |

529| Esegui `/clear` o `/branch`, oppure `/resume` su un'altra sessione | Finché Claude Code resta aperto, il risultato arriva nella conversazione corrente | Dopo un'uscita, esegui `claude --resume` sulla sessione in cui è iniziata l'attività |529| Esegui `/clear` o `/branch`, oppure `/resume` su un'altra sessione | Finché Claude Code resta aperto, il risultato arriva nella tua conversazione corrente | Dopo un'uscita, esegui `claude --resume` sulla sessione in cui è iniziata l'attività |

530| Esci da Claude Code | Nessuna opzione di uscita annulla l'attività di un server remoto, anche quando la finestra di dialogo di uscita la elenca sotto `The following will stop when you exit:` | Arrestala prima in `/tasks`, oppure riprendi la stessa sessione in seguito |530| Esci da Claude Code | Nessuna opzione di uscita annulla l'attività di un server remoto, anche quando la finestra di dialogo di uscita la elenca sotto `The following will stop when you exit:` | Arrestala prima in `/tasks`, oppure riprendi la stessa sessione in seguito |

531| Torni alla sessione dell'attività in modo interattivo: `claude --resume`, `claude --continue` o `/resume` | Una volta che il server si connette, Claude Code segue di nuovo l'attività, e Claude riceve il risultato se nel frattempo è terminata e il server la conosce ancora | Mantieni invariati il nome e le impostazioni di connessione del server |531| Torni alla sessione dell'attività in modo interattivo: `claude --resume`, `claude --continue` o `/resume` | Una volta che il server si connette, Claude Code segue di nuovo l'attività, e Claude riceve il risultato se nel frattempo è terminata e il server la conosce ancora | Mantieni invariati il nome e le impostazioni di connessione del server |

532| Riprendi la sessione dell'attività con `--resume` o `--continue` in un'esecuzione singola `claude -p "<prompt>"` | Quell'esecuzione non segue l'attività | Riprendi in modo interattivo, oppure con `--input-format stream-json` |532| Riprendi la sessione dell'attività con `--resume` o `--continue` in un'esecuzione singola `claude -p "<prompt>"` | Quell'esecuzione non segue l'attività | Riprendi in modo interattivo, oppure con `--input-format stream-json` |


539* Il server supporta le attività539* Il server supporta le attività

540* Il server è un server HTTP, stdio o connettore claude.ai connesso sulla [revisione del protocollo 2026-07-28](#mcp-client-runtimes). Impostare [`MCP_SDK_GENERATION=v1` o `MCP_PROTOCOL_NEGOTIATION=legacy`](https://code.claude.com/docs/it/env-vars) lo esclude540* Il server è un server HTTP, stdio o connettore claude.ai connesso sulla [revisione del protocollo 2026-07-28](#mcp-client-runtimes). Impostare [`MCP_SDK_GENERATION=v1` o `MCP_PROTOCOL_NEGOTIATION=legacy`](https://code.claude.com/docs/it/env-vars) lo esclude

541* La sessione [recupera i feature flag](https://code.claude.com/docs/it/env-vars.md#features-that-need-feature-flag-fetching), quindi non su un provider di terze parti come Amazon Bedrock, e non con la telemetria o il recupero dei flag disattivati541* La sessione [recupera i feature flag](https://code.claude.com/docs/it/env-vars.md#features-that-need-feature-flag-fetching), quindi non su un provider di terze parti come Amazon Bedrock, e non con la telemetria o il recupero dei flag disattivati

542* Anthropic ha attivato le attività MCP per il tuo tipo di sessione. Dalla v2.1.304 in poi ciò copre le sessioni CLI nel terminale, le sessioni dell'[Agent SDK](https://code.claude.com/docs/it/agent-sdk/overview.md) e le esecuzioni di [GitHub Actions](https://code.claude.com/docs/it/github-actions.md). Altre superfici, come l'[estensione VS Code](https://code.claude.com/docs/it/vs-code.md) e l'[app desktop](https://code.claude.com/docs/it/desktop.md), non hanno le attività MCP542* Anthropic ha attivato le attività MCP per il tuo tipo di sessione. Su v2.1.304 o successivo ciò copre le sessioni della CLI nel terminale, le sessioni [Agent SDK](https://code.claude.com/docs/it/agent-sdk/overview.md) e le esecuzioni di [GitHub Actions](https://code.claude.com/docs/it/github-actions.md). Altre superfici, come l'[estensione VS Code](https://code.claude.com/docs/it/vs-code.md) e l'[app desktop](https://code.claude.com/docs/it/desktop.md), non hanno le attività MCP

543* La chiamata proviene dalla conversazione principale, non da un [subagent](https://code.claude.com/docs/it/sub-agents.md)543* La chiamata proviene dalla conversazione principale, non da un [subagent](https://code.claude.com/docs/it/sub-agents.md)

544* La sessione è interattiva, oppure una sessione dell'[Agent SDK](https://code.claude.com/docs/it/agent-sdk/overview.md) o un'esecuzione `claude -p` che legge `--input-format stream-json` ha:544* La sessione è interattiva, oppure una sessione [Agent SDK](https://code.claude.com/docs/it/agent-sdk/overview.md) o un'esecuzione `claude -p` che legge `--input-format stream-json` ha:

545 * [`CLAUDE_AUTO_BACKGROUND_TASKS`](https://code.claude.com/docs/it/env-vars) impostato su `1`545 * [`CLAUDE_AUTO_BACKGROUND_TASKS`](https://code.claude.com/docs/it/env-vars) a `1`

546 * `CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND` diverso da `1`546 * `CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND` diverso da `1`

547 * `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` diverso da `0`547 * `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` diverso da `0`

548 548 

549Qualsiasi altra chiamata è una normale chiamata a uno strumento, e [Spostamento automatico in background delle chiamate lunghe agli strumenti](#automatic-backgrounding-of-long-tool-calls) indica quali di queste passano in background.549Qualsiasi altra chiamata è una normale chiamata a uno strumento, e [Spostamento automatico in background delle chiamate lunghe agli strumenti](#automatic-backgrounding-of-long-tool-calls) indica quali di esse vengono spostate in background.

550 550 

551Mantieni aperto l'input di una sessione dell'Agent SDK o stream-json, perché l'esecuzione [non attende le attività MCP](https://code.claude.com/docs/it/headless.md#mcp-work-when-a-non-interactive-run-ends) dopo la chiusura dell'input. Un'esecuzione singola `claude -p "<prompt>"` non supporta le attività MCP.551Mantieni aperto l'input di una sessione Agent SDK o stream-json, perché l'esecuzione [non attende le attività MCP](https://code.claude.com/docs/it/headless.md#mcp-work-when-a-non-interactive-run-ends) dopo la chiusura dell'input. Un'esecuzione singola `claude -p "<prompt>"` non ottiene attività MCP.

552 552 

553#### Messaggi di stato su un'attività MCP553#### Messaggi di stato su un'attività MCP

554 554 

555Questi messaggi, nella voce `/tasks` di un'attività o nella sua riga di chiusura nella trascrizione, indicano che Claude Code non riesce a raggiungere il server o l'attività. Mentre uno di essi è visibile in `/tasks`, il lavoro potrebbe essere ancora in esecuzione: Claude Code lo lascia stare e continua a controllare. Il messaggio `300s` e quelli di configurazione restano sulla voce anche dopo il ripristino del contatto.555Questi messaggi, nella voce `/tasks` di un'attività o nella sua riga di chiusura nella trascrizione, indicano che Claude Code non riesce a raggiungere il server o l'attività. Mentre uno di essi è visibile in `/tasks`, il lavoro potrebbe essere ancora in esecuzione: Claude Code lo lascia stare e continua a controllare. I messaggi `300s` e quelli di configurazione restano sulla voce anche dopo il ripristino del contatto.

556 556 

557| Messaggio | Cosa sta succedendo | Cosa puoi fare |557| Messaggio | Cosa sta succedendo | Cosa puoi fare |

558| - | - | - |558| - | - | - |

559| `reconnecting…` | Il server non ha risposto dopo una ripresa, oppure i controlli di stato non ricevono risposta | Se persiste, riconnetti da `/mcp` |559| `reconnecting…` | Il server non ha risposto dopo una ripresa, oppure i controlli di stato non ricevono risposta | Se persiste, riconnetti da `/mcp` |

560| `needs a sign-in to <server>` | Il server ha rifiutato un controllo di stato | Accedi da `/mcp` |560| `needs a sign-in to <server>` | Il server ha rifiutato un controllo di stato | Accedi da `/mcp` |

561| `status requests come back with errors; retrying…` | Il server, o un proxy davanti a esso, risponde ai controlli di stato con errori | Attendi mentre Claude Code riprova |561| `status requests come back with errors; retrying…` | Il server, o un proxy davanti a esso, risponde ai controlli di stato con errori | Attendi mentre Claude Code riprova |

562| `server '<name>' did not reconnect within 300s` | Nessun controllo con risposta per cinque minuti, ad esempio con la connessione interrotta o il server disattivato | Riconnetti da `/mcp` |562| `server '<name>' did not reconnect within 300s` | Nessun controllo con risposta per cinque minuti, ad esempio con la connessione interrotta o il server disabilitato | Riconnetti da `/mcp` |

563| `server '<name>' asked for a sign-in, and none was accepted within 300s` | Dopo cinque minuti il server richiede ancora un accesso | Accedi da `/mcp` |563| `server '<name>' asked for a sign-in, and none was accepted within 300s` | Dopo cinque minuti il server richiede ancora un accesso | Accedi da `/mcp` |

564| `status requests to server '<name>' came back with errors, and none succeeded in 300s` | Cinque minuti di risposte con errori | Controlla lo stato di salute o i log del server |564| `status requests to server '<name>' came back with errors, and none succeeded in 300s` | Cinque minuti di risposte con errori | Controlla lo stato di salute o i log del server |

565| `server '<name>' is not configured in this session; the task may still be running on it` | La sessione non ha alcun server con quel nome, ad esempio perché è stato rimosso, rinominato o escluso da `--mcp-config`, oppure un connettore claude.ai si sta ancora caricando | Ripristina il server con lo stesso nome, poi riprendi di nuovo la sessione. Per un connettore in caricamento, nulla: Claude Code segue l'attività non appena compare |565| `server '<name>' is not configured in this session; the task may still be running on it` | La sessione non ha alcun server con quel nome, ad esempio perché è stato rimosso, rinominato o escluso da `--mcp-config`, oppure un connettore claude.ai si sta ancora caricando | Ripristina il server con lo stesso nome, poi riprendi di nuovo la sessione. Per un connettore in caricamento, niente: Claude Code segue l'attività non appena compare |

566| Un messaggio che inizia con `server '<name>' was reconfigured to a different transport since this task was created` | Esiste un server con quel nome le cui impostazioni di connessione sono cambiate dall'avvio dell'attività, come URL, command, args, env, headers o timeout | Ripristina le impostazioni precedenti, poi riprendi di nuovo la sessione |566| Un messaggio che inizia con `server '<name>' was reconfigured to a different transport since this task was created` | Esiste un server con quel nome ma con impostazioni di connessione cambiate dall'avvio dell'attività, come URL, comando, argomenti, env, header o timeout | Ripristina le impostazioni precedenti, poi riprendi di nuovo la sessione |

567| `the server rejected this task's id; asking again…` | Il server dichiara di non conoscere l'ID dell'attività. Claude Code continua a chiedere per un massimo di cinque minuti | Attendi: il messaggio scompare se il server riconosce di nuovo l'ID, altrimenti segue la riga `outcome unknown.` |567| `the server rejected this task's id; asking again…` | Il server dice di non conoscere l'ID dell'attività. Claude Code continua a chiedere per un massimo di cinque minuti | Attendi: il messaggio scompare se il server riconosce di nuovo l'ID, altrimenti segue la riga `outcome unknown.` |

568| Una riga della trascrizione che termina con `outcome unknown.`, in una delle forme `expired on the server: outcome unknown.` | Il server ha rifiutato l'ID o ha risposto con un altro errore permanente, e Claude Code ha smesso di seguire l'attività | Una seconda chiamata potrebbe ripetere il lavoro. Prima di chiamare di nuovo lo strumento, scopri dal server cosa è stato fatto, ad esempio chiedendo a Claude di usare gli altri strumenti del server |568| Una riga della trascrizione che termina con `outcome unknown.`, in una forma `expired on the server: outcome unknown.` | Il server ha rifiutato l'ID o ha risposto con un altro errore permanente, e Claude Code ha smesso di seguire l'attività | Una seconda chiamata potrebbe ripetere il lavoro. Prima di chiamare di nuovo lo strumento, scopri dal server cosa è stato fatto, ad esempio chiedendo a Claude di usare gli altri strumenti del server |

569 569 

570#### Limiti di tempo sulle attività MCP570#### Limiti di tempo sulle attività MCP

571 571 

572Per impostazione predefinita, un'attività in background non ha alcun limite di tempo di Claude Code. I [limiti di tempo delle chiamate agli strumenti](#time-limits-on-mcp-tool-calls), inclusi il limite di tempo reale e il timeout di inattività, si applicano finché il server non risponde alla chiamata con l'attività. Se [fai attendere Claude](#make-claude-wait-for-the-result-of-an-mcp-task), si applicano per l'intera attività. I controlli di stato con risposta contano come attività ai fini del timeout di inattività.572Per impostazione predefinita, un'attività in background non ha alcun limite di tempo di Claude Code. I [limiti di tempo delle chiamate agli strumenti](#time-limits-on-mcp-tool-calls), inclusi il limite in tempo reale e il timeout di inattività, si applicano finché il server non risponde alla chiamata con l'attività. Se [fai attendere Claude](#make-claude-wait-for-the-result-of-an-mcp-task), si applicano per l'intera attività. I controlli di stato con risposta contano come attività ai fini del timeout di inattività.

573 573 

574#### Far attendere a Claude il risultato di un'attività MCP574#### Far attendere Claude il risultato di un'attività MCP

575 575 

576Per far attendere a Claude il risultato di un'attività in una sessione interattiva, imposta una di due variabili d'ambiente, ad esempio nel blocco `env` di [`settings.json`](https://code.claude.com/docs/it/settings):576Per far attendere a Claude il risultato di un'attività in una sessione interattiva, imposta una di due variabili d'ambiente, ad esempio nel blocco `env` di [`settings.json`](https://code.claude.com/docs/it/settings):

577 577 

578* **[`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](https://code.claude.com/docs/it/env-vars) impostata su `0`**: Claude attende ogni chiamata a uno strumento MCP finché la chiamata non termina578* **[`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](https://code.claude.com/docs/it/env-vars) impostata su `0`**: Claude attende ogni chiamata a uno strumento MCP fino al suo termine

579* **[`CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND`](https://code.claude.com/docs/it/env-vars) impostata su `1`**: Claude attende il risultato di un'attività. Finché lo [spostamento automatico in background](#automatic-backgrounding-of-long-tool-calls) è attivo, sposta la chiamata dopo due minuti per impostazione predefinita, così le attività brevi terminano sul posto e quelle lunghe non ti bloccano. La chiamata spostata è una normale chiamata in background anziché un'attività MCP. Non sopravvive all'uscita dalla sessione579* **[`CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND`](https://code.claude.com/docs/it/env-vars) impostata su `1`**: Claude attende il risultato di un'attività. Mentre lo [spostamento automatico in background](#automatic-backgrounding-of-long-tool-calls) è attivo, sposta la chiamata dopo due minuti per impostazione predefinita, così le attività brevi terminano sul posto e quelle lunghe non ti bloccano. La chiamata spostata è una normale chiamata in background anziché un'attività MCP. Non sopravvive all'uscita dalla sessione

580 580 

581Mentre Claude attende, premere `Esc` o raggiungere il [limite di tempo reale o il timeout di inattività](#time-limits-on-mcp-tasks) termina la chiamata, e Claude Code chiede al server di annullare l'attività.581Mentre Claude attende, premere `Esc` o raggiungere il [limite in tempo reale o il timeout di inattività](#time-limits-on-mcp-tasks) termina la chiamata, e Claude Code chiede al server di annullare l'attività.

582 582 

583Se imposti `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` su `1` o avvii in [modalità bare](https://code.claude.com/docs/it/headless.md#start-faster-with-bare-mode), ciò da solo non fa attendere a Claude le attività MCP. Questo esempio imposta `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` su `0`, così Claude attende ogni chiamata a uno strumento MCP:583Se imposti `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` su `1` o avvii in [modalità bare](https://code.claude.com/docs/it/headless.md#start-faster-with-bare-mode), questo da solo non fa attendere a Claude le attività MCP. Questo esempio imposta `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` su `0`, quindi Claude attende ogni chiamata a uno strumento MCP:

584 584 

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

586{586{


592 592 

593### Attività MCP per gli autori di server593### Attività MCP per gli autori di server

594 594 

595Se sviluppi un server MCP, puoi rispondere a un `tools/call` di lunga durata con un'attività. L'[estensione MCP tasks](https://modelcontextprotocol.io/extensions/tasks/overview) definisce i messaggi da inviare. Su una connessione con la [revisione del protocollo 2026-07-28](#mcp-client-runtimes), ogni richiesta riporta le capacità client di Claude Code in `params._meta["io.modelcontextprotocol/clientCapabilities"]`, con `"io.modelcontextprotocol/tasks": {}` sotto `extensions`. Una richiesta `tools/call` che [non può diventare un'attività](#requirements-for-mcp-tasks) omette quell'estensione.595Se sviluppi un server MCP, puoi rispondere a una `tools/call` di lunga durata con un'attività. L'[estensione MCP tasks](https://modelcontextprotocol.io/extensions/tasks/overview) definisce i messaggi che invii. Su una connessione con [revisione del protocollo 2026-07-28](#mcp-client-runtimes), ogni richiesta riporta le capacità client di Claude Code in `params._meta["io.modelcontextprotocol/clientCapabilities"]`, con `"io.modelcontextprotocol/tasks": {}` sotto `extensions`. Una richiesta `tools/call` che [non può diventare un'attività](#requirements-for-mcp-tasks) omette quell'estensione.

596 596 

597#### Rispondere alla chiamata con un'attività597#### Rispondere alla chiamata con un'attività

598 598 

599Rispondi con un'attività solo quando la richiesta contiene l'estensione, altrimenti la chiamata fallisce con l'errore dello strumento `Unsupported result type 'task' for tools/call`. La chiamata fallisce allo stesso modo se la tua risposta non ha un `taskId` o uno `status` valido. L'oggetto attività è il `result` JSON-RPC della tua risposta a `tools/call`, non ha bisogno di un array `content` e qui include i campi opzionali `statusMessage` e `pollIntervalMs`:599Rispondi con un'attività solo quando la richiesta riporta l'estensione, altrimenti la chiamata fallisce con l'errore dello strumento `Unsupported result type 'task' for tools/call`. La chiamata fallisce allo stesso modo se la tua risposta non ha un `taskId` o uno `status` valido. L'oggetto attività è il `result` JSON-RPC della tua risposta `tools/call`, non richiede un array `content` e qui include i campi facoltativi `statusMessage` e `pollIntervalMs`:

600 600 

601```json theme={null}601```json theme={null}

602{602{


613 613 

614| Campo | Come lo gestisce Claude Code |614| Campo | Come lo gestisce Claude Code |

615| - | - |615| - | - |

616| `resultType` | Impostalo su `"task"` per contrassegnare la risposta come attività. Senza di esso, Claude Code interpreta la risposta come un risultato normale |616| `resultType` | Impostalo su `"task"` per contrassegnare la risposta come attività. Senza di esso, Claude Code interpreta la risposta come un normale risultato |

617| `taskId` | Obbligatorio. Al massimo 128 caratteri ASCII stampabili senza spazi, altrimenti Claude riceve un errore dello strumento che inizia con `MCP server "<name>" returned a malformed task handle for tool "<tool>"`. Mantieni l'ID interrogabile tra connessioni diverse, perché dopo una ripresa Claude Code lo richiede su una nuova connessione |617| `taskId` | Obbligatorio. Al massimo 128 caratteri ASCII stampabili senza spazi, altrimenti Claude riceve un errore dello strumento che inizia con `MCP server "<name>" returned a malformed task handle for tool "<tool>"`. Mantieni l'ID interrogabile tra connessioni diverse, perché dopo una ripresa Claude Code lo chiede su una nuova connessione |

618| `status` | Obbligatorio. Uno tra `working`, `input_required`, `completed`, `failed` o `cancelled`. Un altro valore produce l'errore `Unsupported result type` |618| `status` | Obbligatorio. Uno tra `working`, `input_required`, `completed`, `failed` o `cancelled`. Un altro valore produce l'errore `Unsupported result type` |

619| `createdAt`, `lastUpdatedAt`, `ttlMs` | Richiesti dall'estensione tasks, e `ttlMs` può essere `null`. Claude Code non scarta un'attività perché il suo `ttlMs` è trascorso |619| `createdAt`, `lastUpdatedAt`, `ttlMs` | Richiesti dall'estensione tasks, e `ttlMs` può essere `null`. Claude Code non scarta un'attività perché il suo `ttlMs` è trascorso |

620| `pollIntervalMs` | Opzionale. Millisecondi tra le richieste `tasks/get`, limitati tra 250 e 30000. Claude Code usa 2000 quando il campo è assente o `null`, e rilegge il valore da ogni risposta a `tasks/get` |620| `pollIntervalMs` | Facoltativo. Millisecondi tra le richieste `tasks/get`, limitati a un valore tra 250 e 30000. Claude Code usa 2000 quando il campo è assente o `null`, e rilegge il valore da ogni risposta `tasks/get` |

621| `statusMessage` | Facoltativo. `/tasks` mostra il valore della tua ultima risposta `tasks/get`, non di questa prima, e una risposta che omette il campo lo cancella. Un [messaggio di stato di Claude Code](#status-messages-on-an-mcp-task) può prenderne il posto |621| `statusMessage` | Facoltativo. `/tasks` mostra il valore della tua ultima risposta `tasks/get`, non di questa prima, e una risposta che omette il campo lo cancella. Un [messaggio di stato di Claude Code](#status-messages-on-an-mcp-task) può prenderne il posto |

622 622 

623Claude Code accetta una risposta con attività che omette `createdAt`, `lastUpdatedAt` o `ttlMs`, oppure che imposta `pollIntervalMs` su `null`. Prima della v2.1.317, la chiamata falliva invece con l'errore `Unsupported result type`. Per funzionare anche con quelle versioni, invia i tre campi richiesti dall'estensione tasks, e invia `pollIntervalMs` come numero oppure non inviarlo affatto.623Claude Code accetta una risposta con attività che omette `createdAt`, `lastUpdatedAt` o `ttlMs`, o che imposta `pollIntervalMs` su `null`. Prima della v2.1.317, la chiamata falliva invece con l'errore `Unsupported result type`. Per funzionare anche con quelle versioni, invia i tre campi richiesti dall'estensione tasks, e invia `pollIntervalMs` come numero oppure non inviarlo affatto.

624 624 

625Su un server HTTP o connettore claude.ai, la risposta con l'attività deve iniziare entro il [timer per richiesta](#time-limits-on-mcp-tool-calls), quindi accetta il lavoro e rispondi per prima cosa, poi esegui il lavoro.625Su un server HTTP o connettore claude.ai, la risposta con l'attività deve iniziare entro il [timer per richiesta](#time-limits-on-mcp-tool-calls), quindi accetta il lavoro e rispondi prima, poi esegui il lavoro.

626 626 

627#### Riportare stato, risultati e domande627#### Riportare stato, risultati e domande

628 628 

629Subito dopo la risposta con l'attività, Claude Code invia `tasks/get` con `{ "taskId": ... }`, poi lo ripete una volta per intervallo di polling. L'estensione tasks richiede che la tua risposta riporti `"resultType": "complete"` insieme a `taskId`, `status`, `createdAt`, `lastUpdatedAt` e `ttlMs`. `ttlMs` può essere `null`, e `statusMessage` e `pollIntervalMs` sono facoltativi. Questo esempio riporta la build come completata:629Subito dopo la risposta con l'attività, Claude Code invia `tasks/get` con `{ "taskId": ... }`, poi lo ripete a ogni intervallo di polling. L'estensione tasks richiede che la tua risposta contenga `"resultType": "complete"` insieme a `taskId`, `status`, `createdAt`, `lastUpdatedAt` e `ttlMs`. `ttlMs` può essere `null`, e `statusMessage` e `pollIntervalMs` sono facoltativi. Questo esempio riporta la build come completata:

630 630 

631```json theme={null}631```json theme={null}

632{632{


645| Stato, metodo o risposta | Come lo gestisce Claude Code |645| Stato, metodo o risposta | Come lo gestisce Claude Code |

646| - | - |646| - | - |

647| `working` | Continua il polling |647| `working` | Continua il polling |

648| `completed` | Fornisce a Claude il normale risultato di `tools/call` nell'oggetto `result` di primo livello. Un `isError: true` al suo interno viene riportato come errore |648| `completed` | Fornisce a Claude il normale risultato di `tools/call` nell'oggetto `result` di primo livello. `isError: true` al suo interno viene riportato come errore |

649| `failed` | Comunica a Claude il `message` dell'oggetto `error` di primo livello `{ code, message, data }`, che l'estensione tasks richiede su un'attività fallita. Senza quel `message`, Claude riceve invece `statusMessage`, oppure `Task failed` |649| `failed` | Comunica a Claude il `message` dell'oggetto `error` di primo livello `{ code, message, data }`, che l'estensione tasks richiede su un'attività fallita. Senza quel `message`, Claude riceve invece `statusMessage`, oppure `Task failed` |

650| `cancelled` | Comunica a Claude `statusMessage`, oppure `Task was cancelled by the server` |650| `cancelled` | Comunica a Claude `statusMessage`, oppure `Task was cancelled by the server` |

651| `input_required` | Legge `inputRequests`, un oggetto che associa una chiave a tua scelta a `{ method, params }`. Claude Code risponde a ogni chiave una volta tramite `tasks/update` con `{ taskId, inputResponses }`, dove `inputResponses` associa la stessa chiave al risultato di quella richiesta. Le chiavi oltre le 16 per attività vengono ignorate |651| `input_required` | Legge `inputRequests`, un oggetto che associa una chiave a tua scelta a `{ method, params }`. Claude Code risponde a ogni chiave una sola volta tramite `tasks/update` con `{ taskId, inputResponses }`, dove `inputResponses` associa la stessa chiave al risultato di quella richiesta. Le chiavi oltre le 16 per attività vengono ignorate |

652| Metodi in `inputRequests` | `elicitation/create` viene servito solo nelle sessioni interattive del terminale, e `roots/list` ovunque. Quando Claude Code non può servire una richiesta, chiede al server di annullare l'attività |652| Metodi in `inputRequests` | `elicitation/create` viene servito solo nelle sessioni di terminale interattive, e `roots/list` ovunque. Quando Claude Code non può servire una richiesta, chiede al server di annullare l'attività |

653| Un altro valore di `status` | Claude Code chiede al server di annullare l'attività e la riporta a Claude come fallita |653| Un altro valore di `status` | Claude Code chiede al server di annullare l'attività e la riporta a Claude come fallita |

654| Errore JSON-RPC `-32602` | Interpretato come ID di attività sconosciuto. Per un'attività in background, Claude Code continua a chiedere per un massimo di cinque minuti, poi riporta a Claude l'esito come sconosciuto |654| Errore JSON-RPC `-32602` | Interpretato come ID dell'attività sconosciuto. Per un'attività in background, Claude Code continua a chiedere per un massimo di cinque minuti, poi riporta a Claude l'esito come sconosciuto |

655| `tasks/cancel` | Inviato, ad esempio, quando Claude o la persona arresta l'attività mentre il server è connesso. Non viene inviato all'uscita |655| `tasks/cancel` | Inviato, ad esempio, quando Claude o la persona arresta l'attività mentre il server è connesso. Non inviato all'uscita |

656| `tasks/result`, `tasks/list`, `notifications/tasks` | Non utilizzati, quindi inserisci l'esito nelle tue risposte `tasks/get` |656| `tasks/result`, `tasks/list`, `notifications/tasks` | Non usati, quindi inserisci l'esito nelle tue risposte `tasks/get` |

657 657 

658### Server MCP forniti dai plugin658### Server MCP forniti dai plugin

659 659 


661 661 

662**Come funzionano i server MCP dei plugin**:662**Come funzionano i server MCP dei plugin**:

663 663 

664* I plugin definiscono i server MCP in `.mcp.json` nella radice del plugin o inline in `plugin.json`664* I plugin definiscono i server MCP in `.mcp.json` nella root del plugin oppure inline in `plugin.json`

665* Quando abiliti un plugin, Claude Code avvia automaticamente i suoi server MCP665* Quando abiliti un plugin, Claude Code avvia automaticamente i suoi server MCP

666* Claude Code offre gli strumenti MCP dei plugin insieme agli strumenti MCP configurati manualmente666* Claude Code offre gli strumenti MCP dei plugin insieme agli strumenti MCP configurati manualmente

667* Aggiungi e rimuovi i server dei plugin installando o disinstallando il plugin, non con i comandi `/mcp`. Puoi comunque [disattivare un server di un plugin installato](#disable-a-server-without-removing-it) in `/mcp`, il che impedisce a Claude Code di connettersi a esso senza rimuovere il plugin667* Aggiungi e rimuovi i server dei plugin installando o disinstallando il plugin, non con i comandi `/mcp`. Puoi comunque [disattivare il server di un plugin installato](#disable-a-server-without-removing-it) in `/mcp`, il che impedisce a Claude Code di connettersi a esso senza rimuovere il plugin

668 668 

669**Esempio di configurazione MCP di un plugin**:669**Esempio di configurazione MCP di un plugin**:

670 670 

671In `.mcp.json` nella radice del plugin:671In `.mcp.json` nella root del plugin:

672 672 

673```json theme={null}673```json theme={null}

674{674{


701**Funzionalità MCP dei plugin**:701**Funzionalità MCP dei plugin**:

702 702 

703* **Ciclo di vita automatico**: i server si connettono e si disconnettono in questi momenti:703* **Ciclo di vita automatico**: i server si connettono e si disconnettono in questi momenti:

704 * All'avvio della sessione, Claude Code connette automaticamente i server dei plugin abilitati. In `/mcp`, un server di plugin remoto (HTTP o SSE) che hai già usato può invece mostrare lo [stato `cached`](#server-status-detail); Claude Code lo connette quando Claude chiama per la prima volta uno dei suoi strumenti. Quando la connessione di un server stdio di un plugin è fallita meno di 15 minuti prima, Claude Code [salta la connessione](https://code.claude.com/docs/it/errors.md#skipping-connection-recent-failure-cached)704 * All'avvio della sessione, Claude Code connette automaticamente i server dei plugin abilitati. In `/mcp`, un server remoto (HTTP o SSE) di un plugin che hai già usato in precedenza può invece mostrare lo [stato `cached`](#server-status-detail); Claude Code lo connette quando Claude chiama per la prima volta uno dei suoi strumenti. Quando la connessione di un server stdio di un plugin è fallita meno di 15 minuti prima, Claude Code [salta la connessione](https://code.claude.com/docs/it/errors.md#skipping-connection-recent-failure-cached)

705 * Se abiliti o disabiliti un plugin durante una sessione, Claude Code connette o disconnette i suoi server MCP quando la modifica viene applicata. [Applicare le modifiche ai plugin senza riavviare](https://code.claude.com/docs/it/plugins/cli-reference.md#reload-plugins) descrive quando ciò avviene. In una sessione senza terminale interattivo, `/reload-plugins` non connette né disconnette i server MCP dei plugin; queste modifiche hanno effetto nella sessione successiva705 * Se abiliti o disabiliti un plugin durante una sessione, Claude Code connette o disconnette i suoi server MCP quando la modifica viene applicata. [Applicare le modifiche ai plugin senza riavviare](https://code.claude.com/docs/it/plugins/cli-reference.md#reload-plugins) descrive quando ciò avviene. In una sessione senza un terminale interattivo, `/reload-plugins` non connette né disconnette i server MCP dei plugin; queste modifiche hanno effetto nella sessione successiva

706 * Quando ricarichi, Claude Code mantiene le connessioni attive dei server dei plugin la cui configurazione non è cambiata, e fa lo stesso quando [sostituisci l'elenco dei server MCP della sessione](https://code.claude.com/docs/it/agent-sdk/typescript.md#mcpsetserversresult) dall'Agent SDK senza indicarli706 * Quando ricarichi, Claude Code mantiene le connessioni attive dei server dei plugin la cui configurazione non è cambiata, e fa lo stesso quando [sostituisci l'elenco dei server MCP della sessione](https://code.claude.com/docs/it/agent-sdk/typescript.md#mcpsetserversresult) dall'Agent SDK senza nominarli

707 * Quando [sposti la sessione con `/cd`](https://code.claude.com/docs/it/permissions#move-the-session-to-another-directory) su v2.1.246 o successiva, Claude Code connette i server dei plugin abilitati dalle impostazioni della nuova directory e disconnette i server dei plugin che non sono più abilitati, quindi non devi eseguire `/reload-plugins` dopo lo spostamento707 * Quando [sposti la sessione con `/cd`](https://code.claude.com/docs/it/permissions#move-the-session-to-another-directory) nella v2.1.246 o successiva, Claude Code connette i server dei plugin abilitati dalle impostazioni della nuova directory e disconnette i server dei plugin che non sono più abilitati, quindi non devi eseguire `/reload-plugins` dopo lo spostamento

708 * Nelle [sessioni cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md), una chiamata MCP a un server di plugin non ancora connesso, ad esempio subito dopo il risveglio di una sessione inattiva, avvia il server su richiesta e attende che si connetta708 * Nelle [sessioni cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md), una chiamata MCP a un server di un plugin non ancora connesso, ad esempio subito dopo il risveglio di una sessione inattiva, avvia il server su richiesta e attende che si connetta

709* **Segnaposto di percorso**: `${CLAUDE_PLUGIN_ROOT}` viene risolto nella directory di installazione del plugin, `${CLAUDE_PLUGIN_DATA}` nella sua directory di [stato persistente](https://code.claude.com/docs/it/plugins/components.md#path-variables-and-persistent-data) e `${CLAUDE_PROJECT_DIR}` nella radice stabile del progetto. La sostituzione si applica a:709* **Segnaposto per i percorsi**: `${CLAUDE_PLUGIN_ROOT}` viene risolto nella directory di installazione del plugin, `${CLAUDE_PLUGIN_DATA}` nella sua directory di [stato persistente](https://code.claude.com/docs/it/plugins/components.md#path-variables-and-persistent-data) e `${CLAUDE_PROJECT_DIR}` nella root stabile del progetto. La sostituzione si applica a:

710 * server `stdio`: `command`, `args`, `env`710 * server `stdio`: `command`, `args`, `env`

711 * server `http`, `sse` e `ws`: `url`, `headers` e `headersHelper`711 * server `http`, `sse` e `ws`: `url`, `headers` e `headersHelper`

712* **Accesso all'ambiente utente**: accesso alle stesse variabili d'ambiente dei server configurati manualmente712* **Accesso all'ambiente dell'utente**: accesso alle stesse variabili d'ambiente dei server configurati manualmente

713* **Più tipi di trasporto**: supporto per i trasporti stdio, SSE, HTTP e WebSocket, anche se il supporto dei trasporti può variare in base al server713* **Più tipi di trasporto**: supporto per i trasporti stdio, SSE, HTTP e WebSocket, anche se il supporto dei trasporti può variare a seconda del server

714 714 

715I server dei plugin compaiono in `/mcp` con indicatori che mostrano che provengono da plugin.715I server dei plugin compaiono in `/mcp` con indicatori che mostrano che provengono da plugin.

716 716 

717`claude mcp get` nasconde i valori configurati per il server stdio o WebSocket di un plugin, perché possono contenere credenziali:717`claude mcp get` nasconde i valori configurati per il server stdio o WebSocket di un plugin, perché possono contenere credenziali:

718 718 

719* **Server stdio**: stampa `Command: stdio`, una riga `Args:` vuota e ogni variabile d'ambiente come `NAME=[REDACTED]`719* **server stdio**: stampa `Command: stdio`, una riga `Args:` vuota e ogni variabile d'ambiente come `NAME=[REDACTED]`

720* **Server WebSocket**: stampa `URL: ws` e ogni header come `<name>: [REDACTED]`, e `claude mcp list` mostra `ws` al posto dell'URL720* **server WebSocket**: stampa `URL: ws` e ogni header come `<name>: [REDACTED]`, e `claude mcp list` mostra `ws` al posto dell'URL

721 721 

722Per vedere cosa ha configurato il plugin, [trova il plugin sul disco](https://code.claude.com/docs/it/plugins/loading.md#find-plugins-on-disk) e leggi il suo `.mcp.json` o `plugin.json`.722Per vedere cosa ha configurato il plugin, [trova il plugin su disco](https://code.claude.com/docs/it/plugins/loading.md#find-plugins-on-disk) e leggi il suo `.mcp.json` o `plugin.json`.

723 723 

724**Nomi degli strumenti MCP dei plugin**:724**Nomi degli strumenti MCP dei plugin**:

725 725 

726Gli strumenti di un server MCP incluso in un plugin contengono sia il nome del plugin sia 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` incluso in un plugin chiamato `my-plugin`, uno strumento `query` è richiamabile come:726Gli strumenti di un server MCP incluso in un plugin contengono nel loro nome richiamabile sia il nome del plugin sia la chiave del server. 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` incluso in un plugin chiamato `my-plugin`, uno strumento `query` è richiamabile come:

727 727 

728```728```

729mcp__plugin_my-plugin_database-tools__query729mcp__plugin_my-plugin_database-tools__query

730```730```

731 731 

732Usa questo nome completo quando fai riferimento allo strumento nelle [regole di permesso](https://code.claude.com/docs/it/permissions.md), nell'elenco `allowed-tools` di una skill, nel [campo `tools` di un subagent](https://code.claude.com/docs/it/sub-agents#available-tools) o in un [matcher di hook](https://code.claude.com/docs/it/hooks.md#match-mcp-tools). Un matcher di hook scritto sulla semplice chiave del server, come `mcp__database-tools__.*`, non si attiva mai per un server incluso in un plugin.732Usa questo nome completo quando fai riferimento allo strumento nelle [regole di permesso](https://code.claude.com/docs/it/permissions.md), nell'elenco `allowed-tools` di una skill, nel [campo `tools` di un subagent](https://code.claude.com/docs/it/sub-agents#available-tools) o in un [matcher di un hook](https://code.claude.com/docs/it/hooks.md#match-mcp-tools). Un matcher di un hook scritto sulla sola chiave del server, come `mcp__database-tools__.*`, non si attiva mai per un server incluso in un plugin.

733 733 

734Il server stesso viene registrato con il nome qualificato `plugin:<plugin-name>:<server-name>`, come `plugin:my-plugin:database-tools`. Usa quel nome dove è previsto il nome di un server configurato, come nel [campo `server` di un hook `mcp_tool`](https://code.claude.com/docs/it/hooks#mcp-tool-hook-fields).734Il server stesso viene registrato con il nome con ambito `plugin:<plugin-name>:<server-name>`, ad esempio `plugin:my-plugin:database-tools`. Usa questo nome dove è previsto il nome di un server configurato, come nel [campo `server` di un hook `mcp_tool`](https://code.claude.com/docs/it/hooks#mcp-tool-hook-fields).

735 735 

736Consulta il [riferimento dei componenti dei plugin](https://code.claude.com/docs/it/plugins/components.md#mcp-servers) per i dettagli sull'inclusione di server MCP nei plugin.736Consulta il [riferimento ai componenti dei plugin](https://code.claude.com/docs/it/plugins/components.md#mcp-servers) per i dettagli su come includere server MCP nei plugin.

737 737 

738## Ambiti di installazione MCP738## Ambiti di installazione MCP

739 739 


1800* **Claude Opus 4.5, Sonnet 4.5, Haiku 4.5 e successivi**: la ricerca di strumenti è attiva per impostazione predefinita, come su Anthropic API.1800* **Claude Opus 4.5, Sonnet 4.5, Haiku 4.5 e successivi**: la ricerca di strumenti è attiva per impostazione predefinita, come su Anthropic API.

1801* **Modelli precedenti di Agent Platform**: Claude Code carica tutti gli strumenti MCP in anticipo, perché i loro stack di servizio rifiutano l'intestazione beta richiesta. `ENABLE_TOOL_SEARCH=true` non sovrascrive questo comportamento.1801* **Modelli precedenti di Agent Platform**: Claude Code carica tutti gli strumenti MCP in anticipo, perché i loro stack di servizio rifiutano l'intestazione beta richiesta. `ENABLE_TOOL_SEARCH=true` non sovrascrive questo comportamento.

1802 1802 

1803Prima della v2.1.221, Claude Code disabilitava la ricerca di strumenti per tutti i modelli su Google Cloud's Agent Platform a meno che non impostassi `ENABLE_TOOL_SEARCH=true`.

1804 

1805Controlla il comportamento della ricerca di strumenti con la variabile d'ambiente `ENABLE_TOOL_SEARCH`:1803Controlla il comportamento della ricerca di strumenti con la variabile d'ambiente `ENABLE_TOOL_SEARCH`:

1806 1804 

1807| Valore | Comportamento |1805| Valore | Comportamento |

memory.md +1 −1

Details

313 313 

314```json theme={null}314```json theme={null}

315{315{

316 "claudeMd": "Esegui sempre `make lint` prima di fare il commit.\nNon fare mai il push direttamente su main."316 "claudeMd": "Always run `make lint` before committing.\nNever push directly to main."

317}317}

318```318```

319 319 

model-config.md +3 −3

Details

71* **Fable 5.2**: esegui `/model fable`, o avvia con `claude --model fable`. Nelle sessioni del [gateway delle app Claude](https://code.claude.com/docs/it/claude-apps-gateway), esegui invece `/model claude-fable-5-2`.71* **Fable 5.2**: esegui `/model fable`, o avvia con `claude --model fable`. Nelle sessioni del [gateway delle app Claude](https://code.claude.com/docs/it/claude-apps-gateway), esegui invece `/model claude-fable-5-2`.

72* **Fable 5.1 o Fable 5**: selezionalo tramite l'ID del modello. Sull'API Anthropic, esegui `/model claude-fable-5-1` o `/model claude-fable-5`, o avvia con `claude --model claude-fable-5-1`. Su altri provider, usa l'ID del modello del tuo provider o [fissalo](#pin-models-for-third-party-deployments) con `ANTHROPIC_DEFAULT_FABLE_MODEL`.72* **Fable 5.1 o Fable 5**: selezionalo tramite l'ID del modello. Sull'API Anthropic, esegui `/model claude-fable-5-1` o `/model claude-fable-5`, o avvia con `claude --model claude-fable-5-1`. Su altri provider, usa l'ID del modello del tuo provider o [fissalo](#pin-models-for-third-party-deployments) con `ANTHROPIC_DEFAULT_FABLE_MODEL`.

73 73 

74Sui piani Pro, Max, Team ed Enterprise, un modello `claude-fable-5-1` salvato nelle tue impostazioni utente passa all'alias `fable`:74Sui piani Pro, Max, Ultra, Team ed Enterprise, un modello `claude-fable-5-1` salvato nelle tue impostazioni utente passa all'alias `fable`:

75 75 

76* **Piano Pro o Max**: il passaggio avviene la prima volta che esegui la v2.1.321 o successiva. Nel terminale, la riga del modello all'avvio può mostrare `(auto-updated)` una volta.76* **Piano Pro, Max o Ultra**: il passaggio avviene la prima volta che esegui la v2.1.321 o successiva. Nel terminale, la riga del modello all'avvio può mostrare `(auto-updated)` una volta.

77* **Piano Team o Enterprise**: il passaggio attende le impostazioni della tua organizzazione, quindi può avvenire a un avvio successivo, oppure non avvenire affatto. Si applica dalla sessione successiva, senza la riga `(auto-updated)`. Per controllare il tuo modello, esegui `/model`.77* **Piano Team o Enterprise**: il passaggio attende le impostazioni della tua organizzazione, quindi può avvenire a un avvio successivo, oppure non avvenire affatto. Si applica dalla sessione successiva, senza la riga `(auto-updated)`. Per controllare il tuo modello, esegui `/model`.

78 78 

79Dopo il passaggio, le sessioni si avviano con il livello di sforzo predefinito di Fable 5.2, a meno che tu non abbia [impostato un livello](#adjust-effort-level) per esso. Gli account Console, i provider di terze parti e le impostazioni di progetto, locali o gestite mantengono `claude-fable-5-1`.79Dopo il passaggio, le sessioni si avviano con il livello di sforzo predefinito di Fable 5.2, a meno che tu non abbia [impostato un livello](#adjust-effort-level) per esso. Gli account Console, i provider di terze parti e le impostazioni di progetto, locali o gestite mantengono `claude-fable-5-1`.


97 97 

98A seconda del tuo piano e del livello della tua postazione, l'utilizzo di Fable può essere addebitato sui [crediti di utilizzo](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) invece di attingere ai limiti inclusi nel tuo piano. In questo caso, il selettore `/model` mostra "Richiede crediti di utilizzo" sulla riga di Fable. Per gestire i crediti di utilizzo, consulta [Aggiungere crediti di utilizzo al tuo abbonamento](https://code.claude.com/docs/it/costs.md#add-usage-credits-to-your-subscription).98A seconda del tuo piano e del livello della tua postazione, l'utilizzo di Fable può essere addebitato sui [crediti di utilizzo](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) invece di attingere ai limiti inclusi nel tuo piano. In questo caso, il selettore `/model` mostra "Richiede crediti di utilizzo" sulla riga di Fable. Per gestire i crediti di utilizzo, consulta [Aggiungere crediti di utilizzo al tuo abbonamento](https://code.claude.com/docs/it/costs.md#add-usage-credits-to-your-subscription).

99 99 

100Nelle sessioni interattive, Claude Code può mostrare una richiesta di consenso all'uso dei crediti di utilizzo per Fable. I membri dei piani Enterprise con fatturazione a livello di organizzazione non vedono la richiesta. Puoi continuare su Fable usando i crediti di utilizzo o passare al tuo modello predefinito. Puoi anche chiudere la richiesta:100Nelle sessioni interattive, Claude Code può mostrare una richiesta di consenso all'uso dei crediti di utilizzo per Fable. Puoi continuare su Fable usando i crediti di utilizzo o passare al tuo modello predefinito. Puoi anche chiudere la richiesta:

101 101 

102* Quando selezioni un modello Fable con `/model`, mantieni il tuo modello attuale.102* Quando selezioni un modello Fable con `/model`, mantieni il tuo modello attuale.

103* A metà sessione, Claude Code continua il turno sul tuo modello predefinito.103* A metà sessione, Claude Code continua il turno sul tuo modello predefinito.

Details

146 146 

147### Controllo della cardinalità delle metriche147### Controllo della cardinalità delle metriche

148 148 

149Le seguenti variabili d'ambiente controllano quali attributi vengono inclusi nelle metriche per gestire la cardinalità:149Le seguenti variabili d'ambiente controllano quali attributi vengono inclusi nelle metriche e negli eventi per gestire la cardinalità:

150 150 

151| Variabile d'ambiente | Descrizione | Valore predefinito | Esempio per disabilitare |151| Variabile d'ambiente | Descrizione | Valore predefinito | Esempio per disabilitare |

152| - | - | - | - |152| - | - | - | - |

153| `OTEL_METRICS_INCLUDE_SESSION_ID` | Include gli attributi session.id e, nelle sessioni cloud, ccr.session.id nelle metriche | `true` | `false` |153| `OTEL_METRICS_INCLUDE_SESSION_ID` | Include gli attributi session.id e, nelle sessioni cloud, ccr.session.id nelle metriche e negli eventi | `true` | `false` |

154| `OTEL_METRICS_INCLUDE_VERSION` | Include l'attributo app.version nelle metriche | `false` | `true` |154| `OTEL_METRICS_INCLUDE_VERSION` | Include l'attributo app.version nelle metriche e negli eventi | `false` | `true` |

155| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Include gli attributi user.account\_uuid e user.account\_id nelle metriche | `true` | `false` |155| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Include gli attributi user.account\_uuid e user.account\_id nelle metriche e negli eventi | `true` | `false` |

156| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Include l'attributo app.entrypoint nelle metriche | `false` | `true` |156| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Include l'attributo app.entrypoint nelle metriche e negli eventi | `false` | `true` |

157| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | Include le chiavi di `OTEL_RESOURCE_ATTRIBUTES` come attributi sui datapoint delle metriche | `true` | `false` |157| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | Include le chiavi di `OTEL_RESOURCE_ATTRIBUTES` come attributi sui datapoint delle metriche e sugli eventi | `true` | `false` |

158| `OTEL_METRICS_INCLUDE_REPOSITORY` | Include gli [attributi di identità del repository](#repository-attributes) `vcs.*` su metriche ed eventi. Richiede Claude Code v2.1.269 o successiva | `false` | `true` |158| `OTEL_METRICS_INCLUDE_REPOSITORY` | Include gli [attributi di identità del repository](#repository-attributes) `vcs.*` su metriche ed eventi. Richiede Claude Code v2.1.269 o successiva | `false` | `true` |

159 159 

160Una cardinalità inferiore generalmente comporta prestazioni migliori e costi di archiviazione inferiori, ma dati meno granulari per l'analisi.160Una cardinalità inferiore generalmente comporta prestazioni migliori e costi di archiviazione inferiori, ma dati meno granulari per l'analisi.


523export OTEL_METRICS_EXPORTER=otlp523export OTEL_METRICS_EXPORTER=otlp

524export OTEL_LOGS_EXPORTER=otlp524export OTEL_LOGS_EXPORTER=otlp

525export OTEL_EXPORTER_OTLP_METRICS_PROTOCOL=http/protobuf525export OTEL_EXPORTER_OTLP_METRICS_PROTOCOL=http/protobuf

526export OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://metrics.example.com:4318526export OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://metrics.example.com:4318/v1/metrics

527export OTEL_EXPORTER_OTLP_LOGS_PROTOCOL=grpc527export OTEL_EXPORTER_OTLP_LOGS_PROTOCOL=grpc

528export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=http://logs.example.com:4317528export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=http://logs.example.com:4317

529```529```


571 571 

572Per attribuire la telemetria in modo più dettagliato, utilizzate queste opzioni:572Per attribuire la telemetria in modo più dettagliato, utilizzate queste opzioni:

573 573 

574* **Identificare le sessioni Claude Tag**: impostate `OTEL_METRICS_INCLUDE_ENTRYPOINT=true`, come descritto in [Controllo della cardinalità delle metriche](#metrics-cardinality-control). Le metriche portano quindi `app.entrypoint`, il cui valore è `claude-in-slack` per le sessioni Claude Tag.574* **Identificare le sessioni Claude Tag**: imposta `OTEL_METRICS_INCLUDE_ENTRYPOINT=true`, come descritto in [Controllo della cardinalità delle metriche](#metrics-cardinality-control). Le metriche e gli eventi portano quindi `app.entrypoint`, il cui valore è `claude-in-slack` per le sessioni Claude Tag.

575* **Aggiungere attributi personalizzati**: impostate [`OTEL_RESOURCE_ATTRIBUTES`](#multi-team-organization-support) nello stesso posto in cui impostate le altre variabili `OTEL_*` per quelle sessioni. Se lo `export` nello [script di configurazione](https://code.claude.com/docs/it/cloud-environments.md#setup-scripts) dell'ambiente, il valore non raggiunge Claude Code: lo script di configurazione è uno script Bash separato che viene eseguito prima dell'avvio di Claude Code e le variabili che esporta terminano con esso.575* **Aggiungere attributi personalizzati**: impostate [`OTEL_RESOURCE_ATTRIBUTES`](#multi-team-organization-support) nello stesso posto in cui impostate le altre variabili `OTEL_*` per quelle sessioni. Se lo `export` nello [script di configurazione](https://code.claude.com/docs/it/cloud-environments.md#setup-scripts) dell'ambiente, il valore non raggiunge Claude Code: lo script di configurazione è uno script Bash separato che viene eseguito prima dell'avvio di Claude Code e le variabili che esporta terminano con esso.

576 576 

577Nelle sessioni del canale Claude Tag, Claude funziona come l'[identità condivisa](https://code.claude.com/docs/it/cloud-environments.md#set-the-environment-a-claude-tag-channel-uses) della vostra organizzazione piuttosto che come qualsiasi membro, quindi non affidatevi agli attributi `user.*` per identificare chi ha taggato Claude.577Nelle sessioni del canale Claude Tag, Claude funziona come l'[identità condivisa](https://code.claude.com/docs/it/cloud-environments.md#set-the-environment-a-claude-tag-channel-uses) della vostra organizzazione piuttosto che come qualsiasi membro, quindi non affidatevi agli attributi `user.*` per identificare chi ha taggato Claude.


587| `session.id` | L'ID di sessione di Claude Code, che `/clear` sostituisce | `OTEL_METRICS_INCLUDE_SESSION_ID` (predefinito: true) |587| `session.id` | L'ID di sessione di Claude Code, che `/clear` sostituisce | `OTEL_METRICS_INCLUDE_SESSION_ID` (predefinito: true) |

588| `ccr.session.id` | Identificatore della sessione cloud, il valore di `CLAUDE_CODE_REMOTE_SESSION_ID`, nelle sessioni eseguite in un [ambiente cloud](https://code.claude.com/docs/it/cloud-environments.md) | `OTEL_METRICS_INCLUDE_SESSION_ID` (predefinito: true) |588| `ccr.session.id` | Identificatore della sessione cloud, il valore di `CLAUDE_CODE_REMOTE_SESSION_ID`, nelle sessioni eseguite in un [ambiente cloud](https://code.claude.com/docs/it/cloud-environments.md) | `OTEL_METRICS_INCLUDE_SESSION_ID` (predefinito: true) |

589| `app.version` | Versione corrente di Claude Code | `OTEL_METRICS_INCLUDE_VERSION` (predefinito: false) |589| `app.version` | Versione corrente di Claude Code | `OTEL_METRICS_INCLUDE_VERSION` (predefinito: false) |

590| `app.entrypoint` | Modo in cui è stata avviata la sessione, ad esempio `cli`, `sdk-cli`, `sdk-ts`, `sdk-py`, `claude-vscode` o `claude-in-slack` per le sessioni Claude Tag | `OTEL_METRICS_INCLUDE_ENTRYPOINT` (predefinito: false) |590| `app.entrypoint` | Come è stata avviata la sessione, ad esempio `cli`, `sdk-cli`, `sdk-ts`, `sdk-py`, `claude-vscode`, `claude-desktop` per le sessioni della scheda Code di Claude Desktop fuori dal cloud, `claude-desktop-3p` per le stesse sessioni su un [deploy di terze parti](https://claude.com/docs/third-party/claude-desktop/overview), oppure `claude-in-slack` per le sessioni di Claude Tag. I valori delle sessioni cloud includono `remote`, più `remote_desktop` e `remote_mobile` per le sessioni che avvii da Claude Desktop o dall'app mobile | `OTEL_METRICS_INCLUDE_ENTRYPOINT` (predefinito: false) |

591| `organization.id` | UUID dell'organizzazione (quando autenticato) | Sempre incluso quando disponibile |591| `organization.id` | UUID dell'organizzazione (quando autenticato) | Sempre incluso quando disponibile |

592| `user.account_uuid` | UUID dell'account (quando autenticato) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (predefinito: true) |592| `user.account_uuid` | UUID dell'account (quando autenticato) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (predefinito: true) |

593| `user.account_id` | ID dell'account nel formato con tag corrispondente alle API di amministrazione di Anthropic (quando autenticato), ad esempio `user_01BWBeN28...` | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (predefinito: true) |593| `user.account_id` | ID dell'account nel formato con tag corrispondente alle API di amministrazione di Anthropic (quando autenticato), ad esempio `user_01BWBeN28...` | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (predefinito: true) |


643 643 

644| Nome della metrica | Descrizione | Unità |644| Nome della metrica | Descrizione | Unità |

645| - | - | - |645| - | - | - |

646| `claude_code.session.count` | Conteggio delle sessioni CLI avviate | nessuna |646| `claude_code.session.count` | Conteggio delle sessioni avviate | nessuna |

647| `claude_code.lines_of_code.count` | Conteggio delle righe di codice modificate | nessuna |647| `claude_code.lines_of_code.count` | Conteggio delle righe di codice modificate | nessuna |

648| `claude_code.pull_request.count` | Numero di pull request create | nessuna |648| `claude_code.pull_request.count` | Numero di pull request create | nessuna |

649| `claude_code.commit.count` | Numero di commit git creati | nessuna |649| `claude_code.commit.count` | Numero di commit git creati | nessuna |


660 660 

661#### Contatore delle sessioni661#### Contatore delle sessioni

662 662 

663Incrementato all'inizio di ogni sessione.663Incrementato all'inizio di ogni sessione. Per contare invece le persone, consulta [Monitoraggio dell'utilizzo](#usage-monitoring).

664 664 

665**Attributi**:665**Attributi**:

666 666 


1458 1458 

1459Come ogni evento OTel in questa pagina, viene inviato solo al backend di telemetria che configuri. Richiede Claude Code v2.1.227 o successiva.1459Come ogni evento OTel in questa pagina, viene inviato solo al backend di telemetria che configuri. Richiede Claude Code v2.1.227 o successiva.

1460 1460 

1461Quando Claude Code non riesce a determinare in modo sicuro il periodo di conservazione, sospende la pulizia ed emette l'evento con `result` impostato su `"skipped"` e un `skip_reason`. Quando le [impostazioni gestite](https://code.claude.com/docs/it/server-managed-settings.md) impostano `cleanupPeriodDays`, il valore gestito fissa il periodo di conservazione e la pulizia viene eseguita anche quando un file di impostazioni in un ambito con priorità inferiore è danneggiato o non valido. Quando non è possibile leggere lo stesso `managed-settings.json`, Claude Code sospende comunque la pulizia a meno che il [livello gestito](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources) non fornisca `cleanupPeriodDays` da un'altra origine, come le impostazioni gestite dal server o un drop-in `managed-settings.d/` accanto al file danneggiato. Gli attributi dei contatori di eliminazione sono presenti solo quando `result` è `"complete"`.1461Leggi `result` per sapere se la pulizia è stata eseguita:

1462 

1463* `"complete"`: la pulizia è stata eseguita e l'evento riporta i relativi conteggi

1464* `"skipped"`: Claude Code non è riuscito a determinare in modo sicuro il periodo di conservazione, quindi ha sospeso la pulizia e l'evento non riporta conteggi. Se `skip_reason` è `"settings_unknowable"` o `"settings_invalid_key_set"`, correggi l'errore nelle impostazioni che `/status` segnala su quella macchina, in modo che una sessione successiva possa eseguire la pulizia

1465 

1466Quando le [impostazioni gestite](https://code.claude.com/docs/it/server-managed-settings.md) impostano `cleanupPeriodDays`, il valore gestito fissa il periodo di conservazione e la pulizia viene eseguita anche quando un file di impostazioni in un ambito a priorità inferiore è danneggiato o non valido.

1462 1467 

1463**Nome evento**: `claude_code.retention_sweep`1468**Nome evento**: `claude_code.retention_sweep`

1464 1469 


1469* `event.timestamp`: timestamp ISO 86011474* `event.timestamp`: timestamp ISO 8601

1470* `event.sequence`: contatore per processo per ordinare gli eventi, descritto in [Attributi di correlazione degli eventi](#event-correlation-attributes)1475* `event.sequence`: contatore per processo per ordinare gli eventi, descritto in [Attributi di correlazione degli eventi](#event-correlation-attributes)

1471* `result`: `"complete"` quando la pulizia è stata eseguita, `"skipped"` quando Claude Code l'ha sospesa1476* `result`: `"complete"` quando la pulizia è stata eseguita, `"skipped"` quando Claude Code l'ha sospesa

1472* `period_days`: il valore di `cleanupPeriodDays` dalle impostazioni unificate, in giorni, oppure `30` quando nessuna origine lo imposta. Negli eventi saltati, il valore che la pulizia avrebbe usato, calcolato dalle origini delle impostazioni che Claude Code è riuscito a leggere1477* `period_days`: il periodo di conservazione con cui è iniziata la pulizia, in giorni: `cleanupPeriodDays` dalle impostazioni combinate, con l'eventuale modifica di un [hook `settings.read`](https://code.claude.com/docs/it/plugins/mods/events#settings-read-hook) applicata. `30` quando in questo modo la chiave resta non impostata. Negli eventi saltati, il valore che la pulizia avrebbe usato, calcolato dalle origini delle impostazioni che Claude Code è riuscito a leggere

1473* `used_default`: `"true"` quando nessuna origine di impostazioni leggibile imposta `cleanupPeriodDays`, `"false"` altrimenti. Negli eventi completati, `"true"` significa che è stato applicato il valore predefinito di 30 giorni1478* `used_default`: `"true"` quando `period_days` è ricaduto sul valore `30`, `"false"` altrimenti. Negli eventi completati, `"true"` indica che è stato applicato il valore predefinito di 30 giorni

1474* `skip_reason`: perché Claude Code ha sospeso la pulizia. Presente solo quando `result` è `"skipped"`:1479* `skip_reason`: perché Claude Code ha sospeso la pulizia. Presente solo quando `result` è `"skipped"`:

1475 * `"user_source_disabled"`: le impostazioni utente sono escluse, ad esempio dal flag [`--setting-sources`](https://code.claude.com/docs/it/cli-reference#cli-flags) o dall'opzione [`settingSources`](https://code.claude.com/docs/it/agent-sdk/typescript#options) dell'SDK, e nessuna origine abilitata fornisce `cleanupPeriodDays`1480 * `"user_source_disabled"`: le impostazioni utente sono escluse, ad esempio dal flag [`--setting-sources`](https://code.claude.com/docs/it/cli-reference#cli-flags) o dall'opzione [`settingSources`](https://code.claude.com/docs/it/agent-sdk/typescript#options) dell'SDK, e nessuna origine abilitata fornisce `cleanupPeriodDays`

1476 * `"settings_unknowable"`: un file di impostazioni non può essere letto o analizzato, quindi `cleanupPeriodDays` o `desktopSessionCleanupPeriodDays` potrebbero essere impostati su un valore che Claude Code non può vedere1481 * `"settings_unknowable"`: un file di impostazioni non può essere letto o analizzato, quindi `cleanupPeriodDays` o `desktopSessionCleanupPeriodDays` potrebbero essere impostati su un valore che Claude Code non può vedere


1549| Metrica | Opportunità di analisi |1554| Metrica | Opportunità di analisi |

1550| - | - |1555| - | - |

1551| `claude_code.token.usage` | Suddividi per [`type`](#token-counter) di token, utente, team, modello, `skill.name`, `plugin.name`, o `agent.name` |1556| `claude_code.token.usage` | Suddividi per [`type`](#token-counter) di token, utente, team, modello, `skill.name`, `plugin.name`, o `agent.name` |

1552| `claude_code.session.count` | Traccia l'adozione e l'engagement nel tempo |

1553| `claude_code.lines_of_code.count` | Misura la produttività tracciando le aggiunte e le rimozioni di codice, suddivise per modello |1557| `claude_code.lines_of_code.count` | Misura la produttività tracciando le aggiunte e le rimozioni di codice, suddivise per modello |

1554| `claude_code.commit.count` & `claude_code.pull_request.count` | Comprendi l'impatto sui flussi di lavoro di sviluppo |1558| `claude_code.commit.count` & `claude_code.pull_request.count` | Comprendi l'impatto sui flussi di lavoro di sviluppo |

1555 1559 

1560Per confrontare gli utenti attivi tra le superfici, imposta `OTEL_METRICS_INCLUDE_ENTRYPOINT=true` per aggiungere [`app.entrypoint`](#standard-attributes) a metriche ed eventi. Poi conta i valori distinti di `user.account_uuid` per entrypoint sugli eventi [`claude_code.user_prompt`](#user-prompt-event), oppure su `claude_code.token.usage` se esporti solo le metriche. Ad esempio, usa `cli` per le sessioni CLI interattive e raggruppa `claude-desktop`, `claude-desktop-3p` e `remote_desktop` per la scheda Code di Claude Desktop.

1561 

1562`user.account_uuid` non identifica le persone nelle sessioni dei canali Claude Tag ed è assente dalle sessioni senza un account Claude: consulta [Attribuire le azioni agli utenti](#attribute-actions-to-users). Quando una persona avvia molte sessioni, o una sessione non riceve alcun prompt, [`claude_code.session.count`](#session-counter) aumenta senza aggiungere un utente attivo.

1563 

1556### Monitoraggio dei costi1564### Monitoraggio dei costi

1557 1565 

1558La metrica `claude_code.cost.usage` aiuta con:1566La metrica `claude_code.cost.usage` aiuta con:


1783## Sicurezza e privacy1791## Sicurezza e privacy

1784 1792 

1785* L'esportazione OpenTelemetry al tuo backend è opt-in e richiede una configurazione esplicita. Per la telemetria operazionale separata di Anthropic e come disabilitarla, vedi [Data usage](https://code.claude.com/docs/it/data-usage.md#telemetry-services)1793* L'esportazione OpenTelemetry al tuo backend è opt-in e richiede una configurazione esplicita. Per la telemetria operazionale separata di Anthropic e come disabilitarla, vedi [Data usage](https://code.claude.com/docs/it/data-usage.md#telemetry-services)

1786* I contenuti dei file grezzi e i frammenti di codice non sono inclusi nelle metriche o negli eventi. I percorsi di traccia degli span sono un percorso dati separato: vedi il punto `OTEL_LOG_TOOL_CONTENT` di seguito1794* Per impostazione predefinita, i contenuti dei file grezzi e i frammenti di codice non sono inclusi nelle metriche o negli eventi. Se imposti una variabile come `OTEL_LOG_TOOL_DETAILS` o `OTEL_LOG_RAW_API_BODIES`, gli eventi possono includerli. Gli span di traccia sono un percorso dati separato: vedi il punto `OTEL_LOG_TOOL_CONTENT` di seguito

1787* Quando autenticato tramite OAuth, `user.email` è incluso negli attributi di telemetria, inviato solo all'endpoint OTel che configuri, mai ad Anthropic. Se questo è una preoccupazione per la tua organizzazione, lavora con il tuo backend di telemetria per filtrare o oscurare questo campo1795* Quando autenticato tramite OAuth, `user.email` è incluso negli attributi di telemetria, inviato solo all'endpoint OTel che configuri, mai ad Anthropic. Se questo è una preoccupazione per la tua organizzazione, lavora con il tuo backend di telemetria per filtrare o oscurare questo campo

1788* Il contenuto del prompt dell'utente non viene raccolto per impostazione predefinita. Viene registrata solo la lunghezza del prompt. Per includere il contenuto del prompt, imposta `OTEL_LOG_USER_PROMPTS=1`. Quando abilitato:1796* Il contenuto del prompt dell'utente non viene raccolto per impostazione predefinita. Viene registrata solo la lunghezza del prompt. Per includere il contenuto del prompt, imposta `OTEL_LOG_USER_PROMPTS=1`. Quando abilitato:

1789 * Gli eventi `user_prompt` portano il testo del prompt in due attributi, `prompt` e [`prompt_text`](#user-prompt-event). Se nel tuo collector elimini o mascheri il testo del prompt dell'evento in base al nome dell'attributo, indica entrambi gli attributi nella regola1797 * Gli eventi `user_prompt` portano il testo del prompt in due attributi, `prompt` e [`prompt_text`](#user-prompt-event). Se nel tuo collector elimini o mascheri il testo del prompt dell'evento in base al nome dell'attributo, indica entrambi gli attributi nella regola

Details

686* **Se accetti**: Claude Code imposta `skipDangerousModePermissionPrompt` su `true` in `~/.claude/settings.json`, in modo che le sessioni successive saltino la finestra di dialogo. Per visualizzare di nuovo la finestra di dialogo, rimuovi la chiave da quel file o impostala su `false`. Il [riferimento `skipDangerousModePermissionPrompt`](https://code.claude.com/docs/it/settings-reference#skipdangerousmodepermissionprompt) elenca gli altri file di impostazioni dove tu o la tua organizzazione potete impostarla.686* **Se accetti**: Claude Code imposta `skipDangerousModePermissionPrompt` su `true` in `~/.claude/settings.json`, in modo che le sessioni successive saltino la finestra di dialogo. Per visualizzare di nuovo la finestra di dialogo, rimuovi la chiave da quel file o impostala su `false`. Il [riferimento `skipDangerousModePermissionPrompt`](https://code.claude.com/docs/it/settings-reference#skipdangerousmodepermissionprompt) elenca gli altri file di impostazioni dove tu o la tua organizzazione potete impostarla.

687* **Se rifiuti**: Claude Code esce.687* **Se rifiuti**: Claude Code esce.

688 688 

689Se passi [`--setting-sources`](https://code.claude.com/docs/it/cli-reference#cli-flags) senza `user`, la finestra di dialogo può apparire di nuovo anche se l'hai accettata in precedenza. Per saltarla, aggiungi `user`, come in `--setting-sources user,project`.

690 

689In [modalità non interattiva](https://code.claude.com/docs/it/headless.md) nessuna finestra di dialogo viene mostrata.691In [modalità non interattiva](https://code.claude.com/docs/it/headless.md) nessuna finestra di dialogo viene mostrata.

690 692 

691Una [sessione in background](https://code.claude.com/docs/it/agent-view.md) rispetta la tua accettazione quando è registrata nelle impostazioni utente o nelle impostazioni gestite:693Una [sessione in background](https://code.claude.com/docs/it/agent-view.md) rispetta la tua accettazione quando è registrata nelle impostazioni utente o nelle impostazioni gestite:

permissions.md +5 −3

Details

578* `mcp__puppeteer__*` usa la sintassi con caratteri jolly e corrisponde anch'essa a tutti gli strumenti del server `puppeteer`578* `mcp__puppeteer__*` usa la sintassi con caratteri jolly e corrisponde anch'essa a tutti gli strumenti del server `puppeteer`

579* `mcp__puppeteer__puppeteer_navigate` corrisponde allo strumento `puppeteer_navigate` fornito dal server `puppeteer`579* `mcp__puppeteer__puppeteer_navigate` corrisponde allo strumento `puppeteer_navigate` fornito dal server `puppeteer`

580 580 

581Scrivi le regole allow per gli strumenti MCP senza uno [specificatore](#use-specifiers-for-fine-grained-control), che un [aggiornamento dei permessi](https://code.claude.com/docs/it/hooks.md#permission-update-entries) chiama `ruleContent`. Se ne aggiungi uno per consentire solo alcune delle chiamate di uno strumento, la regola non corrisponde ad alcuna chiamata. Per bloccare invece alcune chiamate, consulta [Corrispondenza per parametro di input](#match-by-input-parameter).

582 

581Per `<server>`, scrivi il nome del server così come compare nei nomi degli strumenti di quel server. Questi esempi mostrano la regola da scrivere per un nome con caratteri speciali, per un server fornito da un plugin e per un nome che contiene `__` o termina con `_`:583Per `<server>`, scrivi il nome del server così come compare nei nomi degli strumenti di quel server. Questi esempi mostrano la regola da scrivere per un nome con caratteri speciali, per un server fornito da un plugin e per un nome che contiene `__` o termina con `_`:

582 584 

583* **Nomi con caratteri come `.` o spazi**: questi caratteri diventano `_`, quindi per un server che hai configurato come `my.server`, scrivi `mcp__my_server__*`585* **Nomi con caratteri come `.` o spazi**: questi caratteri diventano `_`, quindi per un server che hai configurato come `my.server`, scrivi `mcp__my_server__*`


632 634 

633Le decisioni dell'hook PreToolUse non bypassano le regole di autorizzazione. Claude Code valuta le regole deny e ask indipendentemente da ciò che un hook PreToolUse restituisce: una regola deny corrispondente blocca la chiamata e una regola ask corrispondente richiede comunque un prompt anche quando l'hook ha restituito `"allow"` o `"ask"`. Questo preserva la precedenza deny-first descritta in [Gestire le autorizzazioni](#manage-permissions), incluse le regole deny impostate nelle impostazioni gestite.635Le decisioni dell'hook PreToolUse non bypassano le regole di autorizzazione. Claude Code valuta le regole deny e ask indipendentemente da ciò che un hook PreToolUse restituisce: una regola deny corrispondente blocca la chiamata e una regola ask corrispondente richiede comunque un prompt anche quando l'hook ha restituito `"allow"` o `"ask"`. Questo preserva la precedenza deny-first descritta in [Gestire le autorizzazioni](#manage-permissions), incluse le regole deny impostate nelle impostazioni gestite.

634 636 

635Questa precedenza copre gli hook nei file di impostazioni e nel file `hooks/hooks.json` di un plugin. Un [mod](https://code.claude.com/docs/it/plugins/mods/overview.md) che installi e che gestisce l'evento [`tool.check`](https://code.claude.com/docs/it/plugins/mods/events#approve-or-refuse-a-tool-call-before-the-user-is-asked) dà la sua risposta dopo che sono stati eseguiti gli hook `PreToolUse`. Con [impostazioni gestite](https://code.claude.com/docs/it/settings.md#check-what-your-organization-enforces) sulla macchina, o con un [`/login`](https://code.claude.com/docs/it/authentication#authentication-precedence) Team o Enterprise come credenziale della sessione, questi esiti restano in vigore per impostazione predefinita quando il mod approva una chiamata:637Questa precedenza copre gli hook nei file di impostazioni e nel file `hooks/hooks.json` di un plugin. Un [mod](https://code.claude.com/docs/it/plugins/mods/overview.md) che installi e che gestisce l'evento [`tool.check`](https://code.claude.com/docs/it/plugins/mods/events#approve-or-refuse-a-tool-call-before-the-user-is-asked) dà la sua risposta dopo che sono stati eseguiti gli hook `PreToolUse`. Con [impostazioni gestite](https://code.claude.com/docs/it/settings.md#check-what-your-organization-enforces) o un [file `managed-mcp.json`](https://code.claude.com/docs/it/managed-mcp#deploy-managed-mcp-json), o con un [`/login`](https://code.claude.com/docs/it/authentication#authentication-precedence) Team o Enterprise come credenziale della sessione, questi esiti restano in vigore per impostazione predefinita quando il mod approva una chiamata:

636 638 

637* Una chiamata che una regola deny rifiuta resta rifiutata, e la tua organizzazione può modificare questo comportamento.639* Una chiamata che una regola deny rifiuta resta rifiutata.

638* Una chiamata per cui una regola ask chiederebbe conferma ti chiede comunque conferma.640* Una chiamata per cui una regola ask chiederebbe conferma ti chiede comunque conferma.

639* Una chiamata per cui un hook `PreToolUse` o [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/it/settings-reference#permissions-blockreadsoutsideworkingdirectories) chiederebbe conferma ti chiede comunque conferma.641* Una chiamata per cui un hook `PreToolUse` o [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/it/settings-reference#permissions-blockreadsoutsideworkingdirectories) chiederebbe conferma ti chiede comunque conferma.

640* Una chiamata che un hook `PreToolUse` ha bloccato resta bloccata, indipendentemente dal file di impostazioni da cui proviene l'hook.642* Una chiamata che un hook `PreToolUse` ha bloccato resta bloccata, indipendentemente dal file di impostazioni da cui proviene l'hook.

641* Una chiamata su cui verrebbe interpellato il tuo [`--permission-prompt-tool`](https://code.claude.com/docs/it/cli-reference#cli-flags) o la [callback `canUseTool`](https://code.claude.com/docs/it/agent-sdk/user-input#handle-tool-approval-requests) dell'Agent SDK viene comunque sottoposta a quello strumento o a quella callback.643* Una chiamata su cui verrebbe interpellato il tuo [`--permission-prompt-tool`](https://code.claude.com/docs/it/cli-reference#cli-flags) o la [callback `canUseTool`](https://code.claude.com/docs/it/agent-sdk/user-input#handle-tool-approval-requests) dell'Agent SDK viene comunque sottoposta a quello strumento o a quella callback.

642 644 

643Senza impostazioni gestite né un `/login` Team o Enterprise come credenziale della sessione, il mod può approvare una chiamata che una regola deny rifiuta o che un hook `PreToolUse` ha bloccato. Una sessione che viene eseguita invece con una chiave API o con un [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/it/authentication#generate-a-long-lived-token) di lunga durata non utilizza quel login, anche quando quel login è memorizzato.645La tua configurazione potrebbe non avere impostazioni gestite, un file `managed-mcp.json` né un `/login` Team o Enterprise come credenziale della sessione. In questa configurazione, il mod può approvare una chiamata che una regola deny rifiuta o che un hook `PreToolUse` ha bloccato. Una sessione che viene eseguita invece con una chiave API o con un [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/it/authentication#generate-a-long-lived-token) di lunga durata non utilizza quel login, anche quando quel login è memorizzato.

644 646 

645In questa configurazione non ti viene chiesta conferma quando il mod approva una chiamata per cui una regola ask, un hook `PreToolUse` o `permissions.blockReadsOutsideWorkingDirectories` chiederebbe conferma. Anche il tuo `--permission-prompt-tool` o la tua callback `canUseTool` non viene interpellato su una chiamata che il mod approva. La modalità auto, il plan mode e la modalità `dontAsk` aggiungono ciascuno un proprio esito in ogni configurazione:647In questa configurazione non ti viene chiesta conferma quando il mod approva una chiamata per cui una regola ask, un hook `PreToolUse` o `permissions.blockReadsOutsideWorkingDirectories` chiederebbe conferma. Anche il tuo `--permission-prompt-tool` o la tua callback `canUseTool` non viene interpellato su una chiamata che il mod approva. La modalità auto, il plan mode e la modalità `dontAsk` aggiungono ciascuno un proprio esito in ogni configurazione:

646 648 

Details

94* **stdin o stdout non è un TTY, e non passi né `-y` né `--accept-command`**: l'installazione viene rifiutata. L'output dice che il comando è stato solo visualizzato, e il codice di uscita è `1`94* **stdin o stdout non è un TTY, e non passi né `-y` né `--accept-command`**: l'installazione viene rifiutata. L'output dice che il comando è stato solo visualizzato, e il codice di uscita è `1`

95* **Claude esegue il comando attraverso il suo strumento Bash**: `-y` viene ignorato. Esegui il comando dal tuo terminale invece95* **Claude esegue il comando attraverso il suo strumento Bash**: `-y` viene ignorato. Esegui il comando dal tuo terminale invece

96 96 

97Installa un plugin per tutti coloro che clonano il progetto:97Per condividere un plugin con tutti coloro che clonano il progetto, esegui `claude plugin install` con `--scope project` ed esegui il commit di `.claude/settings.json`. Poi fai in modo che ogni persona [aggiunga il marketplace](https://code.claude.com/docs/it/plugins/install.md#add-a-marketplace) ed [esegua lo stesso comando](https://code.claude.com/docs/it/plugins/loading.md#enabled-in-project-settings-but-not-installed) nel proprio clone:

98 98 

99```bash theme={null}99```bash theme={null}

100claude plugin install formatter@my-marketplace --scope project100claude plugin install formatter@my-marketplace --scope project


333| `notes` | array of strings | Avvertimenti che non sono errori di caricamento, come problemi di authoring o [pacchetti che non sono installati](https://code.claude.com/docs/it/plugins/loading.md#when-the-dependency-install-fails-or-is-skipped) |333| `notes` | array of strings | Avvertimenti che non sono errori di caricamento, come problemi di authoring o [pacchetti che non sono installati](https://code.claude.com/docs/it/plugins/loading.md#when-the-dependency-install-fails-or-is-skipped) |

334| `errorDetails` | array of objects | Un oggetto per voce `errors`, fornendo il suo `type` diagnostico e i nomi a cui si riferisce, come il plugin, marketplace, server o file. Richiede Claude Code v2.1.268 o successivo |334| `errorDetails` | array of objects | Un oggetto per voce `errors`, fornendo il suo `type` diagnostico e i nomi a cui si riferisce, come il plugin, marketplace, server o file. Richiede Claude Code v2.1.268 o successivo |

335| `noteDetails` | array of objects | Gli stessi oggetti di dettaglio per ogni voce `notes`. Richiede Claude Code v2.1.268 o successivo |335| `noteDetails` | array of objects | Gli stessi oggetti di dettaglio per ogni voce `notes`. Richiede Claude Code v2.1.268 o successivo |

336| `hasUserConfig` | boolean | Presente e `true` quando il plugin si è caricato e il suo manifest dichiara opzioni [`userConfig`](https://code.claude.com/docs/it/plugins/manifest-reference#user-configuration). Assente per un plugin che non è riuscito a caricarsi, qualunque cosa il suo manifest dichiari. I valori salvati non sono mai inclusi. Richiede Claude Code v2.1.285 o successivo |336| `hasUserConfig` | boolean | Presente e `true` quando il plugin si è caricato e il suo manifest dichiara opzioni [`userConfig`](https://code.claude.com/docs/it/plugins/manifest-reference#user-configuration). Assente per un plugin che non è riuscito a caricarsi, qualunque cosa il suo manifest dichiari. Richiede Claude Code v2.1.285 o successivo |

337| `projectEnabled` | boolean | Se il `.claude/settings.json` condiviso del progetto attiva il plugin. Solo installazioni marketplace. Richiede Claude Code v2.1.285 o successivo |337| `projectEnabled` | boolean | Se il `.claude/settings.json` condiviso del progetto attiva il plugin. Solo installazioni marketplace. Richiede Claude Code v2.1.285 o successivo |

338| `dataDirSize` | object | Con `--data-size`, la dimensione della [directory di dati salvati](#what-an-uninstall-deletes-and-keeps) del plugin come `bytes` e `human`; assente quando la directory è mancante o vuota. Solo installazioni marketplace. Richiede Claude Code v2.1.285 o successivo |338| `dataDirSize` | object | Con `--data-size`, la dimensione della [directory di dati salvati](#what-an-uninstall-deletes-and-keeps) del plugin come `bytes` e `human`; assente quando la directory è mancante o vuota. Solo installazioni marketplace. Richiede Claude Code v2.1.285 o successivo |

339| `dataDirUnreadable` | boolean | Con `--data-size`, `true` quando la directory di dati salvati esiste ma non ha potuto essere misurata. Solo installazioni marketplace. Richiede Claude Code v2.1.285 o successivo |339| `dataDirUnreadable` | boolean | Con `--data-size`, `true` quando la directory di dati salvati esiste ma non ha potuto essere misurata. Solo installazioni marketplace. Richiede Claude Code v2.1.285 o successivo |

Details

169 169 

170### Caricare un plugin per una sessione170### Caricare un plugin per una sessione

171 171 

172Puoi caricare un plugin per una singola sessione in tre modi: da una directory o un archivio `.zip` sul disco con `--plugin-dir`, da un URL con `--plugin-url`, o da una variabile di ambiente quando non puoi aggiungere un flag. Ogni plugin carica solo per quella sessione, e niente viene scritto nelle tue impostazioni per esso. Quando modifichi i file del plugin durante la sessione, esegui `/reload-plugins` per caricare le modifiche.172Puoi caricare un plugin per una singola sessione in tre modi:

173 

174* Da una directory o un archivio `.zip` sul disco con `--plugin-dir`

175* Da un URL con `--plugin-url`

176* Da una variabile d'ambiente quando non puoi aggiungere un flag

177 

178Quando modifichi i file del plugin durante la sessione, esegui `/reload-plugins` per caricare le modifiche.

173 179 

174#### Caricare un plugin da una directory o `.zip`180#### Caricare un plugin da una directory o `.zip`

175 181 

Details

123 123 

124Queste entry sources non hanno bisogno di un account git:124Queste entry sources non hanno bisogno di un account git:

125 125 

126* **`archive`**: uno zip scaricato su HTTPS. Gli utenti non hanno bisogno né di `git` né di un account, solo accesso di rete all'URL. Richiede Claude Code v2.1.224 o successivo. Fissa ogni archive con `sha256` in modo che Claude Code rifiuti un download modificato. Per inviare credenziali con il download, vedi [Authenticate archive downloads](#authenticate-archive-downloads).126* **`archive`**: uno zip scaricato su HTTPS. Gli utenti non hanno bisogno né di `git` né di un account, solo accesso di rete all'URL. Fissa ogni archive con `sha256` in modo che Claude Code rifiuti un download modificato. Per inviare credenziali con il download, vedi [Authenticate archive downloads](#authenticate-archive-downloads).

127* **Un repository git pubblico**: Claude Code clona una source `url` o `git-subdir` pubblica su HTTPS senza credenziali quando la voce fornisce un URL `https://`. Per una source `github`, o una source `git-subdir` scritta come `owner/repo`, indica agli utenti senza una chiave SSH GitHub di impostare `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`.127* **Un repository git pubblico**: Claude Code clona una source `url` o `git-subdir` pubblica su HTTPS senza credenziali quando la voce fornisce un URL `https://`. Per una source `github`, o una source `git-subdir` scritta come `owner/repo`, indica agli utenti senza una chiave SSH GitHub di impostare `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`.

128 128 

129Mantieni `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1` nelle tue istruzioni anche se `claude plugin install` riesce senza di essa dalla shell su una macchina senza chiave SSH. Per una source `github`, quel comando può ripiegare su HTTPS da solo, stampando `SSH not configured, cloning via HTTPS`. Le installazioni da `/plugin` all'interno di una sessione e gli aggiornamenti dei plugin non ripiegano, quindi senza la variabile falliscono per gli utenti che non hanno una chiave SSH GitHub.129Mantieni `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1` nelle tue istruzioni anche se `claude plugin install` riesce senza di essa dalla shell su una macchina senza chiave SSH. Per una source `github`, quel comando può ripiegare su HTTPS da solo, stampando `SSH not configured, cloning via HTTPS`. Le installazioni da `/plugin` all'interno di una sessione e gli aggiornamenti dei plugin non ripiegano, quindi senza la variabile falliscono per gli utenti che non hanno una chiave SSH GitHub.

Details

132L'ambito di installazione di un plugin decide chi ottiene il plugin e quale file di impostazioni lo registra come abilitato:132L'ambito di installazione di un plugin decide chi ottiene il plugin e quale file di impostazioni lo registra come abilitato:

133 133 

134* **User scope**: il plugin è abilitato per te in ogni progetto su questa macchina. La voce va in `enabledPlugins` in `~/.claude/settings.json`.134* **User scope**: il plugin è abilitato per te in ogni progetto su questa macchina. La voce va in `enabledPlugins` in `~/.claude/settings.json`.

135* **Project scope**: il plugin è abilitato per tutti coloro che lavorano in questo repository. La voce va in `.claude/settings.json`, che esegui il commit. Eseguire il commit di quella voce attiva il plugin per i tuoi collaboratori ma non lo scarica sulle loro macchine, quindi ogni collaboratore esegue anche `claude plugin install <name>@<marketplace> --scope project` una volta; vedi [Enabled in project settings but not installed](https://code.claude.com/docs/it/plugins/loading.md#enabled-in-project-settings-but-not-installed).135* **Project scope**: il plugin è abilitato per tutti coloro che lavorano in questo repository. La voce va in `.claude/settings.json`, di cui esegui il commit. Eseguire il commit di quella voce attiva il plugin per i tuoi collaboratori ma non lo scarica sulle loro macchine. Ogni collaboratore esegue anche `claude plugin install <name>@<marketplace> --scope project` una volta per ogni clone; vedi [Enabled in project settings but not installed](https://code.claude.com/docs/it/plugins/loading.md#enabled-in-project-settings-but-not-installed).

136* **Local scope**: il plugin è abilitato per te solo in questo repository. La voce va in `.claude/settings.local.json`.136* **Local scope**: il plugin è abilitato per te solo in questo repository. La voce va in `.claude/settings.local.json`.

137 137 

138Alcuni plugin sono impostati dal loro autore per iniziare disattivati, attraverso il campo [`defaultEnabled`](https://code.claude.com/docs/it/plugins/manifest-reference#defaultenabled). Tale plugin è installato ma rimane disattivato finché non lo attivi con `claude plugin enable <name>` nel tuo shell, o dalla scheda **Installed** di `/plugin` in una sessione.138Alcuni plugin sono impostati dal loro autore per iniziare disattivati, attraverso il campo [`defaultEnabled`](https://code.claude.com/docs/it/plugins/manifest-reference#defaultenabled). Tale plugin è installato ma rimane disattivato finché non lo attivi con `claude plugin enable <name>` nel tuo shell, o dalla scheda **Installed** di `/plugin` in una sessione.

Details

173 173 

174Per rinunciare a un plugin abilitato dal progetto sulla tua macchina, imposta l'id su `false` in `.claude/settings.local.json`, che ha precedenza più alta del file del progetto.174Per rinunciare a un plugin abilitato dal progetto sulla tua macchina, imposta l'id su `false` in `.claude/settings.local.json`, che ha precedenza più alta del file del progetto.

175 175 

176### Abilitato in una directory `--add-dir` ma non caricato

177 

178Claude Code legge una voce `enabledPlugins` con valore `true` in uno dei file della directory aggiunta solo quando le fonti di impostazioni di quel file sono attive:

179 

180* **`.claude/settings.json`**: `project`

181* **`.claude/settings.local.json`**: `project` e `local`

182 

183Controlla quali fonti di impostazioni carica la sessione. Le imposti con [`--setting-sources`](https://code.claude.com/docs/it/cli-reference#cli-flags). Nella CLI, `user`, `project` e `local` sono tutte attive per impostazione predefinita.

184 

185Ad esempio, se esegui `claude --setting-sources user --add-dir ./shared` nella tua shell, Claude Code non legge nessuno dei due file in `./shared`. Passa il flag per il file che contiene il `true`:

186 

187* **`settings.json`**: `--setting-sources user,project`

188* **`settings.local.json`**: `--setting-sources user,project,local`

189 

176### Abilitato nelle impostazioni del progetto ma non installato190### Abilitato nelle impostazioni del progetto ma non installato

177 191 

178Quando l'unico `true` di un plugin è nel `.claude/settings.json` del progetto, Claude Code non lo recupera su una macchina dove non è installato, a meno che la sua voce marketplace non abbia una [fonte con percorso relativo](https://code.claude.com/docs/it/plugins/marketplace-reference.md#plugin-sources) o una [directory seed](https://code.claude.com/docs/it/plugins/org.md#seed-containers-and-ci) non lo contenga già. Invece, la scheda **Errors** di `/plugin` mostra `Plugin "<name>" is enabled in project settings but isn't installed here`.192Per impostazione predefinita, un plugin abilitato solo nel `.claude/settings.json` del tuo progetto non si carica all'avvio della sessione finché non lo installi sulla tua macchina. Con il marketplace presente sulla tua macchina, la scheda **Errors** di `/plugin` mostra [`Plugin "<name>" is enabled in project settings but isn't installed here`](https://code.claude.com/docs/it/plugins/troubleshooting#plugin-is-enabled-in-project-settings-but-isnt-installed-here) o [`Plugin "<name>" not cached at <path>`](https://code.claude.com/docs/it/plugins/troubleshooting#plugin-not-cached-at).

193 

194> [!NOTE]

195>

196> Se la scheda non mostra nessuno dei due messaggi, [aggiungi il marketplace](https://code.claude.com/docs/it/plugins/install.md#add-a-marketplace) prima di installare. Trova la sua fonte nell'impostazione `extraKnownMarketplaces` di `.claude/settings.json`, oppure chiedi al tuo maintainer.

197 

198Per installare, esegui questo comando in una shell dal progetto, usando la chiave del plugin in `enabledPlugins`:

199 

200```shell theme={null}

201claude plugin install <name>@<marketplace> --scope project

202```

203 

204Per caricare il plugin, esegui `/reload-plugins` nella tua sessione oppure avvia una nuova sessione. Ripeti l'installazione in ciascuno dei tuoi cloni, oppure usa `--scope user` per coprire tutti i tuoi progetti.

205 

206Puoi caricare un plugin senza installarlo in questi casi:

179 207 

180Un plugin con percorso relativo non ha bisogno di un record di installazione perché si carica dal marketplace stesso.208* **In una [directory seed](https://code.claude.com/docs/it/plugins/org.md#seed-containers-and-ci)**: non devi eseguire nulla

209* **Elencato tramite un [percorso relativo](https://code.claude.com/docs/it/plugins/marketplace-reference.md#plugin-sources) in un marketplace che hai aggiunto da un percorso locale**: non devi eseguire nulla, perché il plugin si carica all'avvio della sessione

210* **Elencato tramite un percorso relativo, come `./plugins/formatter`, nel `marketplace.json` di un marketplace git che hai aggiunto**: esegui `/reload-plugins` per caricarlo solo per la sessione corrente. Per caricarlo per una singola [esecuzione non interattiva con `-p`](https://code.claude.com/docs/it/headless), imposta [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL=1`](https://code.claude.com/docs/it/env-vars).

181 211 

182Claude Code recupera un plugin con una fonte esterna solo quando una di queste fonti lo imposta su `true`:212Claude Code recupera un plugin con una fonte esterna solo quando una di queste fonti lo imposta su `true`:

183 213 

Details

189 189 

190### `metadata`190### `metadata`

191 191 

192Un oggetto in forma libera per i vostri dati, come campi di catalogo o di diritto. Claude Code non lo legge. Richiede Claude Code v2.1.222 o successivo.192Un oggetto in forma libera per i tuoi dati, come campi di catalogo o di diritto. Claude Code non lo legge.

193 193 

194### Campi per la scheda nella directory194### Campi per la scheda nella directory

195 195 


394 394 

395Ogni percorso di componente in un manifest è relativo alla radice del plugin e deve iniziare con `./`. Un percorso come `commands/foo.md` non supera la convalida. `skills` e `mcpServers` accettano ciascuno una forma al di fuori di questa regola:395Ogni percorso di componente in un manifest è relativo alla radice del plugin e deve iniziare con `./`. Un percorso come `commands/foo.md` non supera la convalida. `skills` e `mcpServers` accettano ciascuno una forma al di fuori di questa regola:

396 396 

397* **`skills`**: accetta anche `"."`. Sia `"."` che `"./"` indicano la radice del plugin. Prima della v2.1.221, `"."` non superava la convalida del manifest, quindi utilizzare `"./"` quando il plugin deve caricarsi su versioni precedenti397* **`skills`**: accetta anche `"."`. Sia `"."` che `"./"` indicano la radice del plugin

398* **`mcpServers`**: accetta anche un URL di bundle `https://`398* **`mcpServers`**: accetta anche un URL di bundle `https://`

399 399 

400`experimental.evals` non è un percorso di componente, quindi le regole di questa sezione non lo riguardano, e `claude plugin eval` controlla invece il valore quando viene eseguito. Indica una directory sotto la radice del plugin, come `"quality/evals"`, con o senza il prefisso `./`. Con un array, viene usata solo la prima voce. Per sapere quali valori sono accettati e cosa succede con un valore inutilizzabile, consulta [Usare una directory di eval diversa](https://code.claude.com/docs/it/plugin-evals.md#use-a-different-eval-directory).400`experimental.evals` non è un percorso di componente, quindi le regole di questa sezione non lo riguardano, e `claude plugin eval` controlla invece il valore quando viene eseguito. Indica una directory sotto la radice del plugin, come `"quality/evals"`, con o senza il prefisso `./`. Con un array, viene usata solo la prima voce. Per sapere quali valori sono accettati e cosa succede con un valore inutilizzabile, consulta [Usare una directory di eval diversa](https://code.claude.com/docs/it/plugin-evals.md#use-a-different-eval-directory).


403 403 

404Ogni percorso di componente deve risolversi all'interno della radice del plugin e deve esistere. `claude plugin validate` controlla i percorsi sotto ogni chiave di componente:404Ogni percorso di componente deve risolversi all'interno della radice del plugin e deve esistere. `claude plugin validate` controlla i percorsi sotto ogni chiave di componente:

405 405 

406* **Contenimento**: un percorso che si risolve al di fuori della radice del plugin non si carica e la scheda **Errors** di `/plugin` mostra `<component> path escapes plugin directory: <path>`. Un percorso contenente `..` è il caso più comune e `claude plugin validate` segnala l'errore `Path contains ".." which could be a path traversal attempt`406* **Contenimento**: un percorso che si risolve al di fuori della radice del plugin non si carica e la scheda **Errors** di `/plugin` mostra `<component> path escapes plugin directory: <path>`. Un percorso contenente `..` è il caso più comune e `claude plugin validate` segnala l'errore `Path contains ".." which could be a path traversal attempt`. Per un file `mcpServers` o `lspServers`, un messaggio [`path not read`](https://code.claude.com/docs/it/errors#server-file-path-not-read) indica che il percorso è assoluto o contiene `..`

407* **Esistenza**: un percorso che non esiste non si carica e la scheda **Errors** di `/plugin` mostra `<component> path not found: <path>`. `claude plugin validate` segnala l'errore `Path not found`407* **Esistenza**: un percorso che non esiste non si carica e la scheda **Errors** di `/plugin` mostra `<component> path not found: <path>`. `claude plugin validate` segnala l'errore `Path not found`

408 408 

409Per i percorsi `outputStyles`, `lspServers`, `monitors` e `themes`, il controllo `claude plugin validate` richiede Claude Code v2.1.283 o successivo.409Per i percorsi `outputStyles`, `lspServers`, `monitors` e `themes`, il controllo `claude plugin validate` richiede Claude Code v2.1.283 o successivo.

Details

94| `dependencies` | array | Plugin che devono essere abilitati affinché questo funzioni. Ogni elemento è `"name"`, `"name@marketplace"` o un oggetto. Vedi [Dipendenze dei plugin](https://code.claude.com/docs/it/plugins/dependencies.md) |94| `dependencies` | array | Plugin che devono essere abilitati affinché questo funzioni. Ogni elemento è `"name"`, `"name@marketplace"` o un oggetto. Vedi [Dipendenze dei plugin](https://code.claude.com/docs/it/plugins/dependencies.md) |

95| `defaultEnabled` | booleano | Predefinito `true`. Se il plugin inizia abilitato quando l'utente non lo ha impostato in [`enabledPlugins`](https://code.claude.com/docs/it/settings-reference#enabledplugins). Il valore della voce ha la precedenza su `plugin.json` |95| `defaultEnabled` | booleano | Predefinito `true`. Se il plugin inizia abilitato quando l'utente non lo ha impostato in [`enabledPlugins`](https://code.claude.com/docs/it/settings-reference#enabledplugins). Il valore della voce ha la precedenza su `plugin.json` |

96| `displayName` | stringa | Nome leggibile mostrato nell'interfaccia utente. Quando né la voce né il `plugin.json` del plugin ne impostano uno, gli utenti vedono il `name` del plugin |96| `displayName` | stringa | Nome leggibile mostrato nell'interfaccia utente. Quando né la voce né il `plugin.json` del plugin ne impostano uno, gli utenti vedono il `name` del plugin |

97| `metadata` | oggetto | Oggetto libero per i tuoi campi. Claude Code non lo legge. Richiede Claude Code v2.1.222 o successivo |97| `metadata` | oggetto | Oggetto libero per i tuoi campi. Claude Code non lo legge |

98| `headers` | oggetto | Intestazioni HTTP che Claude Code invia quando scarica l'[archivio](#archive-plugin-source) di questa voce. Un'intestazione impostata qui sostituisce un'intestazione con lo stesso nome negli [`headers`](#fields-by-type) della sorgente del marketplace. Richiede Claude Code v2.1.238 o successivo |98| `headers` | oggetto | Intestazioni HTTP che Claude Code invia quando scarica l'[archivio](#archive-plugin-source) di questa voce. Un'intestazione impostata qui sostituisce un'intestazione con lo stesso nome negli [`headers`](#fields-by-type) della sorgente del marketplace. Richiede Claude Code v2.1.238 o successivo |

99| `headersHelper` | stringa | Comando che stampa le intestazioni di download dell'archivio di questa voce come un oggetto JSON, per una credenziale che scade. La voce deve anche impostare [`"strict": false`](#strict-mode). Richiede Claude Code v2.1.238 o successivo. Vedi [Autenticare i download degli archivi](https://code.claude.com/docs/it/plugins/host-marketplace.md#authenticate-archive-downloads) |99| `headersHelper` | stringa | Comando che stampa le intestazioni di download dell'archivio di questa voce come un oggetto JSON, per una credenziale che scade. La voce deve anche impostare [`"strict": false`](#strict-mode). Richiede Claude Code v2.1.238 o successivo. Vedi [Autenticare i download degli archivi](https://code.claude.com/docs/it/plugins/host-marketplace.md#authenticate-archive-downloads) |

100 100 


142| `url` | `url`, `ref`, `sha` | Qualsiasi repository git per URL |142| `url` | `url`, `ref`, `sha` | Qualsiasi repository git per URL |

143| `git-subdir` | `url`, `path`, `ref`, `sha` | Una sottodirectory di un repository git, recuperata con uno sparse checkout |143| `git-subdir` | `url`, `path`, `ref`, `sha` | Una sottodirectory di un repository git, recuperata con uno sparse checkout |

144| `npm` | `package`, `version`, `registry` | Pacchetto del registro npm o collegamento a un tarball, recuperato con il tuo client npm e decompresso senza eseguire script di installazione |144| `npm` | `package`, `version`, `registry` | Pacchetto del registro npm o collegamento a un tarball, recuperato con il tuo client npm e decompresso senza eseguire script di installazione |

145| `archive` | `url`, `sha256` | Archivio Zip su HTTPS. Richiede Claude Code v2.1.224 o successivo |145| `archive` | `url`, `sha256` | Archivio Zip su HTTPS |

146| `command` | `command`, `timeout`, `mode` | Directory stampata da un comando che Claude Code esegue sulla macchina dell'utente. Richiede Claude Code v2.1.229 o successivo |146| `command` | `command`, `timeout`, `mode` | Directory stampata da un comando che Claude Code esegue sulla macchina dell'utente. Richiede Claude Code v2.1.229 o successivo |

147 147 

148I nomi `url` e `github` sono anche tipi di [sorgente marketplace](#marketplace-sources), dove `url` significa un collegamento diretto a un file `marketplace.json` piuttosto che a un repository git. `git` esiste solo come sorgente marketplace e `npm` esiste come entrambi. `git-subdir`, `archive` e `command` esistono solo come sorgenti di plugin.148I nomi `url` e `github` sono anche tipi di [sorgente marketplace](#marketplace-sources), dove `url` significa un collegamento diretto a un file `marketplace.json` piuttosto che a un repository git. `git` esiste solo come sorgente marketplace e `npm` esiste come entrambi. `git-subdir`, `archive` e `command` esistono solo come sorgenti di plugin.

Details

57* **I mod sono attivi.** Un utente può installare un plugin che contiene un mod da qualsiasi marketplace consentito dalle tue impostazioni dei plugin, oppure caricarne uno da una directory con `--plugin-dir`.57* **I mod sono attivi.** Un utente può installare un plugin che contiene un mod da qualsiasi marketplace consentito dalle tue impostazioni dei plugin, oppure caricarne uno da una directory con `--plugin-dir`.

58* **Una protezione integrata viene eseguita per prima.** Claude Code carica un mod integrato chiamato `sec-default@builtin` prima di ogni mod installato da un utente. Gli utenti non possono disattivarlo. `/plugin` e il log di debug lo elencano come `cc-plugin-sec-default`. La protezione viene caricata quando è vera una di queste condizioni:58* **Una protezione integrata viene eseguita per prima.** Claude Code carica un mod integrato chiamato `sec-default@builtin` prima di ogni mod installato da un utente. Gli utenti non possono disattivarlo. `/plugin` e il log di debug lo elencano come `cc-plugin-sec-default`. La protezione viene caricata quando è vera una di queste condizioni:

59 59 

60 * La macchina ha impostazioni gestite60 * La macchina ha impostazioni gestite o un file [`managed-mcp.json`](https://code.claude.com/docs/it/managed-mcp#deploy-managed-mcp-json)

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

62 62 

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

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

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

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


76 76 

77* **Gli hook delle impostazioni continuano a funzionare.** Gli hook di tipo command, HTTP, prompt e agent nei file di impostazioni e in `hooks/hooks.json` dei plugin vengono eseguiti come prima, insieme ai mod.77* **Gli hook delle impostazioni continuano a funzionare.** Gli hook di tipo command, HTTP, prompt e agent nei file di impostazioni e in `hooks/hooks.json` dei plugin vengono eseguiti come prima, insieme ai mod.

78* **Le regole deny hanno la precedenza dove la protezione viene caricata.** Il mod di un utente non può approvare una chiamata che una regola `deny` rifiuta, a meno che tu non imposti [`allowModsToOverrideDenyRules`](#set-options-on-the-built-in-guard).78* **Le regole deny hanno la precedenza dove la protezione viene caricata.** Il mod di un utente non può approvare una chiamata che una regola `deny` rifiuta, a meno che tu non imposti [`allowModsToOverrideDenyRules`](#set-options-on-the-built-in-guard).

79* **Gli hook gestiti vengono eseguiti per primi.** Un hook `PreToolUse` nelle impostazioni gestite viene eseguito prima dell'hook [`tool.call`](https://code.claude.com/docs/it/plugins/mods/reference#tools) di qualsiasi mod, e quando quell'hook gestito blocca una chiamata a uno strumento, nessun hook `tool.call` dei mod viene eseguito per quella chiamata. Se la chiamata procede e un mod la riscrive, i tuoi hook gestiti vengono eseguiti di nuovo sulla chiamata riscritta, quindi possono comunque bloccarla.79* **Gli hook gestiti vengono eseguiti per primi.** Un hook `PreToolUse` nelle impostazioni gestite viene eseguito prima dell'hook [`tool.call`](https://code.claude.com/docs/it/plugins/mods/reference#tools) di qualsiasi mod, e quando quell'hook gestito blocca una chiamata a uno strumento, nessun hook `tool.call` dei mod viene eseguito per quella chiamata. Se la chiamata procede e un mod la riscrive, i tuoi hook gestiti vengono eseguiti di nuovo sulla chiamata riscritta, quindi per impostazione predefinita possono comunque bloccarla.

80 80 

81 Gli hook `PreToolUse` provenienti da altri file di impostazioni e dai plugin vengono eseguiti dopo l'ultimo mod. Se un mod risponde direttamente alla chiamata allo strumento, lo strumento non viene mai eseguito e nemmeno quegli hook. Consulta [L'ordine in cui vengono eseguiti i mod](https://code.claude.com/docs/it/plugins/mods/events.md#the-order-mods-run-in).81 Gli hook `PreToolUse` provenienti da altri file di impostazioni e dai plugin vengono eseguiti dopo l'ultimo mod. Se un mod risponde direttamente alla chiamata allo strumento, lo strumento non viene mai eseguito e nemmeno quegli hook. Consulta [L'ordine in cui vengono eseguiti i mod](https://code.claude.com/docs/it/plugins/mods/events.md#the-order-mods-run-in).

82* **La policy di rete copre `$.http.fetch`.**82* **La policy di rete copre `$.http.fetch`.**


260| Opzione | Non impostata | `true` |260| Opzione | Non impostata | `true` |

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

262| `allowManagedModsOnly` | I mod degli utenti vengono eseguiti | Solo [i mod della tua organizzazione](#install-your-organizations-mods) e i mod integrati in Claude Code eseguono i propri hook. Claude Code rifiuta ogni altro mod, incluso uno installato da un utente o indicato con `--plugin-dir`. |262| `allowManagedModsOnly` | I mod degli utenti vengono eseguiti | Solo [i mod della tua organizzazione](#install-your-organizations-mods) e i mod integrati in Claude Code eseguono i propri hook. Claude Code rifiuta ogni altro mod, incluso uno installato da un utente o indicato con `--plugin-dir`. |

263| `allowModsToOverrideDenyRules` | Le regole `deny` hanno la precedenza sui mod degli utenti | Un mod di un utente che approva le chiamate agli strumenti può approvare una chiamata che una regola `deny` rifiuta |263| `allowModsToOverrideDenyRules` | Le regole `deny` hanno la precedenza sui mod degli utenti | Un mod di un utente che approva le chiamate agli strumenti può approvare una chiamata scavalcando la maggior parte [degli esiti che restano in vigore per impostazione predefinita](https://code.claude.com/docs/it/permissions.md#precedence-among-rules-hooks-and-mods), inclusa una regola `deny` |

264 264 

265Queste regole stabiliscono se un'opzione ha effetto:265Queste regole stabiliscono se un'opzione ha effetto:

266 266 


350 350 

351* **L'elenco sostituisce il valore predefinito**: quando imposti `prependPlugins` nelle impostazioni gestite, includi `sec-default@builtin` per mantenere la protezione integrata. La protezione è integrata e non richiede una voce `enabledPlugins`.351* **L'elenco sostituisce il valore predefinito**: quando imposti `prependPlugins` nelle impostazioni gestite, includi `sec-default@builtin` per mantenere la protezione integrata. La protezione è integrata e non richiede una voce `enabledPlugins`.

352* **I tuoi id devono essere considerati tuoi**: nelle impostazioni gestite, Claude Code ignora un id il cui plugin non soddisfa le condizioni per un mod dell'organizzazione352* **I tuoi id devono essere considerati tuoi**: nelle impostazioni gestite, Claude Code ignora un id il cui plugin non soddisfa le condizioni per un mod dell'organizzazione

353* **I repository non possono impostarle**: Claude Code legge entrambe le impostazioni dalle impostazioni gestite e mai dal file di impostazioni di un repository. Un utente può impostarle in `~/.claude/settings.json` per ordinare i propri mod solo su una macchina senza impostazioni gestite, e solo quando la credenziale della sessione non proviene da un `/login` Team o Enterprise. In qualsiasi altro caso, Claude Code ignora entrambe le chiavi nelle impostazioni utente. Un elenco lì non aggiunge né rimuove la protezione integrata.353* **I repository non possono impostare nessuno dei due elenchi**: Claude Code li ignora entrambi nel file di impostazioni di un repository, quindi impostali nelle impostazioni gestite.

354* **Un utente può impostarli per ordinare i propri mod**: in `~/.claude/settings.json`, solo su una macchina senza impostazioni gestite né file `managed-mcp.json`, e solo quando la credenziale della sessione non proviene da un `/login` Team o Enterprise. In qualsiasi altro caso, Claude Code ignora entrambe le chiavi nelle impostazioni utente. Un elenco lì non aggiunge né rimuove la protezione integrata.

354 355 

355### Applica un criterio con un tuo mod356### Applica un criterio con un tuo mod

356 357 

Details

21 21 

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

23 23 

24Il mod viene eseguito una volta che lo approvi, tranne nelle [sessioni in cui un mod scritto da Claude non può essere caricato](#sessions-that-skip-the-approval).24Nelle [modalità di permesso](https://code.claude.com/docs/it/permission-modes.md) `auto` e `bypassPermissions`, il mod può essere eseguito al termine del turno. Altrimenti, viene eseguito una volta che lo approvi, tranne nelle [sessioni in cui un mod scritto da Claude non può essere caricato](#sessions-that-skip-the-approval).

25 25 

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

27 27 


33 33 

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

35 35 

36Quando Claude salva il primo file, Claude Code chiede se abilitare il ricaricamento a caldo per la sessione. Il ricaricamento a caldo esegue i mod che Claude scrive in questa sessione e recepisce ogni modifica successiva.36Quando Claude salva il primo file, Claude Code chiede se abilitare il ricaricamento a caldo per la sessione. Il ricaricamento a caldo esegue i mod che Claude scrive in questa sessione e recepisce ogni modifica successiva. Se non compare alcuna domanda, salta questo passaggio.

37 37 

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

39 39 

40* **Enable for this session**: i mod nella cartella dei mod della sessione vengono caricati al termine del turno e ricaricati alla fine di ogni turno che li modifica. La tua risposta vale per tutta la sessione, anche dopo averla ripresa.40* **Turn them on**: i mod nella cartella dei mod della sessione vengono caricati al termine del turno e ricaricati alla fine di ogni turno che li modifica. La tua risposta vale per tutta la sessione, anche dopo averla ripresa.

41* **Not now**: per ora non viene caricato nulla. I file restano dove Claude li ha scritti e i mod vengono caricati al successivo avvio di quella sessione. Per impedire che un mod venga mai caricato, elimina la sua directory.41* **Not now**: per ora non viene caricato nulla. I file restano dove Claude li ha scritti e i mod vengono caricati al successivo avvio di quella sessione. Per impedire che un mod venga mai caricato, elimina la sua directory.

42 42 

43**3. Verifica che il mod sia stato caricato**43**3. Verifica che il mod sia stato caricato**


59 59 

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

61 61 

62Un mod scritto da Claude viene caricato solo dopo che lo hai approvato, in un workspace attendibile in cui i mod possono essere eseguiti. In queste sessioni non viene caricato:62Un mod scritto da Claude viene caricato in un workspace attendibile in cui i mod possono essere eseguiti, dopo che lo hai approvato nelle modalità che chiedono conferma. In queste sessioni non viene caricato:

63 63 

64* **Nessuno è presente per approvare**: la sessione non può mostrarti una richiesta di conferma, come in un'esecuzione `claude -p` o in [modalità `dontAsk`](https://code.claude.com/docs/it/permission-modes)64* **Nessuno è presente per approvare**: la sessione non può mostrarti una richiesta di conferma, come in un'esecuzione `claude -p` al di fuori delle modalità `auto` e `bypassPermissions`, o in [modalità `dontAsk`](https://code.claude.com/docs/it/permission-modes)

65* **Il workspace non è attendibile**: non hai accettato la richiesta di attendibilità per la directory65* **Il workspace non è attendibile**: non hai accettato la richiesta di attendibilità per la directory

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

67 67 

Details

328 328 

329Verifica quali mod ricevono questo evento e la tua versione di Claude Code:329Verifica quali mod ricevono questo evento e la tua versione di Claude Code:

330 330 

331* **La protezione integrata**: con le impostazioni gestite, o con un [`/login`](https://code.claude.com/docs/it/authentication#authentication-precedence) Team o Enterprise come credenziale della sessione, la [protezione integrata](https://code.claude.com/docs/it/plugins/mods/admin.md#know-what-happens-by-default) può saltare questo hook in un mod che installi o carichi con `--plugin-dir`. Per verificarlo, cerca nel [log di debug](https://code.claude.com/docs/it/plugins/mods/troubleshoot.md#read-the-debug-log) `settings.read bypassed by cc-plugin-sec-default`. Se una riga con quel testo nomina il tuo mod, chiedi all'amministratore della tua organizzazione di [installare il mod come uno dei mod dell'organizzazione](https://code.claude.com/docs/it/plugins/mods/admin.md#install-your-organizations-mods).331* **La protezione integrata**: dove viene caricata la [protezione integrata](https://code.claude.com/docs/it/plugins/mods/admin.md#know-what-happens-by-default), questa può saltare questo hook in un mod che installi o carichi con `--plugin-dir`. Per verificarlo, cerca nel [log di debug](https://code.claude.com/docs/it/plugins/mods/troubleshoot.md#read-the-debug-log) `settings.read bypassed by cc-plugin-sec-default`. Se una riga con quel testo nomina il tuo mod, chiedi all'amministratore della tua organizzazione di [installare il mod come uno dei mod dell'organizzazione](https://code.claude.com/docs/it/plugins/mods/admin.md#install-your-organizations-mods).

332* **La versione**: l'attivazione dell'evento sulla lettura di Claude Code stesso, e il campo `e.layers`, richiedono Claude Code v2.1.304 o successivo.332* **La versione**: l'attivazione dell'evento sulla lettura di Claude Code stesso, e il campo `e.layers`, richiedono Claude Code v2.1.304 o successivo.

333 333 

334#### Cosa riceve un hook `settings.read`334#### Cosa riceve un hook `settings.read`

Details

78 78 

79I mod non sono eseguiti in una sandbox. Se attivi il [sandboxing](https://code.claude.com/docs/it/sandboxing.md), la sandbox isola i comandi Bash che Claude esegue, mentre un processo avviato da un mod viene eseguito al di fuori di essa.79I mod non sono eseguiti in una sandbox. Se attivi il [sandboxing](https://code.claude.com/docs/it/sandboxing.md), la sandbox isola i comandi Bash che Claude esegue, mentre un processo avviato da un mod viene eseguito al di fuori di essa.

80 80 

81Con le [impostazioni gestite](https://code.claude.com/docs/it/settings.md#check-what-your-organization-enforces) o con un [`/login`](https://code.claude.com/docs/it/authentication#authentication-precedence) Team o Enterprise come credenziale della sessione, per impostazione predefinita l'approvazione di un mod non consente a una chiamata di superare le tue regole `ask` o i tuoi hook `PreToolUse`. In assenza di entrambi, un mod può approvare una chiamata per cui una regola `ask` chiederebbe conferma, o che il tuo hook `PreToolUse` ha bloccato. Per verificare quando un mod può approvare anche una chiamata che una regola `deny` rifiuta, consulta [Estendere i permessi con gli hook](https://code.claude.com/docs/it/permissions.md#precedence-among-rules-hooks-and-mods).81Un mod può approvare [molte chiamate agli strumenti](https://code.claude.com/docs/it/permissions.md#precedence-among-rules-hooks-and-mods) che le tue regole `deny` o `ask` o i tuoi hook `PreToolUse` bloccherebbero, a meno che la [protezione integrata](https://code.claude.com/docs/it/plugins/mods/admin.md#know-what-happens-by-default) non lo impedisca. Con la protezione caricata, per impostazione predefinita il mod di un utente non può farlo. In una sessione del terminale locale, `cc-plugin-sec-default` nella scheda **Installed** di `/plugin` indica che la protezione è caricata.

82 82 

83Un mod può modificare lo stile di gran parte dell'interfaccia di Claude Code, ma non della richiesta di permesso. Non può cambiare ciò che la richiesta ti mostra.83Un mod può modificare lo stile di gran parte dell'interfaccia di Claude Code, ma non della richiesta di permesso. Non può cambiare ciò che la richiesta ti mostra.

84 84 

Details

39| `next.origin` | `{ plugin, tier }` di chi ha generato l'evento. Claude Code stesso è `{ plugin: 'engine', tier: 'core' }`. Il `tier` di un mod è il suo gruppo di priorità nell'[ordine in cui vengono eseguiti i mod](https://code.claude.com/docs/it/plugins/mods/events.md#the-order-mods-run-in): `prepend`, `user`, `append` o `builtin`. |39| `next.origin` | `{ plugin, tier }` di chi ha generato l'evento. Claude Code stesso è `{ plugin: 'engine', tier: 'core' }`. Il `tier` di un mod è il suo gruppo di priorità nell'[ordine in cui vengono eseguiti i mod](https://code.claude.com/docs/it/plugins/mods/events.md#the-order-mods-run-in): `prepend`, `user`, `append` o `builtin`. |

40| `next.budget` | Il limite di tempo dell'hook in millisecondi: `next.budget.ms` è il limite complessivo e `next.budget.remainingMs` è il tempo rimanente in quel momento |40| `next.budget` | Il limite di tempo dell'hook in millisecondi: `next.budget.ms` è il limite complessivo e `next.budget.remainingMs` è il tempo rimanente in quel momento |

41| `next.to(e, tier)` | Salta a un tier successivo, che può essere `append`, `builtin` o `core`. `next.to(e, 'append')` salta i mod installati da un utente. Solo un mod in `prependPlugins` o `appendPlugins` può chiamarlo. |41| `next.to(e, tier)` | Salta a un tier successivo, che può essere `append`, `builtin` o `core`. `next.to(e, 'append')` salta i mod installati da un utente. Solo un mod in `prependPlugins` o `appendPlugins` può chiamarlo. |

42| `next.error` | Solo in un gestore `.catch`. `kind` è `throw` o `timeout` quando l'hook non è riuscito, e `message` è il testo dell'errore. `kind` è `re-entry` quando l'hook è stato saltato perché l'evento proveniva dall'interno di una chiamata all'API dei mod effettuata da quell'hook o dal codice del tuo mod al di fuori dei suoi hook. `re-entry` richiede Claude Code v2.1.292 o versioni successive. |42| `next.error` | Solo in un gestore `.catch`. `kind` è `throw` o `timeout` e `message` è il testo dell'errore. |

43| `next.error.cause` | Impostato solo quando `kind` è `re-entry`. `rewritten` se un hook `tool.call` o [`PreToolUse`](https://code.claude.com/docs/it/hooks#pretooluse) ha modificato la chiamata all'API dei mod da cui proveniva l'evento, oppure se un hook `agent.spawn` ha modificato un agente avviato da quella chiamata. `lent` quando a generare quell'evento è stato un metodo che un altro mod aggiunge all'API dei mod, a meno che non si applichi anche `rewritten`. `lent` richiede Claude Code v2.1.292 o versioni successive e `rewritten` v2.1.300 o versioni successive. |

44| `next.called` | Solo in un gestore `.catch`. `true` quando l'hook aveva chiamato `next`. |43| `next.called` | Solo in un gestore `.catch`. `true` quando l'hook aveva chiamato `next`. |

45 44 

46## Eventi45## Eventi


252| [`AbovePrompt`](https://code.claude.com/docs/it/plugins/mods/interface#pick-where-to-draw) | `hasSurvey`, `isWorking`, `maxRows`, `bodyColumns`, `scroll`, `view` | Una sola istanza | Terminale, Desktop |251| [`AbovePrompt`](https://code.claude.com/docs/it/plugins/mods/interface#pick-where-to-draw) | `hasSurvey`, `isWorking`, `maxRows`, `bodyColumns`, `scroll`, `view` | Una sola istanza | Terminale, Desktop |

253| [`Placed`](https://code.claude.com/docs/it/plugins/mods/interface#place-a-row-in-the-transcript) | `id`, `plugin`, `onScreen` | Il `requestId` restituito da `$.ui.place` | Terminale |252| [`Placed`](https://code.claude.com/docs/it/plugins/mods/interface#place-a-row-in-the-transcript) | `id`, `plugin`, `onScreen` | Il `requestId` restituito da `$.ui.place` | Terminale |

254| [`Backdrop`](https://code.claude.com/docs/it/plugins/mods/interface#put-a-backdrop-behind-the-conversation) | `id`, `plugin`, `glass`, `colorScheme` | `backdrop` | Superfici `desktop` e `mobile`. Il tuo hook viene eseguito quando l'app Desktop o mobile chiede di disegnare uno sfondo. |253| [`Backdrop`](https://code.claude.com/docs/it/plugins/mods/interface#put-a-backdrop-behind-the-conversation) | `id`, `plugin`, `glass`, `colorScheme` | `backdrop` | Superfici `desktop` e `mobile`. Il tuo hook viene eseguito quando l'app Desktop o mobile chiede di disegnare uno sfondo. |

255| `UserMessage` | `text`, `origin`, `isExpanded` e `task` o `from` a seconda dell'origine | L'id del messaggio | Terminale, Desktop, VS Code |254| `UserMessage` | `text`, `origin`, `isExpanded` e `task` o `from` a seconda dell'origine | L'id della riga disegnata | Terminale, Desktop, VS Code |

256| `AssistantMessage` | Il testo della risposta | L'id del messaggio | Terminale, Desktop, VS Code |255| `AssistantMessage` | Il testo della risposta | L'id della riga disegnata | Terminale, Desktop, VS Code |

257| `ToolUse`, `ToolResult`, `ToolGroup` | Il nome, l'input e il risultato dello strumento | L'id della chiamata allo strumento | Terminale, Desktop, VS Code |256| `ToolUse`, `ToolResult`, `ToolGroup` | Il nome, l'input e il risultato dello strumento | L'id della chiamata allo strumento | Terminale, Desktop, VS Code |

258| `CommandOutput` | `command`, `text` | L'id del messaggio | Terminale, Desktop |257| `CommandOutput` | `command`, `text` | L'id della riga disegnata | Terminale, Desktop |

259| [`AskUserQuestion`](https://code.claude.com/docs/it/plugins/mods/interface#change-what-claude-code-already-draws) | La domanda e le opzioni | L'id della chiamata allo strumento | Terminale, Desktop, VS Code |258| [`AskUserQuestion`](https://code.claude.com/docs/it/plugins/mods/interface#change-what-claude-code-already-draws) | La domanda e le opzioni | L'id della chiamata allo strumento | Terminale, Desktop, VS Code |

260| `ToolProgress` | `kind` | L'id della chiamata allo strumento | Terminale |259| `ToolProgress` | `kind` | L'id della chiamata allo strumento | Terminale |

261| [`Spinner`](https://code.claude.com/docs/it/plugins/mods/interface#change-what-claude-code-already-draws) | `word`, `message`, `suffix`, `mode` | L'id dell'agente | Terminale, Desktop, VS Code |260| [`Spinner`](https://code.claude.com/docs/it/plugins/mods/interface#change-what-claude-code-already-draws) | `word`, `message`, `suffix`, `mode` | L'id dell'agente | Terminale, Desktop, VS Code |

262| `TurnDuration` | `word`, `durationMs` | L'id del messaggio | Terminale |261| `TurnDuration` | `word`, `durationMs` | L'id della riga disegnata | Terminale |

263| `InfoNotice` | `text`, `command` | L'id del messaggio | Terminale |262| `InfoNotice` | `text`, `command` | Il `text` dell'avviso preceduto da `notice:` | Terminale |

264| `SessionMode` | `modes` | Una sola istanza | Terminale, Desktop |263| `SessionMode` | `modes` | Una sola istanza | Terminale, Desktop |

265| `PromptHint` | `isDraft`, `isWorking`, `hint` | Una sola istanza | Terminale, Desktop |264| `PromptHint` | `isDraft`, `isWorking`, `hint` | Una sola istanza | Terminale, Desktop |

266 265 


424| :- | :- | :- |423| :- | :- | :- |

425| `CLAUDE_CODE_PLUGIN_DIRS` | Ambiente, oppure `env` in `~/.claude/settings.json` | Directory di plugin da caricare come fa `--plugin-dir`, per le app a cui non puoi passare un flag. Percorsi assoluti separati da `:`, oppure da `;` su Windows. |424| `CLAUDE_CODE_PLUGIN_DIRS` | Ambiente, oppure `env` in `~/.claude/settings.json` | Directory di plugin da caricare come fa `--plugin-dir`, per le app a cui non puoi passare un flag. Percorsi assoluti separati da `:`, oppure da `;` su Windows. |

426| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | Ambiente | `1` fa sì che una sessione non interattiva di lunga durata ricarichi i mod di `--plugin-dir` al salvataggio |425| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | Ambiente | `1` fa sì che una sessione non interattiva di lunga durata ricarichi i mod di `--plugin-dir` al salvataggio |

427| `prependPlugins`, `appendPlugins` | Impostazioni gestite. Impostazioni utente solo su una macchina senza impostazioni gestite, in una sessione la cui credenziale non è un `/login` Team o Enterprise. | Elenchi di id di plugin, come `acme-guard@acme-tools`. I mod in `prependPlugins` vengono eseguiti prima di ogni mod installato da un utente, e i mod in `appendPlugins` vengono eseguiti dopo, nell'ordine elencato. Consulta [L'ordine in cui vengono eseguiti i mod](https://code.claude.com/docs/it/plugins/mods/events.md#the-order-mods-run-in). |426| `prependPlugins`, `appendPlugins` | Impostazioni gestite. Impostazioni utente solo su una macchina senza impostazioni gestite né file [`managed-mcp.json`](https://code.claude.com/docs/it/managed-mcp#deploy-managed-mcp-json), in una sessione la cui credenziale non è un `/login` Team o Enterprise. | Elenchi di id di plugin, come `acme-guard@acme-tools`. I mod in `prependPlugins` vengono eseguiti prima di ogni mod installato da un utente, e i mod in `appendPlugins` vengono eseguiti dopo, nell'ordine elencato. Consulta [L'ordine in cui vengono eseguiti i mod](https://code.claude.com/docs/it/plugins/mods/events.md#the-order-mods-run-in). |

428| `allowManagedModsOnly` | Impostazioni gestite, come [opzione della protezione integrata](https://code.claude.com/docs/it/plugins/mods/admin.md#set-options-on-the-built-in-guard) | Solo i mod che [contano come quelli della tua organizzazione](https://code.claude.com/docs/it/plugins/mods/admin.md#install-your-organizations-mods) e i mod integrati in Claude Code eseguono i propri hook. Gli hook delle impostazioni degli utenti continuano a essere eseguiti. |427| `allowManagedModsOnly` | Impostazioni gestite, come [opzione della protezione integrata](https://code.claude.com/docs/it/plugins/mods/admin.md#set-options-on-the-built-in-guard) | Solo i mod che [contano come quelli della tua organizzazione](https://code.claude.com/docs/it/plugins/mods/admin.md#install-your-organizations-mods) e i mod integrati in Claude Code eseguono i propri hook. Gli hook delle impostazioni degli utenti continuano a essere eseguiti. |

429| `allowModsToOverrideDenyRules` | Impostazioni gestite, come [opzione della protezione integrata](https://code.claude.com/docs/it/plugins/mods/admin.md#set-options-on-the-built-in-guard) | Consente a un mod installato da un utente di approvare una chiamata a uno strumento che una regola `deny` rifiuta |428| `allowModsToOverrideDenyRules` | Impostazioni gestite, come [opzione della protezione integrata](https://code.claude.com/docs/it/plugins/mods/admin.md#set-options-on-the-built-in-guard) | Consente a un mod installato da un utente di approvare una chiamata a uno strumento superando la maggior parte degli [esiti che restano in vigore per impostazione predefinita](https://code.claude.com/docs/it/permissions.md#precedence-among-rules-hooks-and-mods), inclusa una regola `deny` |

430| `allowManagedHooksOnly` | Impostazioni gestite | Blocca gli hook e i mod installati che non appartengono alla tua organizzazione. Consulta [cosa continua a essere eseguito](https://code.claude.com/docs/it/settings-reference.md#what-runs-under-allowmanagedhooksonly). |429| `allowManagedHooksOnly` | Impostazioni gestite | Blocca gli hook e i mod installati che non appartengono alla tua organizzazione. Consulta [cosa continua a essere eseguito](https://code.claude.com/docs/it/settings-reference.md#what-runs-under-allowmanagedhooksonly). |

431| `disableAllHooks` | Qualsiasi file di impostazioni | Nelle impostazioni gestite, non viene eseguito alcun mod o hook di un plugin installato. Nelle tue impostazioni, ciò che la tua organizzazione gestisce continua a essere eseguito. Consulta [`disableAllHooks`](https://code.claude.com/docs/it/settings-reference#disableallhooks). |430| `disableAllHooks` | Qualsiasi file di impostazioni | Nelle impostazioni gestite, non viene eseguito alcun mod o hook di un plugin installato. Nelle tue impostazioni, ciò che la tua organizzazione gestisce continua a essere eseguito. Consulta [`disableAllHooks`](https://code.claude.com/docs/it/settings-reference#disableallhooks). |

432| `disableSideloadFlags` | Impostazioni gestite | Rifiuta `--plugin-dir` e `--plugin-url` all'avvio |431| `disableSideloadFlags` | Impostazioni gestite | Rifiuta `--plugin-dir` e `--plugin-url` all'avvio |

433| `pluginConfigs` | Impostazioni utente o gestite | Contiene i valori di `userConfig` per un mod, indicizzati in base all'id del plugin, come `acme-guard@acme-tools`, oppure in base al suo nome seguito da `@inline`, come `first-mod@inline`, per un mod caricato con `--plugin-dir` |432| `pluginConfigs` | Impostazioni utente o gestite | Contiene i valori di `userConfig` per un mod, indicizzati in base all'id del plugin, come `acme-guard@acme-tools`, oppure in base al suo nome seguito da `@inline`, come `first-mod@inline`, per un mod caricato con `--plugin-dir` |

434 433 

435`sec-default@builtin` è una protezione integrata in Claude Code, elencata come `cc-plugin-sec-default` in `/plugin` e nel log di debug. Viene caricata prima di ogni mod installato da una persona su una macchina con impostazioni gestite, oppure in una sessione la cui credenziale è un [`/login`](https://code.claude.com/docs/it/authentication#authentication-precedence) Team o Enterprise. Se è impostato `prependPlugins` nelle impostazioni gestite, la protezione viene caricata solo quando quell'elenco la nomina, nella posizione indicata.434`sec-default@builtin` è una protezione integrata in Claude Code, elencata come `cc-plugin-sec-default` in `/plugin` e nel log di debug. [Dove viene caricata](https://code.claude.com/docs/it/plugins/mods/admin.md#know-what-happens-by-default), viene eseguita prima di ogni mod installato da una persona. Se è impostato `prependPlugins` nelle impostazioni gestite, la protezione viene caricata solo quando quell'elenco la nomina, nella posizione indicata.

436 435 

437Il suo codice sorgente si trova nella [directory `mods/sec-default` del repository di Claude Code](https://github.com/anthropics/claude-code/tree/main/mods/sec-default).436Il suo codice sorgente si trova nella [directory `mods/sec-default` del repository di Claude Code](https://github.com/anthropics/claude-code/tree/main/mods/sec-default).

438 437 

Details

14 14 

15Quando un modulo non viene caricato, un hook viene saltato o un altro mod rifiuta il tuo, Claude Code scrive una riga che nomina il tuo mod. Dove leggi quella riga dipende dalla sessione:15Quando un modulo non viene caricato, un hook viene saltato o un altro mod rifiuta il tuo, Claude Code scrive una riga che nomina il tuo mod. Dove leggi quella riga dipende dalla sessione:

16 16 

17* **Una sessione che ricarica a caldo una directory di plugin**: una riga attenuata nella trascrizione. Si tratta di una sessione interattiva che hai avviato con `--plugin-dir`, oppure di una in cui hai [abilitato il ricaricamento a caldo](https://code.claude.com/docs/it/plugins/mods/create.md#ask-claude-for-a-mod) per i mod scritti da Claude.17* **Una sessione che ricarica a caldo una directory di plugin**: una riga attenuata nella trascrizione. Si tratta di una sessione interattiva che hai avviato con `--plugin-dir`, oppure di una in cui [il ricaricamento a caldo è attivo](https://code.claude.com/docs/it/plugins/mods/create.md#ask-claude-for-a-mod) per i mod scritti da Claude.

18* **Qualsiasi altra sessione interattiva, come una che esegue un mod installato da un marketplace**: solo il [log di debug](#read-the-debug-log). Per ottenerlo, avvia la sessione con `claude --debug`.18* **Qualsiasi altra sessione interattiva, come una che esegue un mod installato da un marketplace**: solo il [log di debug](#read-the-debug-log). Per ottenerlo, avvia la sessione con `claude --debug`.

19* **Un'esecuzione di `claude -p` con `--plugin-dir`**: stderr, nel formato di output di testo predefinito. Un rifiuto da parte di un altro mod finisce solo nel log di debug.19* **Un'esecuzione di `claude -p` con `--plugin-dir`**: stderr, nel formato di output di testo predefinito. Un rifiuto da parte di un altro mod finisce solo nel log di debug.

20 20 


68 68 

69### Messaggi della protezione integrata69### Messaggi della protezione integrata

70 70 

71Su un computer con impostazioni gestite, o in una sessione la cui credenziale è un `/login` Team o Enterprise, la [protezione integrata](https://code.claude.com/docs/it/plugins/mods/admin.md#know-what-happens-by-default) può rifiutare un mod o una delle sue risposte. Ogni messaggio nomina l'opzione che l'amministratore della tua organizzazione imposta per modificare la regola.71Dove la [protezione integrata](https://code.claude.com/docs/it/plugins/mods/admin.md#know-what-happens-by-default) viene caricata, può rifiutare un mod o una delle sue risposte. Ogni messaggio nomina l'opzione che l'amministratore della tua organizzazione imposta per modificare la regola.

72 72 

73| Il messaggio contiene | Cosa significa | Dove appare |73| Il messaggio contiene | Cosa significa | Dove appare |

74| :- | :- | :- |74| :- | :- | :- |

plugins/org.md +1 −1

Details

89* **Sessioni interattive**: Claude Code registra il marketplace solo dopo che il contributore accetta il [workspace trust dialog](https://code.claude.com/docs/it/permissions.md#what-runs-before-you-trust-a-folder) per quella cartella.89* **Sessioni interattive**: Claude Code registra il marketplace solo dopo che il contributore accetta il [workspace trust dialog](https://code.claude.com/docs/it/permissions.md#what-runs-before-you-trust-a-folder) per quella cartella.

90* **[Esecuzioni non interattive `-p`](https://code.claude.com/docs/it/headless)**: le voci si applicano solo in una cartella la cui fiducia l'utente ha già accettato interattivamente, o il cui flag `hasTrustDialogAccepted` hai impostato in `~/.claude.json`.90* **[Esecuzioni non interattive `-p`](https://code.claude.com/docs/it/headless)**: le voci si applicano solo in una cartella la cui fiducia l'utente ha già accettato interattivamente, o il cui flag `hasTrustDialogAccepted` hai impostato in `~/.claude.json`.

91 91 

92Un plugin che il marketplace elenca per un percorso relativo si carica dalla copia del marketplace una volta che le voci `extraKnownMarketplaces` del repository si applicano. Un plugin il cui ingresso del marketplace punta a una fonte esterna invece, come il repository GitHub del plugin stesso, non si installa dalle impostazioni del repository da solo. Ogni contributore vede `Plugin "<name>" is enabled in project settings but isn't installed` finché non esegue `claude plugin install <name>@<marketplace> --scope project`, come [Install plugins](https://code.claude.com/docs/it/plugins/install.md) descrive.92Impostare `enabledPlugins` nel repository non installa il plugin. Una volta registrato il marketplace, chiedi a ogni contributore di eseguire `claude plugin install <name>@<marketplace> --scope project`. Finché non lo fa, la scheda **Errors** di `/plugin` può mostrare `Plugin "<name>" is enabled in project settings but isn't installed here` o [`not cached`](https://code.claude.com/docs/it/plugins/troubleshooting#plugin-not-cached-at). I contributori non hanno bisogno dell'installazione quando un marketplace locale `directory` o `file` elenca il plugin con una [`source` a percorso relativo](https://code.claude.com/docs/it/plugins/marketplace-reference#plugin-sources).

93 93 

94Se usi una fonte `directory` o `file` locale con un percorso relativo, il percorso si risolve rispetto al checkout principale del tuo repository. Quando esegui Claude Code da un git worktree, il percorso punta ancora al checkout principale, quindi tutti i worktree condividono la stessa posizione del marketplace.94Se usi una fonte `directory` o `file` locale con un percorso relativo, il percorso si risolve rispetto al checkout principale del tuo repository. Quando esegui Claude Code da un git worktree, il percorso punta ancora al checkout principale, quindi tutti i worktree condividono la stessa posizione del marketplace.

95 95 

Details

322 322 

323### Marketplace updates keep failing offline323### Marketplace updates keep failing offline

324 324 

325Si lavora in un ambiente in cui l'host git del marketplace non è raggiungibile e ogni sessione ripete un aggiornamento fallito in background. Il checkout esistente del marketplace rimane in posizione e l'avvio non è ritardato.325Lavori in un ambiente in cui l'host git del marketplace non è raggiungibile, e ogni sessione ripete un aggiornamento fallito in background. Il checkout esistente del marketplace rimane al suo posto.

326 326 

327Ogni sessione, per un marketplace con [auto-update on](https://code.claude.com/docs/it/plugins/loading.md#which-marketplaces-and-plugins-auto-update), Claude Code controlla l'host git del marketplace per nuovi commit in background. Quando quel controllo non può raggiungere l'host, tenta di clonare di nuovo il marketplace e offline anche quel clone fallisce.327Ogni sessione, per un marketplace con [auto-update on](https://code.claude.com/docs/it/plugins/loading.md#which-marketplaces-and-plugins-auto-update), Claude Code controlla l'host git del marketplace per nuovi commit in background. Quando quel controllo non può raggiungere l'host, tenta di clonare di nuovo il marketplace e offline anche quel clone fallisce.

328 328 


675 675 

676### `Plugin "<name>" not cached at <path>`676### `Plugin "<name>" not cached at <path>`

677 677 

678La scheda **Errors** mostra questa riga con la guida `Run /plugin to refresh the plugin cache`. Claude Code ha un record di installazione per il plugin, ma la directory a cui il record punta è mancante, ad esempio dopo aver cancellato la cache.678La scheda **Errors** mostra questa riga con la guida `Run /plugin to refresh the plugin cache`. Significa che Claude Code non ha trovato alcuna copia utilizzabile del plugin. Ad esempio, hai cancellato la cache, quindi la directory a cui punta il suo record di installazione è mancante. Oppure hai aperto un repository le cui impostazioni abilitano il plugin e non l'hai installato.

679 679 

680Reinstallare il plugin dalla shell. `claude plugin install <name>@<marketplace>` scarica di nuovo un plugin la cui directory di installazione è mancante anche se il suo record esiste:680Installa il plugin dalla tua shell. Se hai aperto un repository il cui `.claude/settings.json` abilita il plugin, esegui questo comando dal progetto con la chiave del plugin presa da `enabledPlugins`, come descritto in [Enabled in project settings but not installed](https://code.claude.com/docs/it/plugins/loading.md#enabled-in-project-settings-but-not-installed):

681 

682```shell theme={null}

683claude plugin install <name>@<marketplace> --scope project

684```

685 

686Altrimenti, esegui questo comando, che scarica di nuovo un plugin la cui directory di installazione è mancante anche se il suo record esiste:

681 687 

682```shell theme={null}688```shell theme={null}

683claude plugin install <name>@<marketplace>689claude plugin install <name>@<marketplace>

684```690```

685 691 

686Quindi eseguire `/reload-plugins` nella sessione. La voce della scheda **Errors** scompare e il plugin è di nuovo sotto **Installed**.692Quindi esegui `/reload-plugins` nella tua sessione. La voce della scheda **Errors** scompare e il plugin è elencato sotto **Installed**.

687 693 

688### `installed_plugins.json holds a record under "<id>" that this version of Claude Code cannot read`694### `installed_plugins.json holds a record under "<id>" that this version of Claude Code cannot read`

689 695 

Details

103La [modalità veloce](https://code.claude.com/docs/it/fast-mode.md) e la velocità standard mantengono cache separate, quindi dopo che attivi o disattivi la modalità veloce, la richiesta successiva non può usare ciò che l'altra velocità ha memorizzato nella cache. La prima volta che attivi la modalità veloce in una conversazione, la richiesta successiva legge l'intera conversazione fino a quel punto senza cache alle [tariffe della modalità veloce](https://code.claude.com/docs/it/fast-mode.md#understand-the-cost-tradeoff). Per mantenere basso quel costo, attivala all'inizio di una sessione.103La [modalità veloce](https://code.claude.com/docs/it/fast-mode.md) e la velocità standard mantengono cache separate, quindi dopo che attivi o disattivi la modalità veloce, la richiesta successiva non può usare ciò che l'altra velocità ha memorizzato nella cache. La prima volta che attivi la modalità veloce in una conversazione, la richiesta successiva legge l'intera conversazione fino a quel punto senza cache alle [tariffe della modalità veloce](https://code.claude.com/docs/it/fast-mode.md#understand-the-cost-tradeoff). Per mantenere basso quel costo, attivala all'inizio di una sessione.

104 104 

105* Se la attivi mentre Claude sta lavorando, quel turno termina alla velocità standard, e paghi l'eventuale lettura non memorizzata nella cache sulla prima richiesta del tuo turno successivo.105* Se la attivi mentre Claude sta lavorando, quel turno termina alla velocità standard, e paghi l'eventuale lettura non memorizzata nella cache sulla prima richiesta del tuo turno successivo.

106* Se il tuo modello attuale non supporta la modalità veloce, l'esecuzione di `/fast` [ti fa passare anche a Opus](https://code.claude.com/docs/it/fast-mode.md#toggle-fast-mode). Quel [cambio di modello](#switching-models) avvia di per sé una cache nuova dalla richiesta successiva nel turno in esecuzione.106* Se il tuo modello attuale non supporta la modalità veloce, l'esecuzione di `/fast` [cambia anche il tuo modello](https://code.claude.com/docs/it/fast-mode.md#toggle-fast-mode). Quel [cambio di modello](#switching-models) avvia di per sé una cache nuova dalla richiesta successiva nel turno in esecuzione.

107 107 

108Ogni attivazione/disattivazione successiva legge senza cache tutto ciò che la velocità a cui passi non ha memorizzato nella cache. Anche i cambi di velocità che Claude Code effettua da solo, come il [fallback alla velocità standard](https://code.claude.com/docs/it/fast-mode.md#handle-rate-limits) dopo un rate limit e il successivo ritorno alla modalità veloce, contano come attivazioni/disattivazioni.108Ogni attivazione/disattivazione successiva legge senza cache tutto ciò che la velocità a cui passi non ha memorizzato nella cache. Anche i cambi di velocità che Claude Code effettua da solo, come il [fallback alla velocità standard](https://code.claude.com/docs/it/fast-mode.md#handle-rate-limits) dopo un rate limit e il successivo ritorno alla modalità veloce, contano come attivazioni/disattivazioni.

109 109 

Details

185* **Livello di sforzo**: quando imposti il [livello di sforzo](https://code.claude.com/docs/it/model-config.md#adjust-effort-level) da un dispositivo connesso, con `/effort` o il controllo dello sforzo del dispositivo, Claude Code lo applica alla sessione sulla tua macchina. Se hai fissato un livello con `CLAUDE_CODE_EFFORT_LEVEL`, la sessione mantiene quel livello, e Claude Code rifiuta una scelta diversa dal controllo dello sforzo. La scelta di un livello dal controllo dello sforzo richiede Claude Code v2.1.234 o successivo sulla tua macchina.185* **Livello di sforzo**: quando imposti il [livello di sforzo](https://code.claude.com/docs/it/model-config.md#adjust-effort-level) da un dispositivo connesso, con `/effort` o il controllo dello sforzo del dispositivo, Claude Code lo applica alla sessione sulla tua macchina. Se hai fissato un livello con `CLAUDE_CODE_EFFORT_LEVEL`, la sessione mantiene quel livello, e Claude Code rifiuta una scelta diversa dal controllo dello sforzo. La scelta di un livello dal controllo dello sforzo richiede Claude Code v2.1.234 o successivo sulla tua macchina.

186* **Riconnessione dopo un errore di connessione**: esegui `/remote-control` per riconnetterti. Se nel frattempo la compattazione ha riscritto la conversazione o hai cambiato conversazione con `/resume`, Claude Code archivia la sessione del server che stava utilizzando invece di lasciarla nell'elenco delle sessioni. Puoi comunque trovare quella sessione tra le tue [sessioni archiviate](https://code.claude.com/docs/it/claude-code-on-the-web.md#find-an-archived-session) su claude.ai/code. Cambiare conversazione mentre un dispositivo è ancora connesso non archivia la sessione.186* **Riconnessione dopo un errore di connessione**: esegui `/remote-control` per riconnetterti. Se nel frattempo la compattazione ha riscritto la conversazione o hai cambiato conversazione con `/resume`, Claude Code archivia la sessione del server che stava utilizzando invece di lasciarla nell'elenco delle sessioni. Puoi comunque trovare quella sessione tra le tue [sessioni archiviate](https://code.claude.com/docs/it/claude-code-on-the-web.md#find-an-archived-session) su claude.ai/code. Cambiare conversazione mentre un dispositivo è ancora connesso non archivia la sessione.

187 187 

188### Creare un fork di una sessione dal browser

189 

190Per provare una direzione diversa senza interrompere una sessione, aprila su [claude.ai/code](https://claude.ai/code) e seleziona **Fork** nel menu della sessione, oppure crea un fork da un messaggio precedente nella trascrizione. Il fork si apre come nuova sessione nel tuo elenco delle sessioni e continua la conversazione da quel punto mentre l'originale continua a essere eseguita. La creazione di fork richiede Claude Code v2.1.277 o successivo sulla tua macchina.

191 

192Un server `claude remote-control` avviato con `--spawn session` ha spazio solo per la sua unica sessione, quindi non può eseguire un fork.

193 

194Claude Code rifiuta il fork in casi come questi:

195 

196* La sessione è occupata. Crea il fork quando è inattiva.

197* La sessione è ospitata dall'estensione VS Code o da un'altra app basata sull'[Agent SDK](https://code.claude.com/docs/it/agent-sdk/overview.md).

198 

188### Abilitare Remote Control per tutte le sessioni199### Abilitare Remote Control per tutte le sessioni

189 200 

190Remote Control si attiva solo quando esegui esplicitamente `claude remote-control`, `claude --remote-control` o `/remote-control`, a meno che la connessione automatica non sia attivata. Per attivare la connessione automatica per ogni sessione interattiva, esegui `/config` all'interno di Claude Code e imposta **Enable Remote Control for all sessions**. L'interruttore accetta tre valori:201Remote Control si attiva solo quando esegui esplicitamente `claude remote-control`, `claude --remote-control` o `/remote-control`, a meno che la connessione automatica non sia attivata. Per attivare la connessione automatica per ogni sessione interattiva, esegui `/config` all'interno di Claude Code e imposta **Enable Remote Control for all sessions**. L'interruttore accetta tre valori:

191 202 

192* **`true`**: connettiti automaticamente quando una sessione interattiva si avvia.203* **`true`**: connettiti automaticamente quando una sessione interattiva si avvia.

193* **`false`**: disattiva la connessione automatica, anche se un `true` dalle [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md) lo supera, perché Claude Code salva la scelta nelle tue impostazioni utente. Un `false` nelle impostazioni di progetto o locali (`.claude/settings.json`, `.claude/settings.local.json`) disattiva la connessione automatica anche su un `true` gestito.204* **`false`**: disattiva la connessione automatica, anche se un `true` dalle [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md) ha la precedenza, perché Claude Code salva la scelta nelle tue impostazioni utente. Un `false` nelle impostazioni di progetto o locali (`.claude/settings.json`, `.claude/settings.local.json`) disattiva la connessione automatica anche rispetto a un `true` gestito.

194* **`default`**: cancella la tua scelta e segui il valore predefinito dell'amministratore della tua organizzazione se ne è stato impostato uno, altrimenti il valore predefinito attuale di Claude Code. Se imposti `DISABLE_TELEMETRY` o `DO_NOT_TRACK`, consulta [Connessione automatica con `DISABLE_TELEMETRY` o `DO_NOT_TRACK` impostati](#auto-connect-with-disable-telemetry-or-do-not-track).205* **`default`**: cancella la tua scelta e segui il valore predefinito dell'amministratore della tua organizzazione se ne è stato impostato uno, altrimenti il valore predefinito attuale di Claude Code. Se imposti `DISABLE_TELEMETRY` o `DO_NOT_TRACK`, consulta [Connessione automatica con `DISABLE_TELEMETRY` o `DO_NOT_TRACK` impostati](#auto-connect-with-disable-telemetry-or-do-not-track).

195 206 

196Anche l'estensione VS Code e l'app Desktop hanno un interruttore per la connessione automatica:207Anche l'estensione VS Code e l'app Desktop hanno un interruttore per la connessione automatica:


198* **Estensione VS Code**: **Enable Remote Control for all sessions** nella sezione Settings del [menu dei comandi](https://code.claude.com/docs/it/vs-code.md#use-the-prompt-box).209* **Estensione VS Code**: **Enable Remote Control for all sessions** nella sezione Settings del [menu dei comandi](https://code.claude.com/docs/it/vs-code.md#use-the-prompt-box).

199* **App Desktop**: **Connect new sessions to Remote Control** in **Settings > Code** o **Settings > Claude Code**. Consulta [Controllare quali sessioni appaiono sugli altri dispositivi](https://code.claude.com/docs/it/desktop.md#control-which-sessions-appear-on-your-other-devices).210* **App Desktop**: **Connect new sessions to Remote Control** in **Settings > Code** o **Settings > Claude Code**. Consulta [Controllare quali sessioni appaiono sugli altri dispositivi](https://code.claude.com/docs/it/desktop.md#control-which-sessions-appear-on-your-other-devices).

200 211 

201Per attivare la connessione automatica da un file di impostazioni, imposta [`remoteControlAtStartup`](https://code.claude.com/docs/it/settings-reference#remotecontrolatstartup) su `true` nel tuo file `~/.claude/settings.json` utente o nelle [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md). Nelle impostazioni di progetto o locali (`.claude/settings.json`, `.claude/settings.local.json`), Claude Code onora un `false` e disattiva la connessione automatica per quel repository, ma ignora un `true`, quindi un file archiviato non può attivare Remote Control per tutti coloro che aprono il repository.212Per attivare invece la connessione automatica da un file di impostazioni, imposta [`remoteControlAtStartup`](https://code.claude.com/docs/it/settings-reference#remotecontrolatstartup) su `true` nel tuo file `~/.claude/settings.json` utente o nelle [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md). Nelle impostazioni di progetto o locali (`.claude/settings.json`, `.claude/settings.local.json`), Claude Code rispetta un `false` e disattiva la connessione automatica per quel repository. Ignora invece un `true`, quindi non puoi usare un file incluso nel repository per attivare Remote Control per tutti coloro che aprono il repository.

202 213 

203La connessione automatica accede con il tuo account claude.ai, quindi una sessione che avvia appare solo nei tuoi account Claude app e non concede a nessun altro l'accesso.214La connessione automatica accede con il tuo account claude.ai, quindi una sessione che avvia appare solo nei tuoi account Claude app e non concede a nessun altro l'accesso.

204 215 

routines.md +1 −1

Details

528* [`/loop` e pianificazione all'interno della sessione](https://code.claude.com/docs/it/scheduled-tasks): pianifica attività locali all'interno di una sessione CLI aperta528* [`/loop` e pianificazione all'interno della sessione](https://code.claude.com/docs/it/scheduled-tasks): pianifica attività locali all'interno di una sessione CLI aperta

529* [Attività pianificate di Desktop](https://code.claude.com/docs/it/desktop-scheduled-tasks.md): attività pianificate locali che vengono eseguite sulla tua macchina con accesso ai file locali529* [Attività pianificate di Desktop](https://code.claude.com/docs/it/desktop-scheduled-tasks.md): attività pianificate locali che vengono eseguite sulla tua macchina con accesso ai file locali

530* [Ambienti cloud](https://code.claude.com/docs/it/cloud-environments.md): configura l'accesso alla rete, le variabili d'ambiente e gli script di configurazione per le sessioni cloud530* [Ambienti cloud](https://code.claude.com/docs/it/cloud-environments.md): configura l'accesso alla rete, le variabili d'ambiente e gli script di configurazione per le sessioni cloud

531* [Progetti](https://code.claude.com/docs/it/claude-projects.md): lavoro continuativo che Claude coordina tra sessioni cloud parallele; le attività pianificate create da un progetto compaiono nella sua scheda **Scheduled tasks**531* [Progetti](https://code.claude.com/docs/it/claude-projects.md): lavoro continuativo che Claude coordina tra sessioni cloud parallele; le attività pianificate create da un progetto compaiono nella sua vista **Scheduled tasks**

532* [Connettori MCP](https://code.claude.com/docs/it/mcp.md): connetti servizi esterni come Slack, Linear e Google Drive532* [Connettori MCP](https://code.claude.com/docs/it/mcp.md): connetti servizi esterni come Slack, Linear e Google Drive

533* [GitHub Actions](https://code.claude.com/docs/it/github-actions.md): esegui Claude nella tua pipeline CI in risposta agli eventi del repository533* [GitHub Actions](https://code.claude.com/docs/it/github-actions.md): esegui Claude nella tua pipeline CI in risposta agli eventi del repository

sandboxing.md +4 −0

Details

903 903 

904Dopo il fallimento, Claude potrebbe [offrirsi di rieseguire il comando al di fuori della sandbox](#the-unsandboxed-retry-escape-hatch). Approva quel nuovo tentativo, oppure esegui tu stesso il comando git in un altro terminale. Se hai impostato `allowUnsandboxedCommands` su `false`, Claude non può offrire il nuovo tentativo, quindi esegui tu stesso il comando.904Dopo il fallimento, Claude potrebbe [offrirsi di rieseguire il comando al di fuori della sandbox](#the-unsandboxed-retry-escape-hatch). Approva quel nuovo tentativo, oppure esegui tu stesso il comando git in un altro terminale. Se hai impostato `allowUnsandboxedCommands` su `false`, Claude non può offrire il nuovo tentativo, quindi esegui tu stesso il comando.

905 905 

906### Un comando git fallisce con `Unable to create '…/index.lock'`

907 

908Se hai avviato Claude Code in una sottodirectory di un repository, questo errore può indicare che `.git` si trova al di fuori di [ciò in cui i comandi sandboxati possono scrivere](#filesystem-isolation). Avvia invece Claude Code dalla radice del repository, oppure dalla radice del worktree in un [worktree collegato](https://code.claude.com/docs/it/worktrees.md).

909 

906### Una cartella denominata `objects` o `refs` scompare dopo un comando910### Una cartella denominata `objects` o `refs` scompare dopo un comando

907 911 

908Una cartella `objects` o `refs` di primo livello comparsa durante la sessione può essere [eliminata al termine di un comando sandboxato](#when-the-sandbox-deletes-head-objects-or-refs). Non importa se l'abbia creata un comando, Claude o tu. Per mantenere una cartella, lasciaci dentro qualcosa. Se un file o un collegamento simbolico `HEAD` si è trovato al primo livello durante la sessione, spostalo altrove, quindi riavvia ogni sessione di Claude Code aperta nella tua directory di lavoro.912Una cartella `objects` o `refs` di primo livello comparsa durante la sessione può essere [eliminata al termine di un comando sandboxato](#when-the-sandbox-deletes-head-objects-or-refs). Non importa se l'abbia creata un comando, Claude o tu. Per mantenere una cartella, lasciaci dentro qualcosa. Se un file o un collegamento simbolico `HEAD` si è trovato al primo livello durante la sessione, spostalo altrove, quindi riavvia ogni sessione di Claude Code aperta nella tua directory di lavoro.

Details

54}54}

55```55```

56 56 

57Ogni collega, inoltre, [esegue `claude plugin install security-guidance@claude-plugins-official --scope project`](https://code.claude.com/docs/it/plugins/loading#enabled-in-project-settings-but-not-installed) una volta per ogni clone.

58 

57Gli amministratori possono abilitare il plugin a livello organizzativo impostando [`enabledPlugins`](https://code.claude.com/docs/it/settings-reference#enabledplugins) nelle [impostazioni gestite](https://code.claude.com/docs/it/admin-setup.md).59Gli amministratori possono abilitare il plugin a livello organizzativo impostando [`enabledPlugins`](https://code.claude.com/docs/it/settings-reference#enabledplugins) nelle [impostazioni gestite](https://code.claude.com/docs/it/admin-setup.md).

58 60 

59## Cosa controlla il plugin61## Cosa controlla il plugin

Details

235set -u235set -u

236export GIT_ALLOW_PROTOCOL=${GIT_ALLOW_PROTOCOL:-https:http:ssh}236export GIT_ALLOW_PROTOCOL=${GIT_ALLOW_PROTOCOL:-https:http:ssh}

237IFS=':'237IFS=':'

238rc=0 # becomes 1 when a step fails; a non-zero exit makes the runner log it

238# -c overrides beat repo-local settings, blocking session-written fsmonitor,239# -c overrides beat repo-local settings, blocking session-written fsmonitor,

239# hook-path, and gpg-program config from executing code with the hook's240# hook-path, and gpg-program config from executing code with the hook's

240# privileges. -c commit.gpgsign=false also leaves these rescue commits241# privileges. -c commit.gpgsign=false also leaves these rescue commits


245g() { git -c core.fsmonitor=false -c core.hooksPath=/dev/null \246g() { git -c core.fsmonitor=false -c core.hooksPath=/dev/null \

246 -c commit.gpgsign=false "$@"; }247 -c commit.gpgsign=false "$@"; }

247for ws in $CLAUDE_RUNNER_WORKSPACE_PATHS; do248for ws in $CLAUDE_RUNNER_WORKSPACE_PATHS; do

248 cd "$ws" 2>/dev/null || continue249 cd "$ws" || { rc=1; continue; }

249 [ -z "$(g status --porcelain 2>/dev/null)" ] && continue250 g add -A || rc=1

250 g add -A251 g diff-index --cached --quiet HEAD && continue # nothing to save

251 g commit -q -m "runner snapshot: $CLAUDE_RUNNER_SESSION_ID ($CLAUDE_RUNNER_EXIT_REASON)" || continue252 g commit -q -m "runner snapshot: $CLAUDE_RUNNER_SESSION_ID ($CLAUDE_RUNNER_EXIT_REASON)" || { rc=1; continue; }

252 g push -q origin "HEAD:refs/heads/rescue/$CLAUDE_RUNNER_SESSION_ID" || true253 g push -q origin "HEAD:refs/heads/rescue/$CLAUDE_RUNNER_SESSION_ID" || rc=1

253done254done

255exit "$rc"

254```256```

255 257 

256La riga `GIT_ALLOW_PROTOCOL` nello script limita git ai remote HTTPS, HTTP e SSH. Se l'ambiente del runner imposta già un proprio elenco `GIT_ALLOW_PROTOCOL` non vuoto, lo script mantiene quell'elenco.258La riga `GIT_ALLOW_PROTOCOL` nello script limita git ai remote HTTPS, HTTP e SSH. Se l'ambiente del runner imposta già un proprio elenco `GIT_ALLOW_PROTOCOL` non vuoto, lo script mantiene quell'elenco.

Details

23 * **Con [git gestito da Anthropic](#use-the-anthropic-git-proxy)**: con una tale credenziale, Claude raggiunge GitHub direttamente invece che tramite git gestito da Anthropic.23 * **Con [git gestito da Anthropic](#use-the-anthropic-git-proxy)**: con una tale credenziale, Claude raggiunge GitHub direttamente invece che tramite git gestito da Anthropic.

24 * **Senza git gestito da Anthropic**: una credenziale di clone può restare nell'immagine se ne limiti l'ambito in modo rigoroso come descritto in [Includi la configurazione git nella tua immagine](#ship-git-config-in-your-image).24 * **Senza git gestito da Anthropic**: una credenziale di clone può restare nell'immagine se ne limiti l'ambito in modo rigoroso come descritto in [Includi la configurazione git nella tua immagine](#ship-git-config-in-your-image).

25* **Mantieni il segreto dell'ambiente lontano dagli host che eseguono sessioni**: il segreto dell'ambiente può registrare runner e raccogliere qualsiasi sessione in coda sull'ambiente. Su una flotta fissa vive su ogni host runner, dove il codice di qualsiasi sessione può leggere il file segreto. Preferisci [runner on-demand](https://code.claude.com/docs/it/self-hosted-environments-configuration.md#on-demand-runners), dove il segreto rimane sull'host dell'orchestrator, che non esegue mai codice utente, e ogni runner riceve un ordine di lavoro monouso che registra esattamente un runner. Su una flotta fissa, tratta il file environment-secret come leggibile da ogni sessione e ruota il segreto dopo qualsiasi sospetto compromesso della sessione.25* **Mantieni il segreto dell'ambiente lontano dagli host che eseguono sessioni**: il segreto dell'ambiente può registrare runner e raccogliere qualsiasi sessione in coda sull'ambiente. Su una flotta fissa vive su ogni host runner, dove il codice di qualsiasi sessione può leggere il file segreto. Preferisci [runner on-demand](https://code.claude.com/docs/it/self-hosted-environments-configuration.md#on-demand-runners), dove il segreto rimane sull'host dell'orchestrator, che non esegue mai codice utente, e ogni runner riceve un ordine di lavoro monouso che registra esattamente un runner. Su una flotta fissa, tratta il file environment-secret come leggibile da ogni sessione e ruota il segreto dopo qualsiasi sospetto compromesso della sessione.

26 * **Dopo un sospetto compromesso**: chiedi a un [Owner](https://code.claude.com/docs/it/cloud-environments.md#organization-shared-environments) di creare un nuovo segreto e di revocare quello vecchio dalla scheda **Configuration** dell'ambiente, quindi distribuisci quello nuovo. Anthropic rifiuta ogni orchestrator e runner che usa il vecchio segreto, inclusi i runner on-demand avviati dai suoi ordini di lavoro. I tuoi runner terminano, interrompendo le loro sessioni.26 * **Dopo un sospetto compromesso, revoca prima la sessione sospetta**: prima di arrestare il suo runner o di revocare il segreto, seleziona **Revoke token** nel menu della sessione nella scheda **Activity**. A quel punto nessun runner potrà riprenderla.

27 * **Quindi sostituisci il segreto**: chiedi a un [Owner](https://code.claude.com/docs/it/cloud-environments.md#organization-shared-environments) di creare un nuovo segreto e di revocare quello vecchio dalla scheda **Configuration** dell'ambiente, quindi distribuisci quello nuovo. Anthropic rifiuta ogni orchestrator e runner che usa il vecchio segreto, inclusi i runner on-demand avviati dai suoi ordini di lavoro. I tuoi runner terminano, interrompendo le loro sessioni.

27* **Egress di rete default-deny**: limita il traffico in uscita del container runner e sessione al tuo confine di rete su ogni ambiente; [Default-deny egress](#default-deny-egress) copre cosa consentire e perché.28* **Egress di rete default-deny**: limita il traffico in uscita del container runner e sessione al tuo confine di rete su ogni ambiente; [Default-deny egress](#default-deny-egress) copre cosa consentire e perché.

28* **IAM host con privilegi minimi**: l'identità di calcolo allegata all'host runner, come un profilo di istanza o un account di servizio del nodo, dovrebbe concedere solo ciò di cui il runner stesso ha bisogno. Le sessioni dovrebbero ottenere le proprie credenziali attraverso il tuo script wrapper piuttosto che ereditare quelle dell'host.29* **IAM host con privilegi minimi**: l'identità di calcolo allegata all'host runner, come un profilo di istanza o un account di servizio del nodo, dovrebbe concedere solo ciò di cui il runner stesso ha bisogno. Le sessioni dovrebbero ottenere le proprie credenziali attraverso il tuo script wrapper piuttosto che ereditare quelle dell'host.

29* **Blocca l'endpoint dei metadati cloud dalle sessioni**: mantenere le sessioni fuori dall'identità dell'host richiede il blocco del loro accesso all'endpoint dei metadati cloud, e le politiche di egress a livello di subnet non intercettano il traffico dei metadati link-local, quindi bloccalo nel container stesso:30* **Blocca l'endpoint dei metadati cloud dalle sessioni**: mantenere le sessioni fuori dall'identità dell'host richiede il blocco del loro accesso all'endpoint dei metadati cloud, e le politiche di egress a livello di subnet non intercettano il traffico dei metadati link-local, quindi bloccalo nel container stesso:


243 244 

244Per ogni sessione, un runner con Claude Code v2.1.267 o successivo registra anche una riga `[runner:session]` contenente `governed git ACTIVE` quando Anthropic serve il git della sessione, oppure una riga `[runner:warn]` contenente `the server withheld Anthropic-managed git for this session` quando non lo fa. Trova la riga che vedi tra questi casi:245Per ogni sessione, un runner con Claude Code v2.1.267 o successivo registra anche una riga `[runner:session]` contenente `governed git ACTIVE` quando Anthropic serve il git della sessione, oppure una riga `[runner:warn]` contenente `the server withheld Anthropic-managed git for this session` quando non lo fa. Trova la riga che vedi tra questi casi:

245 246 

246* **Né `governed git ACTIVE` né la riga `withheld`**: un runner precedente a Claude Code v2.1.267 non registra nessuna delle due righe, e Anthropic non serve le sue sessioni. Aggiorna il runner a v2.1.267 o successivo seguendo [Fissa la versione](#pin-the-version).247* **Né `governed git ACTIVE` né la riga `withheld`**: se il runner è precedente a Claude Code v2.1.267, Anthropic non serve le sue sessioni. Aggiorna il runner a v2.1.267 o successivo seguendo [Fissa la versione](#pin-the-version).

247* **La riga `withheld`**: Anthropic non ha servito la sessione. Un runner che prima funzionava con il proxy git può fallire in questo modo senza alcuna modifica da parte tua.248* **La riga `withheld`**: Anthropic non ha servito la sessione. Un runner che prima funzionava con il proxy git può fallire in questo modo senza alcuna modifica da parte tua.

248 * **Un repository non è su github.com**: una sessione con anche un solo repository su un altro host git, come GitHub Enterprise Server, non viene servita, compresi i suoi repository su github.com. [Disattiva il proxy git di Anthropic](#turn-the-anthropic-git-proxy-off) per i runner di quell'ambiente.249 * **Un repository non è su github.com**: una sessione con anche un solo repository su un altro host git, come GitHub Enterprise Server, non viene servita, compresi i suoi repository su github.com. [Disattiva il proxy git di Anthropic](#turn-the-anthropic-git-proxy-off) per i runner di quell'ambiente.

249 * **Tutti i repository sono su github.com**: segnala il problema al [tuo team di account Anthropic](#report-an-issue) con l'ID della sessione dalla riga `withheld`. Anthropic registra il motivo dal proprio lato.250 * **Tutti i repository sono su github.com**: segnala il problema al [tuo team di account Anthropic](#report-an-issue) con l'ID della sessione dalla riga `withheld`. Anthropic registra il motivo dal proprio lato.


396Scambia `linux-x64` con `linux-arm64` se i tuoi nodi sono ARM, o con `linux-x64-musl` o `linux-arm64-musl` su un'immagine basata su musl come Alpine; vedi [Configurazione Alpine Linux](https://code.claude.com/docs/it/setup.md#alpine-linux-and-musl-based-distributions) per i pacchetti extra di cui le immagini musl hanno bisogno. L'URL è la posizione di rilascio standard di Claude Code, quindi puoi verificare il binario scaricato rispetto al manifesto firmato del rilascio come descritto in [Integrità binaria e firma del codice](https://code.claude.com/docs/it/setup.md#binary-integrity-and-code-signing). Il runner richiede Claude Code versione 2.1.224 o successiva, oppure 2.1.229 o successiva per servire sessioni Claude Tag. Esegui la build dell'immagine, quindi spingila al tuo registro e fai riferimento ad essa nelle ricette di seguito:397Scambia `linux-x64` con `linux-arm64` se i tuoi nodi sono ARM, o con `linux-x64-musl` o `linux-arm64-musl` su un'immagine basata su musl come Alpine; vedi [Configurazione Alpine Linux](https://code.claude.com/docs/it/setup.md#alpine-linux-and-musl-based-distributions) per i pacchetti extra di cui le immagini musl hanno bisogno. L'URL è la posizione di rilascio standard di Claude Code, quindi puoi verificare il binario scaricato rispetto al manifesto firmato del rilascio come descritto in [Integrità binaria e firma del codice](https://code.claude.com/docs/it/setup.md#binary-integrity-and-code-signing). Il runner richiede Claude Code versione 2.1.224 o successiva, oppure 2.1.229 o successiva per servire sessioni Claude Tag. Esegui la build dell'immagine, quindi spingila al tuo registro e fai riferimento ad essa nelle ricette di seguito:

397 398 

398```bash theme={null}399```bash theme={null}

400# If your model needs a newer release, change stable to latest in the URL

399docker build \401docker build \

400 --build-arg CLAUDE_CODE_VERSION="$(curl -fsSL https://downloads.claude.ai/claude-code-releases/stable)" \402 --build-arg CLAUDE_CODE_VERSION="$(curl -fsSL https://downloads.claude.ai/claude-code-releases/stable)" \

401 -t <your-registry>/claude-runner:latest .403 -t <your-registry>/claude-runner:latest .


429Il runner usa `--capacity` per limitare quante sessioni esegue contemporaneamente. Non divide CPU o memoria tra di loro, quindi le sessioni su un runner condividono la CPU e la memoria del container. Per evitare che l'uso di memoria di una sessione termini le altre, esegui una sessione per runner con [il proprio limite di memoria](#give-each-session-its-own-memory-limit).431Il runner usa `--capacity` per limitare quante sessioni esegue contemporaneamente. Non divide CPU o memoria tra di loro, quindi le sessioni su un runner condividono la CPU e la memoria del container. Per evitare che l'uso di memoria di una sessione termini le altre, esegui una sessione per runner con [il proprio limite di memoria](#give-each-session-its-own-memory-limit).

430 432 

431* **Una sessione per runner**: dai a ogni container i valori di una sessione. Usa questo dimensionamento a `--capacity 1`, che la [sezione hardening](#harden-your-deployment) consiglia, e per [runner on-demand](https://code.claude.com/docs/it/self-hosted-environments-configuration.md#on-demand-runners), dove imposti i valori sul carico di lavoro che il tuo hook [`spawn-runner`](https://code.claude.com/docs/it/self-hosted-environments-configuration#the-spawn-runner-hook) invia, come il modello di pod di un Kubernetes Job.433* **Una sessione per runner**: dai a ogni container i valori di una sessione. Usa questo dimensionamento a `--capacity 1`, che la [sezione hardening](#harden-your-deployment) consiglia, e per [runner on-demand](https://code.claude.com/docs/it/self-hosted-environments-configuration.md#on-demand-runners), dove imposti i valori sul carico di lavoro che il tuo hook [`spawn-runner`](https://code.claude.com/docs/it/self-hosted-environments-configuration#the-spawn-runner-hook) invia, come il modello di pod di un Kubernetes Job.

432* **Diverse sessioni per runner**: a un `--capacity` sopra uno, moltiplica i valori di una sessione per la capacità, perché fino a quel numero di sessioni possono essere eseguite nel container contemporaneamente. Le ricette [Kubernetes](#kubernetes) e [Docker Compose](#docker-compose) eseguono `--capacity 4` senza limiti di CPU o memoria, quindi aggiungi limiti dimensionati per la capacità che esegui.434* **Diverse sessioni per runner**: a un `--capacity` sopra uno, moltiplica i valori di una sessione per la capacità, perché fino a quel numero di sessioni possono essere eseguite nel container contemporaneamente, [comprese quelle inattive](#release-idle-sessions-on-a-fixed-fleet). Le ricette [Kubernetes](#kubernetes) e [Docker Compose](#docker-compose) eseguono `--capacity 4` senza limiti di CPU o memoria, quindi aggiungi limiti dimensionati per la capacità che esegui.

433* **Diversi container runner su un host**: dimensiona l'host per la somma delle capacità dei runner, perché ogni runner conta solo le proprie sessioni rispetto a `--capacity`:435* **Diversi container runner su un host**: dimensiona l'host per la somma delle capacità dei runner, perché ogni runner conta solo le proprie sessioni rispetto a `--capacity`:

434 436 

435 * **Memoria**: moltiplica la memoria di una sessione per la somma, quindi aggiungi ciò che usano i processi propri dell'host437 * **Memoria**: moltiplica la memoria di una sessione per la somma, quindi aggiungi ciò che usano i processi propri dell'host

Details

56| `--session-stop-grace-sec <n>` | `SELF_HOSTED_RUNNER_SESSION_STOP_GRACE_MS` | `5` | Quanto tempo aspettare affinché il processo Claude esca correttamente dopo la fine di una sessione, prima di forzare l'uccisione. Aumenta il valore se gli hook `SessionEnd` del figlio hanno bisogno di più tempo. |56| `--session-stop-grace-sec <n>` | `SELF_HOSTED_RUNNER_SESSION_STOP_GRACE_MS` | `5` | Quanto tempo aspettare affinché il processo Claude esca correttamente dopo la fine di una sessione, prima di forzare l'uccisione. Aumenta il valore se gli hook `SessionEnd` del figlio hanno bisogno di più tempo. |

57| `--startup-timeout-min <n>` | `SELF_HOSTED_RUNNER_STARTUP_TIMEOUT_MS` | `15` | Quanto tempo attendere un processo figlio che non si è inizializzato prima di rilasciare lo slot della sessione. Vedi [Timeout di avvio della sessione](#session-startup-timeout) per sapere da dove parte il conteggio e quali sessioni lascia in esecuzione. `0` disabilita il timeout. |57| `--startup-timeout-min <n>` | `SELF_HOSTED_RUNNER_STARTUP_TIMEOUT_MS` | `15` | Quanto tempo attendere un processo figlio che non si è inizializzato prima di rilasciare lo slot della sessione. Vedi [Timeout di avvio della sessione](#session-startup-timeout) per sapere da dove parte il conteggio e quali sessioni lascia in esecuzione. `0` disabilita il timeout. |

58| `--trust-workspace [bool]` | `SELF_HOSTED_RUNNER_TRUST_WORKSPACE` | on | Semina la fiducia persistente per i percorsi del repository di ogni sessione in modo che `permissions.allow` e `additionalDirectories` impegnati nel repo siano onorati. Imposta `false` per eliminare le concessioni di autorizzazione impegnate nel repo e configurare le regole di autorizzazione nella `settings.json` della configurazione dell'host; le impostazioni `sandbox.*` impegnate nel repository si applicano comunque in entrambi i casi, motivo per cui la [guardia repo-settings](https://code.claude.com/docs/it/self-hosted-environments-deploy.md#harden-your-deployment) le scansiona indipendentemente da questo flag. |58| `--trust-workspace [bool]` | `SELF_HOSTED_RUNNER_TRUST_WORKSPACE` | on | Semina la fiducia persistente per i percorsi del repository di ogni sessione in modo che `permissions.allow` e `additionalDirectories` impegnati nel repo siano onorati. Imposta `false` per eliminare le concessioni di autorizzazione impegnate nel repo e configurare le regole di autorizzazione nella `settings.json` della configurazione dell'host; le impostazioni `sandbox.*` impegnate nel repository si applicano comunque in entrambi i casi, motivo per cui la [guardia repo-settings](https://code.claude.com/docs/it/self-hosted-environments-deploy.md#harden-your-deployment) le scansiona indipendentemente da questo flag. |

59| `--use-anthropic-git-proxy` | `CLAUDE_RUNNER_USE_GIT_PROXY=1` | off | Clona i repository su github.com tramite il [proxy git di Anthropic](https://code.claude.com/docs/it/self-hosted-environments-deploy.md#use-the-anthropic-git-proxy) invece dell'autenticazione git gestita dal cliente. Richiede `--capacity 1` e git 2.32 o più recente; il runner rifiuta di avviarsi altrimenti. Sostituisce i flag di riscrittura. |59| `--use-anthropic-git-proxy` | `CLAUDE_RUNNER_USE_GIT_PROXY=1` | off | Clona i repository su github.com tramite il [proxy git di Anthropic](https://code.claude.com/docs/it/self-hosted-environments-deploy.md#use-the-anthropic-git-proxy) invece dell'autenticazione git gestita dal cliente. Richiede `--capacity 1` e git 2.32 o più recente; il runner rifiuta di avviarsi altrimenti. Richiede inoltre Claude Code v2.1.267 o successivo. Sostituisce i flag di riscrittura. |

60 60 

61La maggior parte dei flag di durata ha un massimo, scelto per mantenere ogni timeout entro il limite del timer a 32 bit del runtime di circa 24,85 giorni. I flag `--*-min` hanno un limite di 10080 minuti, 7 giorni; `--drain-grace-sec` a 604800 secondi, anche 7 giorni; e `--drain-wait-sec` a 86400 secondi, 24 ore. `--session-stop-grace-sec` e `--post-session-hook-timeout-sec` non hanno limiti. Superare un limite si comporta diversamente per superficie:61La maggior parte dei flag di durata ha un massimo, scelto per mantenere ogni timeout entro il limite del timer a 32 bit del runtime di circa 24,85 giorni. I flag `--*-min` hanno un limite di 10080 minuti, 7 giorni; `--drain-grace-sec` a 604800 secondi, anche 7 giorni; e `--drain-wait-sec` a 86400 secondi, 24 ore. `--session-stop-grace-sec` e `--post-session-hook-timeout-sec` non hanno limiti. Superare un limite si comporta diversamente per superficie:

62 62 

Details

12 12 

13In un [ambiente self-hosted](https://code.claude.com/docs/it/self-hosted-environments), le [sessioni cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md) di Claude Code vengono eseguite su un'immagine di runner che costruite e mantenete. Prima di distribuire una nuova immagine al vostro ambiente di produzione, eseguite una sessione completa contro un ambiente di test da uno script: create una sessione, leggete la risposta di Claude, inviate un follow-up e leggete anche quella risposta. Questa è la forma di un test di smoke CI che verifica l'immagine del vostro runner, l'accesso a git e qualsiasi strumento personalizzato prima di promuovere una modifica.13In un [ambiente self-hosted](https://code.claude.com/docs/it/self-hosted-environments), le [sessioni cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md) di Claude Code vengono eseguite su un'immagine di runner che costruite e mantenete. Prima di distribuire una nuova immagine al vostro ambiente di produzione, eseguite una sessione completa contro un ambiente di test da uno script: create una sessione, leggete la risposta di Claude, inviate un follow-up e leggete anche quella risposta. Questa è la forma di un test di smoke CI che verifica l'immagine del vostro runner, l'accesso a git e qualsiasi strumento personalizzato prima di promuovere una modifica.

14 14 

15Questa ricetta presuppone che abbiate già [configurato un ambiente e un runner](https://code.claude.com/docs/it/self-hosted-environments-quickstart.md#set-up-an-environment-and-runner), e che il vostro job CI avvii il processo del runner sullo stesso host dello script di test, la configurazione naturale per testare una nuova immagine di runner. Un hook Stop che installate sul runner scrive la risposta finale di ogni turno in un file locale, e lo script la legge da lì, quindi le uniche chiamate all'API Anthropic sono i due dispatch stessi. Se i vostri runner di test si trovano su infrastrutture separate, vedere [Runner di test remoti](#remote-test-runners).15Questa ricetta presuppone che tu abbia già [configurato un ambiente e un runner](https://code.claude.com/docs/it/self-hosted-environments-quickstart.md#set-up-an-environment-and-runner), e che il tuo job CI avvii il processo del runner sullo stesso host dello script di test. Un hook Stop che installi sul runner scrive la risposta finale di ogni turno in un file locale, e lo script la legge da lì. Se i tuoi runner di test si trovano su infrastrutture separate, consulta [Runner di test remoti](#remote-test-runners).

16 16 

17## Installare l'hook di cattura sul vostro runner di test17## Installare l'hook di cattura sul vostro runner di test

18 18 

Details

62 62 

63Gli hook utilizzano lo stesso formato di `settings.json`.63Gli hook utilizzano lo stesso formato di `settings.json`.

64 64 

65Questo esempio esegue uno script di audit dopo ogni modifica di file in tutta l'organizzazione:65Questo esempio esegue uno script di audit dopo le chiamate agli strumenti `Edit` e `Write` in tutta l'organizzazione:

66 66 

67```json theme={null}67```json theme={null}

68{68{


95 95 

96Per confermare che le impostazioni vengono applicate, chiedere a un utente di riavviare Claude Code. Se la configurazione include impostazioni che attivano la [finestra di dialogo di approvazione della sicurezza](#security-approval-dialogs), l'utente vede un prompt che descrive le impostazioni gestite la prossima volta che Claude Code le recupera: al prossimo avvio, o entro un'ora in una sessione interattiva in esecuzione. È inoltre possibile verificare che le regole di autorizzazione gestite siano attive facendo eseguire a un utente `/permissions` per visualizzare le regole di autorizzazione effettive.96Per confermare che le impostazioni vengono applicate, chiedere a un utente di riavviare Claude Code. Se la configurazione include impostazioni che attivano la [finestra di dialogo di approvazione della sicurezza](#security-approval-dialogs), l'utente vede un prompt che descrive le impostazioni gestite la prossima volta che Claude Code le recupera: al prossimo avvio, o entro un'ora in una sessione interattiva in esecuzione. È inoltre possibile verificare che le regole di autorizzazione gestite siano attive facendo eseguire a un utente `/permissions` per visualizzare le regole di autorizzazione effettive.

97 97 

98In una sessione, fai eseguire all'utente `/status`. La [riga `Setting sources`](https://code.claude.com/docs/it/managed-settings#read-the-source-in-/status) elenca `Enterprise managed settings` con `remote` tra parentesi quando si applicano le impostazioni gestite dal server.

99 

98Per verificare il risultato del recupero su una macchina specifica, fare in modo che l'utente esegua `claude doctor` e legga la riga `Managed settings (remote)`. Richiede Claude Code v2.1.248 o successivo. La riga segnala uno di quattro risultati:100Per verificare il risultato del recupero su una macchina specifica, fare in modo che l'utente esegua `claude doctor` e legga la riga `Managed settings (remote)`. Richiede Claude Code v2.1.248 o successivo. La riga segnala uno di quattro risultati:

99 101 

100* Le impostazioni consegnate sono state caricate102* Le impostazioni consegnate sono state caricate


247* Se il gateway risponde con un `401` a un avvio interattivo presidiato e questa impostazione è disattivata, il gateway ha terminato quell'accesso. Claude Code stampa [`Cloud gateway session expired — run /login to reconnect.`](https://code.claude.com/docs/it/errors#cloud-gateway-session-expired) e apre la sessione disconnessa dal gateway finché l'utente non esegue `/login`.249* Se il gateway risponde con un `401` a un avvio interattivo presidiato e questa impostazione è disattivata, il gateway ha terminato quell'accesso. Claude Code stampa [`Cloud gateway session expired — run /login to reconnect.`](https://code.claude.com/docs/it/errors#cloud-gateway-session-expired) e apre la sessione disconnessa dal gateway finché l'utente non esegue `/login`.

248* Quando il recupero non riesce in qualsiasi altro modo, o in qualsiasi altro tipo di avvio eccetto un sottocomando `claude auth`, il client esce con un errore.250* Quando il recupero non riesce in qualsiasi altro modo, o in qualsiasi altro tipo di avvio eccetto un sottocomando `claude auth`, il client esce con un errore.

249 251 

250Quando questa impostazione è attiva in una sessione che recupera le impostazioni gestite dal server, la CLI si blocca all'avvio finché le impostazioni remote non vengono recuperate di nuovo. Se il recupero non riesce, la CLI esce invece di procedere senza la policy. Questa impostazione si autoperpetua: una volta fornita dal server, viene anche memorizzata nella cache locale in modo che gli avvii successivi impongano lo stesso comportamento anche prima del primo recupero riuscito di una nuova sessione. Una sessione che [non recupera le impostazioni gestite dal server](#platform-availability) si avvia senza attendere.252Quando questa impostazione è attiva in una sessione che recupera le impostazioni gestite dal server, la CLI si blocca all'avvio finché le impostazioni remote non vengono recuperate di nuovo. Se il recupero non riesce, la CLI esce invece di procedere senza la policy. Una sessione che [non recupera le impostazioni gestite dal server](#platform-availability) si avvia senza attendere.

251 253 

252Per abilitarla, aggiungi la chiave alla configurazione delle impostazioni gestite:254Per abilitarla, aggiungi la chiave alla configurazione delle impostazioni gestite:

253 255 


259 261 

260Puoi anche impostare questa chiave in un profilo MDM [gestito dall'endpoint](https://code.claude.com/docs/it/managed-settings.md#delivery-mechanisms) o in un file `managed-settings.json` di sistema per imporre il comportamento fail-closed al primo avvio, prima che arrivi qualsiasi payload del server. Questo flag è un'eccezione alla [regola di precedenza](#settings-precedence) descritta sopra: Claude Code lo rispetta quando una qualsiasi origine gestita controllata dall'amministratore lo imposta, anche se è presente un payload gestito dal server nella cache, quindi non trascura un valore fornito tramite MDM quando esistono impostazioni gestite dal server.262Puoi anche impostare questa chiave in un profilo MDM [gestito dall'endpoint](https://code.claude.com/docs/it/managed-settings.md#delivery-mechanisms) o in un file `managed-settings.json` di sistema per imporre il comportamento fail-closed al primo avvio, prima che arrivi qualsiasi payload del server. Questo flag è un'eccezione alla [regola di precedenza](#settings-precedence) descritta sopra: Claude Code lo rispetta quando una qualsiasi origine gestita controllata dall'amministratore lo imposta, anche se è presente un payload gestito dal server nella cache, quindi non trascura un valore fornito tramite MDM quando esistono impostazioni gestite dal server.

261 263 

264Negli avvii successivi, Claude Code legge un valore fornito dal server dalle impostazioni nella cache, quindi l'impostazione è attiva prima del primo recupero della nuova sessione. Per mantenere l'impostazione attiva senza dipendere dalla copia nella cache, imposta la chiave anche in un'origine gestita dall'endpoint.

265 

262Quando un [`policyHelper`](https://code.claude.com/docs/it/settings-reference#policyhelper) fornisce impostazioni gestite, il suo output sostituisce ogni altra origine gestita per le chiavi che Claude Code legge dopo l'avvio. Per le origini da cui Claude Code legge questa chiave, consulta [la sua voce nelle impostazioni](https://code.claude.com/docs/it/settings-reference.md#forceremotesettingsrefresh). La voce `policyHelper` indica da quali origini Claude Code legge l'helper e quando viene eseguito.266Quando un [`policyHelper`](https://code.claude.com/docs/it/settings-reference#policyhelper) fornisce impostazioni gestite, il suo output sostituisce ogni altra origine gestita per le chiavi che Claude Code legge dopo l'avvio. Per le origini da cui Claude Code legge questa chiave, consulta [la sua voce nelle impostazioni](https://code.claude.com/docs/it/settings-reference.md#forceremotesettingsrefresh). La voce `policyHelper` indica da quali origini Claude Code legge l'helper e quando viene eseguito.

263 267 

264Il recupero delle impostazioni invia anche un'intestazione `Cache-Control: no-cache` in modo che i proxy HTTP intermedi non restituiscano una risposta obsoleta.268Il recupero delle impostazioni invia anche un'intestazione `Cache-Control: no-cache` in modo che i proxy HTTP intermedi non restituiscano una risposta obsoleta.

settings.md +2 −2

Details

66 66 

67### Condividere le impostazioni con il tuo team67### Condividere le impostazioni con il tuo team

68 68 

69Esegui il commit di `.claude/settings.json` in modo che tutti coloro che clonano il repository ricevano gli stessi permessi, hook e plugin. Ogni collega può comunque sovrascriverlo per sé nel proprio `.claude/settings.local.json`, quindi le eccezioni personali non richiedono un commit. Per un file di team completo, consulta [le impostazioni condivise di un team](https://code.claude.com/docs/it/settings-example.md#a-teams-shared-settings).69Esegui il commit di `.claude/settings.json` in modo che tutti coloro che clonano il repository ricevano gli stessi permessi, hook e impostazioni dei plugin. Ogni collega può comunque sovrascriverlo per sé nel proprio `.claude/settings.local.json`, quindi le eccezioni personali non richiedono un commit. Per un file di team completo, consulta [le impostazioni condivise di un team](https://code.claude.com/docs/it/settings-example.md#a-teams-shared-settings).

70 70 

71Parte di ciò di cui esegui il commit resta in attesa finché ogni collega non [considera attendibile la cartella](https://code.claude.com/docs/it/permissions.md#project-allow-rules-and-workspace-trust), e alcune chiavi non hanno mai effetto da un file del repository; [Risolvere i problemi di un'impostazione che non si applica](#common-cases) tratta entrambi i casi.71Parte di ciò di cui esegui il commit resta in attesa finché ogni collega non [considera attendibile la cartella](https://code.claude.com/docs/it/permissions.md#project-allow-rules-and-workspace-trust), e alcune chiavi non hanno mai effetto da un file del repository; [Risolvere i problemi di un'impostazione che non si applica](#common-cases) tratta entrambi i casi.

72 72 


199* **Errore di impostazioni**: un file utente, progetto o locale ha JSON non valido o un valore che lo schema rifiuta. All'inizio di una sessione interattiva Claude Code mostra un dialogo che vi permette di riparare il file con l'aiuto di Claude, uscire, o continuare senza le impostazioni rotte.199* **Errore di impostazioni**: un file utente, progetto o locale ha JSON non valido o un valore che lo schema rifiuta. All'inizio di una sessione interattiva Claude Code mostra un dialogo che vi permette di riparare il file con l'aiuto di Claude, uscire, o continuare senza le impostazioni rotte.

200* **Avviso di impostazioni**: solo le voci individuali falliscono, come una regola di permesso malformata o un nome di evento hook sconosciuto. Claude Code salta quei valori e mantiene il resto del file in vigore.200* **Avviso di impostazioni**: solo le voci individuali falliscono, come una regola di permesso malformata o un nome di evento hook sconosciuto. Claude Code salta quei valori e mantiene il resto del file in vigore.

201* **Impostazioni gestite**: Claude Code continua a applicare il resto del file. [Voci non valide nelle impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md#invalid-entries-in-managed-settings) dice cosa scarta e quali chiavi ricadono a un valore più rigoroso fino a quando non le riparate. Per un documento di impostazioni gestite che non è JSON valido, vedere [Il documento delle impostazioni gestite non potrebbe essere analizzato](https://code.claude.com/docs/it/errors.md#managed-settings-document-could-not-be-parsed).201* **Impostazioni gestite**: Claude Code continua a applicare il resto del file. [Voci non valide nelle impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md#invalid-entries-in-managed-settings) dice cosa scarta e quali chiavi ricadono a un valore più rigoroso fino a quando non le riparate. Per un documento di impostazioni gestite che non è JSON valido, vedere [Il documento delle impostazioni gestite non potrebbe essere analizzato](https://code.claude.com/docs/it/errors.md#managed-settings-document-could-not-be-parsed).

202* **Configuration error**: [`~/.claude.json`](https://code.claude.com/docs/it/claude-directory#ce-claude-json) non può essere analizzato. Un'esecuzione `claude -p` termina e il tuo file resta invariato. Consulta [Configuration error in \~/.claude.json](https://code.claude.com/docs/it/errors.md#configuration-error-in-claude-json) per ripristinare una copia precedente. Claude Code copia il file rotto in `~/.claude/backups/.claude.json.corrupted.<timestamp>` e, in una sessione interattiva, chiede se uscire e ripararlo o ripristinare la configurazione predefinita. Quando il file è vuoto e non c'è alcun backup da ripristinare, Claude Code si avvia con le impostazioni predefinite.202* **Configuration error**: [`~/.claude.json`](https://code.claude.com/docs/it/claude-directory#ce-claude-json) non può essere analizzato. Un'esecuzione `claude -p` termina. Consulta [Configuration error in \~/.claude.json](https://code.claude.com/docs/it/errors.md#configuration-error-in-claude-json) per ripristinare una copia precedente. Claude Code copia il file rotto in `~/.claude/backups/.claude.json.corrupted.<timestamp>` e, in una sessione interattiva, chiede se uscire e ripararlo o ripristinare la configurazione predefinita. Quando il file è vuoto e non c'è alcun backup da ripristinare, Claude Code si avvia con le impostazioni predefinite.

203 203 

204Dopo aver continuato, eseguite `/status` per vedere i file interessati e `claude doctor` per i dettagli di ogni errore.204Dopo aver continuato, eseguite `/status` per vedere i file interessati e `claude doctor` per i dettagli di ogni errore.

205 205 

Details

4829 4829 

4830### `agentPushNotifEnabled`4830### `agentPushNotifEnabled`

4831 4831 

4832Consenti a Claude di inviare una notifica push al tuo telefono quando decide che ne vale la pena, ad esempio quando un'attività lunga si conclude. In una sessione locale, Claude può inviarne una mentre [Remote Control](https://code.claude.com/docs/it/remote-control.md) è connesso. Appare in `/config` come **Push quando Claude decide**. Quando lo modifichi lì, Claude Code salva anche il valore nel tuo account.4832Consenti a Claude di inviare una notifica push al tuo telefono quando decide che ne vale la pena, ad esempio quando un'attività lunga si conclude. In una sessione locale, Claude può inviarne una mentre [Remote Control](https://code.claude.com/docs/it/remote-control.md) è connesso. Appare in `/config` come **Push when Claude decides**. Quando lo modifichi lì, Claude Code salva anche il valore nel tuo account.

4833 4833 

4834* **Scope**: [`Any file`](#scopes). Claude Code legge anche un valore lasciato in `~/.claude.json` da versioni precedenti.4834* **Scope**: [`Any file`](#scopes). Claude Code legge anche un valore lasciato in `~/.claude.json` da versioni precedenti.

4835* **Type**: Boolean4835* **Type**: Boolean


4843}4843}

4844```4844```

4845 4845 

4846Se esegui sessioni sotto un server [`claude remote-control`](https://code.claude.com/docs/it/remote-control#start-a-remote-control-session), queste seguono il valore salvato nel tuo account anziché questa chiave. Per modificare quel valore, esegui `/config` in una sessione di Claude Code nel tuo terminale e attiva o disattiva **Push quando Claude decide**. Se l'interruttore mostra già il valore che desideri, modificalo e poi ripristinalo in modo che Claude Code salvi quel valore nel tuo account.4846Se esegui sessioni sotto un server [`claude remote-control`](https://code.claude.com/docs/it/remote-control#start-a-remote-control-session), queste seguono il valore salvato nel tuo account anziché questa chiave. Per modificare quel valore, esegui `/config` in una sessione di Claude Code nel tuo terminale e attiva o disattiva **Push when Claude decides**. Se l'interruttore mostra già il valore che desideri, modificalo e poi ripristinalo in modo che Claude Code salvi quel valore nel tuo account.

4847 4847 

4848Vedi [Notifiche push mobile](https://code.claude.com/docs/it/remote-control.md#mobile-push-notifications).4848Vedi [Notifiche push mobile](https://code.claude.com/docs/it/remote-control.md#mobile-push-notifications).

4849 4849 


4966 4966 

4967### `inputNeededNotifEnabled`4967### `inputNeededNotifEnabled`

4968 4968 

4969Ricevi una notifica push sul tuo telefono quando una richiesta di permesso o una domanda è in attesa del tuo input. In una sessione locale, Claude Code le invia solo mentre [Remote Control](https://code.claude.com/docs/it/remote-control.md) è connesso. Appare in `/config` come **Push quando azioni richieste**.4969Ricevi una notifica push sul tuo telefono quando una richiesta di permesso o una domanda è in attesa del tuo input. In una sessione locale, Claude Code le invia solo mentre [Remote Control](https://code.claude.com/docs/it/remote-control.md) è connesso. Appare in `/config` come **Push when actions required**.

4970 4970 

4971* **Scope**: [`Any file`](#scopes). Claude Code legge anche un valore lasciato in `~/.claude.json` da versioni precedenti.4971* **Scope**: [`Any file`](#scopes). Claude Code legge anche un valore lasciato in `~/.claude.json` da versioni precedenti.

4972* **Type**: Boolean4972* **Type**: Boolean

skills.md +1 −1

Details

22 22 

23Claude Code include un set di skill raggruppati, come `/doctor`, `/code-review`, `/batch`, `/debug`, `/loop`, e `/claude-api`. Gli skill raggruppati sono basati su prompt: forniscono a Claude istruzioni dettagliate e gli permettono di orchestrare il lavoro utilizzando i suoi strumenti. La maggior parte dei comandi built-in invece eseguono logica fissa direttamente.23Claude Code include un set di skill raggruppati, come `/doctor`, `/code-review`, `/batch`, `/debug`, `/loop`, e `/claude-api`. Gli skill raggruppati sono basati su prompt: forniscono a Claude istruzioni dettagliate e gli permettono di orchestrare il lavoro utilizzando i suoi strumenti. La maggior parte dei comandi built-in invece eseguono logica fissa direttamente.

24 24 

25Invocate uno skill raggruppato nello stesso modo di qualsiasi altro skill, digitando `/` seguito dal nome dello skill. Claude invoca alcuni skill raggruppati automaticamente quando rilevante; altri, incluso `/verify`, vengono eseguiti solo quando li invocate, il che vi mantiene in controllo di quando questi controlli più lunghi spendono tempo e token.25Invochi una skill inclusa digitando `/` seguito dal nome della skill. Claude invoca automaticamente alcune skill incluse quando sono pertinenti; altre, tra cui [`/verify`](#run-and-verify-your-app), vengono eseguite solo quando le invochi tu.

26 26 

27La maggior parte degli skill raggruppati sono disponibili in ogni sessione. Alcuni dipendono da una funzionalità specifica: `/workflow-authoring`, ad esempio, è disponibile solo quando i [dynamic workflows](https://code.claude.com/docs/it/workflows.md) sono abilitati.27La maggior parte degli skill raggruppati sono disponibili in ogni sessione. Alcuni dipendono da una funzionalità specifica: `/workflow-authoring`, ad esempio, è disponibile solo quando i [dynamic workflows](https://code.claude.com/docs/it/workflows.md) sono abilitati.

28 28 

Details

346 346 

347Claude Code conserva il contenuto dietro ogni segnaposto `[Pasted text #N]` in `~/.claude/paste-cache/`, quindi quando richiami un prompt dalla [cronologia dei comandi](https://code.claude.com/docs/it/interactive-mode.md#command-history) e lo invii di nuovo, il contenuto incollato completo viene inviato di nuovo, anche in una sessione successiva.347Claude Code conserva il contenuto dietro ogni segnaposto `[Pasted text #N]` in `~/.claude/paste-cache/`, quindi quando richiami un prompt dalla [cronologia dei comandi](https://code.claude.com/docs/it/interactive-mode.md#command-history) e lo invii di nuovo, il contenuto incollato completo viene inviato di nuovo, anche in una sessione successiva.

348 348 

349I file della cache più vecchi di [`cleanupPeriodDays`](https://code.claude.com/docs/it/settings-reference#cleanupperioddays) vengono eliminati secondo le [regole di pulizia per la conservazione](https://code.claude.com/docs/it/claude-directory.md#cleaned-up-automatically), quindi un prompt richiamato può fare riferimento a testo incollato che non esiste più. Quando invii un prompt di questo tipo, Claude Code non invia mai la stringa letterale `[Pasted text #N]` e mostra una notifica che indica il testo incollato mancante:349I file della cache più vecchi di [`cleanupPeriodDays`](https://code.claude.com/docs/it/settings-reference#cleanupperioddays) vengono eliminati secondo le [regole di pulizia per la conservazione](https://code.claude.com/docs/it/claude-directory.md#cleaned-up-automatically), quindi un prompt richiamato può fare riferimento a testo incollato che non esiste più. Quando invii un prompt di questo tipo, Claude Code non invia la stringa letterale `[Pasted text #N]` e mostra una notifica che indica il testo incollato mancante:

350 350 

351* In un prompt semplice in cui rimane del testo, Claude Code rimuove il segnaposto e invia il testo rimanente.351* In un prompt semplice in cui rimane del testo, Claude Code rimuove il segnaposto e invia il testo rimanente.

352* In un comando in [modalità shell](https://code.claude.com/docs/it/interactive-mode.md#shell-mode-with-prefix) o in un comando `/`, dove la rimozione cambierebbe ciò che viene eseguito, e in qualsiasi prompt che la rimozione lascerebbe vuoto, Claude Code annulla l'invio e mantiene il testo originale nell'input, con il segnaposto ancora presente. Elimina il segnaposto o modifica il comando, poi invia di nuovo.352* In un comando in [modalità shell](https://code.claude.com/docs/it/interactive-mode.md#shell-mode-with-prefix) o in un comando `/`, dove la rimozione cambierebbe ciò che viene eseguito, e in qualsiasi prompt che la rimozione lascerebbe vuoto, Claude Code annulla l'invio e mantiene il testo originale nell'input, con il segnaposto ancora presente. Elimina il segnaposto o modifica il comando, poi invia di nuovo.

Details

29| `EACCES: permission denied` durante l'installazione | [Correggi i permessi della directory di installazione](#permission-errors-during-installation) |29| `EACCES: permission denied` durante l'installazione | [Correggi i permessi della directory di installazione](#permission-errors-during-installation) |

30| `TLS connect error` o `SSL/TLS secure channel` | [Aggiorna i certificati CA](#tls-or-ssl-connection-errors) |30| `TLS connect error` o `SSL/TLS secure channel` | [Aggiorna i certificati CA](#tls-or-ssl-connection-errors) |

31| `CRYPT_E_NO_REVOCATION_CHECK` o `CRYPT_E_REVOCATION_OFFLINE` | [Aggira i controlli di revoca bloccati](#tls-or-ssl-connection-errors) |31| `CRYPT_E_NO_REVOCATION_CHECK` o `CRYPT_E_REVOCATION_OFFLINE` | [Aggira i controlli di revoca bloccati](#tls-or-ssl-connection-errors) |

32| `Failed to fetch version` o impossibile raggiungere il server di download | [Controlla le impostazioni di rete e proxy](#check-network-connectivity) |32| `Failed to fetch version` o impossibile raggiungere il server di download | [Controlla le impostazioni di rete e proxy](#check-network-connectivity) oppure, in caso di errore di certificato, [configura i certificati CA aziendali](#tls-or-ssl-connection-errors) |

33| `The connection dropped while downloading the update` o `Download timed out: exceeded the total deadline` | [Esegui di nuovo l'aggiornamento o imposta il tuo proxy](#the-connection-dropped-while-downloading-the-update) |33| `The connection dropped while downloading the update` o `Download timed out: exceeded the total deadline` | [Esegui di nuovo l'aggiornamento o imposta il tuo proxy](#the-connection-dropped-while-downloading-the-update) |

34| `Release verification failed for Claude Code` | [Esegui di nuovo `claude update` o `claude install`](#release-verification-failed) |34| `Release verification failed for Claude Code` | [Esegui di nuovo `claude update` o `claude install`](#release-verification-failed) |

35| `Auto-update failed · Run claude doctor` in rosso nel piè di pagina della sessione | [Esegui `claude update` dalla tua shell](#auto-update-failed) |35| `Auto-update failed · Run claude doctor` in rosso nel piè di pagina della sessione | [Esegui `claude update` dalla tua shell](#auto-update-failed) |


94* `403`: solitamente un proxy o un filtro di rete che blocca l'host, o Claude Code non è [disponibile nella tua regione](https://www.anthropic.com/supported-countries)94* `403`: solitamente un proxy o un filtro di rete che blocca l'host, o Claude Code non è [disponibile nella tua regione](https://www.anthropic.com/supported-countries)

95* `5xx`: solitamente un problema temporaneo del servizio; attendi alcuni minuti e riprova95* `5xx`: solitamente un problema temporaneo del servizio; attendi alcuni minuti e riprova

96 96 

97Se non vedi output, `Could not resolve host`, o un timeout di connessione, la tua rete sta bloccando la connessione. Le cause comuni sono:97Se non vedi output, oppure il programma di installazione mostra `Could not resolve host` o un timeout di connessione, la connessione non è riuscita, quindi controlla queste cause:

98 98 

99* Firewall aziendali o proxy che bloccano `downloads.claude.ai`99* Firewall aziendali o proxy che bloccano `downloads.claude.ai`

100* Restrizioni di rete regionali: prova una VPN o una rete alternativa100* Restrizioni di rete regionali: prova una VPN o una rete alternativa

101* Problemi TLS/SSL: aggiorna i certificati CA del tuo sistema, o controlla se `HTTPS_PROXY` è configurato101* Problemi TLS/SSL: vedi [Errori di connessione TLS o SSL](#tls-or-ssl-connection-errors)

102 102 

103Se sei dietro un proxy aziendale, imposta `HTTPS_PROXY` e `HTTP_PROXY` all'indirizzo del tuo proxy prima di installare. Chiedi al tuo team IT l'URL del proxy se non lo conosci, o controlla le impostazioni del proxy del tuo browser.103Se sei dietro un proxy aziendale, imposta `HTTPS_PROXY` e `HTTP_PROXY` all'indirizzo del tuo proxy prima di installare. Chiedi al tuo team IT l'URL del proxy se non lo conosci, o controlla le impostazioni del proxy del tuo browser.

104 104 


566 irm https://claude.ai/install.ps1 | iex566 irm https://claude.ai/install.ps1 | iex

567 ```567 ```

568 568 

5693. **Verifica l'interferenza di proxy o firewall**: i proxy aziendali che eseguono l'ispezione TLS possono causare questi errori, inclusi `unable to get local issuer certificate` e `SELF_SIGNED_CERT_IN_CHAIN`. Per il passaggio di installazione, fai in modo che il download di installazione si fidi della CA del proxy aziendale:5693. **Verifica l'interferenza di proxy o firewall**: i proxy aziendali che eseguono l'ispezione TLS possono causare questi errori, inclusi `unable to get local issuer certificate`, `unable to verify the first certificate` e `SELF_SIGNED_CERT_IN_CHAIN`. Fai in modo che il download di installazione si fidi della CA del proxy aziendale:

570 570 

571 > [tab] macOS/Linux571 > [tab] macOS/Linux

572 >572 >

573 > Imposta `CURL_CA_BUNDLE` per i download `curl` dello script di installazione, e [`NODE_EXTRA_CA_CERTS`](https://code.claude.com/docs/it/network-config#custom-ca-certificates) per il comando `claude install` che lo script esegue successivamente. Se non ce l'hai, chiedi al tuo team IT un file PEM con il certificato CA root del proxy. Questo esempio imposta entrambe le variabili sul file CA del proxy ed esegue lo script nello stesso terminale:

574 >

573 > ```bash theme={null}575 > ```bash theme={null}

574 > curl --cacert /path/to/corporate-ca.pem -fsSL https://claude.ai/install.sh | bash576 > export CURL_CA_BUNDLE=/path/to/corporate-ca.pem

577 > export NODE_EXTRA_CA_CERTS=/path/to/corporate-ca.pem

578 > curl -fsSL https://claude.ai/install.sh | bash

575 > ```579 > ```

580 >

581 > Se l'installazione fallisce ancora con uno di quegli errori di certificato, chiedi al tuo team IT un file che contenga sia i certificati root pubblici sia l'intera catena CA del proxy. Quindi imposta entrambe le variabili su quel file.

576 582 

577 > [tab] Windows PowerShell583 > [tab] Windows PowerShell

578 >584 >


596 > $env:NODE_EXTRA_CA_CERTS = 'C:\path\to\corporate-ca.pem'602 > $env:NODE_EXTRA_CA_CERTS = 'C:\path\to\corporate-ca.pem'

597 > ```603 > ```

598 604 

599 Chiedi al tuo team IT il file del certificato se non ce l'hai. Puoi anche provare su una connessione diretta per confermare che la causa è il proxy.

600 

6014. **Su Windows, aggira i controlli di revoca bloccati**. Gli errori `CRYPT_E_NO_REVOCATION_CHECK (0x80092012)` e `CRYPT_E_REVOCATION_OFFLINE (0x80092013)` significano che curl ha raggiunto il server ma la tua rete blocca la verifica di revoca del certificato, cosa comune dietro i firewall aziendali. Se il comando che fallisce è il `curl` che scarica `install.cmd`, rieseguilo da un Command Prompt aggiungendo `--ssl-revoke-best-effort`:6054. **Su Windows, aggira i controlli di revoca bloccati**. Gli errori `CRYPT_E_NO_REVOCATION_CHECK (0x80092012)` e `CRYPT_E_REVOCATION_OFFLINE (0x80092013)` significano che curl ha raggiunto il server ma la tua rete blocca la verifica di revoca del certificato, cosa comune dietro i firewall aziendali. Se il comando che fallisce è il `curl` che scarica `install.cmd`, rieseguilo da un Command Prompt aggiungendo `--ssl-revoke-best-effort`:

602 ```batch theme={null}606 ```batch theme={null}

603 curl --ssl-revoke-best-effort -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd607 curl --ssl-revoke-best-effort -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd


610 614 

611### `Failed to fetch version from downloads.claude.ai`615### `Failed to fetch version from downloads.claude.ai`

612 616 

613Il programma di installazione non è riuscito a raggiungere il server di download. Questo tipicamente significa che `downloads.claude.ai` è bloccato sulla tua rete. Consulta [Verificare la connettività di rete](#check-network-connectivity).617La parte finale del messaggio indica il motivo. Se si tratta di un errore di certificato come `unable to verify the first certificate`, consulta [Errori di connessione TLS o SSL](#tls-or-ssl-connection-errors). Per qualsiasi altro motivo, consulta [Verificare la connettività di rete](#check-network-connectivity).

614 618 

615### The connection dropped while downloading the update619### The connection dropped while downloading the update

616 620 

workflows.md +10 −4

Details

375 375 

376 Prima della v2.1.305, gli agenti completati potevano essere eseguiti di nuovo anche quando riavviavi uno script non modificato i cui elementi `pipeline()` o attività `parallel()` eseguivano più di un agente ciascuno. Per evitare queste riesecuzioni nelle nuove esecuzioni, aggiorna Claude Code.376 Prima della v2.1.305, gli agenti completati potevano essere eseguiti di nuovo anche quando riavviavi uno script non modificato i cui elementi `pipeline()` o attività `parallel()` eseguivano più di un agente ciascuno. Per evitare queste riesecuzioni nelle nuove esecuzioni, aggiorna Claude Code.

377* **Ancora in esecuzione quando hai interrotto**: ricomincia. Interrompere l'intera esecuzione non conta alcun agente come non riuscito.377* **Ancora in esecuzione quando hai interrotto**: ricomincia. Interrompere l'intera esecuzione non conta alcun agente come non riuscito.

378* **[Non riuscito al raggiungimento di un limite di utilizzo](#when-a-run-hits-your-usage-limit) nella v2.1.318 o successiva**: viene eseguito di nuovo, e gli agenti completati restituiscono i loro risultati salvati. Se il tuo script ha chiamato un altro agente dopo l'errore e quell'agente ha restituito un risultato, viene eseguito di nuovo anche ogni agente che lo script avvia dopo quello non riuscito.

378* **Non riuscito**: viene eseguito di nuovo, così come ogni agente che è stato avviato dopo di esso, anche quelli che erano completati. Interrompere un solo agente, selezionandolo in [`/workflows`](#watch-the-run) e premendo `x`, conta come non riuscito.379* **Non riuscito**: viene eseguito di nuovo, così come ogni agente che è stato avviato dopo di esso, anche quelli che erano completati. Interrompere un solo agente, selezionandolo in [`/workflows`](#watch-the-run) e premendo `x`, conta come non riuscito.

379 380 

380Quest'ultimo caso significa che un errore nel mezzo di un fan-out riesegue il lavoro che era già terminato. Se uno script avvia A, B, C e D in quell'ordine e B non riesce, il riavvio restituisce A dalla cache ed esegue di nuovo B, C e D.381Quest'ultimo caso significa che un agente **Non riuscito** nel mezzo di un fan-out riesegue il lavoro che era già terminato. Se uno script avvia A, B, C e D in quell'ordine e B è **Non riuscito**, il riavvio restituisce A dalla cache ed esegue di nuovo B, C e D.

381 382 

382Se modifichi uno script che avviava A, B, C e D in modo che avvii A, C, B e D, il secondo agente ad avviarsi è ora C, mentre l'esecuzione precedente avviava B. Il riavvio restituisce A dalla cache ed esegue di nuovo C, B e D.383Se modifichi uno script che avviava A, B, C e D in modo che avvii A, C, B e D, il secondo agente ad avviarsi è ora C, mentre l'esecuzione precedente avviava B. Il riavvio restituisce A dalla cache ed esegue di nuovo C, B e D.

383 384 


395 396 

396### Quando un'esecuzione raggiunge il tuo limite di utilizzo397### Quando un'esecuzione raggiunge il tuo limite di utilizzo

397 398 

398Quando un agente raggiunge il tuo limite di utilizzo su claude.ai [usage limit](https://code.claude.com/docs/it/interactive-mode.md#wait-for-a-usage-limit-to-reset), l'esecuzione si mette in pausa piuttosto che far fallire quell'agente: gli agenti che hanno raggiunto il limite aspettano il ripristino, e nessun nuovo agente si avvia. Poco dopo che il limite si ripristina, gli agenti in attesa vengono eseguiti di nuovo e l'esecuzione continua da sola. Richiede Claude Code v2.1.271 o successivo; nelle versioni precedenti, gli agenti interessati falliscono.399Quando un agente raggiunge il tuo [limite di utilizzo](https://code.claude.com/docs/it/interactive-mode.md#wait-for-a-usage-limit-to-reset) di claude.ai, l'esecuzione si mette in pausa invece di far fallire quell'agente. Gli agenti che hanno raggiunto il limite aspettano il ripristino, e nessun nuovo agente si avvia. Poco dopo che il limite si ripristina, gli agenti in attesa vengono eseguiti di nuovo e l'esecuzione continua da sola. Richiede Claude Code v2.1.271 o successivo, oppure [v2.1.319 o successivo](https://code.claude.com/docs/it/desktop.md#claude-code-version-in-the-code-tab) nella [scheda Code](https://code.claude.com/docs/it/desktop.md) di Desktop. Nelle versioni precedenti, gli agenti interessati falliscono.

399 400 

400Mentre l'esecuzione aspetta, la sua linea di progresso nel pannello attività e l'intestazione [`/workflows`](#watch-the-run) mostrano quando il limite si ripristina.401Mentre l'esecuzione aspetta, la sua linea di progresso nel pannello attività e l'intestazione [`/workflows`](#watch-the-run) mostrano quando il limite si ripristina. Nella scheda Code, l'esecuzione mostra una riga come `Paused at usage limit · continues after 3:45 PM if the app stays open`. Tieni l'app aperta.

401 402 

402L'esecuzione si mette in pausa solo quando tutti questi elementi sono veri; quando uno non lo è, l'agente interessato fallisce invece:403L'esecuzione si mette in pausa solo quando tutti questi elementi sono veri; quando uno non lo è, l'agente interessato fallisce invece:

403 404 

404* La sessione è interattiva e accedi con un abbonamento claude.ai. Un'esecuzione non si mette in pausa nella [modalità non interattiva](https://code.claude.com/docs/it/headless.md) con `claude -p` o nell'[Agent SDK](https://code.claude.com/docs/it/agent-sdk/overview.md), in una [sessione in background](https://code.claude.com/docs/it/agent-view.md), o in una sessione di compagno [Remote Control](https://code.claude.com/docs/it/remote-control.md) o [agent team](https://code.claude.com/docs/it/agent-teams.md).405* La sessione ha effettuato l'accesso con un abbonamento claude.ai senza [fatturazione basata sull'utilizzo](https://code.claude.com/docs/it/interactive-mode.md#start-a-wait-yourself), ed è uno di questi tipi di sessione:

406 * Una sessione interattiva nel terminale. Un'esecuzione non si mette in pausa nella [modalità non interattiva](https://code.claude.com/docs/it/headless.md) con `claude -p` o nell'[Agent SDK](https://code.claude.com/docs/it/agent-sdk/overview.md), in una [sessione in background](https://code.claude.com/docs/it/agent-view.md), o in una sessione [Remote Control](https://code.claude.com/docs/it/remote-control.md) o di un membro di un [team di agenti](https://code.claude.com/docs/it/agent-teams.md).

407 * Una sessione locale che hai avviato nella scheda Code. Un'esecuzione non si mette in pausa in una sessione SSH, WSL, [Dispatch](https://code.claude.com/docs/it/desktop.md#sessions-from-dispatch) o di [attività pianificata](https://code.claude.com/docs/it/desktop-scheduled-tasks.md), in una sessione avviata da Remote Control o tramite un [launcher aziendale](https://code.claude.com/docs/it/corporate-launcher.md), o mentre è impostata [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](https://code.claude.com/docs/it/env-vars#variables).

405* [`autoContinueAtUsageLimit`](https://code.claude.com/docs/it/settings-reference#autocontinueatusagelimit) è attivo, la stessa impostazione che consente alla sessione stessa di [aspettare il ripristino di un limite di utilizzo](https://code.claude.com/docs/it/interactive-mode.md#wait-for-a-usage-limit-to-reset). Se lo disattivi durante un'attesa, l'attesa termina e gli agenti in attesa falliscono.408* [`autoContinueAtUsageLimit`](https://code.claude.com/docs/it/settings-reference#autocontinueatusagelimit) è attivo, la stessa impostazione che consente alla sessione stessa di [aspettare il ripristino di un limite di utilizzo](https://code.claude.com/docs/it/interactive-mode.md#wait-for-a-usage-limit-to-reset). Se lo disattivi durante un'attesa, l'attesa termina e gli agenti in attesa falliscono.

409* Nella scheda Code, la casella di controllo **Auto-continue when limits reset** su una [scheda del limite di sessione](https://code.claude.com/docs/it/errors.md#youve-hit-your-session-limit) è selezionata, come avviene per impostazione predefinita. Se la deselezioni, le esecuzioni nelle tue sessioni della scheda Code smettono di mettersi in pausa, a meno che le impostazioni gestite non impostino `autoContinueAtUsageLimit` su `true`.

406* Il limite si ripristina entro 24 ore. Un limite settimanale può ripristinarsi più avanti.410* Il limite si ripristina entro 24 ore. Un limite settimanale può ripristinarsi più avanti.

407* L'esecuzione non ha già aspettato due volte. Quando raggiunge il limite una terza volta, l'agente fallisce.411* L'esecuzione non ha già aspettato due volte. Quando raggiunge il limite una terza volta, l'agente fallisce.

408 412 

413Per completare un'esecuzione i cui agenti sono falliti al raggiungimento del limite, chiedi a Claude di [riavviare il workflow](#which-agents-run-again) dopo il ripristino del limite.

414 

409### Quando un agente si blocca e si riavvia415### Quando un agente si blocca e si riavvia

410 416 

411Un agente il cui output smette di arrivare per un tempo sufficientemente lungo ricomincia dallo stesso prompt. In [`/workflows`](#watch-the-run), al suo nome viene aggiunto il suffisso `(retry 1)` e il suo dettaglio mostra `attempt 2 (stalled)`. Il riavvio è automatico, quindi non devi fare nulla.417Un agente il cui output smette di arrivare per un tempo sufficientemente lungo ricomincia dallo stesso prompt. In [`/workflows`](#watch-the-run), al suo nome viene aggiunto il suffisso `(retry 1)` e il suo dettaglio mostra `attempt 2 (stalled)`. Il riavvio è automatico, quindi non devi fare nulla.

worktrees.md +1 −1

Details

253 253 

254Un worktree ottiene i suoi propri file e branch, ma condivide quanto segue con il checkout principale:254Un worktree ottiene i suoi propri file e branch, ma condivide quanto segue con il checkout principale:

255 255 

256* **La directory `.git` del repository**: i comandi git in un worktree scrivono nella directory `.git` condivisa del repository principale, e il [sandboxing](https://code.claude.com/docs/it/sandboxing.md#filesystem-isolation) consente quelle scritture, quindi comandi come `git commit` funzionano da dentro un worktree con la sandbox abilitata.256* **La directory `.git` del repository**: i comandi git in un worktree scrivono nella directory `.git` condivisa del repository principale. Con la [sandbox](https://code.claude.com/docs/it/sandboxing.md#filesystem-isolation) abilitata, comandi come `git commit` funzionano in una sessione alla radice del worktree, che è dove `--worktree` ne avvia una. Per impostazione predefinita, [non riescono con un errore `index.lock` se esegui `claude` in una sottodirectory del worktree](https://code.claude.com/docs/it/sandboxing#git-index-lock).

257* **Plugin**: i plugin installati a [ambito del progetto](https://code.claude.com/docs/it/plugins/loading.md#find-where-a-plugin-is-enabled) dal checkout principale caricano anche nei worktree dello stesso repository, quindi non è necessario reinstallarli per ogni worktree.257* **Plugin**: i plugin installati a [ambito del progetto](https://code.claude.com/docs/it/plugins/loading.md#find-where-a-plugin-is-enabled) dal checkout principale caricano anche nei worktree dello stesso repository, quindi non è necessario reinstallarli per ogni worktree.

258* **Approvazioni di permesso**: scegliere "Sì, e non chiedere di nuovo" per un comando Bash in una sessione di worktree salva la regola nel `.claude/settings.local.json` del checkout principale. La regola si applica nel checkout principale e in ogni altro worktree del repository, e sopravvive alla rimozione del worktree.258* **Approvazioni di permesso**: scegliere "Sì, e non chiedere di nuovo" per un comando Bash in una sessione di worktree salva la regola nel `.claude/settings.local.json` del checkout principale. La regola si applica nel checkout principale e in ogni altro worktree del repository, e sopravvive alla rimozione del worktree.

259 259 

Details

41 41 

42### Cosa non copre ZDR42### Cosa non copre ZDR

43 43 

44ZDR non si estende ai seguenti elementi, anche per le organizzazioni con ZDR abilitato. Queste funzionalità seguono le [politiche standard di data retention](https://code.claude.com/docs/it/data-usage.md#data-retention):44ZDR non si estende ai seguenti elementi, anche per le organizzazioni con ZDR abilitato. Salvo dove una riga indichi diversamente, queste funzionalità seguono le [politiche standard di data retention](https://code.claude.com/docs/it/data-usage.md#data-retention):

45 45 

46| Funzionalità | Dettagli |46| Funzionalità | Dettagli |

47| - | - |47| - | - |

48| Chat su claude.ai | Le conversazioni di chat tramite l'interfaccia web Claude for Enterprise non sono coperte da ZDR. |48| Chat su claude.ai | Le conversazioni di chat tramite l'interfaccia web Claude for Enterprise non sono coperte da ZDR. |

49| Cowork | Le sessioni Cowork non sono coperte da ZDR. |49| Cowork | Le sessioni Cowork non sono coperte da ZDR. |

50| Artefatti | Gli artefatti nelle conversazioni di chat e nelle sessioni Cowork non sono coperti da ZDR e vengono conservati fino alla loro eliminazione, a meno che la tua organizzazione non imposti un periodo di conservazione per essi. Gli artefatti non sono disponibili in Claude Code con ZDR. |

50| Claude Code Analytics | Non archivia prompt o risposte del modello, ma raccoglie metadati di produttività come email dell'account e statistiche di utilizzo. Le metriche di contributo non sono disponibili per le organizzazioni ZDR; il [dashboard analytics](https://code.claude.com/docs/it/analytics.md) mostra solo metriche di utilizzo. |51| Claude Code Analytics | Non archivia prompt o risposte del modello, ma raccoglie metadati di produttività come email dell'account e statistiche di utilizzo. Le metriche di contributo non sono disponibili per le organizzazioni ZDR; il [dashboard analytics](https://code.claude.com/docs/it/analytics.md) mostra solo metriche di utilizzo. |

51| Gestione utenti e posti | I dati amministrativi come email dell'account e assegnazioni di posti vengono conservati secondo le politiche standard. |52| Gestione utenti e posti | I dati amministrativi come email dell'account e assegnazioni di posti vengono conservati secondo le politiche standard. |

52| Integrazioni di terze parti | I dati elaborati da strumenti di terze parti, MCP servers o altre integrazioni esterne non sono coperti da ZDR. Esaminare indipendentemente le pratiche di gestione dei dati di questi servizi. |53| Integrazioni di terze parti | I dati elaborati da strumenti di terze parti, MCP servers o altre integrazioni esterne non sono coperti da ZDR. Esaminare indipendentemente le pratiche di gestione dei dati di questi servizi. |


60| [Cloud sessions](https://code.claude.com/docs/it/claude-code-on-the-web.md), incluse quelle avviate dall'[app Desktop](https://code.claude.com/docs/it/desktop.md#cloud-sessions) | Richiede l'archiviazione lato server dei dati di sessione, inclusa la cronologia delle conversazioni con prompt e completamenti. |61| [Cloud sessions](https://code.claude.com/docs/it/claude-code-on-the-web.md), incluse quelle avviate dall'[app Desktop](https://code.claude.com/docs/it/desktop.md#cloud-sessions) | Richiede l'archiviazione lato server dei dati di sessione, inclusa la cronologia delle conversazioni con prompt e completamenti. |

61| [Chat e Cowork unificati](https://support.claude.com/en/articles/17444462-set-up-and-manage-the-new-unified-claude-experience-for-your-enterprise-organization) | Richiede le sessioni cloud. |62| [Chat e Cowork unificati](https://support.claude.com/en/articles/17444462-set-up-and-manage-the-new-unified-claude-experience-for-your-enterprise-organization) | Richiede le sessioni cloud. |

62| [Claude Tag](https://claude.com/docs/claude-tag) | Conserva la memoria del canale e le trascrizioni della sessione. |63| [Claude Tag](https://claude.com/docs/claude-tag) | Conserva la memoria del canale e le trascrizioni della sessione. |

63| [Artifacts](https://code.claude.com/docs/it/artifacts.md) | Richiede l'archiviazione del contenuto della pagina pubblicata sull'infrastruttura gestita da Anthropic. |64| [Artifacts](https://code.claude.com/docs/it/artifacts.md) in Claude Code | Richiede l'archiviazione del contenuto della pagina pubblicata sull'infrastruttura gestita da Anthropic. |

65| [Claude Docs](https://support.claude.com/en/articles/16923645-get-started-with-claude-docs) | Richiede l'archiviazione del contenuto dei documenti sull'infrastruttura gestita da Anthropic. |

64| Invio di feedback (`/feedback`, `/bug`, `/share`) | L'invio di feedback invia i dati della conversazione ad Anthropic. |66| Invio di feedback (`/feedback`, `/bug`, `/share`) | L'invio di feedback invia i dati della conversazione ad Anthropic. |

65| [Remote Control](https://code.claude.com/docs/it/remote-control.md) | Archivia la trascrizione della sessione sui server Anthropic per sincronizzare la conversazione tra i dispositivi. |67| [Remote Control](https://code.claude.com/docs/it/remote-control.md) | Archivia la trascrizione della sessione sui server Anthropic per sincronizzare la conversazione tra i dispositivi. |

66 68