SpyBara
Go Premium

Documentation 2026-10-14 22:58 UTC to 2026-10-15 23:58 UTC

49 files changed +1,759 −539. View all changes and history on the product overview
2026
Fri 30 23:01 Thu 29 23:57 Wed 28 23:57 Tue 27 22:59 Mon 26 22:57 Sun 25 23:58 Sat 24 22:59 Fri 23 22:59 Thu 22 22:58 Wed 21 23:02 Tue 20 23:00 Mon 19 23:58 Sat 17 23:57 Fri 16 22:59 Thu 15 23:58 Wed 14 22:58 Tue 13 23:57 Sun 11 23:57 Sat 10 23:01 Fri 9 23:02 Thu 8 22:58 Wed 7 23:59 Tue 6 23:59 Mon 5 23:58 Sun 4 23:58 Sat 3 23:57 Fri 2 22:59 Thu 1 23:59
Details

636| Limitation | Description |636| Limitation | Description |

637| - | - |637| - | - |

638| Solo strumenti Write/Edit/NotebookEdit | Le modifiche effettuate tramite comandi Bash non vengono tracciate |638| Solo strumenti Write/Edit/NotebookEdit | Le modifiche effettuate tramite comandi Bash non vengono tracciate |

639| Modifiche dei subagent | Le modifiche che un [subagent](/docs/it/agent-sdk/subagents) applica non vengono tracciate o ripristinate, ad eccezione di una skill con `context: fork` in esecuzione in primo piano; utilizzare git per ripristinare le modifiche non tracciate |639| Modifiche dei subagent | Le modifiche che un [subagent](/docs/it/agent-sdk/subagents) applica non vengono tracciate, ad eccezione di una skill con `context: fork` in esecuzione in primo piano. Un ripristino le annulla solo nei file che la conversazione principale aveva già modificato; usa git per ripristinare il resto |

640| Stessa sessione | I checkpoint sono legati alla sessione che li ha creati |640| Stessa sessione | I checkpoint sono legati alla sessione che li ha creati |

641| Solo contenuto del file | La creazione, lo spostamento o l'eliminazione di directory non vengono annullati dal ripristino |641| Solo contenuto del file | La creazione, lo spostamento o l'eliminazione di directory non vengono annullati dal ripristino |

642| File locali | I file remoti o di rete non vengono tracciati |642| File locali | I file remoti o di rete non vengono tracciati |

Details

235 Rete235 Rete

236</h3>236</h3>

237 237 

238L'SDK necessita di HTTPS in uscita verso `api.anthropic.com`, o verso l'endpoint regionale del tuo provider quando eseguito su Amazon Bedrock o sulla piattaforma agente di Google Cloud. Se i tuoi agenti utilizzano [MCP servers](/docs/it/agent-sdk/mcp) o strumenti esterni, necessitano anche di accesso in uscita a quegli endpoint. Per la produzione, instrada il traffico in uscita attraverso un proxy di egress che applica allowlist di domini, inietta credenziali e registra le richieste. Vedi [Secure Deployment](/docs/it/agent-sdk/secure-deployment) per il modello completo.238L'SDK necessita di HTTPS in uscita verso `api.anthropic.com`, o verso l'endpoint regionale del tuo provider quando eseguito su Amazon Bedrock o sulla piattaforma agente di Google Cloud. Se i tuoi agenti utilizzano [MCP servers](/docs/it/agent-sdk/mcp) o strumenti esterni, necessitano anche di accesso in uscita a quegli endpoint. Per la produzione, instrada il traffico in uscita attraverso un proxy di egress che applica allowlist di domini, inietta credenziali e registra le richieste. Vedi [Distribuzione sicura](/docs/it/agent-sdk/secure-deployment) per il modello completo.

239 239 

240Per il traffico in ingresso, esponi una porta HTTP o WebSocket sul container. La tua applicazione gestisce le richieste dei client su quella porta e chiama l'SDK internamente; il sottoprocesso stesso non ascolta sulla rete.240Per il traffico in ingresso, esponi una porta HTTP o WebSocket sul container. La tua applicazione gestisce le richieste dei client su quella porta e chiama l'SDK internamente; il sottoprocesso stesso non ascolta sulla rete.

241 241 


249 Persistenza della sessione e dello stato249 Persistenza della sessione e dello stato

250</h3>250</h3>

251 251 

252Il disco locale predefinito viene perso al riavvio, al ridimensionamento o al trasferimento a un nodo diverso. Per qualsiasi sessione che un utente si aspetta di riprendere, eseguire il mirroring della trascrizione su un archivio durevole con un adattatore [`SessionStore`](/docs/it/agent-sdk/session-storage). Vedere [Reference implementations](/docs/it/agent-sdk/session-storage#reference-implementations) per gli adattatori di esempio per un object store, un key-value store e un database, e una suite di conformità per il vostro.252Il disco locale predefinito viene perso al riavvio, al ridimensionamento o al trasferimento a un nodo diverso. Per qualsiasi sessione che un utente si aspetta di riprendere, eseguire il mirroring della trascrizione su un archivio durevole con un adattatore [`SessionStore`](/docs/it/agent-sdk/session-storage). Vedere [Implementazioni di riferimento](/docs/it/agent-sdk/session-storage#reference-implementations) per gli adattatori di esempio per un object store, un key-value store e un database, e una suite di conformità per il vostro.

253 253 

254Tre cose da sapere su come si comporta `SessionStore`:254Tre cose da sapere su come si comporta `SessionStore`:

255 255 

256* **Solo trascrizioni**: `SessionStore` esegue il mirroring delle trascrizioni, non dei file di memoria `CLAUDE.md` o di altri artefatti della directory di lavoro. Montate un volume condiviso o sincronizzate quelli separatamente.256* **Solo trascrizioni**: `SessionStore` esegue il mirroring delle trascrizioni, non dei file di memoria `CLAUDE.md` o di altri artefatti della directory di lavoro. Montate un volume condiviso o sincronizzate quelli separatamente.

257* **Mirroring, non sostituzione**: il subprocess scrive prima su disco locale e l'SDK invia una copia di ogni batch all'archivio. La trascrizione locale di una sessione nuova sopravvive all'esecuzione; un'esecuzione ripresa dall'archivio elimina la sua copia locale alla fine, quindi l'archivio contiene l'unica copia durevole. Vedere [Dual-write architecture](/docs/it/agent-sdk/session-storage#dual-write-architecture).257* **Mirroring, non sostituzione**: il subprocess scrive prima su disco locale e l'SDK invia una copia di ogni batch all'archivio. La trascrizione locale di una sessione nuova sopravvive all'esecuzione; un'esecuzione ripresa dall'archivio elimina la sua copia locale alla fine, quindi l'archivio contiene l'unica copia durevole. Vedere [Architettura a doppia scrittura](/docs/it/agent-sdk/session-storage#dual-write-architecture).

258* **Messaggi `mirror_error`**: quando l'SDK non riesce a consegnare un batch all'archivio, scarta il batch, emette un messaggio `{ type: "system", subtype: "mirror_error" }` e continua la query. Avvertite su questi se la durabilità dell'archivio è importante. Vedere [Mirror writes are best-effort](/docs/it/agent-sdk/session-storage#mirror-writes-are-best-effort) per il comportamento di retry e timeout.258* **Messaggi `mirror_error`**: quando l'SDK non riesce a consegnare un batch all'archivio, scarta il batch, emette un messaggio `{ type: "system", subtype: "mirror_error" }` e continua la query. Avvertite su questi se la durabilità dell'archivio è importante. Vedere [Le scritture mirror sono best-effort](/docs/it/agent-sdk/session-storage#mirror-writes-are-best-effort) per il comportamento di retry e timeout.

259 259 

260<h3 id="observability">260<h3 id="observability">

261 Osservabilità261 Osservabilità


275OTEL_EXPORTER_OTLP_ENDPOINT=http://collector.example.com:4318275OTEL_EXPORTER_OTLP_ENDPOINT=http://collector.example.com:4318

276```276```

277 277 

278Il testo del prompt e gli input degli strumenti non sono inclusi nelle esportazioni per impostazione predefinita. Vedere [Control sensitive data in exports](/docs/it/agent-sdk/observability#control-sensitive-data-in-exports) per i flag opt-in e [Observability](/docs/it/agent-sdk/observability) per il catalogo completo dei segnali.278Il testo del prompt e gli input degli strumenti non sono inclusi nelle esportazioni per impostazione predefinita. Vedere [Controlla i dati sensibili nelle esportazioni](/docs/it/agent-sdk/observability#control-sensitive-data-in-exports) per i flag opt-in e [Osservabilità](/docs/it/agent-sdk/observability) per il catalogo completo dei segnali.

279 279 

280<h3 id="auth-and-secrets">280<h3 id="auth-and-secrets">

281 Autenticazione e segreti281 Autenticazione e segreti


307 Costo307 Costo

308</h3>308</h3>

309 309 

310Il costo dei token Anthropic in genere domina il costo dell'infrastruttura del container di un ordine di grandezza o più. Un container minimamente provisioning funziona approssimativamente a \$0.05 all'ora, mentre una singola sessione di agente lungo può spendere dollari in token. Vedere [Cost tracking](/docs/it/agent-sdk/cost-tracking) per la contabilità dei token per sessione.310Il costo dei token Anthropic in genere domina il costo dell'infrastruttura del container di un ordine di grandezza o più. Un container con provisioning minimo costa approssimativamente \$0.05 all'ora, mentre una singola lunga sessione di agente può spendere dollari in token. Vedere [Monitoraggio dei costi](/docs/it/agent-sdk/cost-tracking) per la contabilità dei token per sessione.

311 311 

312<h3 id="multi-tenant-isolation">312<h3 id="multi-tenant-isolation">

313 Isolamento multi-tenant313 Isolamento multi-tenant


318Per isolare i tenant all'interno di un container condiviso:318Per isolare i tenant all'interno di un container condiviso:

319 319 

320* Passate `settingSources: []` in TypeScript o `setting_sources=[]` in Python per saltare le impostazioni utente, progetto e locali.320* Passate `settingSources: []` in TypeScript o `setting_sources=[]` in Python per saltare le impostazioni utente, progetto e locali.

321* Impostate `CLAUDE_CODE_DISABLE_AUTO_MEMORY=1` in `env`. [Auto memory](/docs/it/memory#auto-memory) a `~/.claude/projects/<project>/memory/` si carica nel prompt di sistema indipendentemente da `settingSources`. Vedere [What settingSources does not control](/docs/it/agent-sdk/claude-code-features#what-settingsources-does-not-control) per gli altri input che si caricano incondizionatamente.321* Impostate `CLAUDE_CODE_DISABLE_AUTO_MEMORY=1` in `env`. [Auto memory](/docs/it/memory#auto-memory) a `~/.claude/projects/<project>/memory/` si carica nel prompt di sistema indipendentemente da `settingSources`. Vedere [Cosa settingSources non controlla](/docs/it/agent-sdk/claude-code-features#what-settingsources-does-not-control) per gli altri input che si caricano incondizionatamente.

322* Puntate `CLAUDE_CONFIG_DIR` a una directory per tenant in modo che i tenant non condividano la configurazione globale `~/.claude.json`. Quando ogni directory di configurazione serve una directory di lavoro e non condividete un [`SessionStore`](/docs/it/agent-sdk/session-storage) tra i tenant, potete anche impostare [`CLAUDE_CODE_PROJECT_DIR_NAME`](/docs/it/sessions#name-the-project-directory-yourself) in `env` per mantenere i percorsi delle trascrizioni sotto di esso brevi. Richiede Agent SDK TypeScript v0.3.234 o successivo, oppure Agent SDK Python v0.2.140 o successivo.322* Puntate `CLAUDE_CONFIG_DIR` a una directory per tenant in modo che i tenant non condividano la configurazione globale `~/.claude.json`. Quando ogni directory di configurazione serve una directory di lavoro e non condividete un [`SessionStore`](/docs/it/agent-sdk/session-storage) tra i tenant, potete anche impostare [`CLAUDE_CODE_PROJECT_DIR_NAME`](/docs/it/sessions#name-the-project-directory-yourself) in `env` per mantenere i percorsi delle trascrizioni sotto di esso brevi. Richiede Agent SDK TypeScript v0.3.234 o successivo, oppure Agent SDK Python v0.2.140 o successivo.

323* Utilizzate una directory di lavoro per tenant. Passate `cwd` esplicitamente su ogni chiamata `query()`.323* Utilizzate una directory di lavoro per tenant. Passate `cwd` esplicitamente su ogni chiamata `query()`.

324* Applicate regole di egress per tenant al vostro proxy, come IP in uscita distinti, credenziali o allowlist di domini, in modo che un tenant compromesso non possa esfiltare dati tramite la politica in uscita di un altro tenant.324* Applicate regole di egress per tenant al vostro proxy, come IP in uscita distinti, credenziali o allowlist di domini, in modo che un tenant compromesso non possa esfiltare dati tramite la politica in uscita di un altro tenant.


404 Passaggi successivi404 Passaggi successivi

405</h2>405</h2>

406 406 

407* [Hosting cookbook](https://github.com/anthropics/claude-cookbooks/blob/main/claude_agent_sdk/07_Hosting_the_agent.ipynb): procedura dettagliata del notebook con [codice distribuibile](https://github.com/anthropics/claude-cookbooks/tree/main/claude_agent_sdk/hosting) per Docker, Modal e Kubernetes.407* [Cookbook sull'hosting](https://github.com/anthropics/claude-cookbooks/blob/main/claude_agent_sdk/07_Hosting_the_agent.ipynb): procedura dettagliata del notebook con [codice distribuibile](https://github.com/anthropics/claude-cookbooks/tree/main/claude_agent_sdk/hosting) per Docker, Modal e Kubernetes.

408* [Archiviazione della sessione](/docs/it/agent-sdk/session-storage): mantieni i transcript tra gli host con un adattatore `SessionStore`.408* [Archiviazione della sessione](/docs/it/agent-sdk/session-storage): mantieni i transcript tra gli host con un adattatore `SessionStore`.

409* [Observability](/docs/it/agent-sdk/observability): esporta tracce OTEL, metriche e log al tuo collector.409* [Osservabilità](/docs/it/agent-sdk/observability): esporta tracce OTEL, metriche e log al tuo collector.

410* [Secure deployment](/docs/it/agent-sdk/secure-deployment): controlli di rete, gestione delle credenziali e indurimento dell'isolamento.410* [Distribuzione sicura](/docs/it/agent-sdk/secure-deployment): controlli di rete, gestione delle credenziali e indurimento dell'isolamento.

411* [Cost tracking](/docs/it/agent-sdk/cost-tracking): contabilità dei token e dei costi per sessione.411* [Monitoraggio dei costi](/docs/it/agent-sdk/cost-tracking): contabilità dei token e dei costi per sessione.

Details

205 205 

206**Comportamento attuale:** Omettendo `settingSources` su `query()` vengono caricate le impostazioni del file system dell'utente, del progetto e locale, corrispondendo alla CLI. Ciò include `~/.claude/settings.json`, `.claude/settings.json`, `.claude/settings.local.json`, file CLAUDE.md e comandi personalizzati.206**Comportamento attuale:** Omettendo `settingSources` su `query()` vengono caricate le impostazioni del file system dell'utente, del progetto e locale, corrispondendo alla CLI. Ciò include `~/.claude/settings.json`, `.claude/settings.json`, `.claude/settings.local.json`, file CLAUDE.md e comandi personalizzati.

207 207 

208Per eseguire l'isolamento dalle impostazioni del file system, passare `settingSources: []`, oppure `setting_sources=[]` in Python. Vedere [Control filesystem settings with settingSources](/docs/it/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources) per informazioni su cosa carica ogni origine.208Per eseguire l'isolamento dalle impostazioni del file system, passare `settingSources: []`, oppure `setting_sources=[]` in Python. Vedere [Controlla le impostazioni del filesystem con settingSources](/docs/it/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources) per informazioni su cosa carica ogni origine.

209 209 

210L'isolamento è particolarmente importante per le pipeline CI/CD, le applicazioni distribuite, gli ambienti di test e i sistemi multi-tenant in cui le personalizzazioni locali non dovrebbero trapelare.210L'isolamento è particolarmente importante per le pipeline CI/CD, le applicazioni distribuite, gli ambienti di test e i sistemi multi-tenant in cui le personalizzazioni locali non dovrebbero trapelare.

211 211 

212<Note>212<Note>

213 Python SDK 0.1.59 e versioni precedenti hanno trattato un elenco vuoto allo stesso modo dell'omissione dell'opzione, quindi eseguire l'aggiornamento prima di fare affidamento su `setting_sources=[]`. Vedere [What settingSources does not control](/docs/it/agent-sdk/claude-code-features#what-settingsources-does-not-control) per gli input che vengono letti anche quando `settingSources` è `[]`.213 Python SDK 0.1.59 e versioni precedenti hanno trattato un elenco vuoto allo stesso modo dell'omissione dell'opzione, quindi eseguire l'aggiornamento prima di fare affidamento su `setting_sources=[]`. Vedere [Cosa settingSources non controlla](/docs/it/agent-sdk/claude-code-features#what-settingsources-does-not-control) per gli input che vengono letti anche quando `settingSources` è `[]`.

214</Note>214</Note>

215 215 

216<h2 id="next-steps">216<h2 id="next-steps">

Details

17 17 

18Questa guida spiega come l'SDK emette telemetria, come configurare l'esportazione e come etichettare e filtrare i dati una volta che raggiungono il tuo backend. Per leggere l'utilizzo dei token e il costo direttamente dal flusso di risposta dell'SDK invece di esportare a un backend, vedi [Traccia costo e utilizzo](/docs/it/agent-sdk/cost-tracking).18Questa guida spiega come l'SDK emette telemetria, come configurare l'esportazione e come etichettare e filtrare i dati una volta che raggiungono il tuo backend. Per leggere l'utilizzo dei token e il costo direttamente dal flusso di risposta dell'SDK invece di esportare a un backend, vedi [Traccia costo e utilizzo](/docs/it/agent-sdk/cost-tracking).

19 19 

20<Note>

21 Per la Claude API o i Managed Agents, consulta [OpenTelemetry per la Claude API](https://platform.claude.com/docs/en/manage-claude/opentelemetry).

22</Note>

23 

20<h2 id="how-telemetry-flows-from-the-sdk">24<h2 id="how-telemetry-flows-from-the-sdk">

21 Come la telemetria fluisce dall'SDK25 Come la telemetria fluisce dall'SDK

22</h2>26</h2>

Details

37| MCP | Connetti strumenti e fonti di dati esterne tramite il Model Context Protocol | [MCP](/docs/it/agent-sdk/mcp) |37| MCP | Connetti strumenti e fonti di dati esterne tramite il Model Context Protocol | [MCP](/docs/it/agent-sdk/mcp) |

38| Permissions | Controlla quali strumenti vengono eseguiti automaticamente, quali richiedono approvazione | [Permissions](/docs/it/agent-sdk/permissions) |38| Permissions | Controlla quali strumenti vengono eseguiti automaticamente, quali richiedono approvazione | [Permissions](/docs/it/agent-sdk/permissions) |

39| Sessions | Mantieni il contesto tra gli scambi, riprendi o dividi in seguito | [Sessions](/docs/it/agent-sdk/sessions) |39| Sessions | Mantieni il contesto tra gli scambi, riprendi o dividi in seguito | [Sessions](/docs/it/agent-sdk/sessions) |

40| Skills, commands, and memory | Carica automaticamente da `.claude/` del tuo progetto e da `~/.claude/`, come Claude Code | [Skills](/docs/it/agent-sdk/skills), [Commands](/docs/it/agent-sdk/skills#commands-in-agent-sdk-sessions), [Memory](/docs/it/agent-sdk/modifying-system-prompts), [Configuration loading](/docs/it/agent-sdk/claude-code-features) |40| Skills, commands, and memory | Carica automaticamente da `.claude/` del tuo progetto e da `~/.claude/`, come Claude Code | [Skills](/docs/it/agent-sdk/skills), [Commands](/docs/it/agent-sdk/skills#commands-in-agent-sdk-sessions), [Memory](/docs/it/agent-sdk/modifying-system-prompts), [Caricamento della configurazione](/docs/it/agent-sdk/claude-code-features) |

41| Plugins | Pacchetto skills, agenti, hooks e server MCP, e caricali per percorso locale | [Plugins](/docs/it/agent-sdk/plugins) |41| Plugins | Pacchetto skills, agenti, hooks e server MCP, e caricali per percorso locale | [Plugins](/docs/it/agent-sdk/plugins) |

42 42 

43<h2 id="get-started">43<h2 id="get-started">

Details

156 156 

157L'esempio seguente osserva il flusso dell'assistente per i blocchi `tool_use` `TaskCreate` e `TaskUpdate` e mantiene una mappa di attività con chiave dell'ID attività in una classe `TaskTracker`, renderizzando un riepilogo dei progressi ad ogni cambiamento. Il riepilogo conta le attività completate e in corso e mostra l'etichetta `activeForm` di ogni elemento attivo al posto del suo `subject`. Usa questa forma quando la tua applicazione mantiene un display di progresso invece di registrare ogni evento.157L'esempio seguente osserva il flusso dell'assistente per i blocchi `tool_use` `TaskCreate` e `TaskUpdate` e mantiene una mappa di attività con chiave dell'ID attività in una classe `TaskTracker`, renderizzando un riepilogo dei progressi ad ogni cambiamento. Il riepilogo conta le attività completate e in corso e mostra l'etichetta `activeForm` di ogni elemento attivo al posto del suo `subject`. Usa questa forma quando la tua applicazione mantiene un display di progresso invece di registrare ogni evento.

158 158 

159L'ID attività assegnato non è nell'input `TaskCreate`. Claude Code fornisce l'output strutturato di ogni strumento nel messaggio dell'utente che porta il suo blocco `tool_result`, nel campo `tool_use_result`. Per `TaskCreate`, quell'oggetto è documentato per TypeScript come `TaskCreateOutput` in [Tool Output Types](/docs/it/agent-sdk/typescript#tool-output-types), e in Python il campo è un semplice dict della stessa forma. Il tracker abbina ogni blocco `tool_result` alla sua chiamata `tool_use` per `tool_use_id` e legge `task.id` dal `tool_use_result` del messaggio abbinato. Claude può leggere l'elenco di nuovo con `TaskList` e i dettagli completi di un'attività con `TaskGet`.159L'ID attività assegnato non è nell'input `TaskCreate`. Claude Code fornisce l'output strutturato di ogni strumento nel messaggio dell'utente che porta il suo blocco `tool_result`, nel campo `tool_use_result`. Per `TaskCreate`, quell'oggetto è documentato per TypeScript come `TaskCreateOutput` in [Tipi di output degli strumenti](/docs/it/agent-sdk/typescript#tool-output-types), e in Python il campo è un semplice dict della stessa forma. Il tracker abbina ogni blocco `tool_result` alla sua chiamata `tool_use` per `tool_use_id` e legge `task.id` dal `tool_use_result` del messaggio abbinato. Claude può leggere l'elenco di nuovo con `TaskList` e i dettagli completi di un'attività con `TaskGet`.

160 160 

161<CodeGroup>161<CodeGroup>

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

Details

6173 6173 

6174Emesso quando l'insieme dei comandi disponibili cambia durante la sessione, ad esempio quando Claude Code scopre delle skill mentre l'agente entra in una sottodirectory. L'array `commands` è l'intero elenco aggiornato, quindi sostituisci qualsiasi elenco di comandi memorizzato nella cache con questo payload. Chiamare [`supportedCommands()`](#query-object) dopo questo messaggio restituisce lo stesso elenco aggiornato, perché il metodo segue l'invio più recente; questo richiede Agent SDK v0.3.216 o versioni successive. Nelle versioni precedenti dell'SDK, `supportedCommands()` restituisce l'istantanea acquisita all'inizializzazione e non riflette mai le modifiche durante la sessione.6174Emesso quando l'insieme dei comandi disponibili cambia durante la sessione, ad esempio quando Claude Code scopre delle skill mentre l'agente entra in una sottodirectory. L'array `commands` è l'intero elenco aggiornato, quindi sostituisci qualsiasi elenco di comandi memorizzato nella cache con questo payload. Chiamare [`supportedCommands()`](#query-object) dopo questo messaggio restituisce lo stesso elenco aggiornato, perché il metodo segue l'invio più recente; questo richiede Agent SDK v0.3.216 o versioni successive. Nelle versioni precedenti dell'SDK, `supportedCommands()` restituisce l'istantanea acquisita all'inizializzazione e non riflette mai le modifiche durante la sessione.

6175 6175 

6176Claude Code emette questo messaggio anche quando i [prompt](/docs/it/mcp#use-mcp-prompts-as-commands) di un server MCP entrano o escono dall'elenco, ad esempio quando un server termina la connessione dopo l'avvio della sessione. Questo richiede Claude Code v2.1.281 o versioni successive.6176Claude Code emette questo messaggio anche quando i [prompt](/docs/it/mcp#use-mcp-prompts-as-commands) di un server MCP entrano o escono dall'elenco, ad esempio quando un server finisce di connettersi dopo l'avvio della sessione. Questo richiede Claude Code v2.1.281 o versioni successive.

6177 6177 

6178```typescript theme={null}6178```typescript theme={null}

6179type SDKCommandsChangedMessage = {6179type SDKCommandsChangedMessage = {

agent-view.md +5 −5

Details

500 Cosa viene trasportato quando invii in background500 Cosa viene trasportato quando invii in background

501</h4>501</h4>

502 502 

503L'invio in background avvia un nuovo processo che riprende dalla conversazione salvata, e il lavoro in corso si sposta in esso: comandi shell in background in esecuzione, subagent in background, workflow dinamici, attività pianificate che hai creato con [`/loop`](/docs/it/scheduled-tasks), e le [risposte automatiche di Claude ai commenti degli artefatti](/docs/it/artifacts#let-claude-reply-to-comments-on-its-own) vengono tutti trasportati e continuano a essere eseguiti lì. Un subagent si sposta insieme a tutto ciò che ha avviato, quindi viene trasportato solo quando anche tutto quel lavoro può spostarsi. Per interrompere il lavoro in corso invece di trasportarlo, imposta la variabile d'ambiente [`CLAUDE_DISABLE_ADOPT=1`](/docs/it/env-vars#variables); Claude Code ti chiede allora di confermare prima di inviare in background.503L'invio in background avvia un nuovo processo che riprende dalla conversazione salvata, e il lavoro in background in corso si sposta in esso: comandi shell in background in esecuzione, subagent in background, workflow dinamici, attività pianificate che hai creato con [`/loop`](/docs/it/scheduled-tasks), e le [risposte automatiche di Claude ai commenti degli artefatti](/docs/it/artifacts#let-claude-reply-to-comments-on-its-own) vengono tutti trasportati e continuano a essere eseguiti lì. Un subagent si sposta insieme a tutto ciò che ha avviato, quindi viene trasportato solo quando anche tutto quel lavoro può spostarsi. Per interrompere il lavoro in background in corso invece di trasportarlo, imposta la variabile d'ambiente [`CLAUDE_DISABLE_ADOPT=1`](/docs/it/env-vars#variables); Claude Code ti chiede allora di confermare prima di inviare in background.

504 504 

505Quando un [workflow dinamico](/docs/it/workflows) ha ancora subagent in esecuzione, Claude Code chiede prima di inviare in background con la finestra di dialogo `Background this session?`, che dice quanti subagent verrebbero riavviati. Scegli `Stay` per lasciarli finire prima. Se confermi, Claude Code riproduce l'esecuzione nella sessione in background: i subagent che erano ancora in esecuzione ricominciano dall'inizio, quindi i token che hanno usato finora vengono spesi di nuovo. Vedi [Riprendere dopo una pausa](/docs/it/workflows#resume-after-a-pause) per sapere quali subagent completati restituiscono i loro risultati salvati e quali vengono eseguiti di nuovo.505Quando un [workflow dinamico](/docs/it/workflows) ha ancora subagent in esecuzione, Claude Code chiede prima di inviare in background con la finestra di dialogo `Background this session?`, che dice quanti subagent verrebbero riavviati. Scegli `Stay` per lasciarli finire prima. Se confermi, Claude Code riproduce l'esecuzione nella sessione in background: i subagent che erano ancora in esecuzione ricominciano dall'inizio, quindi i token che hanno usato finora vengono spesi di nuovo. Vedi [Riprendere dopo una pausa](/docs/it/workflows#resume-after-a-pause) per sapere quali subagent completati restituiscono i loro risultati salvati e quali vengono eseguiti di nuovo.

506 506 

507Claude Code interrompe il lavoro che non può essere trasportato, come un [monitor](/docs/it/tools-reference#monitor-tool) in esecuzione, e insieme ad esso interrompe un subagent in background che possiede un monitor. Quando uno di questi lavori è in esecuzione, Claude Code mostra la finestra di dialogo `Background this session?` in modo che tu possa confermare prima che interrompa il lavoro.507Claude Code interrompe il lavoro in background che non può essere trasportato, come un [monitor](/docs/it/tools-reference#monitor-tool) in esecuzione, e insieme ad esso interrompe un subagent in background che possiede un monitor. Quando uno di questi lavori è in esecuzione, Claude Code mostra la finestra di dialogo `Background this session?` in modo che tu possa confermare prima che interrompa il lavoro.

508 508 

509Una volta in background, la sessione può avviare nuovi subagent, monitor e comandi in background, e questi continuano a essere eseguiti durante i successivi distacchi e ricollegamenti.509Una volta in background, la sessione può avviare nuovi subagent, monitor e comandi in background, e questi continuano a essere eseguiti durante i successivi distacchi e ricollegamenti.

510 510 


949 Lo spostamento in background mostra una finestra di dialogo `Background this session?`949 Lo spostamento in background mostra una finestra di dialogo `Background this session?`

950</h3>950</h3>

951 951 

952Se premi `←` per mettere in background la sessione corrente e Claude Code mostra una finestra di dialogo `Background this session?`, la sessione ha lavoro in corso che lo spostamento in background interromperebbe, riavvierebbe o lascerebbe in esecuzione incustodito, e Claude Code chiede prima di fare uno di questi:952Se premi `←` per mettere in background la sessione corrente e Claude Code mostra una finestra di dialogo `Background this session?`, la sessione ha lavoro in background in corso che lo spostamento in background interromperebbe, riavvierebbe o lascerebbe in esecuzione incustodito, e Claude Code chiede prima di fare uno di questi:

953 953 

954* **Lavoro che non può trasferirsi**: la sessione ha lavoro che non può trasferirsi alla sessione in background, come un [monitor](/docs/it/tools-reference#monitor-tool) in esecuzione. La finestra di dialogo nomina il lavoro che Claude Code fermerebbe e, separatamente, conta i compiti che si trasferiscono.954* **Lavoro che non può trasferirsi**: la sessione ha lavoro che non può trasferirsi alla sessione in background, come un [monitor](/docs/it/tools-reference#monitor-tool) in esecuzione. La finestra di dialogo nomina il lavoro in background che Claude Code fermerebbe e, separatamente, conta i compiti che si trasferiscono.

955* **Un workflow con subagent in esecuzione**: un [dynamic workflow](/docs/it/workflows) ha ancora subagent in esecuzione. Il workflow stesso si trasferisce, ma i suoi subagent in esecuzione si riavviano dall'inizio, e la finestra di dialogo dice quanti sono.955* **Un workflow con subagent in esecuzione**: un [dynamic workflow](/docs/it/workflows) ha ancora subagent in esecuzione. Il workflow stesso si trasferisce, ma i suoi subagent in esecuzione si riavviano dall'inizio, e la finestra di dialogo dice quanti sono.

956* **Risposte automatiche agli artefatti**: Claude sta [rispondendo ai commenti su un artefatto da solo](/docs/it/artifacts#let-claude-reply-to-comments-on-its-own). Quelle risposte continuano nella sessione in background, e la finestra di dialogo lo dice.956* **Risposte automatiche agli artefatti**: Claude sta [rispondendo ai commenti su un artefatto da solo](/docs/it/artifacts#let-claude-reply-to-comments-on-its-own). Quelle risposte continuano nella sessione in background, e la finestra di dialogo lo dice.

957 957 


1175| v2.1.199 | Una sessione in background il cui processo esce prima di finire l'avvio su un host con poca memoria mostra `possibly low memory — free some up and retry` nello stato della sua riga invece di solo il motivo dell'uscita nudo. Mettere in background una sessione con `←` o `/background` trasporta il suo `/color` alla nuova riga. |1175| v2.1.199 | Una sessione in background il cui processo esce prima di finire l'avvio su un host con poca memoria mostra `possibly low memory — free some up and retry` nello stato della sua riga invece di solo il motivo dell'uscita nudo. Mettere in background una sessione con `←` o `/background` trasporta il suo `/color` alla nuova riga. |

1176| v2.1.198 | Agent view invia una notifica attraverso `preferredNotifChannel` quando una sessione in background ha bisogno di input, finisce, o fallisce, e attiva l'hook `Notification` con il tipo `agent_needs_input` o `agent_completed`. `←` e `/exit` dentro `claude attach <id>` ritornano a agent view invece di uscire alla shell; `Ctrl+Z` ritorna alla shell. Una sessione in background che ha isolato il suo lavoro in un worktree esegue il commit, esegue il push del proprio branch isolato, mai `main` o `master`, e apre una pull request in bozza quando finisce invece di chiedere prima. `/login` viene eseguito in agent view e apre la finestra di dialogo di accesso. La finestra di dialogo di uscita `Background work is running` offre `Move to background and exit`. Il trasferimento di uscita copre anche i subagent in background, che riprendono dalla loro trascrizione al prossimo risveglio invece di essere segnalati come falliti. `claude --bg` combinato con `-p` o `--print` viene rifiutato con un errore. L'host della sessione in background richiede il permesso di rete locale macOS al primo accesso LAN invece di fallire con `connect: no route to host`. |1176| v2.1.198 | Agent view invia una notifica attraverso `preferredNotifChannel` quando una sessione in background ha bisogno di input, finisce, o fallisce, e attiva l'hook `Notification` con il tipo `agent_needs_input` o `agent_completed`. `←` e `/exit` dentro `claude attach <id>` ritornano a agent view invece di uscire alla shell; `Ctrl+Z` ritorna alla shell. Una sessione in background che ha isolato il suo lavoro in un worktree esegue il commit, esegue il push del proprio branch isolato, mai `main` o `master`, e apre una pull request in bozza quando finisce invece di chiedere prima. `/login` viene eseguito in agent view e apre la finestra di dialogo di accesso. La finestra di dialogo di uscita `Background work is running` offre `Move to background and exit`. Il trasferimento di uscita copre anche i subagent in background, che riprendono dalla loro trascrizione al prossimo risveglio invece di essere segnalati come falliti. `claude --bg` combinato con `-p` o `--print` viene rifiutato con un errore. L'host della sessione in background richiede il permesso di rete locale macOS al primo accesso LAN invece di fallire con `connect: no route to host`. |

1177| v2.1.196 | Una singola pressione di `←` mette in background una sessione in primo piano; le versioni precedenti richiedevano due pressioni, con un suggerimento nel footer e una conferma. `--dangerously-skip-permissions` passato a `claude agents` mostra il disclaimer di bypass invece di essere silenziosamente scartato. Le sessioni interattive che non hai mai nominato portano un nome predefinito come `my-app-3f` negli elenchi di sessioni e `claude agents --json`. I comandi shell in background e i workflow dinamici sopravvivono al processo della sessione che viene fermato, riavviato, o aggiornato, incluso su Windows; imposta `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF=1` per disattivare il trasferimento. Una trascrizione interpretata erroneamente come vuota al riavvio viene rinominata con un suffisso `.orphaned-` invece di essere eliminata. |1177| v2.1.196 | Una singola pressione di `←` mette in background una sessione in primo piano; le versioni precedenti richiedevano due pressioni, con un suggerimento nel footer e una conferma. `--dangerously-skip-permissions` passato a `claude agents` mostra il disclaimer di bypass invece di essere silenziosamente scartato. Le sessioni interattive che non hai mai nominato portano un nome predefinito come `my-app-3f` negli elenchi di sessioni e `claude agents --json`. I comandi shell in background e i workflow dinamici sopravvivono al processo della sessione che viene fermato, riavviato, o aggiornato, incluso su Windows; imposta `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF=1` per disattivare il trasferimento. Una trascrizione interpretata erroneamente come vuota al riavvio viene rinominata con un suffisso `.orphaned-` invece di essere eliminata. |

1178| v2.1.195 | Il lavoro in corso si trasferisce anche quando metti in background una sessione su Windows; imposta `CLAUDE_DISABLE_ADOPT=1` per fermarlo invece. Il gruppo `Completed` riempie lo spazio verticale rimanente e l'intestazione si compatta su terminali corti. Una versione più vecchia di Claude Code non scarta più i campi `state.json` delle sessioni più nuove né nasconde quelle sessioni da `claude agents`. Il collegamento a una sessione fermata passa immediatamente invece di mostrare una schermata vuota per fino a cinque secondi. Un supervisor che non riesce ad accettare connessioni esce e rilascia il suo blocco da solo. |1178| v2.1.195 | Il lavoro in background in corso si trasferisce anche quando metti in background una sessione su Windows; imposta `CLAUDE_DISABLE_ADOPT=1` per fermarlo invece. Il gruppo `Completed` riempie lo spazio verticale rimanente e l'intestazione si compatta su terminali corti. Una versione più vecchia di Claude Code non scarta più i campi `state.json` delle sessioni più nuove né nasconde quelle sessioni da `claude agents`. Il collegamento a una sessione fermata passa immediatamente invece di mostrare una schermata vuota per fino a cinque secondi. Un supervisor che non riesce ad accettare connessioni esce e rilascia il suo blocco da solo. |

1179| v2.1.191 | `claude --bg` con un nome `--agent` che non corrisponde a nessuno dei tuoi subagent fallisce il lancio: la sessione esce immediatamente con un errore `--agent '<name>' not found` invece di eseguire con l'agente predefinito. |1179| v2.1.191 | `claude --bg` con un nome `--agent` che non corrisponde a nessuno dei tuoi subagent fallisce il lancio: la sessione esce immediatamente con un errore `--agent '<name>' not found` invece di eseguire con l'agente predefinito. |

1180| v2.1.174 | Le sessioni in background non ereditano più variabili di endpoint gateway come `ANTHROPIC_BASE_URL` dalla shell di avvio del supervisor; il supervisor fornisce uno snapshot di credenziali fresco ai worker pre-riscaldati, correggendo gli errori spurii di `Could not resolve authentication method`. |1180| v2.1.174 | Le sessioni in background non ereditano più variabili di endpoint gateway come `ANTHROPIC_BASE_URL` dalla shell di avvio del supervisor; il supervisor fornisce uno snapshot di credenziali fresco ai worker pre-riscaldati, correggendo gli errori spurii di `Could not resolve authentication method`. |

1181| v2.1.172 | `/model` nell'input di dispatch imposta un override del modello di dispatch con ambito di sessione. |1181| v2.1.172 | `/model` nell'input di dispatch imposta un override del modello di dispatch con ambito di sessione. |

analytics.md +2 −0

Details

13| Claude for Teams / Enterprise | [claude.ai/analytics/claude-code](https://claude.ai/analytics/claude-code) | Metriche di utilizzo, metriche di contributo con integrazione GitHub, leaderboard, esportazione dati | [Dettagli](#access-analytics-for-team-and-enterprise) |13| Claude for Teams / Enterprise | [claude.ai/analytics/claude-code](https://claude.ai/analytics/claude-code) | Metriche di utilizzo, metriche di contributo con integrazione GitHub, leaderboard, esportazione dati | [Dettagli](#access-analytics-for-team-and-enterprise) |

14| API (Claude Console) | [platform.claude.com/claude-code](https://platform.claude.com/claude-code) | Metriche di utilizzo, tracciamento della spesa, approfondimenti del team | [Dettagli](#access-analytics-for-api-customers) |14| API (Claude Console) | [platform.claude.com/claude-code](https://platform.claude.com/claude-code) | Metriche di utilizzo, tracciamento della spesa, approfondimenti del team | [Dettagli](#access-analytics-for-api-customers) |

15 15 

16Code Review ha un proprio dashboard. Per l'attività di revisione e la spesa, consulta [Visualizza l'utilizzo](/docs/it/code-review-costs#view-usage).

17 

16<h2 id="access-analytics-for-team-and-enterprise">18<h2 id="access-analytics-for-team-and-enterprise">

17 Access analytics for Team and Enterprise19 Access analytics for Team and Enterprise

18</h2>20</h2>

artifacts.md +5 −3

Details

75| La sessione è in [plan mode](/docs/it/permission-modes#analyze-before-you-edit-with-plan-mode) | Chiede prima della prima pubblicazione di ogni artefatto |75| La sessione è in [plan mode](/docs/it/permission-modes#analyze-before-you-edit-with-plan-mode) | Chiede prima della prima pubblicazione di ogni artefatto |

76| 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 |76| 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 |

77| Hai condiviso l'artefatto pubblicamente | Chiede una volta per conversazione prima di modificarlo |77| Hai condiviso l'artefatto pubblicamente | Chiede una volta per conversazione prima di modificarlo |

78| Hai disattivato il [recupero dei feature flag](/docs/it/env-vars#features-that-need-feature-flag-fetching) | Chiede prima della prima pubblicazione di ogni artefatto |

79| Claude pubblica in un turno avviato da un'[attività pianificata](/docs/it/scheduled-tasks) eseguita nella tua sessione, anziché da un prompt che hai digitato | Chiede prima della prima pubblicazione di ogni artefatto |78| Claude pubblica in un turno avviato da un'[attività pianificata](/docs/it/scheduled-tasks) eseguita nella tua sessione, anziché da un prompt che hai digitato | Chiede prima della prima pubblicazione di ogni artefatto |

80| 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 |79| 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 |

80| In modalità [Manual](/docs/it/permission-modes) 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 |

81 81 

82Claude legge i file nelle [directory di lavoro](/docs/it/permissions#working-directories) della tua sessione, e nella directory temporanea in cui scrive le pagine, senza chiedere. Per consentire a Claude di pubblicare da un'altra cartella senza la richiesta, aggiungi la cartella come directory di lavoro con [`--add-dir`](/docs/it/cli-reference#cli-flags) all'avvio oppure con `/add-dir` durante la sessione.82Per consentire a Claude di leggere un file al di fuori delle tue [directory di lavoro](/docs/it/permissions#working-directories) senza la tua approvazione, aggiungi la sua cartella come directory di lavoro con [`--add-dir`](/docs/it/cli-reference#cli-flags) all'avvio oppure con `/add-dir` durante la sessione. Claude legge già senza chiedere i file in quelle directory, e nella directory temporanea in cui scrive le pagine.

83 

84Se una richiesta di pubblicazione include una frase come `Also makes 1 edit to that file on disk.`, Claude sta modificando il file dell'artefatto e pubblicandolo in un unico passaggio. Quando approvi la richiesta, Claude Code pubblica la pagina, quindi scrive la modifica nel tuo file.

83 85 

84<h2 id="update-an-artifact">86<h2 id="update-an-artifact">

85 Aggiornare un artifact87 Aggiornare un artifact


149* **Sessione cloud senza accesso alla rete**: per un [ambiente cloud](/docs/it/cloud-environments#access-levels), corrisponde al livello **None**. In [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode), può invece approvare il classificatore; in una sessione [Cowork](https://claude.com/product/cowork), l'approvazione spetta solo a te.151* **Sessione cloud senza accesso alla rete**: per un [ambiente cloud](/docs/it/cloud-environments#access-levels), corrisponde al livello **None**. In [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode), può invece approvare il classificatore; in una sessione [Cowork](https://claude.com/product/cowork), l'approvazione spetta solo a te.

150* **Artefatto pubblico di un'altra organizzazione**: Claude Code te lo chiede prima, anche in modalità auto. Dove Claude Code non può chiedertelo, ad esempio in modalità `bypassPermissions`, Claude non può leggere l'artefatto. Claude può leggere questi artefatti solo mentre il [recupero dei feature flag](/docs/it/env-vars#features-that-need-feature-flag-fetching) è attivo.152* **Artefatto pubblico di un'altra organizzazione**: Claude Code te lo chiede prima, anche in modalità auto. Dove Claude Code non può chiedertelo, ad esempio in modalità `bypassPermissions`, Claude non può leggere l'artefatto. Claude può leggere questi artefatti solo mentre il [recupero dei feature flag](/docs/it/env-vars#features-that-need-feature-flag-fetching) è attivo.

151* **Proprietario o impostazione di rete non confermati**: quando Claude Code non riesce a confermare chi ha creato l'artefatto, o non riesce a confermare l'impostazione di rete di una sessione cloud, te lo chiede, e la tua approvazione copre solo quella singola richiesta.153* **Proprietario o impostazione di rete non confermati**: quando Claude Code non riesce a confermare chi ha creato l'artefatto, o non riesce a confermare l'impostazione di rete di una sessione cloud, te lo chiede, e la tua approvazione copre solo quella singola richiesta.

152* **Plan mode, o recupero dei feature flag disattivato**: nel [plan mode](/docs/it/permission-modes#analyze-before-you-edit-with-plan-mode), o se hai disattivato il [recupero dei feature flag](/docs/it/env-vars#features-that-need-feature-flag-fetching), Claude Code chiede conferma prima che lo strumento Artifact legga un artefatto creato da qualcun altro nella tua organizzazione.154* **Plan mode**: nel [plan mode](/docs/it/permission-modes#analyze-before-you-edit-with-plan-mode), Claude Code chiede conferma prima che lo strumento Artifact legga un artefatto creato da qualcun altro nella tua organizzazione.

153 155 

154Quando Claude legge l'artefatto con WebFetch, continuano ad applicarsi le [regole sulle richieste di conferma](/docs/it/tools-reference#webfetch-tool-behavior) proprie di WebFetch.156Quando Claude legge l'artefatto con WebFetch, continuano ad applicarsi le [regole sulle richieste di conferma](/docs/it/tools-reference#webfetch-tool-behavior) proprie di WebFetch.

155 157 

Details

102Un [subagent](/docs/it/sub-agents) effettua modifiche con gli strumenti di modifica dei file di Claude, ma Claude Code di solito non acquisisce queste modifiche nei checkpoint della tua sessione. Se il rewind ripristina le modifiche dipende da come viene eseguito il subagent:102Un [subagent](/docs/it/sub-agents) effettua modifiche con gli strumenti di modifica dei file di Claude, ma Claude Code di solito non acquisisce queste modifiche nei checkpoint della tua sessione. Se il rewind ripristina le modifiche dipende da come viene eseguito il subagent:

103 103 

104* **Skill forked in foreground**: una [skill con `context: fork`](/docs/it/skills#run-skills-in-a-subagent) che viene eseguita in foreground modifica il tuo working tree durante il tuo turno, quindi il rewind ripristina le sue modifiche come al solito. Imposta `background: false` per eseguire un fork in foreground; alcune situazioni, [elencate nella pagina delle skills](/docs/it/skills#run-skills-in-a-subagent), lo eseguono lì indipendentemente dall'impostazione.104* **Skill forked in foreground**: una [skill con `context: fork`](/docs/it/skills#run-skills-in-a-subagent) che viene eseguita in foreground modifica il tuo working tree durante il tuo turno, quindi il rewind ripristina le sue modifiche come al solito. Imposta `background: false` per eseguire un fork in foreground; alcune situazioni, [elencate nella pagina delle skills](/docs/it/skills#run-skills-in-a-subagent), lo eseguono lì indipendentemente dall'impostazione.

105* **Qualsiasi altro subagent**: il rewind non ripristina le modifiche. Utilizza git per ripristinarle. Questo include una skill forked che viene eseguita in background, l'impostazione predefinita, e un'esecuzione di [`/code-review --fix`](/docs/it/code-review) in background.105* **Qualsiasi altro subagent**: il rewind ripristina solo i file che Claude aveva già modificato nella tua conversazione. Le modifiche del subagent ad altri file restano, quindi utilizza git per ripristinarle. Questo include una skill forked che viene eseguita in background, l'impostazione predefinita, e un'esecuzione di [`/code-review --fix`](/docs/it/code-review-local) in background.

106 106 

107<h3 id="external-changes-not-tracked">107<h3 id="external-changes-not-tracked">

108 Le modifiche esterne non vengono tracciate108 Le modifiche esterne non vengono tracciate

Details

64Vedi [Connetti dal tuo terminale](/docs/it/web-quickstart#connect-from-your-terminal) per la procedura dettagliata di `/web-setup`, incluso ciò che `/web-setup` memorizza e come rimuoverlo.64Vedi [Connetti dal tuo terminale](/docs/it/web-quickstart#connect-from-your-terminal) per la procedura dettagliata di `/web-setup`, incluso ciò che `/web-setup` memorizza e come rimuoverlo.

65 65 

66<Note>66<Note>

67 Le organizzazioni con [Zero Data Retention](/docs/it/zero-data-retention) abilitato, o con la [configurazione HIPAA](/docs/it/hipaa-setup) applicata, non possono utilizzare `/web-setup` o altre funzionalità di sessione cloud.67 Le organizzazioni con [Zero Data Retention](/docs/it/zero-data-retention) abilitato, o con la [configurazione HIPAA](/docs/it/hipaa-setup) applicata, non possono utilizzare `/web-setup` o altre funzionalità di sessione cloud. Anche le organizzazioni che utilizzano [chiavi di crittografia gestite dal cliente](https://platform.claude.com/docs/en/manage-claude/cmek) (CMEK) non possono avviare sessioni cloud.

68</Note>68</Note>

69 69 

70<h3 id="quick-setup-for-team-and-enterprise">70<h3 id="quick-setup-for-team-and-enterprise">

Details

559 559 

560Il `matcher` limita l'hook agli eventi `startup` e `resume`, e `$CLAUDE_PROJECT_DIR` si risolve nella radice del repository, quindi l'hook trova lo script indipendentemente dalla directory di lavoro della sessione.560Il `matcher` limita l'hook agli eventi `startup` e `resume`, e `$CLAUDE_PROJECT_DIR` si risolve nella radice del repository, quindi l'hook trova lo script indipendentemente dalla directory di lavoro della sessione.

561 561 

562Successivamente, creare lo script in `scripts/install_pkgs.sh`. Esce immediatamente al di fuori del cloud, quindi installa le dipendenze:562Successivamente, crea lo script in `scripts/install_pkgs.sh`. Esce immediatamente al di fuori del cloud, quindi installa le tue dipendenze. Salta `npm install` finché `package.json`, `package-lock.json` e lo script stesso non sono cambiati dall'ultima installazione riuscita:

563 563 

564```bash theme={null}564```bash theme={null}

565#!/bin/bash565#!/bin/bash


568 exit 0568 exit 0

569fi569fi

570 570 

571npm install571cd "$CLAUDE_PROJECT_DIR" || exit 1

572hashes=node_modules/.install_pkgs.sha256

573 

574if ! sha256sum --check --status "$hashes" 2>/dev/null; then

575 # Delete the old hashes first, so a failed install runs again next time

576 rm -f "$hashes"

577 if npm install; then

578 sha256sum scripts/install_pkgs.sh package.json package-lock.json > "$hashes" || rm -f "$hashes"

579 fi

580fi

581 

582# pip skips requirements that are already satisfied

572pip install -r requirements.txt583pip install -r requirements.txt

573exit 0584exit 0

574```585```

575 586 

576Il controllo `CLAUDE_CODE_REMOTE` è ciò che limita l'installazione alle sessioni cloud: la VM della sessione trasporta quella variabile come `true`, non è mai `true` localmente, quindi sul laptop lo script esce prima di installare qualsiasi cosa.587Il controllo `CLAUDE_CODE_REMOTE` è ciò che limita l'installazione alle sessioni cloud: la VM della sessione trasporta quella variabile come `true`, non è mai `true` localmente, quindi sul laptop lo script esce prima di installare qualsiasi cosa.

577 588 

578Insieme, i due file danno a ogni sessione cloud un `npm install` e `pip install` freschi all'avvio mentre lasciano le sessioni locali intatte.589Per verificare che `npm install` sia riuscito, avvia una sessione cloud e chiedi a Claude di mostrare `node_modules/.install_pkgs.sha256`. Il file elenca un hash per ciascuno dei tre file. Se il file manca, chiedi a Claude di eseguire `npm install` e di riportare l'errore.

590 

591<Note>

592 Se `npm install` legge altri file, come il `package.json` di un workspace, un `.npmrc` o gli input del tuo script `postinstall`, aggiungili al comando `sha256sum` che salva gli hash. Altrimenti, mantieni i vecchi pacchetti dopo che uno di quei file cambia.

593</Note>

579 594 

580<h4 id="limitations-in-cloud-sessions">595<h4 id="limitations-in-cloud-sessions">

581 Limitazioni nelle sessioni cloud596 Limitazioni nelle sessioni cloud


587* **Nessun ambito solo cloud**: gli hook vengono eseguiti sia nelle sessioni locali che in quelle cloud. Per saltare l'esecuzione locale, uscire anticipatamente a meno che la variabile di ambiente `CLAUDE_CODE_REMOTE` non sia `true`, come fa lo [script di installazione delle dipendenze](#install-dependencies-with-a-sessionstart-hook).602* **Nessun ambito solo cloud**: gli hook vengono eseguiti sia nelle sessioni locali che in quelle cloud. Per saltare l'esecuzione locale, uscire anticipatamente a meno che la variabile di ambiente `CLAUDE_CODE_REMOTE` non sia `true`, come fa lo [script di installazione delle dipendenze](#install-dependencies-with-a-sessionstart-hook).

588* **Richiede accesso di rete**: i comandi di installazione devono raggiungere i registri dei pacchetti. Se l'ambiente utilizza accesso di rete **None**, questi hook non riescono. L'[elenco consentiti predefinito](#default-allowed-domains) sotto **Trusted** copre npm, PyPI, RubyGems e crates.io.603* **Richiede accesso di rete**: i comandi di installazione devono raggiungere i registri dei pacchetti. Se l'ambiente utilizza accesso di rete **None**, questi hook non riescono. L'[elenco consentiti predefinito](#default-allowed-domains) sotto **Trusted** copre npm, PyPI, RubyGems e crates.io.

589* **Compatibilità proxy**: negli ambienti ospitati da Anthropic, tutto il traffico in uscita passa attraverso un [proxy di sicurezza](#security-proxy), e alcuni gestori di pacchetti non funzionano correttamente con esso; Bun è un esempio noto. In un [ambiente self-hosted](/docs/it/self-hosted-environments-deploy#default-deny-egress), il traffico in uscita passa attraverso il proprio confine di rete.604* **Compatibilità proxy**: negli ambienti ospitati da Anthropic, tutto il traffico in uscita passa attraverso un [proxy di sicurezza](#security-proxy), e alcuni gestori di pacchetti non funzionano correttamente con esso; Bun è un esempio noto. In un [ambiente self-hosted](/docs/it/self-hosted-environments-deploy#default-deny-egress), il traffico in uscita passa attraverso il proprio confine di rete.

590* **Aggiunge latenza di avvio**: gli hook vengono eseguiti ogni volta che una sessione si avvia o riprende, a differenza degli script di configurazione che beneficiano della [cache dell'ambiente](#environment-caching). Mantenere gli script di installazione veloci controllando se le dipendenze sono già presenti prima di reinstallarle.605* **Aggiunge latenza all'avvio**: gli hook vengono eseguiti ogni volta che una sessione si avvia o riprende, a differenza degli script di configurazione che beneficiano della [cache dell'ambiente](#environment-caching). Mantieni veloci gli script di installazione saltando il lavoro già fatto, come fa lo [script di installazione delle dipendenze](#install-dependencies-with-a-sessionstart-hook).

591 606 

592Per personalizzare l'immagine di base, utilizzare uno script di configurazione per installare ciò di cui si ha bisogno sopra l'[immagine fornita](#installed-tools), o eseguire la propria immagine come container insieme a Claude con `docker compose`. La sostituzione completa dell'immagine di base non è ancora supportata.607Per personalizzare l'immagine di base, utilizzare uno script di configurazione per installare ciò di cui si ha bisogno sopra l'[immagine fornita](#installed-tools), o eseguire la propria immagine come container insieme a Claude con `docker compose`. La sostituzione completa dell'immagine di base non è ancora supportata.

593 608 

code-review.md +86 −388

Details

4 4 

5# Code Review5# Code Review

6 6 

7> Configura revisioni automatiche dei PR che rilevano errori logici, vulnerabilità di sicurezza e regressioni utilizzando l'analisi multi-agente dell'intero codebase7> Individua i bug nelle pull request di GitHub con Code Review: Claude esamina ogni modifica, verifica i propri risultati e commenta inline. Per i piani Team ed Enterprise

8 8 

9<Note>9Con Code Review, Claude esamina le pull request nei tuoi repository GitHub. Diversi agenti leggono ogni modifica insieme al codice circostante, cercando problemi come errori logici, vulnerabilità di sicurezza o edge case non gestiti. Un passaggio di verifica controlla i risultati rispetto al codice prima che vengano segnalati.

10 Code Review è in anteprima di ricerca, disponibile per gli abbonamenti [Team e Enterprise](https://claude.ai/admin-settings/claude-code). Non è disponibile per le organizzazioni con [Zero Data Retention](/docs/it/zero-data-retention) abilitato o con la [configurazione HIPAA](/docs/it/hipaa-setup) applicata, e non è coperto dal BAA di Anthropic. Su altri piani, puoi comunque [esaminare un diff localmente](#review-a-diff-locally) con il comando `/code-review`.

11</Note>

12 

13Code Review analizza i tuoi pull request su GitHub e pubblica i risultati come commenti inline sulle righe di codice dove ha trovato problemi. Una flotta di agenti specializzati esamina i cambiamenti del codice nel contesto dell'intero codebase, cercando errori logici, vulnerabilità di sicurezza, edge case interrotti e regressioni sottili.

14 

15I risultati sono contrassegnati per gravità e non approvano o bloccano il tuo PR, quindi i flussi di lavoro di revisione esistenti rimangono intatti. Puoi regolare cosa Claude segnala aggiungendo un file `CLAUDE.md` o `REVIEW.md` al tuo repository.

16 

17Per eseguire Claude nella tua infrastruttura CI invece di questo servizio gestito, vedi [GitHub Actions](/docs/it/github-actions) o [GitLab CI/CD](/docs/it/gitlab-ci-cd). Per i repository su un'istanza GitHub self-hosted, vedi [GitHub Enterprise Server](/docs/it/github-enterprise-server).

18 10 

19Questa pagina copre:11I risultati arrivano come commenti inline sulle righe interessate, classificati per [gravità](/docs/it/code-review-pull-requests#severity-levels), con un riepilogo e un check run sulla pull request. Una revisione non approva né blocca mai la pull request, quindi la decisione di fare il merge resta al tuo team.

20 12 

21* [Come funzionano le revisioni](#how-reviews-work)13<img src="https://mintcdn.com/claude-code/gLJVaPQEgKC8ZyUD/images/code-review-pipeline.svg?fit=max&auto=format&n=gLJVaPQEgKC8ZyUD&q=85&s=0351c96df9efa3105172eb00a672f130" className="dark:hidden" alt="Diagramma di una revisione in quattro fasi. Una pull request su GitHub viene inviata a diversi agenti che cercano in parallelo sull'infrastruttura Anthropic. Un passaggio di verifica scarta i falsi positivi, i risultati rimanenti vengono deduplicati e classificati per gravità, e la revisione pubblica su GitHub commenti inline, un riepilogo e un check run." width="760" height="300" data-path="images/code-review-pipeline.svg" />

22* [Configurazione](#set-up-code-review)

23* [Attivazione manuale delle revisioni](#manually-trigger-reviews) con `@claude review` e `@claude review always`

24* [Personalizzazione delle revisioni](#customize-reviews) con `CLAUDE.md` e `REVIEW.md`

25* [Prezzi](#pricing)

26* [Risoluzione dei problemi](#troubleshooting) esecuzioni non riuscite e commenti mancanti

27* [Revisione di un diff localmente](#review-a-diff-locally) con il comando `/code-review`

28 

29<h2 id="how-reviews-work">

30 Come funzionano le revisioni

31</h2>

32 14 

33Una volta che un amministratore [abilita Code Review](#set-up-code-review) per la tua organizzazione, le revisioni si attivano quando un PR si apre, ad ogni push, o quando richiesto manualmente, a seconda del comportamento configurato del repository. Commentando `@claude review` [avvia le revisioni su un PR](#manually-trigger-reviews) in qualsiasi modalità.15<img src="https://mintcdn.com/claude-code/gLJVaPQEgKC8ZyUD/images/code-review-pipeline-dark.svg?fit=max&auto=format&n=gLJVaPQEgKC8ZyUD&q=85&s=9cf26bde98f4e999d0d9ff5bf5bdff40" className="hidden dark:block" alt="Diagramma di una revisione in quattro fasi. Una pull request su GitHub viene inviata a diversi agenti che cercano in parallelo sull'infrastruttura Anthropic. Un passaggio di verifica scarta i falsi positivi, i risultati rimanenti vengono deduplicati e classificati per gravità, e la revisione pubblica su GitHub commenti inline, un riepilogo e un check run." width="760" height="300" data-path="images/code-review-pipeline-dark.svg" />

34 

35Quando una revisione viene eseguita, più agenti analizzano il diff e il codice circostante in parallelo sull'infrastruttura Anthropic. Ogni agente cerca una classe diversa di problema, quindi un passaggio di verifica controlla i candidati rispetto al comportamento effettivo del codice per filtrare i falsi positivi. I risultati vengono deduplicati, classificati per gravità e pubblicati come commenti inline sulle righe specifiche dove sono stati trovati i problemi, con un riepilogo nel corpo della revisione. Se non vengono trovati problemi, Code Review aggiorna il check run di GitHub per mostrare che non sono stati rilevati problemi. Claude può anche pubblicare un breve commento di conferma sul PR.

36 

37Le revisioni si scalano in costo con la dimensione e la complessità del PR, completandosi in media in 20 minuti. Gli amministratori possono monitorare l'attività di revisione e la spesa tramite il [dashboard di analisi](#view-usage).

38 

39<h3 id="severity-levels">

40 Livelli di gravità

41</h3>

42 

43Ogni risultato è contrassegnato con un livello di gravità:

44 

45| Marcatore | Gravità | Significato |

46| :- | :- | :- |

47| 🔴 | Importante | Un bug che dovrebbe essere corretto prima del merge |

48| 🟡 | Nit | Un problema minore, vale la pena correggerlo ma non bloccante |

49| 🟣 | Pre-esistente | Un bug che esiste nel codebase ma non è stato introdotto da questo PR |

50 

51I risultati includono una sezione di ragionamento esteso comprimibile che puoi espandere per capire perché Claude ha segnalato il problema e come ha verificato il problema.

52 

53<h3 id="rate-and-reply-to-findings">

54 Valutare e rispondere ai risultati

55</h3>

56 

57Ogni commento di revisione da Claude arriva con 👍 e 👎 già allegati, quindi entrambi i pulsanti appaiono nell'interfaccia utente di GitHub per una valutazione con un clic. Fai clic su 👍 se il risultato era utile o 👎 se era sbagliato o rumoroso. Anthropic raccoglie i conteggi delle reazioni dopo il merge del PR e li utilizza per ottimizzare il revisore. Le reazioni non attivano una re-revisione o cambiano nulla sul PR.

58 

59Rispondere a un commento inline non richiede a Claude di rispondere o aggiornare il PR. Per agire su un risultato, correggi il codice e fai un push. Se il PR è sottoscritto alle revisioni attivate da push, l'esecuzione successiva risolve il thread quando il problema è corretto. Per richiedere una revisione nuova senza fare un push, commenta `@claude review` come [commento PR di primo livello](#manually-trigger-reviews).

60 

61Per dismissare un risultato senza una modifica del codice, risolvi il suo thread; rispondere non lo dismissa.

62 

63<h3 id="check-run-output">

64 Output del check run

65</h3>

66 

67Oltre ai commenti di revisione inline, ogni revisione popola il check run **Claude Code Review** che appare insieme ai tuoi check CI. Espandi il suo link **Details** per vedere un riepilogo di ogni risultato in un unico posto, ordinato per gravità:

68 

69| Gravità | File:Riga | Problema |

70| - | - | - |

71| 🔴 Importante | `src/auth/session.ts:142` | L'aggiornamento del token corre in parallelo con il logout, lasciando sessioni stantie attive |

72| 🟡 Nit | `src/auth/session.ts:88` | `parseExpiry` restituisce silenziosamente 0 su input malformato |

73 

74Ogni risultato appare anche come un'annotazione nella scheda **Files changed**, contrassegnato direttamente sulle righe diff rilevanti. I risultati importanti vengono visualizzati con un marcatore rosso, i nit con un avviso giallo e i bug pre-esistenti con un avviso grigio. Le annotazioni e la tabella di gravità vengono scritte nel check run indipendentemente dai commenti di revisione inline, quindi rimangono disponibili anche se GitHub rifiuta un commento inline su una riga che si è spostata.

75 

76Il check run si completa sempre con una conclusione neutra, quindi non blocca mai il merge attraverso le regole di protezione del ramo. Se vuoi bloccare i merge sui risultati di Code Review, leggi il breakdown della gravità dall'output del check run nel tuo CI. L'ultima riga del testo Details è un commento leggibile da macchina che il tuo flusso di lavoro può analizzare con `gh` e jq. Per trovare l'ID del check run, elenca i check run del commit con `gh api repos/OWNER/REPO/commits/<commit-sha>/check-runs --jq '.check_runs[] | {id, name}'` e prendi l'`id` del run **Claude Code Review**. Sostituisci `OWNER`, `REPO` e `CHECK_RUN_ID` con il proprietario del tuo repository, il nome del repository e quell'ID:

77 

78```bash theme={null}

79gh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID \

80 --jq '.output.text | split("bughunter-severity: ")[1] | split(" -->")[0] | fromjson'

81```

82 

83Questo restituisce un oggetto JSON con conteggi per gravità, ad esempio `{"normal": 2, "nit": 1, "pre_existing": 0}`. La chiave `normal` contiene il conteggio dei risultati Importanti; un valore diverso da zero significa che Claude ha trovato almeno un bug che vale la pena correggere prima del merge.

84 

85<h3 id="what-code-review-checks">

86 Cosa controlla Code Review

87</h3>

88 

89Per impostazione predefinita, Code Review si concentra sulla correttezza: bug che interromperebbero la produzione, non preferenze di formattazione o copertura di test mancante. Puoi espandere cosa controlla [aggiungendo file di guida](#customize-reviews) al tuo repository.

90 

91<h2 id="set-up-code-review">

92 Configura Code Review

93</h2>

94 

95Un proprietario abilita Code Review una volta per l'organizzazione e seleziona quali repository includere.

96 

97<Steps>

98 <Step title="Apri le impostazioni di amministrazione di Claude Code">

99 Vai a [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) e trova la sezione Code Review. Hai bisogno del ruolo Proprietario o Proprietario principale nella tua organizzazione Claude e del permesso di installare GitHub App nella tua organizzazione GitHub.

100 </Step>

101 

102 <Step title="Avvia la configurazione">

103 Fai clic su **Setup**. Questo inizia il flusso di installazione dell'app GitHub.

104 </Step>

105 

106 <Step title="Installa l'app GitHub di Claude">

107 Segui i prompt per installare l'app GitHub di Claude: scegli l'organizzazione GitHub che possiede i repository che desideri revisionare, scegli a quali repository l'app può accedere e approva i permessi richiesti.

108 

109 Per revisionare una pull request, Claude legge i contenuti del tuo repository attraverso l'accesso in lettura dell'app e pubblica commenti e il [check run](#check-run-output) attraverso il suo accesso in scrittura alle pull request e ai check. Durante l'installazione, concedi un insieme di permessi più ampio condiviso da altre funzionalità di Claude, come [GitHub Actions](/docs/it/github-actions); vedi [Permessi dell'app GitHub](/docs/it/github-actions#github-app-permissions) per l'elenco completo.

110 </Step>

111 

112 <Step title="Seleziona i repository">

113 Scegli quali repository abilitare per Code Review. Se non vedi un repository, assicurati di aver dato all'app GitHub di Claude l'accesso durante l'installazione. Puoi aggiungere altri repository in seguito.

114 </Step>

115 

116 <Step title="Imposta i trigger di revisione per repository">

117 Dopo il completamento della configurazione, la sezione Code Review mostra i tuoi repository in una tabella. Per ogni repository, utilizza il dropdown **Review Behavior** per scegliere quando vengono eseguite le revisioni:

118 

119 * **Once after PR creation**: la revisione viene eseguita una volta quando un PR viene aperto o contrassegnato come pronto per la revisione

120 * **After every push**: la revisione viene eseguita ad ogni push al ramo PR, catturando nuovi problemi mentre il PR si evolve e risolvendo automaticamente i thread quando correggi i problemi segnalati

121 * **Manual**: aprire o eseguire il push a un PR non avvia una revisione; commenta [`@claude review`](#manually-trigger-reviews) per richiederne una, o `@claude review always` per sottoscrivere anche il PR alle revisioni su push successivi

122 

123 Qualunque opzione tu scelga, Claude reviziona una [pull request da un fork](#review-pull-requests-from-forks) solo quando qualcuno commenta `@claude review` su di essa.

124 

125 La revisione ad ogni push esegue il maggior numero di revisioni e costa di più. La modalità manuale è utile per i repository ad alto traffico dove vuoi optare per PR specifici nella revisione, o per iniziare a revisionare i tuoi PR solo quando sono pronti.

126 </Step>

127</Steps>

128 

129La tabella dei repository mostra anche il costo medio per revisione per ogni repository in base all'attività recente. Utilizza il menu delle azioni della riga per attivare o disattivare Code Review per repository, o per rimuovere completamente un repository.

130 

131Per verificare la configurazione, apri un PR di test. Se hai scelto un trigger automatico, un check run denominato **Claude Code Review** appare entro pochi minuti. Se hai scelto Manual, commenta `@claude review` sul PR per avviare la prima revisione. Se non appare alcun check run, conferma che il repository è elencato nelle tue impostazioni di amministrazione e che l'app GitHub di Claude ha accesso ad esso.

132 

133<h2 id="manually-trigger-reviews">

134 Attiva manualmente le revisioni

135</h2>

136 

137I comandi di commento avviano una revisione su richiesta. Funzionano indipendentemente dal trigger configurato del repository, quindi puoi usarli per optare per PR specifici nella revisione in modalità Manual o per ottenere una re-revisione immediata in altre modalità.

138 

139| Comando | Cosa fa |

140| :- | :- |

141| `@claude review` | Avvia una singola revisione senza sottoscrivere il PR ai push futuri |

142| `@claude review always` | Avvia una revisione e sottoscrive il PR alle revisioni attivate da push da quel momento in poi |

143| `@claude review once` | Uguale a `@claude review`: avvia una singola revisione senza sottoscrivere |

144 

145Usa `@claude review always` quando vuoi che ogni push successivo al PR avvii una revisione aggiornata, ad esempio su un PR ad alta priorità in un repository impostato su modalità Manual. Poiché il comando semplice non sottoscrive il PR, puoi richiedere un secondo parere una tantum senza cambiare se i push successivi attivano revisioni.

146 16 

147<Note>17<Note>

148 Prima di un aggiornamento di luglio 2026, `@claude review` sottoscriveva il PR alle revisioni attivate da push. Se hai fatto affidamento su quel comportamento, commenta `@claude review always` invece. `@claude review once` funziona ancora e si comporta allo stesso modo del comando semplice.18 Code Review utilizza l'AI per esaminare il codice e potrebbe non rilevare bug, vulnerabilità di sicurezza o altri problemi. Una revisione senza risultati non significa che il tuo codice sia privo di errori o sicuro.

149</Note>19</Note>

150 20 

151Affinché uno di questi comandi attivi una revisione:21<span id="review-a-diff-locally" />

152 

153* Postalo come commento PR di primo livello, non come commento inline su una riga diff

154* Metti il comando all'inizio del commento, con `once` o `always` sulla stessa riga del resto del comando

155* Devi avere accesso in scrittura, manutenzione o amministratore sul repository

156* Il PR deve essere aperto

157 

158A differenza dei trigger automatici, i trigger manuali vengono eseguiti su PR bozza, poiché una richiesta esplicita segnala che vuoi la revisione ora indipendentemente dallo stato di bozza.

159 

160Se una revisione è già in esecuzione su quel PR, la richiesta viene messa in coda fino al completamento della revisione in corso. Puoi monitorare l'avanzamento tramite il check run sul PR.

161 

162<h3 id="review-pull-requests-from-forks">

163 Rivedi pull request da fork

164</h3>

165 

166Claude non rivede una pull request da un fork automaticamente, indipendentemente dall'impostazione **Review Behavior** del repository. Per avviarne una, commenta `@claude review` sulla pull request. I [requisiti per i comandi di commento](#manually-trigger-reviews) si applicano ancora, e l'accesso in scrittura di cui hai bisogno è al repository di base, non al fork.

167 22 

168Per ottenere un'altra revisione di una pull request da fork, pubblica un nuovo commento `@claude review`. `@claude review always` funziona anche, ma non sottoscrive la pull request alle revisioni su push successivi. Nient'altro che un comando di commento avvia una revisione su una pull request da fork:23Per attivare Code Review, un Owner della tua organizzazione Claude segue [Configura Code Review](/docs/it/code-review-setup). Claude può anche esaminare il codice senza questo servizio. Esegui [`/code-review`](/docs/it/code-review-local) nella tua sessione di Claude Code con qualsiasi piano, oppure [confronta tutte le opzioni](#compare-ways-to-get-a-review).

169 24 

170* Fare clic su **Re-run** sul check run non avvia una revisione25<h2 id="availability">

171* Fare push di nuovi commit non avvia una revisione, nemmeno in un repository impostato su **After every push**26 Disponibilità

172 

173<h2 id="customize-reviews">

174 Personalizza le revisioni

175</h2>27</h2>

176 28 

177Code Review legge due file dal tuo repository per guidare cosa segnala. Differiscono nel modo in cui influenzano fortemente la revisione:29Verifica che la tua organizzazione soddisfi i requisiti prima di configurare Code Review:

178 

179* **`CLAUDE.md`**: istruzioni di progetto condivise che Claude Code utilizza per tutti i compiti, non solo le revisioni. Code Review lo legge come contesto di progetto e segnala le violazioni appena introdotte come nit.

180* **`REVIEW.md`**: istruzioni solo per la revisione, fornite agli agenti che trovano e verificano i risultati e consultate dagli agenti che classificano e segnalano i risultati. Usalo per dire cosa vuole segnalato il tuo team, a quale gravità e come vengono segnalati i risultati.

181 

182<h3 id="claude-md">

183 CLAUDE.md

184</h3>

185 

186Code Review legge i file `CLAUDE.md` del tuo repository e tratta le violazioni appena introdotte come risultati a [livello di nit](#severity-levels). Questo funziona bidirezionalmente: se il tuo PR cambia il codice in un modo che rende una dichiarazione `CLAUDE.md` obsoleta, Claude segnala che i documenti devono essere aggiornati anche loro.

187 

188Claude legge i file `CLAUDE.md` a ogni livello della gerarchia di directory, quindi le regole nel `CLAUDE.md` di una sottodirectory si applicano solo ai file sotto quel percorso. Vedi la [documentazione della memoria](/docs/it/memory) per ulteriori informazioni su come funziona `CLAUDE.md`.

189 30 

190Per una guida specifica della revisione che non vuoi applicata alle sessioni generali di Claude Code, usa [`REVIEW.md`](#review-md) invece.31* **Piani**: [Team ed Enterprise](/docs/it/feature-availability)

191 32* **Host del codice**: repository ospitati su GitHub, inclusi [GitHub Enterprise Server](/docs/it/github-enterprise-server) e GitHub Enterprise Cloud con residenza dei dati. Per la residenza dei dati, chiedi a un Owner di seguire la [configurazione di amministrazione di GitHub Enterprise Server](/docs/it/github-enterprise-server#admin-setup) e di inserire l'hostname `ghe.com` della tua enterprise.

192<h3 id="review-md">33* **Conservazione dei dati**: Code Review non è disponibile per le organizzazioni con [Zero Data Retention](/docs/it/zero-data-retention) abilitato o con la [configurazione HIPAA](/docs/it/hipaa-setup) applicata, e non è coperto dal Business Associate Agreement (BAA) di Anthropic.

193 REVIEW\.md34* **Chiavi di crittografia**: Code Review non è ancora disponibile per le organizzazioni che utilizzano chiavi di crittografia gestite dal cliente (CMEK).

194</h3>35* **Provider cloud**: hai bisogno di un'organizzazione Claude con uno di questi piani anche se i tuoi sviluppatori usano Claude Code tramite Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry

195 36 

196`REVIEW.md` è un file alla radice del tuo repository che personalizza Code Review per il tuo repository. Gli agenti nella pipeline di revisione che trovano e verificano i risultati ricevono i suoi contenuti come istruzioni di revisione del tuo repository, insieme alla guida di revisione predefinita di Code Review, e gli agenti che classificano e segnalano i risultati la consultano prima di stabilire la gravità e scrivere la revisione.37<h2 id="set-up-and-use-code-review">

197 38 Configura e usa Code Review

198Metti le regole che vuoi applicate direttamente in `REVIEW.md`.

199 

200<h4 id="what-you-can-tune">

201 Cosa puoi regolare

202</h4>

203 

204`REVIEW.md` è markdown freeform, quindi qualsiasi cosa tu possa esprimere come istruzione di revisione è in ambito. I modelli di seguito hanno il maggior impatto nella pratica.

205 

206**Gravità**: ridefinisci cosa significa 🔴 Importante per il tuo repository. La calibrazione predefinita è mirata al codice di produzione; un repository di documenti, un repository di configurazione o un prototipo potrebbe volere una definizione molto più ristretta. Dichiara esplicitamente quali classi di risultato sono Importanti e quali sono Nit al massimo. Puoi anche escalare nell'altra direzione, ad esempio trattando qualsiasi violazione di `CLAUDE.md` come Importante piuttosto che il nit predefinito.

207 

208**Volume di nit**: limita quanti commenti 🟡 Nit una singola revisione pubblica. La prosa e i file di configurazione possono essere lucidati per sempre. Un limite come "segnala al massimo cinque nit, menziona il resto come conteggio nel riepilogo" mantiene le revisioni attuabili.

209 

210**Regole di salto**: elenca percorsi, modelli di ramo e categorie di risultati dove Claude non dovrebbe pubblicare risultati. I candidati comuni sono codice generato, lockfile, dipendenze vendute e rami creati da macchine, insieme a qualsiasi cosa il tuo CI già applica come linting o controllo ortografico. Per i percorsi che meritano una revisione ma non un controllo completo, imposta un bar più alto invece di saltare completamente: "in `scripts/`, segnala solo se quasi certo e grave."

211 

212**Controlli specifici del repository**: aggiungi regole che vuoi segnalate su ogni PR, come "le nuove rotte API devono avere un test di integrazione." Poiché `REVIEW.md` raggiunge direttamente ogni agente di ricerca e verifica dei risultati, questi atterrano più affidabilmente rispetto alle stesse regole in un lungo `CLAUDE.md`.

213 

214**Bar di verifica**: richiedi prove prima che una classe di risultato sia pubblicata. Ad esempio, "i reclami di comportamento hanno bisogno di una citazione `file:line` nella fonte, non un'inferenza dalla denominazione" riduce i falsi positivi che altrimenti costerebbero all'autore un round trip.

215 

216**Convergenza di re-revisione**: dichiara a Claude come comportarsi quando un PR è già stato revisionato. Una regola come "dopo la prima revisione, sopprimere i nuovi nit e pubblicare solo i risultati Importanti" impedisce a una correzione di una riga di raggiungere il round sette solo per lo stile.

217 

218**Forma di riepilogo**: chiedi al corpo della revisione di aprirsi con un conteggio di una riga come `2 fattuale, 4 stile`, e di iniziare con "nessun problema fattuale" quando è il caso. L'autore vuole conoscere la forma del lavoro prima dei dettagli.

219 

220<h4 id="example">

221 Esempio

222</h4>

223 

224Questo `REVIEW.md` ricalibrare la gravità per un servizio backend, limita i nit, salta i file generati e aggiunge controlli specifici del repository.

225 

226```markdown theme={null}

227# Istruzioni di revisione

228 

229## Cosa significa Importante qui

230 

231Riserva Importante per i risultati che interromperebbero il comportamento, perderebbero dati,

232o bloccherebbero un rollback: logica scorretta, query di database non scoped, PII

233nei log o nei messaggi di errore, e migrazioni che non sono retrocompatibili.

234Lo stile, la denominazione e i suggerimenti di refactoring sono Nit al massimo.

235 

236## Limita i nit

237 

238Segnala al massimo cinque Nit per revisione. Se ne hai trovati di più, dichiara "più N

239elementi simili" nel riepilogo invece di pubblicarli inline. Se

240tutto quello che hai trovato è un Nit, inizia il riepilogo con "Nessun problema bloccante."

241 

242## Non segnalare

243 

244- Qualsiasi cosa il CI già applica: lint, formattazione, errori di tipo

245- File generati sotto `src/gen/` e qualsiasi file `*.lock`

246- Codice solo per test che intenzionalmente viola le regole di produzione

247 

248## Controlla sempre

249 

250- Le nuove rotte API hanno un test di integrazione

251- Le righe di log non includono indirizzi email, ID utente o corpi di richiesta

252- Le query di database sono scoped al tenant del chiamante

253```

254 

255<h4 id="keep-it-focused">

256 Mantienilo focalizzato

257</h4>

258 

259La lunghezza ha un costo: un lungo `REVIEW.md` diluisce le regole che contano di più. Mantienilo alle istruzioni che cambiano il comportamento di revisione, e lascia il contesto di progetto generale in `CLAUDE.md`.

260 

261<h2 id="view-usage">

262 Visualizza l'utilizzo

263</h2>39</h2>

264 40 

265Vai a [claude.ai/analytics/code-review](https://claude.ai/analytics/code-review) per vedere l'attività di Code Review in tutta la tua organizzazione. Il dashboard mostra:41<span id="set-up-code-review" />

266 

267| Sezione | Cosa mostra |

268| :- | :- |

269| PRs reviewed | Conteggio giornaliero dei pull request revisionati nell'intervallo di tempo selezionato |

270| Code Review cost | Spesa su Code Review finora nel mese corrente |

271| Feedback | Conteggio dei commenti di revisione che sono stati risolti automaticamente perché uno sviluppatore ha affrontato il problema |

272| Repository breakdown | Conteggi per repository delle PR revisionate, dei commenti risolti e delle esecuzioni di revisione, con costo stimato e una vista per singola PR |

273 

274La scheda Code Review cost mostra un importo solo quando è selezionato il mese corrente. Le cifre di costo nelle analisi possono differire dalla tua fattura. I costi in Repository breakdown sono stimati a prezzo di listino, prima di eventuali sconti o crediti, e coprono solo le revisioni che Claude ha pubblicato su una pull request. Per la spesa accurata della fattura, fai riferimento alla tua fattura Anthropic.

275 

276<h2 id="pricing">

277 Prezzi

278</h2>

279 

280Code Review viene fatturato in base all'utilizzo dei token. Ogni revisione costa in media \$15-25, scalando con la dimensione del PR, la complessità del codebase e quanti problemi richiedono verifica. L'utilizzo di Code Review viene fatturato separatamente tramite [usage credits](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) e non conta rispetto all'utilizzo incluso nel tuo piano.

281 

282Il trigger di revisione che scegli influisce sul costo totale:

283 

284* **Once after PR creation**: viene eseguito una volta per PR

285* **After every push**: viene eseguito ad ogni push, moltiplicando il costo per il numero di push

286* **Manual**: nessuna revisione su PR aperti o push, quindi il costo si accumula solo dalle revisioni che qualcuno richiede

287 

288In modalità Once after PR creation o Manual, commentando `@claude review always` [opta il PR nelle revisioni attivate da push](#manually-trigger-reviews), quindi il costo aggiuntivo si accumula per push dopo quel commento. In modalità After every push, i push già attivano revisioni, quindi l'abbonamento non cambia il costo per push. Commentando `@claude review` viene eseguita una singola revisione senza sottoscrivere ai push futuri. Claude esamina una [pull request da un fork](#review-pull-requests-from-forks) solo quando qualcuno commenta `@claude review`, quindi una pull request da fork non accumula mai costo per push in nessuna modalità.

289 42 

290I costi appaiono sulla tua fattura Anthropic indipendentemente dal fatto che la tua organizzazione utilizzi Amazon Bedrock o Google Cloud's Agent Platform per altre funzionalità di Claude Code. Per impostare un limite di spesa mensile per Code Review, vai a [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage) e configura il limite per il servizio Claude Code Review.43<span id="pricing" />

291 44 

292Per monitorare la spesa, usa la [dashboard di analytics](#view-usage).45<span id="manually-trigger-reviews" />

293 46 

294<h2 id="troubleshooting">47<span id="customize-reviews" />

295 Risoluzione dei problemi

296</h2>

297 

298Le esecuzioni di revisione sono best-effort, e un'esecuzione non riuscita non blocca mai il tuo PR. Code Review ritenta automaticamente alcune revisioni interrotte. Questa sezione copre come eseguire di nuovo una revisione e dove cercare quando il check run segnala problemi che non riesci a trovare.

299 

300<h3 id="retrigger-a-failed-or-timed-out-review">

301 Riattiva una revisione non riuscita o scaduta

302</h3>

303 48 

304Quando una revisione non riesce o supera il limite di tempo, il check run si completa con un titolo come **Code review failed** o **Code review timed out**. La conclusione è ancora neutra, quindi nulla blocca il tuo merge. A meno che il riepilogo del check run non dica che una nuova revisione del commit è stata messa in coda automaticamente, esegui di nuovo la revisione tu stesso.49<span id="troubleshooting" />

305 50 

306Per eseguire di nuovo la revisione, commenta `@claude review` sul PR. Questo avvia una revisione nuova senza sottoscrivere il PR ai push futuri. Se il PR non è [da un fork](#review-pull-requests-from-forks), puoi invece fare clic su **Re-run** sul check **Claude Code Review** nella scheda Checks di GitHub. Un re-run avvia anche una revisione nuova senza sottoscrivere il PR.51Scegli la pagina in base a ciò che devi fare:

307 52 

308<h3 id="review-didn’t-run-and-the-pr-shows-a-budget-message">53<CardGroup cols={2}>

309 La revisione non è stata eseguita e il PR mostra un messaggio sul budget54 <Card title="Configura Code Review" icon="toggle-on" href="/docs/it/code-review-setup">

310</h3>55 Controlla i requisiti, installa l'app GitHub di Claude e scegli i repository, un livello di revisione e quando vengono eseguite le revisioni

311 56 </Card>

312Quando viene raggiunto il limite di spesa mensile della tua organizzazione per Code Review o il suo saldo di crediti di utilizzo è esaurito, Code Review salta la revisione e pubblica un singolo commento sul PR. Sia il commento sia la scheda del check run indicano la causa e rimandano alla pagina di amministrazione in cui un amministratore può risolvere il problema:

313 57 

314* **Limite di spesa raggiunto**: le revisioni riprendono all'inizio del prossimo periodo di fatturazione, o immediatamente dopo che un amministratore aumenta il limite su [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage)58 <Card title="Personalizza Code Review" icon="sliders" href="/docs/it/code-review-customize">

315* **Crediti di utilizzo esauriti**: le revisioni riprendono quando un amministratore aggiunge altri [crediti di utilizzo](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) su [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage)59 Regola cosa viene segnalato con i file `REVIEW.md` e `CLAUDE.md` nel tuo repository

60 </Card>

316 61 

317<h3 id="find-issues-that-aren’t-showing-as-inline-comments">62 <Card title="Leggi e richiedi revisioni su una pull request" icon="code-pull-request" href="/docs/it/code-review-pull-requests">

318 Trova problemi che non vengono visualizzati come commenti inline63 Leggi i risultati e la loro gravità, e richiedi un'altra revisione con un commento

319</h3>64 </Card>

320 65 

321Se il titolo del check run dice che sono stati trovati problemi ma non vedi commenti di revisione inline sul diff, cerca in questi altri luoghi dove vengono visualizzati i risultati:66 <Card title="Risoluzione dei problemi di Code Review" icon="wrench" href="/docs/it/code-review-troubleshooting">

67 Risolvi una revisione che non è partita, non è riuscita o è stata saltata per il budget

68 </Card>

322 69 

323* **Check run Details**: fai clic su **Details** accanto al check Claude Code Review nella scheda Checks. La tabella di gravità elenca ogni risultato con il suo file, riga e riepilogo indipendentemente dal fatto che il commento inline sia stato accettato.70 <Card title="Costi e utilizzo di Code Review" icon="chart-line" href="/docs/it/code-review-costs">

324* **Files changed annotations**: apri la scheda **Files changed** sul PR. I risultati vengono visualizzati come annotazioni allegate direttamente alle righe diff, separate dai commenti di revisione.71 Scopri come vengono fatturate le revisioni, stima la spesa, imposta il limite di spesa mensile e monitora l'attività di revisione

325* **Review body**: se hai fatto un push al PR mentre una revisione era in esecuzione, alcuni risultati potrebbero fare riferimento a righe che non esistono più nel diff attuale. Questi appaiono sotto un'intestazione **Additional findings** nel testo del corpo della revisione piuttosto che come commenti inline.72 </Card>

73</CardGroup>

326 74 

327<h2 id="review-a-diff-locally">75<h2 id="how-reviews-work">

328 Revisione di un diff localmente76 Come funzionano le revisioni

329</h2>77</h2>

330 78 

331Il comando [`/code-review`](/docs/it/commands) esamina un diff nel tuo terminale senza installare l'app GitHub. Segnala bug di correttezza. A seconda del modello e del livello di sforzo, la revisione copre anche pulizie di riutilizzo, semplificazione ed efficienza.79<span id="what-code-review-checks" />

332 

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

334 

335<Steps>

336 <Step title="Esegui /code-review">

337 Dalla sessione in cui stai lavorando, esegui il comando:

338 

339 ```text theme={null}

340 /code-review

341 ```

342 

343 Esamina i commit del tuo branch in anticipo rispetto al suo upstream più eventuali modifiche non sottoposte a commit, quindi ha bisogno di lavoro sul branch o nell'albero di lavoro per avere qualcosa da segnalare. Per esaminare qualcos'altro, passa un target: un percorso di file, un numero PR, un nome di branch o un intervallo di ref come `main...my-feature`.

344 

345 Puoi anche aggiungere flag:

346 

347 * `--fix`: applica i risultati al tuo albero di lavoro dopo la revisione

348 * `--comment`: pubblica i risultati su una pull request GitHub come commenti inline, o su una merge request GitLab come una singola nota

349 * `--post`: su una revisione cloud `ultra` di una pull request `github.com`, preseleziona la pubblicazione dei risultati finiti nella PR nella finestra di dialogo di avvio; vedi [Pubblica i risultati nella pull request](/docs/it/ultrareview#post-findings-to-the-pull-request). Richiede Claude Code v2.1.227 o successivo

350 * `--max-findings <n>`, `--max-findings all` o `--max-findings default`: segnala fino a `n` risultati, o tutti i risultati con `all`, al posto del consueto limite della revisione. Le revisioni successive riutilizzano il valore che hai digitato finché non passi `--max-findings default`. Richiede Claude Code v2.1.288 o successivo

351 

352 Quando 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 successivo. Quando `glab` non è installato, Claude stampa i risultati nel terminale.

353 80 

354 Passa la merge request come suo URL o un riferimento `!123`. Claude Code tratta un numero nudo o un nome di branch come una merge request solo quando l'origine del checkout è su `gitlab.com`. Su un'istanza GitLab auto-gestita, passa l'URL o il modulo `!123`.81Per impostazione predefinita, Code Review si concentra sulla correttezza: bug che interromperebbero la produzione, non preferenze di formattazione o copertura di test mancante. Per cambiare cosa segnala, [aggiungi file di guida](/docs/it/code-review-customize) al tuo repository.

355 </Step>

356 82 

357 <Step title="Continua a lavorare">83Una revisione viene eseguita sull'infrastruttura Anthropic in quattro fasi:

358 La revisione viene eseguita come un [subagent](/docs/it/sub-agents) in background con la sua finestra di contesto, quindi non riempie la tua conversazione. I risultati arrivano nella tua conversazione quando la revisione si completa.

359 </Step>

360 84 

361 <Step title="Agisci sui risultati">851. **Ricerca**: diversi agenti esaminano in parallelo il diff e il codice circostante.

362 Chiedi a Claude di correggere ciò che la revisione ha trovato. Se hai passato `--fix` o `--comment`, la revisione ha già applicato o pubblicato i suoi risultati.862. **Verifica**: un passaggio di verifica controlla i risultati candidati rispetto al codice e filtra i falsi positivi.

363 </Step>873. **Classificazione**: i risultati rimanenti vengono deduplicati e classificati per gravità.

364</Steps>884. **Pubblicazione**: la revisione pubblica i suoi risultati sulla pull request.

365 89 

366Claude segnala i risultati come testo nella risposta in entrambe queste esecuzioni, anche quando un'applicazione host richiede un elenco di risultati:90Ogni revisione lascia sulla pull request:

367 91 

368* In una sessione di terminale, dove `/code-review` esegue la revisione come un [subagent con fork](/docs/it/skills#run-skills-in-a-subagent)92* **Risultati**: commenti inline sulle righe interessate, con un riepilogo nel corpo della revisione

369* In un'esecuzione `-p` con output di testo o JSON93* **Un check run**: denominato **Claude Code Review**, con i risultati elencati nei suoi [dettagli](/docs/it/code-review-pull-requests#check-run-output). Il check run non si conclude con un fallimento.

94* **Quando non trova nulla**: il titolo del check run riporta **Code review found no issues**, e Claude pubblica la stessa breve nota sulla pull request

370 95 

371In un'applicazione host che richiede l'elenco dei risultati, come l'[app desktop](/docs/it/desktop#review-your-code), Claude segnala i risultati della revisione tramite lo strumento [`ReportFindings`](/docs/it/tools-reference). Claude Code esegue il rendering del rapporto come un elenco di risultati, e ogni voce mostra la posizione del file, un riassunto di una frase e un tag di categoria come `correctness` quando il risultato ne contiene uno. Una richiesta host si applica a ogni livello di sforzo e richiede Claude Code v2.1.218 o successivo.96Code Review sceglie i modelli Claude su cui vengono eseguite le revisioni, e le sue impostazioni di amministrazione non offrono una scelta del modello. Per rendere le revisioni più o meno approfondite, cambia il [livello di revisione](#review-levels).

372 97 

373Quando Claude corregge i risultati segnalati più tardi nella sessione, li segnala di nuovo, e Claude Code contrassegna ogni risultato nell'elenco dei risultati aggiornato come corretto, saltato o nessun cambiamento necessario.98Dopo che un Owner ha attivato Code Review, ogni repository ha un'impostazione per [quando vengono eseguite le revisioni](/docs/it/code-review-setup#set-when-reviews-run): una volta all'apertura di una pull request, dopo ogni push, oppure solo su richiesta. In ogni caso, chiunque abbia accesso in scrittura al repository può commentare `@claude review` su una pull request per [avviare una revisione](/docs/it/code-review-pull-requests#comment-commands).

374 99 

375<h3 id="what-the-review-reads-and-edits">100<h3 id="review-levels">

376 Cosa legge e modifica la revisione101 Livelli di revisione

377</h3>102</h3>

378 103 

379La revisione segue il tuo `CLAUDE.md` come qualsiasi sessione Claude Code, ma non legge [`REVIEW.md`](#review-md). Una revisione in background applica le sue modifiche `--fix` al di fuori dei [checkpoint](/docs/it/checkpointing#subagent-edits-not-restored) della tua sessione, quindi `/rewind` non le annulla; usa git per ripristinarle. Quando la revisione [viene eseguita in primo piano](#run-in-the-foreground), modifica il tuo albero di lavoro durante il tuo turno, quindi `/rewind` ripristina le sue modifiche come al solito.104Il livello di revisione stabilisce quanto è approfondita ogni revisione, e una revisione più approfondita costa di più:

380 105 

381<h3 id="tune-effort-and-arguments">106* **Quick**: un passaggio più leggero. Il livello più veloce, al costo più basso.

382 Regola lo sforzo e gli argomenti107* **Standard**: equilibrio tra profondità, velocità e costo. Il livello predefinito.

383</h3>108* **Deep**: il passaggio più approfondito. Richiede più tempo e costa di più.

384 

385Passa un [livello di sforzo](/docs/it/model-config#adjust-effort-level) per scambiare copertura con confidenza. A `low`, la revisione segnala i risultati di cui è più sicura, quindi vedi meno falsi positivi. Da `medium` fino a `max`, la revisione amplia la copertura.

386 

387Quando non digiti un livello, la revisione riutilizza l'ultimo livello da `low` a `max` che hai digitato, anche in una sessione precedente, e Claude Code mostra un avviso come `Reusing high effort, the level you typed last time`. Digita un livello, come `/code-review high`, per cambiare ciò che le esecuzioni successive riutilizzano; un livello che passi in un'esecuzione `-p` non interattiva non lo aggiorna. `ultra` non aggiorna né utilizza il livello ricordato. Se non hai mai digitato un livello, la revisione utilizza lo sforzo attuale della sessione. Prima della v2.1.223, un `/code-review` senza un livello utilizzava sempre lo sforzo attuale della sessione.

388 

389Dopo il livello di sforzo e i flag, Claude Code legge il resto della riga in uno dei due modi:

390 

391* **Senza `ultra`**: tutto ciò che rimane è il target della revisione, anche quando inizia con un altro nome di comando. `/code-review /fix-issue 123` esamina con `/fix-issue 123` come testo target invece di caricare `/fix-issue` come una seconda [skill in stack](/docs/it/skills#pass-arguments-to-skills). Prima della v2.1.218, un comando in stack dopo `/code-review` si espandeva come la sua propria skill.

392* **Con `ultra`**: Claude Code legge una singola parola come un branch base o un numero PR, e trasforma il testo più lungo che non nomina un branch o una PR in [una nota allegata alla revisione](/docs/it/ultrareview#pass-a-request-in-plain-words). `/code-review ultra check my auth changes` esamina il tuo branch attuale, e Claude mette in relazione i risultati con la tua nota.

393 

394<h3 id="run-in-the-foreground">

395 Esegui in primo piano

396</h3>

397 

398La revisione viene eseguita in background per impostazione predefinita; prima della v2.1.218, veniva eseguita all'interno della tua conversazione. Viene eseguita in primo piano invece in casi come questi:

399 109 

400* Esegui `/code-review` di nuovo mentre una revisione precedente è ancora in corso110Un Owner [sceglie un livello per l'organizzazione](/docs/it/code-review-setup#set-the-default-review-level) e può assegnare a un singolo repository un livello proprio, ad esempio Quick per un codebase di routine e Deep per uno critico. Per gli altri fattori che determinano il costo di ogni revisione, consulta [Costi e utilizzo di Code Review](/docs/it/code-review-costs).

401* Lo esegui in modalità non interattiva, con il flag `-p` o l'Agent SDK; Claude Code attende la revisione e include i risultati nella risposta, tranne per `ultra`, che [non attende la revisione cloud](/docs/it/ultrareview#run-ultrareview-non-interactively)

402* Imposti [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](/docs/it/env-vars) su `1`, che disattiva anche tutte le altre funzioni di attività in background

403 111 

404<h3 id="let-claude-start-the-review">112<h3 id="what-a-review-can-access">

405 Lascia che Claude avvii la revisione113 A cosa può accedere una revisione

406</h3>114</h3>

407 115 

408Claude può avviare `/code-review` da solo. Chiedigli di esaminare le tue modifiche in linguaggio naturale e può eseguire la skill senza che tu digiti il comando, e un'[attività pianificata](/docs/it/scheduled-tasks) con `/code-review` come suo prompt esegue la revisione.116Una revisione raggiunge il tuo repository tramite l'app GitHub di Claude che un Owner [installa durante la configurazione](/docs/it/code-review-setup#turn-on-code-review):

409 117 

410Un'attività pianificata non avvia mai la [revisione cloud](#escalate-to-ultrareview), quindi pianifica `/code-review` senza l'argomento `ultra`.118* **Dove viene eseguita**: sull'infrastruttura Anthropic, in un ambiente gestito. Le revisioni non vengono eseguite in [ambienti self-hosted](/docs/it/self-hosted-environments).

119* **Cosa legge e scrive**: all'interno di una revisione, l'accesso al tuo repository è di sola lettura, e una revisione non esegue push di commit. Sulla pull request, pubblica commenti e il [check run](/docs/it/code-review-pull-requests#check-run-output), risolve i propri thread di commenti precedenti e può reagire a un comando di commento con 👀. L'app stessa dispone di un [insieme di permessi più ampio](/docs/it/github-actions#github-app-permissions) condiviso da altre funzionalità di Claude.

120* **Come esamina il tuo codice**: una revisione lavora leggendo il diff e il codice circostante, senza compilare né eseguire il tuo codice.

411 121 

412Per impedire sia a Claude che alle attività pianificate di avviare la revisione mantenendo `/code-review` disponibile per te da digitare, aggiungi una voce [`skillOverrides`](/docs/it/skills#override-skill-visibility-from-settings) a un [file di impostazioni](/docs/it/settings#where-settings-live) come `~/.claude/settings.json`:122<h3 id="who-controls-a-review">

413 123 Chi controlla una revisione

414```json theme={null}

415{

416 "skillOverrides": {

417 "code-review": "user-invocable-only"

418 }

419}

420```

421 

422Prima della v2.1.246, Claude avviava `/code-review` da solo solo dove un flag di funzionalità recuperato da Anthropic lo attivava. In [sessioni che non recuperano flag di funzionalità](/docs/it/env-vars#features-that-need-feature-flag-fetching), `/code-review` veniva eseguito solo quando lo digitavi, e un `/code-review` pianificato raggiungeva Claude come testo semplice.

423 

424<h3 id="escalate-to-ultrareview">

425 Escalation a ultrareview

426</h3>124</h3>

427 125 

428`/code-review ultra --fix` esegue la [ultrareview](/docs/it/ultrareview) più profonda nel cloud, quindi applica i suoi risultati al tuo albero di lavoro quando tornano nella tua sessione.126* **Chi può avviarne una**: dove le revisioni vengono eseguite automaticamente, aprire una pull request o eseguire un push su di essa avvia una revisione, [tranne che su bozze e fork](/docs/it/code-review-pull-requests#review-drafts-and-pull-requests-from-forks). Un [comando di commento](/docs/it/code-review-pull-requests#comment-commands) ne avvia una solo quando proviene da una persona con accesso in scrittura al repository.

429 127* **Quali istruzioni segue**: `REVIEW.md` dal branch base o predefinito e [mai dalle modifiche della pull request stessa](/docs/it/code-review-customize#which-branch-review-md-is-read-from).

430Ultrareview utilizza il suo proprio ambito: il tuo branch attuale rispetto al branch predefinito del repository, più modifiche non sottoposte a commit e in staging nell'albero di lavoro. Per le modifiche non sottoposte a commit ai file denominati come credenziali o chiavi, come file `.env` e `*.tfvars`, Claude Code segue le regole per [caricare un repository locale in una sessione cloud](/docs/it/claude-code-on-the-web#send-local-repositories-without-github). Passa un nome di branch, come `/code-review ultra develop`, per confrontare con una base diversa.

431 128 

432Quando il target è una pull request `github.com`, puoi fare in modo che Claude [pubblichi i risultati finiti nella PR](/docs/it/ultrareview#post-findings-to-the-pull-request) come commento dal tuo account GitHub. Richiede Claude Code v2.1.227 o successivo.129<h2 id="compare-ways-to-get-a-review">

433 130 Confronta i modi per ottenere una revisione

434<Note>131</h2>

435 Ultrareview richiede l'autenticazione con un account claude.ai e non è disponibile su Amazon Bedrock, Google Cloud's Agent Platform, o Microsoft Foundry, o per le organizzazioni con Zero Data Retention abilitato o con la [configurazione HIPAA](/docs/it/hipaa-setup) applicata. Quando ultrareview non è disponibile, `/code-review ultra` esegue una revisione locale nella tua sessione.

436</Note>

437 132 

438Per eseguire una revisione cloud da uno script o da un job CI, usa il [sottocomando `claude ultrareview`](/docs/it/ultrareview#run-ultrareview-non-interactively), che attende i risultati e li stampa su stdout.133Per trovare le opzioni a tua disposizione, confronta la colonna **Chi può usarla** con il tuo piano e il tuo host del codice:

439 134 

440Il comando era denominato `/simplify` prima della v2.1.147, quando applicava le correzioni per impostazione predefinita. `/simplify` esegue una revisione separata solo per la pulizia che applica le correzioni senza cercare bug. Se hai scritto script per `/simplify` per la ricerca di bug, passa a `/code-review --fix`.135| Opzione | Cosa avvia una revisione | Dove viene eseguita | Chi può usarla |

136| :- | :- | :- | :- |

137| [Code Review](#how-reviews-work) | L'attività sulla pull request, in base all'impostazione di ciascun repository, o un commento `@claude review` | Infrastruttura Anthropic | Organizzazioni con un piano Team o Enterprise e repository GitHub, dopo che un Owner l'ha attivato |

138| [`/code-review`](/docs/it/code-review-local) | Esegui il comando sul tuo branch | La tua sessione di Claude Code | Chiunque, con qualsiasi piano |

139| [Ultrareview](/docs/it/ultrareview) | La avvii da Claude Code | Una sandbox cloud | Richiede l'accesso con un account claude.ai. Consulta [Ultrareview](/docs/it/ultrareview) per sapere dove non è disponibile |

140| Claude nella tua CI, con [GitHub Actions](/docs/it/github-actions) o [GitLab CI/CD](/docs/it/gitlab-ci-cd) | Gli eventi della tua pipeline, come ogni pull request o merge request | I tuoi runner CI | Chiunque abbia una chiave API Claude o credenziali di un provider cloud, su GitHub o GitLab |

141| Il tuo revisore personalizzato, come [subagent](/docs/it/sub-agents) o [skill](/docs/it/skills) | Tu o Claude lo invocate durante una sessione | Ovunque esegui Claude Code | Chiunque ne scriva uno |

441 142 

442<h2 id="related-resources">143<h2 id="related-resources">

443 Risorse correlate144 Risorse correlate

444</h2>145</h2>

445 146 

446* [Commands](/docs/it/commands): esegui `/code-review` in una sessione locale di Claude Code per controllare un diff prima di fare push147* [GitHub Enterprise Server](/docs/it/github-enterprise-server): usa Code Review con un'istanza GitHub self-hosted

447* [GitHub Actions](/docs/it/github-actions): esegui Claude nei tuoi flussi di lavoro GitHub Actions per l'automazione personalizzata oltre la revisione del codice148* [Permessi dell'app GitHub](/docs/it/github-actions#github-app-permissions): l'insieme completo di permessi richiesti dall'app GitHub di Claude

448* [GitLab CI/CD](/docs/it/gitlab-ci-cd): integrazione Claude self-hosted per le pipeline GitLab

449* [Memory](/docs/it/memory): come funzionano i file `CLAUDE.md` in Claude Code

450* [Analytics](/docs/it/analytics): traccia l'utilizzo di Claude Code oltre la revisione del codice

451* [How Anthropic secures its AI-native software development lifecycle](https://claude.com/blog/how-anthropic-secures-its-ai-native-software-development-lifecycle): come la revisione automatizzata si inserisce come uno strato del processo di sviluppo sicuro di Anthropic149* [How Anthropic secures its AI-native software development lifecycle](https://claude.com/blog/how-anthropic-secures-its-ai-native-software-development-lifecycle): come la revisione automatizzata si inserisce come uno strato del processo di sviluppo sicuro di Anthropic

code-review-costs.md +88 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Costi e utilizzo di Code Review

6 

7> Stima e limita la spesa della tua organizzazione per Claude Code Review: come vengono fatturate le review tramite i crediti di utilizzo, cosa determina il costo e dove monitorare l'utilizzo.

8 

9[Code Review](/docs/it/code-review) non ha un prezzo fisso per review. Quanto spendi dipende dal costo di ogni review e da quante review vengono eseguite:

10 

11* **Costo di ogni review**: varia in base al [livello di review](/docs/it/code-review-setup#set-the-default-review-level), alla dimensione della modifica, alla complessità del codice circostante e a quanti potenziali problemi richiedono una verifica

12* **Numero di review**: determinato dalla [frequenza con cui vengono eseguite le review](#how-often-reviews-run) in ogni repository

13 

14<h2 id="pricing">

15 Prezzi

16</h2>

17 

18Code Review viene fatturato in base all'utilizzo dei token tramite i [crediti di utilizzo](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans), separatamente dall'utilizzo incluso nel tuo piano. Le review vengono fatturate alla tua organizzazione, non allo sviluppatore che ha aperto la PR o richiesto la review. I costi compaiono nella tua fattura Anthropic indipendentemente dal fatto che la tua organizzazione utilizzi Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry per altre funzionalità di Claude Code.

19 

20<h3 id="how-often-reviews-run">

21 Frequenza di esecuzione delle review

22</h3>

23 

24Un repository che aggiungi dalla pagina di amministrazione parte con **After every push**, l'opzione che esegue più review. L'[impostazione **Review runs**](/docs/it/code-review-setup#set-when-reviews-run) di ogni repository determina quante review riceve una pull request:

25 

26* **Once after PR creation**: una review viene eseguita quando la pull request viene aperta, riaperta o contrassegnata come pronta per la review

27* **After every push**: viene eseguita a ogni push, moltiplicando il costo per il numero di push

28* **Manual (@claude review)**: nessuna review all'apertura o al push

29 

30I comandi nei commenti, le bozze e le pull request provenienti da fork modificano questi conteggi:

31 

32* **`@claude review always` in modalità Once after PR creation o Manual**: [attiva le review avviate dai push per la PR](/docs/it/code-review-pull-requests#comment-commands), quindi da quel commento in poi si accumulano costi aggiuntivi per ogni push

33* **`@claude review always` in modalità After every push**: i push attivano già le review, quindi l'iscrizione non modifica il costo per push

34* **`@claude review`**: esegue una singola review senza iscriversi ai push futuri

35* **Bozze e pull request provenienti da fork**: [le review automatiche le saltano entrambe](/docs/it/code-review-pull-requests#review-drafts-and-pull-requests-from-forks), quindi i push su di esse non aggiungono review

36 

37<h2 id="estimate-your-spend">

38 Stima la tua spesa

39</h2>

40 

41Prima di un'adozione su larga scala, esegui un piccolo progetto pilota per stimare la spesa mensile a partire dalle tue pull request.

42 

431. Imposta un [limite di spesa mensile](#limit-your-spend) per il progetto pilota.

442. Attiva Code Review per alcuni repository rappresentativi con **Review runs** impostato su **Once after PR creation** o **Manual (@claude review)**.

453. Dopo l'esecuzione di diverse review, leggi il costo medio per review di ogni repository nella colonna **Average cost** della tabella **Repositories**, nella sezione **Code review** di [**Admin settings > Claude Code**](https://claude.ai/admin-settings/claude-code#code-review).

464. Moltiplica quella media per il numero di pull request che il repository apre in un mese. Per **After every push**, moltiplica ancora per il numero tipico di push per pull request.

47 

48La media di un repository varia in base alla dimensione delle sue pull request e al livello di review che scegli.

49 

50<h2 id="limit-your-spend">

51 Limita la tua spesa

52</h2>

53 

54Per impostare un limite di spesa mensile per Code Review, vai su [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage) e configura il limite per il servizio Claude Code Review. Il limite si applica all'intera organizzazione.

55 

56Code Review salta le review quando uno qualsiasi di questi elementi si esaurisce:

57 

58* **Limite di spesa di Code Review**: il limite mensile che imposti per il servizio Claude Code Review. Si azzera all'inizio del periodo di fatturazione successivo e le review riprendono prima se lo aumenti.

59* **Limite di spesa dell'organizzazione**: il limite di spesa mensile complessivo della tua organizzazione per i crediti di utilizzo. Aumentalo nella stessa pagina.

60* **Saldo dei crediti di utilizzo**: il saldo dei crediti di utilizzo della tua organizzazione. Aggiungi crediti nella stessa pagina.

61 

62Code Review salta le review anche quando ciò che resta è inferiore al costo previsto di una review. Quando una review viene saltata, gli sviluppatori vedono un [commento sulla PR](/docs/it/code-review-troubleshooting#review-didn’t-run-and-the-pr-shows-a-budget-message) che indica la causa e rimanda alle impostazioni di utilizzo.

63 

64Per monitorare la spesa, usa la [dashboard di analytics](#view-usage).

65 

66<h2 id="view-usage">

67 Visualizza l'utilizzo

68</h2>

69 

70Vai su [claude.ai/analytics/code-review](https://claude.ai/analytics/code-review) per vedere l'attività di Code Review in tutta la tua organizzazione.

71 

72| Sezione | Cosa mostra |

73| :- | :- |

74| PRs reviewed | Numero giornaliero di pull request revisionate nell'intervallo di tempo selezionato |

75| Code Review cost | Spesa per Code Review finora nel mese corrente |

76| Feedback | Numero di commenti di review risolti automaticamente perché uno sviluppatore ha risolto il problema |

77| Repository breakdown | Conteggi per repository di PR revisionate, commenti risolti ed esecuzioni di review, con costo stimato e una vista per PR |

78 

79La scheda Code Review cost mostra un importo solo quando è selezionato il mese corrente. I dati sui costi in analytics possono differire dalla tua fattura. I costi in Repository breakdown sono stimati a prezzo di listino, prima di eventuali sconti o crediti, e coprono solo le review che Claude ha pubblicato su una pull request. Per una spesa corrispondente alla fattura, fai riferimento alla tua fattura Anthropic.

80 

81<h2 id="related-resources">

82 Risorse correlate

83</h2>

84 

85* [Configurare Code Review](/docs/it/code-review-setup): dove scegliere il livello di review e quando eseguire le review in ogni repository

86* [Leggere e richiedere review su una pull request](/docs/it/code-review-pull-requests): i comandi nei commenti, le pull request provenienti da fork e il messaggio sul budget che gli sviluppatori vedono quando una review viene saltata

87* [Code Review](/docs/it/code-review): cosa controlla una review e cosa pubblica

88* [Gestire i costi in modo efficace](/docs/it/costs): controlli della spesa e monitoraggio dell'utilizzo per il resto di Claude Code

code-review-customize.md +149 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Personalizza Code Review

6 

7> Regola ciò che Code Review segnala nelle tue pull request con REVIEW.md e CLAUDE.md: ricalibra la gravità, salta percorsi, aggiungi controlli e scopri quale copia viene applicata.

8 

9Puoi cambiare ciò che [Code Review](/docs/it/code-review) segnala nel tuo repository eseguendo il commit di istruzioni al suo interno. È così che riduci il volume dei nit, interrompi i commenti sui file generati o aggiungi una regola a cui il tuo team tiene. Inseriscile in uno di questi due file:

10 

11* **`CLAUDE.md`**: [istruzioni di progetto](/docs/it/memory) che Claude Code legge per ogni attività, revisioni incluse. Code Review le legge come contesto di progetto e segnala le modifiche che le violano.

12* **`REVIEW.md`**: istruzioni solo per le revisioni. Usalo per indicare cosa il tuo team vuole che venga segnalato, con quale gravità e cosa saltare.

13 

14Aggiungi `REVIEW.md` alla root del tuo repository ed esegui il merge. Poi [proteggi il tuo branch predefinito](#which-branch-review-md-is-read-from).

15 

16<Note>

17 Per cambiare quanto sono approfondite le revisioni o quando vengono eseguite, chiedi a un Owner di modificare il [livello di revisione](/docs/it/code-review-setup#set-the-default-review-level) o l'[impostazione **Review runs**](/docs/it/code-review-setup#set-when-reviews-run).

18</Note>

19 

20<h2 id="use-claude-md-for-project-wide-rules">

21 Usa CLAUDE.md per le regole valide per l'intero progetto

22</h2>

23 

24Code Review legge i file `CLAUDE.md` del tuo repository come contesto di progetto. Una modifica che viola una delle loro regole diventa un rilevamento al [livello di gravità](/docs/it/code-review-pull-requests#severity-levels) adatto al problema.

25 

26Una revisione legge il `CLAUDE.md` nella root del tuo repository e i file `CLAUDE.md` nelle directory padre di ciascun file modificato. Il `CLAUDE.md` di una sottodirectory viene letto quando la pull request modifica un file in quel percorso.

27 

28<h2 id="use-review-md-for-review-only-rules">

29 Usa REVIEW\.md per le regole specifiche della revisione

30</h2>

31 

32`REVIEW.md` è un file nella root del tuo repository che adatta Code Review al tuo repository. Puoi anche aggiungere un `REVIEW.md` in una sottodirectory per aggiungere controlli sulle modifiche in quel percorso, in aggiunta al file root.

33 

34Gli agenti che individuano i problemi e gli agenti che li verificano ricevono il suo contenuto come istruzioni di revisione del tuo repository, insieme alle indicazioni di revisione predefinite di Code Review. Il passaggio che scrive la revisione finale lo consulta prima di stabilire la gravità e scrivere il riepilogo.

35 

36Questo layout di esempio ha un file root e un file in una sottodirectory:

37 

38```text theme={null}

39your-repo/

40├── REVIEW.md # Root file

41├── services/

42│ └── billing/

43│ └── REVIEW.md # Adds checks for changes under services/billing/

44└── src/

45```

46 

47Prima di fare affidamento su un file in una sottodirectory, proteggi il tuo branch predefinito e verifica [cosa legge una revisione per la tua configurazione dei branch](#what-a-review-reads-for-each-branch-setup).

48 

49<Note>

50 Il servizio Code Review e il [comando `/code-review`](/docs/it/code-review-local) locale sono due strumenti separati e leggono file diversi. Il servizio legge sia `CLAUDE.md` sia `REVIEW.md`. Il comando `/code-review`, che esegui all'interno di una sessione di Claude Code sulla tua macchina, legge i tuoi file `CLAUDE.md` e non `REVIEW.md`. Inserisci in `CLAUDE.md` le indicazioni che vuoi applicare in entrambi i contesti e riserva `REVIEW.md` alle regole specifiche della revisione delle pull request.

51</Note>

52 

53<h3 id="example-review-md">

54 Esempio di REVIEW\.md

55</h3>

56 

57Questo `REVIEW.md` ricalibra la gravità per un servizio backend, limita i nit, salta i file generati e aggiunge controlli specifici del repository.

58 

59```markdown theme={null}

60# Review instructions

61 

62## What Important means here

63 

64Reserve Important for findings that would break behavior, leak data,

65or block a rollback: incorrect logic, unscoped database queries, PII

66in logs or error messages, and migrations that aren't backward

67compatible. Style, naming, and refactoring suggestions are Nit at

68most.

69 

70## Cap the nits

71 

72Report at most five Nits per review.

73 

74## Do not report

75 

76- Anything CI already enforces: lint, formatting, type errors

77- Generated files under `src/gen/` and any `*.lock` file

78- Test-only code that intentionally violates production rules

79 

80## Always check

81 

82- New API routes have an integration test

83- Log lines don't include email addresses, user IDs, or request bodies

84- Database queries are scoped to the caller's tenant

85```

86 

87<h3 id="choose-what-to-write-in-review-md">

88 Scegli cosa scrivere in REVIEW\.md

89</h3>

90 

91`REVIEW.md` è Markdown in formato libero che cambia ciò che una revisione individua e riporta. Non cambia il formato della revisione. Trova il problema che stai riscontrando, quindi aggiungi un'istruzione come quella mostrata. L'[esempio](#example-review-md) usa le prime quattro.

92 

93* **Vengono contrassegnate come Important le cose sbagliate**: ridefinisci cosa significa 🔴 Important per il tuo repository. La calibrazione predefinita è pensata per il codice di produzione, e un repository di documentazione, un repository di configurazione o un prototipo potrebbero richiedere una definizione molto più ristretta. Indica quali classi di rilevamenti sono Important e quali sono al massimo Nit. Puoi anche alzare la gravità, ad esempio trattando qualsiasi violazione di `CLAUDE.md` come Important.

94* **Troppi nit**: limita quanti commenti 🟡 Nit pubblica una singola revisione. Un limite come "riporta al massimo cinque nit" mantiene le revisioni utilizzabili.

95* **Commenti sui file generati o su ciò che la CI controlla già**: elenca i percorsi e le categorie di rilevamenti per cui Claude deve saltare le segnalazioni. I candidati comuni sono il codice generato, i lockfile e le dipendenze vendorizzate, oltre a tutto ciò che la tua CI già applica, come il linting o il controllo ortografico. Per i percorsi che meritano una certa revisione ma non un esame completo, imposta invece una soglia più alta: "in `scripts/`, segnala solo se quasi certo e grave."

96* **Una regola del team non viene controllata**: aggiungi le regole che vuoi vengano segnalate in ogni pull request, come "le nuove route API devono avere un test di integrazione."

97* **Rilevamenti che si rivelano errati**: richiedi prove prima che una classe di rilevamenti venga pubblicata. Ad esempio, "le affermazioni sul comportamento richiedono una citazione `file:line` nel sorgente, non un'inferenza basata sui nomi" riduce i falsi positivi che altrimenti costerebbero all'autore un ulteriore scambio.

98 

99Alcune di queste istruzioni [richiedono il file root su un branch predefinito protetto](#which-branch-review-md-is-read-from).

100 

101Limita `REVIEW.md` alle istruzioni che cambiano il comportamento della revisione e lascia il contesto generale del progetto in `CLAUDE.md`.

102 

103<h3 id="which-branch-review-md-is-read-from">

104 Da quale branch viene letto REVIEW\.md

105</h3>

106 

107Code Review legge `REVIEW.md` dal branch di base della pull request o dal branch predefinito, mai dalle modifiche della pull request stessa. Per cambiare il comportamento della revisione, esegui prima il merge della modifica a `REVIEW.md`.

108 

109Mantieni `REVIEW.md` sul tuo branch predefinito e proteggi quel branch. Quando una revisione legge la copia su un branch predefinito protetto, la prima riga della tabella seguente, rispetta queste istruzioni del file root:

110 

111* Abbassare la gravità di un rilevamento

112* Escludere percorsi, file o classi di problemi

113* Limitare i commenti nit

114 

115<h4 id="what-counts-as-branch-protection">

116 Cosa conta come protezione del branch

117</h4>

118 

119Code Review considera come protezione queste impostazioni:

120 

121* **Branch predefinito**: una regola classica di protezione del branch o un ruleset

122* **Qualsiasi altro branch**: solo un ruleset

123 

124Un ruleset conta quando limita gli aggiornamenti o richiede pull request con almeno un'approvazione. Se richiede pull request, deve anche annullare quell'approvazione a ogni nuovo push oppure richiedere che l'approvazione arrivi dopo l'ultimo push.

125 

126<h4 id="what-a-review-reads-for-each-branch-setup">

127 Cosa legge una revisione per ciascuna configurazione dei branch

128</h4>

129 

130Trova la situazione del tuo repository nella prima colonna della tabella seguente.

131 

132| Protezione del branch | Copia letta | File letti |

133| :- | :- | :- |

134| Il branch predefinito è protetto e la pull request punta a esso o a un branch non protetto da alcun ruleset | Branch predefinito | File root e delle sottodirectory |

135| La pull request punta a un altro branch protetto da un ruleset | Quel branch di base | File root e delle sottodirectory |

136| Il branch predefinito non è protetto e il branch di base non ha regole di protezione di nessuno dei due tipi | Branch predefinito | File root |

137| Code Review non riesce a confermare le impostazioni di protezione. Questo include un branch predefinito non protetto con un branch di base che ha solo una regola classica | Nessuna | Nessuno |

138 

139Se il check run menziona `REVIEW.md`, consulta [Il check run menziona REVIEW.md](/docs/it/code-review-troubleshooting#the-check-run-mentions-review-md).

140 

141<h2 id="related-resources">

142 Risorse correlate

143</h2>

144 

145* [Code Review](/docs/it/code-review): cos'è il servizio e come viene eseguita una revisione

146* [Leggere e richiedere revisioni su una pull request](/docs/it/code-review-pull-requests#severity-levels): cosa significa ciascun livello di gravità e come appaiono i rilevamenti

147* [Configurare Code Review](/docs/it/code-review-setup): il livello di revisione e quando vengono eseguite le revisioni, impostati da un Owner

148* [Revisione locale con `/code-review`](/docs/it/code-review-local): il comando `/code-review`, i suoi argomenti e i livelli di sforzo

149* [Memoria](/docs/it/memory): come funzionano i file `CLAUDE.md` in Claude Code

code-review-local.md +197 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Revisione locale con /code-review

6 

7> Esegui `/code-review` in una sessione di Claude Code per trovare bug nelle modifiche del tuo branch, indirizzare la revisione su una pull request o un percorso e far applicare le correzioni a Claude.

8 

9`/code-review` è un comando che digiti nel prompt di Claude Code, nella sessione in cui stai lavorando. Claude revisiona le modifiche sul tuo branch, cerca bug di correttezza e riporta ciò che ha trovato nella tua conversazione. A seconda del modello e del livello di sforzo, la revisione copre anche il riutilizzo, la semplificazione e le pulizie per l'efficienza.

10 

11Il comando funziona con qualsiasi piano. La revisione viene eseguita nella tua sessione, quindi viene conteggiata nell'utilizzo del tuo piano o nella fatturazione API allo stesso modo del resto della sessione.

12 

13<Note>

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

15</Note>

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.

18 

19<Steps>

20 <Step title="Esegui /code-review">

21 Esegui il comando:

22 

23 ```text theme={null}

24 /code-review

25 ```

26 

27 Senza una destinazione, la revisione copre le modifiche sul tuo branch corrente. Per indirizzare invece la revisione su una pull request, un altro branch, un percorso o un intervallo di commit, consulta [Scegli cosa revisionare](#choose-what-to-review).

28 

29 Puoi anche aggiungere dei flag:

30 

31 * `--fix`: chiede inoltre a Claude di applicare i risultati al tuo albero di lavoro dopo la revisione. Le sue modifiche passano attraverso la tua [modalità di permesso](/docs/it/permission-modes).

32 * `--comment`: pubblica i risultati su una pull request GitHub come commenti inline, oppure su una [merge request GitLab](#post-findings-to-a-gitlab-merge-request) come singola nota

33 </Step>

34 

35 <Step title="Continua a lavorare">

36 La revisione viene eseguita come [subagent](/docs/it/sub-agents) in background con la propria finestra di contesto, quindi non riempie la tua conversazione. I risultati arrivano nella tua conversazione quando la revisione è completata.

37 </Step>

38 

39 <Step title="Agisci sui risultati">

40 Chiedi a Claude di correggere ciò che la revisione ha trovato. Con `--fix` o `--comment`, Claude applica o pubblica i risultati come parte della revisione, e potrebbe esserti chiesto di approvare le sue modifiche.

41 </Step>

42</Steps>

43 

44<h2 id="choose-what-to-review">

45 Scegli cosa revisionare

46</h2>

47 

48Per revisionare qualcosa di diverso dal tuo branch corrente, digita una destinazione dopo il livello di sforzo e gli eventuali flag. Claude riceve quel testo come destinazione della revisione. Una destinazione può essere il numero di una pull request, il nome di un branch, il percorso di un file o un intervallo di revisioni Git. Trova ciò che vuoi revisionare nella prima colonna e digita ciò che mostra la seconda colonna:

49 

50| Per indirizzare la revisione su | Digita |

51| :- | :- |

52| Il tuo branch corrente e le modifiche non sottoposte a commit | `/code-review` |

53| I tuoi ultimi 15 commit | `/code-review HEAD~15..HEAD` |

54| Un branch rispetto a un altro | `/code-review main...my-feature` |

55| Un singolo commit, dove `abc1234` è l'hash del commit | `/code-review abc1234^..abc1234` |

56| Una pull request per numero | `/code-review 1234` |

57| Il percorso di un file o di una directory | `/code-review src/auth` |

58 

59Senza una destinazione, `/code-review` revisiona i commit del tuo branch che sono avanti rispetto al suo branch upstream, più le tue modifiche non sottoposte a commit. Se il branch non ha un upstream, Claude confronta con `main` o con il commit precedente.

60 

61Con `ultra`, Claude Code interpreta la destinazione in modo diverso, come descritto in [Testo dopo il livello di sforzo e i flag](#text-after-the-effort-level-and-flags).

62 

63<h2 id="what-the-review-reads-and-edits">

64 Cosa legge e modifica la revisione

65</h2>

66 

67Verifica questi aspetti prima di eseguire una revisione, soprattutto con `--fix`:

68 

69* **Modifiche**: senza `--fix`, le istruzioni della revisione chiedono a Claude solo un report. Con `--fix`, gli chiedono anche di applicare i risultati al tuo albero di lavoro. In entrambi i casi, qualsiasi modifica passa attraverso la tua modalità di permesso.

70* **Riavvolgimento**: una revisione in background applica le sue modifiche `--fix` al di fuori dei [checkpoint](/docs/it/checkpointing#subagent-edits-not-restored) della tua sessione. Dopo una di queste, `/rewind` ripristina solo i file che Claude aveva già modificato nella tua conversazione. Le modifiche della revisione ad altri file restano, quindi usa git per annullarle. Quando la revisione [viene eseguita in primo piano](#run-in-the-foreground), modifica il tuo albero di lavoro durante il tuo turno, quindi `/rewind` ripristina le sue modifiche come di consueto.

71* **Istruzioni**: la revisione segue il tuo `CLAUDE.md`, anche in un'esecuzione `-p` non interattiva. Non legge `REVIEW.md`. Quel file configura il [servizio Code Review](/docs/it/code-review-customize#use-review-md-for-review-only-rules) gestito sulle pull request GitHub.

72 

73<h2 id="how-findings-are-reported">

74 Come vengono riportati i risultati

75</h2>

76 

77Claude riporta i risultati come testo nella risposta in entrambe queste esecuzioni:

78 

79* In una sessione del terminale, dove `/code-review` esegue la revisione come [subagent forkato](/docs/it/skills#run-skills-in-a-subagent)

80* In un'esecuzione `-p` con output in formato testo o JSON

81 

82In un'applicazione host che richiede l'elenco dei risultati, come l'[app desktop](/docs/it/desktop#review-your-code), Claude riporta invece i risultati della revisione tramite lo [strumento `ReportFindings`](/docs/it/tools-reference). Il report appare come elenco di risultati, e ogni voce mostra la posizione nel file, un riepilogo di una frase e un tag di categoria come `correctness` quando il risultato ne ha uno. Una richiesta dell'host si applica a ogni livello di sforzo e richiede Claude Code v2.1.218 o successiva.

83 

84Quando Claude corregge i risultati riportati più avanti nella sessione, li riporta di nuovo. Claude Code contrassegna quindi ogni risultato nell'elenco aggiornato come corretto, ignorato o nessuna modifica necessaria.

85 

86<h2 id="tune-effort-and-arguments">

87 Regola lo sforzo e gli argomenti

88</h2>

89 

90Oltre a `--fix` e `--comment`, il comando accetta questi flag:

91 

92* `--post`: in una revisione cloud `ultra` di una pull request su `github.com`, preseleziona la pubblicazione dei risultati finali sulla PR nella finestra di avvio. Consulta [Pubblica i risultati sulla pull request](/docs/it/ultrareview#post-findings-to-the-pull-request). Richiede Claude Code v2.1.227 o successiva.

93* `--max-findings <n>`, `--max-findings all` o `--max-findings default`: riporta fino a `n` risultati, oppure tutti i risultati con `all`, al posto del limite abituale della revisione. Quando la revisione riporta tramite lo strumento dei risultati, il limite è 32. Le revisioni successive riutilizzano il valore che hai digitato finché non passi `--max-findings default`, ma un valore passato in un'esecuzione `-p` non interattiva non viene memorizzato. Richiede Claude Code v2.1.288 o successiva.

94 

95Passa un [livello di sforzo](/docs/it/model-config#adjust-effort-level) per bilanciare copertura e affidabilità. Con `low`, la revisione riporta i risultati di cui è più sicura, quindi vedi meno falsi positivi. Da `medium` fino a `max`, la revisione amplia la copertura.

96 

97Quando non digiti un livello, la revisione riutilizza l'ultimo livello tra `low` e `max` che hai digitato, anche in una sessione precedente. Claude Code mostra un avviso come `Reusing high effort, the level you typed last time`. Queste regole decidono quale livello usa un'esecuzione:

98 

99* **Digitare un livello**: un livello che digiti, come `/code-review high`, cambia ciò che riutilizzano le esecuzioni successive

100* **Esecuzioni non interattive**: un livello che passi in un'esecuzione `-p` non interattiva non aggiorna il livello memorizzato

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

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

103 

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

105 

106<h3 id="post-findings-to-a-gitlab-merge-request">

107 Pubblica i risultati su una merge request GitLab

108</h3>

109 

110Quando 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.

111 

112Passa la merge request come URL o come riferimento `!123`. Claude Code tratta un numero semplice o il nome di un branch come merge request solo quando l'origin del checkout si trova su `gitlab.com`. Su un'istanza GitLab self-managed, passa l'URL o la forma `!123`.

113 

114<h3 id="text-after-the-effort-level-and-flags">

115 Testo dopo il livello di sforzo e i flag

116</h3>

117 

118Dopo il livello di sforzo e i flag, Claude Code legge il resto della riga come destinazione della revisione. L'argomento `ultra` cambia questa interpretazione:

119 

120* **Con `ultra`**: Claude Code legge una singola parola come branch di base o numero di PR. Un testo più lungo che non nomina un branch o una PR diventa [una nota allegata alla revisione](/docs/it/ultrareview#pass-a-request-in-plain-words). `/code-review ultra check my auth changes` revisiona il tuo branch corrente e Claude mette in relazione i risultati con la tua nota.

121* **Senza `ultra`**: tutto ciò che rimane è la destinazione della revisione, anche quando inizia con il nome di un altro comando. `/code-review /fix-issue 123` esegue la revisione con `/fix-issue 123` come testo della destinazione invece di caricare `/fix-issue` come seconda [skill in sequenza](/docs/it/skills#pass-arguments-to-skills). Prima della v2.1.218, un comando posto in sequenza dopo `/code-review` veniva espanso come skill a sé stante.

122 

123<h2 id="run-in-the-foreground">

124 Esegui in primo piano

125</h2>

126 

127Per far eseguire la revisione in primo piano, esegui una di queste operazioni:

128 

129* Eseguila in modalità non interattiva, con il flag `-p` o con l'Agent SDK. Claude Code attende la revisione e include i risultati nella risposta, tranne che per `ultra`, che [non attende la revisione cloud](/docs/it/ultrareview#run-ultrareview-non-interactively).

130* Imposta [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](/docs/it/env-vars) su `1`, il che disattiva anche tutte le altre funzionalità delle attività in background

131* Esegui di nuovo `/code-review` mentre una revisione precedente è ancora in corso

132 

133Prima della v2.1.218, la revisione veniva eseguita all'interno della tua conversazione.

134 

135<h2 id="let-claude-start-the-review">

136 Lascia che Claude avvii la revisione

137</h2>

138 

139Claude può avviare `/code-review` da solo, senza che tu digiti il comando:

140 

141* **Quando lo chiedi in linguaggio naturale**: chiedi a Claude di revisionare le tue modifiche e può eseguire la skill

142* **Da un'attività pianificata**: un'[attività pianificata](/docs/it/scheduled-tasks) con `/code-review` come prompt esegue la revisione

143 

144Un'attività pianificata non avvia mai la [revisione cloud](#escalate-to-ultrareview), quindi pianifica `/code-review` senza l'argomento `ultra`.

145 

146Per impedire sia a Claude sia alle attività pianificate di avviare la revisione mantenendo `/code-review` disponibile per essere digitato da te, aggiungi una voce [`skillOverrides`](/docs/it/skills#override-skill-visibility-from-settings) a un [file di impostazioni](/docs/it/settings#where-settings-live) come `~/.claude/settings.json`:

147 

148```json theme={null}

149{

150 "skillOverrides": {

151 "code-review": "user-invocable-only"

152 }

153}

154```

155 

156Prima della v2.1.246, Claude avviava `/code-review` da solo solo dove un feature flag recuperato da Anthropic lo attivava. Nelle [sessioni che non recuperano i feature flag](/docs/it/env-vars#features-that-need-feature-flag-fetching), `/code-review` veniva eseguito solo quando lo digitavi, e un `/code-review` pianificato arrivava a Claude come testo semplice.

157 

158<h2 id="escalate-to-ultrareview">

159 Passa a ultrareview

160</h2>

161 

162`/code-review ultra --fix` esegue nel cloud la più approfondita [ultrareview](/docs/it/ultrareview), quindi chiede a Claude di applicare i suoi risultati al tuo albero di lavoro quando tornano nella tua sessione.

163 

164Ultrareview usa un proprio ambito:

165 

166* **Cosa confronta**: il tuo branch corrente rispetto al branch predefinito del repository, più le modifiche non sottoposte a commit e quelle in staging nell'albero di lavoro

167* **File sensibili**: per le modifiche non sottoposte a commit a file con nomi simili a credenziali o chiavi, come i file `.env` e `*.tfvars`, Claude Code segue le regole per il [caricamento di un repository locale in una sessione cloud](/docs/it/claude-code-on-the-web#send-local-repositories-without-github)

168* **Una base diversa**: passa il nome di un branch, come `/code-review ultra develop`, per confrontare con una base diversa

169 

170Quando la destinazione è una pull request su `github.com`, puoi far [pubblicare a Claude i risultati finali sulla PR](/docs/it/ultrareview#post-findings-to-the-pull-request) come commento dal tuo account GitHub. Richiede Claude Code v2.1.227 o successiva.

171 

172<Note>

173 Ultrareview richiede l'autenticazione con un account claude.ai. Non è disponibile su Amazon Bedrock, Agent Platform di Google Cloud o Microsoft Foundry, né per le organizzazioni con Zero Data Retention abilitato o con la [configurazione HIPAA](/docs/it/hipaa-setup) applicata. In questi casi, `/code-review ultra` esegue invece una revisione locale nella tua sessione. Le organizzazioni che usano [chiavi di crittografia gestite dal cliente](https://platform.claude.com/docs/en/manage-claude/cmek) (CMEK) non possono eseguire ultrareview. Per revisionare le tue modifiche in locale, esegui `/code-review`.

174</Note>

175 

176Per eseguire una revisione cloud da uno script o da un job CI, usa il [sottocomando `claude ultrareview`](/docs/it/ultrareview#run-ultrareview-non-interactively), che attende i risultati e li stampa su stdout.

177 

178<h2 id="change-or-build-on-the-review">

179 Modifica la revisione o costruiscici sopra

180</h2>

181 

182`/code-review` è una [skill inclusa](/docs/it/skills#bundled-skills): le sue istruzioni sono integrate in Claude Code, quindi non esiste un file `SKILL.md` su disco da aprire o modificare. Per fornire a ogni revisione regole di progetto da seguire, aggiungile al tuo `CLAUDE.md`. Per andare oltre, parti da una di queste pagine:

183 

184* **Sostituisci il comando**: una skill di progetto o personale chiamata `code-review` viene eseguita al posto di quella inclusa, e l'alias `/review` continua a eseguire la revisione inclusa. Consulta [Risolvi le skill che condividono un nome](/docs/it/skills#resolve-skills-that-share-a-name).

185* **Crea il tuo revisore**: scrivi un [subagent](/docs/it/sub-agents) revisore o una [skill](/docs/it/skills) di revisione

186* **Usa un comando affine**: [`/simplify`](/docs/it/commands) esegue la revisione solo per la pulizia e applica le sue correzioni, e [`/verify`](/docs/it/commands) esegue la tua app per confermare che una modifica funzioni

187 

188Il comando si chiamava `/simplify` prima della v2.1.147, quando applicava le correzioni per impostazione predefinita. Se hai scritto script che usano `/simplify` per trovare bug, passa a `/code-review --fix`.

189 

190<h2 id="related-resources">

191 Risorse correlate

192</h2>

193 

194* [Code Review](/docs/it/code-review): il servizio gestito che revisiona ogni pull request su GitHub per la tua organizzazione

195* [Ultrareview](/docs/it/ultrareview): configurazione, limiti e costi della revisione cloud più approfondita

196* [Comandi](/docs/it/commands): il riferimento in una riga per `/code-review`, `/review`, `/simplify` e `/verify`

197* [Skill](/docs/it/skills): come funzionano le skill incluse e come scriverne di tue

code-review-pull-requests.md +169 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Leggere e richiedere revisioni su una pull request

6 

7> Leggi i risultati di Code Review sulla tua pull request GitHub, rispondi o ignorali e richiedi una revisione con `@claude review`.

8 

9Code Review è un servizio gestito che un Owner della tua organizzazione Claude attiva per un insieme di repository GitHub. Una volta attivo, Claude revisiona le pull request in quei repository e pubblica i suoi risultati come commenti inline, un riepilogo nel corpo della revisione e un check run denominato **Claude Code Review**. Una revisione non approva né blocca mai la tua pull request, e il check run non si conclude mai con un errore.

10 

11Un Owner controlla [quando vengono eseguite le revisioni](/docs/it/code-review-setup#set-when-reviews-run) e [quanto sono approfondite](/docs/it/code-review-setup#set-the-default-review-level) per ciascun repository.

12 

13<Note>

14 Se il tuo piano non include Code Review, puoi comunque far revisionare il tuo branch a Claude da una sessione di Claude Code: consulta [Revisionare in locale con `/code-review`](/docs/it/code-review-local).

15</Note>

16 

17<h2 id="severity-levels">

18 Livelli di gravità

19</h2>

20 

21Claude pubblica ogni risultato come commento inline sulle righe interessate e lo contrassegna con uno di tre livelli di gravità:

22 

23| Indicatore | Gravità | Significato |

24| :- | :- | :- |

25| 🔴 | Important | Un bug che dovrebbe essere corretto prima del merge |

26| 🟡 | Nit | Un problema minore, che vale la pena correggere ma non bloccante |

27| 🟣 | Pre-existing | Un bug che esiste nel codebase ma non è stato introdotto da questa PR |

28 

29Quando la revisione ha registrato il suo ragionamento, il risultato include una sezione compressa **Why this was flagged**. Espandila per leggere perché Claude ha segnalato il problema e come lo ha verificato.

30 

31Per cambiare ciò che Claude segnala nel tuo repository o come classifica la gravità, consulta [Personalizzare Code Review](/docs/it/code-review-customize).

32 

33<h2 id="respond-to-findings">

34 Rispondere ai risultati

35</h2>

36 

37Puoi fare il merge senza rispondere a un risultato, a meno che le regole del tuo repository non lo richiedano. Se la protezione del branch [richiede la risoluzione delle conversazioni](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches#require-conversation-resolution-before-merging), risolvi il thread di ogni risultato prima di fare il merge.

38 

39Per eliminare un risultato, risolvi il suo thread o esegui il push di una correzione.

40 

41* **Ignoralo senza modificare il codice**: risolvi tu stesso il thread su GitHub. Rispondere soltanto non fa ignorare un risultato.

42* **Correggi il problema**: modifica il codice ed esegui il push. La revisione successiva della pull request risolve il thread precedente quando ritiene che il problema sia stato corretto, sia che quella revisione venga eseguita automaticamente al tuo push sia che tu la richieda.

43* **Spiega o dissenti**: rispondi al commento. Claude non risponde subito e una risposta non avvia una revisione. La revisione successiva della pull request legge le risposte ai suoi risultati precedenti e può risolvere il thread o pubblicare una risposta di follow-up. Se lo stesso tipo di risultato continua a ripresentarsi, chiedi a un maintainer di aggiungere una regola a [`REVIEW.md`](/docs/it/code-review-customize#choose-what-to-write-in-review-md).

44 

45Per ottenere quella revisione successiva senza eseguire il push, scrivi `@claude review` come [commento di primo livello sulla pull request](#comment-commands).

46 

47<h2 id="check-run-output">

48 Output del check run

49</h2>

50 

51Il link **Details** sul check run **Claude Code Review** apre i risultati in un'unica tabella ordinata per gravità, inclusi i risultati il cui commento inline non è stato accettato da GitHub:

52 

53| Gravità | File:Riga | Problema |

54| - | - | - |

55| 🔴 Important | `src/auth/session.ts:142` | Il refresh del token entra in race condition con il logout, lasciando attive sessioni obsolete |

56| 🟡 Nit | `src/auth/session.ts:88` | `parseExpiry` restituisce silenziosamente 0 con input malformato |

57 

58Un risultato che ha una riga ma non è stato pubblicato come commento inline appare come annotazione nella scheda **Files changed**, sulle righe interessate. I risultati Important vengono mostrati in rosso, i nit in giallo e i bug preesistenti in grigio.

59 

60Il check run si conclude come neutral, oppure come skipped quando una revisione automatica non è stata eseguita perché un push non ha modificato alcun file. Non si conclude mai con un errore, quindi una revisione completata non fa fallire un check obbligatorio. Se non vedi risultati o una revisione non è stata eseguita, consulta [Risoluzione dei problemi di Code Review](/docs/it/code-review-troubleshooting).

61 

62<h3 id="read-the-result-from-a-script">

63 Leggere il risultato da uno script

64</h3>

65 

66Per vincolare un merge o pubblicare un riepilogo dalla tua CI, analizza l'ultima riga del testo Details con `gh` e jq. Quella riga è un commento leggibile dalla macchina.

67 

68<Steps>

69 <Step title="Trova l'ID del check run">

70 Dalla tua shell, elenca i check run del commit e prendi l'`id` del run `Claude Code Review`. Sostituisci `OWNER` e `REPO` con il proprietario e il nome del tuo repository, e `<commit-sha>` con il commit di testa della pull request:

71 

72 ```bash theme={null}

73 gh api repos/OWNER/REPO/commits/<commit-sha>/check-runs --jq '.check_runs[] | {id, name}'

74 ```

75 </Step>

76 

77 <Step title="Leggi i conteggi per gravità">

78 Leggi i conteggi da quel check run, sostituendo `CHECK_RUN_ID` con l'ID:

79 

80 ```bash theme={null}

81 gh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID \

82 --jq '.output.text | split("bughunter-severity: ")[1] | split(" -->")[0] | fromjson'

83 ```

84 

85 Questo stampa un oggetto JSON con un conteggio per ciascuna gravità e le chiavi in ordine alfabetico, ad esempio `{"nit": 1, "normal": 2, "pre_existing": 0}`. I conteggi includono i risultati delle revisioni precedenti della pull request i cui thread sono ancora aperti.

86 </Step>

87 

88 <Step title="Agisci in base al risultato">

89 Fai in modo che il tuo script gestisca questi casi:

90 

91 * **`normal` è maggiore di zero**: fai fallire il job se vuoi vincolare il merge. La chiave `normal` contiene il conteggio dei risultati Important, quindi Claude ha trovato almeno un bug che vale la pena correggere prima del merge.

92 * **La riga è assente**: trattala come assenza di verdetto anziché come zero risultati. Un check run per una revisione che è fallita, è andata in timeout, è stata annullata o è stata sostituita da una più recente non ha tale riga, e nemmeno alcune revisioni completate ce l'hanno.

93 </Step>

94</Steps>

95 

96<h2 id="request-a-review">

97 Richiedere una revisione

98</h2>

99 

100Se la tua pull request è una bozza o proviene da un fork, le revisioni automatiche la saltano, quindi [richiedi la revisione con un comando nei commenti](#review-drafts-and-pull-requests-from-forks). Per ottenere una revisione sulla tua pull request, esegui una di queste azioni:

101 

102* **Aprila o contrassegnala come pronta**: in un repository impostato su **Once after PR creation** o **After every push**, una revisione si avvia quando apri o riapri la pull request, oppure quando contrassegni una bozza come pronta per la revisione.

103* **Scrivi un comando in un commento**: pubblica [`@claude review`](#comment-commands) sulla pull request.

104* **Esegui il push di un commit**: un push avvia una revisione in un repository impostato su **After every push**, oppure su una pull request che hai sottoscritto con `@claude review always`.

105* **Fai clic su Re-run**: dopo che una revisione è fallita o è andata in timeout su una pull request che non proviene da un fork, [eseguila di nuovo](/docs/it/code-review-troubleshooting#retrigger-a-failed-or-timed-out-review) dal check run.

106* **Attendi il nuovo tentativo automatico**: una revisione la cui sessione è stata interrotta viene riprovata automaticamente una volta. Il [riepilogo del check run](/docs/it/code-review-troubleshooting#retrigger-a-failed-or-timed-out-review) indica quando ciò sta accadendo.

107 

108<h3 id="comment-commands">

109 Comandi nei commenti

110</h3>

111 

112Pubblica uno di questi comandi come commento sulla pull request:

113 

114| Comando | Cosa fa | Quando usarlo |

115| :- | :- | :- |

116| `@claude review` | Avvia una singola revisione senza sottoscrivere la PR ai push futuri | Vuoi una revisione adesso, ad esempio su una pull request in un repository impostato su Manual, oppure un'altra revisione immediata nelle altre modalità |

117| `@claude review always` | Avvia una revisione e sottoscrive la PR alle revisioni attivate dai push da quel momento in poi | Vuoi che ogni push successivo avvii una nuova revisione, ad esempio su una PR ad alta priorità in un repository impostato su Manual |

118| `@claude review once` | Uguale a `@claude review`: avvia una singola revisione senza sottoscrivere | Gli stessi casi di `@claude review` |

119 

120Affinché uno qualsiasi di questi comandi avvii una revisione, devono essere soddisfatte tutte queste condizioni:

121 

122* Pubblicalo come nuovo commento di primo livello sulla pull request, non come commento inline su una riga del diff né nel corpo di una revisione. La modifica di un commento precedente non conta.

123* Metti il comando all'inizio del commento, con `always` sulla stessa riga del resto del comando. Le maiuscole non contano.

124* Ti servono i permessi write, maintain o admin sul repository. Claude lo verifica con GitHub per ogni persona che commenta, e i commenti dei bot non avviano revisioni.

125* La pull request deve essere aperta.

126 

127Quando il comando viene accettato, sulla pull request appare un check run **Claude Code Review** con il titolo **Code review queued...**. Il titolo cambia in **Code review in progress...** quando la revisione inizia. Claude può anche reagire al tuo commento con 👀, ma quella reazione può comparire anche quando non si avvia alcuna revisione, quindi cerca piuttosto il check run.

128 

129Se una revisione è già in esecuzione sull'ultimo commit della pull request, una nuova richiesta non ne avvia una seconda.

130 

131<Note>

132 Prima di un aggiornamento di luglio 2026, `@claude review` sottoscriveva la PR alle revisioni attivate dai push. Se facevi affidamento su quel comportamento, scrivi invece `@claude review always`.

133</Note>

134 

135<h3 id="what-a-later-review-covers">

136 Cosa copre una revisione successiva

137</h3>

138 

139Una revisione successiva che si avvia da sola, ad esempio dopo un push, si concentra su ciò che è cambiato dall'ultima revisione e pubblica meno nit e risultati preesistenti. Il suo riepilogo conta ciò che ha tralasciato, in una riga che termina con "found and not posted" o "outside the scope of this re-review and not posted."

140 

141Per ottenere una revisione che non tralasci nulla di tutto ciò, scrivi [`@claude review`](#comment-commands). Copre di nuovo l'intera pull request.

142 

143<h3 id="review-drafts-and-pull-requests-from-forks">

144 Revisionare bozze e pull request provenienti da fork

145</h3>

146 

147Le revisioni automatiche saltano entrambe, quindi richiedi la revisione con un comando nei commenti:

148 

149* **Pull request in bozza**: un comando nei commenti viene eseguito su una bozza, quindi puoi richiedere una revisione prima di contrassegnare la pull request come pronta. I push su una bozza non avviano revisioni, nemmeno dopo `@claude review always`. La sottoscrizione ha effetto quando contrassegni la pull request come pronta.

150* **Pull request provenienti da fork**: Claude non revisiona automaticamente una pull request proveniente da un fork, indipendentemente dall'impostazione **Review runs** del repository. Per avviarne una, scrivi `@claude review` sulla pull request. Si applicano comunque le [condizioni per i comandi nei commenti](#comment-commands), e l'accesso in scrittura di cui hai bisogno è sul repository di base, non sul fork.

151 

152Su una pull request proveniente da un fork, anche `@claude review always` funziona, ma non sottoscrive la pull request alle revisioni sui push successivi. Fare clic su **Re-run** sul check run non avvia una revisione in quel caso.

153 

154<h3 id="use-code-review-alongside-the-claude-code-github-action">

155 Usare Code Review insieme alla GitHub Action di Claude Code

156</h3>

157 

158Se il repository esegue anche la [GitHub Action di Claude Code](/docs/it/github-actions) in modalità interattiva con la sua frase di attivazione predefinita `@claude`, un commento `@claude review` avvia anche la Action. Per tenere separate le due cose, imposta l'input `trigger_phrase` della Action su una frase diversa.

159 

160<h2 id="related-resources">

161 Risorse correlate

162</h2>

163 

164* [Risoluzione dei problemi di Code Review](/docs/it/code-review-troubleshooting): una revisione che non si è avviata, è fallita o è stata saltata per il budget

165* [Code Review](/docs/it/code-review): cos'è il servizio e come viene eseguita una revisione

166* [Configurare Code Review](/docs/it/code-review-setup): per gli Owner, attiva Code Review e scegli quando eseguire le revisioni e a quale livello

167* [Personalizzare Code Review](/docs/it/code-review-customize): cambia ciò che Claude segnala con `REVIEW.md` e `CLAUDE.md`

168* [Costi e utilizzo di Code Review](/docs/it/code-review-costs): come vengono fatturate le revisioni e dove si imposta il limite di spesa

169* [Revisionare in locale con `/code-review`](/docs/it/code-review-local): esegui una revisione del tuo branch da una sessione di Claude Code

code-review-setup.md +189 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Configurare Code Review

6 

7> Attiva Code Review per la tua organizzazione Claude: connetti GitHub, installa la Claude GitHub App, scegli i repository e stabilisci quando vengono eseguite le revisioni

8 

9In qualità di Owner della tua organizzazione Claude, attivi Code Review in [**Admin settings > Claude Code**](https://claude.ai/admin-settings/claude-code#code-review) su claude.ai. Le revisioni vengono eseguite sull'infrastruttura di Anthropic, quindi non devi aggiungere file di workflow ai tuoi repository.

10 

11Dopo la configurazione, scegli quanto sono approfondite le revisioni e quando vengono eseguite in ciascun repository. Spendi di più con un livello di revisione più alto e quando le revisioni vengono eseguite più spesso. Consulta [Costi di Code Review](/docs/it/code-review-costs#pricing).

12 

13<h2 id="what-you-need-to-turn-on-code-review">

14 Cosa ti serve per attivare Code Review

15</h2>

16 

17Per prima cosa verifica che la tua organizzazione [abbia i requisiti per Code Review](/docs/it/code-review#availability). Poi assicurati di avere questi accessi, o di avere qualcuno che li abbia:

18 

19| Accesso | Necessario per |

20| :- | :- |

21| [Ruolo Owner](/docs/it/server-managed-settings#access-control) nella tua organizzazione Claude | Ogni passaggio nella pagina di amministrazione |

22| Owner dell'organizzazione GitHub | Installare la Claude GitHub App e [collegarla alla tua organizzazione Claude](/docs/it/admin-setup#connected-github-accounts). Se non sei un owner, chiedi a uno di loro di installare e collegare l'app prima di iniziare |

23| Accesso in scrittura a ogni repository che aggiungi, dall'account GitHub che connetti a Claude | Aggiungere il repository |

24 

25<h2 id="turn-on-code-review">

26 Attivare Code Review

27</h2>

28 

29<Steps>

30 <Step title="Fai clic sull'interruttore Allow code review">

31 Vai alla sezione **Code review** di [**Admin settings > Claude Code**](https://claude.ai/admin-settings/claude-code#code-review) e fai clic sull'interruttore **Allow code review**.

32 

33 Se Code Review si attiva subito senza alcuna finestra di dialogo, la tua organizzazione ha già la Claude GitHub App collegata o dei repository aggiunti. Vai a [Aggiungere altri repository](#add-more-repositories), poi torna qui per l'ultimo passaggio.

34 </Step>

35 

36 <Step title="Connetti il tuo account GitHub">

37 Se si apre una finestra di dialogo **Connect GitHub**, fai clic su **Connect**. Se la tua organizzazione usa GitHub Enterprise Server, seleziona prima la tua istanza nella finestra di dialogo. GitHub ti chiede di autorizzare Claude, poi ti riporta alla pagina di amministrazione con la finestra di dialogo **Add a repository** aperta.

38 

39 Se **Add a repository** si è aperta subito, il tuo account è già connesso, quindi passa al passaggio successivo.

40 </Step>

41 

42 <Step title="Installa la Claude GitHub App">

43 Se i repository che vuoi sono elencati nella finestra di dialogo **Add a repository**, o li trovi cercandoli lì, passa al passaggio successivo. La finestra di dialogo elenca un repository solo se la Claude GitHub App può accedervi, quindi se non ci sono, installa l'app:

44 

45 * Fai clic su **Install GitHub App**. Quando non ci sono repository elencati, è un pulsante nella finestra di dialogo. Altrimenti, si trova in fondo al menu del filtro per organizzazione GitHub della finestra di dialogo. La pagina di installazione di GitHub si apre in una nuova scheda.

46 * Scegli l'organizzazione GitHub proprietaria dei repository.

47 * Scegli a quali repository l'app può accedere.

48 * Approva i permessi richiesti. L'insieme è più ampio di quello usato da una revisione ed è condiviso da altre funzionalità di Claude, come [GitHub Actions](/docs/it/github-actions). Consulta [a cosa può accedere una revisione](/docs/it/code-review#what-a-review-can-access) e l'[elenco completo dei permessi](/docs/it/github-actions#github-app-permissions).

49 * Al termine dell'installazione, la scheda torna a Claude. Se mostra un pulsante **Finish connecting GitHub**, fai clic su di esso per collegare l'installazione alla tua organizzazione Claude.

50 * Torna alla scheda della pagina di amministrazione, dove l'elenco nella finestra di dialogo si aggiorna.

51 </Step>

52 

53 <Step title="Scegli i repository">

54 Seleziona i repository che vuoi sottoporre a revisione, poi fai clic su **Continue**. Per aggiungere un repository serve l'accesso in scrittura a esso dall'account GitHub che hai connesso. Puoi [aggiungere altri repository](#add-more-repositories) in seguito.

55 </Step>

56 

57 <Step title="Fai clic su Finish">

58 Segue una finestra di dialogo **Code review is set up**. Fai clic su **Finish** per attivare Code Review. Se chiudi la finestra di dialogo in qualsiasi altro modo, i tuoi repository restano aggiunti ma **Allow code review** resta disattivato, e lo attivi dall'interruttore.

59 

60 Ogni repository parte impostato per la revisione dopo ogni push, l'opzione che esegue il maggior numero di revisioni. Per eseguirne meno, [stabilisci quando vengono eseguite le revisioni](#set-when-reviews-run).

61 </Step>

62 

63 <Step title="Verifica con una pull request di prova">

64 Apri una pull request di prova in uno dei repository che hai aggiunto, e non contrassegnarla come bozza. Entro pochi minuti compare un check run chiamato **Claude Code Review**. Se hai già impostato il repository su **Manual (@claude review)**, commenta `@claude review` sulla pull request per avviare la prima revisione.

65 

66 Se non compare alcun check run, consulta [Nessun check run compare sulla pull request di prova](/docs/it/code-review-troubleshooting#no-check-run-appears-on-the-test-pull-request).

67 

68 Una volta arrivata la revisione, invia ai tuoi sviluppatori [Leggere e richiedere revisioni su una pull request](/docs/it/code-review-pull-requests), che tratta i livelli di gravità, i comandi nei commenti e come rispondere ai risultati.

69 </Step>

70</Steps>

71 

72<h2 id="set-defaults-for-your-organization">

73 Impostare i valori predefiniti per la tua organizzazione

74</h2>

75 

76In qualità di Owner, decidi quanto sono approfondite le revisioni e con quale frequenza vengono eseguite. Entrambe le impostazioni si trovano nella sezione **Code review** di [**Admin settings > Claude Code**](https://claude.ai/admin-settings/claude-code#code-review).

77 

78<h3 id="set-the-default-review-level">

79 Impostare il livello di revisione predefinito

80</h3>

81 

82Il livello di revisione stabilisce quanto è approfondita ciascuna revisione, e una revisione più approfondita costa di più. Imposti un valore predefinito per l'organizzazione e puoi sovrascriverlo per singoli repository.

83 

84| Livello | Compromesso |

85| :- | :- |

86| Quick | Un passaggio più leggero. Il livello più veloce, al costo più basso |

87| Standard | Equilibrio tra profondità, velocità e costo. Il livello predefinito |

88| Deep | Il passaggio più approfondito. Richiede più tempo e costa di più |

89 

90* **Predefinito dell'organizzazione**: seleziona un livello in **Review level** e conferma con **Change level**. Ogni repository lo usa, a meno che tu non assegni a quel repository un livello proprio.

91* **Un singolo repository**: fai clic su **Edit** nella riga del repository, poi seleziona un **Review level** lì. La prima opzione, **Default**, segue l'organizzazione. Il livello viene salvato non appena lo selezioni.

92 

93Un nuovo livello si applica alle revisioni che iniziano dopo la modifica. Per gli altri fattori che determinano il costo di ciascuna revisione, consulta [Costi e utilizzo di Code Review](/docs/it/code-review-costs).

94 

95<h3 id="set-when-reviews-run">

96 Stabilire quando vengono eseguite le revisioni

97</h3>

98 

99Ogni repository ha la propria impostazione **Review runs**, che decide quando le sue pull request vengono sottoposte a revisione.

100 

101* **Once after PR creation**: una revisione viene eseguita quando una pull request viene aperta, riaperta o contrassegnata come pronta per la revisione

102* **After every push**: una revisione viene eseguita ai push sul branch della pull request, individuando nuovi problemi man mano che la pull request evolve e risolvendo automaticamente i thread quando correggi i problemi segnalati

103* **Manual (@claude review)**: aprire una pull request o fare push su di essa non avvia una revisione. Commenta [`@claude review`](/docs/it/code-review-pull-requests#comment-commands) per richiederne una, oppure `@claude review always` per iscrivere anche la pull request alle revisioni sui push successivi.

104 

105Manual è utile per i repository con molto traffico in cui vuoi includere nella revisione specifiche pull request, oppure per iniziare a revisionare le pull request solo quando sono pronte. Per confrontare l'effetto di ciascuna opzione sulla spesa, consulta [Frequenza di esecuzione delle revisioni](/docs/it/code-review-costs#how-often-reviews-run).

106 

107Per modificare l'impostazione, fai clic su **Edit** nella riga del repository nella tabella **Repositories** e seleziona un'opzione **Review runs**. La scelta viene salvata non appena la selezioni, e la colonna **Review runs** della tabella la mostra abbreviata in Once per PR, Every push o Manual.

108 

109* **Bozze e pull request da fork**: qualunque opzione tu scelga, [le revisioni automatiche le saltano entrambe](/docs/it/code-review-pull-requests#review-drafts-and-pull-requests-from-forks)

110* **Nuovi repository**: un repository che aggiungi dalla finestra di dialogo **Add a repository** parte da **After every push**. Se la sua organizzazione GitHub è [coperta nel suo insieme](#cover-a-whole-github-organization), assume invece l'impostazione della riga di quell'organizzazione.

111 

112<h3 id="turn-tip-comments-on-or-off">

113 Attivare o disattivare i commenti di suggerimento

114</h3>

115 

116Un commento di suggerimento è un breve commento che Claude pubblica su una pull request quando non viene avviata alcuna revisione, indicando il motivo e cosa fare dopo. **Show tips on pull requests** è attivo per impostazione predefinita. Quando è attivo, Claude pubblica un suggerimento in ciascuno di questi casi, spiegando:

117 

118* **Il repository è impostato su Manual**: come richiedere una revisione con un commento

119* **La pull request proviene da un fork**: che un maintainer può richiedere la revisione

120* **Un bot, o qualcuno senza accesso in scrittura, commenta `@claude review`**: che non è stata avviata alcuna revisione, e chi può richiederne una

121* **L'organizzazione GitHub non è collegata alla tua organizzazione Claude**: che le revisioni sono in pausa, e come collegarla

122 

123Disattiva l'impostazione per interrompere questi commenti.

124 

125<h3 id="what-developers-can-change">

126 Cosa possono modificare gli sviluppatori

127</h3>

128 

129Gli sviluppatori si rivolgono a te per modificare il livello di revisione, l'impostazione **Review runs** o quali repository ricevono revisioni. Da GitHub, senza il ruolo Owner, possono fare quanto segue:

130 

131* **Richiedere una revisione**: commentare [`@claude review`](/docs/it/code-review-pull-requests#comment-commands) su una pull request. Serve l'accesso in scrittura al repository, e funziona su [bozze e pull request da fork](/docs/it/code-review-pull-requests#review-drafts-and-pull-requests-from-forks), che le revisioni automatiche saltano.

132* **Iscrivere una pull request a una revisione a ogni push**: commentare `@claude review always` su una pull request che non sia [una bozza o proveniente da un fork](/docs/it/code-review-pull-requests#review-drafts-and-pull-requests-from-forks), ad esempio in un repository impostato su Manual

133* **Modificare ciò che le revisioni segnalano**: fare il commit di [file `REVIEW.md` e `CLAUDE.md`](/docs/it/code-review-customize) nel repository, ad esempio per aggiungere un controllo

134 

135Le revisioni richieste dagli sviluppatori vengono [addebitate alla tua organizzazione](/docs/it/code-review-costs#pricing). Per limitare la spesa mensile di Code Review, consulta [Limitare la spesa](/docs/it/code-review-costs#limit-your-spend).

136 

137<h2 id="manage-repositories">

138 Gestire i repository

139</h2>

140 

141Puoi aggiungere i repository uno alla volta o coprire un'intera organizzazione GitHub in una volta sola, e interrompere le revisioni ovunque non le desideri.

142 

143<h3 id="add-more-repositories">

144 Aggiungere altri repository

145</h3>

146 

147Per aggiungere repository dopo la configurazione, fai clic su **Add** sopra la tabella **Repositories** nella sezione **Code review**. Si apre la finestra di dialogo **Add a repository**. Seleziona i repository e fai clic su **Continue**.

148 

149* **Un repository non è elencato**: consulta [Un repository non è elencato in Add a repository](/docs/it/code-review-troubleshooting#a-repository-isn’t-listed-in-add-a-repository).

150* **Vuoi tutti i repository di un'organizzazione GitHub**: [copri l'organizzazione](#cover-a-whole-github-organization) invece di selezionare i repository uno alla volta

151 

152<h3 id="cover-a-whole-github-organization">

153 Coprire un'intera organizzazione GitHub

154</h3>

155 

156Per attivare Code Review per ogni repository di un'organizzazione GitHub, imposta **Review runs** nella riga dell'organizzazione nella tabella **Repositories**. In questo modo copri ogni repository di quell'organizzazione a cui la Claude GitHub App può accedere, inclusi i repository aggiunti in seguito. Questo può aumentare notevolmente la spesa. Richiede tutti questi requisiti:

157 

158* L'account GitHub che hai connesso a Claude è un owner di quell'organizzazione GitHub.

159* L'organizzazione si trova su github.com. Le istanze di GitHub Enterprise Server e gli account GitHub personali non sono idonei.

160* È impostato un [limite di spesa mensile](/docs/it/code-review-costs#limit-your-spend), per la tua organizzazione Claude o per Code Review.

161 

162Per coprire l'organizzazione, fai clic su **Edit** nella sua riga, seleziona un'opzione **Review runs** e conferma. Le opzioni sono le tre di [Stabilire quando vengono eseguite le revisioni](#set-when-reviews-run) più **Off**.

163 

164Dopo la conferma, entrano in vigore queste modifiche:

165 

166* **Copertura**: ogni repository viene coperto a partire dalla sua prossima pull request. Se la Claude GitHub App è stata installata su repository selezionati anziché su tutti, Claude revisiona quei repository; modifica l'accesso ai repository dell'app su GitHub per coprire i restanti.

167* **Impostazioni esistenti**: ogni repository di quell'organizzazione GitHub assume l'opzione che selezioni, inclusi i repository che avevi impostato singolarmente. Impostare di nuovo la riga ha lo stesso effetto. I repository che hai disattivato nelle loro righe restano disattivati.

168* **Modifiche individuali successive**: un repository che in seguito imposti in modo diverso dalla sua organizzazione viene contrassegnato come **Custom** nella tabella.

169* **Livello di revisione**: la riga di un'organizzazione non ha un livello di revisione proprio.

170 

171<h3 id="turn-off-code-review-or-remove-a-repository">

172 Disattivare Code Review o rimuovere un repository

173</h3>

174 

175Nella sezione **Code review** di [**Admin settings > Claude Code**](https://claude.ai/admin-settings/claude-code#code-review), scegli il controllo corrispondente a ciò che vuoi interrompere:

176 

177* **Un repository, mantenendolo nell'elenco**: fai clic su **Edit** nella sua riga e disattiva **Code review**. La tabella mostra il repository come Off.

178* **Un repository, rimuovendolo**: fai clic su **Edit** nella sua riga, poi su **Remove repository** in fondo alla finestra di dialogo. Le revisioni si interrompono lì, e un'altra organizzazione Claude potrà poi configurare quel repository. Finché l'organizzazione GitHub del repository è coperta nel suo insieme, non puoi rimuoverlo; disattiva invece il suo interruttore **Code review**.

179* **Un'intera organizzazione GitHub**: fai clic su **Edit** nella riga dell'organizzazione e seleziona **Off**. Questo disattiva anche i repository di quell'organizzazione che hai aggiunto uno alla volta.

180* **Tutto**: disattiva **Allow code review**. Nessuna nuova revisione viene avviata in alcun repository, e il tuo elenco di repository resta, così puoi riattivarlo in seguito.

181 

182<h2 id="related-resources">

183 Risorse correlate

184</h2>

185 

186* [Costi e utilizzo di Code Review](/docs/it/code-review-costs): come il livello di revisione e la frequenza delle revisioni influiscono sulla spesa, come impostare un limite di spesa e dove vedere l'utilizzo

187* [Leggere e richiedere revisioni su una pull request](/docs/it/code-review-pull-requests): cosa vedono gli sviluppatori su una pull request e i comandi nei commenti

188* [Personalizzare Code Review](/docs/it/code-review-customize): regola ciò che Claude segnala con `REVIEW.md` e `CLAUDE.md`

189* [GitHub Enterprise Server](/docs/it/github-enterprise-server): connetti un'istanza GitHub self-hosted prima della configurazione

code-review-troubleshooting.md +113 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Risoluzione dei problemi di Code Review

6 

7> Correggi una Code Review che non è partita, non è riuscita o è stata saltata per il budget, trova i risultati mancanti e risolvi i problemi di configurazione e di `REVIEW.md`.

8 

9Quando [Code Review](/docs/it/code-review) non fa ciò che ti aspetti su una pull request, inizia dal check run **Claude Code Review**. Il suo titolo indica fin dove è arrivata la revisione.

10 

11<h2 id="check-how-far-the-review-got">

12 Verifica fin dove è arrivata la revisione

13</h2>

14 

15Trova il check run **Claude Code Review** sulla tua pull request, quindi confronta il suo titolo con uno di questi titoli comuni:

16 

17| Titolo del check run | Cosa significa | Cosa fare |

18| :- | :- | :- |

19| **Code review queued...** o **Code review in progress...** | La revisione non è terminata | Attendi che il titolo cambi |

20| **Code review found no issues** | La revisione è terminata e non ha trovato nulla da segnalare | Niente |

21| Un titolo che indica che sono stati trovati problemi | La revisione è terminata con dei risultati | Se non li vedi nel diff, consulta [Trova i problemi che non vengono mostrati come commenti inline](#find-issues-that-aren’t-showing-as-inline-comments) |

22| **Code review skipped — no new changes** | Una revisione automatica non è stata eseguita sul tuo ultimo push | Per ottenere comunque una revisione, commenta `@claude review` |

23| **Code review failed** o **Code review timed out** | La revisione non è terminata | Per eseguirla di nuovo, consulta [Riavvia una revisione non riuscita o scaduta](#retrigger-a-failed-or-timed-out-review) |

24| **Code review declined** | La revisione non è stata eseguita | Leggi il riepilogo del check run. Se menziona un budget o un limite di spesa, consulta [La revisione non è stata eseguita e la PR mostra un messaggio sul budget](#review-didn’t-run-and-the-pr-shows-a-budget-message) |

25| Nessun check run | Nessuna revisione è stata avviata | Commenta `@claude review`. Se dopo non compare alcun check run, consulta [Un comando nei commenti non ha avviato una revisione](#a-comment-command-didn’t-start-a-review) |

26 

27<h2 id="a-review-didn’t-start">

28 Una revisione non è partita

29</h2>

30 

31Verifica questi casi quando non compare alcun check run **Claude Code Review**, o quando Claude pubblica un commento che indica che la revisione è stata saltata.

32 

33<h3 id="a-comment-command-didn’t-start-a-review">

34 Un comando nei commenti non ha avviato una revisione

35</h3>

36 

37Dopo aver commentato `@claude review`, cerca sulla pull request un check run **Claude Code Review** intitolato **Code review queued...** o **Code review in progress...**. Una reazione 👀 sul tuo commento non conferma che una revisione sia in arrivo. Se non compare alcun check run, verifica ciascuna di queste cause:

38 

39* **Code Review non è attivo per questo repository**: Claude non pubblica alcun commento né alcun check run in risposta al comando. Chiedi a un Owner di [aggiungere il repository](/docs/it/code-review-setup#add-more-repositories).

40* **Il commento non soddisfa una condizione**: era un commento inline o il corpo di una revisione anziché un nuovo commento di primo livello, oppure il comando non si trovava all'inizio del commento. Anche modificare un commento precedente invece di pubblicarne uno nuovo non conta, e la pull request deve essere aperta. Consulta le [condizioni per i comandi nei commenti](/docs/it/code-review-pull-requests#comment-commands) e pubblica un nuovo commento che le soddisfi.

41* **Non hai accesso in scrittura**: ti serve il permesso write, maintain o admin sul repository e, su una pull request proveniente da un fork, il permesso che conta è quello sul repository di base. Se la tua organizzazione ha attivato i suggerimenti, Claude risponde "No review was started: manual reviews can only be requested by someone with write access to this repository." Chiedi invece a qualcuno con accesso in scrittura di commentare.

42* **Il budget è esaurito**: Claude pubblica un commento che inizia con "⚠️ Code review skipped". Consulta [La revisione non è stata eseguita e la PR mostra un messaggio sul budget](#review-didn’t-run-and-the-pr-shows-a-budget-message).

43 

44<h3 id="review-didn’t-run-and-the-pr-shows-a-budget-message">

45 La revisione non è stata eseguita e la PR mostra un messaggio sul budget

46</h3>

47 

48Quando il budget della tua organizzazione non può coprire una revisione, Code Review salta la revisione e Claude pubblica sulla pull request un commento che inizia con "⚠️ Code review skipped". In alcuni di questi casi compare anche un check run intitolato **Code review declined**.

49 

50Il commento rimanda a [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage), dove un amministratore ripristina il budget. La sua formulazione ti dice quale limite è stato raggiunto:

51 

52* **"has reached its monthly code review spending cap"**: è stato raggiunto il [limite di spesa mensile per Code Review](/docs/it/code-review-costs#limit-your-spend). Le revisioni riprendono all'inizio del periodo di fatturazione successivo. Per riaverle prima, chiedi a un amministratore di aumentare il limite.

53* **"has no extra usage available to pay for this review"**: il saldo dei [crediti di utilizzo](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) della tua organizzazione è esaurito, oppure è stato raggiunto il suo limite di spesa mensile complessivo. Chiedi a un amministratore di aggiungere crediti di utilizzo o di aumentare quel limite.

54* **"is too low to start another review"**: ciò che resta del budget o del saldo è inferiore al costo previsto di una revisione. Chiedi a un amministratore di aumentare il limite o di aggiungere crediti di utilizzo.

55 

56Dopo che il budget è stato ripristinato, commenta `@claude review` sulla pull request per ottenere la revisione che è stata saltata. Si applicano le [condizioni per i comandi nei commenti](/docs/it/code-review-pull-requests#comment-commands), quindi chi commenta deve avere accesso in scrittura.

57 

58<h2 id="retrigger-a-failed-or-timed-out-review">

59 Riavvia una revisione non riuscita o scaduta

60</h2>

61 

62Se il riepilogo del check run dice "The review session was interrupted before it could finish. A new review of this commit has been queued automatically.", non devi fare nulla. Quella revisione viene ritentata automaticamente una volta.

63 

64Altrimenti, quando il titolo del check run è **Code review failed** o **Code review timed out**, esegui di nuovo la revisione con un commento o con una riesecuzione:

65 

66* **Commenta `@claude review`**: pubblicalo come commento di primo livello sulla pull request. Questo avvia una nuova revisione senza iscrivere la pull request ai push futuri.

67* **Fai clic su Re-run**: se la pull request non [proviene da un fork](/docs/it/code-review-pull-requests#review-drafts-and-pull-requests-from-forks), fai clic su **Re-run** sul check **Claude Code Review** nella scheda **Checks** di GitHub. La riesecuzione copre il commit di testa corrente della pull request e anch'essa non iscrive la pull request.

68 

69<h2 id="find-issues-that-aren’t-showing-as-inline-comments">

70 Trova i problemi che non vengono mostrati come commenti inline

71</h2>

72 

73Se il titolo del check run indica che sono stati trovati problemi ma non vedi commenti di revisione inline nel diff, cerca in queste altre posizioni in cui vengono mostrati i risultati:

74 

75* **Details del check run**: fai clic su **Details** accanto al check **Claude Code Review** nella scheda **Checks**. La tabella della gravità elenca i risultati con il relativo file, la riga e il riepilogo, indipendentemente dal fatto che il commento inline sia stato accettato.

76* **Annotazioni in Files changed**: apri la scheda **Files changed** nella PR. Un risultato che ha una riga ma non è stato pubblicato come commento inline compare lì come annotazione sulle righe interessate.

77* **Corpo della revisione**: i risultati che non hanno una posizione inline, o che ricadono al di fuori del diff corrente, compaiono sotto l'intestazione **Additional findings** nel corpo della revisione.

78 

79<h2 id="the-check-run-mentions-review-md">

80 Il check run menziona REVIEW\.md

81</h2>

82 

83Due dei messaggi che un check run può riportare su `REVIEW.md` riguardano la protezione del branch:

84 

85* **"This review applied the repository's review instructions (REVIEW\.md) from its default branch, which is not protected against direct pushes."**: la revisione ha letto solo il file nella radice. Consulta [Da quale branch viene letto REVIEW.md](/docs/it/code-review-customize#which-branch-review-md-is-read-from) per sapere cosa cambia proteggendo il branch.

86* **"were not applied to this review: branch protection could not be confirmed"**: la revisione non ha letto alcun `REVIEW.md`.

87 

88<h2 id="setup-problems">

89 Problemi di configurazione

90</h2>

91 

92Questi casi si presentano a un Owner durante la [configurazione di Code Review](/docs/it/code-review-setup).

93 

94<h3 id="a-repository-isn’t-listed-in-add-a-repository">

95 Un repository non è elencato in Add a repository

96</h3>

97 

98Cerca prima il repository per nome, perché la finestra di dialogo non carica per intero un elenco lungo. La finestra di dialogo elenca un repository solo se la Claude GitHub App può accedervi. Fai clic su **Install GitHub App** e concedi all'app l'accesso al repository. Quando non è elencato alcun repository, **Install GitHub App** è un pulsante nella finestra di dialogo. Altrimenti, si trova in fondo al menu del filtro per organizzazione GitHub della finestra di dialogo.

99 

100<h3 id="no-check-run-appears-on-the-test-pull-request">

101 Nessun check run compare sulla pull request di test

102</h3>

103 

104Conferma che **Allow code review** sia attivo, che il repository sia elencato sotto **Repositories** nella sezione **Code review** e che la Claude GitHub App abbia accesso a esso. Le revisioni automatiche saltano le pull request in bozza, e un repository impostato su **Manual (@claude review)** richiede un commento `@claude review` per avviare la prima revisione.

105 

106<h2 id="related-resources">

107 Risorse correlate

108</h2>

109 

110* [Leggere e richiedere revisioni su una pull request](/docs/it/code-review-pull-requests): cosa significano i risultati e il check run, e i comandi nei commenti

111* [Configurare Code Review](/docs/it/code-review-setup): per gli Owner, attivare Code Review e gestire i repository

112* [Costi e utilizzo di Code Review](/docs/it/code-review-costs): i limiti di spesa alla base di un messaggio sul budget

113* [Personalizzare Code Review](/docs/it/code-review-customize): quale copia di `REVIEW.md` legge una revisione

commands.md +2 −2

Details

72| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[Skill](/docs/it/skills#bundled-skills).** Carica il materiale di riferimento di [Claude API](https://platform.claude.com/docs/en/api/overview) e [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) per il linguaggio del tuo progetto. Si attiva anche automaticamente quando il tuo codice importa `anthropic` o `@anthropic-ai/sdk`. Per sapere cosa fa ogni sottocomando e quale versione richiede, consulta [Lavorare su progetti Claude API](/docs/it/skills#work-on-claude-api-projects) |72| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[Skill](/docs/it/skills#bundled-skills).** Carica il materiale di riferimento di [Claude API](https://platform.claude.com/docs/en/api/overview) e [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) per il linguaggio del tuo progetto. Si attiva anche automaticamente quando il tuo codice importa `anthropic` o `@anthropic-ai/sdk`. Per sapere cosa fa ogni sottocomando e quale versione richiede, consulta [Lavorare su progetti Claude API](/docs/it/skills#work-on-claude-api-projects) |

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

74| `/clear [name]` | Avvia una nuova conversazione con contesto vuoto. Passa un nome per etichettare la conversazione precedente nel selettore di `/resume`. Per liberare contesto continuando la stessa conversazione, usa invece `/compact`. Riprendi la conversazione precedente con `/resume` oppure, nello stesso processo di Claude Code, ripristinala dalla [voce della sessione precedente nel menu di rewind](/docs/it/checkpointing#rewind-past-a-cleared-conversation). Alias: `/reset`, `/new` |74| `/clear [name]` | Avvia una nuova conversazione con contesto vuoto. Passa un nome per etichettare la conversazione precedente nel selettore di `/resume`. Per liberare contesto continuando la stessa conversazione, usa invece `/compact`. Riprendi la conversazione precedente con `/resume` oppure, nello stesso processo di Claude Code, ripristinala dalla [voce della sessione precedente nel menu di rewind](/docs/it/checkpointing#rewind-past-a-cleared-conversation). Alias: `/reset`, `/new` |

75| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | **[Skill](/docs/it/skills#bundled-skills).** Esamina il diff corrente, oppure un numero di PR, un branch o un percorso che passi, alla ricerca di bug di correttezza. A seconda del modello e del livello di sforzo, la revisione copre anche opportunità di pulizia. Passa `--fix` per applicare i risultati, `--comment` per pubblicarli sulla PR GitHub o sulla merge request GitLab, oppure `ultra` per eseguire una [revisione cloud](/docs/it/ultrareview) approfondita. La pubblicazione su una merge request GitLab richiede Claude Code v2.1.257 o successiva. Con `ultra` su una PR di `github.com` come destinazione, passa `--post` per preselezionare nella finestra di dialogo di avvio la [pubblicazione dei risultati finali sulla PR](/docs/it/ultrareview#post-findings-to-the-pull-request); `--post` richiede Claude Code v2.1.227 o successiva. Consulta [Esaminare un diff localmente](/docs/it/code-review#review-a-diff-locally) per i livelli di sforzo, la scelta della destinazione e la relazione con `/simplify`. Alias: `/review` |75| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | **[Skill](/docs/it/skills#bundled-skills).** Esamina il diff corrente, oppure un numero di PR, un branch o un percorso che passi, alla ricerca di bug di correttezza. A seconda del modello e del livello di sforzo, la revisione copre anche opportunità di pulizia. Passa `--fix` per applicare i risultati, `--comment` per pubblicarli sulla PR GitHub o sulla merge request GitLab, oppure `ultra` per eseguire una [revisione cloud](/docs/it/ultrareview) approfondita. La pubblicazione su una merge request GitLab richiede Claude Code v2.1.257 o successiva. Con `ultra` su una PR di `github.com` come destinazione, passa `--post` per preselezionare nella finestra di dialogo di avvio la [pubblicazione dei risultati finali sulla PR](/docs/it/ultrareview#post-findings-to-the-pull-request); `--post` richiede Claude Code v2.1.227 o successiva. Consulta [Revisione locale con `/code-review`](/docs/it/code-review-local) per i livelli di sforzo, la scelta della destinazione e la relazione con `/simplify`. Alias: `/review` |

76| `/color [color\|default]` | Imposta il colore della barra del prompt per la sessione corrente. Colori disponibili: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Usa `default` per reimpostarlo, oppure eseguilo senza argomento per scegliere un colore casuale. Quando [Remote Control](/docs/it/remote-control) è connesso, il colore viene sincronizzato con claude.ai/code. Disponibile anche in modalità non interattiva (`-p`) |76| `/color [color\|default]` | Imposta il colore della barra del prompt per la sessione corrente. Colori disponibili: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Usa `default` per reimpostarlo, oppure eseguilo senza argomento per scegliere un colore casuale. Quando [Remote Control](/docs/it/remote-control) è connesso, il colore viene sincronizzato con claude.ai/code. Disponibile anche in modalità non interattiva (`-p`) |

77| `/compact [instructions]` | Libera contesto riassumendo la conversazione fino a questo punto. Facoltativamente, passa istruzioni su cosa privilegiare nel riepilogo. Consulta [come la compattazione gestisce regole, skill e file di memoria](/docs/it/context-window#what-survives-compaction) |77| `/compact [instructions]` | Libera contesto riassumendo la conversazione fino a questo punto. Facoltativamente, passa istruzioni su cosa privilegiare nel riepilogo. Consulta [come la compattazione gestisce regole, skill e file di memoria](/docs/it/context-window#what-survives-compaction) |

78| `/config [key=value ...]` | Apre l'interfaccia delle [Impostazioni](/docs/it/settings) per regolare tema, modello, [stile di output](/docs/it/output-styles) e altre preferenze. Passa una o più coppie `key=value` per impostare direttamente un'impostazione senza aprire l'interfaccia, ad esempio `/config thinking=false`, `/config theme=dark` o `/config model=sonnet`. La forma `key=value` funziona anche in modalità non interattiva (`-p`) e dall'app mobile Claude tramite [Remote Control](/docs/it/remote-control). La forma `key=value` non può attivare un'impostazione che richiede la tua conferma nel pannello, come [`autoContinueAtUsageLimit`](/docs/it/interactive-mode#turn-automatic-continue-off), anche se può disattivarla. Esegui `/config --help` per elencare le chiavi accettate. Alias: `/settings` |78| `/config [key=value ...]` | Apre l'interfaccia delle [Impostazioni](/docs/it/settings) per regolare tema, modello, [stile di output](/docs/it/output-styles) e altre preferenze. Passa una o più coppie `key=value` per impostare direttamente un'impostazione senza aprire l'interfaccia, ad esempio `/config thinking=false`, `/config theme=dark` o `/config model=sonnet`. La forma `key=value` funziona anche in modalità non interattiva (`-p`) e dall'app mobile Claude tramite [Remote Control](/docs/it/remote-control). La forma `key=value` non può attivare un'impostazione che richiede la tua conferma nel pannello, come [`autoContinueAtUsageLimit`](/docs/it/interactive-mode#turn-automatic-continue-off), anche se può disattivarla. Esegui `/config --help` per elencare le chiavi accettate. Alias: `/settings` |


134| `/remote-env` | Sceglie l'[ambiente cloud](/docs/it/cloud-environments#select-an-environment-from-the-cli) predefinito per le sessioni cloud che avvii dalla CLI |134| `/remote-env` | Sceglie l'[ambiente cloud](/docs/it/cloud-environments#select-an-environment-from-the-cli) predefinito per le sessioni cloud che avvii dalla CLI |

135| `/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 |135| `/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 |

136| `/resume [session]` | Riprende una conversazione per ID o nome, oppure apre il selettore delle sessioni. Le [sessioni in background](/docs/it/agent-view) compaiono nel selettore contrassegnate con `bg`. Riprendendone una ancora in esecuzione, dal selettore o per ID o nome, [si apre quella sessione](/docs/it/sessions#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` |136| `/resume [session]` | Riprende una conversazione per ID o nome, oppure apre il selettore delle sessioni. Le [sessioni in background](/docs/it/agent-view) compaiono nel selettore contrassegnate con `bg`. Riprendendone una ancora in esecuzione, dal selettore o per ID o nome, [si apre quella sessione](/docs/it/sessions#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` |

137| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | Alias di [`/code-review`](/docs/it/code-review#review-a-diff-locally): 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 [Esaminare un diff localmente](/docs/it/code-review#review-a-diff-locally) per le regole esatte. Per una revisione cloud approfondita, usa [`/code-review ultra`](/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` |137| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | Alias di [`/code-review`](/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`](/docs/it/code-review-local) per le regole esatte. Per una revisione cloud approfondita, usa [`/code-review ultra`](/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` |

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

139| `/run` | **[Skill](/docs/it/skills#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](/docs/it/skills#run-and-verify-your-app) |139| `/run` | **[Skill](/docs/it/skills#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](/docs/it/skills#run-and-verify-your-app) |

140| `/run-skill-generator` | **[Skill](/docs/it/skills#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](/docs/it/skills#run-and-verify-your-app) per progetto |140| `/run-skill-generator` | **[Skill](/docs/it/skills#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](/docs/it/skills#run-and-verify-your-app) per progetto |

desktop.md +257 −3

Details

207* Fai clic su **Walk through in diff** per aprire la visualizzazione diff ed esaminare i risultati uno alla volta. Un risultato nel diff corrente appare alla sua riga, dove puoi fare clic su **Fix this one** o ignorarlo.207* Fai clic su **Walk through in diff** per aprire la visualizzazione diff ed esaminare i risultati uno alla volta. Un risultato nel diff corrente appare alla sua riga, dove puoi fare clic su **Fix this one** o ignorarlo.

208* Fai clic su **Apply fixes** per chiedere a Claude di correggere i risultati ancora aperti.208* Fai clic su **Apply fixes** per chiedere a Claude di correggere i risultati ancora aperti.

209 209 

210In qualsiasi sessione, puoi anche chiedere a Claude nella casella del prompt di correggere ciò che la revisione ha trovato. Per sapere cosa cerca `/code-review` e quali argomenti accetta, vedi [Rivedi un diff localmente](/docs/it/code-review#review-a-diff-locally).210In qualsiasi sessione, puoi anche chiedere a Claude nella casella del prompt di correggere ciò che la revisione ha trovato. Per sapere cosa cerca `/code-review` e quali argomenti accetta, vedi [Rivedi localmente con `/code-review`](/docs/it/code-review-local).

211 211 

212<h3 id="monitor-pull-request-status">212<h3 id="monitor-pull-request-status">

213 Monitora lo stato della pull request213 Monitora lo stato della pull request


859* **Sessioni per connessione**: Desktop su macOS e Linux apre diverse sessioni su una sola connessione SSH. Se il `sshd_config` del server imposta `MaxSessions 1`, aumenta il valore, ad esempio al valore predefinito di OpenSSH, cioè 10.859* **Sessioni per connessione**: Desktop su macOS e Linux apre diverse sessioni su una sola connessione SSH. Se il `sshd_config` del server imposta `MaxSessions 1`, aumenta il valore, ad esempio al valore predefinito di OpenSSH, cioè 10.

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

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

862* **Rete**: Claude Code viene eseguito sulla macchina remota ed effettua le sue richieste di rete da lì, quindi la macchina necessita dell'[accesso alla rete richiesto da Claude Code](/docs/it/network-config#network-access-requirements). Se la macchina non riesce a scaricare Claude Code, Desktop lo scarica sul tuo computer e lo carica sulla macchina. Le altre richieste di Claude Code partono comunque dalla macchina remota.862* **Rete**: Claude Code viene eseguito sulla macchina remota ed effettua le sue richieste di rete da lì, quindi la macchina necessita dell'[accesso alla rete richiesto da Claude Code](/docs/it/network-config#network-access-requirements). Se la macchina non riesce a scaricare Claude Code, Desktop lo scarica sul tuo computer e lo carica sulla macchina. Le altre richieste di Claude Code partono comunque dalla macchina remota. Su una macchina remota Linux, se quelle richieste richiedono un proxy, [impostalo per le sessioni SSH](#set-a-proxy-or-a-ca-certificate-for-ssh-sessions).

863 

864<h4 id="set-a-proxy-or-a-ca-certificate-for-ssh-sessions">

865 Impostare un proxy o un certificato CA per le sessioni SSH

866</h4>

867 

868Se una macchina remota Linux raggiunge internet tramite un proxy o ha bisogno di un certificato CA, aggiungi le [variabili per proxy e CA](/docs/it/network-config) sotto `env` in `~/.claude/settings.json` su quella macchina. Aggiungile anche se le esporti già in `~/.profile`, `~/.bash_profile`, `~/.zprofile` o `~/.zshrc` su quella macchina.

869 

870Una sessione SSH non le ottiene da quei file, anche quando `claude` in un terminale su quella macchina le ottiene. La sessione può quindi bloccarsi, oppure mostrare **The connection from … to the API failed** o **Authentication failed**, e accedere di nuovo non aiuta.

871 

872<Steps>

873 <Step title="Aggiungi le variabili">

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

875 

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

877 {

878 "env": {

879 "HTTPS_PROXY": "http://proxy.example.com:8080",

880 "NODE_EXTRA_CA_CERTS": "/etc/ssl/certs/example-ca.pem"

881 }

882 }

883 ```

884 </Step>

885 

886 <Step title="Invia di nuovo il tuo messaggio">

887 Invia di nuovo il tuo messaggio, perché una variabile che aggiungi o modifichi in quel file ha effetto entro pochi secondi. Se non riesce ancora, avvia una nuova sessione.

888 </Step>

889</Steps>

890 

891<h5 id="find-a-proxy-or-ca-variable-set-elsewhere-on-the-remote-machine">

892 Trovare una variabile di proxy o CA impostata altrove sulla macchina remota

893</h5>

894 

895Verifica se la macchina remota Linux imposta la variabile di proxy o CA altrove, perché le sessioni usano quel valore e [ignorano quello presente in qualsiasi file di impostazioni](/docs/it/settings-reference#how-env-values-interact-with-your-shell):

896 

897<Steps>

898 <Step title="Elenca le variabili impostate dalla macchina remota">

899 In un terminale sul tuo computer, esegui `ssh devbox env`, con il tuo host.

900 </Step>

901 

902 <Step title="Modifica la variabile dove è impostata">

903 Se l'elenco contiene la variabile, modificala nel file che la imposta, come `~/.zshenv`, `/etc/environment` o `~/.bashrc` sulla macchina remota.

904 </Step>

905 

906 <Step title="Fornisci il nuovo valore alle sessioni">

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

908 </Step>

909</Steps>

863 910 

864<h4 id="use-your-ssh-configuration-on-macos-and-linux">911<h4 id="use-your-ssh-configuration-on-macos-and-linux">

865 Usare la tua configurazione SSH su macOS e Linux912 Usare la tua configurazione SSH su macOS e Linux


892 939 

893Inserisci `devbox` nel campo **SSH host**.940Inserisci `devbox` nel campo **SSH host**.

894 941 

942<h5 id="reach-a-container-on-a-remote-machine">

943 Raggiungere un container su una macchina remota

944</h5>

945 

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

947 

948<Steps>

949 <Step title="Aggiungi la voce">

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

951 

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

953 Host devbox-container

954 User dev

955 ProxyCommand ssh build.example.com docker exec -i devbox /usr/sbin/sshd -i

956 ```

957 </Step>

958 

959 <Step title="Prepara il container">

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

961 * Fornisci all'account indicato in `User` un modo per accedere, come un file `authorized_keys`

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

963 </Step>

964 

965 <Step title="Controlla l'allowlist">

966 Se il tuo amministratore [limita gli host SSH](#restrict-which-ssh-hosts-users-can-connect-to), esegui `ssh -G devbox-container` in un terminale sul tuo computer. Chiedigli di consentire in `sshHostAllowlist` l'`hostname` che stampa, in questo caso `devbox-container`. Quando consente quel nome, consente qualunque destinazione a cui si connetta il `ProxyCommand` della tua voce.

967 </Step>

968 

969 <Step title="Testa la voce, poi connettiti">

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

971 

972 * **Se `ssh` chiede una password, una passphrase o un codice**: passa a un accesso che funzioni senza richieste, come una chiave conservata dal tuo agente SSH

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

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

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

976 * Se stampa `no hostkeys available` e il container ha chiavi host, aggiungi `-u root` dopo `exec` in questo comando e nella voce.

977 

978 Poi inserisci `devbox-container` nel campo **SSH host**.

979 </Step>

980</Steps>

981 

895<h5 id="use-variables-from-your-shell-in-a-proxycommand">982<h5 id="use-variables-from-your-shell-in-a-proxycommand">

896 Usare variabili della tua shell in un `ProxyCommand`983 Usare variabili della tua shell in un `ProxyCommand`

897</h5>984</h5>


900 987 

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

902 989 

990<Note>

991 Se la tua shell imposta credenziali AWS temporanee, [fornisci un profilo all'AWS CLI](#use-aws-credentials-in-a-proxycommand) invece di esportare variabili `AWS_*`.

992</Note>

993 

994<a id="use-aws-credentials-in-a-proxycommand" />

995 

996<h5 id="use-aws-credentials-in-a-proxycommand">

997 Usare credenziali AWS in un `ProxyCommand`

998</h5>

999 

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

1001 

1002Se l'AWS CLI non ha un'altra fonte per una regione o per le credenziali, non riesce con `You must specify a region` o `Unable to locate credentials`. Per connetterti da Desktop, fornisci all'AWS CLI un profilo che legge da `~/.aws/config`:

1003 

1004<Steps>

1005 <Step title="Aggiungi un profilo con una regione e una fonte di credenziali">

1006 Questo esempio aggiunge un profilo denominato `corp` che ottiene le sue credenziali da un programma di supporto:

1007 

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

1009 [profile corp]

1010 region = us-east-1

1011 credential_process = /full/path/to/your-credential-helper

1012 ```

1013 

1014 * **`region`**: indica la AWS Region delle macchine a cui ti connetti

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

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

1017 </Step>

1018 

1019 <Step title="Indica il profilo nel ProxyCommand">

1020 Questo esempio aggiunge `--profile` al [comando documentato da AWS per Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started-enable-ssh-connections.html):

1021 

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

1023 Host i-*

1024 ProxyCommand sh -c "aws ssm start-session --profile corp --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"

1025 ```

1026 </Step>

1027 

1028 <Step title="Connettiti di nuovo">

1029 Esegui `ssh` con l'host in un terminale per confermare che la voce si connetta ancora lì, poi connettiti da Desktop.

1030 </Step>

1031</Steps>

1032 

903<h5 id="raise-the-ssh-connection-timeout">1033<h5 id="raise-the-ssh-connection-timeout">

904 Aumentare il timeout della connessione SSH1034 Aumentare il timeout della connessione SSH

905</h5>1035</h5>


916 1046 

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

918 1048 

1049Se la macchina remota stessa attende un'approvazione sul tuo telefono, approva entro 45 secondi, qualunque `ConnectTimeout` tu imposti. Non puoi aumentare questo limite, perché Desktop imposta autonomamente `ServerAliveInterval` e `ServerAliveCountMax`, e `ssh` chiude quindi un accesso in cui la macchina remota non invia nulla per quel lasso di tempo. Se invece è un jump host o un `ProxyCommand` ad attenderti, aumenta `ConnectTimeout` nella voce della macchina remota per coprire quel tempo.

1050 

1051<h5 id="fix-a-match-host-block-that-only-desktop-applies">

1052 Correggere un blocco `Match host` che solo Desktop applica

1053</h5>

1054 

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

1056 

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

1058 

1059```bash theme={null}

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

1061```

1062 

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

1064 

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

1066Match host *.internal.example.com !originalhost devbox

1067```

1068 

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

1070 

919<h5 id="forwarding-settings-that-desktop-leaves-off">1071<h5 id="forwarding-settings-that-desktop-leaves-off">

920 Impostazioni di inoltro che Desktop lascia disattivate1072 Impostazioni di inoltro che Desktop lascia disattivate

921</h5>1073</h5>


1154 </Step>1306 </Step>

1155 1307 

1156 <Step title="Termina i processi">1308 <Step title="Termina i processi">

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

1310 

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

1158 </Step>1312 </Step>

1159 1313 

1160 <Step title="Elimina la cartella">1314 <Step title="Elimina la cartella">


1170 1324 

1171Prima di archiviare una sessione che ha un worktree, consulta [Lavorare in parallelo con le sessioni](#work-in-parallel-with-sessions).1325Prima di archiviare una sessione che ha un worktree, consulta [Lavorare in parallelo con le sessioni](#work-in-parallel-with-sessions).

1172 1326 

1327<h5 id="see-which-user-the-processes-run-as">

1328 Vedere con quale utente vengono eseguiti i processi

1329</h5>

1330 

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

1332 

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

1334 

1173<h5 id="see-who-connected-to-the-remote-machine">1335<h5 id="see-who-connected-to-the-remote-machine">

1174 Vedere chi si è connesso alla macchina remota1336 Vedere chi si è connesso alla macchina remota

1175</h5>1337</h5>

1176 1338 

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

1178 1340 

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

1342 

1343<h4 id="connections-that-close-before-login">

1344 Connessioni che si chiudono prima dell'accesso

1345</h4>

1346 

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

1348 

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

1350 

1351<h5 id="recognize-a-test-in-the-ssh-server’s-log">

1352 Riconoscere un test nel log del server SSH

1353</h5>

1354 

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

1356 

1357| Versione di OpenSSH | Righe per un test | Righe se il messaggio di benvenuto arriva prima |

1358| - | - | - |

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

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

1361| Da 8.3 a 9.4 | `error: kex_exchange_identification: Connection closed by remote host`, poi `Connection closed by 203.0.113.7 port 51234` | `error: kex_exchange_identification: read: Connection reset by peer`, poi `Connection reset by 203.0.113.7 port 51234` |

1362| Da 9.5 a 10.2 | `Connection closed by 203.0.113.7 port 51234` | `error: kex_exchange_identification: read: Connection reset by peer`, poi `Connection reset by 203.0.113.7 port 51234` |

1363| Da 10.3 a 10.5 | `Connection closed by 203.0.113.7 port 51234 [preauth]` | `error: kex_exchange_identification: read: Connection reset by peer [preauth]`, poi `Connection reset by 203.0.113.7 port 51234 [preauth]` |

1364 

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

1366 

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

1368 

1369<a id="check-whether-the-ssh-server-itself-refuses-the-address" />

1370 

1371<h5 id="check-whether-the-ssh-server-itself-refuses-the-address">

1372 Verificare se è il server SSH stesso a rifiutare l'indirizzo

1373</h5>

1374 

1375Se le connessioni vengono rifiutate da un indirizzo condiviso da molti computer con Desktop, cerca nel log del server SSH una riga che termina come questa:

1376 

1377```text theme={null}

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

1379```

1380 

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

1382 

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

1384 

1385<a id="check-whether-fail2ban-counts-desktops-tests" />

1386 

1387<h5 id="check-whether-fail2ban-counts-desktop’s-tests">

1388 Verificare se fail2ban conta i test di Desktop

1389</h5>

1390 

1391Se fail2ban 0.10.5 o successivo ha bloccato un indirizzo da cui Desktop si connette, trova la modalità del tuo jail in `jail.conf`, `jail.local` o in `jail.d/`:

1392 

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

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

1395 

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

1397 

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

1399 

1400```bash theme={null}

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

1402```

1403 

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

1405 

1406<a id="prevent-a-ban-by-fail2ban" />

1407 

1408<h5 id="prevent-a-ban-by-fail2ban">

1409 Evitare un blocco da parte di fail2ban

1410</h5>

1411 

1412Per impedire a fail2ban di bloccare un indirizzo per i test di Desktop, modifica una delle due impostazioni del jail, ciascuna con un costo:

1413 

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

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

1416 

1179<h4 id="use-mcp-servers-set-up-on-the-remote-machine">1417<h4 id="use-mcp-servers-set-up-on-the-remote-machine">

1180 Usare i server MCP configurati sulla macchina remota1418 Usare i server MCP configurati sulla macchina remota

1181</h4>1419</h4>


1682 1920 

1683Per qualsiasi altro messaggio, controlla i [requisiti della macchina remota](#remote-machine-requirements-for-ssh-sessions).1921Per qualsiasi altro messaggio, controlla i [requisiti della macchina remota](#remote-machine-requirements-for-ssh-sessions).

1684 1922 

1923<a id="get-desktops-logs-for-an-ssh-problem" />

1924 

1925<h3 id="get-desktop’s-logs-for-an-ssh-problem">

1926 Ottieni i log di Desktop per un problema SSH

1927</h3>

1928 

1929Ottieni `ssh.log`, il log in cui Desktop registra le sue connessioni SSH, in un file zip dei log di Desktop che salvi dal menu **Help**. Per salvarlo, apri **Help > Troubleshooting** e seleziona la voce per il tuo sistema:

1930 

1931* **macOS**: **Show Logs in Finder**

1932* **Windows**: **Show Logs in File Explorer**

1933* **Linux**: **Show Logs in File Manager**

1934 

1935Esamina i file prima di inviarli, perché possono includere nomi e altri dettagli dal tuo ambiente. `<host>` e `<user>` indicano nomi che Desktop ha sostituito. Desktop non sostituisce tutti i nomi, e un nome di host o di utente SSH può comunque apparire così com'è scritto. Se invii il file zip a qualcuno, indica quale host non è riuscito e quando, perché i log potrebbero non nominarlo.

1936 

1937Il file zip non contiene il log del programma helper che Desktop installa sulla macchina remota. Per ottenere anche quel log, copia `remote-server.log` dalla cartella dell'helper sotto [`~/.claude/remote/run/`](#files-and-processes-on-the-remote-machine) nella directory home dell'utente che si è connesso. Esamina anche quel file prima di inviarlo.

1938 

1685<h3 id="app-won’t-quit">1939<h3 id="app-won’t-quit">

1686 App won't quit1940 App won't quit

1687</h3>1941</h3>

env-vars.md +3 −1

Details

225| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Imposta su `0` per impedire a Claude Code di aprire automaticamente il browser quando viene pubblicato un nuovo [artefatto](/docs/it/artifacts#create-an-artifact) |225| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Imposta su `0` per impedire a Claude Code di aprire automaticamente il browser quando viene pubblicato un nuovo [artefatto](/docs/it/artifacts#create-an-artifact) |

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

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

228| `CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS` | Imposta `0` per impedire a Claude di applicare piccole modifiche al file di un [artefatto](/docs/it/artifacts#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 |

228| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Imposta su `0` per omettere il [blocco di attribuzione](/docs/it/llm-gateway-protocol#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](/docs/it/permission-modes#eliminate-prompts-with-auto-mode) anche quando imposti `0`. In [Blocco di attribuzione del prompt di sistema](/docs/it/llm-gateway-protocol#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 |229| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Imposta su `0` per omettere il [blocco di attribuzione](/docs/it/llm-gateway-protocol#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](/docs/it/permission-modes#eliminate-prompts-with-auto-mode) anche quando imposti `0`. In [Blocco di attribuzione del prompt di sistema](/docs/it/llm-gateway-protocol#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 |

229| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Rimossa nella v2.1.283. Usa invece `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` |230| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Rimossa nella v2.1.283. Usa invece `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` |

230| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Imposta la [finestra di compattazione automatica](/docs/it/model-config#set-the-auto-compact-window) in token, da `100000` a `1000000`. Accetta solo un intero semplice come `500000`: un valore come `500k` viene letto come `500` e portato al minimo di 100K. La finestra effettiva è inoltre limitata alla finestra di contesto del modello. Ha la precedenza sul comando `/autocompact`, sul flag `--autocompact` e sull'impostazione `autoCompactWindow`. Il `used_percentage` della riga di stato si misura sempre rispetto all'intera finestra di contesto del modello, quindi una volta impostata questa variabile, quella percentuale non indica più quando verrà eseguita la compattazione |231| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Imposta la [finestra di compattazione automatica](/docs/it/model-config#set-the-auto-compact-window) in token, da `100000` a `1000000`. Accetta solo un intero semplice come `500000`: un valore come `500k` viene letto come `500` e portato al minimo di 100K. La finestra effettiva è inoltre limitata alla finestra di contesto del modello. Ha la precedenza sul comando `/autocompact`, sul flag `--autocompact` e sull'impostazione `autoCompactWindow`. Il `used_percentage` della riga di stato si misura sempre rispetto all'intera finestra di contesto del modello, quindi una volta impostata questa variabile, quella percentuale non indica più quando verrà eseguita la compattazione |


332| `CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS` | Dimensione del contesto, in token, a partire dalla quale la [compattazione in inattività](/docs/it/settings-reference#idlecompaction) si applica a una conversazione (predefinito: `200000`). Accetta un numero intero positivo; qualsiasi altro valore viene ignorato. I valori inferiori a `100000` vengono portati a `100000`, la soglia minima. La compattazione in inattività è attiva per impostazione predefinita per le conversazioni che ne soddisfano le condizioni. Per disattivarla, imposta `idleCompaction` su `false`. Richiede Claude Code v2.1.290 o successiva |333| `CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS` | Dimensione del contesto, in token, a partire dalla quale la [compattazione in inattività](/docs/it/settings-reference#idlecompaction) si applica a una conversazione (predefinito: `200000`). Accetta un numero intero positivo; qualsiasi altro valore viene ignorato. I valori inferiori a `100000` vengono portati a `100000`, la soglia minima. La compattazione in inattività è attiva per impostazione predefinita per le conversazioni che ne soddisfano le condizioni. Per disattivarla, imposta `idleCompaction` su `false`. Richiede Claude Code v2.1.290 o successiva |

333| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Quanti [subagent](/docs/it/sub-agents#concurrent-subagent-limit) possono essere in esecuzione in una sessione prima che lo strumento Agent si rifiuti di generarne un altro (predefinito: 20). Accetta un numero intero positivo in cifre semplici; qualsiasi altro valore viene ignorato, quindi la variabile può regolare il limite ma non disabilitarlo. Richiede Claude Code v2.1.217 o successiva |334| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Quanti [subagent](/docs/it/sub-agents#concurrent-subagent-limit) possono essere in esecuzione in una sessione prima che lo strumento Agent si rifiuti di generarne un altro (predefinito: 20). Accetta un numero intero positivo in cifre semplici; qualsiasi altro valore viene ignorato, quindi la variabile può regolare il limite ma non disabilitarlo. Richiede Claude Code v2.1.217 o successiva |

334| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Sovrascrive la dimensione della finestra di contesto che Claude Code presume per il modello attivo. A partire dalla v2.1.193, il modo in cui si applica dipende da come Claude Code risolve l'ID del modello; consulta [Correggere la finestra per un gateway o un ID modello personalizzato](/docs/it/model-config#correct-the-window-for-a-gateway-or-custom-model-id). Usala quando instradi verso un modello tramite `ANTHROPIC_BASE_URL` la cui finestra di contesto non corrisponde alla dimensione integrata per il suo nome |335| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Sovrascrive la dimensione della finestra di contesto che Claude Code presume per il modello attivo. A partire dalla v2.1.193, il modo in cui si applica dipende da come Claude Code risolve l'ID del modello; consulta [Correggere la finestra per un gateway o un ID modello personalizzato](/docs/it/model-config#correct-the-window-for-a-gateway-or-custom-model-id). Usala quando instradi verso un modello tramite `ANTHROPIC_BASE_URL` la cui finestra di contesto non corrisponde alla dimensione integrata per il suo nome |

335| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Lunghezza massima in caratteri di ciascuna descrizione di strumento MCP e delle istruzioni di ciascun server MCP che Claude Code invia al modello. Il valore impostato sostituisce entrambi i [limiti predefiniti](/docs/it/mcp#for-mcp-server-authors): 4096, e 16384 per la descrizione di uno strumento che Claude carica tramite la ricerca degli strumenti. Claude Code tronca il testo più lungo. Accetta un numero intero positivo in cifre semplici. Qualsiasi altro valore viene ignorato e si applicano i valori predefiniti. Richiede Claude Code v2.1.280 o successiva |336| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Lunghezza massima in caratteri delle descrizioni degli strumenti MCP e delle istruzioni dei server MCP che Claude Code invia al modello. Il valore che imposti sostituisce entrambi i [limiti predefiniti](/docs/it/mcp#for-mcp-server-authors): 4096, e 16384 per la descrizione di uno strumento che Claude carica tramite la ricerca degli strumenti. Accetta un numero intero positivo in cifre semplici. Qualsiasi altro valore viene ignorato e si applicano i valori predefiniti. Richiede Claude Code v2.1.280 o successivo |

336| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Imposta il numero massimo di token di output per la maggior parte delle richieste. Valori predefiniti e limiti variano in base al modello; consulta [numero massimo di token di output](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Claude Code riduce al limite un valore superiore al limite di un modello. Per un ID modello che Claude Code non riesce a ricondurre a un modello noto, il valore predefinito è 32000 e il limite è 128000. Aumentare questo valore riduce la finestra di contesto effettiva disponibile prima che si attivi la [compattazione automatica](/docs/it/costs#reduce-token-usage) |337| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Imposta il numero massimo di token di output per la maggior parte delle richieste. Valori predefiniti e limiti variano in base al modello; consulta [numero massimo di token di output](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Claude Code riduce al limite un valore superiore al limite di un modello. Per un ID modello che Claude Code non riesce a ricondurre a un modello noto, il valore predefinito è 32000 e il limite è 128000. Aumentare questo valore riduce la finestra di contesto effettiva disponibile prima che si attivi la [compattazione automatica](/docs/it/costs#reduce-token-usage) |

337| `CLAUDE_CODE_MAX_RETRIES` | Sovrascrive il numero di nuovi tentativi per le richieste API non riuscite (predefinito: 10). 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. Per le sessioni non presidiate che devono attendere la fine di interruzioni più lunghe, imposta invece `CLAUDE_CODE_RETRY_WATCHDOG` |338| `CLAUDE_CODE_MAX_RETRIES` | Sovrascrive il numero di nuovi tentativi per le richieste API non riuscite (predefinito: 10). 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. Per le sessioni non presidiate che devono attendere la fine di interruzioni più lunghe, imposta invece `CLAUDE_CODE_RETRY_WATCHDOG` |

338| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Rimossa nella v2.1.224 e ora non ha alcun effetto. In precedenza limitava il numero totale di [subagent](/docs/it/sub-agents) che Claude poteva generare con lo strumento Agent in una sessione (predefinito: 200); la generazione oltre il limite non riusciva con `Subagent spawn limit reached`. Il [limite di subagent simultanei](/docs/it/sub-agents#concurrent-subagent-limit) e il [limite di profondità](/docs/it/sub-agents#let-subagents-spawn-their-own-subagents) si applicano ancora |339| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Rimossa nella v2.1.224 e ora non ha alcun effetto. In precedenza limitava il numero totale di [subagent](/docs/it/sub-agents) che Claude poteva generare con lo strumento Agent in una sessione (predefinito: 200); la generazione oltre il limite non riusciva con `Subagent spawn limit reached`. Il [limite di subagent simultanei](/docs/it/sub-agents#concurrent-subagent-limit) e il [limite di profondità](/docs/it/sub-agents#let-subagents-spawn-their-own-subagents) si applicano ancora |


598* Eseguire [`/skill-doctor`](/docs/it/skills#find-unused-skills) o aprirne il report nella scheda **Stats** di `/plugin`599* Eseguire [`/skill-doctor`](/docs/it/skills#find-unused-skills) o aprirne il report nella scheda **Stats** di `/plugin`

599* Sincronizzare le [skill](/docs/it/skills#where-synced-skills-load) e i [plugin](/docs/it/plugins/loading#synced-plugins) abilitati per il tuo account claude.ai nelle sessioni del terminale600* Sincronizzare le [skill](/docs/it/skills#where-synced-skills-load) e i [plugin](/docs/it/plugins/loading#synced-plugins) abilitati per il tuo account claude.ai nelle sessioni del terminale

600* Attivare il [mod You should know](/docs/it/interactive-mode#you-should-know-suggestions)601* Attivare il [mod You should know](/docs/it/interactive-mode#you-should-know-suggestions)

602* Vedere ciò che un [mod](/docs/it/plugins/mods/overview#where-mods-run) disegna nel pannello della chat dell'estensione VS Code; gli hook del mod vengono comunque eseguiti

601* Usare [lo strumento advisor](/docs/it/advisor#requirements)603* Usare [lo strumento advisor](/docs/it/advisor#requirements)

602* Leggere o rispondere ai [commenti su un artefatto](/docs/it/artifacts#collect-comments-on-an-artifact)604* Leggere o rispondere ai [commenti su un artefatto](/docs/it/artifacts#collect-comments-on-an-artifact)

603* Far leggere a Claude [l'artefatto pubblico di un'altra organizzazione](/docs/it/artifacts#read-an-artifact-shared-with-you)605* Far leggere a Claude [l'artefatto pubblico di un'altra organizzazione](/docs/it/artifacts#read-an-artifact-shared-with-you)

errors.md +202 −10

Details

72| `Claude.ai login was rejected — run /login, then /remote-control` | [Autenticazione](#remote-control-couldnt-refresh-your-login) |72| `Claude.ai login was rejected — run /login, then /remote-control` | [Autenticazione](#remote-control-couldnt-refresh-your-login) |

73| `OAuth token unavailable — run /login to restore Remote Control` | [Autenticazione](#remote-control-couldnt-refresh-your-login) |73| `OAuth token unavailable — run /login to restore Remote Control` | [Autenticazione](#remote-control-couldnt-refresh-your-login) |

74| `Signed out of Claude — run /login, then /remote-control` | [Autenticazione](#remote-control-couldnt-refresh-your-login) |74| `Signed out of Claude — run /login, then /remote-control` | [Autenticazione](#remote-control-couldnt-refresh-your-login) |

75| `Remote Control could not renew this computer's connection` | [Autenticazione](#remote-control-could-not-renew-this-computers-connection) |

75| `signed-in claude.ai account or organization changed on this machine` | [Autenticazione](#remote-control-stopped-because-the-signed-in-account-changed) |76| `signed-in claude.ai account or organization changed on this machine` | [Autenticazione](#remote-control-stopped-because-the-signed-in-account-changed) |

76| `Remote Control stopped — the app running this session is now signed in to a different Claude account` | [Autenticazione](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |77| `Remote Control stopped — the app running this session is now signed in to a different Claude account` | [Autenticazione](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |

77| `Remote Control stopped — the app running this session is signed out of Claude` | [Autenticazione](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |78| `Remote Control stopped — the app running this session is signed out of Claude` | [Autenticazione](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |


153| `Request too large` | [Errori di richiesta](#request-too-large) |154| `Request too large` | [Errori di richiesta](#request-too-large) |

154| `Request too large for the API's 32MB request limit` | [Errori di richiesta](#request-too-large) |155| `Request too large for the API's 32MB request limit` | [Errori di richiesta](#request-too-large) |

155| `Image was too large` | [Errori di richiesta](#image-was-too-large) |156| `Image was too large` | [Errori di richiesta](#image-was-too-large) |

157| `API Error: an image in the conversation could not be processed and was removed` | [Errori di richiesta](#image-was-too-large) |

156| `Unable to resize image` | [Errori di richiesta](#unable-to-resize-image) |158| `Unable to resize image` | [Errori di richiesta](#unable-to-resize-image) |

157| `Request rejected as unprocessable by the model` | [Errori di richiesta](#request-rejected-as-unprocessable-by-the-model) |159| `Request rejected as unprocessable by the model` | [Errori di richiesta](#request-rejected-as-unprocessable-by-the-model) |

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


179| `Effort '<level>' isn't available with thinking turned off on this model` | [Errori di richiesta](#effort-isnt-available-with-thinking-turned-off) |181| `Effort '<level>' isn't available with thinking turned off on this model` | [Errori di richiesta](#effort-isnt-available-with-thinking-turned-off) |

180| `effort '<level>' is not supported when thinking is disabled` | [Errori di richiesta](#effort-isnt-available-with-thinking-turned-off) |182| `effort '<level>' is not supported when thinking is disabled` | [Errori di richiesta](#effort-isnt-available-with-thinking-turned-off) |

181| `max_tokens must be greater than thinking.budget_tokens` | [Errori di richiesta](#thinking-budget-exceeds-output-limit) |183| `max_tokens must be greater than thinking.budget_tokens` | [Errori di richiesta](#thinking-budget-exceeds-output-limit) |

184| `Claude's response exceeded the ... output token maximum` | [Errori di richiesta](#response-exceeded-the-output-token-maximum) |

182| `API Error: 400 due to tool use concurrency issues` | [Errori di richiesta](#tool-use-or-thinking-block-mismatch) |185| `API Error: 400 due to tool use concurrency issues` | [Errori di richiesta](#tool-use-or-thinking-block-mismatch) |

183| `API Error: 400 orphaned tool_result in conversation history` | [Errori di richiesta](#tool-use-or-thinking-block-mismatch) |186| `API Error: 400 orphaned tool_result in conversation history` | [Errori di richiesta](#tool-use-or-thinking-block-mismatch) |

184| `API Error: 400 duplicate tool_use ID in conversation history` | [Errori di richiesta](#tool-use-or-thinking-block-mismatch) |187| `API Error: 400 duplicate tool_use ID in conversation history` | [Errori di richiesta](#tool-use-or-thinking-block-mismatch) |


199| `The connection dropped while downloading the update` | [Risoluzione dei problemi di installazione e accesso](/docs/it/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |202| `The connection dropped while downloading the update` | [Risoluzione dei problemi di installazione e accesso](/docs/it/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |

200| `Download timed out: exceeded the total deadline` | [Risoluzione dei problemi di installazione e accesso](/docs/it/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |203| `Download timed out: exceeded the total deadline` | [Risoluzione dei problemi di installazione e accesso](/docs/it/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |

201| `--bg and --print conflict` | [Errori della riga di comando](#conflict-between-bg-and-print) |204| `--bg and --print conflict` | [Errori della riga di comando](#conflict-between-bg-and-print) |

205| `Couldn't tell whether --bg is a flag or text here, so nothing was started` | [Errori della riga di comando](#couldnt-tell-whether-bg-is-a-flag-or-text) |

202| `Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.` | [Errori della riga di comando](#conflict-between-a-system-prompt-flag-and-its-file-form) |206| `Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.` | [Errori della riga di comando](#conflict-between-a-system-prompt-flag-and-its-file-form) |

203| `Cloud sessions cannot be created from a --restricted session` | [Errori della riga di comando](#cloud-sessions-cannot-be-created-from-a-restricted-session) |207| `Cloud sessions cannot be created from a --restricted session` | [Errori della riga di comando](#cloud-sessions-cannot-be-created-from-a-restricted-session) |

204| `Cloud sessions are disabled by your organization's policy` | [Errori della riga di comando](#cloud-sessions-are-disabled-by-your-organizations-policy) |208| `Cloud sessions are disabled by your organization's policy` | [Errori della riga di comando](#cloud-sessions-are-disabled-by-your-organizations-policy) |


217| `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) |221| `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) |

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

219| `` `<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) |223| `` `<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) |

224| `--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) |

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

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

222| `Could not import <server>: <reason>` | [Errori della riga di comando](#could-not-import-a-server-from-claude-desktop) |227| `Could not import <server>: <reason>` | [Errori della riga di comando](#could-not-import-a-server-from-claude-desktop) |


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

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

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

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

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

237| `Claude Code can't read the keyboard here: stdin is not a terminal` | [Errori della riga di comando](#claude-code-cant-read-the-keyboard-here) |243| `Claude Code can't read the keyboard here: stdin is not a terminal` | [Errori della riga di comando](#claude-code-cant-read-the-keyboard-here) |

238| `Error: Input contained only whitespace` | [Errori della riga di comando](#input-contained-only-whitespace) |244| `Error: Input contained only whitespace` | [Errori della riga di comando](#input-contained-only-whitespace) |


367| `Claude Code exited after an unrecoverable interface error (...)` | [Avvisi di configurazione](#exited-after-an-unrecoverable-interface-error) |373| `Claude Code exited after an unrecoverable interface error (...)` | [Avvisi di configurazione](#exited-after-an-unrecoverable-interface-error) |

368| `Agent descriptions are over the 15.0k-token limit` | [Avvisi di configurazione](#agent-descriptions-are-over-the-15000-token-limit) |374| `Agent descriptions are over the 15.0k-token limit` | [Avvisi di configurazione](#agent-descriptions-are-over-the-15000-token-limit) |

369| `hook needs quotes around a path with a space` | [Avvisi di configurazione](#hook-needs-quotes-around-a-path-with-a-space) |375| `hook needs quotes around a path with a space` | [Avvisi di configurazione](#hook-needs-quotes-around-a-path-with-a-space) |

376| `Instruction file not loaded` | [Avvisi di configurazione](#instruction-file-not-loaded) |

370| `Not loaded: rename <path>, then restart — its name uses "<name>", a name reserved for the skills synced from your claude.ai account` | [Avvisi di configurazione](#a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved) |377| `Not loaded: rename <path>, then restart — its name uses "<name>", a name reserved for the skills synced from your claude.ai account` | [Avvisi di configurazione](#a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved) |

371| `N skill or command names refused: run with --debug to see which ([names]), rename, then restart` | [Avvisi di configurazione](#skill-or-command-name-refused) |378| `N skill or command names refused: run with --debug to see which ([names]), rename, then restart` | [Avvisi di configurazione](#skill-or-command-name-refused) |

372| `Ignoring N permissions.allow entries from ... this workspace has not been trusted` | [Avvisi di configurazione](#workspace-has-not-been-trusted) |379| `Ignoring N permissions.allow entries from ... this workspace has not been trusted` | [Avvisi di configurazione](#workspace-has-not-been-trusted) |


377| `Your organization's managed settings allow Claude Code to use: <providers>` | [Avvisi di configurazione](#managed-settings-dont-allow-this-api-provider) |384| `Your organization's managed settings allow Claude Code to use: <providers>` | [Avvisi di configurazione](#managed-settings-dont-allow-this-api-provider) |

378| `Your organization's managed settings allow Claude Code to use no API provider at all` | [Avvisi di configurazione](#managed-settings-dont-allow-this-api-provider) |385| `Your organization's managed settings allow Claude Code to use no API provider at all` | [Avvisi di configurazione](#managed-settings-dont-allow-this-api-provider) |

379| `MCP server <name> is blocked by enterprise managed policy` | [Avvisi di configurazione](#mcp-server-is-blocked-by-enterprise-managed-policy) |386| `MCP server <name> is blocked by enterprise managed policy` | [Avvisi di configurazione](#mcp-server-is-blocked-by-enterprise-managed-policy) |

387| `"<name>" is a reserved MCP server name and was not loaded` | [Avvisi di configurazione](#mcp-server-name-is-reserved) |

380| `Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.` | [Avvisi di configurazione](#managed-settings-document-could-not-be-parsed) |388| `Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.` | [Avvisi di configurazione](#managed-settings-document-could-not-be-parsed) |

381| `Managed settings drop-in directory could not be read` | [Avvisi di configurazione](#managed-settings-document-could-not-be-parsed) |389| `Managed settings drop-in directory could not be read` | [Avvisi di configurazione](#managed-settings-document-could-not-be-parsed) |

382| `Unable to read managed policy settings` | [Avvisi di configurazione](#unable-to-read-managed-policy-settings) |390| `Unable to read managed policy settings` | [Avvisi di configurazione](#unable-to-read-managed-policy-settings) |

391| `Managed settings contain invalid entries, including PreToolUse/PermissionRequest hooks that are NOT loaded; fix or remove each entry:` | [Avvisi di configurazione](#managed-settings-hooks-not-loaded) |

383| `otelHeadersHelper failed; telemetry is not being exported. See /status: ...` | [Avvisi di configurazione](#otelheadershelper-failed) |392| `otelHeadersHelper failed; telemetry is not being exported. See /status: ...` | [Avvisi di configurazione](#otelheadershelper-failed) |

384| `"crossSessionInbound" must be one of "accept", "hold", "refuse"` | [Avvisi di configurazione](#crosssessioninbound-must-be-one-of-accept-hold-refuse) |393| `"crossSessionInbound" must be one of "accept", "hold", "refuse"` | [Avvisi di configurazione](#crosssessioninbound-must-be-one-of-accept-hold-refuse) |

385| `API Error: ANTHROPIC_FOUNDRY_RESOURCE must be a Foundry resource name` | [Avvisi di configurazione](#anthropic-foundry-resource-must-be-a-foundry-resource-name) |394| `API Error: ANTHROPIC_FOUNDRY_RESOURCE must be a Foundry resource name` | [Avvisi di configurazione](#anthropic-foundry-resource-must-be-a-foundry-resource-name) |


389| `... has a wildcard before the rest of the command` | [Avvisi di configurazione](#has-a-wildcard-before-the-rest-of-the-command) |398| `... has a wildcard before the rest of the command` | [Avvisi di configurazione](#has-a-wildcard-before-the-rest-of-the-command) |

390| `Denying Bash also turns off the PowerShell tool, so Claude has neither` | [Avvisi di configurazione](#denying-bash-also-turns-off-the-powershell-tool) |399| `Denying Bash also turns off the PowerShell tool, so Claude has neither` | [Avvisi di configurazione](#denying-bash-also-turns-off-the-powershell-tool) |

391| `CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced` | [Avvisi di configurazione](#the-200k-limit-isnt-enforced) |400| `CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced` | [Avvisi di configurazione](#the-200k-limit-isnt-enforced) |

401| `Model "<model>" isn't recognized · context assumed to be 200k tokens` | [Correggi la finestra per un gateway o un ID modello personalizzato](/docs/it/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |

402| `Claude Code doesn't recognize the model "<model>", so it assumes a context window of 200k tokens` | [Correggi la finestra per un gateway o un ID modello personalizzato](/docs/it/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |

392| `[claude-code:unrecognized_model]` | [Avvisi di configurazione](#unrecognized-model-id-on-a-request) |403| `[claude-code:unrecognized_model]` | [Avvisi di configurazione](#unrecognized-model-id-on-a-request) |

404| `is ignored — managed settings set allowManagedReadPathsOnly` / `is ignored — managed settings set allowManagedDomainsOnly` | [Avvisi di configurazione](#sandbox-allow-entries-are-ignored-under-a-managed-lock) |

393| `Stale sandbox mask files left by a killed session` | [Avvisi di configurazione](#stale-sandbox-mask-files-left-by-a-killed-session) |405| `Stale sandbox mask files left by a killed session` | [Avvisi di configurazione](#stale-sandbox-mask-files-left-by-a-killed-session) |

394| Le risposte sembrano di qualità inferiore al solito | [Qualità della risposta](#responses-seem-lower-quality-than-usual) |406| Le risposte sembrano di qualità inferiore al solito | [Qualità della risposta](#responses-seem-lower-quality-than-usual) |

395 407 


1209 1221 

1210Prima della v2.1.238, Claude Code segnalava i casi che ora indicano `Signed out of Claude` come `JWT refresh failed: no OAuth token — run /login`, e interrompeva Remote Control con `Claude.ai login expired — run /login to restore Remote Control` non appena un aggiornamento dell'accesso non riceveva risposta.1222Prima della v2.1.238, Claude Code segnalava i casi che ora indicano `Signed out of Claude` come `JWT refresh failed: no OAuth token — run /login`, e interrompeva Remote Control con `Claude.ai login expired — run /login to restore Remote Control` non appena un aggiornamento dell'accesso non riceveva risposta.

1211 1223 

1224<h3 id="remote-control-could-not-renew-this-computers-connection">

1225 Remote Control could not renew this computer's connection

1226</h3>

1227 

1228Questo avviso appare nel terminale in cui è in esecuzione [`claude remote-control`](/docs/it/remote-control#start-a-remote-control-session) quando il server non riesce a usare il tuo accesso claude.ai per rinnovare la credenziale della sua connessione prima che scada. L'ultima frase dell'avviso indica per quanto tempo la credenziale corrente funzionerà ancora, oppure che è già scaduta:

1229 

1230```text theme={null}

1231Remote Control could not renew this computer's connection: claude.ai did not accept the sign-in it uses. Run `claude /login` to sign in again. The connection keeps working for about 26 hours; if it still cannot sign in then, it stops.

1232```

1233 

1234**Cosa fare:**

1235 

1236* Se l'avviso ti dice di eseguire `claude /login`, apri un altro terminale sulla macchina su cui è in esecuzione il server, esegui lì `claude /login` e accedi con il tuo account claude.ai

1237* Se il server non riesce ancora ad accedere una volta scaduta la credenziale della connessione, stampa un errore contenente `Poll: Authentication failed (401)` e si arresta. Accedi di nuovo come indica la seconda frase dell'avviso, poi esegui di nuovo `claude remote-control` nel terminale in cui il server si è arrestato.

1238 

1212<h3 id="remote-control-stopped-because-the-signed-in-account-changed">1239<h3 id="remote-control-stopped-because-the-signed-in-account-changed">

1213 Remote Control interrotto perché l'account con cui hai effettuato l'accesso è cambiato1240 Remote Control interrotto perché l'account con cui hai effettuato l'accesso è cambiato

1214</h3>1241</h3>


2279* Disabilita i server MCP che non stai utilizzando con `/mcp disable <name>` per rimuovere le loro definizioni di strumenti dal contesto2306* Disabilita i server MCP che non stai utilizzando con `/mcp disable <name>` per rimuovere le loro definizioni di strumenti dal contesto

2280* Taglia i file di memoria `CLAUDE.md` di grandi dimensioni, oppure sposta le istruzioni in [regole con ambito di percorso](/docs/it/memory#path-specific-rules) che si caricano solo quando rilevanti2307* Taglia i file di memoria `CLAUDE.md` di grandi dimensioni, oppure sposta le istruzioni in [regole con ambito di percorso](/docs/it/memory#path-specific-rules) che si caricano solo quando rilevanti

2281* La compattazione automatica è attiva per impostazione predefinita e normalmente previene questo errore. Se l'hai disattivata in `/config` o con [`DISABLE_AUTO_COMPACT`](/docs/it/env-vars), riattivala. Se la mantieni disattivata, esegui `/compact` tu stesso prima che la finestra si riempia.2308* La compattazione automatica è attiva per impostazione predefinita e normalmente previene questo errore. Se l'hai disattivata in `/config` o con [`DISABLE_AUTO_COMPACT`](/docs/it/env-vars), riattivala. Se la mantieni disattivata, esegui `/compact` tu stesso prima che la finestra si riempia.

2309* Se l'errore appare vicino a 200K token su un modello che ne accetta di più, una possibile causa è un ID modello che Claude Code non riconosce. Claude Code presume una finestra di 200K per un ID del genere, quindi per continuare a lavorare oltre quel punto, [fornisci la reale finestra di contesto del modello](/docs/it/model-config#correct-the-window-for-a-gateway-or-custom-model-id).

2282 2310 

2283Vedi [Esplora la finestra di contesto](/docs/it/context-window) per una visualizzazione interattiva di come il contesto si riempie.2311Vedi [Esplora la finestra di contesto](/docs/it/context-window) per una visualizzazione interattiva di come il contesto si riempie.

2284 2312 


2340```text theme={null}2368```text theme={null}

2341Image was too large. Double press esc to go back and try again with a smaller image.2369Image was too large. Double press esc to go back and try again with a smaller image.

2342API Error: 400 ... image dimensions exceed max allowed size2370API Error: 400 ... image dimensions exceed max allowed size

2371API Error: an image in the conversation could not be processed and was removed.

2343```2372```

2344 2373 

2345Claude Code sostituisce l'immagine non elaborabile con un segnaposto di testo e ritenta, quindi i messaggi successivi hanno successo. Nelle versioni precedenti alla 2.1.142, un'immagine incollata potrebbe rimanere nella conversazione e ripetere lo stesso errore ad ogni messaggio successivo. Per recuperare su quelle versioni, premi Esc due volte e torna indietro oltre il turno in cui è stata aggiunta l'immagine.2374La riga `could not be processed and was removed` significa che l'API ha rifiutato un'immagine nella conversazione, ad esempio una che supera i limiti di dimensione o di risoluzione.

2375 

2376Se uno di questi errori continua a ripresentarsi, aggiorna Claude Code. Nelle versioni precedenti, un errore relativo alle immagini poteva ripetersi per motivi come questi:

2377 

2378* Prima della v2.1.299, in una conversazione lunga con molte immagini, Claude Code poteva rimuovere le immagini che avevi allegato per ultime invece di quella che superava il limite. La riga `was removed` si ripeteva quindi a ogni turno e Claude non vedeva le tue nuove immagini.

2379* Prima della v2.1.299, in VS Code, nell'app Desktop e nell'Agent SDK, le immagini allegate mentre Claude stava lavorando non venivano ridimensionate come le altre immagini allegate. Raggiungevano l'API alla loro dimensione originale, causando errori ripetuti relativi alle immagini nelle conversazioni lunghe.

2380* Prima della v2.1.166, un'immagine incollata poteva rimanere nella conversazione, e lo stesso errore si ripeteva quindi a ogni messaggio successivo

2346 2381 

2347**Cosa fare:**2382**Cosa fare:**

2348 2383 


2800* Aumenta [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/docs/it/env-vars) al di sopra del budget di ragionamento2835* Aumenta [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/docs/it/env-vars) al di sopra del budget di ragionamento

2801* Vedi [Ragionamento esteso](/docs/it/model-config#extended-thinking) per come il budget interagisce con la lunghezza dell'output2836* Vedi [Ragionamento esteso](/docs/it/model-config#extended-thinking) per come il budget interagisce con la lunghezza dell'output

2802 2837 

2838<h3 id="response-exceeded-the-output-token-maximum">

2839 Response exceeded the output token maximum

2840</h3>

2841 

2842La risposta di Claude ha raggiunto il numero massimo di token di output consentito dalla richiesta ed è stata troncata in quel punto:

2843 

2844```text theme={null}

2845API Error: Claude's response exceeded the ... output token maximum. To configure this behavior, set the CLAUDE_CODE_MAX_OUTPUT_TOKENS environment variable.

2846API Error: Claude's response exceeded the 64000 output token maximum for a request sent without streaming. The CLAUDE_CODE_MAX_OUTPUT_TOKENS environment variable cannot raise this limit.

2847```

2848 

2849La forma che nomina `a request sent without streaming` significa che una richiesta in streaming è fallita e Claude Code l'ha inviata di nuovo senza streaming, il che limita la risposta a 64.000 token di output. Prima della v2.1.299, una risposta troncata su una richiesta inviata di nuovo in questo modo terminava il turno senza questo messaggio, come se la risposta fosse completa.

2850 

2851**Cosa fare:**

2852 

2853* Se Claude ha scritto del testo prima che la risposta venisse troncata, rispondi `continue` in una sessione interattiva per chiedere il resto. Quel testo rimane nella conversazione.

2854* Se il messaggio dice di impostare `CLAUDE_CODE_MAX_OUTPUT_TOKENS`, consulta [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/docs/it/env-vars) per sapere come viene limitato il valore e [Impostare le variabili d'ambiente](/docs/it/env-vars#set-environment-variables) per sapere dove impostarlo

2855* Per mantenere ogni risposta sotto il limite, chiedi a Claude l'output in parti più piccole, ad esempio un file o una sezione per risposta

2856 

2803<h3 id="tool-use-or-thinking-block-mismatch">2857<h3 id="tool-use-or-thinking-block-mismatch">

2804 Mancata corrispondenza dei blocchi di uso degli strumenti o di ragionamento2858 Mancata corrispondenza dei blocchi di uso degli strumenti o di ragionamento

2805</h3>2859</h3>


2936Le misure di sicurezza del modello hanno contrassegnato il contenuto nella conversazione come un argomento di cibersicurezza. Il messaggio nomina il modello che ha contrassegnato la richiesta:2990Le misure di sicurezza del modello hanno contrassegnato il contenuto nella conversazione come un argomento di cibersicurezza. Il messaggio nomina il modello che ha contrassegnato la richiesta:

2937 2991 

2938```text theme={null}2992```text theme={null}

2939API Error: Opus 4.8's safeguards flagged this message. Our intentionally broad safeguards allow us to deliver more capabilities faster, but can sometimes flag legitimate cybersecurity work. Apply to the Cyber Verification Program to reduce these interruptions. Send feedback with /feedback or learn more: https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude2993API Error: Opus 4.8's safeguards flagged this message. Our intentionally broad safeguards allow us to deliver more capabilities faster, but can sometimes flag legitimate cybersecurity work. Send feedback with /feedback or learn more: https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude

2940```2994```

2941 2995 

2942Se il messaggio include la riga `` Details: `[reasoning_extraction]` ``, vedi [Le misure di protezione hanno segnalato una richiesta del ragionamento di Claude](#safeguards-flagged-a-request-for-claudes-reasoning).2996Se il messaggio include la riga `` Details: `[reasoning_extraction]` ``, vedi [Le misure di protezione hanno segnalato una richiesta del ragionamento di Claude](#safeguards-flagged-a-request-for-claudes-reasoning).


2945 2999 

2946Su [Amazon Bedrock](/docs/it/amazon-bedrock), [Google Cloud's Agent Platform](/docs/it/google-vertex-ai), e [Microsoft Foundry](/docs/it/microsoft-foundry), un flag di cibersicurezza produce invece il messaggio di [rifiuto della politica di utilizzo](#usage-policy-refusal).3000Su [Amazon Bedrock](/docs/it/amazon-bedrock), [Google Cloud's Agent Platform](/docs/it/google-vertex-ai), e [Microsoft Foundry](/docs/it/microsoft-foundry), un flag di cibersicurezza produce invece il messaggio di [rifiuto della politica di utilizzo](#usage-policy-refusal).

2947 3001 

2948La salvaguardia stessa è lato server e precede la v2.1.203; i rilasci client da allora hanno cambiato solo la dicitura del messaggio.

2949Dalla v2.1.203 alla v2.1.218, il messaggio recitava `<model> has safety measures that flagged this message for a cybersecurity topic. To learn about the Cyber Verification Program and apply for access, visit our help center:` seguito dallo stesso link del centro assistenza, e le sessioni interattive aggiungevano `If you were not engaging in a cybersecurity topic, please send feedback via /feedback.`

2950Prima della v2.1.203, recitava `<model>'s safeguards flagged this message for a cybersecurity topic. If your work requires this access, you can apply for an exemption:` seguito da un link del modulo di esenzione.

2951 

2952**Cosa fare:**3002**Cosa fare:**

2953 3003 

2954* Se il tuo lavoro richiede questo contenuto, richiedi l'accesso tramite il [Cyber Verification Program](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude)3004* Se il tuo lavoro richiede questo contenuto, richiedi l'accesso tramite il [Cyber Verification Program](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude)

2955* Se la tua richiesta non riguardava un argomento di cibersicurezza, esegui `/feedback` per segnalare il falso positivo3005* Se la tua richiesta non riguardava un argomento di cibersicurezza, esegui `/feedback` per segnalare il falso positivo

2956* Per continuare a lavorare nella stessa sessione, premi Esc due volte o esegui `/rewind` per tornare indietro a un checkpoint prima del turno che ha attivato il flag, quindi prendi un approccio diverso. Vedi [Checkpointing](/docs/it/checkpointing).3006* Per continuare a lavorare nella stessa sessione, premi Esc due volte o esegui `/rewind` per tornare indietro a un checkpoint prima del turno che ha attivato il flag, quindi prendi un approccio diverso. Vedi [Checkpointing](/docs/it/checkpointing).

2957 3007 

3008Se il messaggio che vedi è formulato invece come uno di questi, si tratta della stessa segnalazione su una versione precedente di Claude Code:

3009 

3010* Dalla v2.1.219 alla v2.1.296, il messaggio poteva includere anche `Apply to the Cyber Verification Program to reduce these interruptions.` prima della frase conclusiva

3011* Dalla v2.1.203 alla v2.1.218, il messaggio era `<model> has safety measures that flagged this message for a cybersecurity topic. To learn about the Cyber Verification Program and apply for access, visit our help center:` seguito dallo stesso link al centro assistenza. Nelle sessioni interattive, proseguiva con `If you were not engaging in a cybersecurity topic, please send feedback via /feedback.`

3012* Prima della v2.1.203, il messaggio era `<model>'s safeguards flagged this message for a cybersecurity topic. If your work requires this access, you can apply for an exemption:` seguito da un link a un modulo di esenzione

3013 

2958<h3 id="safeguards-flagged-a-request-for-claudes-reasoning">3014<h3 id="safeguards-flagged-a-request-for-claudes-reasoning">

2959 Le misure di protezione hanno segnalato una richiesta del ragionamento di Claude3015 Le misure di protezione hanno segnalato una richiesta del ragionamento di Claude

2960</h3>3016</h3>


3012* Rimuovi `-p` o `--print`. `--bg` accetta il prompt come argomento posizionale, quindi `claude --bg "<task>"` è il comando completo. Consulta [Avviare nuovi agenti dalla shell](/docs/it/agent-view#from-your-shell).3068* Rimuovi `-p` o `--print`. `--bg` accetta il prompt come argomento posizionale, quindi `claude --bg "<task>"` è il comando completo. Consulta [Avviare nuovi agenti dalla shell](/docs/it/agent-view#from-your-shell).

3013* Per eseguire il prompt in modo non interattivo e stampare il risultato invece di creare una sessione in background, rimuovi `--bg` ed esegui `claude -p "<task>"`3069* Per eseguire il prompt in modo non interattivo e stampare il risultato invece di creare una sessione in background, rimuovi `--bg` ed esegui `claude -p "<task>"`

3014 3070 

3071<h3 id="couldnt-tell-whether-bg-is-a-flag-or-text">

3072 Couldn't tell whether `--bg` is a flag or text

3073</h3>

3074 

3075Hai eseguito `claude` con `--bg` o `--background` in una posizione in cui Claude Code non è riuscito a capire se lo intendessi come flag di background o come testo. Il comando non ha avviato nulla, ha stampato questa riga ed è terminato con codice di uscita 1:

3076 

3077```text theme={null}

3078Couldn't tell whether --bg is a flag or text here, so nothing was started. To start a background session put it first: claude --bg <prompt>

3079```

3080 

3081Se hai digitato `--background`, la riga indica invece `--background`.

3082 

3083**Cosa fare:**

3084 

3085* Per avviare una [sessione in background](/docs/it/agent-view#from-your-shell), esegui di nuovo il comando nella tua shell mettendo il flag per primo: `claude --bg --name nightly-audit "<task>"`

3086 

3015<h3 id="conflict-between-a-system-prompt-flag-and-its-file-form">3087<h3 id="conflict-between-a-system-prompt-flag-and-its-file-form">

3016 Conflitto tra un flag del prompt di sistema e la sua forma su file3088 Conflitto tra un flag del prompt di sistema e la sua forma su file

3017</h3>3089</h3>


3296 3368 

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

3298 3370 

3371<h3 id="sandbox-is-not-supported-by-claude-remote-control">

3372 `--sandbox` or `--no-sandbox` is not supported by claude remote-control

3373</h3>

3374 

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

3376 

3377```text theme={null}

3378Error: --sandbox is not supported by claude remote-control. The flag had no effect and was removed. To sandbox sessions, set sandbox.enabled to true in settings.

3379Error: --no-sandbox is not supported by claude remote-control. The flag had no effect and was removed. Remove it from the command.

3380```

3381 

3382**Cosa fare:**

3383 

3384* Rimuovi il flag dal comando, anche in uno script o in una definizione di servizio che avvia il server per te, quindi eseguilo di nuovo

3385* Per eseguire in sandbox le sessioni avviate dal server, attiva il [sandboxing](/docs/it/sandboxing) impostando [`sandbox.enabled`](/docs/it/settings-reference#sandbox-enabled) su `true` in un [file di impostazioni](/docs/it/settings#where-settings-live)

3386 

3387Entrambi i flag sono stati rimossi da `claude remote-control` nella v2.1.300, quindi un comando scritto per una versione precedente può ancora contenerne uno.

3388 

3299<h3 id="claude-import-is-not-yet-available-in-this-build">3389<h3 id="claude-import-is-not-yet-available-in-this-build">

3300 claude import non è ancora disponibile in questa build3390 claude import non è ancora disponibile in questa build

3301</h3>3391</h3>


3542* Un remote il cui HEAD lato server punta a un branch su cui nessuno ha eseguito il push3632* Un remote il cui HEAD lato server punta a un branch su cui nessuno ha eseguito il push

3543* Un repository senza remote `origin`, o uno su cui non hai mai eseguito il fetch3633* Un repository senza remote `origin`, o uno su cui non hai mai eseguito il fetch

3544 3634 

3545Claude Code mostra lo stesso errore per qualsiasi skill che [inietta contesto dinamico](/docs/it/skills#when-an-injected-command-fails), e un comando iniettato non riuscito interrompe l'invocazione di quella skill. Due stringhe analoghe vengono generate prima ancora che il comando venga eseguito:3635Claude Code mostra lo stesso errore per qualsiasi skill che [inietta contesto dinamico](/docs/it/skills#when-an-injected-command-fails), e un comando iniettato non riuscito interrompe l'invocazione di quella skill.

3636 

3637Stringhe simili vengono generate prima ancora che il comando venga eseguito:

3546 3638 

3547* `Shell command permission check failed for pattern "..."`: il controllo dei permessi del comando non lo ha consentito. [Controlli dei permessi sui comandi iniettati](/docs/it/skills#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`3639* `Shell command permission check failed for pattern "..."`: il controllo dei permessi del comando non lo ha consentito. [Controlli dei permessi sui comandi inseriti](/docs/it/skills#permission-checks-on-injected-commands) spiega quali risultati causano l'interruzione in ogni modalità di permesso e come pre-approvare un comando con `allowed-tools`

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

3641* `No shell command in <name> was run`: uno dei comandi `!` del file contiene un carattere di controllo grezzo diverso da tabulazione o a capo, quindi nessuno di essi viene eseguito. Consulta [come trovare e rimuovere il carattere](#no-shell-command-was-run)

3549 3642 

3550**Cosa fare:**3643**Cosa fare:**

3551 3644 


3553* Se preferisci non indicare il branch, esegui `git fetch origin` e poi `git remote set-head origin --auto`, che chiede al remote quale branch è quello predefinito. Fallisce con `error: Cannot determine remote HEAD` quando il remote non annuncia alcun branch predefinito, perché è vuoto o il suo HEAD punta a un branch su cui nessuno ha eseguito il push; in tal caso indica il branch esplicitamente. Fallisce con `error: Not a valid ref` quando il tuo clone non esegue il fetch di quel branch; prima amplia il refspec come indicato sopra.3646* Se preferisci non indicare il branch, esegui `git fetch origin` e poi `git remote set-head origin --auto`, che chiede al remote quale branch è quello predefinito. Fallisce con `error: Cannot determine remote HEAD` quando il remote non annuncia alcun branch predefinito, perché è vuoto o il suo HEAD punta a un branch su cui nessuno ha eseguito il push; in tal caso indica il branch esplicitamente. Fallisce con `error: Not a valid ref` quando il tuo clone non esegue il fetch di quel branch; prima amplia il refspec come indicato sopra.

3554* Se il repository non ha un remote, aggiungine uno con `git remote add origin <url>` ed esegui il fetch prima di creare il ref. Se il remote è vuoto, esegui prima il push del tuo branch con `git push -u origin HEAD` e indica quel branch nel comando set-head; `origin/HEAD` punterà quindi al branch di cui hai appena eseguito il push, quindi `/security-review` vedrà un diff vuoto finché il branch non divergerà da esso.3647* Se il repository non ha un remote, aggiungine uno con `git remote add origin <url>` ed esegui il fetch prima di creare il ref. Se il remote è vuoto, esegui prima il push del tuo branch con `git push -u origin HEAD` e indica quel branch nel comando set-head; `origin/HEAD` punterà quindi al branch di cui hai appena eseguito il push, quindi `/security-review` vedrà un diff vuoto finché il branch non divergerà da esso.

3555 3648 

3649<h3 id="no-shell-command-was-run">

3650 Nessun comando shell in una skill o in un comando è stato eseguito

3651</h3>

3652 

3653Uno dei [comandi di contesto dinamico](/docs/it/skills#inject-dynamic-context) `` !`<command>` `` in un file di skill o di comando personalizzato contiene un carattere di controllo grezzo diverso da tabulazione o a capo. Claude Code rifiuta l'intera invocazione prima che venga eseguito qualsiasi comando del file.

3654 

3655Il messaggio nomina lo strumento shell che avrebbe eseguito i comandi, Bash o PowerShell, e termina con il comando rifiutato. Ognuno di questi caratteri viene sostituito da `�` in modo che tu possa vedere dove si trova:

3656 

3657```text theme={null}

3658No shell command in /my-skill was run, because the Bash tool does not accept one of them: command contains control characters that would be hidden in the approval dialog. Unprintable characters are shown as � below: remove them from the skill or command file, or from the arguments or options substituted into it.

3659build.sh --target�dist

3660```

3661 

3662**Cosa fare:**

3663 

3664* Trova ogni `�` nel comando citato alla fine del messaggio. Rimuovi il carattere che rappresenta dal file di skill o di comando, oppure dagli argomenti o dalle opzioni sostituiti nel file.

3665 

3556<h3 id="input-must-be-provided-when-using-print">3666<h3 id="input-must-be-provided-when-using-print">

3557 È necessario fornire un input quando si usa `--print`3667 È necessario fornire un input quando si usa `--print`

3558</h3>3668</h3>


3694 3804 

3695* **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 sopra3805* **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

3696* **Hai passato un branch di base che era già nel tuo clone**: il suggerimento riporta ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``3806* **Hai passato un branch di base che era già nel tuo clone**: il suggerimento riporta ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``

3697* **Hai passato un branch di base non presente nel tuo clone**: Claude Code ne ha eseguito il fetch 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 di cui era stato eseguito il fetch, e su un clone completo quel comando non riesce con `fatal: --unshallow on a complete repository does not make sense`.3807* **Hai passato un branch di base che non era nel tuo clone**: Claude Code ne ha eseguito il fetch 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 con fetch, e su un clone completo quel comando fallisce con `fatal: --unshallow on a complete repository does not make sense`.

3698 3808 

3699**Cosa fare:**3809**Cosa fare:**

3700 3810 


5499 5609 

5500* Nel `command` dell'hook che esegue lo script nominato dalla notifica, racchiudi il percorso tra virgolette doppie. In un file JSON, scrivilo come `"command": "python3 \"${CLAUDE_PLUGIN_ROOT}/hooks/check.py\""`.5610* Nel `command` dell'hook che esegue lo script nominato dalla notifica, racchiudi il percorso tra virgolette doppie. In un file JSON, scrivilo come `"command": "python3 \"${CLAUDE_PLUGIN_ROOT}/hooks/check.py\""`.

5501 5611 

5612<h3 id="instruction-file-not-loaded">

5613 Instruction file not loaded

5614</h3>

5615 

5616Questo avviso nella vista della conversazione di una sessione interattiva significa che un [file di memoria](/docs/it/memory#how-claude-md-files-load) esistente non è stato caricato. È in vigore una restrizione di lettura.

5617 

5618```text theme={null}

5619Instruction file not loaded (a Read deny rule covers it):

5620path: .claude/rules/shared.md

5621```

5622 

5623L'inciso tra parentesi indica il motivo, ad esempio:

5624 

5625* **`a Read deny rule covers it`**: una [regola deny](/docs/it/permissions#read-and-edit) `Read` corrisponde al percorso del file così come è scritto o alla destinazione di un collegamento che lo riguarda

5626* **`it's read from outside your working directories, where reads are blocked`**: il file si risolve al di fuori delle [directory di lavoro](/docs/it/settings-reference#permissions-blockreadsoutsideworkingdirectories) mentre [`permissions.blockReadsOutsideWorkingDirectories`](/docs/it/settings-reference#permissions-blockreadsoutsideworkingdirectories) è attivo

5627* **`where it leads couldn't be worked out`**: ad esempio, il file è un collegamento che rimanda a se stesso, direttamente o attraverso altri collegamenti

5628 

5629Quando il file di memoria di una sottodirectory non può essere caricato mentre Claude lavora con i file lì presenti, le stesse righe appaiono nella conversazione durante il turno. Quando i file esclusi sono più di quelli nominati dalle righe, una riga finale conta i restanti, ad esempio `and 3 more instruction files not loaded`.

5630 

5631**Cosa fare:**

5632 

5633* Niente, se la restrizione è voluta: la sessione procede senza le istruzioni di quel file.

5634* Per caricare un file escluso perché `a Read deny rule covers it`, [rimuovi o restringi quella regola](/docs/it/permissions#manage-permissions). Poi avvia una nuova sessione.

5635* Per caricare un file escluso perché `it's read from outside your working directories, where reads are blocked`, sposta il file o la destinazione del suo collegamento all'interno delle directory di lavoro. Poi avvia una nuova sessione.

5636* Per caricare un file escluso perché `where it leads couldn't be worked out`, verifica se il file è un collegamento che rimanda a se stesso. In tal caso, fai puntare il collegamento a un file esistente oppure sostituiscilo con un file normale. Poi avvia una nuova sessione.

5637 

5638Prima della v2.1.292, l'avviso nominava il file alla fine della stessa riga, dopo il motivo.

5639 

5502<h3 id="a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved">5640<h3 id="a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved">

5503 Una skill, un comando o un workflow non è stato caricato perché il suo nome è riservato5641 Una skill, un comando o un workflow non è stato caricato perché il suo nome è riservato

5504</h3>5642</h3>


5683 5821 

5684Prima della v2.1.257, **Reconnect** e ri-abilitare in `/mcp` potevano connettere un server che un aggiornamento di politica mid-session bloccava.5822Prima della v2.1.257, **Reconnect** e ri-abilitare in `/mcp` potevano connettere un server che un aggiornamento di politica mid-session bloccava.

5685 5823 

5824<h3 id="mcp-server-name-is-reserved">

5825 Il nome del server MCP è riservato

5826</h3>

5827 

5828Questo messaggio nomina uno dei tuoi server MCP, il cui nome è tra quelli che Claude Code riserva, come i nomi dei suoi server integrati:

5829 

5830```text theme={null}

5831"workspace" is a reserved MCP server name and was not loaded

5832```

5833 

5834**Cosa fare:**

5835 

5836* Rinomina il server dove lo definisci, ad esempio da `workspace` a `my-workspace`

5837* Per gli altri nomi riservati da evitare, consulta [Avvisi di configurazione MCP](/docs/it/mcp#configuration-warnings)

5838 

5686<h3 id="managed-settings-document-could-not-be-parsed">5839<h3 id="managed-settings-document-could-not-be-parsed">

5687 Il documento delle impostazioni gestite non ha potuto essere analizzato5840 Il documento delle impostazioni gestite non ha potuto essere analizzato

5688</h3>5841</h3>


5737 5890 

5738Prima della v2.1.285, solo le sessioni accedute con credenziali claude.ai o Claude Console uscivano con questo messaggio, e una lettura che il sistema operativo ha negato lo produceva anche.5891Prima della v2.1.285, solo le sessioni accedute con credenziali claude.ai o Claude Console uscivano con questo messaggio, e una lettura che il sistema operativo ha negato lo produceva anche.

5739 5892 

5893<h3 id="managed-settings-hooks-not-loaded">

5894 Managed settings contain invalid entries, including PreToolUse/PermissionRequest hooks that are NOT loaded

5895</h3>

5896 

5897Questo blocco su stderr in un'esecuzione `-p` significa che un'origine delle [impostazioni gestite](/docs/it/managed-settings) contiene una voce di hook che Claude Code non riesce a caricare. Quell'hook non viene eseguito, e quando una riga indica come ignorato il campo `hooks` dell'origine, nessuno degli hook di quell'origine viene eseguito.

5898 

5899Ogni riga nomina l'origine, il campo quando presente e il problema, ad esempio un `type` di hook sconosciuto o un hook dichiarato al di fuori della chiave `hooks`:

5900 

5901```text theme={null}

5902Managed settings contain invalid entries, including PreToolUse/PermissionRequest hooks that are NOT loaded; fix or remove each entry:

5903 <source> (<field>): <message>

5904```

5905 

5906**Cosa fare:**

5907 

5908* Se amministri l'origine, correggi o rimuovi ogni voce elencata nel blocco. [Configurazione degli hook](/docs/it/hooks#configuration) mostra la struttura che Claude Code si aspetta sotto `hooks`.

5909* Se l'origine di una riga è `parent managed settings`, l'applicazione che ha avviato Claude Code ha passato quella voce come [impostazioni parent](/docs/it/managed-settings#parent-settings-from-embedding-hosts), quindi segnalalo allo sviluppatore di quell'applicazione

5910* Altrimenti, invia il blocco al tuo amministratore

5911 

5912Prima della v2.1.300, un'esecuzione `-p` elencava questo caso sotto l'intestazione `Managed settings failed to load; policies from the failed source are NOT in effect:`.

5913 

5740<h3 id="otelheadershelper-failed">5914<h3 id="otelheadershelper-failed">

5741 otelHeadersHelper non riuscito5915 otelHeadersHelper non riuscito

5742</h3>5916</h3>


5955 6129 

5956Prima della v2.1.233, Claude Code non scriveva alcuna riga quando inviava una richiesta per un ID di modello che non riconosceva.6130Prima della v2.1.233, Claude Code non scriveva alcuna riga quando inviava una richiesta per un ID di modello che non riconosceva.

5957 6131 

6132<h3 id="sandbox-allow-entries-are-ignored-under-a-managed-lock">

6133 Le voci allow della sandbox vengono ignorate sotto un blocco gestito

6134</h3>

6135 

6136Questo avviso in `/status` e `claude doctor` significa che le impostazioni gestite impostano [`allowManagedReadPathsOnly`](/docs/it/settings-reference#sandbox-filesystem-allowmanagedreadpathsonly) o [`allowManagedDomainsOnly`](/docs/it/settings-reference#sandbox-network-allowmanageddomainsonly), quindi le voci [`allowRead`](/docs/it/settings-reference#sandbox-filesystem-allowread) o [`allowedDomains`](/docs/it/settings-reference#sandbox-network-alloweddomains) nel file indicato non si applicano:

6137 

6138```text wrap theme={null}

6139sandbox.filesystem.allowRead is ignored — managed settings set allowManagedReadPathsOnly, so only allowRead paths from managed settings are honored. The 3 entries in /home/you/.claude/settings.json will NOT apply (see https://code.claude.com/docs/en/settings#sandbox-settings).

6140```

6141 

6142Per il blocco di rete, l'avviso nomina `sandbox.network.allowedDomains` e `allowManagedDomainsOnly`, e riporta `only allowed domains (and WebFetch domain rules) from managed settings are honored`.

6143 

6144**Cosa fare:**

6145 

6146* Non sei obbligato a intervenire sull'avviso

6147* Se ti servono quei percorsi o domini e il blocco è impostato dalle impostazioni gestite della tua organizzazione, chiedi al tuo amministratore di aggiungerli a quelle impostazioni. L'avviso resta finché non rimuovi anche le voci dal file indicato.

6148* Per far sparire l'avviso, rimuovi le voci dal file indicato. Per un file condiviso, come il `.claude/settings.json` di un progetto, puoi lasciare le voci per i colleghi senza il blocco e lasciare visibile l'avviso.

6149 

5958<h3 id="stale-sandbox-mask-files-left-by-a-killed-session">6150<h3 id="stale-sandbox-mask-files-left-by-a-killed-session">

5959 File di maschera sandbox stantii lasciati da una sessione uccisa6151 File di maschera sandbox stantii lasciati da una sessione uccisa

5960</h3>6152</h3>

Details

57 </Step>57 </Step>

58 58 

59 <Step title="Abilita Code Review">59 <Step title="Abilita Code Review">

60 Vai a [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) e abilita [Code Review](/docs/it/code-review#set-up-code-review) per i tuoi repository GHES utilizzando la stessa configurazione di github.com.60 Vai a [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) e abilita [Code Review](/docs/it/code-review-setup) per i tuoi repository GHES utilizzando la stessa configurazione di github.com.

61 </Step>61 </Step>

62</Steps>62</Steps>

63 63 

Details

222| `T{char}` | Salta appena dopo la precedente occorrenza del carattere sulla riga corrente |222| `T{char}` | Salta appena dopo la precedente occorrenza del carattere sulla riga corrente |

223| `;` | Ripeti l'ultimo movimento f/F/t/T |223| `;` | Ripeti l'ultimo movimento f/F/t/T |

224| `,` | Ripeti l'ultimo movimento f/F/t/T in ordine inverso |224| `,` | Ripeti l'ultimo movimento f/F/t/T in ordine inverso |

225| `%` | Salta alla parentesi `()`, `[]` o `{}` corrispondente, partendo dalla parentesi successiva sulla riga corrente quando il cursore non è su una parentesi. Richiede Claude Code v2.1.301 o successivo |

225| `/` | Apri ricerca cronologia inversa, come `Ctrl+R`. Il prompt di ricerca vuoto mostra un suggerimento: premi `Esc` poi `i` poi `/` per aprire il menu dei comandi |226| `/` | Apri ricerca cronologia inversa, come `Ctrl+R`. Il prompt di ricerca vuoto mostra un suggerimento: premi `Esc` poi `i` poi `/` per aprire il menu dei comandi |

226 227 

227<Note>228<Note>


243| `dj`/`dk` | Elimina la riga corrente e la riga sotto o sopra |244| `dj`/`dk` | Elimina la riga corrente e la riga sotto o sopra |

244| `dgg`/`dG` | Elimina dalla riga corrente alla prima o all'ultima riga |245| `dgg`/`dG` | Elimina dalla riga corrente alla prima o all'ultima riga |

245| `d0`/`c0`/`y0` | Elimina, cambia o copia dal cursore all'inizio della riga. Richiede Claude Code v2.1.281 o successivo |246| `d0`/`c0`/`y0` | Elimina, cambia o copia dal cursore all'inizio della riga. Richiede Claude Code v2.1.281 o successivo |

247| `d%`/`c%`/`y%` | Elimina, cambia o copia dal cursore fino alla parentesi a cui salta `%`. Richiede Claude Code v2.1.301 o successivo |

246| `cc` | Cambia riga |248| `cc` | Cambia riga |

247| `C` | Cambia fino alla fine della riga |249| `C` | Cambia fino alla fine della riga |

248| `cw`/`ce`/`cb` | Cambia parola/fino alla fine/indietro |250| `cw`/`ce`/`cb` | Cambia parola/fino alla fine/indietro |

Details

244| [Ragionamento adattivo](/docs/it/model-config#adjust-effort-level) | Nessuna intestazione beta. Claude Code invia `thinking: {"type": "adaptive"}` per Claude Opus 4.6, Claude Sonnet 4.6, Claude Haiku 5.5, Claude Fable 5 e modelli successivi, e tratta i nomi dei modelli che non riconosce, come gli alias del gateway, come modelli attuali che ricevono il campo | `400` che nomina il campo `thinking` o il tag `adaptive` quando la build del modello upstream non lo accetta | Aggiornare l'upstream. Su Opus 4.6 e Sonnet 4.6, gli sviluppatori possono invece impostare `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` |244| [Ragionamento adattivo](/docs/it/model-config#adjust-effort-level) | Nessuna intestazione beta. Claude Code invia `thinking: {"type": "adaptive"}` per Claude Opus 4.6, Claude Sonnet 4.6, Claude Haiku 5.5, Claude Fable 5 e modelli successivi, e tratta i nomi dei modelli che non riconosce, come gli alias del gateway, come modelli attuali che ricevono il campo | `400` che nomina il campo `thinking` o il tag `adaptive` quando la build del modello upstream non lo accetta | Aggiornare l'upstream. Su Opus 4.6 e Sonnet 4.6, gli sviluppatori possono invece impostare `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` |

245| [Gestione del contesto](https://platform.claude.com/docs/en/build-with-claude/context-editing) | L'intestazione beta di gestione del contesto si associa al campo del corpo `context_management` | `400` con `Extra inputs are not permitted`. Comune quando un gateway accetta richieste in formato Anthropic ma le inoltra ad Amazon Bedrock | Inoltrare entrambi, oppure [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |245| [Gestione del contesto](https://platform.claude.com/docs/en/build-with-claude/context-editing) | L'intestazione beta di gestione del contesto si associa al campo del corpo `context_management` | `400` con `Extra inputs are not permitted`. Comune quando un gateway accetta richieste in formato Anthropic ma le inoltra ad Amazon Bedrock | Inoltrare entrambi, oppure [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |

246| [Contesto esteso](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) e [pensiero interleaved](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | Solo intestazioni beta, nessun campo del corpo | Silenziosamente non disponibile quando l'intestazione viene rimossa; l'upstream non vede mai la richiesta di capacità | Inoltrare `anthropic-beta` verbatim |246| [Contesto esteso](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) e [pensiero interleaved](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | Solo intestazioni beta, nessun campo del corpo | Silenziosamente non disponibile quando l'intestazione viene rimossa; l'upstream non vede mai la richiesta di capacità | Inoltrare `anthropic-beta` verbatim |

247| Beta [tool fields](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) | Le intestazioni beta relative agli strumenti si associano ai campi dello schema dello strumento come `strict` e `defer_loading` | `400` che nomina il campo dello schema dello strumento non riconosciuto quando il corpo passa attraverso senza la sua intestazione | Inoltrare entrambi, o [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |247| [Campi degli strumenti](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) beta | Le intestazioni beta relative agli strumenti si associano ai campi dello schema dello strumento come `strict` e `defer_loading` | `400` che nomina il campo dello schema dello strumento non riconosciuto quando il corpo passa attraverso senza la sua intestazione | Inoltrare entrambi, o [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |

248| [Sforzo](https://platform.claude.com/docs/en/build-with-claude/effort) e [output strutturati](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | Il campo del corpo `output_config` contiene le impostazioni di sforzo, formato di output strutturato e budget dei compiti; ciascuna si associa alla propria intestazione beta | `400` che nomina `output_config`, spesso `Extra inputs are not permitted`, su upstream Amazon Bedrock e Google Cloud's Agent Platform | Inoltrare il campo e le sue intestazioni insieme, oppure chiedere agli sviluppatori di impostare [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities), che rimuove le impostazioni di formato e budget dei compiti ma non lo sforzo. Per rimuovere solo il formato, possono invece impostare [`CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS=1`](/docs/it/env-vars), che richiede la v2.1.288 o successiva |248| [Sforzo](https://platform.claude.com/docs/en/build-with-claude/effort) e [output strutturati](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | Il campo del corpo `output_config` contiene le impostazioni di sforzo, formato di output strutturato e budget dei compiti; ciascuna si associa alla propria intestazione beta | `400` che nomina `output_config`, spesso `Extra inputs are not permitted`, su upstream Amazon Bedrock e Google Cloud's Agent Platform | Inoltrare il campo e le sue intestazioni insieme, oppure chiedere agli sviluppatori di impostare [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities), che rimuove le impostazioni di formato e budget dei compiti ma non lo sforzo. Per rimuovere solo il formato, possono invece impostare [`CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS=1`](/docs/it/env-vars), che richiede la v2.1.288 o successiva |

249| [Prompt caching](/docs/it/prompt-caching) | Nessun accoppiamento beta. Claude Code allega marcatori `cache_control` ai blocchi `system` e alle voci `messages`, incluse le voci `role: "system"` aggiunte a metà conversazione | Nessun errore: la conversazione viene fatturata come input non memorizzato in cache ad ogni turno, visibile come `input_tokens` elevati con poca o nessuna attività di cache in `usage` | Inoltrare `cache_control` invariato ovunque appaia, e non convertire il contenuto del blocco `system` o del messaggio in stringhe semplici |249| [Prompt caching](/docs/it/prompt-caching) | Nessun accoppiamento beta. Claude Code allega marcatori `cache_control` ai blocchi `system` e alle voci `messages`, incluse le voci `role: "system"` aggiunte a metà conversazione | Nessun errore: la conversazione viene fatturata come input non memorizzato in cache ad ogni turno, visibile come `input_tokens` elevati con poca o nessuna attività di cache in `usage` | Inoltrare `cache_control` invariato ovunque appaia, e non convertire il contenuto del blocco `system` o del messaggio in stringhe semplici |

250| [Conteggio dei token](https://platform.claude.com/docs/en/build-with-claude/token-counting) | Nessun accoppiamento beta; utilizza l'endpoint `count_tokens` | Nessun errore: Claude Code ricade a una stima basata su caratteri, quindi `/context` mostra conteggi approssimativi | Esporre l'endpoint per conteggi di token esatti |250| [Conteggio dei token](https://platform.claude.com/docs/en/build-with-claude/token-counting) | Nessun accoppiamento beta; utilizza l'endpoint `count_tokens` | Nessun errore: Claude Code ricade a una stima basata su caratteri, quindi `/context` mostra conteggi approssimativi | Esporre l'endpoint per conteggi di token esatti |

251 251 

252Le variabili `ANTHROPIC_DEFAULT_*_MODEL_SUPPORTED_CAPABILITIES` [variables](/docs/it/model-config) dichiarano le capacità del modello solo nelle configurazioni del provider: `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_VERTEX`, `CLAUDE_CODE_USE_FOUNDRY`, e [`CLAUDE_CODE_USE_MANTLE`](/docs/it/amazon-bedrock#use-the-mantle-endpoint). Non hanno effetto dietro un gateway `ANTHROPIC_BASE_URL`.252Le [variabili](/docs/it/model-config) `ANTHROPIC_DEFAULT_*_MODEL_SUPPORTED_CAPABILITIES` dichiarano le capacità del modello solo nelle configurazioni del provider: `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_VERTEX`, `CLAUDE_CODE_USE_FOUNDRY`, e [`CLAUDE_CODE_USE_MANTLE`](/docs/it/amazon-bedrock#use-the-mantle-endpoint). Non hanno effetto dietro un gateway `ANTHROPIC_BASE_URL`.

253 253 

254<h3 id="automatic-retry-and-error-forwarding">254<h3 id="automatic-retry-and-error-forwarding">

255 Ritentativo automatico e inoltro degli errori255 Ritentativo automatico e inoltro degli errori

mcp.md +3 −3

Details

347 347 

348* **Con la [ricerca degli strumenti](#scale-with-mcp-tool-search), l'impostazione predefinita**: l'attesa avviene all'interno della chiamata `ToolSearch`.348* **Con la [ricerca degli strumenti](#scale-with-mcp-tool-search), l'impostazione predefinita**: l'attesa avviene all'interno della chiamata `ToolSearch`.

349* **Senza ricerca degli strumenti**: Claude utilizza invece lo strumento `WaitForMcpServers`. Le configurazioni senza ricerca degli strumenti includono un `ANTHROPIC_BASE_URL` personalizzato, `ENABLE_TOOL_SEARCH=false`, e un modello precedente a Claude Opus 4.5, Claude Sonnet 4.5 e Claude Haiku 4.5 su Google Cloud's Agent Platform.349* **Senza ricerca degli strumenti**: Claude utilizza invece lo strumento `WaitForMcpServers`. Le configurazioni senza ricerca degli strumenti includono un `ANTHROPIC_BASE_URL` personalizzato, `ENABLE_TOOL_SEARCH=false`, e un modello precedente a Claude Opus 4.5, Claude Sonnet 4.5 e Claude Haiku 4.5 su Google Cloud's Agent Platform.

350* **Su un [deploy Microsoft Foundry ospitato su Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)**: Claude inizia 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 termina la connessione diventano disponibili alla richiesta successiva di Claude.350* **Su un [deploy Microsoft Foundry ospitato su Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)**: Claude inizia 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 finisce di connettersi diventano disponibili alla richiesta successiva di Claude.

351 351 

352Con la ricerca degli strumenti abilitata, quando un server termina 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.352Con la ricerca degli strumenti abilitata, quando un server finisce di connettersi 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.

353 353 

354Dopo 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](/docs/it/errors#no-such-tool-available) `No such tool available`.354Dopo 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](/docs/it/errors#no-such-tool-available) `No such tool available`.

355 355 


1632 1632 

1633Prima della v2.1.296, il limite più breve era di 2.048 caratteri, e prima della v2.1.295 si applicava a ogni descrizione di strumento, incluse quelle caricate tramite la ricerca di strumenti.1633Prima della v2.1.296, il limite più breve era di 2.048 caratteri, e prima della v2.1.295 si applicava a ogni descrizione di strumento, incluse quelle caricate tramite la ricerca di strumenti.

1634 1634 

1635Per modificare i limiti per ogni server MCP nella tua sessione, imposta [`CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH`](/docs/it/env-vars#variables) a un numero di caratteri. Il numero che imposti sostituisce entrambi i limiti: `8192`, ad esempio, alza il limite più breve e abbassa quello più lungo. Questa variabile richiede Claude Code v2.1.280 o successivo.1635Le descrizioni e le istruzioni di alcuni dei server MCP che Anthropic ospita su `api.anthropic.com` arrivano a Claude per intero. Per modificare i limiti per gli altri server MCP nella tua sessione, imposta [`CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH`](/docs/it/env-vars#variables) a un numero di caratteri. Il numero che imposti sostituisce entrambi i limiti: `8192`, ad esempio, alza il limite più breve e abbassa quello più lungo. Questa variabile richiede Claude Code v2.1.280 o successivo.

1636 1636 

1637<h4 id="per-tool-alwaysload">1637<h4 id="per-tool-alwaysload">

1638 Contrassegnare uno strumento da caricare in anticipo o da mantenere rimandato1638 Contrassegnare uno strumento da caricare in anticipo o da mantenere rimandato

Details

378 ```powershell theme={null}378 ```powershell theme={null}

379 $env:MCP_TIMEOUT = "60000"; claude379 $env:MCP_TIMEOUT = "60000"; claude

380 ```380 ```

381 

382 Prima della v2.1.299, alcune connessioni a server HTTP attivi andavano in timeout all'avvio indipendentemente da `MCP_TIMEOUT`. Se usi una di quelle versioni e un server HTTP attivo va ancora in timeout dopo che hai aumentato il limite, [aggiorna Claude Code](/docs/it/setup#update-claude-code).

381 </Accordion>383 </Accordion>

382 384 

383 <Accordion title="Server already exists">385 <Accordion title="Server already exists">

memory.md +1 −0

Details

648Per eseguire il debug:648Per eseguire il debug:

649 649 

650* Esegui `/context` e controlla l'elenco sotto **Memory files** per verificare i file CLAUDE.md e CLAUDE.local.md che dovrebbero essere caricati all'avvio. Se uno non è presente lì, Claude non può vederlo. Usa `/memory` per aprire e modificare i file.650* Esegui `/context` e controlla l'elenco sotto **Memory files** per verificare i file CLAUDE.md e CLAUDE.local.md che dovrebbero essere caricati all'avvio. Se uno non è presente lì, Claude non può vederlo. Usa `/memory` per aprire e modificare i file.

651* Se compare un avviso `Instruction file not loaded`, vedi [cosa significa e cosa fare al riguardo](/docs/it/errors#instruction-file-not-loaded).

651* Un `CLAUDE.md` in una sottodirectory della tua directory di lavoro non compare sotto **Memory files**, perché viene caricato su richiesta anziché all'avvio. Quando viene caricato, nel terminale compare una riga `Loaded` con il suo percorso. Per testarne uno nuovo, crealo dalla shell anziché chiedere a Claude di scriverlo, poi chiedi a Claude di leggere un file in quella sottodirectory.652* Un `CLAUDE.md` in una sottodirectory della tua directory di lavoro non compare sotto **Memory files**, perché viene caricato su richiesta anziché all'avvio. Quando viene caricato, nel terminale compare una riga `Loaded` con il suo percorso. Per testarne uno nuovo, crealo dalla shell anziché chiedere a Claude di scriverlo, poi chiedi a Claude di leggere un file in quella sottodirectory.

652* Verifica che il CLAUDE.md rilevante si trovi in una posizione che viene caricata per la tua sessione (vedi [Scegli dove mettere i file CLAUDE.md](#choose-where-to-put-claude-md-files)).653* Verifica che il CLAUDE.md rilevante si trovi in una posizione che viene caricata per la tua sessione (vedi [Scegli dove mettere i file CLAUDE.md](#choose-where-to-put-claude-md-files)).

653* Rendi le istruzioni più specifiche. "Usa indentazione a 2 spazi" funziona meglio di "formatta il codice bene".654* Rendi le istruzioni più specifiche. "Usa indentazione a 2 spazi" funziona meglio di "formatta il codice bene".

model-config.md +20 −0

Details

895 Correggere la finestra per un gateway o un ID modello personalizzato895 Correggere la finestra per un gateway o un ID modello personalizzato

896</h3>896</h3>

897 897 

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

899 

900```text theme={null}

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

902Claude Code doesn't recognize the model "my-gateway-opus", so it assumes a context window of 200k tokens. Update Claude Code, or see https://code.claude.com/docs/en/model-config#correct-the-window-for-a-gateway-or-custom-model-id to set the window.

903```

904 

905Claude Code [compatta automaticamente](#default-auto-compact-thresholds) la conversazione ai 200K assunti, quindi se la finestra di contesto reale del modello è di 200K, non c'è nulla da correggere. Altrimenti, fornisci a Claude Code la finestra reale in uno di questi modi, a seconda del tuo ID:

906 

907* **Un modello più recente della tua versione di Claude Code**: esegui `claude update` nella tua shell. Se Claude Code riconosce l'ID dopo l'aggiornamento, non devi configurare nient'altro.

908* **Il nome usato dal tuo gateway o provider per un modello che Claude Code conosce**: aggiungi una voce [`modelOverrides`](#override-model-ids-per-version) che mappa l'ID modello Anthropic al tuo ID, ad esempio `"claude-opus-4-8": "my-gateway-opus"`. In alternativa, puoi elencare il tuo ID in una riga di [`modelPicker`](/docs/it/settings-reference#fields-for-modelpicker) con `behavesAs` impostato su quel modello. In entrambi i casi, Claude Code tratta quindi l'ID come quel modello.

909* **Un modello con una finestra di 1M**: aggiungi `[1m]` all'ID nel punto in cui imposti il modello, ad esempio `claude --model 'my-gateway-opus[1m]'` nella tua shell. Se hai [disattivato il contesto di 1M](#turn-off-1m-context), ottieni la stessa finestra con o senza il suffisso.

910* **Qualsiasi altra finestra**: imposta [`CLAUDE_CODE_MAX_CONTEXT_TOKENS`](/docs/it/env-vars) sulla dimensione della finestra in token nell'ambiente che avvia Claude Code, ad esempio `CLAUDE_CODE_MAX_CONTEXT_TOKENS=400000`. Per un ID non riconosciuto che non inizia con `claude-` e non ha il suffisso `[1m]`, la variabile ha effetto da sola. Per qualsiasi altro ID, verifica prima [a quali ID si applica](#which-ids-claude_code_max_context_tokens-applies-to).

911 

912Una volta che Claude Code riconosce l'ID o usa la finestra che gli hai fornito, l'avviso non compare più quando avvii una sessione su quell'ID.

913 

914<h4 id="which-ids-claude_code_max_context_tokens-applies-to">

915 A quali ID si applica `CLAUDE_CODE_MAX_CONTEXT_TOKENS`

916</h4>

917 

898Su un [LLM gateway](/docs/it/llm-gateway) o un altro deploy personalizzato, Claude Code può assumere una finestra di contesto per l'ID modello che differisce dalla finestra reale del modello, indipendentemente dal fatto che risolva l'ID a un modello Claude o meno. Imposta [`CLAUDE_CODE_MAX_CONTEXT_TOKENS`](/docs/it/env-vars) alla finestra che Claude Code dovrebbe assumere invece.918Su un [LLM gateway](/docs/it/llm-gateway) o un altro deploy personalizzato, Claude Code può assumere una finestra di contesto per l'ID modello che differisce dalla finestra reale del modello, indipendentemente dal fatto che risolva l'ID a un modello Claude o meno. Imposta [`CLAUDE_CODE_MAX_CONTEXT_TOKENS`](/docs/it/env-vars) alla finestra che Claude Code dovrebbe assumere invece.

899 919 

900Il modo in cui la variabile si applica dipende dall'ID. Claude Code tratta un ID come un provider o un'ortografia personalizzata quando non inizia con `claude-`, in qualsiasi maiuscola/minuscola, o quando porta un suffisso che Claude Code rimuove durante la lettura dell'ID, come la data `@YYYYMMDD` utilizzata su Google Cloud's Agent Platform. Prima della v2.1.259, Claude Code non contava un suffisso rimosso, quindi un ID `claude-` non riconosciuto con un suffisso di data era trattato come un nome `claude-` semplice.920Il modo in cui la variabile si applica dipende dall'ID. Claude Code tratta un ID come un provider o un'ortografia personalizzata quando non inizia con `claude-`, in qualsiasi maiuscola/minuscola, o quando porta un suffisso che Claude Code rimuove durante la lettura dell'ID, come la data `@YYYYMMDD` utilizzata su Google Cloud's Agent Platform. Prima della v2.1.259, Claude Code non contava un suffisso rimosso, quindi un ID `claude-` non riconosciuto con un suffisso di data era trattato come un nome `claude-` semplice.

Details

6 6 

7> Scopri come abilitare e configurare OpenTelemetry per Claude Code.7> Scopri come abilitare e configurare OpenTelemetry per Claude Code.

8 8 

9Traccia l'utilizzo di Claude Code, i costi e l'attività degli strumenti in tutta l'organizzazione esportando i dati di telemetria tramite OpenTelemetry (OTel). Claude Code esporta le metriche come dati di serie temporali tramite il protocollo di metriche standard, gli eventi tramite il protocollo di log/eventi, e facoltativamente le tracce distribuite tramite il [protocollo di tracce](#traces-beta).9Traccia l'utilizzo di Claude Code, i costi e l'attività degli strumenti in tutta l'organizzazione esportando i dati di telemetria tramite OpenTelemetry (OTel). Claude Code esporta le metriche come dati di serie temporali tramite il protocollo di metriche standard, gli eventi tramite il protocollo di log/eventi, e facoltativamente le [tracce distribuite tramite OpenTelemetry](#traces-beta).

10 

11<Note>

12 Per la Claude API o i Managed Agents, consulta [OpenTelemetry per la Claude API](https://platform.claude.com/docs/en/manage-claude/opentelemetry).

13</Note>

10 14 

11<h2 id="quick-start">15<h2 id="quick-start">

12 Avvio rapido16 Avvio rapido

Details

39Claude Code ignora una chiave di primo livello sconosciuta o una chiave di voce di plugin piuttosto che rifiutarla, quindi un errore di battitura si carica silenziosamente. `claude plugin validate` segnala ogni chiave sconosciuta come un avviso.39Claude Code ignora una chiave di primo livello sconosciuta o una chiave di voce di plugin piuttosto che rifiutarla, quindi un errore di battitura si carica silenziosamente. `claude plugin validate` segnala ogni chiave sconosciuta come un avviso.

40 40 

41<h3 id="reserved-names">41<h3 id="reserved-names">

42 Reserved names42 Nomi riservati

43</h3>43</h3>

44 44 

45Non è possibile assegnare al marketplace nessuno dei seguenti nomi:45Non è possibile assegnare al marketplace nessuno dei seguenti nomi:


67 67 

68| Field | Type | Description |68| Field | Type | Description |

69| :- | :- | :- |69| :- | :- | :- |

70| `name` | string | Identificatore del marketplace: lettere, cifre, `.`, `_` e `-`, che iniziano con una lettera o una cifra, e nessun `..`. `claude plugin validate` non riesce con qualsiasi altro nome, perché Claude Code [non può installare plugin da un marketplace che ne usa uno](/docs/it/plugins/troubleshooting#cannot-install-plugins-from-a-marketplace-with-this-name). Gli utenti digitano il nome dopo `@` in un [plugin id](/docs/it/plugins/loading#find-where-a-plugin-came-from) come `my-plugin@my-marketplace` quando installano un plugin. Consulta [Reserved names](#reserved-names) |70| `name` | string | Identificatore del marketplace: lettere, cifre, `.`, `_` e `-`, che iniziano con una lettera o una cifra, e nessun `..`. `claude plugin validate` non riesce con qualsiasi altro nome, perché Claude Code [non può installare plugin da un marketplace che ne usa uno](/docs/it/plugins/troubleshooting#cannot-install-plugins-from-a-marketplace-with-this-name). Gli utenti digitano il nome dopo `@` in un [plugin id](/docs/it/plugins/loading#find-where-a-plugin-came-from) come `my-plugin@my-marketplace` quando installano un plugin. Consulta [Nomi riservati](#reserved-names) |

71| `owner` | object | Informazioni del manutentore. `name` è obbligatorio; `email` e `url` sono facoltativi |71| `owner` | object | Informazioni del manutentore. `name` è obbligatorio; `email` e `url` sono facoltativi |

72| `plugins` | array | [Plugin entries](#plugin-entries). Ogni voce è convalidata da sola, quindi una voce non valida non fa fallire il marketplace |72| `plugins` | array | [Plugin entries](#plugin-entries). Ogni voce è convalidata da sola, quindi una voce non valida non fa fallire il marketplace |

73| `$schema` | string | URL dello schema JSON per l'autocompletamento dell'editor. Ignorato al momento del caricamento |73| `$schema` | string | URL dello schema JSON per l'autocompletamento dell'editor. Ignorato al momento del caricamento |


490| `Marketplace must have a name` | Error | `name` è vuoto |490| `Marketplace must have a name` | Error | `name` è vuoto |

491| `Marketplace name cannot contain spaces. Use kebab-case (e.g., "my-marketplace")` | Error | `name` |491| `Marketplace name cannot contain spaces. Use kebab-case (e.g., "my-marketplace")` | Error | `name` |

492| `Marketplace name cannot contain path separators (/ or \), ".." sequences, or be "."` | Error | `name` |492| `Marketplace name cannot contain path separators (/ or \), ".." sequences, or be "."` | Error | `name` |

493| `Marketplace name impersonates an official Anthropic/Claude marketplace` | Error | `name`. Vedere [Reserved names](#reserved-names) |493| `Marketplace name impersonates an official Anthropic/Claude marketplace` | Error | `name`. Vedere [Nomi riservati](#reserved-names) |

494| `Marketplace name cannot contain control or bidirectional-formatting characters` | Error | `name` contiene un carattere di controllo, come un escape o una nuova riga, o un carattere di formattazione bidirezionale Unicode |494| `Marketplace name cannot contain control or bidirectional-formatting characters` | Error | `name` contiene un carattere di controllo, come un escape o una nuova riga, o un carattere di formattazione bidirezionale Unicode |

495| `Marketplace name "inline" is reserved for --plugin-dir session plugins`, e le varianti `builtin`, `skills-dir`, `synced`, `claude-plugin-test`, `npm`, `pip`, `uv`, `cargo`, `github` e `gh` | Error | `name` |495| `Marketplace name "inline" is reserved for --plugin-dir session plugins`, e le varianti `builtin`, `skills-dir`, `synced`, `claude-plugin-test`, `npm`, `pip`, `uv`, `cargo`, `github` e `gh` | Error | `name` |

496| `Author name cannot be empty` | Error | `owner.name` |496| `Author name cannot be empty` | Error | `owner.name` |

Details

84* **La policy di rete copre `$.http.fetch`.**84* **La policy di rete copre `$.http.fetch`.**

85 85 

86 * **La policy della tua organizzazione non consente WebFetch**: Claude Code rifiuta anche ogni richiesta `$.http.fetch` di qualsiasi mod. Consulta [Disponibilità di WebFetch](/docs/it/tools-reference#webfetch-availability).86 * **La policy della tua organizzazione non consente WebFetch**: Claude Code rifiuta anche ogni richiesta `$.http.fetch` di qualsiasi mod. Consulta [Disponibilità di WebFetch](/docs/it/tools-reference#webfetch-availability).

87 * **Disattivi lo strumento WebFetch con [`CLAUDE_CODE_DISABLE_WEB_FETCH`](/docs/it/env-vars#variables) o una [regola deny](/docs/it/permissions#tool-specific-permission-rules) `WebFetch`, nelle impostazioni gestite o in qualsiasi altro file di impostazioni**: i mod possono comunque effettuare richieste `$.http.fetch`.

88 

89 Per bloccarle per ogni mod installato dai tuoi utenti, [impedisci il caricamento dei mod installati dagli utenti](#stop-user-installed-mods-from-loading), oppure aggancia `http.fetch` in un [mod di criteri](#enforce-a-policy-with-a-mod-of-your-own) e rifiuta le richieste provenienti dai mod degli utenti. Assegna a quell'hook un [gestore `.catch`](/docs/it/plugins/mods/events#handle-a-hook-that-fails) che a sua volta rifiuti, perché Claude Code salta un hook che fallisce e la richiesta procede comunque. Se ti limiti a [restringere quali plugin gli utenti possono installare](/docs/it/plugins/org#restrict-what-users-can-install), vengono caricati meno mod, ma quelli che consenti effettuano comunque queste richieste.

87 * **Imposti [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/it/env-vars)**: un mod installato da te o dai tuoi utenti può comunque effettuare queste richieste. La variabile blocca solo i [mod integrati in Claude Code](/docs/it/plugins/mods/overview#mods-built-into-claude-code), più qualsiasi richiesta `$.http.fetch` che include le credenziali Anthropic della sessione. Prima della v2.1.288, la variabile bloccava ogni richiesta `$.http.fetch` di qualsiasi mod.90 * **Imposti [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/it/env-vars)**: un mod installato da te o dai tuoi utenti può comunque effettuare queste richieste. La variabile blocca solo i [mod integrati in Claude Code](/docs/it/plugins/mods/overview#mods-built-into-claude-code), più qualsiasi richiesta `$.http.fetch` che include le credenziali Anthropic della sessione. Prima della v2.1.288, la variabile bloccava ogni richiesta `$.http.fetch` di qualsiasi mod.

88 91 

89 Nessuna delle due copre un programma che il mod avvia con `$.process.run`, che raggiunge la rete con l'accesso dell'utente stesso.92 Nessuno di questi casi copre un programma che il mod avvia con `$.process.run`, che raggiunge la rete con l'accesso dell'utente stesso.

90* **I controlli dei plugin coprono i mod.** Un mod è un plugin, quindi le [impostazioni che limitano ciò che gli utenti possono installare](/docs/it/plugins/org#restrict-what-users-can-install), come `strictKnownMarketplaces`, decidono se può essere installato o meno.93* **I controlli dei plugin coprono i mod.** Un mod è un plugin, quindi le [impostazioni che limitano ciò che gli utenti possono installare](/docs/it/plugins/org#restrict-what-users-can-install), come `strictKnownMarketplaces`, decidono se può essere installato o meno.

91* **I mod non possono modificare la richiesta di permesso.** Un mod può cambiare lo stile di gran parte dell'interfaccia di Claude Code, ma non della richiesta di permesso, quindi non può modificare ciò che una richiesta mostra. Un mod può comunque approvare o negare una chiamata a uno strumento prima che compaia la richiesta, come descritto in [Sapere cosa succede per impostazione predefinita](#know-what-happens-by-default).94* **I mod non possono modificare la richiesta di permesso.** Un mod può cambiare lo stile di gran parte dell'interfaccia di Claude Code, ma non della richiesta di permesso, quindi non può modificare ciò che una richiesta mostra. Un mod può comunque approvare o negare una chiamata a uno strumento prima che compaia la richiesta, come descritto in [Sapere cosa succede per impostazione predefinita](#know-what-happens-by-default).

92* **Le richieste di attendibilità vengono prima.** In una sessione interattiva in una directory che l'utente non ha ancora considerato attendibile, nessun mod viene caricato finché l'utente non risponde alla richiesta di attendibilità.95* **Le richieste di attendibilità vengono prima.** In una sessione interattiva in una directory che l'utente non ha ancora considerato attendibile, nessun mod viene caricato finché l'utente non risponde alla richiesta di attendibilità.

Details

234| `$.ui.toast(text)` | Una notifica toast con il nome del mod che scompare dopo qualche secondo. È un riquadro in alto a destra nel [rendering a schermo intero](/docs/it/fullscreen), e una riga a destra sotto il prompt nel renderer classico. |234| `$.ui.toast(text)` | Una notifica toast con il nome del mod che scompare dopo qualche secondo. È un riquadro in alto a destra nel [rendering a schermo intero](/docs/it/fullscreen), e una riga a destra sotto il prompt nel renderer classico. |

235| `$.ui.log(text)` | Una riga attenuata nella trascrizione che Claude non legge. Inizia con `●` e il nome del mod, come in `● my-mod: build finished`. |235| `$.ui.log(text)` | Una riga attenuata nella trascrizione che Claude non legge. Inizia con `●` e il nome del mod, come in `● my-mod: build finished`. |

236 236 

237Nell'[estensione VS Code](/docs/it/plugins/mods/interface#draw-in-the-vs-code-extension), le righe di stato e i toast vengono invece mostrati sopra la casella del prompt, e le righe di log nella conversazione.

238 

237<h3 id="start-a-turn-from-a-background-job">239<h3 id="start-a-turn-from-a-background-job">

238 Avviare un turno da un job in background240 Avviare un turno da un job in background

239</h3>241</h3>

Details

226| `Spinner`, `ToolProgress`, `TurnDuration` | Righe di stato di un turno: la riga animata mentre Claude lavora, la riga di avanzamento in tempo reale di uno strumento in esecuzione e la riga che chiude un turno |226| `Spinner`, `ToolProgress`, `TurnDuration` | Righe di stato di un turno: la riga animata mentre Claude lavora, la riga di avanzamento in tempo reale di uno strumento in esecuzione e la riga che chiude un turno |

227| `InfoNotice`, `SessionMode`, `PromptHint` | Le righe di stato sotto il logo, le etichette della modalità nel piè di pagina e la riga di suggerimento sotto il prompt |227| `InfoNotice`, `SessionMode`, `PromptHint` | Le righe di stato sotto il logo, le etichette della modalità nel piè di pagina e la riga di suggerimento sotto il prompt |

228 228 

229`Pane`, `AskUserQuestion`, `Spinner`, `UserMessage`, `AssistantMessage` e i punti delle chiamate agli strumenti funzionano nel terminale, nell'app Desktop e nell'estensione VS Code. La [tabella dei punti di rendering](/docs/it/plugins/mods/reference#render-sites) indica dove viene generato ciascuno degli altri.

230 

229In un punto che Claude Code già disegna, il tuo hook può modificare un dettaglio, sostituire il disegno o lasciarlo com'è. Seleziona una scheda per vedere ciascuna opzione applicata allo spinner. Gli esempi leggono una variabile `calls` che un altro hook incrementa, come nel [mod del tutorial](/docs/it/plugins/mods/create#write-a-mod-yourself).231In un punto che Claude Code già disegna, il tuo hook può modificare un dettaglio, sostituire il disegno o lasciarlo com'è. Seleziona una scheda per vedere ciascuna opzione applicata allo spinner. Gli esempi leggono una variabile `calls` che un altro hook incrementa, come nel [mod del tutorial](/docs/it/plugins/mods/create#write-a-mod-yourself).

230 232 

231<Tabs>233<Tabs>


297 299 

298La richiesta di permesso non è un punto di rendering, quindi un mod non può modificare ciò che mostra. La finestra di dialogo delle domande, `AskUserQuestion`, lo è, quindi un mod può modificarla. Un albero per la finestra di dialogo deve contenere il riferimento esattamente una volta, con i tuoi elementi sopra di esso. In caso contrario, Claude Code disegna la propria finestra di dialogo.300La richiesta di permesso non è un punto di rendering, quindi un mod non può modificare ciò che mostra. La finestra di dialogo delle domande, `AskUserQuestion`, lo è, quindi un mod può modificarla. Un albero per la finestra di dialogo deve contenere il riferimento esattamente una volta, con i tuoi elementi sopra di esso. In caso contrario, Claude Code disegna la propria finestra di dialogo.

299 301 

300Il terminale e l'app Desktop non generano tutti gli stessi punti. `Pane`, `AbovePrompt`, `Spinner` e i punti della trascrizione funzionano in entrambi. Alcune altre righe di stato vengono generate solo nel terminale. La [tabella dei punti di rendering](/docs/it/plugins/mods/reference#render-sites) indica dove viene generato ciascuno.

301 

302<h3 id="open-a-pane-at-the-right-time">302<h3 id="open-a-pane-at-the-right-time">

303 Apri un pannello al momento giusto303 Apri un pannello al momento giusto

304</h3>304</h3>


328| `rows` | L'altezza da richiedere quando il pannello si trova sopra il prompt. Il valore predefinito è un terzo dello spazio. |328| `rows` | L'altezza da richiedere quando il pannello si trova sopra il prompt. Il valore predefinito è un terzo dello spazio. |

329| `columns` | La larghezza da richiedere quando il pannello si trova accanto alla trascrizione |329| `columns` | La larghezza da richiedere quando il pannello si trova accanto alla trascrizione |

330 330 

331L'[estensione VS Code](#draw-in-the-vs-code-extension) ignora `rows` e `columns` e dimensiona il pannello da sé.

332 

331`focus`, `closeOnEscape` e `holdToasts` sono facoltativi e accettano solo `true`. Per non usarne uno, omettilo. Passare `false` genera un errore come `ui.open: focus is true or left out`. Per impostarne uno in modo condizionale, aggiungi il campo solo quando la condizione è soddisfatta. Questa chiamata richiede il focus della tastiera solo quando `items` non è vuoto:333`focus`, `closeOnEscape` e `holdToasts` sono facoltativi e accettano solo `true`. Per non usarne uno, omettilo. Passare `false` genera un errore come `ui.open: focus is true or left out`. Per impostarne uno in modo condizionale, aggiungi il campo solo quando la condizione è soddisfatta. Questa chiamata richiede il focus della tastiera solo quando `items` non è vuoto:

332 334 

333```javascript theme={null}335```javascript theme={null}


356 358 

357Quando il pannello compare, `$.ui.open` si risolve in `{ isPlaced: true }`. Quando il pannello è in attesa, `isPlaced` è `false` e `reason` è una stringa che ne spiega il motivo. Un pannello in attesa compare quando l'utente lo apre o allarga il terminale. Per segnalare che qualcosa è disponibile senza aprire un pannello, chiama `$.ui.toast('Your message')`, che mostra una notifica toast.359Quando il pannello compare, `$.ui.open` si risolve in `{ isPlaced: true }`. Quando il pannello è in attesa, `isPlaced` è `false` e `reason` è una stringa che ne spiega il motivo. Un pannello in attesa compare quando l'utente lo apre o allarga il terminale. Per segnalare che qualcosa è disponibile senza aprire un pannello, chiama `$.ui.toast('Your message')`, che mostra una notifica toast.

358 360 

361<h3 id="draw-in-the-vs-code-extension">

362 Disegna nell'estensione VS Code

363</h3>

364 

365Nell'estensione VS Code, ciò che un mod disegna compare nel pannello della chat con la versione dell'estensione 2.1.299 o successiva, in una sessione che [recupera i feature flag](/docs/it/env-vars#features-that-need-feature-flag-fetching). In un hook `ui.render` per il pannello della chat, `e.surface` è `vscode`. Per verificare quali punti ed elementi disegna il pannello della chat e quali prop ignora, consulta le tabelle dei [punti di rendering](/docs/it/plugins/mods/reference#render-sites) e degli [elementi](/docs/it/plugins/mods/reference#elements).

366 

367Per far funzionare un mod nel pannello della chat oltre che nel terminale, tieni conto di queste differenze:

368 

369* **Pannelli**: in un pannello della chat largo 800 pixel o più, i pannelli si agganciano accanto alla conversazione, `e.props.placement` è `'dock'` ed `e.viewport.isFullscreen` è `true`. In un pannello della chat più stretto, i pannelli vengono disegnati sopra la casella del prompt, `placement` è `'inline'` e un pannello mostra 12 righe prima di scorrere.

370* **Toast e righe di stato**: si trovano in un'unica pila direttamente sopra la casella del prompt, insieme ai pannelli quando il pannello della chat è stretto, con una riga di stato per mod. La pila è nascosta mentre viene mostrata una richiesta di permesso o una finestra di dialogo.

371* **Etichette**: il pannello della chat incornicia ciò che un mod disegna o riscrive e lo etichetta con il nome del plugin, come in **From the token-chart plugin** o **Edited by the token-chart plugin**.

372* **Tastiera**: i pulsanti non hanno tasti di scelta rapida, quindi l'utente fa clic su un pulsante o preme Invio su di esso quando ha il focus.

373* **Focus della tastiera**: il pannello della chat accoglie la richiesta `focus: true` di un pannello solo quando il pannello della chat ha il focus, Claude è inattivo senza domande in attesa e la casella del prompt è vuota.

374* **La finestra di dialogo delle domande**: in `AskUserQuestion`, il pannello della chat mantiene la propria scheda della domanda e disegna i tuoi elementi sopra di essa. Le prop che passi a `next` non modificano la scheda.

375* **Suggerimenti per il prompt**: `$.prompt.suggest` si risolve con `isShown: false` e non mostra nulla, perché il pannello della chat riserva il testo di suggerimento attenuato della casella del prompt ai suggerimenti di Claude.

376* **Limiti del testo**: il pannello della chat tronca una riga di stato a 200 caratteri o due righe, e un toast a 500 caratteri.

377 

359<h2 id="build-a-tree-from-elements">378<h2 id="build-a-tree-from-elements">

360 Creare un albero a partire dagli elementi379 Creare un albero a partire dagli elementi

361</h2>380</h2>

362 381 

363Ciò che un hook `ui.render` restituisce è un albero di elementi: una descrizione di cosa disegnare, composta da box, testo e controlli annidati l'uno nell'altro. Tu descrivi il disegno e Claude Code lo renderizza nel terminale o nell'app Desktop.382Ciò che un hook `ui.render` restituisce è un albero di elementi: una descrizione di cosa disegnare, composta da box, testo e controlli annidati l'uno nell'altro. Tu descrivi il disegno e Claude Code lo renderizza in qualunque app l'utente abbia aperta: il terminale, l'app Desktop o l'estensione VS Code.

364 383 

365Per ottenere gli elementi, chiama `$.ui.resolve(e)` nel tuo hook, come in `const { Box, Text, Button } = $.ui.resolve(e)`. Ogni elemento è una funzione. Le passi delle prop e inserisci in `children` gli elementi e le stringhe che vanno al suo interno.384Per ottenere gli elementi, chiama `$.ui.resolve(e)` nel tuo hook, come in `const { Box, Text, Button } = $.ui.resolve(e)`. Ogni elemento è una funzione. Le passi delle prop e inserisci in `children` gli elementi e le stringhe che vanno al suo interno.

366 385 


440| `Text` | Testo con stile. Accetta `color`, `bold`, `dimColor`, `italic` e `wrap`. Un `color` è una chiave del tema o un colore come `'red'`. Un `wrap` è `'wrap'`, `'truncate'`, `'truncate-start'`, `'truncate-middle'` o `'truncate-end'`. | Ovunque |459| `Text` | Testo con stile. Accetta `color`, `bold`, `dimColor`, `italic` e `wrap`. Un `color` è una chiave del tema o un colore come `'red'`. Un `wrap` è `'wrap'`, `'truncate'`, `'truncate-start'`, `'truncate-middle'` o `'truncate-end'`. | Ovunque |

441| `Button` | Un controllo che chiama `onPress` | Ovunque |460| `Button` | Un controllo che chiama `onPress` | Ovunque |

442| `Link`, `Code`, `Markdown` | Un link con `href` e un `label` facoltativo, un blocco di codice e testo formattato come le risposte di Claude. `Markdown` riceve il suo contenuto nella prop `text`, non in `children`, e richiede una `key` quando passi `onLinkPress`. | Ovunque |461| `Link`, `Code`, `Markdown` | Un link con `href` e un `label` facoltativo, un blocco di codice e testo formattato come le risposte di Claude. `Markdown` riceve il suo contenuto nella prop `text`, non in `children`, e richiede una `key` quando passi `onLinkPress`. | Ovunque |

443| `Input`, `Select` | Un campo di testo e un menu a discesa | Terminale, Desktop |462| `Input`, `Select` | Un campo di testo e un menu a discesa | Terminale, Desktop, VS Code |

444| `Svg` | Un documento SVG | Desktop |463| `Svg` | Un documento SVG | Desktop, VS Code |

445| `Client` | Un'area disegnata da un secondo file tuo, per animazioni e input del puntatore. Quel file non riceve alcuna API dei mod. Raggiunge i tuoi hook inviando dati, che arrivano come evento `ui.message`. Se non riesce a caricarsi, a disegnare o a essere eseguito, i tuoi hook ricevono un evento [`ui.fault`](/docs/it/plugins/mods/reference#interface). | Terminale, Desktop |464| `Client` | Un'area disegnata da un secondo file tuo, per animazioni e input del puntatore. Quel file non riceve alcuna API dei mod. Raggiunge i tuoi hook inviando dati, che arrivano come evento `ui.message`. Se non riesce a caricarsi, a disegnare o a essere eseguito, i tuoi hook ricevono un evento [`ui.fault`](/docs/it/plugins/mods/reference#interface). | Terminale, Desktop |

446| `Raster`, `Image` | Una [griglia di celle colorate](#draw-a-grid-of-colored-cells) e un'immagine | Terminale |465| `Raster`, `Image` | Una [griglia di celle colorate](#draw-a-grid-of-colored-cells) e un'immagine | Terminale |

447 466 


452In una sessione avviata con `--plugin-dir`, una riga della trascrizione lo segnala, ad esempio `ui.render (Pane) refused: Text prop "bogusProp" is not allowed; the engine drew its own`. Il [log di debug](/docs/it/plugins/mods/troubleshoot#read-the-debug-log) lo registra come `ui.render (Pane): a hook returned a tree that does not validate` con lo stesso motivo. Nient'altro compare nella sessione, quindi quando un disegno non viene visualizzato, controlla quella riga o il log.471In una sessione avviata con `--plugin-dir`, una riga della trascrizione lo segnala, ad esempio `ui.render (Pane) refused: Text prop "bogusProp" is not allowed; the engine drew its own`. Il [log di debug](/docs/it/plugins/mods/troubleshoot#read-the-debug-log) lo registra come `ui.render (Pane): a hook returned a tree that does not validate` con lo stesso motivo. Nient'altro compare nella sessione, quindi quando un disegno non viene visualizzato, controlla quella riga o il log.

453 472 

454<h3 id="link-in-the-desktop-app">473<h3 id="link-in-the-desktop-app">

455 `Link` nell'app Desktop474 `Link` nell'app Desktop e in VS Code

456</h3>475</h3>

457 476 

458Nell'app Desktop, un `Link` viene disegnato come testo semplice a meno che il suo `href` non soddisfi questi requisiti:477Nell'app Desktop e nell'estensione VS Code, un `Link` viene disegnato come testo semplice a meno che il suo `href` non soddisfi questi requisiti:

459 478 

460* **Schema e host**: un URL `https:` o un URL `http://localhost` come `http://localhost:3000`479* **Schema e host**: un URL `https:` o un URL `http://localhost` come `http://localhost:3000`

461* **Nessuna `@`**: scrivi una `@` nel percorso o nella query come `%40`480* **Nessuna `@`**: scrivi una `@` nel percorso o nella query come `%40`


477 496 

478Per una mappa di calore, una sparkline o un tabellone di gioco nel terminale, disegna un unico `Raster` e non un `Box` per ogni cella. Un `Raster` accetta una `key`, le sue dimensioni in `columns` e `rows`, e `cells`, una stringa base64 che racchiude tutte le celle. Ogni cella è composta da tre numeri: il code point del carattere, il suo colore e il suo colore di sfondo. Un colore è un valore RGB a 24 bit in esadecimale, come `0xc62828` per un rosso. Il valore `0x01000000`, uno sopra quell'intervallo, indica il colore predefinito del terminale.497Per una mappa di calore, una sparkline o un tabellone di gioco nel terminale, disegna un unico `Raster` e non un `Box` per ogni cella. Un `Raster` accetta una `key`, le sue dimensioni in `columns` e `rows`, e `cells`, una stringa base64 che racchiude tutte le celle. Ogni cella è composta da tre numeri: il code point del carattere, il suo colore e il suo colore di sfondo. Un colore è un valore RGB a 24 bit in esadecimale, come `0xc62828` per un rosso. Il valore `0x01000000`, uno sopra quell'intervallo, indica il colore predefinito del terminale.

479 498 

480L'app Desktop non ha `Raster`, quindi controlla `e.surface` e lì disegna del testo. Questo corpo del pannello disegna una mappa di calore tre per due:499Le app diverse dal terminale non hanno `Raster`, quindi controlla `e.surface` e lì disegna del testo. Questo corpo del pannello disegna una mappa di calore tre per due:

481 500 

482```javascript theme={null}501```javascript theme={null}

483// The value that means "use the terminal's default color"502// The value that means "use the terminal's default color"


535 554 

536Il tuo mod non legge mai direttamente la tastiera. L'utente preme un tasto, Claude Code decide a quale dei tuoi controlli è destinato e viene eseguita la callback di quel controllo. A parte un [tasto di scelta rapida numerico sulla banda](/docs/it/plugins/mods/reference#elements), questo accade solo mentre il tuo pannello o la tua banda ha il focus della tastiera. Il resto del tempo, i tasti vanno al prompt.555Il tuo mod non legge mai direttamente la tastiera. L'utente preme un tasto, Claude Code decide a quale dei tuoi controlli è destinato e viene eseguita la callback di quel controllo. A parte un [tasto di scelta rapida numerico sulla banda](/docs/it/plugins/mods/reference#elements), questo accade solo mentre il tuo pannello o la tua banda ha il focus della tastiera. Il resto del tempo, i tasti vanno al prompt.

537 556 

557Nell'[estensione VS Code](#draw-in-the-vs-code-extension), i pulsanti non hanno tasti di scelta rapida: l'utente fa clic su un pulsante o preme Invio su di esso, e digita nei campi.

558 

538<h4 id="how-a-pane-gets-keyboard-focus">559<h4 id="how-a-pane-gets-keyboard-focus">

539 Come un pannello ottiene il focus della tastiera560 Come un pannello ottiene il focus della tastiera

540</h4>561</h4>


570 Impostare un tasto di scelta rapida e il focus iniziale591 Impostare un tasto di scelta rapida e il focus iniziale

571</h4>592</h4>

572 593 

573Queste prop su un controllo decidono come la tastiera lo raggiunge:

574 

575* **`hotkey`**: per consentire all'utente di premere un `Button` con un solo tasto, assegnagli una `hotkey` composta da una cifra o da una lettera minuscola, come in `hotkey: 'a'`594* **`hotkey`**: per consentire all'utente di premere un `Button` con un solo tasto, assegnagli una `hotkey` composta da una cifra o da una lettera minuscola, come in `hotkey: 'a'`

576* **`autoFocus`**: per scegliere quale controllo ha il focus all'apertura del pannello, aggiungi `autoFocus: true` a quel controllo. La prop accetta solo `true`, quindi omettila sugli altri controlli.595* **`autoFocus`**: per scegliere quale controllo ha il focus all'apertura del pannello, aggiungi `autoFocus: true` a quel controllo. Nell'[estensione VS Code](#draw-in-the-vs-code-extension), `autoFocus` non ha alcun effetto: il controllo viene disegnato come se lo avessi omesso, e non devi modificare nulla. La prop accetta solo `true`, quindi omettila sugli altri controlli.

577 596 

578Il modo in cui viene mostrato un tasto di scelta rapida dipende dal pulsante e dall'app:597Il modo in cui viene mostrato un tasto di scelta rapida dipende dal pulsante e dall'app:

579 598 

580| Pulsante | Nel terminale | Nell'app Desktop |599| Pulsante | Nel terminale | Nell'app Desktop | Nell'estensione VS Code |

581| :- | :- | :- |600| :- | :- | :- | :- |

582| Con parentesi quadre, l'impostazione predefinita | `[ Add one ]`, senza alcun tasto di scelta rapida mostrato | L'etichetta con un piccolo tasto accanto |601| Con parentesi quadre, l'impostazione predefinita | `[ Add one ]`, senza alcun tasto di scelta rapida mostrato | L'etichetta con un piccolo tasto accanto | L'etichetta, e il tasto di scelta rapida non ha alcun effetto |

583| Con `plain: true` | `1: One` | L'etichetta con un piccolo tasto accanto |602| Con `plain: true` | `1: One` | L'etichetta con un piccolo tasto accanto | L'etichetta, e il tasto di scelta rapida non ha alcun effetto |

584 603 

585Nel terminale, indica il tasto nell'etichetta di un pulsante con parentesi quadre, oppure usa `plain: true`, in modo che l'utente possa vedere cosa premere. Il [riferimento degli elementi](/docs/it/plugins/mods/reference#elements) contiene le altre regole di `Button`: `action`, i tasti di scelta rapida numerici sulla banda e due pulsanti sullo stesso tasto di scelta rapida.604Nel terminale, indica il tasto nell'etichetta di un pulsante con parentesi quadre, oppure usa `plain: true`, in modo che l'utente possa vedere cosa premere. Il [riferimento degli elementi](/docs/it/plugins/mods/reference#elements) contiene le altre regole di `Button`: `action`, i tasti di scelta rapida numerici sulla banda e due pulsanti sullo stesso tasto di scelta rapida.

586 605 

Details

24* **Eseguire il tuo codice con un comando**: un `/command` che esegue subito la tua funzione, senza alcun turno di Claude, anche mentre Claude sta lavorando. Consulta [Aggiungere un comando o uno strumento](/docs/it/plugins/mods/api#add-a-command-or-a-tool).24* **Eseguire il tuo codice con un comando**: un `/command` che esegue subito la tua funzione, senza alcun turno di Claude, anche mentre Claude sta lavorando. Consulta [Aggiungere un comando o uno strumento](/docs/it/plugins/mods/api#add-a-command-or-a-tool).

25* **Condividere dati tra gli hook**: gli hook di un mod condividono le variabili del suo file, quindi ciò che un hook registra, un altro può mostrarlo. Ad esempio, un hook può contare le chiamate agli strumenti mentre un altro mostra il conteggio accanto allo spinner, oppure uno può leggere l'utilizzo dei token di ogni richiesta mentre un altro lo rappresenta in un grafico in un pannello. Consulta [Reagire agli eventi](/docs/it/plugins/mods/events).25* **Condividere dati tra gli hook**: gli hook di un mod condividono le variabili del suo file, quindi ciò che un hook registra, un altro può mostrarlo. Ad esempio, un hook può contare le chiamate agli strumenti mentre un altro mostra il conteggio accanto allo spinner, oppure uno può leggere l'utilizzo dei token di ogni richiesta mentre un altro lo rappresenta in un grafico in un pannello. Consulta [Reagire agli eventi](/docs/it/plugins/mods/events).

26 26 

27I mod funzionano nella CLI di Claude Code e nella scheda Code dell'app Claude Desktop. Consulta [Dove vengono eseguiti i mod](#where-mods-run) per capire come si comportano altrove, ad esempio nell'estensione VS Code, in `claude -p` e nelle sessioni cloud. Se un hook delle impostazioni, una skill o un server MCP fa già ciò di cui hai bisogno, [confrontali](#compare-mods-settings-hooks-skills-and-mcp-servers) prima di scrivere un mod. Per gestire i mod per un'organizzazione, consulta [Gestire i mod per la tua organizzazione](/docs/it/plugins/mods/admin).27I mod funzionano nella CLI di Claude Code, nella scheda Code dell'app Claude Desktop e nell'estensione VS Code. Consulta [Dove vengono eseguiti i mod](#where-mods-run) per capire come si comportano altrove, ad esempio in `claude -p` e nelle sessioni cloud. Se un hook delle impostazioni, una skill o un server MCP fa già ciò di cui hai bisogno, [confrontali](#compare-mods-settings-hooks-skills-and-mcp-servers) prima di scrivere un mod. Per gestire i mod per un'organizzazione, consulta [Gestire i mod per la tua organizzazione](/docs/it/plugins/mods/admin).

28 28 

29<h2 id="get-a-mod">29<h2 id="get-a-mod">

30 Ottieni un mod30 Ottieni un mod


212 Dove vengono eseguiti i mod212 Dove vengono eseguiti i mod

213</h3>213</h3>

214 214 

215Gli hook di un mod vengono eseguiti in ogni tipo di sessione che carica il plugin, qualunque sia il provider che fornisce il modello, inclusi Amazon Bedrock, Agent Platform di Google Cloud e Microsoft Foundry. Il disegno è più limitato: solo il terminale e l'app Desktop mostrano i riquadri, le bande e le righe sostituite di un mod. Questa tabella elenca ogni luogo in cui potresti eseguire Claude Code:215Gli hook di un mod vengono eseguiti in ogni tipo di sessione che carica il plugin, qualunque sia il provider che fornisce il modello, inclusi Amazon Bedrock, Agent Platform di Google Cloud e Microsoft Foundry. Il disegno è più limitato: ciò che un mod disegna appare nel terminale, nell'app Desktop e nell'estensione VS Code. Questa tabella elenca ogni luogo in cui potresti eseguire Claude Code:

216 216 

217| Dove esegui Claude Code | Gli hook vengono eseguiti | Ciò che il mod disegna appare |217| Dove esegui Claude Code | Gli hook vengono eseguiti | Ciò che il mod disegna appare |

218| :- | :- | :- |218| :- | :- | :- |

219| `claude` in un terminale, incluso il terminale integrato di un editor e il plugin JetBrains | Sì | Sì |219| `claude` in un terminale, incluso il terminale integrato di un editor e il plugin JetBrains | Sì | Sì |

220| La scheda Code dell'app Desktop, tranne in una sessione WSL | Sì | Sì, tranne gli elementi che la [tabella degli elementi](/docs/it/plugins/mods/reference#elements) indica come solo per il terminale |220| La scheda Code dell'app Desktop, tranne in una sessione WSL | Sì | Sì, tranne gli elementi che la [tabella degli elementi](/docs/it/plugins/mods/reference#elements) indica come solo per il terminale |

221| Una [sessione WSL](/docs/it/desktop-wsl) nell'app Desktop | No, perché i plugin non sono disponibili nelle sessioni WSL | No |221| Una [sessione WSL](/docs/it/desktop-wsl) nell'app Desktop | No, perché i plugin non sono disponibili nelle sessioni WSL | No |

222| Il pannello di chat dell'estensione VS Code | Sì | No |222| Il pannello di chat dell'estensione VS Code | Sì | Sì, con l'estensione alla versione 2.1.299 o successiva, in una sessione che [recupera i feature flag](/docs/it/env-vars#features-that-need-feature-flag-fetching). Le tabelle dei [punti di rendering](/docs/it/plugins/mods/reference#render-sites) e degli [elementi](/docs/it/plugins/mods/reference#elements) indicano cosa disegna il pannello. |

223| `claude -p` e l'[Agent SDK](/docs/it/agent-sdk/overview) | Sì | No |223| `claude -p` e l'[Agent SDK](/docs/it/agent-sdk/overview) | Sì | No |

224| [Remote Control](/docs/it/remote-control) da claude.ai o dall'app mobile | Sì, nella sessione sulla tua macchina | Nel terminale sulla tua macchina |224| [Remote Control](/docs/it/remote-control) da claude.ai o dall'app mobile | Sì, nella sessione sulla tua macchina | Nel terminale sulla tua macchina |

225| Una [sessione cloud](/docs/it/claude-code-on-the-web) | Sì, per un plugin che [raggiunge la sessione cloud](/docs/it/cloud-environments#what-carries-over-from-your-setup) | No |225| Una [sessione cloud](/docs/it/claude-code-on-the-web) | Sì, per un plugin che [raggiunge la sessione cloud](/docs/it/cloud-environments#what-carries-over-from-your-setup) | No |

Details

6 6 

7> Riferimento completo per i mod di Claude Code: struttura del modulo degli hook, eventi, metodi dell'API dei mod, punti di rendering, elementi per superficie, limiti e impostazioni.7> Riferimento completo per i mod di Claude Code: struttura del modulo degli hook, eventi, metodi dell'API dei mod, punti di rendering, elementi per superficie, limiti e impostazioni.

8 8 

9Consulta qualsiasi evento che un [mod](/docs/it/plugins/mods/overview) può gestire, qualsiasi metodo dell'API dei mod che può chiamare o qualsiasi punto di rendering in cui può disegnare, per la CLI di Claude Code e l'app Desktop a partire dalla v2.1.290. Ogni voce riporta il nome e una descrizione di una riga e, dove presente, rimanda alla sezione della guida che lo spiega.9Consulta qualsiasi evento che un [mod](/docs/it/plugins/mods/overview) può gestire, qualsiasi metodo dell'API dei mod che può chiamare o qualsiasi punto di rendering in cui può disegnare. Le voci coprono la CLI di Claude Code e l'app Desktop a partire dalla v2.1.290, e l'estensione VS Code a partire dalla v2.1.299. Ogni voce riporta il nome e una descrizione di una riga e, dove presente, rimanda alla sezione della guida che lo spiega.

10 10 

11<Note>11<Note>

12 Il riferimento completo sono le [dichiarazioni TypeScript per i mod](https://github.com/anthropics/claude-code/blob/main/mods/types/claude-code.d.ts) di Claude Code, che descrivono ogni evento, metodo ed elemento, con esempi. La copia su GitHub può essere più vecchia della versione di Claude Code che hai installato. Quando le due non coincidono, fai affidamento sulla [copia che Claude Code scrive per la tua versione](/docs/it/plugins/mods/create#get-the-types-for-your-build).12 Il riferimento completo sono le [dichiarazioni TypeScript per i mod](https://github.com/anthropics/claude-code/blob/main/mods/types/claude-code.d.ts) di Claude Code, che descrivono ogni evento, metodo ed elemento, con esempi. La copia su GitHub può essere più vecchia della versione di Claude Code che hai installato. Quando le due non coincidono, fai affidamento sulla [copia che Claude Code scrive per la tua versione](/docs/it/plugins/mods/create#get-the-types-for-your-build).


255 Punti di rendering255 Punti di rendering

256</h2>256</h2>

257 257 

258Un punto di rendering è un punto di estensione nell'interfaccia di Claude Code. Ogni riga è un valore di `e.component` in un hook `ui.render`, con i campi di `e.props` e le app che lo visualizzano. `e.surface` è `terminal` o `desktop`. [Modificare ciò che Claude Code disegna già](/docs/it/plugins/mods/interface#change-what-claude-code-already-draws) mostra cosa può fare un hook in un punto, con un esempio per ciascuna scelta.258Un punto di rendering è un punto di estensione nell'interfaccia di Claude Code. Ogni riga è un valore di `e.component` in un hook `ui.render`, con i campi di `e.props` e le app che lo visualizzano. `e.surface` indica l'app che sta disegnando, come `terminal`, `desktop` o `vscode`. [Modificare ciò che Claude Code disegna già](/docs/it/plugins/mods/interface#change-what-claude-code-already-draws) mostra cosa può fare un hook in un punto, con un esempio per ciascuna scelta.

259 

260Il rendering nell'estensione VS Code richiede la versione 2.1.299 o successiva dell'estensione e una sessione che [recupera i feature flag](/docs/it/env-vars#features-that-need-feature-flag-fetching). [Disegnare nell'estensione VS Code](/docs/it/plugins/mods/interface#draw-in-the-vs-code-extension) elenca ciò che l'estensione disegna in modo diverso.

259 261 

260| Punto | `e.props` | `e.requestId` | Visualizzato su |262| Punto | `e.props` | `e.requestId` | Visualizzato su |

261| :- | :- | :- | :- |263| :- | :- | :- | :- |

262| [`Pane`](/docs/it/plugins/mods/interface#pick-where-to-draw) | `title`, `isFocused`, `bodyColumns`, `placement`, `scroll`, `view` | L'`id` del pannello | Terminale, Desktop |264| [`Pane`](/docs/it/plugins/mods/interface#pick-where-to-draw) | `title`, `isFocused`, `bodyColumns`, `placement`, `scroll`, `view` | L'`id` del pannello | Terminale, Desktop, VS Code |

263| [`AbovePrompt`](/docs/it/plugins/mods/interface#pick-where-to-draw) | `hasSurvey`, `isWorking`, `maxRows`, `bodyColumns`, `scroll`, `view` | Una sola istanza | Terminale, Desktop |265| [`AbovePrompt`](/docs/it/plugins/mods/interface#pick-where-to-draw) | `hasSurvey`, `isWorking`, `maxRows`, `bodyColumns`, `scroll`, `view` | Una sola istanza | Terminale, Desktop |

264| `UserMessage` | `text`, `origin`, `isExpanded` e `task` o `from` a seconda dell'origine | L'id del messaggio | Terminale, Desktop |266| `UserMessage` | `text`, `origin`, `isExpanded` e `task` o `from` a seconda dell'origine | L'id del messaggio | Terminale, Desktop, VS Code |

265| `AssistantMessage` | Il testo della risposta | L'id del messaggio | Terminale, Desktop |267| `AssistantMessage` | Il testo della risposta | L'id del messaggio | Terminale, Desktop, VS Code |

266| `ToolUse`, `ToolResult`, `ToolGroup` | Il nome, l'input e il risultato dello strumento | L'id della chiamata allo strumento | Terminale, Desktop |268| `ToolUse`, `ToolResult`, `ToolGroup` | Il nome, l'input e il risultato dello strumento | L'id della chiamata allo strumento | Terminale, Desktop, VS Code |

267| `CommandOutput` | `command`, `text` | L'id del messaggio | Terminale, Desktop |269| `CommandOutput` | `command`, `text` | L'id del messaggio | Terminale, Desktop |

268| [`AskUserQuestion`](/docs/it/plugins/mods/interface#change-what-claude-code-already-draws) | La domanda e le opzioni | L'id della chiamata allo strumento | Terminale, Desktop |270| [`AskUserQuestion`](/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 |

269| `ToolProgress` | `kind` | L'id della chiamata allo strumento | Terminale |271| `ToolProgress` | `kind` | L'id della chiamata allo strumento | Terminale |

270| [`Spinner`](/docs/it/plugins/mods/interface#change-what-claude-code-already-draws) | `word`, `message`, `suffix`, `mode` | L'id dell'agente | Terminale, Desktop |272| [`Spinner`](/docs/it/plugins/mods/interface#change-what-claude-code-already-draws) | `word`, `message`, `suffix`, `mode` | L'id dell'agente | Terminale, Desktop, VS Code |

271| `TurnDuration` | `word`, `durationMs` | L'id del messaggio | Terminale |273| `TurnDuration` | `word`, `durationMs` | L'id del messaggio | Terminale |

272| `InfoNotice` | `text`, `command` | L'id del messaggio | Terminale |274| `InfoNotice` | `text`, `command` | L'id del messaggio | Terminale |

273| `SessionMode` | `modes` | Una sola istanza | Terminale, Desktop |275| `SessionMode` | `modes` | Una sola istanza | Terminale, Desktop |

274| `PromptHint` | `isDraft`, `isWorking`, `hint` | Una sola istanza | Terminale, Desktop |276| `PromptHint` | `isDraft`, `isWorking`, `hint` | Una sola istanza | Terminale, Desktop |

275 277 

276`e.viewport` contiene `columns`, `rows` e `isFullscreen`. È assente finché l'app non ha misurato la propria finestra. Il suo `rows` è l'altezza dell'intera finestra, non del tuo pannello.278`e.viewport` contiene `columns`, `rows` e `isFullscreen`. Nel terminale e nell'app Desktop, è assente finché l'app non ha misurato la propria finestra. Lì, il suo `rows` è l'altezza dell'intera finestra, non del tuo pannello. Nell'estensione VS Code, è sempre presente.

277 279 

278Per adattare un albero al suo punto, leggi queste prop nell'hook:280Per adattare un albero al suo punto, leggi queste prop nell'hook:

279 281 

280* **Larghezza di un `Pane` o della fascia**: disegna fino a `e.props.bodyColumns`282* **Larghezza di un `Pane` o della fascia**: disegna fino a `e.props.bodyColumns`

281* **Altezza di un `Pane` accanto alla trascrizione**: quando `e.props.placement` è `'dock'`, `e.props.scroll.bodyRows` è il numero di righe di cui dispone il pannello per il tuo albero283* **Altezza di un `Pane` accanto alla trascrizione**: quando `e.props.placement` è `'dock'`, `e.props.scroll.bodyRows` è il numero di righe di cui dispone il pannello per il tuo albero

282* **Altezza di un `Pane` sopra il prompt**: quando `e.props.placement` è `'inline'`, il pannello cresce insieme al tuo albero fino a un limite, e `bodyRows` è quel limite. Il [campo `rows` di `$.ui.open`](/docs/it/plugins/mods/interface#open-a-pane-at-the-right-time) richiede un limite diverso.284* **Altezza di un `Pane` sopra il prompt**: quando `e.props.placement` è `'inline'`, il pannello cresce insieme al tuo albero fino a un limite, e `bodyRows` è quel limite. Per richiedere un limite diverso, consulta il [campo `rows` di `$.ui.open`](/docs/it/plugins/mods/interface#open-a-pane-at-the-right-time).

283 285 

284Un albero più alto del pannello scorre nel suo insieme.286Un albero più alto del pannello scorre nel suo insieme.

285 287 


289 291 

290Gli elementi sono i componenti di base di un albero restituito da un hook `ui.render`, e li ottieni da `$.ui.resolve(e)`. [Crea un albero a partire dagli elementi](/docs/it/plugins/mods/interface#build-a-tree-from-elements) mostra quelli più comuni insieme a come il terminale li disegna, e la [galleria dell'interfaccia](/docs/it/plugins/mods/gallery) contiene screenshot della maggior parte di essi. Un segno di spunta indica che l'app può disegnare l'elemento.292Gli elementi sono i componenti di base di un albero restituito da un hook `ui.render`, e li ottieni da `$.ui.resolve(e)`. [Crea un albero a partire dagli elementi](/docs/it/plugins/mods/interface#build-a-tree-from-elements) mostra quelli più comuni insieme a come il terminale li disegna, e la [galleria dell'interfaccia](/docs/it/plugins/mods/gallery) contiene screenshot della maggior parte di essi. Un segno di spunta indica che l'app può disegnare l'elemento.

291 293 

292| Elemento | Prop principali | Terminale | Desktop |294| Elemento | Prop principali | Terminale | Desktop | VS Code |

293| :- | :- | :-: | :-: |295| :- | :- | :-: | :-: | :-: |

294| [`Box`](/docs/it/plugins/mods/interface#build-a-tree-from-elements) | `key`, layout flex, `gap`, `padding`, `margin`, `width`, `height`, [`borderStyle`](#box-border-styles), `backgroundColor`, `position`, `hover` | ✓ | ✓ |296| [`Box`](/docs/it/plugins/mods/interface#build-a-tree-from-elements) | `key`, layout flex, `gap`, `padding`, `margin`, `width`, `height`, [`borderStyle`](#box-border-styles), `backgroundColor`, `position`, `hover` | ✓ | ✓ | ✓ |

295| [`Text`](/docs/it/plugins/mods/interface#build-a-tree-from-elements) | `color`, `backgroundColor`, `bold`, `italic`, `underline`, `dimColor`, `inverse`, `wrap` | ✓ | ✓ |297| [`Text`](/docs/it/plugins/mods/interface#build-a-tree-from-elements) | `color`, `backgroundColor`, `bold`, `italic`, `underline`, `dimColor`, `inverse`, `wrap` | ✓ | ✓ | ✓ |

296| [`Button`](/docs/it/plugins/mods/interface#respond-to-presses-and-typing) | `key`, `label`, `onPress`, `hotkey`, `plain`, `dimColor`, `autoFocus`, `action` | ✓ | ✓ |298| [`Button`](/docs/it/plugins/mods/interface#respond-to-presses-and-typing) | `key`, `label`, `onPress`, `hotkey`, `plain`, `dimColor`, `autoFocus`, `action` | ✓ | ✓ | ✓ |

297| [`Link`](/docs/it/plugins/mods/interface#link-in-the-desktop-app) | `href`, `label`. Consulta [Limiti](#limits). | ✓ | ✓ |299| [`Link`](/docs/it/plugins/mods/interface#link-in-the-desktop-app) | `href`, `label`. Consulta [Limiti](#limits). | ✓ | ✓ | ✓ |

298| [`Code`](/docs/it/plugins/mods/gallery#show-code-and-changes) | `source`, `language`, `path`, `startLine`, `format`, `wrap` | ✓ | ✓ |300| [`Code`](/docs/it/plugins/mods/gallery#show-code-and-changes) | `source`, `language`, `path`, `startLine`, `format`, `wrap` | ✓ | ✓ | ✓ |

299| `Markdown` | `text`, `key`, `dimColor`, `onLinkPress`, `pressableLinks` | ✓ | ✓ |301| `Markdown` | `text`, `key`, `dimColor`, `onLinkPress`, `pressableLinks` | ✓ | ✓ | ✓ |

300| [`Input`](/docs/it/plugins/mods/interface#take-typed-input-and-draw-a-row-for-each-item) | `key`, `label`, `placeholder`, `value`, `submitLabel`, `onSubmit`, `onInput`, `autoFocus` | ✓ | ✓ |302| [`Input`](/docs/it/plugins/mods/interface#take-typed-input-and-draw-a-row-for-each-item) | `key`, `label`, `placeholder`, `value`, `submitLabel`, `onSubmit`, `onInput`, `autoFocus` | ✓ | ✓ | ✓ |

301| `Select` | `key`, `label`, `options`, `value`, `onSelect`, `autoFocus` | ✓ | ✓ |303| `Select` | `key`, `label`, `options`, `value`, `onSelect`, `autoFocus` | ✓ | ✓ | ✓ |

302| `Svg` | Un documento SVG, fino a 131.072 caratteri | | ✓ |304| `Svg` | Un documento SVG, fino a 131.072 caratteri | | ✓ | ✓ |

303| [`Client`](/docs/it/plugins/mods/interface#build-a-tree-from-elements) | `module`, `key` | ✓ | ✓ |305| [`Client`](/docs/it/plugins/mods/interface#build-a-tree-from-elements) | `module`, `key` | ✓ | ✓ | |

304| [`Raster`](/docs/it/plugins/mods/interface#draw-a-grid-of-colored-cells) | `key`, `columns` fino a 512, `rows` fino a 256, `cells`. Consulta [Disegna una griglia di celle colorate](/docs/it/plugins/mods/interface#draw-a-grid-of-colored-cells). | ✓ | |306| [`Raster`](/docs/it/plugins/mods/interface#draw-a-grid-of-colored-cells) | `key`, `columns` fino a 512, `rows` fino a 256, `cells`. Consulta [Disegna una griglia di celle colorate](/docs/it/plugins/mods/interface#draw-a-grid-of-colored-cells). | ✓ | | |

305| `Image` | Byte PNG o RGBA fino a 2 MiB, oppure un percorso di file, `columns` e `rows` fino a 255, e testo `alt`. | ✓ | |307| `Image` | Byte PNG o RGBA fino a 2 MiB, oppure un percorso di file, `columns` e `rows` fino a 255, e testo `alt`. | ✓ | | |

306 308 

307Altre regole per `Button`: `action` indica una delle [scorciatoie da tastiera](/docs/it/keybindings) di Claude Code, e la combinazione assegnata dall'utente a quell'azione preme il pulsante quando si tratta di un accordo o di un tasto con modificatore. Un `hotkey` numerico su un pulsante nella banda si attiva anche quando l'utente digita solo quella cifra in un prompt vuoto e si ferma. Quando due pulsanti nello stesso disegno indicano lo stesso `hotkey`, lo ottiene quello successivo. `autoFocus` accetta solo `true` su qualsiasi controllo, quindi ometti la prop per lasciarlo disattivato.309Altre regole per `Button`: `action` indica una delle [scorciatoie da tastiera](/docs/it/keybindings) di Claude Code, e la combinazione assegnata dall'utente a quell'azione preme il pulsante quando si tratta di un accordo o di un tasto con modificatore. Un `hotkey` numerico su un pulsante nella banda si attiva anche quando l'utente digita solo quella cifra in un prompt vuoto e si ferma. Quando due pulsanti nello stesso disegno indicano lo stesso `hotkey`, lo ottiene quello successivo. `autoFocus` accetta solo `true` su qualsiasi controllo, quindi ometti la prop per lasciarlo disattivato.

308 310 

311L'estensione VS Code ignora alcune prop degli elementi e disegna l'elemento come se le avessi omesse:

312 

313* **`Box`**: `position` e `hover`

314* **`Button`**: `hotkey`, `plain`, `autoFocus` e `action`, quindi lì l'utente preme un pulsante con un clic, oppure con Invio quando ha il focus

315* **`Code`**: `language`, `path`, `startLine`, `format` e `wrap`, quindi il codice viene disegnato senza colori né numeri di riga, e un blocco `format: 'diff'` mostra il testo grezzo del diff

316* **`Input` e `Select`**: `autoFocus`

317 

309<h3 id="box-border-styles">318<h3 id="box-border-styles">

310 Stili del bordo di `Box`319 Stili del bordo di `Box`

311</h3>320</h3>

Details

289 I tasti di scelta rapida non fanno nulla289 I tasti di scelta rapida non fanno nulla

290</h3>290</h3>

291 291 

292Il tuo riquadro non ha il focus della tastiera.292Il tuo riquadro non ha il focus della tastiera, oppure il disegno si trova nell'estensione VS Code, dove i pulsanti non hanno tasti di scelta rapida. Fai ciò che corrisponde al tuo caso:

293 293 

294Premi Ctrl+X e poi Tab, oppure fai clic sul riquadro. Aprilo con `focus: true` da un comando.294* **Nessun focus della tastiera**: premi Ctrl+X e poi Tab, oppure fai clic sul riquadro. Per fare in modo che il riquadro prenda il focus quando si apre, aprilo con `focus: true` da un comando.

295* **Nell'estensione VS Code**: fai clic sul pulsante, oppure premi Invio su di esso quando ha il focus

295 296 

296<h3 id="a-drawing-works-in-the-terminal-and-not-in-the-desktop-app">297<h3 id="a-drawing-works-in-the-terminal-and-not-in-the-desktop-app-or-vs-code">

297 Un disegno funziona nel terminale ma non nell'app Desktop298 Un disegno funziona nel terminale ma non nell'app Desktop o in VS Code

298</h3>299</h3>

299 300 

300Il punto di rendering o l'elemento non è disponibile lì.301L'app non disegna il punto di rendering o l'elemento, oppure la sessione è una di quelle in cui l'estensione VS Code non disegna nulla per i mod. Gli altri hook del mod vengono comunque eseguiti. Verifica queste cause:

301 302 

302Controlla le tabelle dei [punti di rendering](/docs/it/plugins/mods/reference#render-sites) e degli [elementi](/docs/it/plugins/mods/reference#elements).303* **Il punto di rendering o l'elemento non viene disegnato in quell'app**: cerca il tuo punto di rendering nella tabella dei [punti di rendering](/docs/it/plugins/mods/reference#render-sites) e i tuoi elementi nella tabella degli [elementi](/docs/it/plugins/mods/reference#elements). Per un elemento che l'app non possiede, controlla `e.surface` nell'hook e restituisci un albero che l'app può disegnare.

304* **L'estensione VS Code è precedente alla 2.1.299**: il pannello della chat disegna per i mod a partire dalla [versione dell'estensione](/docs/it/vs-code#install-the-extension) 2.1.299. Controlla la versione nella vista Estensioni di VS Code e aggiorna l'estensione da lì.

305* **La sessione VS Code non recupera i feature flag**: il disegno nel pannello della chat lo richiede. Le sessioni su Amazon Bedrock, Agent Platform di Google Cloud o Microsoft Foundry, oppure tramite un [gateway delle app Claude](/docs/it/claude-apps-gateway), lo saltano, insieme ad altre elencate in [Funzionalità che richiedono il recupero dei feature flag](/docs/it/env-vars#features-that-need-feature-flag-fetching). Per vedere il disegno in una sessione di questo tipo, esegui invece `claude` in un terminale, come il terminale integrato di VS Code.

303 306 

304<h2 id="an-edit-or-a-value-is-lost">307<h2 id="an-edit-or-a-value-is-lost">

305 Una modifica o un valore va perso308 Una modifica o un valore va perso

Details

72 | `-d`, `--debug[=<filter>]` | Attiva la registrazione del debug per il server, facoltativamente filtrata per categoria. Passare un filtro solo nella forma `=`, come `--debug=api,hooks`. Richiede Claude Code v2.1.282 o successivo. |72 | `-d`, `--debug[=<filter>]` | Attiva la registrazione del debug per il server, facoltativamente filtrata per categoria. Passare un filtro solo nella forma `=`, come `--debug=api,hooks`. Richiede Claude Code v2.1.282 o successivo. |

73 | `--debug-file <path>` | Scrive i log di debug nel file specificato. |73 | `--debug-file <path>` | Scrive i log di debug nel file specificato. |

74 | `--verbose` | Mostra log dettagliati di connessione e sessione. |74 | `--verbose` | Mostra log dettagliati di connessione e sessione. |

75 | `--sandbox`, `--no-sandbox` | Rimossi in v2.1.300. Se passi uno dei due flag, il server [esce con un errore](/docs/it/errors#sandbox-is-not-supported-by-claude-remote-control) invece di avviarsi. |

75 76 

76 Se si passa un flag `claude` globale prima di `remote-control`, o uno script wrapper ne aggiunge uno, Claude Code non trasporta il flag alle sessioni che il server crea. Claude Code consente il flag solo quando è noto che eliminarlo non cambia ciò che quelle sessioni possono fare, come `--verbose` o `--model`. Per qualsiasi altro flag, come `--settings`, Claude Code [rifiuta di avviarsi](/docs/it/errors#not-carried-over-to-the-sessions-remote-control-starts) e nomina il flag da rimuovere.77 Se si passa un flag `claude` globale prima di `remote-control`, o uno script wrapper ne aggiunge uno, Claude Code non trasporta il flag alle sessioni che il server crea. Claude Code consente il flag solo quando è noto che eliminarlo non cambia ciò che quelle sessioni possono fare, come `--verbose` o `--model`. Per qualsiasi altro flag, come `--settings`, Claude Code [rifiuta di avviarsi](/docs/it/errors#not-carried-over-to-the-sessions-remote-control-starts) e nomina il flag da rimuovere.

77 78 

skills.md +8 −2

Details

720 720 

721Puoi anche impilare diverse skill all'inizio di un messaggio. Digitando `/write-tests /fix-issue 123` carichi entrambe le skill e passi il testo finale `123` come `$ARGUMENTS` a ciascuna di esse.721Puoi anche impilare diverse skill all'inizio di un messaggio. Digitando `/write-tests /fix-issue 123` carichi entrambe le skill e passi il testo finale `123` come `$ARGUMENTS` a ciascuna di esse.

722 722 

723Claude Code espande la prima skill più fino a cinque altre impilate dopo di essa. L'espansione si ferma al primo token che non è una skill invocabile dall'utente inline, quindi una skill che viene eseguita come [subagent biforcato](#run-skills-in-a-subagent), come [`/code-review`](/docs/it/code-review#review-a-diff-locally), o una i cui argomenti potrebbero essi stessi iniziare con un comando slash, come `/loop`, termina anche lì. Quel token e tutto ciò che segue diventa il testo di argomento per ogni skill espansa. `/code-review` viene eseguito come subagent biforcato dalla v2.1.218; nelle versioni precedenti veniva eseguito inline e impilato.723Claude Code espande la prima skill più fino a cinque altre impilate dopo di essa. L'espansione si ferma al primo token che non è una skill invocabile dall'utente inline, quindi una skill che viene eseguita come [subagent biforcato](#run-skills-in-a-subagent), come [`/code-review`](/docs/it/code-review-local), o una i cui argomenti potrebbero essi stessi iniziare con un comando slash, come `/loop`, termina anche lì. Quel token e tutto ciò che segue diventa il testo di argomento per ogni skill espansa. `/code-review` viene eseguito come subagent biforcato dalla v2.1.218; nelle versioni precedenti veniva eseguito inline e impilato.

724 724 

725Per accedere ai singoli argomenti per posizione, usa `$ARGUMENTS[N]` o il più breve `$N`:725Per accedere ai singoli argomenti per posizione, usa `$ARGUMENTS[N]` o il più breve `$N`:

726 726 


832 832 

833Con la shell `bash` predefinita, aggiungi `|| true` a qualsiasi altro comando che ti aspetti esca con un codice non zero. Uno script di controllo che esce con 1 quando trova problemi è un esempio.833Con la shell `bash` predefinita, aggiungi `|| true` a qualsiasi altro comando che ti aspetti esca con un codice non zero. Uno script di controllo che esce con 1 quando trova problemi è un esempio.

834 834 

835<h4 id="control-characters-in-injected-commands">

836 Caratteri di controllo nei comandi iniettati

837</h4>

838 

839`No shell command in <name> was run` significa che uno dei comandi `!` del file contiene un carattere di controllo grezzo diverso da tab o newline, quindi nessuno di essi viene eseguito. Vedi [come trovare e rimuovere il carattere](/docs/it/errors#no-shell-command-was-run).

840 

835<h4 id="permission-checks-on-injected-commands">841<h4 id="permission-checks-on-injected-commands">

836 Controlli di permesso sui comandi iniettati842 Controlli di permesso sui comandi iniettati

837</h4>843</h4>


865 871 

866Un fork in background viene eseguito anche con il [set di strumenti più ristretto che si applica ai subagent in background](/docs/it/sub-agents#run-subagents-in-foreground-or-background): il subagent della skill è un tipo di agent regolare, quindi l'esenzione per i subagent che forkano la conversazione non lo copre. Se i passaggi della tua skill dipendono da uno strumento al di fuori di quel set, imposta `background: false` per mantenere il set di strumenti completo.872Un fork in background viene eseguito anche con il [set di strumenti più ristretto che si applica ai subagent in background](/docs/it/sub-agents#run-subagents-in-foreground-or-background): il subagent della skill è un tipo di agent regolare, quindi l'esenzione per i subagent che forkano la conversazione non lo copre. Se i passaggi della tua skill dipendono da uno strumento al di fuori di quel set, imposta `background: false` per mantenere il set di strumenti completo.

867 873 

868Una skill forkata che viene eseguita in background applica i suoi edit al di fuori dei [checkpoints](/docs/it/checkpointing) della tua sessione, quindi `/rewind` non li annulla; usa git per ripristinarli.874Una skill forkata che viene eseguita in background applica le sue modifiche al di fuori dei [checkpoint](/docs/it/checkpointing#subagent-edits-not-restored) della tua sessione. Dopo una di queste esecuzioni, `/rewind` ripristina solo i file che Claude aveva già modificato nella tua conversazione. Le modifiche della skill ad altri file restano, quindi usa git per annullarle.

869 875 

870<Warning>876<Warning>

871 `context: fork` ha senso solo per skill con istruzioni esplicite. Se la tua skill contiene linee guida come "usa queste convenzioni API" senza un compito, il subagent riceve le linee guida ma nessun prompt azionabile, e ritorna senza output significativo.877 `context: fork` ha senso solo per skill con istruzioni esplicite. Se la tua skill contiene linee guida come "usa queste convenzioni API" senza un compito, il subagent riceve le linee guida ma nessun prompt azionabile, e ritorna senza output significativo.

ultrareview.md +1 −1

Details

18* **Copertura più ampia**: una flotta più grande di agenti revisori esplora il cambiamento in parallelo, il che fa emergere i problemi che una revisione locale può perdere18* **Copertura più ampia**: una flotta più grande di agenti revisori esplora il cambiamento in parallelo, il che fa emergere i problemi che una revisione locale può perdere

19* **Nessun utilizzo di risorse locali**: la revisione viene eseguita interamente in una sandbox cloud, quindi il tuo terminale rimane libero per altri lavori mentre viene eseguita19* **Nessun utilizzo di risorse locali**: la revisione viene eseguita interamente in una sandbox cloud, quindi il tuo terminale rimane libero per altri lavori mentre viene eseguita

20 20 

21Ultrareview richiede l'autenticazione con un account claude.ai perché viene eseguito come una sessione cloud sull'infrastruttura di Anthropic. Se sei connesso solo con una chiave API, esegui `/login` e autenticati prima con claude.ai. Ultrareview non è disponibile quando si utilizza Claude Code con Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry, e non è disponibile per le organizzazioni che hanno abilitato Zero Data Retention o a cui è applicata la [configurazione HIPAA](/docs/it/hipaa-setup). Quando ultrareview non è disponibile, `/code-review ultra` esegue invece una revisione locale nella tua sessione.21Ultrareview richiede l'autenticazione con un account claude.ai perché viene eseguito come una sessione cloud sull'infrastruttura di Anthropic. Se sei connesso solo con una chiave API, esegui `/login` e autenticati prima con claude.ai. Ultrareview non è disponibile quando si utilizza Claude Code con Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry, e non è disponibile per le organizzazioni che hanno abilitato Zero Data Retention o a cui è applicata la [configurazione HIPAA](/docs/it/hipaa-setup). In questi casi, `/code-review ultra` esegue invece una revisione locale nella tua sessione. Le organizzazioni che utilizzano [chiavi di crittografia gestite dal cliente](https://platform.claude.com/docs/en/manage-claude/cmek) (CMEK) non possono eseguire ultrareview. Per rivedere le tue modifiche localmente, esegui `/code-review`.

22 22 

23<h2 id="run-ultrareview-from-the-cli">23<h2 id="run-ultrareview-from-the-cli">

24 Esegui ultrareview dalla CLI24 Esegui ultrareview dalla CLI

vs-code.md +76 −2

Details

220* Se un avviso come `Removed 3 invisible characters from the pasted text` appare quando incoli, il testo è entrato senza quei caratteri.220* Se un avviso come `Removed 3 invisible characters from the pasted text` appare quando incoli, il testo è entrato senza quei caratteri.

221* Se un avviso sui caratteri rimossi appare quando invii, nulla è stato inviato. Il testo pulito è di nuovo nella casella di prompt. Invia di nuovo per inviare il testo come mostrato.221* Se un avviso sui caratteri rimossi appare quando invii, nulla è stato inviato. Il testo pulito è di nuovo nella casella di prompt. Invia di nuovo per inviare il testo come mostrato.

222 222 

223<h3 id="latex-math-in-responses">

224 Matematica LaTeX nelle risposte

225</h3>

226 

227Il pannello della chat mostra la matematica LaTeX nelle risposte di Claude come formule composte tipograficamente. Il rendering matematico richiede Claude Code v2.1.301 o successivo. In [modalità terminale](#switch-to-terminal-mode), la matematica non viene composta. Il pannello compone sia la matematica in display sia la matematica inline:

228 

229* **Matematica in display**: un blocco `$$ … $$` o `\[ … \]` su una o più righe a sé stanti, e un blocco di codice delimitato con `math` come linguaggio

230* **Matematica inline**: `$…$` o `\(…\)` che si apre e si chiude sulla stessa riga, come `$E = mc^2$` o `\(a^2 + b^2 = c^2\)`

231 

232Il pannello cerca di distinguere la matematica da altri usi degli stessi caratteri, quindi testo come `$HOME`, un prezzo come `$5` o `sed 's/\(foo\)/\1/'` non viene composto. Né lo è il testo all'interno di uno span di codice o di qualsiasi blocco di codice diverso da un blocco delimitato `math`. Se una formula appare così come è scritta quando ti aspettavi che venisse composta, consulta [Una formula appare come LaTeX grezzo](#a-formula-shows-as-raw-latex).

233 

234Quando selezioni e copi testo che include una formula composta, ottieni il sorgente TeX della formula tra delimitatori `$…$` o `$$…$$` anziché i simboli disegnati. [**Copy response**](#use-the-prompt-box) e `/copy` ti forniscono la risposta così come Claude l'ha scritta, sorgente TeX incluso.

235 

223<h3 id="resume-past-conversations">236<h3 id="resume-past-conversations">

224 Riprendi conversazioni passate237 Riprendi conversazioni passate

225</h3>238</h3>

226 239 

227Fai clic sul pulsante **Session history** nella parte superiore del pannello Claude Code per accedere alla cronologia delle conversazioni. Puoi cercare per parola chiave o sfogliare per ora.240Fai clic sul pulsante **Session history** nella parte superiore del pannello Claude Code per accedere alla cronologia delle conversazioni. Puoi cercare per parola chiave o sfogliare per ora.

228 241 

229Fai clic su qualsiasi conversazione per riprenderla con la cronologia completa dei messaggi. Se la conversazione è già aperta in un'altra scheda della finestra corrente, facendo clic su di essa passerai a quella scheda. Per ulteriori informazioni sulla ripresa delle sessioni, consulta [Manage sessions](/docs/it/sessions).242Fai clic su qualsiasi conversazione per riprenderla con la cronologia completa dei messaggi. Se la conversazione è già aperta in un'altra scheda della finestra corrente, facendo clic su di essa passerai a quella scheda. Se i messaggi restano vuoti all'inizio, consulta [perché sono vuoti e quando appaiono](#a-resumed-conversation-is-blank-at-first). Per ulteriori informazioni sulla ripresa delle sessioni, consulta [Manage sessions](/docs/it/sessions).

230 243 

231* **Session titles**: le nuove sessioni ricevono titoli generati dall'IA in base al tuo primo messaggio.244* **Session titles**: le nuove sessioni ricevono titoli generati dall'IA in base al tuo primo messaggio.

232* **Rename and archive**: passa il mouse su una sessione per rivelare queste azioni. Rinomina per darle un titolo descrittivo, o archivia per spostarla nel gruppo **Archived sessions** nella parte inferiore dell'elenco.245* **Rename and archive**: passa il mouse su una sessione per rivelare queste azioni. Rinomina per darle un titolo descrittivo, o archivia per spostarla nel gruppo **Archived sessions** nella parte inferiore dell'elenco.


321* **Scheda editor**: la conversazione torna con la sua scheda.334* **Scheda editor**: la conversazione torna con la sua scheda.

322* **Barra laterale**: la conversazione torna se hai inviato un messaggio o Claude ha risposto in essa negli ultimi 10 minuti. Se non torna, riprendi la conversazione da [Cronologia sessioni](#resume-past-conversations).335* **Barra laterale**: la conversazione torna se hai inviato un messaggio o Claude ha risposto in essa negli ultimi 10 minuti. Se non torna, riprendi la conversazione da [Cronologia sessioni](#resume-past-conversations).

323 336 

324Se un altro processo Claude Code ha ancora la conversazione aperta, ti viene chiesto prima che si apra qui, con lo stesso avviso **Open here anyway** di quando la [riprendi dalla cronologia sessioni](#resume-past-conversations).337Se un altro processo Claude Code ha ancora la conversazione aperta, ti viene chiesto prima che si apra qui, con lo stesso avviso **Open here anyway** di quando la [riprendi dalla cronologia sessioni](#resume-past-conversations). Se all'inizio i messaggi restano vuoti, consulta [perché sono vuoti e quando appaiono](#a-resumed-conversation-is-blank-at-first).

325 338 

326Se il ricaricamento ha interrotto Claude a metà di un passaggio, Claude continua quel passaggio quando la conversazione torna, e un avviso nella chat contrassegna la continuazione. Richiede Claude Code v2.1.274 o successivo. Se il passaggio è stato interrotto più di un'ora fa o la sessione è aperta altrove, la conversazione torna inattiva.339Se il ricaricamento ha interrotto Claude a metà di un passaggio, Claude continua quel passaggio quando la conversazione torna, e un avviso nella chat contrassegna la continuazione. Richiede Claude Code v2.1.274 o successivo. Se il passaggio è stato interrotto più di un'ora fa o la sessione è aperta altrove, la conversazione torna inattiva.

327 340 

328Per disattivare la continuazione, apri l'[impostazione Continue After Reload](vscode://settings/claudeCode.continueAfterReload) e deselezionala. Impostare [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/it/env-vars#variables) o qualsiasi altra variabile `CLAUDE_CODE_RESUME_` nell'ambiente di VS Code o nell'[impostazione `environmentVariables`](#extension-settings) non ha alcun effetto nel pannello, perché l'estensione rimuove quelle variabili prima di avviare le sessioni del pannello.341Per disattivare la continuazione, apri l'[impostazione Continue After Reload](vscode://settings/claudeCode.continueAfterReload) e deselezionala. Impostare [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/it/env-vars#variables) o qualsiasi altra variabile `CLAUDE_CODE_RESUME_` nell'ambiente di VS Code o nell'[impostazione `environmentVariables`](#extension-settings) non ha alcun effetto nel pannello, perché l'estensione rimuove quelle variabili prima di avviare le sessioni del pannello.

329 342 

343<h4 id="a-conversation-was-not-reopened">

344 Una conversazione non è stata riaperta

345</h4>

346 

347Dopo un ricaricamento, una nuova chat con un avviso come questo sopra la casella del prompt significa che il pannello ha lasciato chiusa la tua conversazione perché le ultime due aperture della conversazione non sono state completate:

348 

349```text theme={null}

350“Fix the login bug” was not reopened. It did not finish opening the last 2 times, and opening it again may stop Claude Code from responding here.

351```

352 

353Un'apertura non viene completata quando il pannello si arresta in modo anomalo o smette di rispondere durante il caricamento della conversazione, oppure quando ricarichi o chiudi la finestra entro circa tre secondi dalla sua apertura. Non si perde nulla: la conversazione resta invariata e rimane in [Cronologia sessioni](#resume-past-conversations).

354 

355* **Per aprirla comunque**: fai clic su **Open it anyway** o scegli la conversazione da Cronologia sessioni. Se si apre e il pannello continua a funzionare, torna dopo i ricaricamenti successivi come al solito. Se il pannello smette di nuovo di rispondere, ricarica la finestra per tornare a una nuova chat con l'avviso.

356* **Per lasciarla chiusa**: continua a lavorare nella nuova chat. L'avviso scompare non appena invii un prompt.

357 

330<h3 id="run-multiple-conversations">358<h3 id="run-multiple-conversations">

331 Esegui più conversazioni359 Esegui più conversazioni

332</h3>360</h3>


464 492 

465Per ulteriori informazioni sul sistema dei plugin, consulta [Plugin](/docs/it/plugins/overview) e [Marketplace di plugin](/docs/it/plugins/overview).493Per ulteriori informazioni sul sistema dei plugin, consulta [Plugin](/docs/it/plugins/overview) e [Marketplace di plugin](/docs/it/plugins/overview).

466 494 

495<h3 id="plugins-that-draw-in-the-panel">

496 Plugin che disegnano nel pannello

497</h3>

498 

499Un plugin che contiene un [mod](/docs/it/plugins/mods/overview) può disegnare nel pannello della chat. Per disegnare sono necessari l'estensione versione 2.1.299 o successiva e una sessione che [recupera i feature flag](/docs/it/env-vars#features-that-need-feature-flag-fetching). Da un plugin di questo tipo puoi vedere:

500 

501* Un riquadro accanto alla conversazione o sopra la casella del prompt

502* Una notifica toast o una riga di stato sopra la casella del prompt

503* Un messaggio o una chiamata a uno strumento disegnati nel modo proprio del plugin

504 

505Quando un plugin che hai installato aggiunge o modifica qualcosa nel pannello, un'etichetta lo indica, con frasi come queste:

506 

507* **From the token-chart plugin**: il plugin ha disegnato o stampato questo elemento, oppure questa scheda è il plugin che ti chiede qualcosa

508* **Edited by the token-chart plugin**: il plugin ha modificato qualcosa che Claude Code disegna, come una chiamata a uno strumento

509* **Prompt from the token-chart plugin**: il plugin ha inviato questo messaggio per tuo conto

510 

511Per impedire a un plugin di disegnare, disattiva il plugin nella [finestra di dialogo dei plugin](#install-plugins).

512 

467<h2 id="automate-browser-tasks-with-chrome">513<h2 id="automate-browser-tasks-with-chrome">

468 Automatizzare attività del browser con Chrome514 Automatizzare attività del browser con Chrome

469</h2>515</h2>


898 944 

899In alternativa, riassegna l'estensione a un tasto diverso: apri l'editor [Keyboard Shortcuts](https://code.visualstudio.com/docs/configure/keybindings) di VS Code (`Cmd+K Cmd+S`), cerca `Claude Code: Focus input` e assegna una nuova associazione.945In alternativa, riassegna l'estensione a un tasto diverso: apri l'editor [Keyboard Shortcuts](https://code.visualstudio.com/docs/configure/keybindings) di VS Code (`Cmd+K Cmd+S`), cerca `Claude Code: Focus input` e assegna una nuova associazione.

900 946 

947<h3 id="a-resumed-conversation-is-blank-at-first">

948 Una conversazione ripresa è inizialmente vuota

949</h3>

950 

951Quando [riprendi una conversazione passata](#resume-past-conversations) o una conversazione [ritorna dopo un ricaricamento](#continue-conversations-after-a-reload), i suoi messaggi possono restare vuoti mentre si avvia il processo Claude Code della conversazione. Dopo circa un secondo, nello spazio vuoto appare `Waiting for your plugins…`.

952 

953Non devi fare nulla. I messaggi appaiono una volta che il processo si è avviato e ha confermato che nessun plugin deve prima controllarli, oppure dopo 20 secondi se l'avvio richiede più tempo.

954 

955<h3 id="the-panel-stops-responding-each-time-a-reload-reopens-a-conversation">

956 Il pannello smette di rispondere ogni volta che un ricaricamento riapre una conversazione

957</h3>

958 

959Se l'intero pannello si arresta in modo anomalo, si blocca o mostra solo `Something went wrong` ogni volta che ricarichi e la tua conversazione ritorna, aggiorna l'estensione alla v2.1.301 o successiva. Quindi ricarica di nuovo la finestra o riavvia VS Code. Dopo che la conversazione non riesce a completare l'apertura per due volte di seguito, al suo posto ottieni una nuova chat, con un avviso che [non è stata riaperta](#a-conversation-was-not-reopened).

960 

961<h3 id="a-formula-shows-as-raw-latex">

962 Una formula viene mostrata come LaTeX grezzo

963</h3>

964 

965Se nessuna delle formule matematiche nelle risposte di Claude viene composta tipograficamente, controlla la versione dell'estensione nella vista Extensions, perché il [rendering matematico](#latex-math-in-responses) richiede la versione 2.1.301 o successiva. Se usi la [modalità terminale](#switch-to-terminal-mode), che non compone le formule matematiche indipendentemente dalla versione, deseleziona l'[impostazione Use Terminal](vscode://settings/claudeCode.useTerminal) in modo che Claude Code si apra invece nel pannello della chat.

966 

967Se una formula viene mostrata così come è scritta mentre altre vicine vengono composte, verifica queste possibili cause:

968 

969* **Viene interpretata come qualcosa di diverso da una formula**: il testo `$…$` che si legge come una parola resta così come è scritto, ad esempio `$O(n log n)$`. Anche il testo `$…$` che inizia con una cifra, come `$30$` o `$1/N$`, resta così come è scritto, a meno che un carattere come `=`, `+` o `^` non lo contrassegni come formula. Chiedi invece a Claude un blocco `$$` su righe a sé stanti, che il pannello compone senza questo controllo.

970* **Contiene spazi interni, è lunga o è divisa su più righe**: `$ x^2 $` con spazi all'interno dei simboli del dollaro, il contenuto `$…$` oltre i 60 caratteri e `$…$` o `\(…\)` divisi su due righe non vengono composti. Chiedi invece a Claude un blocco `$$` su righe a sé stanti, che non ha nessuno di questi limiti.

971* **Il TeX non può essere composto**: una formula con un errore di sintassi, una definizione di macro come `\newcommand` o `\def`, oppure un `%` senza escape viene mostrata così come è scritta. Chiedi a Claude di riscriverla correggendo l'errore, senza la macro, oppure con `\%` per il simbolo di percentuale.

972* **È troppo grande**: una formula più lunga di 8.192 caratteri, o una che verrebbe disegnata molto più grande della sua sorgente, viene mostrata così come è scritta. Chiedi a Claude di dividerla in formule più piccole o di scriverla in modo più compatto.

973* **Segue una grande quantità di formule**: all'interno di un blocco di testo in una risposta, il pannello compone le formule in ordine fino a un limite. Una formula successiva che supererebbe il limite viene mostrata così come è scritta. Chiedi a Claude di inviare di nuovo da sola la formula che ti serve.

974 

901<h3 id="claude-code-never-responds">975<h3 id="claude-code-never-responds">

902 Claude Code non risponde mai976 Claude Code non risponde mai

903</h3>977</h3>

Details

103Se hai già connesso GitHub nel browser, `/web-setup` ti avverte che continuare sostituisce quella connessione per le tue sessioni cloud.103Se hai già connesso GitHub nel browser, `/web-setup` ti avverte che continuare sostituisce quella connessione per le tue sessioni cloud.

104 104 

105<Note>105<Note>

106 Le organizzazioni con [Zero Data Retention](/docs/it/zero-data-retention) abilitato, o con la [configurazione HIPAA](/docs/it/hipaa-setup) applicata, non possono utilizzare `/web-setup` o altre funzioni di sessione cloud. Se la GitHub CLI non è installata o non è autenticata, Claude Code apre il flusso di onboarding del browser.106 Le organizzazioni con [Zero Data Retention](/docs/it/zero-data-retention) abilitato, o con la [configurazione HIPAA](/docs/it/hipaa-setup) applicata, non possono utilizzare `/web-setup` o altre funzioni di sessione cloud. Anche le organizzazioni che utilizzano [chiavi di crittografia gestite dal cliente](https://platform.claude.com/docs/en/manage-claude/cmek) (CMEK) non possono avviare sessioni cloud. Se la GitHub CLI non è installata o non è autenticata, Claude Code apre il flusso di onboarding del browser.

107</Note>107</Note>

108 108 

109<Steps>109<Steps>

Details

74 <p className="digest-wins-title">Altri vantaggi</p>74 <p className="digest-wins-title">Altri vantaggi</p>

75 75 

76 <div className="digest-wins-grid">76 <div className="digest-wins-grid">

77 <div><a href="/docs/it/code-review#review-a-diff-locally"><code>/code-review</code></a> ora funziona come un subagenteBackground con la propria finestra di contesto, quindi il lavoro di revisione rimane fuori dalla conversazione e i risultati arrivano quando si completa</div>77 <div><a href="/docs/it/code-review-local"><code>/code-review</code></a> ora viene eseguito come subagent in background con la propria finestra di contesto, quindi il lavoro di revisione rimane fuori dalla tua conversazione e i risultati arrivano quando termina</div>

78 <div><code>/verify</code>, <code>/code-review</code> e <code>/deep-research</code> vengono eseguiti solo quando li si invoca; Claude non li avvia più autonomamente</div>78 <div><code>/verify</code>, <code>/code-review</code> e <code>/deep-research</code> vengono eseguiti solo quando li invochi; Claude non li avvia più autonomamente</div>

79 <div><a href="/docs/it/interactive-mode#emoji-shortcodes">Gli shortcode emoji</a> si completano automaticamente nell'input del prompt: digitare <code>:heart:</code> per inserire un emoji, o due o più caratteri dopo <code>:</code> per i suggerimenti; disattivarlo con <code>emojiCompletionEnabled</code></div>79 <div><a href="/docs/it/interactive-mode#emoji-shortcodes">Gli shortcode emoji</a> si completano automaticamente nell'input del prompt: digita <code>:heart:</code> per inserire un'emoji, o due o più caratteri dopo <code>:</code> per i suggerimenti; disattivali con <code>emojiCompletionEnabled</code></div>

80 <div>Le skill con <code>context: fork</code> <a href="/docs/it/skills#run-skills-in-a-subagent">vengono eseguite in background</a> per impostazione predefinita, e <code>background: false</code> nel frontmatter della skill attende il risultato nello stesso turno</div>80 <div>Le skill con <code>context: fork</code> <a href="/docs/it/skills#run-skills-in-a-subagent">vengono eseguite in background</a> per impostazione predefinita, e <code>background: false</code> nel frontmatter della skill attende il risultato nello stesso turno</div>

81 <div>Una sessione esegue fino a 20 subagentti contemporaneamente per impostazione predefinita; modificare il <a href="/docs/it/sub-agents#concurrent-subagent-limit">limite</a> con <code>CLAUDE\_CODE\_MAX\_CONCURRENT\_SUBAGENTS</code></div>81 <div>Una sessione esegue fino a 20 subagent contemporaneamente per impostazione predefinita; modifica il <a href="/docs/it/sub-agents#concurrent-subagent-limit">limite</a> con <code>CLAUDE\_CODE\_MAX\_CONCURRENT\_SUBAGENTS</code></div>

82 <div>`--max-budget-usd` ora applica il limite ai subagentti: una volta raggiunta la spesa, Claude non può avviarne altri e i subagentti background in esecuzione si fermano</div>82 <div>`--max-budget-usd` ora applica il limite ai subagent: una volta che la spesa lo raggiunge, Claude non può avviarne altri e i subagent in background in esecuzione si fermano</div>

83 <div>Nuova impostazione <a href="/docs/it/sandboxing#disable-filesystem-isolation"><code>sandbox.filesystem.disabled</code></a> che salta l'isolamento del filesystem mantenendo il controllo dell'uscita di rete</div>83 <div>Nuova impostazione <a href="/docs/it/sandboxing#disable-filesystem-isolation"><code>sandbox.filesystem.disabled</code></a> che salta l'isolamento del filesystem mantenendo il controllo del traffico di rete in uscita</div>

84 <div>In modalità auto, i controlli per i comandi <code>rm</code> pericolosi, i lavori in background e i percorsi Windows sospetti non aprono più finestre di dialogo di autorizzazione; il classificatore della modalità auto li decide invece</div>84 <div>In modalità auto, i controlli per i comandi <code>rm</code> pericolosi, i job in background e i percorsi Windows sospetti non aprono più finestre di dialogo dei permessi; è invece il classificatore della modalità auto a decidere su di essi</div>

85 <div>I controlli di autorizzazione Bash falliscono in modo chiuso su più forme di shell, inclusi i reindirizzamenti dei descrittori di file, i subscript delle variabili Zsh nei confronti <code>\[\[ ]]</code>, le invocazioni <code>help</code> e <code>man</code> che potrebbero eseguire opzioni non sicure, e i comandi superiori a 10.000 caratteri</div>85 <div>I controlli dei permessi di Bash falliscono in modo chiuso su più forme di shell, inclusi i reindirizzamenti dei descrittori di file, i subscript delle variabili Zsh nei confronti <code>\[\[ ]]</code>, le invocazioni di <code>help</code> e <code>man</code> che potrebbero eseguire opzioni non sicure, e i comandi superiori a 10.000 caratteri</div>

86 <div><a href="/docs/it/fast-mode">Fast mode</a> non supporta più Opus 4.7: <code>/fast</code> ora si applica a Opus 5 e Opus 4.8</div>86 <div><a href="/docs/it/fast-mode">La modalità veloce</a> non supporta più Opus 4.7: <code>/fast</code> ora si applica a Opus 5 e Opus 4.8</div>

87 <div>Le chiamate di strumenti a lunga esecuzione emettono un heartbeat di progresso periodico invece di rimanere silenziose</div>87 <div>Le chiamate agli strumenti di lunga durata emettono un heartbeat periodico di avanzamento invece di rimanere silenziose</div>

88 </div>88 </div>

89</div>89</div>

90 90 

Details

81</div>81</div>

82 82 

83<div className="digest-wins">83<div className="digest-wins">

84 <p className="digest-wins-title">Altri vantaggi</p>84 <p className="digest-wins-title">Altri miglioramenti</p>

85 85 

86 <div className="digest-wins-grid">86 <div className="digest-wins-grid">

87 <div>L'estensione VS Code ottiene <a href="/docs/it/vs-code#extension-settings">Focus view</a>, che nasconde l'attività dello strumento dietro una riga espandibile per turno; attivatela dal menu dei comandi o con <code>Ctrl+Alt+F</code> (<code>Ctrl+Option+F</code> su Mac)</div>87 <div>L'estensione VS Code ottiene <a href="/docs/it/vs-code#extension-settings">Focus view</a>, che nasconde l'attività degli strumenti dietro una riga espandibile per turno; attivala dal menu dei comandi o con <code>Ctrl+Alt+F</code> (<code>Ctrl+Option+F</code> su Mac)</div>

88 <div>I file di credenziali Sandbox accettano <a href="/docs/it/sandboxing#mask-credential-files"><code>mode: "mask"</code></a> su Linux e WSL2, quindi i comandi in sandbox leggono una copia sentinella mentre il proxy sandbox sostituisce il valore reale all'uscita; il mascheramento delle credenziali guadagna anche opzioni <code>extract</code>, <code>decode</code> consapevole di JWT, e re-firma AWS SigV4</div>88 <div>I file di credenziali della sandbox accettano <a href="/docs/it/sandboxing#mask-credential-files"><code>mode: "mask"</code></a> su Linux e WSL2, quindi i comandi in sandbox leggono una copia sentinella mentre il proxy della sandbox sostituisce il valore reale in uscita; il mascheramento delle credenziali guadagna anche le opzioni <code>extract</code>, <code>decode</code> compatibile con JWT e la nuova firma AWS SigV4</div>

89 <div>I marketplace possono distribuire un plugin come <a href="/docs/it/plugins/marketplace-reference#archive-plugin-source">archivio zip</a> con la nuova fonte <code>archive</code>, scaricato su HTTPS con un pin SHA-256 opzionale, quindi gli install funzionano senza git o npm</div>89 <div>I marketplace possono distribuire un plugin come <a href="/docs/it/plugins/marketplace-reference#archive-plugin-source">archivio zip</a> con la nuova fonte <code>archive</code>, scaricato tramite HTTPS con un pin SHA-256 opzionale, così le installazioni funzionano senza git o npm</div>

90 <div><code>/review</code> è ora un alias di <a href="/docs/it/code-review#review-a-diff-locally"><code>/code-review</code></a>, e <code>/code-review</code> senza livello di sforzo riutilizza il livello che avete digitato per ultimo</div>90 <div><code>/review</code> è ora un alias di <a href="/docs/it/code-review-local"><code>/code-review</code></a>, e <code>/code-review</code> senza livello di sforzo riutilizza l'ultimo livello che hai digitato</div>

91 <div>Una sessione che copiate con <a href="/docs/it/agent-view#copy-the-session-with-%2Ffork"><code>/fork</code></a> ora effettua le sue modifiche al codice in un worktree proprio invece del checkout della sessione originale</div>91 <div>Una sessione che copi con <a href="/docs/it/agent-view#copy-the-session-with-%2Ffork"><code>/fork</code></a> ora effettua le sue modifiche al codice in un worktree proprio invece che nel checkout della sessione originale</div>

92 <div>I plugin che installate da <a href="/docs/it/plugins/install#install-a-plugin"><code>/plugin</code></a> si attivano nella sessione corrente quando è sicuro farlo; il riepilogo dell'installazione segnala <code>Plugin is now active.</code> o vi dice di eseguire <code>/reload-plugins</code></div>92 <div>I plugin che installi da <a href="/docs/it/plugins/install#install-a-plugin"><code>/plugin</code></a> si attivano nella sessione corrente quando è sicuro farlo; il riepilogo dell'installazione segnala <code>Plugin is now active.</code> oppure ti dice di eseguire <code>/reload-plugins</code></div>

93 <div>Le <a href="/docs/it/agent-view#how-file-edits-are-isolated">sessioni in background</a> che hanno modificato il codice in un worktree ora eseguono il commit e il push prima di terminare, aprono una richiesta pull in bozza solo quando l'attività lo richiede, e seguono le istruzioni git nel vostro <code>CLAUDE.md</code></div>93 <div>Le <a href="/docs/it/agent-view#how-file-edits-are-isolated">sessioni in background</a> che hanno modificato il codice in un worktree ora eseguono il commit e il push prima di terminare, aprono una pull request in bozza solo quando l'attività lo richiede e seguono le istruzioni git nel tuo <code>CLAUDE.md</code></div>

94 <div>Il limite di 200 subagent per sessione viene rimosso, quindi le sessioni di lunga durata non rifiutano più i nuovi subagent; i limiti di <a href="/docs/it/sub-agents#concurrent-subagent-limit">concorrenza</a> e profondità si applicano ancora</div>94 <div>Il limite di 200 subagent per sessione viene rimosso, quindi le sessioni di lunga durata non rifiutano più i nuovi subagent; i limiti di <a href="/docs/it/sub-agents#concurrent-subagent-limit">concorrenza</a> e di profondità si applicano ancora</div>

95 <div>Le impostazioni archiviate di un repository non possono più attivare <a href="/docs/it/remote-control#enable-remote-control-for-all-sessions">Remote Control auto-connect</a>; impostate <code>remoteControlAtStartup</code> nelle vostre impostazioni utente o gestite, e le impostazioni di progetto e locali possono solo disattivarla</div>95 <div>Le impostazioni incluse nel repository non possono più attivare <a href="/docs/it/remote-control#enable-remote-control-for-all-sessions">la connessione automatica di Remote Control</a>; imposta invece <code>remoteControlAtStartup</code> nelle tue impostazioni utente o nelle impostazioni gestite, mentre le impostazioni di progetto e locali possono solo disattivarla</div>

96 <div>L'<a href="/docs/it/worktrees#how-claude-code-enforces-isolation">isolamento dei worktree</a> ora blocca non solo le modifiche ai file ma anche i comandi Bash e i reindirizzamenti git che raggiungono il checkout principale, in ogni tipo di sessione e nei subagent della sessione</div>96 <div>L'<a href="/docs/it/worktrees#how-claude-code-enforces-isolation">isolamento con worktree</a> ora blocca non solo le modifiche ai file ma anche i comandi Bash e i reindirizzamenti git che raggiungono il checkout principale, in ogni tipo di sessione e nei subagent della sessione</div>

97 <div>Un comando Bash non può più nascondere parte di sé dai controlli di autorizzazione, e il padding di tabulazione o Unicode invisibile non nasconde più parte di un comando dalla finestra di dialogo di approvazione</div>97 <div>Un comando Bash non può più nascondere parte di sé ai controlli dei permessi, e il padding con tabulazioni o caratteri Unicode invisibili non nasconde più parte di un comando nella finestra di dialogo di approvazione</div>

98 <div>Gli hook auto-allow di PreToolUse non bypassano più le restrizioni degli strumenti nei compiti interni di Claude Code come riepiloghi e compattazione</div>98 <div>Gli hook PreToolUse di approvazione automatica non aggirano più le restrizioni sugli strumenti nelle attività secondarie interne di Claude Code, come riepiloghi e compattazione</div>

99 <div>L'anteprima di ricerca <a href="/docs/it/ultraplan">Ultraplan</a> viene rimossa, incluso il comando <code>/ultraplan</code> e la parola chiave <code>ultraplan</code>; utilizzate invece la modalità plan o Claude Code sul web</div>99 <div>L'anteprima di ricerca <a href="/docs/it/ultraplan">Ultraplan</a> viene rimossa, inclusi il comando <code>/ultraplan</code> e la parola chiave <code>ultraplan</code>; usa invece il plan mode o Claude Code sul web</div>

100 </div>100 </div>

101</div>101</div>

102 102 

Details

4 4 

5# Settimana 33 · 10–14 agosto 20265# Settimana 33 · 10–14 agosto 2026

6 6 

7> Claude Code Desktop continua automaticamente dopo il ripristino di un limite di utilizzo, la modalità fork è attivata per impostazione predefinita e le richieste di merge GitLab e i marketplace si uniscono a GitHub.7> Claude Code Desktop continua automaticamente dopo il ripristino di un limite di utilizzo, la modalità fork è attivata per impostazione predefinita e le merge request GitLab e i marketplace si uniscono a GitHub.

8 8 

9<div className="digest-meta">9<div className="digest-meta">

10 <span>Releases <a href="/docs/en/changelog#2-1-225">v2.1.225 → v2.1.233</a></span>10 <span>Releases <a href="/docs/en/changelog#2-1-225">v2.1.225 → v2.1.233</a></span>


49 49 

50<div className="digest-feature">50<div className="digest-feature">

51 <div className="digest-feature-header">51 <div className="digest-feature-header">

52 <span className="digest-feature-title">Richieste di merge GitLab e marketplace</span>52 <span className="digest-feature-title">Merge request GitLab e marketplace</span>

53 <span className="digest-feature-pill">v2.1.232</span>53 <span className="digest-feature-pill">v2.1.232</span>

54 </div>54 </div>

55 55 

56 <p className="digest-feature-lede">I marketplace dei plugin clonano gli URL <code>gitlab.com</code> bare, inclusi i sottogruppi annidati. Su v2.1.233 o versioni successive, passa un URL di richiesta di merge GitLab a <code>--worktree</code> per creare un ramo da esso, e la visualizzazione <code>claude agents</code> etichetta le sessioni collegate a una richiesta di merge come <code>!N</code>. Claude Code inoltre oscura le famiglie di token GitLab come <code>glpat-</code> e <code>glrt-</code>, e protegge l'archivio di configurazione della CLI <code>glab</code> nello stesso modo in cui protegge <code>gh</code>.</p>56 <p className="digest-feature-lede">I marketplace dei plugin clonano gli URL <code>gitlab.com</code> bare, inclusi i sottogruppi annidati. Su v2.1.233 o versioni successive, passa un URL di merge request GitLab a `--worktree` per creare un branch a partire da essa, e la visualizzazione <code>claude agents</code> etichetta le sessioni collegate a una merge request come <code>!N</code>. Claude Code inoltre oscura le famiglie di token GitLab come <code>glpat-</code> e <code>glrt-</code>, e protegge l'archivio di configurazione della CLI <code>glab</code> nello stesso modo in cui protegge <code>gh</code>.</p>

57 57 

58 <p className="digest-feature-try">Avvia una sessione in un worktree creato da un ramo da una richiesta di merge:</p>58 <p className="digest-feature-try">Avvia una sessione in un worktree con un branch creato a partire da una merge request:</p>

59 59 

60 ```bash terminal theme={null}60 ```bash terminal theme={null}

61 claude --worktree https://gitlab.com/group/project/-/merge_requests/4261 claude --worktree https://gitlab.com/group/project/-/merge_requests/42

62 ```62 ```

63 63 

64 <p className="digest-feature-try">Quando <code>origin</code> è su gitlab.com, Claude Code recupera <code>merge-requests/42/head</code> e apre la sessione su quel ramo nel suo worktree.</p>64 <p className="digest-feature-try">Quando <code>origin</code> è su gitlab.com, Claude Code recupera <code>merge-requests/42/head</code> e apre la sessione su quel branch nel suo worktree.</p>

65 65 

66 <a className="digest-feature-link" href="/docs/it/worktrees#branch-from-a-pull-request">Crea un ramo worktree da una richiesta di pull o merge</a>66 <a className="digest-feature-link" href="/docs/it/worktrees#branch-from-a-pull-request">Crea un worktree a partire da una pull request o merge request</a>

67</div>67</div>

68 68 

69<div className="digest-wins">69<div className="digest-wins">

70 <p className="digest-wins-title">Altri vantaggi</p>70 <p className="digest-wins-title">Altri vantaggi</p>

71 71 

72 <div className="digest-wins-grid">72 <div className="digest-wins-grid">

73 <div>Digita <code>@</code> nel prompt per <a href="/docs/it/cross-session-messaging#message-another-session">menzionare un'altra sessione Claude</a> per nome, e Claude la messaggerizza direttamente con <code>SendMessage</code>; un nome semplice che corrisponde esattamente a una sessione live ora viene consegnato senza un passaggio di conferma</div>73 <div>Digita <code>@</code> nel prompt per <a href="/docs/it/cross-session-messaging#message-another-session">menzionare un'altra sessione Claude</a> per nome, e Claude le invia un messaggio direttamente con <code>SendMessage</code>; un nome semplice che corrisponde esattamente a una sessione live ora viene consegnato senza un passaggio di conferma</div>

74 <div>Le sessioni interattive su una macchina mantengono <a href="/docs/it/cross-session-messaging#see-which-sessions-claude-can-reach">nomi univoci</a>: se avvii o rinomini una sessione con un nome che un'altra sessione live già utilizza, Claude Code ti dà una variante <code>name-word-word</code> e te lo comunica</div>74 <div>Le sessioni interattive su una macchina mantengono <a href="/docs/it/cross-session-messaging#see-which-sessions-claude-can-reach">nomi univoci</a>: se avvii o rinomini una sessione con un nome che un'altra sessione live già utilizza, Claude Code ti dà una variante <code>name-word-word</code> e te lo comunica</div>

75 <div>I marketplace dei plugin accettano <a href="/docs/it/plugins/marketplace-reference#command-plugin-source">fonti <code>command</code></a>: un comando locale stampa la directory del plugin, che Claude Code ri-risolve ogni sessione e applica senza un riavvio</div>75 <div>I marketplace dei plugin accettano <a href="/docs/it/plugins/marketplace-reference#command-plugin-source">fonti <code>command</code></a>: un comando locale stampa la directory del plugin, che Claude Code ri-risolve ogni sessione e applica senza un riavvio</div>

76 <div>Su Linux e WSL, imposta <a href="/docs/it/tools-reference#memory-limit-on-linux-and-wsl"><code>CLAUDE\_CODE\_TOOL\_MEMORY\_LIMIT</code></a> a una dimensione come <code>4G</code> per limitare la memoria che i comandi dello strumento Bash e PowerShell possono utilizzare</div>76 <div>Su Linux e WSL, imposta <a href="/docs/it/tools-reference#memory-limit-on-linux-and-wsl"><code>CLAUDE\_CODE\_TOOL\_MEMORY\_LIMIT</code></a> a una dimensione come <code>4G</code> per limitare la memoria che i comandi dello strumento Bash e PowerShell possono utilizzare</div>

77 <div>Gli strumenti di tracciamento delle attività, come <code>TaskCreate</code>, <code>TaskUpdate</code> e <code>TodoWrite</code>, sono <a href="/docs/it/tools-reference#task-tool-availability">non più disponibili su Opus 4.8, Sonnet 5, Fable 5, Mythos 5 e modelli successivi in quelle famiglie</a>; imposta <code>CLAUDE\_CODE\_ENABLE\_TODO\_TOOLS=1</code> per riattivarli</div>77 <div>Gli strumenti di tracciamento delle attività, come <code>TaskCreate</code>, <code>TaskUpdate</code> e <code>TodoWrite</code>, sono <a href="/docs/it/tools-reference#task-tool-availability">non più disponibili su Opus 4.8, Sonnet 5, Fable 5, Mythos 5 e modelli successivi in quelle famiglie</a>; imposta <code>CLAUDE\_CODE\_ENABLE\_TODO\_TOOLS=1</code> per riattivarli</div>

78 <div><a href="/docs/it/code-review#review-a-diff-locally"><code>/code-review</code></a> a livello di sforzo alto, xhigh e max ora viene eseguito in un agente di background come gli altri livelli</div>78 <div><a href="/docs/it/code-review-local"><code>/code-review</code></a> a livello di sforzo alto, xhigh e max ora viene eseguito in un agente di background come gli altri livelli</div>

79 <div><a href="/docs/it/plugins/install#install-a-plugin"><code>/plugin install plugin\@marketplace</code></a> aggiorna prima il marketplace, quindi i plugin appena pubblicati si installano senza un aggiornamento manuale del marketplace</div>79 <div><a href="/docs/it/plugins/install#install-a-plugin"><code>/plugin install plugin\@marketplace</code></a> aggiorna prima il marketplace, quindi i plugin appena pubblicati si installano senza un aggiornamento manuale del marketplace</div>

80 <div>Le impostazioni accettano <a href="/docs/it/settings-reference#marketplace-key-aliases"><code>additionalMarketplaces</code> e <code>allowedMarketplaces</code></a> come alias per <code>extraKnownMarketplaces</code> e <code>strictKnownMarketplaces</code></div>80 <div>Le impostazioni accettano <a href="/docs/it/settings-reference#marketplace-key-aliases"><code>additionalMarketplaces</code> e <code>allowedMarketplaces</code></a> come alias per <code>extraKnownMarketplaces</code> e <code>strictKnownMarketplaces</code></div>

81 <div>Su modelli più recenti, Claude può <a href="/docs/it/tools-reference#write-tool-behavior">sovrascrivere un file esistente con lo strumento Write</a> senza leggerlo prima in questa sessione, corrispondendo alle regole dello strumento Edit; i modelli più vecchi richiedono la lettura</div>81 <div>Su modelli più recenti, Claude può <a href="/docs/it/tools-reference#write-tool-behavior">sovrascrivere un file esistente con lo strumento Write</a> senza leggerlo prima in questa sessione, corrispondendo alle regole dello strumento Edit; i modelli più vecchi richiedono la lettura</div>

workflows.md +4 −4

Details

205 205 

206In `claude -p` e nell'Agent SDK, Claude Code non mostra mai questo prompt. Esegue la chiamata dello strumento Workflow attraverso la stessa [valutazione delle autorizzazioni](/docs/it/agent-sdk/permissions#how-permissions-are-evaluated) del resto della sessione, quindi le regole di negazione, le regole di richiesta e la modalità `dontAsk` si applicano al lancio come si applicano a ogni chiamata agli strumenti. Per consentire al flusso di lavoro di iniziare in queste esecuzioni, usa uno di questi:206In `claude -p` e nell'Agent SDK, Claude Code non mostra mai questo prompt. Esegue la chiamata dello strumento Workflow attraverso la stessa [valutazione delle autorizzazioni](/docs/it/agent-sdk/permissions#how-permissions-are-evaluated) del resto della sessione, quindi le regole di negazione, le regole di richiesta e la modalità `dontAsk` si applicano al lancio come si applicano a ogni chiamata agli strumenti. Per consentire al flusso di lavoro di iniziare in queste esecuzioni, usa uno di questi:

207 207 

208* **Regola di autorizzazione**: `Workflow` nelle tue regole di autorizzazione approva ogni flusso di lavoro, e `Workflow(<name>)` approva un flusso di lavoro salvato per nome.208* **Regola di permesso**: aggiungi `Workflow` alle tue regole allow per approvare ogni workflow, oppure `Workflow(<name>)` per approvare un workflow salvato per nome.

209* **Modalità di autorizzazione automatica**: il [classificatore](/docs/it/permission-modes#eliminate-prompts-with-auto-mode) esamina la chiamata e può approvarla.209* **Modalità di permesso auto**: esegui in [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode), dove il classificatore esamina la chiamata e può approvarla.

210* **Modalità bypass permissions**: Claude Code approva la chiamata.210* **Modalità bypass permissions**: esegui in modalità bypass permissions.

211* **Un hook**: un hook [`PreToolUse`](/docs/it/hooks#pretooluse) che consente la chiamata la approva.211* **Un hook**: restituisci `"allow"` per la chiamata da un hook [`PreToolUse`](/docs/it/hooks#pretooluse). In [plan mode](/docs/it/permission-modes#analyze-before-you-edit-with-plan-mode), il workflow non si avvia con la sola approvazione dell'hook, quindi in quel caso usa invece una regola di permesso o l'approvazione del tuo host.

212* **Il tuo host**: un [`--permission-prompt-tool`](/docs/it/cli-reference#cli-flags) o, con l'Agent SDK, un callback [`canUseTool`](/docs/it/agent-sdk/permissions) la approva.212* **Il tuo host**: un [`--permission-prompt-tool`](/docs/it/cli-reference#cli-flags) o, con l'Agent SDK, un callback [`canUseTool`](/docs/it/agent-sdk/permissions) la approva.

213 213 

214Nell'app Desktop, una scheda di approvazione mostra il nome del flusso di lavoro, l'elenco delle fasi e un avvertimento di utilizzo dei token, con azioni **Una volta**, **Sempre** e **Nega**. La vista di progresso appare nel riquadro laterale Attività in background.214Nell'app Desktop, una scheda di approvazione mostra il nome del flusso di lavoro, l'elenco delle fasi e un avvertimento di utilizzo dei token, con azioni **Una volta**, **Sempre** e **Nega**. La vista di progresso appare nel riquadro laterale Attività in background.