SpyBara
Go Premium

Documentation 2026-10-13 23:57 UTC to 2026-10-14 22:58 UTC

73 files changed +1,306 −658. 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

14 Attiva la modalità lettore di schermo14 Attiva la modalità lettore di schermo

15</h2>15</h2>

16 16 

17Scegliete il metodo che corrisponde a quanto spesso utilizzate un lettore di schermo:17Scegli il metodo che corrisponde a quanto spesso utilizzi un lettore di schermo:

18 18 

19* Per una sessione: eseguite `claude --ax-screen-reader`.19* Per una sessione: esegui `claude --ax-screen-reader`.

20* Per sessioni avviate da una shell: impostate la variabile di ambiente `CLAUDE_AX_SCREEN_READER` su `1`. In Bash o Zsh, eseguite `export CLAUDE_AX_SCREEN_READER=1`. In PowerShell, eseguite `$env:CLAUDE_AX_SCREEN_READER = "1"`. Aggiungete quella riga al vostro profilo shell per mantenerla per le shell future.20* Per sessioni avviate da una shell: imposta la variabile d'ambiente `CLAUDE_AX_SCREEN_READER` su `1`. In Bash o Zsh, esegui `export CLAUDE_AX_SCREEN_READER=1`. In PowerShell, esegui `$env:CLAUDE_AX_SCREEN_READER = "1"`. Aggiungi quella riga al tuo profilo shell per mantenerla per le shell future.

21* Per ogni sessione sulla macchina: aggiungete `"axScreenReader": true` al vostro [file di impostazioni](/docs/it/settings) dell'utente. L'impostazione si applica in qualsiasi terminale, incluso il terminale integrato di VS Code.21* Per ogni sessione sulla macchina: aggiungi `"axScreenReader": true` al tuo [file di impostazioni](/docs/it/settings) dell'utente. L'impostazione si applica in qualsiasi terminale, incluso il terminale integrato di VS Code.

22 22 

23Se combinate i metodi, Claude Code applica il flag [`--ax-screen-reader`](/docs/it/cli-reference#cli-flags) sulla variabile di ambiente [`CLAUDE_AX_SCREEN_READER`](/docs/it/env-vars#variables), e la variabile sull'impostazione [`axScreenReader`](/docs/it/settings-reference#axscreenreader).23Se combini i metodi, Claude Code applica il flag [`--ax-screen-reader`](/docs/it/cli-reference#cli-flags) sulla variabile d'ambiente [`CLAUDE_AX_SCREEN_READER`](/docs/it/env-vars#variables), e la variabile sull'impostazione [`axScreenReader`](/docs/it/settings-reference#axscreenreader).

24 24 

25Se utilizzate Claude Code su SSH, impostate la variabile di ambiente o l'impostazione sulla macchina remota dove Claude Code viene eseguito.25Se utilizzi Claude Code su SSH, imposta la variabile d'ambiente o l'impostazione sulla macchina remota dove Claude Code viene eseguito.

26 26 

27La prima riga che Claude Code stampa conferma la modalità: `[Screen Reader Mode: on via flag]`, `[Screen Reader Mode: on via env]` o `[Screen Reader Mode: on via settings]`.27La prima riga che Claude Code stampa conferma la modalità: `[Screen Reader Mode: on via flag]`, `[Screen Reader Mode: on via env]` o `[Screen Reader Mode: on via settings]`.

28 28 

Details

855 855 

856Lo stato di un server remoto può anche cambiare dopo che segnala `"connected"`. Quando la connessione ad esso si interrompe durante la sessione, Claude Code sposta il server di nuovo a `"pending"` mentre [si riconnette](/docs/it/mcp#automatic-reconnection). Una successiva chiamata a `mcpServerStatus()` in TypeScript, o [`ClaudeSDKClient.get_mcp_status()`](/docs/it/agent-sdk/python#methods) in Python, può quindi segnalare `"pending"` per un server che hai visto connesso in precedenza, senza alcun cambiamento di configurazione da parte tua.856Lo stato di un server remoto può anche cambiare dopo che segnala `"connected"`. Quando la connessione ad esso si interrompe durante la sessione, Claude Code sposta il server di nuovo a `"pending"` mentre [si riconnette](/docs/it/mcp#automatic-reconnection). Una successiva chiamata a `mcpServerStatus()` in TypeScript, o [`ClaudeSDKClient.get_mcp_status()`](/docs/it/agent-sdk/python#methods) in Python, può quindi segnalare `"pending"` per un server che hai visto connesso in precedenza, senza alcun cambiamento di configurazione da parte tua.

857 857 

858Dopo che cinque tentativi di riconnessione falliscono, il server segnala `"failed"`, o `"needs-auth"` quando ha bisogno di essere autorizzato di nuovo. Per riprovare manualmente, chiama [`reconnectMcpServer()`](/docs/it/agent-sdk/typescript#methods) in TypeScript o [`ClaudeSDKClient.reconnect_mcp_server()`](/docs/it/agent-sdk/python#methods) in Python.858Dopo che cinque tentativi di riconnessione falliscono, il server segnala `"failed"`, o `"needs-auth"` quando ha bisogno di essere autorizzato di nuovo. Un server HTTP o SSE in stato `"failed"` può comunque tornare a `"connected"` senza alcuna chiamata da parte tua, perché Claude Code continua a [riprovare in background](/docs/it/mcp#mid-session-drops-of-a-remote-server) dopo un errore transitorio. Per riprovare manualmente, chiama [`reconnectMcpServer()`](/docs/it/agent-sdk/typescript#methods) in TypeScript o [`ClaudeSDKClient.reconnect_mcp_server()`](/docs/it/agent-sdk/python#methods) in Python.

859 859 

860<h2 id="troubleshooting">860<h2 id="troubleshooting">

861 Troubleshooting861 Troubleshooting

Details

424 Contesto che Claude Code aggiunge al di fuori del prompt di sistema424 Contesto che Claude Code aggiunge al di fuori del prompt di sistema

425</h2>425</h2>

426 426 

427I promemoria di sistema sono messaggi che Claude Code aggiunge alla conversazione durante una sessione per fornire a Claude il contesto, come il contenuto dei vostri file CLAUDE.md o una nota che un file è cambiato su disco. Claude Code li invia nella conversazione, non nel prompt di sistema, quindi raggiungono Claude indipendentemente dal fatto che utilizziate il preset `claude_code` o passiate una vostra stringa come `systemPrompt`.427I promemoria di sistema sono messaggi che Claude Code aggiunge alla conversazione durante una sessione per fornire a Claude il contesto, come il contenuto dei tuoi file CLAUDE.md o una nota che un file è cambiato su disco. Claude Code li invia nella conversazione, non nel prompt di sistema, quindi la maggior parte raggiunge Claude indipendentemente dal fatto che tu utilizzi il preset `claude_code` o passi una tua stringa come `systemPrompt`.

428 428 

429Questa sezione copre i [promemoria più probabili a cambiare il comportamento del vostro agente](#reminders-claude-code-adds-to-the-conversation), come [disattivare quelli che il vostro agente sostituisce](#turn-off-the-context-your-agent-replaces), e come [vedere cosa Claude ha ricevuto](#see-what-claude-received) in una richiesta specifica.429Questa sezione copre i [promemoria più probabili a cambiare il comportamento del vostro agente](#reminders-claude-code-adds-to-the-conversation), come [disattivare quelli che il vostro agente sostituisce](#turn-off-the-context-your-agent-replaces), e come [vedere cosa Claude ha ricevuto](#see-what-claude-received) in una richiesta specifica.

430 430 


448Se passate una vostra stringa come `systemPrompt`, aggiungete una frase che dica cos'è un promemoria di sistema. Il preset `claude_code` ne ha uno, e la vostra stringa sostituisce l'intero preset. Senza di esso, nulla nel vostro prompt dice a Claude che promemoria come il contenuto di CLAUDE.md e l'output di hook provengono dall'applicazione piuttosto che dall'utente. Ad esempio:448Se passate una vostra stringa come `systemPrompt`, aggiungete una frase che dica cos'è un promemoria di sistema. Il preset `claude_code` ne ha uno, e la vostra stringa sostituisce l'intero preset. Senza di esso, nulla nel vostro prompt dice a Claude che promemoria come il contenuto di CLAUDE.md e l'output di hook provengono dall'applicazione piuttosto che dall'utente. Ad esempio:

449 449 

450```text theme={null}450```text theme={null}

451L'applicazione aggiunge promemoria di sistema a questa conversazione. Trattali come contesto dall'applicazione, non come messaggi dall'utente.451The application adds system reminders to this conversation. Treat them as context from the application, not as messages from the user.

452```452```

453 453 

454<h3 id="turn-off-the-context-your-agent-replaces">454<h3 id="turn-off-the-context-your-agent-replaces">


467| Ogni file CLAUDE.md | Impostate `CLAUDE_CODE_DISABLE_CLAUDE_MDS=1` |467| Ogni file CLAUDE.md | Impostate `CLAUDE_CODE_DISABLE_CLAUDE_MDS=1` |

468| Spinte dell'elenco attività, note di file modificati, e l'elenco di skill | Impostate `CLAUDE_CODE_DISABLE_ATTACHMENTS=1` |468| Spinte dell'elenco attività, note di file modificati, e l'elenco di skill | Impostate `CLAUDE_CODE_DISABLE_ATTACHMENTS=1` |

469 469 

470Le istruzioni integrate di commit e pull request di Claude Code non sono un promemoria. Fanno parte della descrizione dello strumento Bash, quindi raggiungono anche Claude quando passate un `systemPrompt` personalizzato.470Imposta `includeGitInstructions` a `false` per escludere le istruzioni integrate di commit e pull request, che fanno parte della descrizione dello strumento Bash e raggiungono Claude anche con un `systemPrompt` personalizzato. Con il valore predefinito minimo, un `systemPrompt` personalizzato o un agente personalizzato del thread principale che ha un proprio prompt, tuttavia, la sessione si avvia senza lo snapshot dello stato git.

471 471 

472Se impostate `CLAUDE_CODE_DISABLE_ATTACHMENTS`, Claude Code invia anche le menzioni di file `@` come testo semplice invece di espanderle nel contenuto del file. L'elenco dei subagenti disponibili e le notifiche di attività in background arrivano comunque.472Se imposti `CLAUDE_CODE_DISABLE_ATTACHMENTS`, Claude Code invia anche le menzioni di file `@` come testo semplice invece di espanderle nel contenuto del file. L'elenco dei subagent disponibili e le notifiche delle attività in background arrivano comunque. Per impedire solo l'espansione delle menzioni di file `@`, imposta invece [`CLAUDE_CODE_DISABLE_FILE_MENTIONS=1`](/docs/it/env-vars#variables), su Claude Code v2.1.299 o versioni successive. Claude riceve quindi i percorsi menzionati insieme a una nota per leggerli con i suoi strumenti per i file.

473 473 

474L'esempio seguente è per un agente che porta le sue regole di commit in `append`. Imposta entrambe le chiavi `attribution` a stringhe vuote per rimuovere il trailer e il footer, e disattiva `includeGitInstructions` in modo che le istruzioni del flusso di lavoro di commit di Claude Code non competano con le vostre:474L'esempio seguente è per un agente che porta le sue regole di commit in `append`. Imposta entrambe le chiavi `attribution` a stringhe vuote per rimuovere il trailer e il footer, e disattiva `includeGitInstructions` in modo che le istruzioni del flusso di lavoro di commit di Claude Code non competano con le vostre:

475 475 

Details

164| `mcpServers` | `(string \| object)[]` | No | Server MCP disponibili per questo agente, per nome o configurazione inline |164| `mcpServers` | `(string \| object)[]` | No | Server MCP disponibili per questo agente, per nome o configurazione inline |

165| `initialPrompt` | `string` | No | Inviato automaticamente come primo turno utente quando questo agente viene eseguito come agente del thread principale. Ignorato quando l'agente viene invocato come subagent |165| `initialPrompt` | `string` | No | Inviato automaticamente come primo turno utente quando questo agente viene eseguito come agente del thread principale. Ignorato quando l'agente viene invocato come subagent |

166| `maxTurns` | `number` | No | Numero massimo di turni agentici prima che l'agente si fermi. Quando l'agente raggiunge il limite, Claude Code restituisce il suo output contrassegnato come parziale, e puoi [riprendere l'agente](#resume-subagents) per continuare. Il contrassegno parziale richiede Claude Code v2.1.246 o successivo |166| `maxTurns` | `number` | No | Numero massimo di turni agentici prima che l'agente si fermi. Quando l'agente raggiunge il limite, Claude Code restituisce il suo output contrassegnato come parziale, e puoi [riprendere l'agente](#resume-subagents) per continuare. Il contrassegno parziale richiede Claude Code v2.1.246 o successivo |

167| `autoCompactWindow` | `number` | No | Riduce la [finestra di compattazione automatica](/docs/it/sub-agents#subagent-auto-compact-window) per questo agente quando viene eseguito come subagent, a un numero di token compreso tra `100000` e `1000000`. Richiede TypeScript Agent SDK v0.3.296 o successivo. Il Python SDK [`AgentDefinition`](/docs/it/agent-sdk/python#agentdefinition) non ha questo campo |

167| `background` | `boolean` | No | Esegui questo agente come attività di background non bloccante quando invocato |168| `background` | `boolean` | No | Esegui questo agente come attività di background non bloccante quando invocato |

168| `omitClaudeMd` | `boolean` | No | Esegui questo agente senza i file CLAUDE.md dell'utente, del progetto e locali quando viene eseguito come subagent; i file di policy gestiti vengono comunque caricati. Ignorato quando l'agente viene eseguito come agente del thread principale. Richiede TypeScript Agent SDK v0.3.271 o successivo. Il Python SDK [`AgentDefinition`](/docs/it/agent-sdk/python#agentdefinition) non ha questo campo |169| `omitClaudeMd` | `boolean` | No | Esclude i file CLAUDE.md dell'utente, del progetto e locali dal contesto iniziale di questo agente; i file di policy gestiti vengono comunque caricati. Ignorato quando l'agente viene eseguito come agente del thread principale. Richiede TypeScript Agent SDK v0.3.271 o successivo. Il Python SDK [`AgentDefinition`](/docs/it/agent-sdk/python#agentdefinition) non ha questo campo |

169| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max' \| number` | No | Livello di sforzo di ragionamento per questo agente |170| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max' \| number` | No | Livello di sforzo di ragionamento per questo agente |

170| `permissionMode` | `PermissionMode` | No | Modalità di permesso per l'esecuzione dello strumento all'interno di questo agente. Le [regole di ereditarietà dei subagent](/docs/it/agent-sdk/permissions#available-modes) decidono quando si applica |171| `permissionMode` | `PermissionMode` | No | Modalità di permesso per l'esecuzione dello strumento all'interno di questo agente. Le [regole di ereditarietà dei subagent](/docs/it/agent-sdk/permissions#available-modes) decidono quando si applica |

171 172 


200| Il subagent riceve | Il subagent non riceve |201| Il subagent riceve | Il subagent non riceve |

201| :- | :- |202| :- | :- |

202| Il suo prompt di sistema (`AgentDefinition.prompt`) e il prompt dello strumento Agent | La cronologia della conversazione padre o i risultati degli strumenti |203| Il suo prompt di sistema (`AgentDefinition.prompt`) e il prompt dello strumento Agent | La cronologia della conversazione padre o i risultati degli strumenti |

203| Project CLAUDE.md (caricato tramite [`settingSources`](/docs/it/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources)), a meno che l'agente non imposti [`omitClaudeMd`](#agentdefinition-configuration) | Contenuto di skill precaricato, a meno che non sia elencato in `AgentDefinition.skills` |204| Il CLAUDE.md del progetto (caricato tramite [`settingSources`](/docs/it/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources)). Un agente che imposta [`omitClaudeMd`](#agentdefinition-configuration) inizia senza di esso | Contenuto di skill precaricato, a meno che non sia elencato in `AgentDefinition.skills` |

204| Definizioni degli strumenti (ereditate dal padre o il sottoinsieme in `tools`, [filtrate per esecuzioni in background](/docs/it/sub-agents#available-tools)) | Il prompt di sistema del padre |205| Definizioni degli strumenti (ereditate dal padre o il sottoinsieme in `tools`, [filtrate per esecuzioni in background](/docs/it/sub-agents#available-tools)) | Il prompt di sistema del padre |

205 206 

206<Note>207<Note>

Details

908 | "malformed"908 | "malformed"

909 | "not_honoured"909 | "not_honoured"

910 >;910 >;

911 claude_code_version?: string;

911};912};

912```913```

913 914 


922 923 

923Il campo `sdkMcpServerManifests` della richiesta e il campo `sdk_mcp_manifests_parked` della risposta riguardano i [server MCP SDK](/docs/it/agent-sdk/custom-tools) in-process creati con [`createSdkMcpServer()`](#createsdkmcpserver). La tua applicazione non imposta né legge nessuno dei due campi.924Il campo `sdkMcpServerManifests` della richiesta e il campo `sdk_mcp_manifests_parked` della risposta riguardano i [server MCP SDK](/docs/it/agent-sdk/custom-tools) in-process creati con [`createSdkMcpServer()`](#createsdkmcpserver). La tua applicazione non imposta né legge nessuno dei due campi.

924 925 

926`claude_code_version` è la versione di Claude Code del processo che esegue i turni della sessione. È lo stesso valore contenuto nel messaggio init [`SDKSystemMessage`](#sdksystemmessage), quindi puoi leggere la versione della CLI prima del primo turno.

927 

928* Il campo richiede Agent SDK v0.3.296 o successiva, che include Claude Code v2.1.296.

929* Se il campo è `undefined` e hai impostato `pathToClaudeCodeExecutable`, puntalo a Claude Code v2.1.296 o successiva.

930 

925La risposta riporta sempre `fast_mode_state` e, quando qualcosa blocca la [modalità veloce](/docs/it/fast-mode), `fast_mode_disabled_reason` contiene accanto ad esso il codice del motivo, così puoi spiegare lo stato bloccato invece di ricavare di nuovo la disponibilità. Entrambi i comportamenti richiedono Claude Code v2.1.219 o successivo. Prima della v2.1.219, la risposta ometteva `fast_mode_state` quando la modalità veloce non era disponibile e non conteneva mai un motivo. Per i codici dei motivi e il loro significato, consulta [`fast_mode_disabled_reason`](#sdkresultmessage) nel messaggio di risultato.931La risposta riporta sempre `fast_mode_state` e, quando qualcosa blocca la [modalità veloce](/docs/it/fast-mode), `fast_mode_disabled_reason` contiene accanto ad esso il codice del motivo, così puoi spiegare lo stato bloccato invece di ricavare di nuovo la disponibilità. Entrambi i comportamenti richiedono Claude Code v2.1.219 o successivo. Prima della v2.1.219, la risposta ometteva `fast_mode_state` quando la modalità veloce non era disponibile e non conteneva mai un motivo. Per i codici dei motivi e il loro significato, consulta [`fast_mode_disabled_reason`](#sdkresultmessage) nel messaggio di risultato.

926 932 

927Il wrapper della risposta di controllo per un `initialize` riuscito contiene anche un array `pending_permission_requests`. Il campo si trova sul wrapper della risposta stesso, non nel payload `SDKControlInitializeResponse` riportato sopra. Ogni voce è un messaggio `control_request` completo, con la stessa forma `{ type: "control_request", request_id, request }` che la sessione trasmette in streaming per le richieste di permesso durante l'esecuzione.933Il wrapper della risposta di controllo per un `initialize` riuscito contiene anche un array `pending_permission_requests`. Il campo si trova sul wrapper della risposta stesso, non nel payload `SDKControlInitializeResponse` riportato sopra. Ogni voce è un messaggio `control_request` completo, con la stessa forma `{ type: "control_request", request_id, request }` che la sessione trasmette in streaming per le richieste di permesso durante l'esecuzione.


1218 skills?: string[];1224 skills?: string[];

1219 initialPrompt?: string;1225 initialPrompt?: string;

1220 maxTurns?: number;1226 maxTurns?: number;

1227 autoCompactWindow?: number;

1221 background?: boolean;1228 background?: boolean;

1222 omitClaudeMd?: boolean;1229 omitClaudeMd?: boolean;

1223 memory?: "user" | "project" | "local";1230 memory?: "user" | "project" | "local";


1238| `skills` | No | Array dei nomi delle skill da precaricare nel contesto dell'agente |1245| `skills` | No | Array dei nomi delle skill da precaricare nel contesto dell'agente |

1239| `initialPrompt` | No | Inviato automaticamente come primo turno utente quando questo agente viene eseguito come agente del thread principale |1246| `initialPrompt` | No | Inviato automaticamente come primo turno utente quando questo agente viene eseguito come agente del thread principale |

1240| `maxTurns` | No | Numero massimo di turni agentici (round trip API) prima dell'arresto |1247| `maxTurns` | No | Numero massimo di turni agentici (round trip API) prima dell'arresto |

1248| `autoCompactWindow` | No | Riduci la [finestra di compattazione automatica](/docs/it/sub-agents#subagent-auto-compact-window) per questo agente quando viene eseguito come subagent, a un numero di token compreso tra `100000` e `1000000`. Richiede TypeScript Agent SDK v0.3.296 o successive |

1241| `background` | No | Esegue questo agente come attività in background non bloccante quando viene invocato |1249| `background` | No | Esegue questo agente come attività in background non bloccante quando viene invocato |

1242| `omitClaudeMd` | No | Esegue questo agente senza i file CLAUDE.md utente, di progetto e locali quando viene eseguito come subagent; i file di policy gestiti vengono comunque caricati. Usalo per gli agenti che prendono tutto ciò di cui hanno bisogno dal prompt dello strumento Agent. Ignorato quando questo agente viene eseguito come agente del thread principale. Richiede TypeScript Agent SDK v0.3.271 o successivo |1250| `omitClaudeMd` | No | Esclude i file CLAUDE.md utente, di progetto e locali dal contesto iniziale di questo agente; i file di policy gestiti vengono comunque caricati. Usalo per agenti che ricevono tutto ciò di cui hanno bisogno dal prompt dello strumento Agent. Ignorato quando questo agente viene eseguito come agente del thread principale. Richiede TypeScript Agent SDK v0.3.271 o successive |

1243| `memory` | No | Fonte di memoria per questo agente: `'user'`, `'project'` o `'local'` |1251| `memory` | No | Fonte di memoria per questo agente: `'user'`, `'project'` o `'local'` |

1244| `effort` | No | Livello di sforzo di ragionamento per questo agente. Accetta un livello con nome o un numero intero |1252| `effort` | No | Livello di sforzo di ragionamento per questo agente. Accetta un livello con nome o un numero intero |

1245| `permissionMode` | No | Modalità di permesso per l'esecuzione degli strumenti all'interno di questo agente. Le [regole di ereditarietà dei subagent](/docs/it/agent-sdk/permissions#available-modes) stabiliscono quando si applica. Consulta [`PermissionMode`](#permissionmode) |1253| `permissionMode` | No | Modalità di permesso per l'esecuzione degli strumenti all'interno di questo agente. Le [regole di ereditarietà dei subagent](/docs/it/agent-sdk/permissions#available-modes) stabiliscono quando si applica. Consulta [`PermissionMode`](#permissionmode) |


2434* `fromMode`: la classe di permesso della sessione mittente, `bypass` o `prompting`, dichiarata da un host che inoltra un messaggio peer tra le tue sessioni, come l'[app desktop](/docs/it/desktop#work-across-sessions). Claude Code lo legge nella sessione ricevente quando applica i [controlli in entrata](/docs/it/cross-session-messaging#control-inbound-messages). Richiede Agent SDK v0.3.234 o successivo.2442* `fromMode`: la classe di permesso della sessione mittente, `bypass` o `prompting`, dichiarata da un host che inoltra un messaggio peer tra le tue sessioni, come l'[app desktop](/docs/it/desktop#work-across-sessions). Claude Code lo legge nella sessione ricevente quando applica i [controlli in entrata](/docs/it/cross-session-messaging#control-inbound-messages). Richiede Agent SDK v0.3.234 o successivo.

2435* `senderTaskId`: l'ID attività del collega. Assente per un peer tra sessioni.2443* `senderTaskId`: l'ID attività del collega. Assente per un peer tra sessioni.

2436* `name`: il nome visualizzato del mittente, normalizzato da Claude Code: rimuove i code point Unicode di controllo, di formato, surrogati e separatori di riga o paragrafo, quindi elimina gli spazi iniziali e finali e lo tronca a 64 code point con un'ellissi. Richiede Claude Code v2.1.205 o successivo.2444* `name`: il nome visualizzato del mittente, normalizzato da Claude Code: rimuove i code point Unicode di controllo, di formato, surrogati e separatori di riga o paragrafo, quindi elimina gli spazi iniziali e finali e lo tronca a 64 code point con un'ellissi. Richiede Claude Code v2.1.205 o successivo.

2437* `body`: il corpo del messaggio decodificato senza l'involucro peer, identico byte per byte a ciò che vede il modello. Sempre presente per il messaggio di un collega; per un peer tra sessioni, presente solo quando il turno è esattamente un involucro peer formato da Claude Code. Visualizza `name` e `body` invece di analizzare di nuovo il testo del messaggio. Richiede Claude Code v2.1.205 o successivo.2445* `body`: il corpo del messaggio decodificato, privato dell'involucro peer, identico byte per byte a ciò che vede il modello. Presente per un singolo messaggio di un teammate, assente quando più messaggi vengono uniti; per un peer cross-session, presente solo quando il turno è esattamente un involucro peer formato da Claude Code. Visualizza `name` e `body` invece di analizzare di nuovo il testo del messaggio. Prima della v2.1.299, i messaggi uniti mantenevano il `body` del primo messaggio. Richiede Claude Code v2.1.205 o successiva.

2438* `fromSession`: l'ID di sessione del mittente apribile dall'host, impostato dall'host del mittente in modo che la tua interfaccia possa rimandare alla sessione mittente. Come `from`, è dichiarato dal mittente: usalo solo come destinazione di navigazione e non considerarlo una prova dell'identità del mittente. Richiede Claude Code v2.1.216 o successivo.2446* `fromSession`: l'ID di sessione del mittente apribile dall'host, impostato dall'host del mittente in modo che la tua interfaccia possa rimandare alla sessione mittente. Come `from`, è dichiarato dal mittente: usalo solo come destinazione di navigazione e non considerarlo una prova dell'identità del mittente. Richiede Claude Code v2.1.216 o successivo.

2439* `verifiedPeerPid`: l'ID del processo che si è connesso al socket di messaggistica tra sessioni di questa sessione, verificato dal kernel e letto dalla connessione stessa, mai dal payload. Usa questo campo, non `from`, per identificare il mittente: `from` può essere falsificato da qualsiasi processo dello stesso utente. Il campo è assente quando Claude Code non riesce a verificarlo, ad esempio su Windows o con un ingresso diverso dal socket, quindi un valore assente significa che il mittente non è verificato. Per il traffico inoltrato identifica il relay anziché l'autore del messaggio, e gli ID di processo possono essere riutilizzati, quindi consideralo un'indicazione di provenienza anziché un token di autenticazione. Richiede Claude Code v2.1.216 o successivo.2447* `verifiedPeerPid`: l'ID del processo che si è connesso al socket di messaggistica tra sessioni di questa sessione, verificato dal kernel e letto dalla connessione stessa, mai dal payload. Usa questo campo, non `from`, per identificare il mittente: `from` può essere falsificato da qualsiasi processo dello stesso utente. Il campo è assente quando Claude Code non riesce a verificarlo, ad esempio su Windows o con un ingresso diverso dal socket, quindi un valore assente significa che il mittente non è verificato. Per il traffico inoltrato identifica il relay anziché l'autore del messaggio, e gli ID di processo possono essere riutilizzati, quindi consideralo un'indicazione di provenienza anziché un token di autenticazione. Richiede Claude Code v2.1.216 o successivo.

2440 2448 


3446 offset?: number;3454 offset?: number;

3447 limit?: number;3455 limit?: number;

3448 pages?: string;3456 pages?: string;

3457 allow_large?: boolean;

3449};3458};

3450```3459```

3451 3460 

3452Legge i file dal filesystem locale, inclusi testo, immagini, PDF e notebook Jupyter. Usa `pages` per gli intervalli di pagine PDF (ad esempio, `"1-5"`).3461Legge i file dal filesystem locale, inclusi testo, immagini, PDF e notebook Jupyter.

3462 

3463* Usa `pages` per gli intervalli di pagine PDF (ad esempio, `"1-5"`).

3464* `allow_large` consente a Claude di leggere un file di testo oltre i [normali limiti di dimensione](/docs/it/tools-reference#large-files) quando la finestra di contesto della sessione ha spazio. Richiede Agent SDK v0.3.296 o successivo, che include Claude Code v2.1.296.

3453 3465 

3454Per un PDF, Claude riceve il contenuto del file all'interno del `tool_result` della chiamata Read. Una lettura che restituisce l'[output](#tool-output-types) `pdf` contiene un blocco `text` di riepilogo seguito da un blocco `document`. Una che restituisce l'output `parts` contiene il blocco `text` di riepilogo seguito da un blocco per ogni pagina estratta: un blocco `image`, o un blocco `text` che nomina la pagina quando Claude Code non poteva renderla come immagine. Prima di Agent SDK v0.3.242, Claude Code consegnava il contenuto del file come messaggio `user` separato dopo il risultato del tool.3466Per un PDF, Claude riceve il contenuto del file all'interno del `tool_result` della chiamata Read. Una lettura che restituisce l'[output](#tool-output-types) `pdf` contiene un blocco `text` di riepilogo seguito da un blocco `document`. Una che restituisce l'output `parts` contiene il blocco `text` di riepilogo seguito da un blocco per ogni pagina estratta: un blocco `image`, o un blocco `text` che nomina la pagina quando Claude Code non poteva renderla come immagine. Prima di Agent SDK v0.3.242, Claude Code consegnava il contenuto del file come messaggio `user` separato dopo il risultato del tool.

3455 3467 

agent-teams.md +3 −2

Details

270| **Elenco di attività** | Elenco condiviso di elementi di lavoro che i compagni di team rivendicano e completano |270| **Elenco di attività** | Elenco condiviso di elementi di lavoro che i compagni di team rivendicano e completano |

271| **Mailbox** | Sistema di messaggistica per la comunicazione tra agenti |271| **Mailbox** | Sistema di messaggistica per la comunicazione tra agenti |

272 272 

273La mailbox di ogni agente è un file JSON in `~/.claude/teams/{team-name}/inboxes/{agent-name}.json`. Claude Code convalida ogni voce quando legge un file mailbox. Le voci che non corrispondono al formato del messaggio vengono segnalate come errori e rimosse dal file; i messaggi validi vengono comunque consegnati. Prima della v2.1.207, una singola voce mailbox malformata causava un errore ripetuto ogni secondo e bloccava la consegna per quella mailbox fino a quando non eliminavate manualmente il file.273La mailbox di ogni agente è un file JSON in `~/.claude/teams/{team-name}/inboxes/{agent-name}.json`. Claude Code convalida ogni voce quando legge un file mailbox. Le voci che non corrispondono al formato del messaggio vengono segnalate come errori e rimosse dal file; i messaggi validi vengono comunque consegnati.

274 274 

275Claude Code segnala un messaggio come inviato solo quando la scrittura nel file mailbox del destinatario ha successo, sia che il messaggio sia testo semplice o un messaggio di protocollo strutturato come un'approvazione del piano o una richiesta di arresto. Quando la scrittura fallisce, ad esempio perché il disco è pieno o la directory della mailbox non è scrivibile, l'agente mittente riceve un errore e nulla viene inviato. Consultate [Impossibile scrivere nella inbox di un compagno di team](/docs/it/errors#failed-to-write-to-a-teammate-inbox) per i messaggi di errore e i passaggi di recupero.275Claude Code segnala un messaggio come inviato solo quando la scrittura nel file mailbox del destinatario ha successo, sia che il messaggio sia testo semplice o un messaggio di protocollo strutturato come un'approvazione del piano o una richiesta di arresto. Quando la scrittura fallisce, ad esempio perché il disco è pieno o la directory della mailbox non è scrivibile, l'agente mittente riceve un errore e nulla viene inviato. Consultate [Impossibile scrivere nella inbox di un compagno di team](/docs/it/errors#failed-to-write-to-a-teammate-inbox) per i messaggi di errore e i passaggi di recupero.

276 276 


300Per utilizzare una definizione di subagent, menzionatela per nome quando chiedete a Claude di generare il compagno di team:300Per utilizzare una definizione di subagent, menzionatela per nome quando chiedete a Claude di generare il compagno di team:

301 301 

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

303Genera un compagno di team utilizzando il tipo di agente security-reviewer per controllare il modulo di autenticazione.303Spawn a teammate using the security-reviewer agent type to audit the auth module.

304```304```

305 305 

306Claude Code legge la definizione di subagent che avete denominato e applica queste parti al compagno di team. Dove una parte dipende dalla [modalità di visualizzazione](#choose-a-display-mode) del compagno di team, l'entry lo dice:306Claude Code legge la definizione di subagent che avete denominato e applica queste parti al compagno di team. Dove una parte dipende dalla [modalità di visualizzazione](#choose-a-display-mode) del compagno di team, l'entry lo dice:


309* **`model`**: Claude Code utilizza il `model` della definizione in entrambe le modalità di visualizzazione quando il vostro prompt di generazione non ne nomina uno. Consultate [come Claude Code sceglie il model di un compagno di team](#specify-teammates-and-models).309* **`model`**: Claude Code utilizza il `model` della definizione in entrambe le modalità di visualizzazione quando il vostro prompt di generazione non ne nomina uno. Consultate [come Claude Code sceglie il model di un compagno di team](#specify-teammates-and-models).

310* **`disallowedTools`**: per un compagno di team in-process, Claude Code rimuove gli strumenti presenti in `disallowedTools` della definizione dall'insieme del compagno di team. `SendMessage` e gli strumenti Task che aggiunge restano disponibili anche quando l'elenco li indica.310* **`disallowedTools`**: per un compagno di team in-process, Claude Code rimuove gli strumenti presenti in `disallowedTools` della definizione dall'insieme del compagno di team. `SendMessage` e gli strumenti Task che aggiunge restano disponibili anche quando l'elenco li indica.

311* **`effort`**: per un compagno di team in-process, Claude Code applica l'[`effort`](/docs/it/sub-agents#supported-frontmatter-fields) della definizione secondo le [regole sull'effort nel frontmatter](/docs/it/model-config#set-the-effort-level).311* **`effort`**: per un compagno di team in-process, Claude Code applica l'[`effort`](/docs/it/sub-agents#supported-frontmatter-fields) della definizione secondo le [regole sull'effort nel frontmatter](/docs/it/model-config#set-the-effort-level).

312* **`autoCompactWindow`**: per un compagno di team in-process, Claude Code applica l'[`autoCompactWindow`](/docs/it/sub-agents#supported-frontmatter-fields) della definizione secondo le [regole di quel campo](/docs/it/sub-agents#subagent-auto-compact-window). Un compagno di team split-pane ignora il campo. Richiede Claude Code v2.1.296 o versioni successive.

312* **Body**: per un compagno di team in-process, Claude Code aggiunge il body della definizione al suo prompt di sistema predefinito come istruzioni aggiuntive. Per un compagno di team split-pane, Claude Code utilizza il body al posto del suo prompt di sistema predefinito.313* **Body**: per un compagno di team in-process, Claude Code aggiunge il body della definizione al suo prompt di sistema predefinito come istruzioni aggiuntive. Per un compagno di team split-pane, Claude Code utilizza il body al posto del suo prompt di sistema predefinito.

313* **`skills`**: Claude Code non applica le `skills` della definizione a un compagno di team in entrambe le modalità di visualizzazione. Il compagno di team carica skills dalle vostre impostazioni di progetto e utente.314* **`skills`**: Claude Code non applica le `skills` della definizione a un compagno di team in entrambe le modalità di visualizzazione. Il compagno di team carica skills dalle vostre impostazioni di progetto e utente.

314* **`mcpServers`**: per un compagno di team split-pane, Claude Code applica il `mcpServers` della definizione secondo le [regole per quel campo](/docs/it/sub-agents#scope-mcp-servers-to-a-subagent), che coprono anche una sessione avviata con `--agent`. Un compagno di team in-process ignora il campo e carica i server MCP dalle vostre impostazioni di progetto e utente.315* **`mcpServers`**: per un compagno di team split-pane, Claude Code applica il `mcpServers` della definizione secondo le [regole per quel campo](/docs/it/sub-agents#scope-mcp-servers-to-a-subagent), che coprono anche una sessione avviata con `--agent`. Un compagno di team in-process ignora il campo e carica i server MCP dalle vostre impostazioni di progetto e utente.

agent-view.md +7 −7

Details

36 claude agents36 claude agents

37 ```37 ```

38 38 

39 Se non hai ancora accettato la [finestra di dialogo di fiducia dell'area di lavoro](/docs/it/permissions#project-allow-rules-and-workspace-trust) per la directory, Claude Code la mostra prima che agent view si apra, la stessa finestra di dialogo che mostra `claude`. Accetta per salvare la fiducia per l'area di lavoro e continua. Se rifiuti, Claude Code esce senza aprire agent view.39 Se non hai ancora accettato la [finestra di dialogo di fiducia del workspace](/docs/it/permissions#project-allow-rules-and-workspace-trust) per la directory, Claude Code la mostra prima che agent view si apra, la stessa finestra di dialogo che mostra `claude`. Accetta per salvare la fiducia per il workspace e continua. Se rifiuti, Claude Code esce senza aprire agent view.

40 40 

41 Agent view si apre con un input in basso e una tabella che si riempie quando le sessioni iniziano. Premi `Esc` per tornare alla tua shell; se hai aperto agent view mettendo in background una sessione con `←`, `Esc` ritorna a quella conversazione invece. Le tue sessioni continuano a funzionare mentre sei via e riappaiono la prossima volta che apri agent view.41 Agent view si apre con un input in basso e una tabella che si riempie quando le sessioni iniziano. Premi `Esc` per tornare alla tua shell; se hai aperto agent view mettendo in background una sessione con `←`, `Esc` ritorna invece a quella conversazione. Le tue sessioni continuano a funzionare mentre sei via e riappaiono la prossima volta che apri agent view.

42 </Step>42 </Step>

43 43 

44 <Step title="Invia una sessione">44 <Step title="Invia una sessione">

45 Digita un prompt che descrive un'attività e premi `Enter`. Una nuova sessione in background inizia su quell'attività e appare come una riga che mostra se sta lavorando, aspettando te, o è completata. La nuova sessione utilizza il modello mostrato nell'intestazione di agent view. [La modalità di autorizzazione in cui inizia](#permission-mode-model-and-effort) dipende da come hai aperto agent view.45 Digita un prompt che descrive un'attività e premi `Enter`. Una nuova sessione in background inizia su quell'attività e appare come una riga che mostra se sta lavorando, aspettando te, o è completata. La nuova sessione utilizza il modello mostrato nell'intestazione di agent view. [La modalità di permesso in cui inizia](#permission-mode-model-and-effort) dipende da come hai aperto agent view.

46 46 

47 Ogni prompt che inserisci qui avvia la sua propria nuova sessione. Digitando un altro prompt e premendo `Enter` avvia una seconda sessione accanto alla prima piuttosto che inviare un follow-up ad essa. Puoi eseguire diversi in parallelo in questo modo.47 Ogni prompt che inserisci qui avvia la sua propria nuova sessione. Digitando un altro prompt e premendo `Enter` avvii una seconda sessione accanto alla prima piuttosto che inviare un follow-up ad essa. Puoi eseguirne diverse in parallelo in questo modo.

48 48 

49 Ogni sessione utilizza la tua quota di abbonamento indipendentemente, quindi consulta [Limitazioni](#limitations) prima di inviare molte sessioni contemporaneamente.49 Ogni sessione utilizza la tua quota di abbonamento indipendentemente, quindi consulta [Limitazioni](#limitations) prima di inviare molte sessioni contemporaneamente.

50 </Step>50 </Step>


53 Seleziona una riga con i tasti freccia e premi `Space` per aprire il pannello peek. Mostra l'output più recente della sessione, o la domanda su cui sta aspettando, piuttosto che la trascrizione completa. Digita una risposta e premi `Enter` per inviarla senza lasciare agent view.53 Seleziona una riga con i tasti freccia e premi `Space` per aprire il pannello peek. Mostra l'output più recente della sessione, o la domanda su cui sta aspettando, piuttosto che la trascrizione completa. Digita una risposta e premi `Enter` per inviarla senza lasciare agent view.

54 </Step>54 </Step>

55 55 

56 <Step title="Collegati e scollega">56 <Step title="Collegati e scollegati">

57 Premi `Enter` o `→` su una riga per collegarti quando vuoi la conversazione completa. La sessione prende il controllo del terminale come una sessione Claude Code interattiva completa. Premi `←` su un prompt vuoto per scollegar e tornare alla tabella.57 Premi `Enter` o `→` su una riga per collegarti quando vuoi la conversazione completa. La sessione prende il controllo del terminale come una sessione Claude Code interattiva completa. Premi `←` su un prompt vuoto per scollegarti e tornare alla tabella.

58 </Step>58 </Step>

59 59 

60 <Step title="Porta una sessione esistente dentro">60 <Step title="Porta una sessione esistente dentro">


290 290 

291Anche la riga da cui hai premuto `←` mantiene un nome in grassetto e non attenuato dopo che sposti la selezione con i tasti freccia o il mouse, così puoi capire da quale sessione provieni.291Anche la riga da cui hai premuto `←` mantiene un nome in grassetto e non attenuato dopo che sposti la selezione con i tasti freccia o il mouse, così puoi capire da quale sessione provieni.

292 292 

293Se uno strumento è in esecuzione quando premi `←`, Claude Code attende che termini prima di mettere la sessione in background, e Claude continua la risposta nella sessione in background. Premi di nuovo `←` per metterla subito in background invece di attendere. Quando il lavoro in corso non può essere trasferito alla sessione in background, Claude Code mostra prima la finestra di dialogo `Background this session?`, come con [`/background`](#from-inside-a-session).293Se uno strumento è in esecuzione quando premi `←`, Claude Code attende che termini prima di mettere la sessione in background, e Claude continua la risposta nella sessione in background. Premi di nuovo `←` per metterla subito in background invece di attendere. Quando il lavoro in background in corso non può essere trasferito alla sessione in background, Claude Code mostra prima la finestra di dialogo `Background this session?`, come con [`/background`](#from-inside-a-session).

294 294 

295Dopo circa dieci secondi, Claude Code mette la sessione in background senza attendere oltre, tranne in casi come questi:295Dopo circa dieci secondi, Claude Code mette la sessione in background senza attendere oltre, tranne in casi come questi:

296 296 

Details

219 Caching delle credenziali e timeout di risoluzione219 Caching delle credenziali e timeout di risoluzione

220</h4>220</h4>

221 221 

222Claude Code risolve la catena del provider di credenziali predefinito AWS una volta e mantiene le credenziali risolte in memoria. Le riutilizza fino a cinque minuti prima della scadenza, o per un'ora quando non hanno scadenza, quindi un profilo supportato da SSO richiede credenziali da IAM Identity Center circa una volta per durata della credenziale. Un errore di credenziale dall'API cancella la cache e il nuovo tentativo risolve credenziali aggiornate. Richiede Claude Code v2.1.207 o successiva.222Claude Code risolve la catena del provider di credenziali predefinito AWS una volta e mantiene le credenziali risolte in memoria. Le riutilizza fino a cinque minuti prima della scadenza, o per un'ora quando non hanno scadenza, quindi un profilo supportato da SSO richiede credenziali da IAM Identity Center circa una volta per durata della credenziale. Un errore di credenziale dall'API svuota la cache e il nuovo tentativo risolve credenziali aggiornate.

223 223 

224La cache copre tutti i metodi di credenziale elencati all'inizio di questo passaggio tranne la chiave API di Amazon Bedrock, che non utilizza la catena del provider. Per risolvere invece la catena a ogni richiesta, imposta [`CLAUDE_CODE_SKIP_AWS_CRED_CACHE=1`](/docs/it/env-vars).224La cache copre tutti i metodi di credenziale elencati all'inizio di questo passaggio tranne la chiave API di Amazon Bedrock, che non utilizza la catena del provider. Per risolvere invece la catena a ogni richiesta, imposta [`CLAUDE_CODE_SKIP_AWS_CRED_CACHE=1`](/docs/it/env-vars).

225 225 


276 276 

277`Expiration` è facoltativo. Quando il comando restituisce un `Expiration` ISO 8601 valido, Claude Code memorizza nella cache le credenziali fino a cinque minuti prima di quel momento. Senza di esso, le credenziali vengono memorizzate nella cache per un'ora.277`Expiration` è facoltativo. Quando il comando restituisce un `Expiration` ISO 8601 valido, Claude Code memorizza nella cache le credenziali fino a cinque minuti prima di quel momento. Senza di esso, le credenziali vengono memorizzate nella cache per un'ora.

278 278 

279Quando si configura `awsCredentialExport` senza `awsAuthRefresh`, Claude Code utilizza le credenziali esportate direttamente e non ri-risolve la catena del provider di credenziali predefinito AWS all'avvio. Richiede Claude Code v2.1.206 o successiva.279Quando configuri `awsCredentialExport` senza `awsAuthRefresh`, Claude Code utilizza direttamente le credenziali esportate e non risolve di nuovo la catena del provider di credenziali predefinito AWS all'avvio.

280 280 

281<h3 id="3-configure-claude-code">281<h3 id="3-configure-claude-code">

282 3. Configurare Claude Code282 3. Configurare Claude Code


358* Per utilizzare Haiku per le attività in background, impostare `ANTHROPIC_DEFAULT_HAIKU_MODEL` su un ID modello disponibile nel proprio account.358* Per utilizzare Haiku per le attività in background, impostare `ANTHROPIC_DEFAULT_HAIKU_MODEL` su un ID modello disponibile nel proprio account.

359 359 

360<Warning>360<Warning>

361 I modelli Opus hanno un prezzo per token più elevato rispetto ai modelli Sonnet, quindi una distribuzione che non fissa un modello primario viene fatturata alla tariffa Opus una volta che si aggiorna alla versione 2.1.207 o successiva. Per mantenere Sonnet 4.5 come modello primario, impostare `ANTHROPIC_MODEL` al suo ID modello completo. Una distribuzione che indirizza il valore predefinito con `ANTHROPIC_DEFAULT_SONNET_MODEL` e non imposta `ANTHROPIC_DEFAULT_OPUS_MODEL` mantiene il modello Sonnet indirizzato come valore predefinito.361 I modelli Opus hanno un prezzo per token più elevato rispetto ai modelli Sonnet, quindi se non fissi un modello primario ti viene addebitata la tariffa Opus. Per utilizzare Sonnet 4.5 come modello primario, imposta `ANTHROPIC_MODEL` sul suo ID modello completo. Una distribuzione che indirizza il valore predefinito con `ANTHROPIC_DEFAULT_SONNET_MODEL` e non imposta `ANTHROPIC_DEFAULT_OPUS_MODEL` mantiene il modello Sonnet indirizzato come valore predefinito.

362</Warning>362</Warning>

363 363 

364Prima della versione 2.1.280, il modello primario su Amazon Bedrock era predefinito su Opus 5 e l'alias `opus` si risolveva in Opus 5 dalla versione 2.1.219. Nella versione 2.1.207 fino a 2.1.218, il modello primario su Amazon Bedrock era predefinito su Opus 4.8 e l'alias `opus` si risolveva in Opus 4.8. Prima della versione 2.1.207, il modello primario era predefinito su Sonnet 4.5, l'alias `opus` si risolveva in Opus 4.6 e le attività in background utilizzavano sempre il modello primario.364Prima della versione 2.1.280, il modello primario su Amazon Bedrock era predefinito su Opus 5 e l'alias `opus` si risolveva in Opus 5 dalla versione 2.1.219. Dalla versione 2.1.207 alla 2.1.218, il modello primario su Amazon Bedrock era predefinito su Opus 4.8 e l'alias `opus` si risolveva in Opus 4.8.

365 365 

366Per personalizzare ulteriormente i modelli, utilizzare uno di questi metodi:366Per personalizzare ulteriormente i modelli, utilizzare uno di questi metodi:

367 367 

artifacts.md +1 −1

Details

188 188 

189La tua [modalità di autorizzazione](/docs/it/permission-modes) decide cosa fa Claude quando arriva un commento inviato:189La tua [modalità di autorizzazione](/docs/it/permission-modes) decide cosa fa Claude quando arriva un commento inviato:

190 190 

191* **Claude risponde da solo**: quando la tua modalità di autorizzazione consente a Claude di pubblicare la risposta senza chiederti, Claude legge il thread e risponde, e modifica l'artefatto quando il commento chiede una modifica. Vedi `Auto-replied to comment thread on Artifact: <name>` o `Auto-edited Artifact: <name> in response to a comment thread`.191* **Claude risponde da solo**: se sei in una modalità di permesso che consente a Claude di pubblicare la risposta senza chiederti, Claude legge il thread e risponde. Vedi `Auto-replied to comment thread on Artifact: <name>`.

192* **Claude aspetta te**: al di fuori della plan mode, quando la pubblicazione della risposta avrebbe bisogno della tua approvazione, vedi `Comments are waiting on Artifact: <name>`. Claude quindi ti chiede l'approvazione per leggere il thread, e di nuovo per pubblicare la risposta.192* **Claude aspetta te**: al di fuori della plan mode, quando la pubblicazione della risposta avrebbe bisogno della tua approvazione, vedi `Comments are waiting on Artifact: <name>`. Claude quindi ti chiede l'approvazione per leggere il thread, e di nuovo per pubblicare la risposta.

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

194 194 

chrome.md +5 −5

Details

82 </Step>82 </Step>

83</Steps>83</Steps>

84 84 

85Esegui `/chrome` in qualsiasi momento per verificare lo stato della connessione, gestire le autorizzazioni, riconnettere l'estensione o scegliere quale browser connesso utilizzare. L'integrazione funziona quando il pannello di stato mostra "Status: Enabled" e "Extension: Installed".85Esegui `/chrome` in qualsiasi momento per verificare lo stato della connessione, gestire i permessi, riconnettere l'estensione o scegliere quale browser connesso utilizzare. L'integrazione funziona quando il pannello di stato mostra "Status: Enabled" e "Extension: Installed".

86 86 

87Se più di un browser è connesso, scegli quale Claude utilizza. Quando un'azione del browser inizia prima che tu abbia scelto, Claude ti chiede di sceglierne uno. Per cambiare browser in seguito, esegui `/chrome` e seleziona **Select browser…**. Claude continua a utilizzare la tua scelta anche quando un altro browser si connette.87Se più di un browser è connesso, scegli quale Claude utilizza. Quando un'azione del browser inizia prima che tu abbia scelto, Claude ti chiede di sceglierne uno. Per cambiare browser in seguito, esegui `/chrome` e seleziona **Select browser…**. Claude continua a utilizzare la tua scelta anche quando un altro browser si connette.

88 88 


120</Note>120</Note>

121 121 

122<h3 id="manage-site-permissions">122<h3 id="manage-site-permissions">

123 Gestisci le autorizzazioni del sito123 Gestisci i permessi del sito

124</h3>124</h3>

125 125 

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

127 127 

128<h3 id="permission-prompts-in-vs-code-sessions">128<h3 id="permission-prompts-in-vs-code-sessions">

129 Richieste di permesso nelle sessioni VS Code129 Richieste di permesso nelle sessioni VS Code


137 Strumenti del browser in plan mode137 Strumenti del browser in plan mode

138</h3>138</h3>

139 139 

140In [plan mode](/docs/it/permission-modes#analyze-before-you-edit-with-plan-mode), una richiesta di permesso appare prima che Claude registri una GIF, apra una nuova scheda o esegua una scorciatoia. In una sessione CLI interattiva, se [la modalità bypass permissions è disponibile](/docs/it/permission-modes#skip-all-checks-with-bypasspermissions-mode) e [il recupero del feature flag](/docs/it/env-vars#features-that-need-feature-flag-fetching) è disattivato, queste chiamate vengono eseguite senza un prompt.140In [plan mode](/docs/it/permission-modes#analyze-before-you-edit-with-plan-mode), una richiesta di permesso appare prima che Claude registri una GIF, apra una nuova scheda o esegua una scorciatoia. In una sessione CLI interattiva, se [la modalità bypass permissions è disponibile](/docs/it/permission-modes#skip-all-checks-with-bypasspermissions-mode) e [il recupero del feature flag](/docs/it/env-vars#features-that-need-feature-flag-fetching) è disattivato, queste chiamate vengono eseguite senza una richiesta di permesso.

141 141 

142Una chiamata `tabs_context_mcp` richiede anche un prompt quando imposta `createIfEmpty`, e così fa una chiamata `browser_batch` che include una qualsiasi di queste azioni.142Anche una chiamata `tabs_context_mcp` richiede conferma quando imposta `createIfEmpty`, e così fa una chiamata `browser_batch` che include una qualsiasi di queste azioni.

143 143 

144<h2 id="example-workflows">144<h2 id="example-workflows">

145 Flussi di lavoro di esempio145 Flussi di lavoro di esempio

Details

1074 1074 

1075La configurazione di [telemetria](#telemetry) del gateway invia `OTEL_EXPORTER_OTLP_ENDPOINT`, quindi impostare `telemetry.forward_to` attiva la finestra di dialogo su ogni client interattivo. La finestra di dialogo protegge la macchina dello sviluppatore da un gateway compromesso o ostile, non l'organizzazione dallo sviluppatore.1075La configurazione di [telemetria](#telemetry) del gateway invia `OTEL_EXPORTER_OTLP_ENDPOINT`, quindi impostare `telemetry.forward_to` attiva la finestra di dialogo su ogni client interattivo. La finestra di dialogo protegge la macchina dello sviluppatore da un gateway compromesso o ostile, non l'organizzazione dallo sviluppatore.

1076 1076 

1077Un'[esecuzione non interattiva](/docs/it/server-managed-settings#security-approval-dialogs), come `claude -p`, una sessione dell'Agent SDK o una sessione nella scheda Code di Claude Desktop, non può mostrare la finestra. Applica le impostazioni inviate solo per quell'esecuzione e non le registra come approvate, quindi la successiva sessione interattiva dello sviluppatore mostra comunque la finestra. Prima della v2.1.207, un'esecuzione non interattiva salvava le impostazioni come approvate e nessuna sessione interattiva successiva mostrava la finestra per esse.1077Un'[esecuzione non interattiva](/docs/it/server-managed-settings#security-approval-dialogs), come `claude -p`, una sessione dell'Agent SDK o una sessione nella scheda Code di Claude Desktop, non può mostrare la finestra. Applica le impostazioni inviate solo per quell'esecuzione e non le registra come approvate, quindi la successiva sessione interattiva dello sviluppatore mostra comunque la finestra.

1078 1078 

1079Se uno sviluppatore rifiuta, Claude Code esce da quella sessione anziché applicare la policy. Quando invii un nuovo hook, o qualsiasi variabile env che attiva la finestra di dialogo, a una policy ampia, ogni sviluppatore corrispondente vede quindi la finestra di dialogo nelle proprie sessioni interattive. Una sessione interattiva in esecuzione la mostra al prossimo polling orario, altrimenti appare al successivo avvio interattivo dello sviluppatore.1079Se uno sviluppatore rifiuta, Claude Code esce da quella sessione anziché applicare la policy. Quando invii un nuovo hook, o qualsiasi variabile env che attiva la finestra di dialogo, a una policy ampia, ogni sviluppatore corrispondente vede quindi la finestra di dialogo nelle proprie sessioni interattive. Una sessione interattiva in esecuzione la mostra al prossimo polling orario, altrimenti appare al successivo avvio interattivo dello sviluppatore.

1080 1080 

Details

298 298 

299Le sessioni cloud supportano [comandi integrati](/docs/it/commands) che producono output di testo. I comandi che vengono eseguiti solo nell'interfaccia del terminale, come `/plugin` o `/resume`, non sono disponibili. I comandi che aprono un selettore o un pannello nel terminale si comportano diversamente nelle sessioni cloud:299Le sessioni cloud supportano [comandi integrati](/docs/it/commands) che producono output di testo. I comandi che vengono eseguiti solo nell'interfaccia del terminale, come `/plugin` o `/resume`, non sono disponibili. I comandi che aprono un selettore o un pannello nel terminale si comportano diversamente nelle sessioni cloud:

300 300 

301* **`/model`, `/effort`, `/color` e `/rename`**: passare il valore come argomento, ad esempio `/model sonnet`, invece di aprire il selettore del terminale o il cursore. Le forme di argomento richiedono Claude Code v2.1.205 o successivo nell'ambiente della sessione e seguono le [note di disponibilità](/docs/it/commands#all-commands) di ciascun comando.301* **`/model`, `/effort`, `/color` e `/rename`**: passa il valore come argomento, ad esempio `/model sonnet`, invece di aprire il selettore del terminale o il cursore. Le forme di argomento seguono le [note di disponibilità](/docs/it/commands#all-commands) di ciascun comando.

302* **`/fast`**: attiva/disattiva la [modalità veloce](/docs/it/fast-mode#use-fast-mode-in-cloud-sessions) per la sessione quando la modalità veloce è [disponibile nel vostro account](/docs/it/fast-mode#requirements). Richiede Claude Code v2.1.271 o successivo nell'ambiente della sessione.302* **`/fast`**: attiva/disattiva la [modalità veloce](/docs/it/fast-mode#use-fast-mode-in-cloud-sessions) per la sessione quando la modalità veloce è [disponibile nel vostro account](/docs/it/fast-mode#requirements). Richiede Claude Code v2.1.271 o successivo nell'ambiente della sessione.

303* **`/config`**: nel vostro browser su claude.ai/code, apre la sezione Claude Code delle impostazioni invece di impostare un valore, e il testo dopo il comando, incluso `key=value`, viene ignorato. Per modificare un'impostazione per una sessione cloud, impostare una [variabile di ambiente](/docs/it/cloud-environments#set-environment-variables) nell'ambiente, oppure in una sessione con un repository, eseguire il commit della chiave nel file `.claude/settings.json` di quel repository. [Impostazioni nelle sessioni cloud](/docs/it/settings#settings-in-cloud-sessions) elenca cosa legge ogni sessione.303* **`/config`**: nel vostro browser su claude.ai/code, apre la sezione Claude Code delle impostazioni invece di impostare un valore, e il testo dopo il comando, incluso `key=value`, viene ignorato. Per modificare un'impostazione per una sessione cloud, impostare una [variabile di ambiente](/docs/it/cloud-environments#set-environment-variables) nell'ambiente, oppure in una sessione con un repository, eseguire il commit della chiave nel file `.claude/settings.json` di quel repository. [Impostazioni nelle sessioni cloud](/docs/it/settings#settings-in-cloud-sessions) elenca cosa legge ogni sessione.

304 304 


420* **Macchine virtuali isolate**: ogni sessione viene eseguita in una VM isolata gestita da Anthropic. Le sessioni che la tua organizzazione instrada a un [ambiente self-hosted](/docs/it/self-hosted-environments) vengono eseguite sulla tua infrastruttura, dove l'isolamento è responsabilità della tua distribuzione420* **Macchine virtuali isolate**: ogni sessione viene eseguita in una VM isolata gestita da Anthropic. Le sessioni che la tua organizzazione instrada a un [ambiente self-hosted](/docs/it/self-hosted-environments) vengono eseguite sulla tua infrastruttura, dove l'isolamento è responsabilità della tua distribuzione

421* <span id="default-allowed-domains" />**Controlli di accesso alla rete**: negli ambienti ospitati da Anthropic, l'accesso alla rete è limitato per impostazione predefinita e può essere disabilitato. Vedi [Accesso alla rete](/docs/it/cloud-environments#network-access) per i livelli di accesso, i [domini consentiti per impostazione predefinita](/docs/it/cloud-environments#default-allowed-domains) e il traffico che non passa attraverso l'allowlist. In un ambiente self-hosted, limiti l'uscita della sessione al tuo confine di rete. Quando viene eseguito con l'accesso alla rete disabilitato, Claude Code può comunque comunicare con l'API Anthropic, che potrebbe consentire ai dati di uscire dalla VM.421* <span id="default-allowed-domains" />**Controlli di accesso alla rete**: negli ambienti ospitati da Anthropic, l'accesso alla rete è limitato per impostazione predefinita e può essere disabilitato. Vedi [Accesso alla rete](/docs/it/cloud-environments#network-access) per i livelli di accesso, i [domini consentiti per impostazione predefinita](/docs/it/cloud-environments#default-allowed-domains) e il traffico che non passa attraverso l'allowlist. In un ambiente self-hosted, limiti l'uscita della sessione al tuo confine di rete. Quando viene eseguito con l'accesso alla rete disabilitato, Claude Code può comunque comunicare con l'API Anthropic, che potrebbe consentire ai dati di uscire dalla VM.

422* **Protezione delle credenziali**: negli ambienti ospitati da Anthropic, le credenziali git e le chiavi di firma rimangono al di fuori della sandbox e un proxy autentica per conto della sessione con credenziali con ambito. In un ambiente self-hosted, la tua distribuzione fornisce credenziali git; vedi [Configura git](/docs/it/self-hosted-environments-deploy#configure-git)422* **Protezione delle credenziali**: negli ambienti ospitati da Anthropic, le credenziali git e le chiavi di firma rimangono al di fuori della sandbox e un proxy autentica per conto della sessione con credenziali con ambito. In un ambiente self-hosted, la tua distribuzione fornisce credenziali git; vedi [Configura git](/docs/it/self-hosted-environments-deploy#configure-git)

423* **Segreti di rete**: negli ambienti ospitati da Anthropic nei piani Pro e Max, le chiavi che [aggiungi a un ambiente cloud](/docs/it/cloud-environments#add-network-secrets) rimangono al di fuori della sandbox allo stesso modo, allegate alle richieste corrispondenti dopo che lasciano la sessione. Un ambiente self-hosted non ha segreti di rete e i piani Team ed Enterprise non li hanno ancora423* **Segreti di rete**: negli ambienti ospitati da Anthropic, le chiavi che [aggiungi a un ambiente cloud](/docs/it/cloud-environments#add-network-secrets) rimangono al di fuori della sandbox allo stesso modo, allegate alle richieste corrispondenti dopo che lasciano la sessione. Un ambiente self-hosted non ha segreti di rete

424* **Analisi sicura**: il codice viene analizzato e modificato all'interno dell'ambiente isolato della sessione prima di creare PR424* **Analisi sicura**: il codice viene analizzato e modificato all'interno dell'ambiente isolato della sessione prima di creare PR

425 425 

426<h2 id="troubleshooting">426<h2 id="troubleshooting">


472| Messaggio | Significato |472| Messaggio | Significato |

473| - | - |473| - | - |

474| `Cloud sessions aren't available with <provider>. They run on Anthropic's infrastructure and require an Anthropic account.` | Claude Code è configurato per un provider di terze parti. Il messaggio nomina il provider con l'etichetta usata dalla tua configurazione, come `Amazon Bedrock` o `Google Vertex AI`. Rimuovi la configurazione di quel provider, ad esempio annullando l'impostazione di `CLAUDE_CODE_USE_BEDROCK`, e accedi con un account Anthropic (`claude auth login`). |474| `Cloud sessions aren't available with <provider>. They run on Anthropic's infrastructure and require an Anthropic account.` | Claude Code è configurato per un provider di terze parti. Il messaggio nomina il provider con l'etichetta usata dalla tua configurazione, come `Amazon Bedrock` o `Google Vertex AI`. Rimuovi la configurazione di quel provider, ad esempio annullando l'impostazione di `CLAUDE_CODE_USE_BEDROCK`, e accedi con un account Anthropic (`claude auth login`). |

475| `Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.` | Il criterio dell'organizzazione `allow_remote_sessions` è disattivato. |475| `Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.` | Il criterio dell'organizzazione `allow_remote_sessions` è disattivato; vedi [Cloud sessions are disabled by your organization's policy](/docs/it/errors#cloud-sessions-are-disabled-by-your-organizations-policy). Se invece il messaggio nomina una credenziale usata da questa sessione, vedi [Le sessioni cloud usano il tuo accesso claude.ai](/docs/it/errors#cloud-sessions-use-your-claude-ai-login). |

476| `Couldn't verify your organization's policy for cloud sessions. Check your network connection and try again.` | Claude Code non è riuscito a recuperare il criterio della tua organizzazione, quindi rifiuta l'invio anziché presumere che le sessioni cloud siano consentite. Controlla la connessione di rete e riprova. |476| `Couldn't verify your organization's policy for cloud sessions. Check your network connection and try again.` | Claude Code non ha ancora finito di caricare il criterio della tua organizzazione, quindi rifiuta l'invio anziché presumere che le sessioni cloud siano consentite. Controlla la connessione di rete e riprova. |

477| `Cloud sessions aren't available:` seguito da una causa | Il caricamento del criterio della tua organizzazione non è riuscito e il resto del messaggio ne indica il motivo. Intervieni sulla causa indicata; vedi [Couldn't verify your organization's policy for cloud sessions](/docs/it/errors#couldnt-verify-your-organizations-policy-for-cloud-sessions). |

477| `Attaching to an existing cloud session is not enabled for your account.` | Hai eseguito `--cloud <session-id>` senza `-p`. Invia il messaggio con `claude -p "your message" --cloud <session-id>`. |478| `Attaching to an existing cloud session is not enabled for your account.` | Hai eseguito `--cloud <session-id>` senza `-p`. Invia il messaggio con `claude -p "your message" --cloud <session-id>`. |

478| `Session not found: <id>` | L'ID o l'URL non corrisponde a una sessione a cui puoi accedere. Confrontalo con l'URL claude.ai/code della sessione. |479| `Session not found: <id>` | L'ID o l'URL non corrisponde a una sessione a cui puoi accedere. Confrontalo con l'URL claude.ai/code della sessione. |

479| `cloud session <id> is archived and cannot accept new messages` | La sessione è stata archiviata. Avvia invece una nuova sessione. |480| `cloud session <id> is archived and cannot accept new messages` | La sessione è stata archiviata. Avvia invece una nuova sessione. |

Details

1525| - | - | - |1525| - | - | - |

1526| `skills/<name>/SKILL.md` | `name`, `description`, `when_to_use`, `argument-hint`, `arguments`, `disable-model-invocation`, `user-invocable`, `allowed-tools`, `disallowed-tools`, `model`, `effort`, `context`, `agent`, `background`, `hooks`, `paths`, `shell`, `metadata`, `license`, `compatibility` | [Skill frontmatter](/docs/it/skills#frontmatter-reference) |1526| `skills/<name>/SKILL.md` | `name`, `description`, `when_to_use`, `argument-hint`, `arguments`, `disable-model-invocation`, `user-invocable`, `allowed-tools`, `disallowed-tools`, `model`, `effort`, `context`, `agent`, `background`, `hooks`, `paths`, `shell`, `metadata`, `license`, `compatibility` | [Skill frontmatter](/docs/it/skills#frontmatter-reference) |

1527| `commands/*.md` | I campi skill eccetto `name` e `paths` | [Skill frontmatter](/docs/it/skills#frontmatter-reference) |1527| `commands/*.md` | I campi skill eccetto `name` e `paths` | [Skill frontmatter](/docs/it/skills#frontmatter-reference) |

1528| `agents/*.md` | `name`, `description`, `tools`, `disallowedTools`, `model`, `permissionMode`, `maxTurns`, `skills`, `mcpServers`, `hooks`, `memory`, `background`, `effort`, `isolation`, `color`, `initialPrompt`, `omitClaudeMd`, `experimental` | [Subagent frontmatter](/docs/it/sub-agents#supported-frontmatter-fields) |1528| `agents/*.md` | `name`, `description`, `tools`, `disallowedTools`, `model`, `permissionMode`, `maxTurns`, `autoCompactWindow`, `skills`, `mcpServers`, `hooks`, `memory`, `background`, `effort`, `isolation`, `color`, `initialPrompt`, `omitClaudeMd`, `experimental` | [Subagent frontmatter](/docs/it/sub-agents#supported-frontmatter-fields) |

1529| `output-styles/*.md` | `name`, `description`, `keep-coding-instructions`, `force-for-plugin` | [Output style frontmatter](/docs/it/output-styles#frontmatter) |1529| `output-styles/*.md` | `name`, `description`, `keep-coding-instructions`, `force-for-plugin` | [Output style frontmatter](/docs/it/output-styles#frontmatter) |

1530| `rules/*.md` | `paths` | [Rule frontmatter](/docs/it/memory#rules-frontmatter-reference) |1530| `rules/*.md` | `paths` | [Rule frontmatter](/docs/it/memory#rules-frontmatter-reference) |

1531 1531 

Details

289 289 

290Claude Platform on AWS utilizza gli stessi ID modello dell'API Claude diretta.290Claude Platform on AWS utilizza gli stessi ID modello dell'API Claude diretta.

291 291 

292Gli alias predefiniti `fable`, `opus`, `sonnet` e `haiku` si risolvono alle impostazioni predefinite integrate di Claude Code per Claude Platform on AWS, che possono essere in ritardo rispetto alla versione più recente. Senza `ANTHROPIC_DEFAULT_OPUS_MODEL`, l'alias `opus` si risolve in Opus 5.5. Prima della v2.1.280, si risolveva in Opus 5 dalla v2.1.219, in Opus 4.8 dalla v2.1.207, e in Opus 4.7 prima di ciò.292Gli alias predefiniti `fable`, `opus`, `sonnet` e `haiku` si risolvono nei valori predefiniti integrati di Claude Code per Claude Platform on AWS, che possono essere in ritardo rispetto alla versione più recente. Senza `ANTHROPIC_DEFAULT_OPUS_MODEL`, l'alias `opus` si risolve in Opus 5.5. Prima della v2.1.280, si risolveva in Opus 5 dalla v2.1.219 e in Opus 4.8 dalla v2.1.207.

293 293 

294Se si distribuisce Claude Code a un team, fissare esplicitamente gli ID modello in modo che un nuovo rilascio non sposti tutti contemporaneamente:294Se si distribuisce Claude Code a un team, fissare esplicitamente gli ID modello in modo che un nuovo rilascio non sposti tutti contemporaneamente:

295 295 

Details

414 414 

415* Skill, subagent e comandi: eseguine il commit in un repository che hai aggiunto al progetto, ad esempio una skill in `.claude/skills/<skill-name>/SKILL.md`. Ogni thread cloud clona ogni repository nel progetto e carica `.claude/skills/`, `.claude/agents/` e `.claude/commands/` da ciascuno di loro, quindi una skill sottoposta a commit in un repository è disponibile in ogni thread cloud. I thread cloud caricano anche le [skill che abiliti per il tuo account claude.ai](/docs/it/skills#skills-in-cowork-and-cloud-sessions).415* Skill, subagent e comandi: eseguine il commit in un repository che hai aggiunto al progetto, ad esempio una skill in `.claude/skills/<skill-name>/SKILL.md`. Ogni thread cloud clona ogni repository nel progetto e carica `.claude/skills/`, `.claude/agents/` e `.claude/commands/` da ciascuno di loro, quindi una skill sottoposta a commit in un repository è disponibile in ogni thread cloud. I thread cloud caricano anche le [skill che abiliti per il tuo account claude.ai](/docs/it/skills#skills-in-cowork-and-cloud-sessions).

416* Plugin: aggiungili in **Project settings > Plugins**; si caricano in ogni nuovo thread cloud. I plugin che un repository dichiara nel suo `.claude/settings.json` [non si caricano nei thread cloud](/docs/it/cloud-environments#what-carries-over-from-your-setup).416* Plugin: aggiungili in **Project settings > Plugins**; si caricano in ogni nuovo thread cloud. I plugin che un repository dichiara nel suo `.claude/settings.json` [non si caricano nei thread cloud](/docs/it/cloud-environments#what-carries-over-from-your-setup).

417* Server MCP: i thread cloud ottengono i loro strumenti MCP dai connettori sul tuo account claude.ai, che sono server MCP che colleghi una volta in [claude.ai/customize/connectors](https://claude.ai/customize/connectors) o attraverso il link **Manage connectors** in **Project settings > Environment**. Ogni thread cloud può utilizzarli tutti senza alcuna configurazione per progetto. La conversazione del progetto stessa non ha connettori, quindi invia il lavoro che ne richiede uno come compito per un thread cloud. In un progetto con un repository, i thread cloud caricano anche i server MCP dal [`.mcp.json`](/docs/it/cloud-environments#what-carries-over-from-your-setup) di quel repository. [How connectors reach Claude Code](/docs/it/mcp#how-connectors-reach-claude-code) elenca le regole per le sessioni cloud e le impostazioni che disattivano i connettori.417* Server MCP: i thread cloud ottengono i loro strumenti MCP dai connettori sul tuo account claude.ai, che sono server MCP che colleghi una volta in [claude.ai/customize/connectors](https://claude.ai/customize/connectors). Ogni thread cloud può utilizzarli tutti senza alcuna configurazione per progetto. La conversazione del progetto stessa non ha connettori, quindi invia il lavoro che ne richiede uno come compito per un thread cloud. In un progetto con un repository, i thread cloud caricano anche i server MCP dal [`.mcp.json`](/docs/it/cloud-environments#what-carries-over-from-your-setup) di quel repository. [How connectors reach Claude Code](/docs/it/mcp#how-connectors-reach-claude-code) elenca le regole per le sessioni cloud e le impostazioni che disattivano i connettori.

418* Strumenti da riga di comando e pacchetti: installali nello [script di setup](/docs/it/cloud-environments#setup-scripts) dell'ambiente.418* Strumenti da riga di comando e pacchetti: installali nello [script di setup](/docs/it/cloud-environments#setup-scripts) dell'ambiente.

419 419 

420Per vedere quali connettori ha un thread cloud in esecuzione in claude.ai/code, apri il thread e seleziona **Connectors** dal menu **+** accanto alla sua casella di messaggio. Disattivare un connettore lì lo rimuove da quel thread e lo salva come impostazione predefinita del tuo account, quindi i nuovi thread e le chat claude.ai iniziano senza di esso fino a quando non lo riattivi. Un thread cloud raccoglie un connettore che aggiungi o riconnetti dopo il prossimo messaggio che gli invii.420Per vedere quali connettori ha un thread cloud in esecuzione in claude.ai/code, apri il thread e seleziona **Connectors** dal menu **+** accanto alla sua casella di messaggio. Disattivare un connettore lì lo rimuove da quel thread e lo salva come impostazione predefinita del tuo account, quindi i nuovi thread e le chat claude.ai iniziano senza di esso fino a quando non lo riattivi. Un thread cloud raccoglie un connettore che aggiungi o riconnetti dopo il prossimo messaggio che gli invii.


435| Project instructions | Memory | [Regole permanenti](#give-a-project-standing-context) che ogni nuovo thread riceve |435| Project instructions | Memory | [Regole permanenti](#give-a-project-standing-context) che ogni nuovo thread riceve |

436| Project repositories | Environment | I repository che i nuovi thread clonano |436| Project repositories | Environment | I repository che i nuovi thread clonano |

437| Cloud environment | Environment | Il [cloud environment](#choose-an-environment-for-threads) in cui i nuovi thread vengono eseguiti |437| Cloud environment | Environment | Il [cloud environment](#choose-an-environment-for-threads) in cui i nuovi thread vengono eseguiti |

438| Connectors | Environment | Un link per gestire i connectors claude.ai che i thread ottengono |

439| Plugins | Plugins | I plugin che si caricano in ogni nuovo thread |438| Plugins | Plugins | I plugin che si caricano in ogni nuovo thread |

440| Usage | Usage | [Utilizzo di token](#usage-and-cost) per thread e per modello |439| Usage | Usage | [Utilizzo di token](#usage-and-cost) per thread e per modello |

441| Memory | Memory | I file di [memory](#give-a-project-standing-context) del project |440| Memory | Memory | I file di [memory](#give-a-project-standing-context) del project |

Details

10 Gli ambienti cloud si applicano alle [sessioni cloud](/docs/it/claude-code-on-the-web), che sono disponibili sui piani Pro, Max e Team, e per gli utenti Enterprise con [posti premium o posti Chat + Claude Code](https://support.claude.com/en/articles/11845131-use-claude-code-with-your-team-or-enterprise-plan).10 Gli ambienti cloud si applicano alle [sessioni cloud](/docs/it/claude-code-on-the-web), che sono disponibili sui piani Pro, Max e Team, e per gli utenti Enterprise con [posti premium o posti Chat + Claude Code](https://support.claude.com/en/articles/11845131-use-claude-code-with-your-team-or-enterprise-plan).

11</Note>11</Note>

12 12 

13Ogni [sessione cloud](/docs/it/claude-code-on-the-web) viene eseguita in un ambiente cloud. Puoi configurare un ambiente per consentire o negare l'[accesso di rete](#access-levels), [impostare variabili d'ambiente](#set-environment-variables) per la sessione, sui piani Pro e Max memorizzare [segreti di rete](#add-network-secrets) che le sessioni utilizzano senza vederli, ed eseguire uno [script di configurazione](#setup-scripts) prima che Claude inizi a lavorare.13Ogni [sessione cloud](/docs/it/claude-code-on-the-web) viene eseguita in un ambiente cloud. Puoi configurare un ambiente per consentire o negare l'[accesso di rete](#access-levels), [impostare variabili d'ambiente](#set-environment-variables) per la sessione, memorizzare [segreti di rete](#add-network-secrets) che le sessioni utilizzano senza vederli ed eseguire uno [script di configurazione](#setup-scripts) prima che Claude inizi a lavorare.

14 14 

15Gli stessi ambienti si applicano ovunque avviate una sessione cloud: l'[app Desktop](/docs/it/desktop), l'[app mobile Claude](/docs/it/mobile), il vostro browser su [claude.ai/code](https://claude.ai/code), il terminale con [`claude --cloud`](/docs/it/claude-code-on-the-web#from-terminal-to-cloud), [routine](/docs/it/routines) e [Claude Tag](https://claude.com/docs/claude-tag/overview). Ognuna di queste superfici può anche instradare a un [ambiente self-hosted](/docs/it/self-hosted-environments). [Disponibilità e limitazioni](/docs/it/self-hosted-environments#availability-and-limitations) copre cosa Claude non può ancora utilizzare quando una sessione Claude Tag viene eseguita in uno.15Gli stessi ambienti si applicano ovunque avviate una sessione cloud: l'[app Desktop](/docs/it/desktop), l'[app mobile Claude](/docs/it/mobile), il vostro browser su [claude.ai/code](https://claude.ai/code), il terminale con [`claude --cloud`](/docs/it/claude-code-on-the-web#from-terminal-to-cloud), [routine](/docs/it/routines) e [Claude Tag](https://claude.com/docs/claude-tag/overview). Ognuna di queste superfici può anche instradare a un [ambiente self-hosted](/docs/it/self-hosted-environments). [Disponibilità e limitazioni](/docs/it/self-hosted-environments#availability-and-limitations) copre cosa Claude non può ancora utilizzare quando una sessione Claude Tag viene eseguita in uno.

16 16 


44 Configurare il vostro ambiente44 Configurare il vostro ambiente

45</h2>45</h2>

46 46 

47Create, modificate e archiviate gli ambienti dal selettore di ambiente, che raggiungete su [claude.ai/code](https://claude.ai/code) dopo l'[onboarding web](/docs/it/web-quickstart), oppure dalla casella di messaggio nell'[app Desktop](/docs/it/desktop#cloud-sessions). Gli ambienti che create sono personali al vostro account; gli [ambienti condivisi](#organization-shared-environments) creati da un Owner appaiono nello stesso selettore. Consultate [Strumenti installati](#installed-tools) per vedere cosa è disponibile senza alcuna configurazione.47Aggiungi, modifica e archivia gli ambienti dal selettore di ambiente sotto la casella di messaggio, nella schermata in cui avvii una nuova sessione su [claude.ai/code](https://claude.ai/code). Per raggiungere quella schermata, completa l'[onboarding web](/docs/it/web-quickstart). Per l'app Desktop, consulta [Sessioni cloud](/docs/it/desktop#cloud-sessions). Gli ambienti che crei sono personali al tuo account; gli [ambienti condivisi](#organization-shared-environments) creati da un Owner appaiono nel selettore insieme a questi. Consulta [Strumenti installati](#installed-tools) per vedere cosa è disponibile senza alcuna configurazione.

48 

49Il selettore appare solo finché non invii il primo messaggio di una nuova sessione. Per modificare l'ambiente di una tua sessione cloud in esecuzione, seleziona il cursore a freccia dopo il titolo della sessione in alto, quindi seleziona **Edit cloud environment**.

48 50 

49<Steps>51<Steps>

50 <Step title="Aprire il selettore di ambiente">52 <Step title="Aprire il selettore di ambiente">

51 Su [claude.ai/code](https://claude.ai/code), selezionate l'icona cloud che mostra il nome dell'ambiente corrente, nella riga sopra la casella di messaggio. Non c'è una pagina di impostazioni o un URL diretto per il selettore.53 Nella schermata della nuova sessione, seleziona il primo controllo nella riga sotto la casella di messaggio.

52 

53 <Frame>

54 <img src="https://mintcdn.com/claude-code/ZFId6l95856c5LSw/images/cloud-environment-selector.png?fit=max&auto=format&n=ZFId6l95856c5LSw&q=85&s=cc2813a5664519eaf5a89d793ce5af26" alt="Il selettore di ambiente aperto sopra la casella di messaggio su claude.ai/code. Il pulsante cloud che mostra il nome dell'ambiente Default si trova nella riga sopra la casella di messaggio. Il menu aperto elenca una riga Local con etichette Download e Desktop only, una sezione Cloud dove l'ambiente Default è selezionato con un segno di spunta e mostra un'icona di ingranaggio delle impostazioni al passaggio del mouse, un'opzione Add cloud environment e una sezione Remote Control con istruzioni di configurazione." width="1672" height="682" data-path="images/cloud-environment-selector.png" />

55 </Frame>

56 </Step>54 </Step>

57 55 

58 <Step title="Aggiungere o modificare un ambiente">56 <Step title="Aggiungere o modificare un ambiente">

59 Selezionate **Cloud** per elencare i vostri ambienti. Quindi selezionate **Add cloud environment**, oppure passate il mouse su un ambiente esistente e selezionate l'icona delle impostazioni che appare a destra.57 * **Aggiungere un ambiente**: seleziona **New environment** in fondo al menu per aprire la finestra di dialogo **New environment**. Compila il modulo e seleziona **Add environment**. La tua nuova sessione utilizza quindi l'ambiente che hai aggiunto.

58 * **Modificare un ambiente**: trova la sua riga sotto **Cloud**. Se **Cloud** è una singola riga, selezionala per aprire l'elenco. Se il tuo ambiente non è elencato sotto **Cloud**, seleziona la riga **More** sotto quell'intestazione. Passa il mouse sulla riga dell'ambiente e seleziona l'icona delle impostazioni che appare a destra per aprire la sua finestra di dialogo.

60 59 

61 La finestra di dialogo include il nome, il livello di accesso di rete, le variabili d'ambiente e lo script di configurazione. Quando modifichi un ambiente cloud esistente su un piano Pro o Max, la finestra di dialogo include anche i [segreti di rete](#add-network-secrets).60 La finestra di dialogo include il nome, il livello di accesso di rete, le variabili d'ambiente e lo script di configurazione. Per memorizzare una chiave che le sessioni utilizzano senza vederla, consulta [Aggiungere segreti di rete](#add-network-secrets).

62 

63 <Frame>

64 <img src="https://mintcdn.com/claude-code/ZFId6l95856c5LSw/images/cloud-environment-dialog.png?fit=max&auto=format&n=ZFId6l95856c5LSw&q=85&s=30d4478b31d1f879f7ee287ddab32505" alt="La finestra di dialogo New cloud environment. Un campo Name con il testo segnaposto Default, un selettore Network access impostato su Trusted con link alla politica di rete e ai livelli di accesso, una casella Environment variables che mostra il testo segnaposto in formato .env con una nota che i valori sono visibili a chiunque utilizzi l'ambiente, una casella Setup script descritta come uno script Bash che viene eseguito quando inizia una nuova sessione prima che Claude Code si avvii, e pulsanti Cancel e Create environment." width="874" height="1372" data-path="images/cloud-environment-dialog.png" />

65 </Frame>

66 </Step>61 </Step>

67</Steps>62</Steps>

68 63 


91 86 

92Una sessione cloud imposta anche alcune variabili da sola quando si avvia. Per [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/docs/it/claude-code-on-the-web#manage-context), il valore che la sessione imposta sostituisce uno che aggiungete qui, quindi aggiungere quella chiave qui non ha effetto.87Una sessione cloud imposta anche alcune variabili da sola quando si avvia. Per [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/docs/it/claude-code-on-the-web#manage-context), il valore che la sessione imposta sostituisce uno che aggiungete qui, quindi aggiungere quella chiave qui non ha effetto.

93 88 

94Chiunque utilizzi l'ambiente può leggere i valori. Sui piani Pro e Max, utilizza invece un [segreto di rete](#add-network-secrets) per una chiave che il proxy dell'agente può allegare a una richiesta. Le [richieste che non ricevono mai un segreto](#requests-that-never-get-the-credential) sono elencate lì.89Chiunque utilizzi l'ambiente può leggere i valori. In un ambiente ospitato da Anthropic, utilizza invece un [segreto di rete](#add-network-secrets) per una chiave che il proxy dell'agente può allegare a una richiesta. Le [richieste che non ricevono mai un segreto](#requests-that-never-get-the-credential) sono elencate lì.

95 90 

96<span id="add-api-credentials" />91<span id="add-api-credentials" />

97 92 


101 96 

102Un segreto di rete è una chiave API o un token che memorizzi in un ambiente cloud in modo che Claude possa chiamare quell'API da qualsiasi sessione nell'ambiente senza vedere la chiave. Il proxy dell'agente di Anthropic aggiunge la chiave alle richieste per gli host che elenchi, dopo che ogni richiesta esce dalla VM della sessione, quindi la chiave stessa resta fuori dalla VM.97Un segreto di rete è una chiave API o un token che memorizzi in un ambiente cloud in modo che Claude possa chiamare quell'API da qualsiasi sessione nell'ambiente senza vedere la chiave. Il proxy dell'agente di Anthropic aggiunge la chiave alle richieste per gli host che elenchi, dopo che ogni richiesta esce dalla VM della sessione, quindi la chiave stessa resta fuori dalla VM.

103 98 

104I segreti di rete sono disponibili sui piani Pro e Max. Non sono ancora disponibili sui piani Team o Enterprise, quindi la sezione **Network secrets** non appare nella finestra di dialogo dell'ambiente su quei piani.99I segreti di rete sono disponibili sui piani Pro, Max, Team ed Enterprise. Per verificare se puoi aggiungerne uno tu stesso, consulta [Requisiti](#requirements).

105 100 

106<h4 id="requirements">101<h4 id="requirements">

107 Requisiti102 Requisiti


109 104 

110Questi requisiti determinano se puoi aggiungere un segreto e se il proxy dell'agente può utilizzarlo una volta aggiunto:105Questi requisiti determinano se puoi aggiungere un segreto e se il proxy dell'agente può utilizzarlo una volta aggiunto:

111 106 

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

113 * Su Team ed Enterprise, gli Owner lo detengono e gli Admin no108 * **Il tuo ambiente su Enterprise**: con un ruolo di amministratore dell'organizzazione, aggiungi ed elimini i segreti. Senza di esso, la sezione **Network secrets** elenca i segreti sotto la nota "Only an organization admin can add or delete network secrets", senza il pulsante **Add secret** né quello di eliminazione. Chiedi a un Owner di aggiungere il segreto a un [ambiente condiviso](#organization-shared-environments), quindi esegui lì le tue sessioni

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

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

115* **Tipo di ambiente**: un ambiente cloud ospitato da Anthropic che esiste già. Un [ambiente self-hosted](/docs/it/self-hosted-environments) non ha segreti di rete111* **Tipo di ambiente**: un ambiente cloud ospitato da Anthropic che esiste già. Un [ambiente self-hosted](/docs/it/self-hosted-environments) non ha segreti di rete

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

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


122 118 

123Aggiungi i segreti uno alla volta, e non puoi modificare un segreto dopo averlo aggiunto. Per cambiare gli host o il valore di un segreto, eliminalo e aggiungilo di nuovo.119Aggiungi i segreti uno alla volta, e non puoi modificare un segreto dopo averlo aggiunto. Per cambiare gli host o il valore di un segreto, eliminalo e aggiungilo di nuovo.

124 120 

121Per aggiungere un segreto a un [ambiente condiviso](#organization-shared-environments), aprilo per la modifica dalla pagina **Cloud environments** nelle [impostazioni di amministrazione](https://claude.ai/admin-settings), quindi prosegui con il passaggio 1 dalla sezione **Network secrets**. Se sei su un piano Team e non detieni un [ruolo di amministratore dell'organizzazione](#requirements), segui il passaggio 1 sul tuo ambiente, quindi [compila il modulo più breve](#add-a-secret-without-the-role).

122 

125<Steps>123<Steps>

126 <Step title="Aprire i segreti di rete dell'ambiente">124 <Step title="Aprire i segreti di rete dell'ambiente">

127 [Apri l'ambiente per la modifica](#configure-your-environment) su [claude.ai/code](https://claude.ai/code). Nella finestra di dialogo **Edit environment**, trova la sezione **Network secrets**. Vedi i segreti già presenti nell'ambiente, ognuno con gli host a cui si applica.125 [Apri l'ambiente per la modifica](#configure-your-environment) su [claude.ai/code](https://claude.ai/code). Nella finestra di dialogo **Edit cloud environment**, trova la sezione **Network secrets**. Vedi i segreti già presenti nell'ambiente, ognuno con gli host a cui si applica.

128 </Step>126 </Step>

129 127 

130 <Step title="Aggiungere il segreto">128 <Step title="Aggiungere il segreto">

131 Seleziona **Add secret** e compila il modulo. Mantieni il **Credential type** predefinito, **Bearer**, per una chiave API che viaggia in un'intestazione della richiesta, e compila questi campi:129 Seleziona **Add secret** e compila il modulo. Mantieni il **Secret type** predefinito, **Bearer**, per una chiave API che viaggia in un'intestazione della richiesta, e compila questi campi:

132 130 

133 * **Name**: un'etichetta per il segreto, come `Internal billing API`131 * **Name**: un'etichetta per il segreto, come `Internal billing API`

134 * **Allowed websites**: gli host dell'API, come `api.example.com`. Un `*.` iniziale corrisponde a ogni sottodominio132 * **Allowed websites**: gli host dell'API, come `api.example.com`. Un `*.` iniziale corrisponde a ogni sottodominio

135 * **Custom headers**: una riga per l'intestazione che trasporta la chiave. La riga inizia con `Authorization` come **Name** dell'intestazione e `Bearer` come suo **Prefix**; incolla la chiave stessa come **Value**. Per un'intestazione come `X-Api-Key` che accetta il valore nudo, cambia il nome e cancella il prefisso133 * **Custom headers**: una riga per l'intestazione che trasporta la chiave. La riga inizia con `Authorization` come **Name** dell'intestazione e `Bearer` come suo **Prefix**; incolla la chiave stessa come **Value**. Per un'intestazione come `X-Api-Key` che accetta il valore nudo, cambia il nome e cancella il prefisso

136 134 

137 Per un'API che si autentica in un altro modo, scegli un **Credential type** diverso. L'elenco è lo stesso che [Claude Tag](https://claude.com/docs/claude-tag/overview), l'integrazione Slack per i piani Team ed Enterprise, offre per le [connessioni](https://claude.com/docs/claude-tag/admins/add-connections).135 Per un'API che si autentica in un altro modo, scegli un **Secret type** diverso. L'elenco è lo stesso che [Claude Tag](https://claude.com/docs/claude-tag/overview), l'integrazione Slack per i piani Team ed Enterprise, offre per le [connessioni](https://claude.com/docs/claude-tag/admins/add-connections).

138 </Step>136 </Step>

139 137 

140 <Step title="Salvare il segreto">138 <Step title="Salvare il segreto">

141 Seleziona **Connect**. Il segreto appare nell'elenco con i suoi host, salvato senza il pulsante **Save changes** della finestra di dialogo. Non puoi visualizzare di nuovo il valore dopo il salvataggio.139 Seleziona **Add**. Il segreto appare nell'elenco con i suoi host, salvato senza il pulsante **Save changes** della finestra di dialogo. Non puoi visualizzare di nuovo il valore dopo il salvataggio.

142 </Step>140 </Step>

143</Steps>141</Steps>

144 142 

145Per confermare che il segreto funziona, avvia una sessione nell'ambiente e chiedi a Claude di chiamare l'API, ad esempio con `curl`. L'API risponde come se la chiave fosse nella richiesta, e la chiave non appare nelle variabili d'ambiente della sessione né in alcun file. Se invece l'elenco contrassegna un segreto come **Not sent**, la nota sotto di esso spiega il motivo e cosa fare. Due segreti i cui host si sovrappongono senza corrispondere esattamente non ricevono alcun contrassegno, e il proxy dell'agente ne invia solo uno.143Per confermare che il segreto funziona, avvia una sessione nell'ambiente e chiedi a Claude di chiamare l'API, ad esempio con `curl`. L'API risponde come se la chiave fosse nella richiesta, e la chiave non appare nelle variabili d'ambiente della sessione né in alcun file. Se invece l'elenco contrassegna un segreto come **Not sent**, la nota sotto di esso spiega il motivo e cosa fare. Due segreti i cui host si sovrappongono senza corrispondere esattamente non ricevono alcun contrassegno, e il proxy dell'agente ne invia solo uno.

146 144 

145<h4 id="add-a-secret-without-the-role">

146 Aggiungere un segreto su un piano Team senza un ruolo di amministratore dell'organizzazione

147</h4>

148 

149Se sei su un piano Team e non detieni un [ruolo di amministratore dell'organizzazione](#requirements), il modulo **Add secret** accetta un segreto per un solo host. Seleziona **Add secret** nella [sezione **Network secrets**](#add-a-credential) del tuo ambiente, compila questi campi, quindi seleziona il pulsante **Add secret** del modulo:

150 

151* **Host**: l'unico host che riceve il segreto, come `api.example.com`. Il modulo non accetta un carattere jolly `*.`

152* **Name**: un'etichetta facoltativa per il segreto

153* **Secret type**: **Token** per una chiave che viaggia in un'intestazione della richiesta, oppure **Username and password**. Per un token, incolla la chiave come **Value**

154 

147<h4 id="which-requests-get-the-credential">155<h4 id="which-requests-get-the-credential">

148 Quali richieste ricevono il segreto156 Quali richieste ricevono il segreto

149</h4>157</h4>


175 Archiviare un ambiente183 Archiviare un ambiente

176</h3>184</h3>

177 185 

178Per archiviare uno dei vostri ambienti, apritelo per la modifica e selezionate **Archive**. Un Owner archivia un [ambiente condiviso](#organization-shared-environments) dalla pagina **Cloud environments** nelle impostazioni di amministrazione. Non potete eliminare un ambiente, solo archiviarlo.186Per archiviare uno dei tuoi ambienti, aprilo per la modifica, seleziona **Archive environment** e conferma. Se l'ambiente è [condiviso con la tua organizzazione](#organization-shared-environments), è invece un Owner ad archiviarlo dalla pagina **Cloud environments** nelle [impostazioni di amministrazione](https://claude.ai/admin-settings), quindi chiedi a un Owner, a meno che tu non lo sia. Non puoi eliminare un ambiente, solo archiviarlo.

179 187 

180L'archiviazione influisce sulle nuove sessioni, non su quelle in esecuzione:188L'archiviazione influisce sulle nuove sessioni, non su quelle in esecuzione:

181 189 


199 207 

200Gli Owner scelgono l'[ambiente predefinito](#the-default-environment) dell'organizzazione separatamente, su [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code).208Gli Owner scelgono l'[ambiente predefinito](#the-default-environment) dell'organizzazione separatamente, su [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code).

201 209 

202Le sessioni di ogni membro in un ambiente condiviso leggono le sue variabili, quindi non includervi segreti. I [segreti di rete](#add-network-secrets), che danno alle sessioni una chiave che non possono leggere, non sono ancora disponibili sui piani Team o Enterprise.210Per dare alle sessioni di un ambiente condiviso una chiave che non possono leggere, aggiungi un [segreto di rete](#add-network-secrets) quando modifichi l'ambiente nella pagina **Cloud environments**. Non includere segreti nelle sue variabili, perché le sessioni di ogni membro le leggono.

203 211 

204<h3 id="set-the-environment-a-claude-tag-channel-uses">212<h3 id="set-the-environment-a-claude-tag-channel-uses">

205 Impostare l'ambiente che un canale Claude Tag utilizza213 Impostare l'ambiente che un canale Claude Tag utilizza


216 224 

217Ogni ambiente imposta un livello di accesso di rete, che controlla le connessioni in uscita che le sue sessioni possono effettuare. Il livello predefinito, **Trusted**, consente i registri dei pacchetti e altri [domini consentiti](#default-allowed-domains); **Custom** accetta il vostro elenco di domini.225Ogni ambiente imposta un livello di accesso di rete, che controlla le connessioni in uscita che le sue sessioni possono effettuare. Il livello predefinito, **Trusted**, consente i registri dei pacchetti e altri [domini consentiti](#default-allowed-domains); **Custom** accetta il vostro elenco di domini.

218 226 

219Per modificare l'accesso di rete di un ambiente, [apritelo per la modifica](#configure-your-environment) e utilizzate il selettore **Network access** nella finestra di dialogo. Un [ambiente condiviso](#organization-shared-environments) si apre in sola lettura lì, quindi un Owner modifica il suo accesso di rete dalla pagina **Cloud environments** nelle [impostazioni di amministrazione](https://claude.ai/admin-settings) invece. L'icona cloud che apre il selettore appare sulle superfici dell'app elencate sotto [L'ambiente Default](#the-default-environment) e nell'[editor di routine](/docs/it/routines#environments-and-network-access); gli ambienti personali non hanno una pagina separata nelle impostazioni del vostro account claude.ai.227Per modificare l'accesso di rete di un ambiente, [aprilo per la modifica](#configure-your-environment) e utilizza il selettore **Network access** nella finestra di dialogo. Un [ambiente condiviso](#organization-shared-environments) si apre in sola lettura lì, quindi un Owner modifica il suo accesso di rete dalla pagina **Cloud environments** nelle [impostazioni di amministrazione](https://claude.ai/admin-settings) invece. Il controllo che apre il selettore appare sulle superfici dell'app elencate sotto [L'ambiente Default](#the-default-environment) e nell'[editor di routine](/docs/it/routines#environments-and-network-access); gli ambienti personali non hanno una pagina separata nelle impostazioni del tuo account claude.ai.

220 228 

221Quando modificate l'accesso di rete di un ambiente ospitato da Anthropic, le sue sessioni esistenti seguono la nuova impostazione entro circa un minuto, per le richieste che passano attraverso l'[elenco di consentiti di rete](#access-levels) della sessione. Non è necessario avviare una nuova sessione.229Quando modificate l'accesso di rete di un ambiente ospitato da Anthropic, le sue sessioni esistenti seguono la nuova impostazione entro circa un minuto, per le richieste che passano attraverso l'[elenco di consentiti di rete](#access-levels) della sessione. Non è necessario avviare una nuova sessione.

222 230 


274* **Credenziali Git**: il client git all'interno della VM utilizza una credenziale con ambito, che il proxy verifica e scambia con il vostro token GitHub effettivo.282* **Credenziali Git**: il client git all'interno della VM utilizza una credenziale con ambito, che il proxy verifica e scambia con il vostro token GitHub effettivo.

275* **Richieste API**: le richieste dagli strumenti GitHub integrati e da `gh` sotto il [segnaposto `proxy-injected`](#work-with-github-issues-and-pull-requests), vengono inviate con le vostre credenziali reali sostituite.283* **Richieste API**: le richieste dagli strumenti GitHub integrati e da `gh` sotto il [segnaposto `proxy-injected`](#work-with-github-issues-and-pull-requests), vengono inviate con le vostre credenziali reali sostituite.

276* **Restrizioni sui push**: il proxy rifiuta le eliminazioni di branch e i push di qualsiasi cosa diversa da un branch, come un tag. Non limita quali branch un push può aggiornare. Per farlo, usa le regole di protezione dei branch o i ruleset su GitHub.284* **Restrizioni sui push**: il proxy rifiuta le eliminazioni di branch e i push di qualsiasi cosa diversa da un branch, come un tag. Non limita quali branch un push può aggiornare. Per farlo, usa le regole di protezione dei branch o i ruleset su GitHub.

277* **Ambito del repository**: il proxy serve le richieste API GitHub per i repository collegati alla sessione. Una richiesta API per un altro repository riceve un 403 il cui messaggio inizia con `GitHub access to` e contiene `is not enabled for this session`.285* **Ambito del repository**: il proxy gestisce le richieste API GitHub per i repository collegati alla sessione. Una richiesta API per un altro repository riceve un 403 il cui messaggio inizia con `GitHub access to` e contiene `is not enabled for this session`. Un archivio sorgente che recuperi tramite un URL `github.com/{owner}/{repo}/archive/` o `codeload.github.com` riceve lo stesso 403 quando il repository non è collegato, anche se è pubblico.

278* **Restrizioni GraphQL**: il proxy rifiuta le richieste all'endpoint GraphQL di GitHub con un 403 il cui messaggio inizia con `GitHub GraphQL is not available from Claude Code sessions` e indica il fallback REST, `gh api repos/{owner}/{repo}/...`. I sottocomandi di `gh` che usano GraphQL, come `gh pr` e `gh issue`, ricevono lo stesso 403. La restrizione si applica a ogni richiesta attraverso il proxy indipendentemente dalle credenziali che fornisci, quindi anche un `GH_TOKEN` che imposti riceve lo stesso 403. Claude non può raggiungere attraverso il proxy le API GitHub che esistono solo in GraphQL, come Projects v2.286* **Restrizioni GraphQL**: il proxy rifiuta le richieste all'endpoint GraphQL di GitHub con un 403 il cui messaggio inizia con `GitHub GraphQL is not available from Claude Code sessions` e indica il fallback REST, `gh api repos/{owner}/{repo}/...`. I sottocomandi di `gh` che usano GraphQL, come `gh pr` e `gh issue`, ricevono lo stesso 403. La restrizione si applica a ogni richiesta attraverso il proxy indipendentemente dalle credenziali che fornisci, quindi anche un `GH_TOKEN` che imposti riceve lo stesso 403. Claude non può raggiungere attraverso il proxy le API GitHub che esistono solo in GraphQL, come Projects v2.

279 287 

280I file sottoposti a commit dai repository pubblici arrivano tramite `raw.githubusercontent.com`, che il [proxy di sicurezza](#security-proxy) gestisce invece. Quel dominio è nella lista [Trusted](#default-allowed-domains) predefinita, quindi quei file rimangono raggiungibili a meno che il [livello di accesso](#access-levels) dell'ambiente non lo escluda.288I file sottoposti a commit dai repository pubblici arrivano tramite `raw.githubusercontent.com`, che il [proxy di sicurezza](#security-proxy) gestisce invece. Quel dominio è nella lista [Trusted](#default-allowed-domains) predefinita, quindi quei file rimangono raggiungibili a meno che il [livello di accesso](#access-levels) dell'ambiente non lo escluda.


318| Plugin abilitati solo nelle tue impostazioni utente | No | `enabledPlugins` con ambito utente si trova in `~/.claude/settings.json` sulla tua macchina |326| Plugin abilitati solo nelle tue impostazioni utente | No | `enabledPlugins` con ambito utente si trova in `~/.claude/settings.json` sulla tua macchina |

319| Server MCP che hai aggiunto con `claude mcp add` nell'ambito locale predefinito o nell'ambito utente | No | Questi scrivono in `~/.claude.json` sulla tua macchina, non nel repository. Aggiungi il server con `claude mcp add --scope project`, che scrive il file [`.mcp.json`](/docs/it/mcp#project-scope) del repository, e fai il commit di quel file. Una sessione con un solo repository lo carica |327| Server MCP che hai aggiunto con `claude mcp add` nell'ambito locale predefinito o nell'ambito utente | No | Questi scrivono in `~/.claude.json` sulla tua macchina, non nel repository. Aggiungi il server con `claude mcp add --scope project`, che scrive il file [`.mcp.json`](/docs/it/mcp#project-scope) del repository, e fai il commit di quel file. Una sessione con un solo repository lo carica |

320| Variabili di trasporto nel blocco `env` di `.claude/settings.json` del tuo repository, come `NODE_EXTRA_CA_CERTS` e le [variabili del certificato client mTLS](/docs/it/network-config#mtls-authentication) | No | L'ambiente di hosting gestisce la connessione API della sessione, quindi Claude Code ignora queste chiavi e annota ogni chiave ignorata nel log di debug della sessione |328| Variabili di trasporto nel blocco `env` di `.claude/settings.json` del tuo repository, come `NODE_EXTRA_CA_CERTS` e le [variabili del certificato client mTLS](/docs/it/network-config#mtls-authentication) | No | L'ambiente di hosting gestisce la connessione API della sessione, quindi Claude Code ignora queste chiavi e annota ogni chiave ignorata nel log di debug della sessione |

321| Chiavi API e token per i servizi che Claude chiama | Sui piani Pro e Max, come [segreti di rete](#add-network-secrets) | Aggiungi la chiave una volta sull'ambiente e il proxy dell'agente la allega alle richieste per gli host che elenchi. Una chiave che il proxy dell'agente [non può allegare](#requests-that-never-get-the-credential), o qualsiasi chiave su un piano Team o Enterprise, rimane in una variabile d'ambiente |329| Chiavi API e token per i servizi che Claude chiama | In un ambiente ospitato da Anthropic, come [segreti di rete](#add-network-secrets) | Aggiungi la chiave una volta sull'ambiente e il proxy dell'agente la allega alle richieste per gli host che elenchi. Una chiave che il proxy dell'agente [non può allegare](#requests-that-never-get-the-credential) rimane in una variabile d'ambiente |

322| Autenticazione interattiva come AWS SSO | No | Non supportata. SSO richiede un login basato su browser che non può essere eseguito in una sessione cloud |330| Autenticazione interattiva come AWS SSO | No | Non supportata. SSO richiede un login basato su browser che non può essere eseguito in una sessione cloud |

323 331 

324Per rendere disponibile la tua configurazione nelle sessioni cloud, fanne il commit nel repository.332Per rendere disponibile la tua configurazione nelle sessioni cloud, fanne il commit nel repository.

325 333 

326Chiunque utilizzi l'ambiente può leggerne le variabili d'ambiente e lo script di configurazione. La nota della finestra di dialogo sotto **Environment variables** lo indica e sconsiglia di inserirvi segreti. Sui piani Pro e Max, memorizza invece una chiave che il proxy dell'agente può allegare come [segreto di rete](#add-network-secrets).334Chiunque utilizzi l'ambiente può leggerne le variabili d'ambiente e lo script di configurazione. La nota della finestra di dialogo sotto **Environment variables** lo indica e sconsiglia di inserirvi segreti. In un ambiente ospitato da Anthropic, memorizza invece una chiave che il proxy dell'agente può allegare come [segreto di rete](#add-network-secrets).

327 335 

328<h4 id="add-personal-preferences-without-committing-to-the-repo">336<h4 id="add-personal-preferences-without-committing-to-the-repo">

329 Aggiungere preferenze personali senza fare il commit nel repository337 Aggiungere preferenze personali senza fare il commit nel repository

code-review.md +0 −2

Details

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

156* Il PR deve essere aperto156* Il PR deve essere aperto

157 157 

158Se il repository appartiene a un'organizzazione e la tua iscrizione a quell'organizzazione è privata, che è l'impostazione predefinita di GitHub, GitHub non ti identifica a Claude come membro. Claude potrebbe comunque reagire al tuo commento con 👀, ma non avvia una revisione a meno che tu non sia stato aggiunto al repository direttamente come collaboratore, anche quando un team o le autorizzazioni di base dell'organizzazione ti danno accesso in scrittura. Per risolvere questo, [rendi pubblica la tua iscrizione all'organizzazione](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-membership-in-organizations/publicizing-or-hiding-organization-membership) o chiedi a un amministratore del repository di aggiungerti al repository come collaboratore.

159 

160A 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.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.

161 159 

162Se 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.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.

commands.md +6 −6

Details

67| `/branch [name]` | Crea un branch della conversazione corrente a questo punto, così puoi provare una direzione diversa senza perdere la conversazione così com'è. Ti sposta nel branch e conserva l'originale, a cui puoi tornare con `/resume`. Per eseguire una copia come [sessione in background](/docs/it/agent-view) separata invece di spostarti al suo interno, usa `/fork`; per affidare un'attività secondaria a un [subagent](/docs/it/sub-agents) che riferisce in questa conversazione, usa `/subtask` |67| `/branch [name]` | Crea un branch della conversazione corrente a questo punto, così puoi provare una direzione diversa senza perdere la conversazione così com'è. Ti sposta nel branch e conserva l'originale, a cui puoi tornare con `/resume`. Per eseguire una copia come [sessione in background](/docs/it/agent-view) separata invece di spostarti al suo interno, usa `/fork`; per affidare un'attività secondaria a un [subagent](/docs/it/sub-agents) che riferisce in questa conversazione, usa `/subtask` |

68| `/btw [question]` | Pone una [domanda a margine](/docs/it/interactive-mode#side-questions-with-%2Fbtw) sulla sessione corrente senza aggiungerla alla conversazione. Se esegui `/btw` senza una domanda, Claude Code mostra la tua domanda a margine più recente così puoi sfogliare le risposte precedenti; se non ne hai ancora fatta una, Claude Code stampa una riga di utilizzo. Prima della v2.1.212, `/btw` richiedeva una domanda |68| `/btw [question]` | Pone una [domanda a margine](/docs/it/interactive-mode#side-questions-with-%2Fbtw) sulla sessione corrente senza aggiungerla alla conversazione. Se esegui `/btw` senza una domanda, Claude Code mostra la tua domanda a margine più recente così puoi sfogliare le risposte precedenti; se non ne hai ancora fatta una, Claude Code stampa una riga di utilizzo. Prima della v2.1.212, `/btw` richiedeva una domanda |

69| `/bug [report]` | Segnala un bug o condivide la tua conversazione. Scegli quanta cronologia della sessione includere e confermi in una schermata di consenso prima che venga inviato qualsiasi contenuto. Quando hai effettuato l'accesso ad Anthropic su una connessione first-party, la segnalazione va ad Anthropic; su un provider di terze parti, o senza credenziali Anthropic, Claude Code scrive la segnalazione in un [archivio locale in `~/.claude/feedback-bundles/`](/docs/it/data-usage#telemetry-services) che inoltri tu stesso. Nell'[estensione VS Code](/docs/it/vs-code#use-the-prompt-box), `/bug` apre invece la finestra di dialogo di feedback dell'estensione; richiede Claude Code v2.1.229 o successiva. Quando lo esegui mentre Claude sta rispondendo, Claude Code apre immediatamente la finestra di dialogo. Prima della v2.1.232, Claude Code metteva il comando in coda fino al termine del turno. Alias: `/share`. Prima della v2.1.212, `/bug` e `/share` erano alias di `/feedback` |69| `/bug [report]` | Segnala un bug o condivide la tua conversazione. Scegli quanta cronologia della sessione includere e confermi in una schermata di consenso prima che venga inviato qualsiasi contenuto. Quando hai effettuato l'accesso ad Anthropic su una connessione first-party, la segnalazione va ad Anthropic; su un provider di terze parti, o senza credenziali Anthropic, Claude Code scrive la segnalazione in un [archivio locale in `~/.claude/feedback-bundles/`](/docs/it/data-usage#telemetry-services) che inoltri tu stesso. Nell'[estensione VS Code](/docs/it/vs-code#use-the-prompt-box), `/bug` apre invece la finestra di dialogo di feedback dell'estensione; richiede Claude Code v2.1.229 o successiva. Quando lo esegui mentre Claude sta rispondendo, Claude Code apre immediatamente la finestra di dialogo. Prima della v2.1.232, Claude Code metteva il comando in coda fino al termine del turno. Alias: `/share`. Prima della v2.1.212, `/bug` e `/share` erano alias di `/feedback` |

70| `/cd <path>` | Sposta questa sessione in una nuova directory di lavoro, mantenendo la conversazione. Digita un percorso parziale per vedere i suggerimenti di directory corrispondenti; premi `Tab` per accettarne uno. I suggerimenti richiedono Claude Code v2.1.206 o successiva. Per sapere cosa Claude Code applica dalla nuova directory non appena ti sposti e in cosa `/cd` differisce da `/add-dir`, consulta [Spostare la sessione in un'altra directory](/docs/it/permissions#move-the-session-to-another-directory) |70| `/cd <path>` | Sposta questa sessione in una nuova directory di lavoro, mantenendo la conversazione. Digita un percorso parziale per vedere i suggerimenti di directory corrispondenti; premi `Tab` per accettarne uno. Per sapere cosa Claude Code applica dalla nuova directory non appena ti sposti e in cosa `/cd` differisce da `/add-dir`, consulta [Spostare la sessione in un'altra directory](/docs/it/permissions#move-the-session-to-another-directory) |

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

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 [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` |

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`); richiede Claude Code v2.1.205 o successiva |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` |

79| `/context [all]` | Visualizza l'utilizzo corrente del contesto come griglia colorata. Mostra suggerimenti di ottimizzazione per strumenti che occupano molto contesto, memoria sovraccarica e avvisi di capacità. Quando la conversazione supera la finestra di contesto, l'output include un [avviso](/docs/it/errors#context-exceeds-the-token-limit) che mostra di quanto hai superato il limite e quale comando libera spazio. In [modalità a schermo intero](/docs/it/fullscreen), `/context` comprime il dettaglio per elemento per mantenere visibile la griglia. Passa `all` per espanderlo |79| `/context [all]` | Visualizza l'utilizzo corrente del contesto come griglia colorata. Mostra suggerimenti di ottimizzazione per strumenti che occupano molto contesto, memoria sovraccarica e avvisi di capacità. Quando la conversazione supera la finestra di contesto, l'output include un [avviso](/docs/it/errors#context-exceeds-the-token-limit) che mostra di quanto hai superato il limite e quale comando libera spazio. In [modalità a schermo intero](/docs/it/fullscreen), `/context` comprime il dettaglio per elemento per mantenere visibile la griglia. Passa `all` per espanderlo |


91| `/effort [level\|auto\|status\|ultracode [on\|off]]` | Imposta il [livello di sforzo](/docs/it/model-config#adjust-effort-level): da `low` a `xhigh`, `max` oppure `auto`; `status` lo stampa. `ultracode` o `ultracode on` attiva [ultracode](/docs/it/workflows#let-claude-decide-with-ultracode) per la sessione al livello corrente, e `ultracode off` lo disattiva; la chiave [`ultracode`](/docs/it/settings-reference#ultracode) lo rende persistente. `max` vale solo per la sessione. Gli argomenti `on` e `off` e il mantenimento del livello corrente richiedono Claude Code v2.1.284 o successiva. Prima della v2.1.284, `/effort ultracode` impostava la sessione su `xhigh` e `/effort ultracode off` falliva con `Invalid argument`. Eseguilo mentre Claude sta rispondendo e, una volta confermato l'[avviso sulla cache](/docs/it/prompt-caching#changing-effort-level), se Claude Code ne mostra uno, Claude Code applica il nuovo livello alla richiesta successiva in quel turno. Prima della v2.1.242, Claude Code decideva in base a un feature flag recuperato da Anthropic se eseguire il comando a metà turno o metterlo in coda fino al termine del turno, e lo metteva sempre in coda in una sessione che non [recupera i feature flag](/docs/it/env-vars#features-that-need-feature-flag-fetching), come su un [provider di terze parti](/docs/it/third-party-integrations). Funziona con `-p` |91| `/effort [level\|auto\|status\|ultracode [on\|off]]` | Imposta il [livello di sforzo](/docs/it/model-config#adjust-effort-level): da `low` a `xhigh`, `max` oppure `auto`; `status` lo stampa. `ultracode` o `ultracode on` attiva [ultracode](/docs/it/workflows#let-claude-decide-with-ultracode) per la sessione al livello corrente, e `ultracode off` lo disattiva; la chiave [`ultracode`](/docs/it/settings-reference#ultracode) lo rende persistente. `max` vale solo per la sessione. Gli argomenti `on` e `off` e il mantenimento del livello corrente richiedono Claude Code v2.1.284 o successiva. Prima della v2.1.284, `/effort ultracode` impostava la sessione su `xhigh` e `/effort ultracode off` falliva con `Invalid argument`. Eseguilo mentre Claude sta rispondendo e, una volta confermato l'[avviso sulla cache](/docs/it/prompt-caching#changing-effort-level), se Claude Code ne mostra uno, Claude Code applica il nuovo livello alla richiesta successiva in quel turno. Prima della v2.1.242, Claude Code decideva in base a un feature flag recuperato da Anthropic se eseguire il comando a metà turno o metterlo in coda fino al termine del turno, e lo metteva sempre in coda in una sessione che non [recupera i feature flag](/docs/it/env-vars#features-that-need-feature-flag-fetching), come su un [provider di terze parti](/docs/it/third-party-integrations). Funziona con `-p` |

92| `/exit` | Esce dalla CLI. In una [sessione in background](/docs/it/agent-view#attach-to-a-session) collegata, la scollega e la sessione continua a essere eseguita. Alias: `/quit` |92| `/exit` | Esce dalla CLI. In una [sessione in background](/docs/it/agent-view#attach-to-a-session) collegata, la scollega e la sessione continua a essere eseguita. Alias: `/quit` |

93| `/export [filename]` | Esporta la conversazione corrente come testo semplice. Con un nome file, scrive direttamente in quel file. Senza, apre una finestra di dialogo per copiarla negli appunti o salvarla in un file |93| `/export [filename]` | Esporta la conversazione corrente come testo semplice. Con un nome file, scrive direttamente in quel file. Senza, apre una finestra di dialogo per copiarla negli appunti o salvarla in un file |

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

95| `/feedback [report]` | Invia feedback sul prodotto Claude Code. Apre la stessa finestra di dialogo di [`/bug`](#all-commands), con lo stesso passaggio di consenso, le stesse regole di invio e lo stesso comportamento a metà turno. Nelle sessioni con [feedback redatto da Claude](/docs/it/tools-reference#sendfeedback-tool-behavior), `/feedback` senza argomento apre invece la coda delle bozze, dove puoi rivedere, modificare, inviare o scartare le bozze messe in coda da Claude; la coda include un'opzione per scrivere una nuova segnalazione nella finestra di dialogo. Con un argomento, e sempre per `/bug`, la finestra di dialogo si apre direttamente |95| `/feedback [report]` | Invia feedback sul prodotto Claude Code. Apre la stessa finestra di dialogo di [`/bug`](#all-commands), con lo stesso passaggio di consenso, le stesse regole di invio e lo stesso comportamento a metà turno. Nelle sessioni con [feedback redatto da Claude](/docs/it/tools-reference#sendfeedback-tool-behavior), `/feedback` senza argomento apre invece la coda delle bozze, dove puoi rivedere, modificare, inviare o scartare le bozze messe in coda da Claude; la coda include un'opzione per scrivere una nuova segnalazione nella finestra di dialogo. Con un argomento, e sempre per `/bug`, la finestra di dialogo si apre direttamente |

96| `/fewer-permission-prompts` | **[Skill](/docs/it/skills#bundled-skills).** Analizza le tue trascrizioni alla ricerca di chiamate comuni di sola lettura a Bash e agli strumenti MCP, poi aggiunge un'allowlist ordinata per priorità al file `.claude/settings.json` del progetto per ridurre le richieste di permesso |96| `/fewer-permission-prompts` | **[Skill](/docs/it/skills#bundled-skills).** Analizza le tue trascrizioni alla ricerca di chiamate comuni di sola lettura a Bash e agli strumenti MCP, poi aggiunge un'allowlist ordinata per priorità al file `.claude/settings.json` del progetto per ridurre le richieste di permesso |

97| `/focus` | Attiva o disattiva la vista focus, che mostra solo il tuo ultimo prompt, un riepilogo di una riga delle chiamate agli strumenti con le statistiche delle modifiche (diffstat) e la risposta finale. Il riepilogo delle chiamate agli strumenti conta anche i subagent avviati nel turno e comprime le notifiche delle attività in background completate in un unico conteggio. La selezione persiste tra le sessioni; imposta [`viewMode`](/docs/it/settings-reference#viewmode) nelle impostazioni per sovrascriverla. Disponibile solo con il [rendering a schermo intero](/docs/it/fullscreen). Da un client [Remote Control](/docs/it/remote-control), esegui `/focus [on\|off]` per attivare o disattivare la vista focus solo per la sessione corrente, senza modificare la selezione salvata; questo richiede Claude Code v2.1.281 o successiva. L'[estensione VS Code](/docs/it/vs-code#use-the-prompt-box) offre una propria vista Focus come opzione attivabile nel menu dei comandi, memorizzata come impostazione dell'estensione, indipendente da `viewMode` |97| `/focus` | Attiva o disattiva la vista focus, che mostra solo il tuo ultimo prompt, un riepilogo di una riga delle chiamate agli strumenti con le statistiche delle modifiche (diffstat) e la risposta finale. Il riepilogo delle chiamate agli strumenti conta anche i subagent avviati nel turno e comprime le notifiche delle attività in background completate in un unico conteggio. La selezione persiste tra le sessioni; imposta [`viewMode`](/docs/it/settings-reference#viewmode) nelle impostazioni per sovrascriverla. Disponibile solo con il [rendering a schermo intero](/docs/it/fullscreen). Da un client [Remote Control](/docs/it/remote-control), esegui `/focus [on\|off]` per attivare o disattivare la vista focus solo per la sessione corrente, senza modificare la selezione salvata; questo richiede Claude Code v2.1.281 o successiva. L'[estensione VS Code](/docs/it/vs-code#use-the-prompt-box) offre una propria vista Focus come opzione attivabile nel menu dei comandi, memorizzata come impostazione dell'estensione, indipendente da `viewMode` |


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

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

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

114| `/mcp [reconnect (<server>\|all)\|enable\|disable [<server>\|all]]` | Gestisce le connessioni ai server MCP e l'autenticazione OAuth. Eseguilo senza argomento per aprire l'elenco interattivo, oppure passa `reconnect`, `enable` o `disable` con il nome di un server o `all` per modificare lo stato della connessione senza aprirlo. `reconnect all` [riprova ogni server che ha avuto errori o che richiede l'autenticazione](/docs/it/mcp#retry-failed-servers-yourself). In modalità non interattiva (`-p`), eseguirlo senza argomento stampa un riepilogo testuale dello stato dei server invece di aprire l'elenco; richiede Claude Code v2.1.205 o successiva |114| `/mcp [reconnect (<server>\|all)\|enable\|disable [<server>\|all]]` | Gestisce le connessioni ai server MCP e l'autenticazione OAuth. Eseguilo senza argomento per aprire l'elenco interattivo, oppure passa `reconnect`, `enable` o `disable` con il nome di un server o `all` per modificare lo stato della connessione senza aprirlo. `reconnect all` [riprova ogni server che ha avuto errori o che richiede l'autenticazione](/docs/it/mcp#retry-failed-servers-yourself). In modalità non interattiva (`-p`), eseguirlo senza argomento stampa un riepilogo testuale dello stato dei server invece di aprire l'elenco |

115| `/memory` | Modifica i file `CLAUDE.md`, abilita o disabilita la [memoria automatica](/docs/it/memory#auto-memory) e visualizza le voci della memoria automatica |115| `/memory` | Modifica i file `CLAUDE.md`, abilita o disabilita la [memoria automatica](/docs/it/memory#auto-memory) e visualizza le voci della memoria automatica |

116| `/mobile` | Mostra il codice QR per scaricare l'app mobile Claude. Alias: `/ios`, `/android` |116| `/mobile` | Mostra il codice QR per scaricare l'app mobile Claude. Alias: `/ios`, `/android` |

117| `/model [model]` | Cambia il modello di AI e lo salva come predefinito per le nuove sessioni. Per i modelli che lo supportano, usa le frecce sinistra/destra per [regolare il livello di sforzo](/docs/it/model-config#adjust-effort-level). Senza argomento, apre un selettore; premi `s` su una riga per cambiare solo per la sessione corrente. Consulta [quando Claude Code ti chiede di confermare il cambio](/docs/it/prompt-caching#switching-models). Una volta confermato il cambio, se Claude Code lo chiede, Claude Code applica la modifica senza attendere che la risposta corrente termini. Prima della v2.1.242, Claude Code decideva in base a un feature flag recuperato da Anthropic se eseguire il comando a metà turno o metterlo in coda fino al termine del turno, e lo metteva sempre in coda in una sessione che non [recupera i feature flag](/docs/it/env-vars#features-that-need-feature-flag-fetching), come su un [provider di terze parti](/docs/it/third-party-integrations). Disponibile anche in modalità non interattiva (`-p`) con un argomento modello invece del selettore, dove si applica solo alla sessione corrente e non viene salvato come predefinito; richiede Claude Code v2.1.205 o successiva |117| `/model [model]` | Cambia il modello di AI e lo salva come predefinito per le nuove sessioni. Per i modelli che lo supportano, usa le frecce sinistra/destra per [regolare il livello di sforzo](/docs/it/model-config#adjust-effort-level). Senza argomento, apre un selettore; premi `s` su una riga per cambiare solo per la sessione corrente. Consulta [quando Claude Code ti chiede di confermare il cambio](/docs/it/prompt-caching#switching-models). Una volta confermato il cambio, se Claude Code lo chiede, Claude Code applica la modifica senza attendere che la risposta corrente termini. Prima della v2.1.242, Claude Code decideva in base a un feature flag recuperato da Anthropic se eseguire il comando a metà turno o metterlo in coda fino al termine del turno, e lo metteva sempre in coda in una sessione che non [recupera i feature flag](/docs/it/env-vars#features-that-need-feature-flag-fetching), come su un [provider di terze parti](/docs/it/third-party-integrations). Disponibile anche in modalità non interattiva (`-p`) con un argomento modello invece del selettore, dove si applica solo alla sessione corrente e non viene salvato come predefinito; richiede Claude Code v2.1.205 o successiva |


130| `/release-notes` | Visualizza il changelog in un selettore di versione interattivo. Seleziona una versione specifica per vederne le note di rilascio, oppure scegli di mostrare tutte le versioni. Le note compaiono nella trascrizione senza entrare nella conversazione che Claude vede |130| `/release-notes` | Visualizza il changelog in un selettore di versione interattivo. Seleziona una versione specifica per vederne le note di rilascio, oppure scegli di mostrare tutte le versioni. Le note compaiono nella trascrizione senza entrare nella conversazione che Claude vede |

131| `/reload-plugins [--force]` | Ricarica tutti i [plugin](/docs/it/plugins/overview) attivi per applicare le modifiche in sospeso senza riavviare. Riporta i conteggi per ogni componente ricaricato e segnala eventuali errori di caricamento. Quando il ricaricamento cambierebbe gli strumenti MCP caricati e invaliderebbe la cache del prompt, il comando mostra un avviso e salta il ricaricamento a meno che tu non passi `--force`. Disponibile anche in modalità non interattiva (`-p`), nell'Agent SDK e nell'app desktop, dove viene eseguito solo sull'input digitato direttamente nella sessione e non applica le modifiche ai server MCP dei plugin; richiede Claude Code v2.1.260 o successiva. Consulta [Applicare le modifiche ai plugin senza riavviare](/docs/it/plugins/cli-reference#reload-plugins) |131| `/reload-plugins [--force]` | Ricarica tutti i [plugin](/docs/it/plugins/overview) attivi per applicare le modifiche in sospeso senza riavviare. Riporta i conteggi per ogni componente ricaricato e segnala eventuali errori di caricamento. Quando il ricaricamento cambierebbe gli strumenti MCP caricati e invaliderebbe la cache del prompt, il comando mostra un avviso e salta il ricaricamento a meno che tu non passi `--force`. Disponibile anche in modalità non interattiva (`-p`), nell'Agent SDK e nell'app desktop, dove viene eseguito solo sull'input digitato direttamente nella sessione e non applica le modifiche ai server MCP dei plugin; richiede Claude Code v2.1.260 o successiva. Consulta [Applicare le modifiche ai plugin senza riavviare](/docs/it/plugins/cli-reference#reload-plugins) |

132| `/reload-skills` | Ripete la scansione delle directory di [skill](/docs/it/skills) e comandi, così le skill aggiunte o modificate su disco durante la sessione diventano disponibili senza riavviare. Riporta quante skill sono disponibili e quante sono state aggiunte o rimosse |132| `/reload-skills` | Ripete la scansione delle directory di [skill](/docs/it/skills) e comandi, così le skill aggiunte o modificate su disco durante la sessione diventano disponibili senza riavviare. Riporta quante skill sono disponibili e quante sono state aggiunte o rimosse |

133| `/remote-control` | Rende questa sessione disponibile per [Remote Control](/docs/it/remote-control) da claude.ai. Se lo esegui senza aver effettuato l'accesso, stampa che Remote Control richiede un abbonamento claude.ai e ti spiega come accedere; prima della v2.1.206 riportava `Unknown command: /remote-control`. Alias: `/rc` |133| `/remote-control` | Rende questa sessione disponibile per [Remote Control](/docs/it/remote-control) da claude.ai. Se lo esegui senza aver effettuato l'accesso, stampa che Remote Control richiede un abbonamento claude.ai e ti spiega come accedere. Alias: `/rc` |

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`); richiede Claude Code v2.1.205 o successiva. 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#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` |

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

Details

419 * Puoi fare riferimento a più file in un singolo messaggio (ad esempio, "@file1.js and @file2.js")419 * Puoi fare riferimento a più file in un singolo messaggio (ad esempio, "@file1.js and @file2.js")

420</Tip>420</Tip>

421 421 

422Per impedire ai riferimenti `@` di includere il contenuto dei file e gli elenchi delle directory nel tuo messaggio, imposta [`CLAUDE_CODE_DISABLE_FILE_MENTIONS=1`](/docs/it/env-vars#variables) nella tua shell o nelle impostazioni utente. Claude riceve quindi i percorsi a cui hai fatto riferimento insieme a una nota che gli indica di leggerli usando i suoi strumenti per i file. La variabile richiede Claude Code v2.1.299 o successivo, e Claude Code la ignora nelle impostazioni di progetto e locali.

423 

422***424***

423 425 

424<h3 id="run-claude-on-a-schedule">426<h3 id="run-claude-on-a-schedule">

Details

1602| Prompt di sistema e stile di output | Entrambi continuano ad applicarsi |1602| Prompt di sistema e stile di output | Entrambi continuano ad applicarsi |

1603| CLAUDE.md nella radice del progetto e regole senza ambito | Reinizializzato dal disco |1603| CLAUDE.md nella radice del progetto e regole senza ambito | Reinizializzato dal disco |

1604| Memoria automatica | Reinizializzato dal disco |1604| Memoria automatica | Reinizializzato dal disco |

1605| [Snapshot dello stato Git](/docs/it/settings-reference#includegitinstructions) | Claude Code legge uno nuovo dal tuo repository |1605| [Snapshot dello stato Git](/docs/it/settings-reference#includegitinstructions) | Se la sessione è iniziata con uno snapshot, Claude Code ne legge uno nuovo dal tuo repository |

1606| Il piano che Claude ha scritto in [plan mode](/docs/it/permission-modes#analyze-before-you-edit-with-plan-mode) | Reinizializzato dal disco |1606| Il piano che Claude ha scritto in [plan mode](/docs/it/permission-modes#analyze-before-you-edit-with-plan-mode) | Reinizializzato dal disco |

1607| Regole con frontmatter `paths:` | Claude Code le ricarica [su richiesta](/docs/it/memory#path-specific-rules) |1607| Regole con frontmatter `paths:` | Claude Code le ricarica [su richiesta](/docs/it/memory#path-specific-rules) |

1608| CLAUDE.md annidato nelle sottodirectory | Claude Code li ricarica [su richiesta](/docs/it/memory#how-claude-md-files-load) |1608| CLAUDE.md annidato nelle sottodirectory | Claude Code li ricarica [su richiesta](/docs/it/memory#how-claude-md-files-load) |


1622 Quando la tua finestra di contesto si riempie1622 Quando la tua finestra di contesto si riempie

1623</h2>1623</h2>

1624 1624 

1625Claude Code si compatta automaticamente mentre ti avvicini al limite, quindi una finestra di contesto piena non termina la tua sessione. Il passaggio automatico funziona allo stesso modo del passaggio `/compact` nella timeline. Vedi [Quando il contesto si riempie](/docs/it/how-claude-code-works#when-context-fills-up) per quello che preserva.1625Claude Code si compatta automaticamente mentre ti avvicini al limite, quindi una finestra di contesto piena non termina la tua sessione. Il passaggio automatico funziona allo stesso modo del passaggio `/compact` nella timeline. Vedi [Quando il contesto si riempie](/docs/it/how-claude-code-works#when-context-fills-up) per quello che preserva. Per sapere quando Claude Code compatta anche una conversazione che lasci inattiva, vedi [compattazione per inattività](/docs/it/settings-reference#idlecompaction).

1626 1626 

1627Puoi anche agire prima che il passaggio automatico venga eseguito:1627Puoi anche agire prima che il passaggio automatico venga eseguito:

1628 1628 

Details

128* **Tollerare di essere invocato da dentro se stesso.** Claude Code applica il launcher a ogni auto-spawn annidato, quindi un launcher che acquisisce una risorsa esclusiva deve rilevare che la detiene già.128* **Tollerare di essere invocato da dentro se stesso.** Claude Code applica il launcher a ogni auto-spawn annidato, quindi un launcher che acquisisce una risorsa esclusiva deve rilevare che la detiene già.

129* **Non scrivere nel terminale prima che Claude Code si avvii.** Qualsiasi cosa stampata prima dell'`exec` viene segnalata come causa del crash se la sessione muore prima dell'inizializzazione.129* **Non scrivere nel terminale prima che Claude Code si avvii.** Qualsiasi cosa stampata prima dell'`exec` viene segnalata come causa del crash se la sessione muore prima dell'inizializzazione.

130* **Non dipendere da come sono scritti gli argomenti.** Il valore di un flag può arrivare come argomento a sé stante, `--flag value`, oppure unito al flag, `--flag=value`. La forma usata da un flag può cambiare tra una versione e l'altra.130* **Non dipendere da come sono scritti gli argomenti.** Il valore di un flag può arrivare come argomento a sé stante, `--flag value`, oppure unito al flag, `--flag=value`. La forma usata da un flag può cambiare tra una versione e l'altra.

131* **Eseguire `exec` dalla directory in cui è stato avviato il launcher.** Claude Code lavora nella directory in cui si avvia, quindi un launcher che cambia directory può avviare una sessione nel progetto sbagliato. Se il launcher deve entrare in uno spazio dei nomi o in una sandbox che ripristina la directory di lavoro, torna alla directory di partenza al suo interno, prima dell'`exec`.

131 132 

132<h3 id="format-of-the-launcher-value">133<h3 id="format-of-the-launcher-value">

133 Formato del valore del launcher134 Formato del valore del launcher

Details

170| Skill non appare in `/skills` | Il file di skill è in `.claude/skills/name.md` invece che in una cartella | Usa una cartella con `SKILL.md` dentro: `.claude/skills/name/SKILL.md`. |170| Skill non appare in `/skills` | Il file di skill è in `.claude/skills/name.md` invece che in una cartella | Usa una cartella con `SKILL.md` dentro: `.claude/skills/name/SKILL.md`. |

171| Skill appare in `/skills` ma Claude non la invoca mai | Skill ha `disable-model-invocation: true` nel suo frontmatter, o la sua descrizione non corrisponde a come formuli la richiesta | Controlla il badge in `/skills`: un'etichetta "user-only" significa che Claude non la attiverà da sola. Vedi [skill invocation](/docs/it/skills). |171| Skill appare in `/skills` ma Claude non la invoca mai | Skill ha `disable-model-invocation: true` nel suo frontmatter, o la sua descrizione non corrisponde a come formuli la richiesta | Controlla il badge in `/skills`: un'etichetta "user-only" significa che Claude non la attiverà da sola. Vedi [skill invocation](/docs/it/skills). |

172| Le istruzioni di `CLAUDE.md` della sottodirectory sembrano ignorate | I file della sottodirectory si caricano su richiesta, non all'inizio della sessione | Per caricare il `CLAUDE.md` di una sottodirectory, chiedi a Claude di leggere un altro file in quella sottodirectory. Vedi [quando si caricano i file delle sottodirectory](/docs/it/memory#how-claude-md-files-load). |172| Le istruzioni di `CLAUDE.md` della sottodirectory sembrano ignorate | I file della sottodirectory si caricano su richiesta, non all'inizio della sessione | Per caricare il `CLAUDE.md` di una sottodirectory, chiedi a Claude di leggere un altro file in quella sottodirectory. Vedi [quando si caricano i file delle sottodirectory](/docs/it/memory#how-claude-md-files-load). |

173| Subagent ignora le istruzioni di `CLAUDE.md` | Gli agenti Explore e Plan incorporati saltano `CLAUDE.md`. I subagenti personalizzati lo caricano nello stesso modo in cui la conversazione principale lo fa, a meno che la sua definizione non imposti [`omitClaudeMd`](/docs/it/sub-agents#supported-frontmatter-fields) | Per Explore o Plan, ripeti l'istruzione nel tuo prompt di delega. Per un subagente che imposta `omitClaudeMd`, rimuovi il campo. Per qualsiasi altro subagente personalizzato, metti le istruzioni critiche nel corpo del file dell'agente, che diventa il prompt di sistema dell'agente. Vedi [cosa si carica all'avvio](/docs/it/sub-agents#what-loads-at-startup). |173| Subagent ignora le istruzioni di `CLAUDE.md` | Gli agenti Explore e Plan incorporati saltano `CLAUDE.md` all'avvio. Un subagent personalizzato lo carica nello stesso modo in cui lo fa la conversazione principale, a meno che non abbia [`omitClaudeMd`](/docs/it/sub-agents#supported-frontmatter-fields) impostato nella sua definizione | Per Explore o Plan, ripeti l'istruzione nel tuo prompt di delega. Per un subagent che imposta `omitClaudeMd`, rimuovi il campo. Per qualsiasi altro subagent personalizzato, metti le istruzioni critiche nel corpo del file dell'agente, che diventa il prompt di sistema dell'agente. Vedi [cosa si carica all'avvio](/docs/it/sub-agents#what-loads-at-startup). |

174| La logica di pulizia non viene mai eseguita alla fine della sessione | Nessun hook `SessionEnd` configurato | Aggiungi un hook `SessionEnd` in `settings.json`. Vedi l'[elenco degli eventi di hook](/docs/it/hooks#hook-events). |174| La logica di pulizia non viene mai eseguita alla fine della sessione | Nessun hook `SessionEnd` configurato | Aggiungi un hook `SessionEnd` in `settings.json`. Vedi l'[elenco degli eventi di hook](/docs/it/hooks#hook-events). |

175| I server MCP in `.mcp.json` non si caricano mai | Il file è sotto `.claude/`, o i suoi server si trovano sotto una chiave `servers` di livello superiore, come nel file `mcp.json` di VS Code, invece di `mcpServers` | La configurazione MCP del progetto va alla radice del repository come `.mcp.json`, non dentro `.claude/`, con server sotto la chiave `mcpServers`. Vedi [MCP configuration](/docs/it/mcp). |175| I server MCP in `.mcp.json` non si caricano mai | Il file è sotto `.claude/`, o i suoi server si trovano sotto una chiave `servers` di livello superiore, come nel file `mcp.json` di VS Code, invece di `mcpServers` | La configurazione MCP del progetto va alla radice del repository come `.mcp.json`, non dentro `.claude/`, con server sotto la chiave `mcpServers`. Vedi [MCP configuration](/docs/it/mcp). |

176| Server MCP aggiunti sotto `mcpServers` in `settings.json` non appaiono mai | `settings.json` non legge una chiave `mcpServers` | Definisci i server del progetto in `.mcp.json` alla radice del repository, o esegui `claude mcp add --scope user` per i server con ambito utente. Vedi [MCP configuration](/docs/it/mcp). |176| Server MCP aggiunti sotto `mcpServers` in `settings.json` non appaiono mai | `settings.json` non legge una chiave `mcpServers` | Definisci i server del progetto in `.mcp.json` alla radice del repository, o esegui `claude mcp add --scope user` per i server con ambito utente. Vedi [MCP configuration](/docs/it/mcp). |

desktop.md +136 −12

Details

101| **Accept edits** | `acceptEdits` | Claude accetta automaticamente le modifiche ai file e i comandi comuni del filesystem come `mkdir`, `touch` e `mv`, ma chiede comunque prima di eseguire altri comandi di terminale. Usa questa modalità quando ti fidi delle modifiche ai file e vuoi un'iterazione più veloce. |101| **Accept edits** | `acceptEdits` | Claude accetta automaticamente le modifiche ai file e i comandi comuni del filesystem come `mkdir`, `touch` e `mv`, ma chiede comunque prima di eseguire altri comandi di terminale. Usa questa modalità quando ti fidi delle modifiche ai file e vuoi un'iterazione più veloce. |

102| **Plan** | `plan` | Claude legge i file ed esegue comandi per esplorare, quindi propone un piano senza modificare il tuo codice sorgente. Buono per compiti complessi dove vuoi rivedere l'approccio prima. |102| **Plan** | `plan` | Claude legge i file ed esegue comandi per esplorare, quindi propone un piano senza modificare il tuo codice sorgente. Buono per compiti complessi dove vuoi rivedere l'approccio prima. |

103| **Auto** | `auto` | Claude esegue senza richieste di permesso abituali; prima che azioni come comandi shell e richieste di rete vengano eseguite, un classificatore in background verifica che si allineino con la tua richiesta. Appare quando [la modalità auto è disponibile](#auto-mode-availability); non c'è un interruttore Impostazioni separato per essa. |103| **Auto** | `auto` | Claude esegue senza richieste di permesso abituali; prima che azioni come comandi shell e richieste di rete vengano eseguite, un classificatore in background verifica che si allineino con la tua richiesta. Appare quando [la modalità auto è disponibile](#auto-mode-availability); non c'è un interruttore Impostazioni separato per essa. |

104| **Bypass permissions** | `bypassPermissions` | Claude viene eseguito senza richieste di permesso, tranne per le [azioni che nessuna modalità auto-approva](/docs/it/permission-modes#actions-no-mode-auto-approves), classificatori di sicurezza quando Claude [agisce su siti esterni](#browse-external-sites), o azioni desktop dove Claude chiede sempre prima, come [archiviare una sessione](#work-across-sessions). Equivalente a `--dangerously-skip-permissions` nella CLI. Su piani Pro e Max, abilitalo in Impostazioni → Claude Code sotto "Allow bypass permissions mode"; su piani Team e Enterprise non c'è un interruttore Impostazioni, e la politica organizzativa lo controlla invece. Usala solo in container sandbox o VM. |104| **Bypass permissions** | `bypassPermissions` | Claude viene eseguito senza richieste di permesso, tranne per le [azioni che nessuna modalità auto-approva](/docs/it/permission-modes#actions-no-mode-auto-approves), classificatori di sicurezza quando Claude [agisce su siti esterni](#browse-external-sites), o azioni desktop come l'eliminazione di una sessione, ma non la sua [archiviazione](#work-across-sessions). Equivalente a `--dangerously-skip-permissions` nella CLI. Su piani Pro e Max, abilitalo in Impostazioni → Claude Code sotto "Allow bypass permissions mode"; su piani Team e Enterprise non c'è un interruttore Impostazioni, e la politica organizzativa lo controlla invece. Usala solo in container sandbox o VM. |

105 105 

106Le versioni precedenti della scheda Code etichettavano queste modalità Ask permissions, Auto accept edits e Plan mode.106Le versioni precedenti della scheda Code etichettavano queste modalità Ask permissions, Auto accept edits e Plan mode.

107 107 


131 131 

132Il riquadro Browser può anche aprire file HTML statici, PDF, immagini e video dal tuo progetto. Fai clic su un percorso HTML, PDF, immagine o video nella chat per aprirlo lì.132Il riquadro Browser può anche aprire file HTML statici, PDF, immagini e video dal tuo progetto. Fai clic su un percorso HTML, PDF, immagine o video nella chat per aprirlo lì.

133 133 

134<Note>

135 In una [sessione SSH](#ssh-sessions), Claude non può aprire la tua app nel riquadro Browser, perché lì non ha a disposizione gli strumenti del riquadro. Per vedere l'app tu stesso, [inoltra la sua porta al tuo computer](#reach-a-port-on-the-remote-machine).

136</Note>

137 

134Dal riquadro Browser, puoi:138Dal riquadro Browser, puoi:

135 139 

136* Interagire con la tua app in esecuzione direttamente nel riquadro Browser140* Interagire con la tua app in esecuzione direttamente nel riquadro Browser


218 222 

219<Note>223<Note>

220 Il monitoraggio delle PR richiede che [GitHub CLI (`gh`)](https://cli.github.com/) sia installato e autenticato sulla tua macchina. Se `gh` non è installato, Desktop ti chiede di installarlo la prima volta che tenti di creare una PR.224 Il monitoraggio delle PR richiede che [GitHub CLI (`gh`)](https://cli.github.com/) sia installato e autenticato sulla tua macchina. Se `gh` non è installato, Desktop ti chiede di installarlo la prima volta che tenti di creare una PR.

225 

226 In una [sessione SSH](#ssh-sessions), configura `git` e `gh` sulla macchina remota prima di fare clic su **Create PR**, perché Claude esegue lì il push del branch ed esegue `gh pr create`. Installa tu stesso `gh` lì, perché Desktop non te lo chiede in una sessione SSH. Poi verifica lì che `git push` funzioni e che `gh auth status` indichi che hai effettuato l'accesso.

221</Note>227</Note>

222 228 

223<h2 id="arrange-your-workspace">229<h2 id="arrange-your-workspace">


453 459 

454Claude Code applica quattro comportamenti di sicurezza tra le sessioni:460Claude Code applica quattro comportamenti di sicurezza tra le sessioni:

455 461 

456* Prima di archiviare qualsiasi sessione, Claude ti chiede prima. Vedi la scheda di approvazione in ogni modalità di permesso, inclusi i permessi Auto e Bypass.462* Ricevi una scheda di approvazione prima che Claude archivi una sessione, tranne in modalità Auto e in modalità Bypass permissions, in cui Claude può archiviare una sessione senza di essa. Per ricevere la richiesta, passa a Manual.

457* Attraverso questa superficie, Claude non può inviare messaggi tra sessioni da una sessione che nessuno sta guardando, come un'esecuzione di attività pianificata, e non può consegnare messaggi in una.463* Attraverso questa superficie, Claude non può inviare messaggi tra sessioni da una sessione che nessuno sta guardando, come un'esecuzione di attività pianificata, e non può consegnare messaggi in una.

458* Claude Code controlla ogni messaggio da questa superficie rispetto ai [controlli in entrata](/docs/it/cross-session-messaging#control-inbound-messages) della sessione ricevente, anche quando la sessione ricevente non ha [messaggistica tra sessioni](/docs/it/cross-session-messaging#availability) stessa. Se imposti [`crossSessionInbound`](/docs/it/settings-reference#crosssessioninbound) su `refuse` nella sessione ricevente, Claude Code scarta i messaggi da questa superficie. Claude Code segnala il rifiuto all'app desktop Claude. Prima della v2.1.234, Claude Code scartava ogni messaggio da questa superficie a una sessione ricevente senza messaggistica tra sessioni.464* Claude Code controlla ogni messaggio da questa superficie rispetto ai [controlli in entrata](/docs/it/cross-session-messaging#control-inbound-messages) della sessione ricevente, anche quando la sessione ricevente non ha [messaggistica tra sessioni](/docs/it/cross-session-messaging#availability) stessa. Se imposti [`crossSessionInbound`](/docs/it/settings-reference#crosssessioninbound) su `refuse` nella sessione ricevente, Claude Code scarta i messaggi da questa superficie. Claude Code segnala il rifiuto all'app desktop Claude. Prima della v2.1.234, Claude Code scartava ogni messaggio da questa superficie a una sessione ricevente senza messaggistica tra sessioni.

459* Claude Code cita ogni messaggio in arrivo e lo attribuisce alla sessione che l'ha inviato, e Claude segue comunque le impostazioni di permesso proprie della sessione ricevente quando agisce su uno.465* Claude Code cita ogni messaggio in arrivo e lo attribuisce alla sessione che l'ha inviato, e Claude segue comunque le impostazioni di permesso proprie della sessione ricevente quando agisce su uno.


546 552 

547[Skills](/docs/it/skills) estendono quello che Claude può fare. Claude le carica automaticamente quando rilevante, o puoi invocarne una direttamente: digita `/` nella casella del prompt o fai clic sul pulsante **+** e seleziona **Slash commands** per sfogliare cosa è disponibile. Questo include [comandi incorporati](/docs/it/commands), le tue [skill personalizzate](/docs/it/skills#create-your-first-skill), skill del progetto dal tuo codebase e skill da qualsiasi [plugin installato](/docs/it/plugins/install). Selezionane uno e appare evidenziato nel campo di input. Digita il tuo compito dopo di esso e invia come al solito.553[Skills](/docs/it/skills) estendono quello che Claude può fare. Claude le carica automaticamente quando rilevante, o puoi invocarne una direttamente: digita `/` nella casella del prompt o fai clic sul pulsante **+** e seleziona **Slash commands** per sfogliare cosa è disponibile. Questo include [comandi incorporati](/docs/it/commands), le tue [skill personalizzate](/docs/it/skills#create-your-first-skill), skill del progetto dal tuo codebase e skill da qualsiasi [plugin installato](/docs/it/plugins/install). Selezionane uno e appare evidenziato nel campo di input. Digita il tuo compito dopo di esso e invia come al solito.

548 554 

549Puoi inviare un comando mentre Claude sta lavorando, come qualsiasi altro messaggio, e la sessione torna inattiva una volta che il turno finisce. Prima della v2.1.206, un comando inviato a metà turno potrebbe lasciare la sessione in esecuzione e i messaggi che hai inviato in seguito non venivano consegnati.555Puoi inviare un comando mentre Claude sta lavorando, come qualsiasi altro messaggio, e la sessione torna inattiva una volta che il turno finisce.

550 556 

551Le sessioni locali caricano le tue skill personali da `~/.claude/skills/`. Una sessione [SSH](#ssh-sessions) legge `~/.claude/skills/` dalla directory home dell'host remoto, non dalla tua macchina.557Le sessioni locali caricano le tue skill personali da `~/.claude/skills/`. Una sessione [SSH](#ssh-sessions) legge `~/.claude/skills/` dalla directory home dell'host remoto, non dalla tua macchina.

552 558 


693 699 

694* **`true`**: Claude trova e utilizza una porta libera automaticamente. Adatto per la maggior parte dei server di sviluppo.700* **`true`**: Claude trova e utilizza una porta libera automaticamente. Adatto per la maggior parte dei server di sviluppo.

695* **`false`**: Claude fallisce con un errore. Usa questo quando il tuo server deve usare una porta specifica, come per i callback OAuth o gli allowlist CORS.701* **`false`**: Claude fallisce con un errore. Usa questo quando il tuo server deve usare una porta specifica, come per i callback OAuth o gli allowlist CORS.

696* **Non impostato (predefinito)**: Claude chiede se il server ha bisogno di quella porta esatta, quindi salva la tua risposta.702* **Non impostato (predefinito)**: il tuo server ottiene la successiva porta libera, come con `true`, tranne nell'unico caso descritto di seguito. Prima di Claude Desktop v2.37337.0, Claude chiede invece se il server ha bisogno di quella porta esatta, quindi salva la tua risposta in `launch.json`.

697 703 

698Quando Claude sceglie una porta diversa, passa la porta assegnata al tuo server tramite la variabile di ambiente `PORT`.704Se la tua porta preferita è in uso e `autoPort` non è impostato, il tuo server rimane fermo quando si verificano tutte queste condizioni:

705 

706* Avvii il server tramite uno script `npm`, `yarn`, `pnpm` o `bun`.

707* La tua porta preferita è codificata in modo fisso in quello script, oppure Claude non può ispezionare lo script.

708* Non passi la porta in `runtimeArgs`.

709 

710In tal caso, libera la porta, rimuovi il valore codificato in modo fisso oppure modifica `port` in modo che corrisponda allo script. Impostare invece `"autoPort": true` funziona solo per uno script che legge `PORT`.

711 

712Fai in modo che il tuo server legga la sua porta dalla variabile d'ambiente `PORT`, che contiene la porta assegnata. Quando Claude sposta il tuo server su una porta diversa, riscrive anche un valore `--port` o `-p` in `runtimeArgs` in modo che corrisponda.

699 713 

700<h4 id="examples">714<h4 id="examples">

701 Examples715 Examples


785 Local sessions799 Local sessions

786</h3>800</h3>

787 801 

788L'app desktop non sempre eredita il tuo ambiente shell completo. Su macOS, quando avvii l'app dal Dock o Finder, legge il tuo profilo shell, come `~/.zshrc` o `~/.bashrc`, per estrarre `PATH` e un insieme fisso di variabili Claude Code, ma altre variabili che esporti lì non vengono raccolte. Su Windows, l'app eredita variabili di ambiente utente e di sistema ma non legge i profili PowerShell.802L'app desktop non sempre eredita il tuo ambiente shell completo. Su macOS, quando avvii l'app dal Dock o dal Finder, legge il tuo profilo shell, come `~/.zshrc` o `~/.bashrc`, per fornire a Claude Code il `PATH` e un insieme fisso di variabili di Claude Code, ma non le altre variabili che esporti lì. Su Windows, l'app eredita le variabili d'ambiente utente e di sistema ma non legge i profili PowerShell.

789 803 

790Per impostare variabili di ambiente per le sessioni locali e i server di sviluppo su qualsiasi piattaforma, apri il menu a discesa dell'ambiente nella casella del prompt, passa il mouse su **Local** e fai clic sull'icona dell'ingranaggio per aprire l'editor di ambiente locale. Le variabili che salvi qui vengono archiviate crittografate sulla tua macchina e si applicano a ogni sessione locale e server di anteprima che avvii. Puoi anche aggiungere variabili alla chiave `env` nel tuo file `~/.claude/settings.json`, anche se queste raggiungono solo le sessioni Claude e non i server di sviluppo. Vedi [variabili di ambiente](/docs/it/env-vars) per l'elenco completo delle variabili supportate.804Per impostare variabili di ambiente per le sessioni locali e i server di sviluppo su qualsiasi piattaforma, apri il menu a discesa dell'ambiente nella casella del prompt, passa il mouse su **Local** e fai clic sull'icona dell'ingranaggio per aprire l'editor di ambiente locale. Le variabili che salvi qui vengono archiviate crittografate sulla tua macchina e si applicano a ogni sessione locale e server di anteprima che avvii. Puoi anche aggiungere variabili alla chiave `env` nel tuo file `~/.claude/settings.json`, anche se queste raggiungono solo le sessioni Claude e non i server di sviluppo. Vedi [variabili di ambiente](/docs/it/env-vars) per l'elenco completo delle variabili supportate.

791 805 


813Vedi [Configure cloud environments](/docs/it/cloud-environments) per i dettagli sulla configurazione dell'accesso alla rete e delle variabili di ambiente.827Vedi [Configure cloud environments](/docs/it/cloud-environments) per i dettagli sulla configurazione dell'accesso alla rete e delle variabili di ambiente.

814 828 

815<h3 id="ssh-sessions">829<h3 id="ssh-sessions">

816 SSH sessions830 Sessioni SSH

817</h3>831</h3>

818 832 

819Le sessioni SSH ti consentono di eseguire Claude Code su una macchina remota mentre usi l'app desktop come tua interfaccia. Questo è utile per lavorare con codebase che vivono su VM cloud, dev container o server con hardware o dipendenze specifiche.833Le sessioni SSH ti consentono di eseguire Claude Code su una macchina remota mentre usi l'app desktop come tua interfaccia. Questo è utile per lavorare con codebase che vivono su VM cloud, dev container o server con hardware o dipendenze specifiche.


840 854 

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

842 856 

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

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

845* **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.

846* **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.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).

847* **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`

848* **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.

849 863 


878 892 

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

880 894 

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

896 Usare variabili della tua shell in un `ProxyCommand`

897</h5>

898 

899Per usare una tua variabile d'ambiente in un comando `ProxyCommand` o `Match exec`, esportala in un file di avvio della shell, come `~/.zshrc`, quindi chiudi e riapri Desktop. All'avvio, Desktop legge ciò che la tua shell di login esporta e conserva quei valori finché non lo chiudi.

900 

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.

902 

881<h5 id="raise-the-ssh-connection-timeout">903<h5 id="raise-the-ssh-connection-timeout">

882 Aumentare il timeout della connessione SSH904 Aumentare il timeout della connessione SSH

883</h5>905</h5>


894 916 

895`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.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.

896 918 

919<h5 id="forwarding-settings-that-desktop-leaves-off">

920 Impostazioni di inoltro che Desktop lascia disattivate

921</h5>

922 

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

924 

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

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

927 

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

929 

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

931 

932<h4 id="reach-a-port-on-the-remote-machine">

933 Raggiungere una porta sulla macchina remota

934</h4>

935 

936Per aprire un server in esecuzione sulla macchina remota, come un server di sviluppo sulla porta 3000, inoltra tu stesso la porta. In un terminale sul tuo computer, esegui `ssh` con `-L` e l'host a cui ti connetti, come `devbox`:

937 

938```bash theme={null}

939ssh -N -L 3000:localhost:3000 devbox

940```

941 

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

943 

897<h4 id="windows-remote-machines">944<h4 id="windows-remote-machines">

898 Macchine remote Windows945 Macchine remote Windows

899</h4>946</h4>


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

926 973 

927<Warning>974<Warning>

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

929 976 

930 Il lavoro svolto fino a quel momento rimane sulla macchina remota e puoi continuare con un messaggio al tuo ritorno.977 Il lavoro svolto fino a quel momento rimane sulla macchina remota e puoi continuare con un messaggio al tuo ritorno.

931 978 


956 1003 

957* **Aggiorna prima**: aggiorna Desktop prima di avviare un'attività lunga. Su macOS e Windows, Desktop può riavviarsi da solo per installare un aggiornamento che ha scaricato. Quel riavvio attende mentre Claude sta lavorando a un'attività SSH. Su macOS con un account Claude, per impostazione predefinita il riavvio può comunque procedere una volta che l'aggiornamento ha atteso 72 ore.1004* **Aggiorna prima**: aggiorna Desktop prima di avviare un'attività lunga. Su macOS e Windows, Desktop può riavviarsi da solo per installare un aggiornamento che ha scaricato. Quel riavvio attende mentre Claude sta lavorando a un'attività SSH. Su macOS con un account Claude, per impostazione predefinita il riavvio può comunque procedere una volta che l'aggiornamento ha atteso 72 ore.

958* **Non chiudere Desktop**: se Desktop è in esecuzione su Windows o usa un provider di terze parti, lascialo aperto mentre l'attività lunga è in esecuzione. Dopo una chiusura, [termina l'attività in esecuzione](#reopen-a-session-after-you-quit-desktop) quando la sessione si apre. Lasciarlo aperto non protegge una richiesta che [attende te](#handle-requests-that-arrive-while-you-are-away).1005* **Non chiudere Desktop**: se Desktop è in esecuzione su Windows o usa un provider di terze parti, lascialo aperto mentre l'attività lunga è in esecuzione. Dopo una chiusura, [termina l'attività in esecuzione](#reopen-a-session-after-you-quit-desktop) quando la sessione si apre. Lasciarlo aperto non protegge una richiesta che [attende te](#handle-requests-that-arrive-while-you-are-away).

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

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

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

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


1076 1123 

1077Il campo richiede Claude Desktop v1.44121.0 o versioni successive. Se la tua organizzazione limita le cartelle che le sessioni possono usare, Desktop nasconde il campo e mantiene i worktree all'interno del progetto.1124Il campo richiede Claude Desktop v1.44121.0 o versioni successive. Se la tua organizzazione limita le cartelle che le sessioni possono usare, Desktop nasconde il campo e mantiene i worktree all'interno del progetto.

1078 1125 

1126<h4 id="files-and-processes-on-the-remote-machine">

1127 File e processi sulla macchina remota

1128</h4>

1129 

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

1131 

1132| Cartella | Contenuto |

1133| - | - |

1134| `~/.claude/remote/srv/` | Il programma di supporto, in una cartella per versione |

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

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

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

1138| [`~/.claude/uploads/`](/docs/it/claude-directory#clear-local-data) | I file che l'utente allega ai messaggi, in una cartella per sessione |

1139 

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

1141 

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

1143* **Claude Code**: i processi che il programma di supporto avvia per le sessioni dell'utente, ciascuno da un file che porta il nome della sua versione, come `2.1.295-…`

1144 

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

1146 

1147Per sapere quando il programma di supporto si arresta da solo, consulta [Limiti mentre Desktop è disconnesso](#limits-while-desktop-is-disconnected).

1148 

1149Per rimuovere il programma di supporto e Claude Code per un utente:

1150 

1151<Steps>

1152 <Step title="Chiudi Desktop">

1153 Chiudi Desktop su ogni computer da cui l'utente si connette. Desktop installa di nuovo entrambi i programmi alla connessione successiva, e può riconnettersi da solo.

1154 </Step>

1155 

1156 <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).

1158 </Step>

1159 

1160 <Step title="Elimina la cartella">

1161 Elimina `~/.claude/remote/`. Per rimuovere i file di Claude Code in `~/.claude/` e `~/.claude.json`, consulta [Rimuovere i file di configurazione](/docs/it/setup#remove-configuration-files).

1162 </Step>

1163</Steps>

1164 

1165<h5 id="end-one-session’s-process">

1166 Terminare il processo di una sessione

1167</h5>

1168 

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

1170 

1171Prima di archiviare una sessione che ha un worktree, consulta [Lavorare in parallelo con le sessioni](#work-in-parallel-with-sessions).

1172 

1173<h5 id="see-who-connected-to-the-remote-machine">

1174 Vedere chi si è connesso alla macchina remota

1175</h5>

1176 

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.

1178 

1179<h4 id="use-mcp-servers-set-up-on-the-remote-machine">

1180 Usare i server MCP configurati sulla macchina remota

1181</h4>

1182 

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

1184 

1079<h4 id="open-an-ssh-session-from-a-link">1185<h4 id="open-an-ssh-session-from-a-link">

1080 Aprire una sessione SSH da un link1186 Aprire una sessione SSH da un link

1081</h4>1187</h4>


1207* **Cowork**: nessuna delle chiavi si applica alle sessioni [Cowork](https://claude.com/docs/cowork/overview) o alle attività pianificate di Cowork1313* **Cowork**: nessuna delle chiavi si applica alle sessioni [Cowork](https://claude.com/docs/cowork/overview) o alle attività pianificate di Cowork

1208* **Sessioni cloud**: nessuna delle chiavi cambia la disponibilità delle [sessioni cloud](#cloud-sessions). Per disattivarle, usa l'impostazione **Cloud sessions** in [Admin console controls](#admin-console-controls).1314* **Sessioni cloud**: nessuna delle chiavi cambia la disponibilità delle [sessioni cloud](#cloud-sessions). Per disattivarle, usa l'impostazione **Cloud sessions** in [Admin console controls](#admin-console-controls).

1209 1315 

1210Quando adatti l'esempio, controlla i nomi host e la versione di Desktop:1316Quando adatti l'esempio, controlla i nomi host, la versione di Desktop e i permessi del file:

1211 1317 

1212* **Nomi host**: assicurati che un modello in `sshHostAllowlist` corrisponda al nome host di ciascuna voce di `sshConfigs`, senza `user@`, altrimenti gli sviluppatori non potranno connettersi. Per sapere come Desktop confronta un nome host, consulta [Restrict which SSH hosts users can connect to](#restrict-which-ssh-hosts-users-can-connect-to).1318* **Nomi host**: assicurati che un modello in `sshHostAllowlist` corrisponda al nome host di ciascuna voce di `sshConfigs`, senza `user@`, altrimenti gli sviluppatori non potranno connettersi. Per sapere come Desktop confronta un nome host, consulta [Restrict which SSH hosts users can connect to](#restrict-which-ssh-hosts-users-can-connect-to).

1213* **Versione**: `disableDesktopLocalSessions` richiede Claude Desktop v1.37937.0 o versioni successive1319* **Versione**: `disableDesktopLocalSessions` richiede Claude Desktop v1.37937.0 o versioni successive

1320* **Permessi del file**: assicurati che l'account di ogni sviluppatore sul computer possa leggere il file di impostazioni gestite. Desktop non applica le chiavi presenti in un file che l'account non può leggere, e anche Claude Code [si avvia senza di esse](/docs/it/managed-settings#find-entries-claude-code-dropped).

1214 1321 

1215Inserisci le tre chiavi in un'unica [fonte gestita](/docs/it/managed-settings#how-claude-code-combines-managed-sources), quella con priorità più alta tra quelle che distribuisci. Se distribuisci [impostazioni gestite dal server](/docs/it/server-managed-settings), mantieni anche una copia delle tre chiavi nella policy MDM o nel file di impostazioni gestite con priorità più alta su ciascun computer. Desktop recupera le impostazioni gestite dal server all'avvio e la copia sul computer si applica finché un recupero non riesce.1322Inserisci le tre chiavi in un'unica [fonte gestita](/docs/it/managed-settings#how-claude-code-combines-managed-sources), quella con priorità più alta tra quelle che distribuisci. Se distribuisci [impostazioni gestite dal server](/docs/it/server-managed-settings), mantieni anche una copia delle tre chiavi nella policy MDM o nel file di impostazioni gestite con priorità più alta su ciascun computer. Desktop recupera le impostazioni gestite dal server all'avvio e la copia sul computer si applica finché un recupero non riesce.

1216 1323 


1558 1665 

1559Se gli interruttori del server MCP non rispondono o i server non riescono a connettersi su Windows, controlla che il server sia configurato correttamente nelle tue impostazioni, riavvia l'app, verifica che il processo del server sia in esecuzione in Task Manager e rivedi i log del server per gli errori di connessione.1666Se gli interruttori del server MCP non rispondono o i server non riescono a connettersi su Windows, controlla che il server sia configurato correttamente nelle tue impostazioni, riavvia l'app, verifica che il processo del server sia in esecuzione in Task Manager e rivedi i log del server per gli errori di connessione.

1560 1667 

1668<h3 id="ssh-connection-fails-after-you-log-in">

1669 La connessione SSH non riesce dopo l'accesso

1670</h3>

1671 

1672Trova il titolo della scheda, o il codice alla fine del messaggio di errore, in questa tabella, quindi fai ciò che indica l'ultima colonna. Per vedere il messaggio, seleziona **View details** sulla scheda dell'errore.

1673 

1674| Titolo sulla scheda | Codice | Cosa fare |

1675| - | - | - |

1676| `<host>'s SSH server has SFTP turned off` | `[SFTP_UNAVAILABLE]` | Attiva SFTP nel file `sshd_config` del server, come descritto nei [requisiti della macchina remota](#remote-machine-requirements-for-ssh-sessions) |

1677| `SFTP doesn't start on <host>` | `[SFTP_NOT_STARTED]` | Connettiti allo stesso host con `sftp` in un terminale sul tuo computer per vedere cosa lo blocca, quindi controlla le impostazioni e i file indicati nel messaggio di Desktop |

1678| `<host> allows too few SSH sessions per connection` | `[SESSION_LIMIT]` | Aumenta `MaxSessions` nel file `sshd_config` del server, ad esempio al valore predefinito di OpenSSH, 10 |

1679| `<host> is out of disk space` | `[ENOSPC]` o `[EDQUOT]` | Libera spazio o quota sulla macchina remota, nella tua directory home o in `/tmp` |

1680| `This computer is out of disk space` | `[ENOSPC]` o `[EDQUOT]`, in un messaggio che inizia con `Couldn't prepare the deploy locally` | Libera spazio sul tuo computer |

1681| `Claude Code won't start on <host>` | `[CLI_UNRESPONSIVE]` | Attendi un minuto, quindi riprova. Se continua a non riuscire, esegui sulla macchina remota il comando indicato nel messaggio per vedere se Claude Code risponde lì. |

1682 

1683Per qualsiasi altro messaggio, controlla i [requisiti della macchina remota](#remote-machine-requirements-for-ssh-sessions).

1684 

1561<h3 id="app-won’t-quit">1685<h3 id="app-won’t-quit">

1562 App won't quit1686 App won't quit

1563</h3>1687</h3>

env-vars.md +10 −4

Details

268| `CLAUDE_CODE_DISABLE_FAST_MODE` | Imposta su `1` per disattivare la [modalità veloce](/docs/it/fast-mode) |268| `CLAUDE_CODE_DISABLE_FAST_MODE` | Imposta su `1` per disattivare la [modalità veloce](/docs/it/fast-mode) |

269| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Imposta su `1` per disattivare i sondaggi sulla qualità della sessione "How is Claude doing?". I sondaggi sono disattivati anche quando è impostata `DISABLE_TELEMETRY`, `DO_NOT_TRACK` o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, a meno che `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` non li riattivi. Per impostare una frequenza di campionamento invece di disattivarli del tutto, usa l'impostazione [`feedbackSurveyRate`](/docs/it/settings-reference#feedbacksurveyrate). Consulta [Sondaggi sulla qualità della sessione](/docs/it/data-usage#session-quality-surveys) |269| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Imposta su `1` per disattivare i sondaggi sulla qualità della sessione "How is Claude doing?". I sondaggi sono disattivati anche quando è impostata `DISABLE_TELEMETRY`, `DO_NOT_TRACK` o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, a meno che `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` non li riattivi. Per impostare una frequenza di campionamento invece di disattivarli del tutto, usa l'impostazione [`feedbackSurveyRate`](/docs/it/settings-reference#feedbacksurveyrate). Consulta [Sondaggi sulla qualità della sessione](/docs/it/data-usage#session-quality-surveys) |

270| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Imposta su `1` per disattivare il [checkpointing](/docs/it/checkpointing) dei file. Il comando `/rewind` non potrà ripristinare le modifiche al codice. Sovrascrive l'impostazione [`fileCheckpointingEnabled`](/docs/it/settings-reference#filecheckpointingenabled) |270| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Imposta su `1` per disattivare il [checkpointing](/docs/it/checkpointing) dei file. Il comando `/rewind` non potrà ripristinare le modifiche al codice. Sovrascrive l'impostazione [`fileCheckpointingEnabled`](/docs/it/settings-reference#filecheckpointingenabled) |

271| `CLAUDE_CODE_DISABLE_FILE_MENTIONS` | Imposta su `1` per impedire a Claude Code di espandere le [menzioni `@`](/docs/it/common-workflows#reference-files-and-directories) di file e directory. Claude riceve invece i percorsi menzionati con una nota che gli indica di leggerli usando i suoi strumenti per i file. Ignorata nelle [impostazioni di progetto e locali](/docs/it/settings-reference#variables-claude-code-ignores-in-env). Richiede Claude Code v2.1.299 o successiva |

271| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Imposta su `1` per rimuovere dal contesto di Claude le istruzioni integrate per i workflow di commit e PR e lo snapshot dello stato git. Utile quando usi le tue skill per i workflow git. Quando è impostata, ha la precedenza sull'impostazione [`includeGitInstructions`](/docs/it/settings-reference#includegitinstructions) |272| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Imposta su `1` per rimuovere dal contesto di Claude le istruzioni integrate per i workflow di commit e PR e lo snapshot dello stato git. Utile quando usi le tue skill per i workflow git. Quando è impostata, ha la precedenza sull'impostazione [`includeGitInstructions`](/docs/it/settings-reference#includegitinstructions) |

272| `CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPT` | Imposta su `1` per impedire a Claude Code di leggere gli script passati a una shell con `-c`, come `bash -c 'rm -rf ~'`, alla ricerca di rimozioni di [percorsi critici](/docs/it/permission-modes#removals-inside-nested-commands-and-inline-scripts). Claude Code controlla comunque le destinazioni costituite da variabili di shell e parametri posizionali in quegli script, e gli altri controlli sui percorsi critici continuano a essere eseguiti. Impostala nell'ambiente che avvia Claude Code, poiché Claude Code ignora una copia fornita tramite un blocco `env` delle impostazioni. Richiede Claude Code v2.1.288 o versioni successive |273| `CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPT` | Imposta su `1` per impedire a Claude Code di leggere gli script passati a una shell con `-c`, come `bash -c 'rm -rf ~'`, alla ricerca di rimozioni di [percorsi critici](/docs/it/permission-modes#removals-inside-nested-commands-and-inline-scripts). Claude Code controlla comunque le destinazioni costituite da variabili di shell e parametri posizionali in quegli script, e gli altri controlli sui percorsi critici continuano a essere eseguiti. Impostala nell'ambiente che avvia Claude Code, poiché Claude Code ignora una copia fornita tramite un blocco `env` delle impostazioni. Richiede Claude Code v2.1.288 o versioni successive |

273| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Imposta su `1` per impedire la rimappatura automatica di Opus 4 e Opus 4.1 alla versione attuale di Opus sull'API Anthropic. Usala quando vuoi intenzionalmente fissare un modello precedente. La rimappatura non viene eseguita su Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry |274| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Imposta su `1` per impedire la rimappatura automatica di Opus 4 e Opus 4.1 alla versione attuale di Opus sull'API Anthropic. Usala quando vuoi intenzionalmente fissare un modello precedente. La rimappatura non viene eseguita su Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry |


328| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | Sovrascrive l'indirizzo host usato per connettersi all'estensione dell'IDE. Per impostazione predefinita Claude Code rileva automaticamente l'indirizzo corretto, incluso l'instradamento da WSL a Windows |329| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | Sovrascrive l'indirizzo host usato per connettersi all'estensione dell'IDE. Per impostazione predefinita Claude Code rileva automaticamente l'indirizzo corretto, incluso l'instradamento da WSL a Windows |

329| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Imposta su `1` per saltare l'installazione automatica delle estensioni IDE. Equivale a impostare [`autoInstallIdeExtension`](/docs/it/settings-reference#autoinstallideextension) su `false` |330| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Imposta su `1` per saltare l'installazione automatica delle estensioni IDE. Equivale a impostare [`autoInstallIdeExtension`](/docs/it/settings-reference#autoinstallideextension) su `false` |

330| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Imposta su `1` per saltare la convalida delle voci del lockfile dell'IDE durante la connessione. Usala quando la connessione automatica non trova il tuo IDE nonostante sia in esecuzione |331| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Imposta su `1` per saltare la convalida delle voci del lockfile dell'IDE durante la connessione. Usala quando la connessione automatica non trova il tuo IDE nonostante sia in esecuzione |

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 |

331| `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 |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 |

332| `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 |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 |

333| `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 (predefinito: 2048). Claude Code [tronca il testo più lungo](/docs/it/mcp#for-mcp-server-authors). Accetta un numero intero positivo in cifre semplici. Qualsiasi altro valore viene ignorato e si applica il valore predefinito. Richiede Claude Code v2.1.280 o successiva |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 |

334| `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) |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) |

335| `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` |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` |

336| `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 |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 |


359| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Intervallo in millisecondi per l'aggiornamento degli header OpenTelemetry dinamici (predefinito: 1740000 / 29 minuti). Consulta [Header dinamici](/docs/it/monitoring-usage#dynamic-headers) |361| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Intervallo in millisecondi per l'aggiornamento degli header OpenTelemetry dinamici (predefinito: 1740000 / 29 minuti). Consulta [Header dinamici](/docs/it/monitoring-usage#dynamic-headers) |

360| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | Timeout in millisecondi entro cui l'exporter OpenTelemetry deve terminare alla chiusura (predefinito: 2000). Aumentalo se le metriche vengono perse all'uscita. Consulta [Monitoraggio](/docs/it/monitoring-usage) |362| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | Timeout in millisecondi entro cui l'exporter OpenTelemetry deve terminare alla chiusura (predefinito: 2000). Aumentalo se le metriche vengono perse all'uscita. Consulta [Monitoraggio](/docs/it/monitoring-usage) |

361| `CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS` | Ritardo iniziale in millisecondi, al posto del valore predefinito 500, del backoff esponenziale tra i [nuovi tentativi automatici](/docs/it/errors#tune-retry-behavior) di una richiesta che l'API rifiuta con un errore `529` di sovraccarico. Aumentalo per distribuire i nuovi tentativi su un intervallo più lungo quando l'API è al limite della capacità. Indica millisecondi interi da 500 a 32000 in cifre semplici; Claude Code tratta qualsiasi altro valore come non impostato. Non ha effetto quando `CLAUDE_CODE_RETRY_WATCHDOG` è impostata su `1`, o quando la richiesta rifiutata è stata inviata in [modalità veloce](/docs/it/fast-mode#handle-rate-limits). Richiede Claude Code v2.1.292 o successiva |363| `CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS` | Ritardo iniziale in millisecondi, al posto del valore predefinito 500, del backoff esponenziale tra i [nuovi tentativi automatici](/docs/it/errors#tune-retry-behavior) di una richiesta che l'API rifiuta con un errore `529` di sovraccarico. Aumentalo per distribuire i nuovi tentativi su un intervallo più lungo quando l'API è al limite della capacità. Indica millisecondi interi da 500 a 32000 in cifre semplici; Claude Code tratta qualsiasi altro valore come non impostato. Non ha effetto quando `CLAUDE_CODE_RETRY_WATCHDOG` è impostata su `1`, o quando la richiesta rifiutata è stata inviata in [modalità veloce](/docs/it/fast-mode#handle-rate-limits). Richiede Claude Code v2.1.292 o successiva |

364| `CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS` | Limite massimo in millisecondi, al posto del valore predefinito di 32000, del backoff esponenziale tra i [nuovi tentativi automatici](/docs/it/errors#tune-retry-behavior) di una richiesta che l'API rifiuta con un errore `529` di sovraccarico. Aumentalo affinché i tentativi successivi continuino a distanziarsi quando l'API è al limite della capacità. Specifica millisecondi interi da 32000 a 64000 con cifre semplici; Claude Code tratta qualsiasi altro valore come non impostato. Non ha effetto quando `CLAUDE_CODE_RETRY_WATCHDOG` è impostata su `1`, o quando la richiesta rifiutata è stata inviata in [modalità veloce](/docs/it/fast-mode#handle-rate-limits). Richiede Claude Code v2.1.296 o versioni successive |

362| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | Imposta su `1` per consentire a Claude Code di eseguire in background il comando di aggiornamento del tuo gestore di pacchetti quando è disponibile una nuova versione. Si applica alle installazioni Homebrew e WinGet. Gli altri gestori di pacchetti continuano a mostrare il comando di aggiornamento senza eseguirlo. Consulta [Aggiornamenti automatici](/docs/it/setup#auto-updates) |365| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | Imposta su `1` per consentire a Claude Code di eseguire in background il comando di aggiornamento del tuo gestore di pacchetti quando è disponibile una nuova versione. Si applica alle installazioni Homebrew e WinGet. Gli altri gestori di pacchetti continuano a mostrare il comando di aggiornamento senza eseguirlo. Consulta [Aggiornamenti automatici](/docs/it/setup#auto-updates) |

363| `CLAUDE_CODE_PERFORCE_MODE` | Imposta su `1` per abilitare la protezione da scrittura compatibile con Perforce. Quando è impostata, Edit, Write e NotebookEdit non riescono e mostrano un suggerimento `p4 edit <file>` se il file di destinazione non ha il bit di scrittura del proprietario, che Perforce rimuove dai file sincronizzati finché `p4 edit` non li apre. Questo impedisce a Claude Code di aggirare il tracciamento delle modifiche di Perforce |366| `CLAUDE_CODE_PERFORCE_MODE` | Imposta su `1` per abilitare la protezione da scrittura compatibile con Perforce. Quando è impostata, Edit, Write e NotebookEdit non riescono e mostrano un suggerimento `p4 edit <file>` se il file di destinazione non ha il bit di scrittura del proprietario, che Perforce rimuove dai file sincronizzati finché `p4 edit` non li apre. Questo impedisce a Claude Code di aggirare il tracciamento delle modifiche di Perforce |

364| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Sovrascrive la directory radice dei plugin. Nonostante il nome, imposta la directory padre, non la cache stessa: i marketplace e la cache dei plugin si trovano in sottodirectory di questo percorso. Il valore predefinito è `~/.claude/plugins` |367| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Sovrascrive la directory radice dei plugin. Nonostante il nome, imposta la directory padre, non la cache stessa: i marketplace e la cache dei plugin si trovano in sottodirectory di questo percorso. Il valore predefinito è `~/.claude/plugins` |


380| `CLAUDE_CODE_REMOTE_SESSION_ID` | Impostata automaticamente nelle [sessioni cloud](/docs/it/claude-code-on-the-web) sull'ID della sessione corrente. Leggila per costruire un link alla trascrizione della sessione. Consulta [Collegare l'output alla sessione](/docs/it/cloud-environments#link-output-back-to-the-session) |383| `CLAUDE_CODE_REMOTE_SESSION_ID` | Impostata automaticamente nelle [sessioni cloud](/docs/it/claude-code-on-the-web) sull'ID della sessione corrente. Leggila per costruire un link alla trascrizione della sessione. Consulta [Collegare l'output alla sessione](/docs/it/cloud-environments#link-output-back-to-the-session) |

381| `CLAUDE_CODE_RESTRICTED` | Imposta su `1` per avviare la sessione in modalità con restrizioni, come passando [`--restricted`](/docs/it/cli-reference#cli-flags). Claude Code ignora questa variabile nel blocco `env` di un file di impostazioni. Richiede Claude Code v2.1.248 o successiva |384| `CLAUDE_CODE_RESTRICTED` | Imposta su `1` per avviare la sessione in modalità con restrizioni, come passando [`--restricted`](/docs/it/cli-reference#cli-flags). Claude Code ignora questa variabile nel blocco `env` di un file di impostazioni. Richiede Claude Code v2.1.248 o successiva |

382| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Imposta su `1` per riprendere automaticamente se la sessione precedente è terminata a metà turno. Usata in modalità SDK in modo che il modello continui senza che l'SDK debba inviare di nuovo il prompt. Per disattivarla, rimuovi la variabile o impostala su `0`. Per il pannello chat di VS Code, consulta [Continuare le conversazioni dopo un ricaricamento](/docs/it/vs-code#continue-conversations-after-a-reload) |385| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Imposta su `1` per riprendere automaticamente se la sessione precedente è terminata a metà turno. Usata in modalità SDK in modo che il modello continui senza che l'SDK debba inviare di nuovo il prompt. Per disattivarla, rimuovi la variabile o impostala su `0`. Per il pannello chat di VS Code, consulta [Continuare le conversazioni dopo un ricaricamento](/docs/it/vs-code#continue-conversations-after-a-reload) |

383| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Età massima in millisecondi dell'ultimo messaggio della trascrizione affinché una sessione terminata a metà turno continui automaticamente alla ripresa. Quando l'ultimo messaggio è più vecchio di questo limite, Claude Code salta la ripresa automatica di `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` e il relativo messaggio di continuazione `CLAUDE_CODE_RESUME_PROMPT`, e la sessione si avvia inattiva così che tu possa continuare esplicitamente. Non impostata o `0` significa nessun limite, tranne per il fatto che un turno la cui ultima richiesta non è riuscita con un errore API riprende solo finché quell'errore risale a meno di sei ore prima. Un valore positivo limita ogni turno, compresi questi; un valore negativo o non numerico applica un limite di un'ora. Gli script di avvio per agenti a lunga esecuzione possono impostarla in modo che un riavvio su una trascrizione vecchia non esegua di nuovo un prompt obsoleto. Claude Code imposta da solo un limite di un'ora quando riavvia una sessione della [vista agenti](/docs/it/agent-view) andata in crash che ha ereditato la conversazione da una sessione interattiva. Richiede Claude Code v2.1.211 o successiva |386| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Età massima in millisecondi dell'ultimo messaggio della trascrizione affinché una sessione terminata a metà turno continui automaticamente alla ripresa. Quando l'ultimo messaggio è più vecchio di questo limite, Claude Code salta la ripresa automatica di `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` e il relativo messaggio di continuazione `CLAUDE_CODE_RESUME_PROMPT`, e la sessione si avvia inattiva così che tu possa continuare esplicitamente. Se non impostata o impostata su `0`, non c'è alcun limite, tranne per il fatto che alcuni turni vengono ripresi solo entro sei ore dal loro ultimo messaggio, ad esempio uno terminato con un errore API. Un valore positivo limita ogni turno, compresi quelli; un valore negativo o non numerico applica un limite di un'ora. Gli script di avvio per agenti a lunga esecuzione possono impostarla in modo che un riavvio su una trascrizione vecchia non riesegua un prompt obsoleto. Claude Code imposta autonomamente un limite di un'ora quando riavvia una sessione di [agent view](/docs/it/agent-view) andata in crash che ha ereditato la conversazione da una sessione interattiva. Richiede Claude Code v2.1.211 o successiva |

384| `CLAUDE_CODE_RESUME_PROMPT` | Sovrascrive il messaggio di continuazione che Claude Code invia a Claude quando `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` continua un turno interrotto invece di inviare di nuovo il suo prompt, o quando riprendi una [chiamata a uno strumento differita](/docs/it/hooks#defer-a-tool-call-for-later) con `-p`. Il valore predefinito è `Continue from where you left off.`. Una stringa vuota usa il valore predefinito |387| `CLAUDE_CODE_RESUME_PROMPT` | Sovrascrive il messaggio di continuazione che Claude Code invia a Claude quando `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` continua un turno interrotto invece di inviare di nuovo il suo prompt, o quando riprendi una [chiamata a uno strumento differita](/docs/it/hooks#defer-a-tool-call-for-later) con `-p`. Il valore predefinito è `Continue from where you left off.`. Una stringa vuota usa il valore predefinito |

385| `CLAUDE_CODE_RETRY_WATCHDOG` | Imposta su `1` per sessioni non presidiate come harness di valutazione, job CI o worker remoti. Riprova indefinitamente in caso di errori di capacità `429` e `529` invece di fallire dopo `CLAUDE_CODE_MAX_RETRIES` tentativi. Claude Code fallisce subito quando una richiesta a velocità standard riceve un `429` che segnala un limite di spesa o crediti di utilizzo esauriti, anche se proviene da un [limite di spesa del gateway](/docs/it/errors#spend-limit-reached) che si reimposta secondo una pianificazione. Prima della v2.1.239, il watchdog riprovava indefinitamente anche in questi casi. Per le richieste in modalità veloce, consulta [Gestire i rate limit](/docs/it/fast-mode#handle-rate-limits). Il watchdog attende fino a 5 minuti tra un tentativo e l'altro, oppure fino al reset del limite quando la risposta riporta un orario di reset del rate limit, così che una sessione che raggiunge un limite di utilizzo attenda la fine della finestra rimanente. Nella v2.1.199 o successiva aumenta anche a 300 il numero predefinito di nuovi tentativi per altri errori transitori, come errori del server, timeout e connessioni interrotte, pari a circa tre ore di backoff, e rimuove il limite di 15 su `CLAUDE_CODE_MAX_RETRIES` se imposti esplicitamente quella variabile. Richiede Claude Code v2.1.186 o successiva |388| `CLAUDE_CODE_RETRY_WATCHDOG` | Imposta su `1` per sessioni non presidiate come harness di valutazione, job CI o worker remoti. Riprova indefinitamente in caso di errori di capacità `429` e `529` invece di fallire dopo `CLAUDE_CODE_MAX_RETRIES` tentativi. Claude Code fallisce subito quando una richiesta a velocità standard riceve un `429` che segnala un limite di spesa o crediti di utilizzo esauriti, anche se proviene da un [limite di spesa del gateway](/docs/it/errors#spend-limit-reached) che si reimposta secondo una pianificazione. Prima della v2.1.239, il watchdog riprovava indefinitamente anche in questi casi. Per le richieste in modalità veloce, consulta [Gestire i rate limit](/docs/it/fast-mode#handle-rate-limits). Il watchdog attende fino a 5 minuti tra un tentativo e l'altro, oppure fino al reset del limite quando la risposta riporta un orario di reset del rate limit, così che una sessione che raggiunge un limite di utilizzo attenda la fine della finestra rimanente. Nella v2.1.199 o successiva aumenta anche a 300 il numero predefinito di nuovi tentativi per altri errori transitori, come errori del server, timeout e connessioni interrotte, pari a circa tre ore di backoff, e rimuove il limite di 15 su `CLAUDE_CODE_MAX_RETRIES` se imposti esplicitamente quella variabile. Richiede Claude Code v2.1.186 o successiva |

386| `CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS` | Tempo massimo in millisecondi che ogni richiesta API trascorre attendendo la fine degli errori `429` e `529` quando `CLAUDE_CODE_RETRY_WATCHDOG` è impostata. Una volta trascorso questo tempo, il successivo errore di questo tipo termina la richiesta. Indica un numero intero positivo in cifre semplici, come `1800000` per 30 minuti. Quando non è impostata, l'attesa non ha limiti. Richiede Claude Code v2.1.295 o successiva |389| `CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS` | Tempo massimo in millisecondi che ogni richiesta API trascorre attendendo la fine degli errori `429` e `529` quando `CLAUDE_CODE_RETRY_WATCHDOG` è impostata. Una volta trascorso questo tempo, il successivo errore di questo tipo termina la richiesta. Indica un numero intero positivo in cifre semplici, come `1800000` per 30 minuti. Quando non è impostata, l'attesa non ha limiti. Richiede Claude Code v2.1.295 o successiva |


437| `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` | Quando `CLAUDE_AUTO_BACKGROUND_TASKS` è impostata a `1`, quanto tempo Claude Code attende prima di ogni promemoria a Claude per controllare i [subagent in background](/docs/it/sub-agents#run-subagents-in-foreground-or-background) ancora in esecuzione. Accetta una o più attese separate da virgole, in secondi interi da `1` a `86400`, come `600` o `600,1800,3600`. Ogni valore è l'attesa prima del promemoria successivo, e l'ultimo valore si ripete. Accetta solo cifre semplici; qualsiasi altro valore o scrittura viene interpretato come non impostato. Quando non è impostata, non ci sono promemoria. Richiede Claude Code v2.1.283 o successive |440| `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` | Quando `CLAUDE_AUTO_BACKGROUND_TASKS` è impostata a `1`, quanto tempo Claude Code attende prima di ogni promemoria a Claude per controllare i [subagent in background](/docs/it/sub-agents#run-subagents-in-foreground-or-background) ancora in esecuzione. Accetta una o più attese separate da virgole, in secondi interi da `1` a `86400`, come `600` o `600,1800,3600`. Ogni valore è l'attesa prima del promemoria successivo, e l'ultimo valore si ripete. Accetta solo cifre semplici; qualsiasi altro valore o scrittura viene interpretato come non impostato. Quando non è impostata, non ci sono promemoria. Richiede Claude Code v2.1.283 o successive |

438| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | Quanti agenti esegue contemporaneamente una singola esecuzione di un [workflow](/docs/it/workflows), da `1` a `256`. Per impostazione predefinita, un'esecuzione esegue fino a 16 agenti contemporaneamente, meno quando Claude Code ha meno CPU disponibili; le chiamate `agent()` in coda attendono uno slot libero. La trascrizione di ogni agente in esecuzione resta nella memoria di Claude Code, quindi valori più alti aumentano l'uso di memoria. Accetta solo cifre semplici; i valori fuori intervallo e le altre scritture mantengono il valore predefinito. Richiede Claude Code v2.1.269 o successive |441| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | Quanti agenti esegue contemporaneamente una singola esecuzione di un [workflow](/docs/it/workflows), da `1` a `256`. Per impostazione predefinita, un'esecuzione esegue fino a 16 agenti contemporaneamente, meno quando Claude Code ha meno CPU disponibili; le chiamate `agent()` in coda attendono uno slot libero. La trascrizione di ogni agente in esecuzione resta nella memoria di Claude Code, quindi valori più alti aumentano l'uso di memoria. Accetta solo cifre semplici; i valori fuori intervallo e le altre scritture mantengono il valore predefinito. Richiede Claude Code v2.1.269 o successive |

439| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Limite massimo in millisecondi per il tempo in cui un agente di un [workflow](/docs/it/workflows) attende l'inizio della prima risposta di un agente fratello con lo stesso prefisso prima di inviare la propria prima richiesta. Quando un fan-out avvia più agenti che condividono un [prefisso della cache del prompt](/docs/it/workflows#prompt-caching-in-a-fan-out), Claude Code trattiene tutti gli agenti tranne il primo fino a questo tempo, in modo che gli altri leggano il prefisso dalla cache invece di elaborarlo ciascuno senza cache. Valore predefinito `5000`. Imposta a `0` per disabilitare l'attesa. Quando `DISABLE_PROMPT_CACHING` è impostata, gli agenti non attendono mai. Richiede Claude Code v2.1.229 o successive |442| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Limite massimo in millisecondi per il tempo in cui un agente di un [workflow](/docs/it/workflows) attende l'inizio della prima risposta di un agente fratello con lo stesso prefisso prima di inviare la propria prima richiesta. Quando un fan-out avvia più agenti che condividono un [prefisso della cache del prompt](/docs/it/workflows#prompt-caching-in-a-fan-out), Claude Code trattiene tutti gli agenti tranne il primo fino a questo tempo, in modo che gli altri leggano il prefisso dalla cache invece di elaborarlo ciascuno senza cache. Valore predefinito `5000`. Imposta a `0` per disabilitare l'attesa. Quando `DISABLE_PROMPT_CACHING` è impostata, gli agenti non attendono mai. Richiede Claude Code v2.1.229 o successive |

443| `CLAUDE_CODE_YOU_SHOULD_KNOW_DEBUG` | Imposta su `1` per mostrare, sopra il prompt, una riga per ciascuno degli ultimi tre controlli effettuati dal [mod You should know](/docs/it/interactive-mode#you-should-know-suggestions) in questa sessione. Usala per verificare che il mod stia effettuando i controlli quando non compaiono note. Richiede Claude Code v2.1.287 o successiva |

440| `CLAUDE_CONFIG_DIR` | Sovrascrive la directory di configurazione (predefinita: `~/.claude`). Tutte le impostazioni, la cronologia delle sessioni e i plugin vengono archiviati in questo percorso. Per le credenziali, consulta [dove Claude Code archivia le credenziali](/docs/it/authentication#credential-management). Utile per eseguire più account affiancati: ad esempio, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. Impostala nella tua shell, nelle impostazioni utente o nelle impostazioni gestite. In un file di impostazioni, scrivi il [percorso assoluto](#in-settings-files). Ignorata nelle [impostazioni di progetto e locali](/docs/it/settings-reference#variables-claude-code-ignores-in-env) |444| `CLAUDE_CONFIG_DIR` | Sovrascrive la directory di configurazione (predefinita: `~/.claude`). Tutte le impostazioni, la cronologia delle sessioni e i plugin vengono archiviati in questo percorso. Per le credenziali, consulta [dove Claude Code archivia le credenziali](/docs/it/authentication#credential-management). Utile per eseguire più account affiancati: ad esempio, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. Impostala nella tua shell, nelle impostazioni utente o nelle impostazioni gestite. In un file di impostazioni, scrivi il [percorso assoluto](#in-settings-files). Ignorata nelle [impostazioni di progetto e locali](/docs/it/settings-reference#variables-claude-code-ignores-in-env) |

441| `CLAUDE_DISABLE_ADOPT` | Imposta a `1` per interrompere il lavoro in background in corso invece di trasferirlo quando porti una sessione in background premendo `←` o con [`/background`](/docs/it/agent-view#from-inside-a-session). Claude Code ti chiede conferma prima di portarla in background, quindi interrompe le attività che altrimenti verrebbero trasferite. Richiede Claude Code v2.1.195 o successive |445| `CLAUDE_DISABLE_ADOPT` | Imposta a `1` per interrompere il lavoro in background in corso invece di trasferirlo quando porti una sessione in background premendo `←` o con [`/background`](/docs/it/agent-view#from-inside-a-session). Claude Code ti chiede conferma prima di portarla in background, quindi interrompe le attività che altrimenti verrebbero trasferite. Richiede Claude Code v2.1.195 o successive |

442| `CLAUDE_EFFORT` | Impostata automaticamente nei sottoprocessi dello strumento Bash e nei comandi degli hook sul [livello di sforzo](/docs/it/model-config#adjust-effort-level) in vigore all'avvio del sottoprocesso: `low`, `medium`, `high`, `xhigh` o `max`. Corrisponde al campo `effort.level` passato agli [hook](/docs/it/hooks). Impostata solo quando il modello corrente supporta il parametro effort |446| `CLAUDE_EFFORT` | Impostata automaticamente nei sottoprocessi dello strumento Bash e nei comandi degli hook sul [livello di sforzo](/docs/it/model-config#adjust-effort-level) in vigore all'avvio del sottoprocesso: `low`, `medium`, `high`, `xhigh` o `max`. Corrisponde al campo `effort.level` passato agli [hook](/docs/it/hooks). Impostata solo quando il modello corrente supporta il parametro effort |


452| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | Rimossa nella v2.1.260 e ora senza effetto. In precedenza limitava, in millisecondi, per quanto tempo poteva essere eseguito un [comando di shell in background](/docs/it/interactive-mode#background-bash-commands) avviato da un [subagent](/docs/it/sub-agents), con un valore predefinito di 60 minuti. Consulta [le regole sulla durata dei comandi in background](/docs/it/tools-reference#background-commands) |456| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | Rimossa nella v2.1.260 e ora senza effetto. In precedenza limitava, in millisecondi, per quanto tempo poteva essere eseguito un [comando di shell in background](/docs/it/interactive-mode#background-bash-commands) avviato da un [subagent](/docs/it/sub-agents), con un valore predefinito di 60 minuti. Consulta [le regole sulla durata dei comandi in background](/docs/it/tools-reference#background-commands) |

453| `DEBUG` | Imposta a `1` per abilitare la modalità di debug, equivalente all'avvio con [`--debug`](/docs/it/cli-reference#cli-flags). I log di debug vengono scritti in `~/.claude/debug/<session-id>.txt`, oppure nel percorso impostato da `CLAUDE_CODE_DEBUG_LOGS_DIR`. Solo i valori veri `1`, `true`, `yes` e `on` abilitano la modalità di debug, quindi pattern di namespace come `DEBUG=express:*` impostati per altri strumenti non la attivano |457| `DEBUG` | Imposta a `1` per abilitare la modalità di debug, equivalente all'avvio con [`--debug`](/docs/it/cli-reference#cli-flags). I log di debug vengono scritti in `~/.claude/debug/<session-id>.txt`, oppure nel percorso impostato da `CLAUDE_CODE_DEBUG_LOGS_DIR`. Solo i valori veri `1`, `true`, `yes` e `on` abilitano la modalità di debug, quindi pattern di namespace come `DEBUG=express:*` impostati per altri strumenti non la attivano |

454| `DISABLE_AUTOUPDATER` | Imposta a `1` per disabilitare gli aggiornamenti automatici in background. Il comando manuale `claude update` funziona ancora. Usa `DISABLE_UPDATES` per bloccare entrambi |458| `DISABLE_AUTOUPDATER` | Imposta a `1` per disabilitare gli aggiornamenti automatici in background. Il comando manuale `claude update` funziona ancora. Usa `DISABLE_UPDATES` per bloccare entrambi |

455| `DISABLE_AUTO_COMPACT` | Imposta a `1` per disabilitare la compattazione automatica quando ci si avvicina al limite del contesto. Il comando manuale `/compact` resta disponibile. Usala quando vuoi un controllo esplicito su quando avviene la compattazione. Sovrascrive l'impostazione [`autoCompactEnabled`](/docs/it/settings-reference#autocompactenabled) |459| `DISABLE_AUTO_COMPACT` | Imposta su `1` per disabilitare la compattazione automatica quando ci si avvicina al limite di contesto, insieme alla [compattazione per inattività](/docs/it/settings-reference#idlecompaction). Il comando manuale `/compact` resta disponibile. Usala quando vuoi un controllo esplicito su quando avviene la compattazione. Sovrascrive l'impostazione [`autoCompactEnabled`](/docs/it/settings-reference#autocompactenabled) |

456| `DISABLE_COMPACT` | Imposta a `1` per disabilitare tutta la compattazione: sia la compattazione automatica sia il comando manuale `/compact` |460| `DISABLE_COMPACT` | Imposta a `1` per disabilitare tutta la compattazione: sia la compattazione automatica sia il comando manuale `/compact` |

457| `DISABLE_COST_WARNINGS` | Imposta a `1` per disabilitare i messaggi di avviso sui costi |461| `DISABLE_COST_WARNINGS` | Imposta a `1` per disabilitare i messaggi di avviso sui costi |

458| `DISABLE_DOCTOR_COMMAND` | Imposta a `1` per nascondere la skill di controllo della configurazione [`/doctor`](/docs/it/commands#all-commands) e il suo alias `/checkup`. Utile per distribuzioni gestite in cui gli utenti non dovrebbero eseguire la diagnostica della configurazione da una sessione. Non influisce sul comando del terminale `claude doctor`. Prima della v2.1.205, questa variabile nascondeva il comando della schermata di diagnostica `/doctor` |462| `DISABLE_DOCTOR_COMMAND` | Imposta a `1` per nascondere la skill di controllo della configurazione [`/doctor`](/docs/it/commands#all-commands) e il suo alias `/checkup`. Utile per distribuzioni gestite in cui gli utenti non dovrebbero eseguire la diagnostica della configurazione da una sessione. Non influisce sul comando del terminale `claude doctor`. Prima della v2.1.205, questa variabile nascondeva il comando della schermata di diagnostica `/doctor` |


478| `ENABLE_CLAUDEAI_MCP_SERVERS` | Imposta a `false` per impedire a Claude Code di recuperare i [server MCP di claude.ai](/docs/it/mcp#use-mcp-servers-from-claude-ai). Abilitata per impostazione predefinita per gli utenti che hanno effettuato l'accesso. Per disabilitarli per progetto o per organizzazione, imposta invece [`disableClaudeAiConnectors`](/docs/it/settings-reference#disableclaudeaiconnectors) nelle impostazioni |482| `ENABLE_CLAUDEAI_MCP_SERVERS` | Imposta a `false` per impedire a Claude Code di recuperare i [server MCP di claude.ai](/docs/it/mcp#use-mcp-servers-from-claude-ai). Abilitata per impostazione predefinita per gli utenti che hanno effettuato l'accesso. Per disabilitarli per progetto o per organizzazione, imposta invece [`disableClaudeAiConnectors`](/docs/it/settings-reference#disableclaudeaiconnectors) nelle impostazioni |

479| `ENABLE_PROMPT_CACHING_1H` | Imposta a `1` per richiedere un [TTL della cache del prompt](/docs/it/prompt-caching#cache-lifetime) di 1 ora invece dei 5 minuti predefiniti. Pensata per gli utenti con chiave API, [Amazon Bedrock](/docs/it/amazon-bedrock), [Google Cloud's Agent Platform](/docs/it/google-vertex-ai), [Microsoft Foundry](/docs/it/microsoft-foundry) e [Claude Platform on AWS](/docs/it/claude-platform-on-aws). Gli utenti con abbonamento entro l'utilizzo incluso ricevono automaticamente il TTL di 1 ora sulla [conversazione principale](/docs/it/prompt-caching#which-ttl-each-request-gets). Gli utenti con abbonamento che attingono ai [crediti di utilizzo](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) possono impostarla per mantenere il TTL di 1 ora. Le scritture nella cache di 1 ora vengono fatturate a una tariffa più alta. Per scegliere invece il TTL per ciascun gruppo di richieste, usa `CLAUDE_CODE_PROMPT_CACHE_TTL` e `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, che hanno la precedenza su questa variabile |483| `ENABLE_PROMPT_CACHING_1H` | Imposta a `1` per richiedere un [TTL della cache del prompt](/docs/it/prompt-caching#cache-lifetime) di 1 ora invece dei 5 minuti predefiniti. Pensata per gli utenti con chiave API, [Amazon Bedrock](/docs/it/amazon-bedrock), [Google Cloud's Agent Platform](/docs/it/google-vertex-ai), [Microsoft Foundry](/docs/it/microsoft-foundry) e [Claude Platform on AWS](/docs/it/claude-platform-on-aws). Gli utenti con abbonamento entro l'utilizzo incluso ricevono automaticamente il TTL di 1 ora sulla [conversazione principale](/docs/it/prompt-caching#which-ttl-each-request-gets). Gli utenti con abbonamento che attingono ai [crediti di utilizzo](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) possono impostarla per mantenere il TTL di 1 ora. Le scritture nella cache di 1 ora vengono fatturate a una tariffa più alta. Per scegliere invece il TTL per ciascun gruppo di richieste, usa `CLAUDE_CODE_PROMPT_CACHE_TTL` e `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, che hanno la precedenza su questa variabile |

480| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Deprecata. Usa invece `ENABLE_PROMPT_CACHING_1H` |484| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Deprecata. Usa invece `ENABLE_PROMPT_CACHING_1H` |

481| `ENABLE_TOOL_SEARCH` | Controlla [MCP Tool Search](/docs/it/mcp#scale-with-mcp-tool-search). Se non è impostata, Claude Code rinvia per impostazione predefinita il caricamento di tutti gli strumenti MCP. Li carica comunque in anticipo sui modelli di Google Cloud's Agent Platform precedenti alla generazione Claude 4.5, su un deploy di Microsoft Foundry ospitato su Azure e quando `ANTHROPIC_BASE_URL` punta a un host non di prima parte. `true` rinvia sempre il caricamento e invia l'header beta, tranne su quegli stessi modelli di Agent Platform e deploy di Microsoft Foundry; le richieste falliscono sui proxy che non supportano `tool_reference`. `auto` carica in anticipo quando le definizioni degli strumenti rientrano nel 10% del contesto. `auto:N` imposta una soglia personalizzata, come `auto:5` per il 5%. `false` carica in anticipo tutti gli strumenti. Un valore impostato da te viene ignorato quando è impostata `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`. Prima della v2.1.221, Claude Code disabilitava la ricerca degli strumenti per tutti i modelli su Google Cloud's Agent Platform a meno che non impostassi questa variabile a `true` |485| `ENABLE_TOOL_SEARCH` | Controlla la [ricerca degli strumenti MCP](/docs/it/mcp#scale-with-mcp-tool-search). Se non è impostata, Claude Code differisce tutti gli strumenti MCP per impostazione predefinita, e li carica invece subito quando `ANTHROPIC_BASE_URL` punta a un host non di prima parte. `true` li mantiene differiti anche su tale host. `auto` li carica subito quando le definizioni degli strumenti rientrano nel 10% del contesto. `auto:N` imposta una soglia personalizzata, come `auto:5` per il 5%. `false` carica subito tutti gli strumenti. Per i modelli e le distribuzioni che caricano subito tutti gli strumenti indipendentemente da questo valore, consulta [Configurare la ricerca degli strumenti](/docs/it/mcp#configure-tool-search) |

482| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Imposta a qualsiasi valore non vuoto, come `1`, per fare in modo che Claude Code smetta di riprovare in caso di errori di sovraccarico ripetuti per ogni modello quando non è configurato alcun modello di fallback. **Impostarla a `0` o `false` abilita comunque questo comportamento**, a differenza della maggior parte delle variabili on/off; rimuovi la variabile per ripristinare il comportamento predefinito dei nuovi tentativi. Senza di essa, Claude Code smette di riprovare in questo modo sui modelli che riconosce come modelli Opus, Fable o Mythos quando ti autentichi con una chiave API o un [provider di terze parti](/docs/it/third-party-integrations) anziché con un abbonamento Claude. Su Claude Code v2.1.160 o successive, Claude Code passa alla [catena di modelli di fallback](/docs/it/model-config#fallback-model-chains) configurata in caso di errori di sovraccarico ripetuti per qualsiasi modello principale, quindi questa variabile non influisce sul passaggio a un modello di fallback |486| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Imposta a qualsiasi valore non vuoto, come `1`, per fare in modo che Claude Code smetta di riprovare in caso di errori di sovraccarico ripetuti per ogni modello quando non è configurato alcun modello di fallback. **Impostarla a `0` o `false` abilita comunque questo comportamento**, a differenza della maggior parte delle variabili on/off; rimuovi la variabile per ripristinare il comportamento predefinito dei nuovi tentativi. Senza di essa, Claude Code smette di riprovare in questo modo sui modelli che riconosce come modelli Opus, Fable o Mythos quando ti autentichi con una chiave API o un [provider di terze parti](/docs/it/third-party-integrations) anziché con un abbonamento Claude. Su Claude Code v2.1.160 o successive, Claude Code passa alla [catena di modelli di fallback](/docs/it/model-config#fallback-model-chains) configurata in caso di errori di sovraccarico ripetuti per qualsiasi modello principale, quindi questa variabile non influisce sul passaggio a un modello di fallback |

483| `FORCE_AUTOUPDATE_PLUGINS` | Imposta a `1` per forzare gli aggiornamenti automatici dei plugin anche quando l'aggiornamento automatico principale è disabilitato tramite `DISABLE_AUTOUPDATER` |487| `FORCE_AUTOUPDATE_PLUGINS` | Imposta a `1` per forzare gli aggiornamenti automatici dei plugin anche quando l'aggiornamento automatico principale è disabilitato tramite `DISABLE_AUTOUPDATER` |

484| `FORCE_HYPERLINK` | Imposta a `1` per abilitare i collegamenti ipertestuali OSC 8 cliccabili quando il tuo terminale li supporta ma non viene rilevato automaticamente, oppure a `0` per disabilitarli. Quando non è impostata, Claude Code abilita i collegamenti ipertestuali solo quando rileva il supporto del terminale. Claude Code interpreta questo valore come un numero, non come un booleano, quindi un valore come `false`, `no` o `off` abilita i collegamenti ipertestuali invece di disabilitarli. Il [badge della PR o della merge request](/docs/it/interactive-mode#pr-review-status) nel piè di pagina viene visualizzato come collegamento ipertestuale anche quando Claude Code non riesce a rilevare il supporto del terminale, ad esempio tramite SSH. Imposta `0` per visualizzare il badge come testo semplice |488| `FORCE_HYPERLINK` | Imposta a `1` per abilitare i collegamenti ipertestuali OSC 8 cliccabili quando il tuo terminale li supporta ma non viene rilevato automaticamente, oppure a `0` per disabilitarli. Quando non è impostata, Claude Code abilita i collegamenti ipertestuali solo quando rileva il supporto del terminale. Claude Code interpreta questo valore come un numero, non come un booleano, quindi un valore come `false`, `no` o `off` abilita i collegamenti ipertestuali invece di disabilitarli. Il [badge della PR o della merge request](/docs/it/interactive-mode#pr-review-status) nel piè di pagina viene visualizzato come collegamento ipertestuale anche quando Claude Code non riesce a rilevare il supporto del terminale, ad esempio tramite SSH. Imposta `0` per visualizzare il badge come testo semplice |


593* Eseguire [`claude import` o il comando `/import`](/docs/it/cli-reference#cli-commands)597* Eseguire [`claude import` o il comando `/import`](/docs/it/cli-reference#cli-commands)

594* Eseguire [`/skill-doctor`](/docs/it/skills#find-unused-skills) o aprirne il report nella scheda **Stats** di `/plugin`598* Eseguire [`/skill-doctor`](/docs/it/skills#find-unused-skills) o aprirne il report nella scheda **Stats** di `/plugin`

595* 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 terminale599* 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)

596* Usare [lo strumento advisor](/docs/it/advisor#requirements)601* Usare [lo strumento advisor](/docs/it/advisor#requirements)

597* Leggere o rispondere ai [commenti su un artefatto](/docs/it/artifacts#collect-comments-on-an-artifact)602* Leggere o rispondere ai [commenti su un artefatto](/docs/it/artifacts#collect-comments-on-an-artifact)

598* Far leggere a Claude [l'artefatto pubblico di un'altra organizzazione](/docs/it/artifacts#read-an-artifact-shared-with-you)603* Far leggere a Claude [l'artefatto pubblico di un'altra organizzazione](/docs/it/artifacts#read-an-artifact-shared-with-you)


600* Ottenere il [feedback redatto da Claude](/docs/it/tools-reference#sendfeedback-tool-behavior), che Claude Code attiva tramite un flag recuperato605* Ottenere il [feedback redatto da Claude](/docs/it/tools-reference#sendfeedback-tool-behavior), che Claude Code attiva tramite un flag recuperato

601* Fare in modo che Claude [tratti i contenuti incollati di grandi dimensioni come testo incollato anziché digitato](/docs/it/terminal-config#how-claude-treats-pasted-text); il contenuto dietro un segnaposto `[Pasted text #N]` raggiunge Claude senza contrassegni606* Fare in modo che Claude [tratti i contenuti incollati di grandi dimensioni come testo incollato anziché digitato](/docs/it/terminal-config#how-claude-treats-pasted-text); il contenuto dietro un segnaposto `[Pasted text #N]` raggiunge Claude senza contrassegni

602* Fare in modo che Claude Code [escluda gli strumenti MCP il cui schema di input verrebbe rifiutato dall'API](/docs/it/mcp#tools-with-invalid-input-schemas); Claude Code invia comunque lo schema, e una richiesta che lo include fallisce con [un errore 400 che identifica lo strumento in base alla sua posizione](/docs/it/errors#tool-input-schema-is-invalid)607* Fare in modo che Claude Code [escluda gli strumenti MCP il cui schema di input verrebbe rifiutato dall'API](/docs/it/mcp#tools-with-invalid-input-schemas); Claude Code invia comunque lo schema, e una richiesta che lo include fallisce con [un errore 400 che identifica lo strumento in base alla sua posizione](/docs/it/errors#tool-input-schema-is-invalid)

608* Fare in modo che Claude Code [compatti una conversazione lunga mentre la sessione del terminale è inattiva](/docs/it/settings-reference#idlecompaction), poco prima della scadenza di una cache dei prompt di un'ora

603 609 

604<h3 id="first-session-after-an-install-or-upgrade">610<h3 id="first-session-after-an-install-or-upgrade">

605 Prima sessione dopo un'installazione o un aggiornamento611 Prima sessione dopo un'installazione o un aggiornamento

errors.md +162 −11

Details

134| `proxy refused the connection` | [Rete](#the-proxy-refused-the-connection) |134| `proxy refused the connection` | [Rete](#the-proxy-refused-the-connection) |

135| `403` with `GitHub GraphQL is not available from Claude Code sessions` in a cloud session | [GitHub proxy](/docs/it/cloud-environments#github-proxy) |135| `403` with `GitHub GraphQL is not available from Claude Code sessions` in a cloud session | [GitHub proxy](/docs/it/cloud-environments#github-proxy) |

136| `The cloud environments service returned an empty response` / `The cloud environments service returned a response in an unexpected format` | [Rete](#the-cloud-environments-service-returned-an-empty-or-unexpected-response) |136| `The cloud environments service returned an empty response` / `The cloud environments service returned a response in an unexpected format` | [Rete](#the-cloud-environments-service-returned-an-empty-or-unexpected-response) |

137| `Failed to fetch session from Sessions API: Failed to fetch session logs` | [Rete](#failed-to-fetch-session-from-sessions-api) |

137| `Couldn't reconnect to your Remote Control session` | [Rete](#couldnt-reconnect-to-your-remote-control-session) |138| `Couldn't reconnect to your Remote Control session` | [Rete](#couldnt-reconnect-to-your-remote-control-session) |

138| `N sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.` | [Rete](#sessions-ended-while-this-machine-was-offline) |139| `N sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.` | [Rete](#sessions-ended-while-this-machine-was-offline) |

139| `Couldn't share the transcript.` | [Rete](#couldnt-share-the-transcript) |140| `Couldn't share the transcript.` | [Rete](#couldnt-share-the-transcript) |


153| `Request too large for the API's 32MB request limit` | [Errori di richiesta](#request-too-large) |154| `Request too large for the API's 32MB request limit` | [Errori di richiesta](#request-too-large) |

154| `Image was too large` | [Errori di richiesta](#image-was-too-large) |155| `Image was too large` | [Errori di richiesta](#image-was-too-large) |

155| `Unable to resize image` | [Errori di richiesta](#unable-to-resize-image) |156| `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) |

156| `PDF too large` / `PDF is password protected` / `pdftoppm is not installed` | [Errori di richiesta](#pdf-errors) |158| `PDF too large` / `PDF is password protected` / `pdftoppm is not installed` | [Errori di richiesta](#pdf-errors) |

157| `Extra inputs are not permitted` | [Errori di richiesta](#extra-inputs-are-not-permitted) |159| `Extra inputs are not permitted` | [Errori di richiesta](#extra-inputs-are-not-permitted) |

158| `API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid` / `Property keys should match pattern` | [Errori di richiesta](#tool-input-schema-is-invalid) |160| `API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid` / `Property keys should match pattern` | [Errori di richiesta](#tool-input-schema-is-invalid) |

161| `Tool "mcp__<server>__<tool>" is not sent to Claude: its name has <N> characters and the API accepts at most 128` | [Errori di richiesta](#mcp-tool-name-over-128-characters) |

162| `tools.N.custom.name: String should have at most 128 characters` | [Errori di richiesta](#mcp-tool-name-over-128-characters) |

159| `tool_use.name: String should have at most 200 characters` | [Errori di richiesta](#tool-use-name-over-200-characters) |163| `tool_use.name: String should have at most 200 characters` | [Errori di richiesta](#tool-use-name-over-200-characters) |

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

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


198| `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) |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) |

199| `Cloud sessions cannot be created from a --restricted session` | [Errori della riga di comando](#cloud-sessions-cannot-be-created-from-a-restricted-session) |203| `Cloud sessions cannot be created from a --restricted session` | [Errori della riga di comando](#cloud-sessions-cannot-be-created-from-a-restricted-session) |

200| `Cloud sessions are disabled by your organization's policy` | [Errori della riga di comando](#cloud-sessions-are-disabled-by-your-organizations-policy) |204| `Cloud sessions are disabled by your organization's policy` | [Errori della riga di comando](#cloud-sessions-are-disabled-by-your-organizations-policy) |

201| `Couldn't verify your organization's policy for cloud sessions` | [Errori della riga di comando](#cloud-sessions-are-disabled-by-your-organizations-policy) |205| `Cloud sessions use your claude.ai login`, alla fine di un rifiuto della policy che nomina una credenziale | [Errori della riga di comando](#cloud-sessions-use-your-claude-ai-login) |

206| `Couldn't verify your organization's policy for cloud sessions` | [Errori della riga di comando](#couldnt-verify-your-organizations-policy-for-cloud-sessions) |

207| `Cloud sessions aren't available:` seguito dal motivo per cui non è stato possibile caricare la policy della tua organizzazione | [Errori della riga di comando](#couldnt-verify-your-organizations-policy-for-cloud-sessions) |

202| `Cloud sessions need a claude.ai sign-in` | [Unable to get organization UUID](/docs/it/claude-code-on-the-web#unable-to-get-organization-uuid) |208| `Cloud sessions need a claude.ai sign-in` | [Unable to get organization UUID](/docs/it/claude-code-on-the-web#unable-to-get-organization-uuid) |

209| `Nothing was stashed: "<path>" is now a folder in place of a tracked file or link` / `are now folders in place of tracked files or links` | [Errori della riga di comando](#nothing-was-stashed-because-a-folder-replaced-a-tracked-file) |

203| `Error: --json-schema is not a valid JSON Schema` | [Errori della riga di comando](#the-json-schema-value-is-not-a-valid-json-schema) |210| `Error: --json-schema is not a valid JSON Schema` | [Errori della riga di comando](#the-json-schema-value-is-not-a-valid-json-schema) |

204| `Error: Invalid --agents configuration:` | [Errori della riga di comando](#invalid-agents-configuration) |211| `Error: Invalid --agents configuration:` | [Errori della riga di comando](#invalid-agents-configuration) |

205| `Error: --agents takes a JSON object, or a file path only with --print (-p)` | [Errori della riga di comando](#invalid-agents-configuration) |212| `Error: --agents takes a JSON object, or a file path only with --print (-p)` | [Errori della riga di comando](#invalid-agents-configuration) |


259| `Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load` | [Errori della riga di comando](#output-styles-are-saved-to-local-settings-which-this-session-doesnt-load) |266| `Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load` | [Errori della riga di comando](#output-styles-are-saved-to-local-settings-which-this-session-doesnt-load) |

260| `/recap only runs when you ask for it yourself in this session` | [Errori della riga di comando](#recap-only-runs-when-you-ask-for-it-yourself) |267| `/recap only runs when you ask for it yourself in this session` | [Errori della riga di comando](#recap-only-runs-when-you-ask-for-it-yourself) |

261| `` `plugin eval` is currently in early access `` / `` `plugin eval` is currently unavailable `` | [Errori dei plugin](#plugin-eval-is-currently-in-early-access) |268| `` `plugin eval` is currently in early access `` / `` `plugin eval` is currently unavailable `` | [Errori dei plugin](#plugin-eval-is-currently-in-early-access) |

269| `cannot be evaluated where sessions load it` | [Testa i plugin con le eval](/docs/it/plugin-evals#cannot-be-evaluated-where-sessions-load-it) |

262| `Marketplace "<name>" is registered from an untrusted source` | [Errori dei plugin](#marketplace-is-registered-from-an-untrusted-source) |270| `Marketplace "<name>" is registered from an untrusted source` | [Errori dei plugin](#marketplace-is-registered-from-an-untrusted-source) |

263| `Claude Code refuses the marketplace name "<name>"` | [Errori dei plugin](#claude-code-refuses-the-marketplace-name) |271| `Claude Code refuses the marketplace name "<name>"` | [Errori dei plugin](#claude-code-refuses-the-marketplace-name) |

264| `Marketplace name impersonates an official Anthropic/Claude marketplace` | [Errori dei plugin](#claude-code-refuses-the-marketplace-name) |272| `Marketplace name impersonates an official Anthropic/Claude marketplace` | [Errori dei plugin](#claude-code-refuses-the-marketplace-name) |


358| `Claude Code's fullscreen renderer didn't finish starting last time on this machine` / `Claude Code's fullscreen renderer has repeatedly failed to start on this machine` | [Fullscreen rendering](/docs/it/fullscreen#fullscreen-renderer-didnt-finish-starting) |366| `Claude Code's fullscreen renderer didn't finish starting last time on this machine` / `Claude Code's fullscreen renderer has repeatedly failed to start on this machine` | [Fullscreen rendering](/docs/it/fullscreen#fullscreen-renderer-didnt-finish-starting) |

359| `Claude Code exited after an unrecoverable interface error (...)` | [Avvisi di configurazione](#exited-after-an-unrecoverable-interface-error) |367| `Claude Code exited after an unrecoverable interface error (...)` | [Avvisi di configurazione](#exited-after-an-unrecoverable-interface-error) |

360| `Agent descriptions are over the 15.0k-token limit` | [Avvisi di configurazione](#agent-descriptions-are-over-the-15000-token-limit) |368| `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) |

361| `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) |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) |

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

362| `Ignoring N permissions.allow entries from ... this workspace has not been trusted` | [Avvisi di configurazione](#workspace-has-not-been-trusted) |372| `Ignoring N permissions.allow entries from ... this workspace has not been trusted` | [Avvisi di configurazione](#workspace-has-not-been-trusted) |

363| `is a network path, which cannot be added as a working directory` | [Avvisi di configurazione](#working-directory-is-a-network-path) |373| `is a network path, which cannot be added as a working directory` | [Avvisi di configurazione](#working-directory-is-a-network-path) |

364| `Remote managed settings failed to load (<cause>)` | [Avvisi di configurazione](#remote-managed-settings-failed-to-load) |374| `Remote managed settings failed to load (<cause>)` | [Avvisi di configurazione](#remote-managed-settings-failed-to-load) |


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

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

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

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

450| [`API_TIMEOUT_MS`](/docs/it/env-vars) | 600000 | Timeout per richiesta in millisecondi. Aumentalo per reti lente o proxy. Limita anche quanto a lungo Claude Code attende le intestazioni di risposta, descritto in [No response from API](#no-response-from-api). |461| [`API_TIMEOUT_MS`](/docs/it/env-vars) | 600000 | Timeout per richiesta in millisecondi. Aumentalo per reti lente o proxy. Limita anche quanto a lungo Claude Code attende le intestazioni di risposta, descritto in [No response from API](#no-response-from-api). |

451| [`CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES`](/docs/it/env-vars) | unset | Limite di nuovi invii di una [richiesta non in streaming](#streaming-response-ended-before-any-complete-data-was-received) che va in timeout. Al raggiungimento del limite, la richiesta fallisce. Una risposta di Claude che impiega più del timeout per essere generata va di nuovo in timeout a ogni nuovo invio, quindi imposta un numero basso come `0` per fallire prima. Ogni tentativo non in streaming va in timeout dopo 300 secondi in una sessione locale, oppure dopo `API_TIMEOUT_MS` quando imposti un valore positivo. Richiede Claude Code v2.1.285 o successivo. |462| [`CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES`](/docs/it/env-vars) | unset | Limite di nuovi invii di una [richiesta non in streaming](#streaming-response-ended-before-any-complete-data-was-received) che va in timeout. Al raggiungimento del limite, la richiesta fallisce. Una risposta di Claude che impiega più del timeout per essere generata va di nuovo in timeout a ogni nuovo invio, quindi imposta un numero basso come `0` per fallire prima. Ogni tentativo non in streaming va in timeout dopo 300 secondi in una sessione locale, oppure dopo `API_TIMEOUT_MS` quando imposti un valore positivo. Richiede Claude Code v2.1.285 o successivo. |

452| [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/it/env-vars) | unset | Scadenza in millisecondi per il primo byte di risposta di una richiesta di streaming. Richiede Claude Code v2.1.242 o successivo. Per come Claude Code sceglie la scadenza quando questo non è impostato, vedi [No response from API](#no-response-from-api). |463| [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/it/env-vars) | unset | Scadenza in millisecondi per il primo byte di risposta di una richiesta di streaming. Richiede Claude Code v2.1.242 o successivo. Per come Claude Code sceglie la scadenza quando questo non è impostato, vedi [No response from API](#no-response-from-api). |


2045Questi passaggi cambiano uno dei tuoi ambienti. Un [organization-shared environment](/docs/it/cloud-environments#organization-shared-environments) si apre in sola lettura nel selettore, quindi chiedi a un Owner di cambiare il suo accesso di rete dalla pagina **Cloud environments** in [admin settings](https://claude.ai/admin-settings).2056Questi passaggi cambiano uno dei tuoi ambienti. Un [organization-shared environment](/docs/it/cloud-environments#organization-shared-environments) si apre in sola lettura nel selettore, quindi chiedi a un Owner di cambiare il suo accesso di rete dalla pagina **Cloud environments** in [admin settings](https://claude.ai/admin-settings).

2046 2057 

2047* Apri il tuo ambiente per la modifica, o dalla [routine's form](/docs/it/routines#environments-and-network-access) o dal [environment selector](/docs/it/cloud-environments#configure-your-environment) dove avvii sessioni cloud.2058* Apri il tuo ambiente per la modifica, o dalla [routine's form](/docs/it/routines#environments-and-network-access) o dal [environment selector](/docs/it/cloud-environments#configure-your-environment) dove avvii sessioni cloud.

2048* Nella finestra di dialogo **Edit environment**, cambia **Network access** da **Trusted** a **Custom**, quindi aggiungi il dominio bloccato a **Allowed domains**. Inserisci un dominio per riga. Seleziona **Also include default list of common package managers** per mantenere l'[allowlist predefinita](/docs/it/cloud-environments#default-allowed-domains) insieme ai tuoi domini personalizzati. Seleziona **Full** invece se desideri accesso senza restrizioni.2059* Nella finestra di dialogo **Edit cloud environment**, cambia **Network access** da **Trusted** a **Custom**, quindi aggiungi il dominio bloccato a **Allowed domains**. Inserisci un dominio per riga. Seleziona **Also include default list of common package managers** per mantenere l'[allowlist predefinita](/docs/it/cloud-environments#default-allowed-domains) insieme ai tuoi domini personalizzati. Seleziona **Full** invece se desideri accesso senza restrizioni.

2049* Fai clic su **Save changes**. La prossima esecuzione utilizza l'allowlist aggiornata. Per una sessione cloud che è già aperta, vedi [quando una modifica dell'accesso di rete raggiunge le sessioni esistenti](/docs/it/cloud-environments#network-access).2060* Fai clic su **Save changes**. La prossima esecuzione utilizza l'allowlist aggiornata. Per una sessione cloud che è già aperta, vedi [quando una modifica dell'accesso di rete raggiunge le sessioni esistenti](/docs/it/cloud-environments#network-access).

2050 2061 

2051Vedi [Network access](/docs/it/cloud-environments#network-access) per i livelli di accesso e l'allowlist predefinita. Le sessioni CLI locali non sono interessate da questa politica.2062Vedi [Network access](/docs/it/cloud-environments#network-access) per i livelli di accesso e l'allowlist predefinita. Le sessioni CLI locali non sono interessate da questa politica.


2097 2108 

2098Prima della v2.1.236, Claude Code mostrava un TypeError JavaScript grezzo invece di questi messaggi.2109Prima della v2.1.236, Claude Code mostrava un TypeError JavaScript grezzo invece di questi messaggi.

2099 2110 

2111<h3 id="failed-to-fetch-session-from-sessions-api">

2112 Failed to fetch session from Sessions API

2113</h3>

2114 

2115Questo messaggio significa che Claude Code ha trovato la [sessione cloud che hai chiesto di portare nel tuo terminale](/docs/it/claude-code-on-the-web#from-cloud-to-terminal) ma non è riuscito a leggerne la cronologia della conversazione dai server di Anthropic, quindi non l'ha aperta:

2116 

2117```text theme={null}

2118Failed to fetch session from Sessions API: Failed to fetch session logs

2119```

2120 

2121Lo vedi dopo `claude --teleport`, `/teleport`, o dopo aver scelto la sessione nell'elenco [`/tasks`](/docs/it/commands). `claude --teleport <session-id>` lo stampa ed esce con codice 1.

2122 

2123**Cosa fare:**

2124 

2125* Esegui di nuovo lo stesso teleport. Se fallisce allo stesso modo, [segnala il problema](#report-an-error)

2126 

2127Prima della v2.1.296, Claude Code non ritentava una lettura fallita e, dopo una lettura fallita, poteva aprire la sessione con una conversazione vuota e segnalare il successo invece di stampare questo messaggio.

2128 

2100<h3 id="couldnt-reconnect-to-your-remote-control-session">2129<h3 id="couldnt-reconnect-to-your-remote-control-session">

2101 Couldn't reconnect to your Remote Control session2130 Couldn't reconnect to your Remote Control session

2102</h3>2131</h3>


2344* Se il messaggio segnala un limite di dimensione o dimensione, ridimensiona o ricomprimi l'immagine al di sotto di quel limite prima di allegare.2373* Se il messaggio segnala un limite di dimensione o dimensione, ridimensiona o ricomprimi l'immagine al di sotto di quel limite prima di allegare.

2345* Se il messaggio nomina una causa, come un JPEG CMYK, un WebP animato o un file possibilmente danneggiato, risalva l'immagine nel formato che il messaggio suggerisce e allegala di nuovo.2374* Se il messaggio nomina una causa, come un JPEG CMYK, un WebP animato o un file possibilmente danneggiato, risalva l'immagine nel formato che il messaggio suggerisce e allegala di nuovo.

2346 2375 

2376<h3 id="request-rejected-as-unprocessable-by-the-model">

2377 Request rejected as unprocessable by the model

2378</h3>

2379 

2380L'API ha rifiutato la richiesta in quanto il modello non può elaborarla. Il messaggio è quello dell'API stessa.

2381 

2382```text theme={null}

2383API Error: 400 Request rejected as unprocessable by the model (too many or oversized images, or unsupported parameters)

2384```

2385 

2386Claude Code può rimuovere le immagini e i documenti più vecchi da una richiesta rifiutata e inviarla di nuovo. Prima della v2.1.290, Claude Code non rimuoveva le immagini in caso di questo rifiuto, quindi una sessione lunga che ne aveva accumulate centinaia poteva fallire con questo errore a ogni turno.

2387 

2388**Cosa fare:**

2389 

2390* Se il messaggio continua a comparire in una conversazione con immagini o documenti, rimuovili tu stesso. Premi Esc due volte per tornare indietro oltre i turni che li hanno aggiunti, oppure esegui `/clear` per ricominciare da zero.

2391 

2347<h3 id="pdf-errors">2392<h3 id="pdf-errors">

2348 Errori PDF2393 Errori PDF

2349</h3>2394</h3>


2413* Rimuovi o [disabilita](/docs/it/mcp#disable-a-server-without-removing-it) il server MCP che dichiara lo schema non valido. L'errore nomina lo strumento solo per posizione. Sulla v2.1.216 o successiva, controlla il log di ogni server per una riga che nomina uno strumento il cui schema di input verrebbe rifiutato. Se nessun log ne nomina uno, disabilita i server uno alla volta.2458* Rimuovi o [disabilita](/docs/it/mcp#disable-a-server-without-removing-it) il server MCP che dichiara lo schema non valido. L'errore nomina lo strumento solo per posizione. Sulla v2.1.216 o successiva, controlla il log di ogni server per una riga che nomina uno strumento il cui schema di input verrebbe rifiutato. Se nessun log ne nomina uno, disabilita i server uno alla volta.

2414* Se mantieni il server, correggi il `input_schema` dello strumento. Lo schema deve essere un JSON Schema valido e i nomi delle proprietà di primo livello devono essere da 1 a 64 caratteri e utilizzare solo lettere ASCII e cifre, `_`, `.` e `-`. Vedi [Strumenti con schemi di input non validi](/docs/it/mcp#tools-with-invalid-input-schemas).2459* Se mantieni il server, correggi il `input_schema` dello strumento. Lo schema deve essere un JSON Schema valido e i nomi delle proprietà di primo livello devono essere da 1 a 64 caratteri e utilizzare solo lettere ASCII e cifre, `_`, `.` e `-`. Vedi [Strumenti con schemi di input non validi](/docs/it/mcp#tools-with-invalid-input-schemas).

2415 2460 

2461<h3 id="mcp-tool-name-over-128-characters">

2462 Nome dello strumento MCP oltre 128 caratteri

2463</h3>

2464 

2465Un server MCP elenca uno strumento il cui nome completo, come `mcp__<server>__<tool>`, è più lungo dei 128 caratteri che l'API accetta. Claude Code [esclude quello strumento dagli strumenti che invia a Claude](/docs/it/mcp#tools-with-names-longer-than-128-characters), e gli altri strumenti del server continuano a funzionare. In una sessione che avvii con `claude --debug` dalla tua shell, Claude Code scrive questo messaggio nel log di debug in `~/.claude/debug/<session-id>.txt`:

2466 

2467```text theme={null}

2468Tool "mcp__<server>__<tool>" is not sent to Claude: its name has <N> characters and the API accepts at most 128

2469```

2470 

2471**Cosa fare:**

2472 

2473* Se mantieni il server, accorcia il nome dello strumento.

2474* Se il server è nella tua [configurazione MCP](/docs/it/mcp#mcp-installation-scopes), assegnagli lì un nome più breve, come `db` al posto di `analytics-database`. Quindi aggiorna ciò che fa riferimento al server o ai suoi strumenti con il vecchio nome, come le [regole di permesso](/docs/it/permissions#mcp) e i [matcher degli hook](/docs/it/hooks#match-mcp-tools).

2475* Se un [plugin include il server](/docs/it/mcp#plugin-provided-mcp-servers), il nome completo dello strumento include anche il nome del plugin. Chiedi al manutentore del plugin di accorciare il nome del server o dello strumento.

2476 

2477Prima della v2.1.292, Claude Code inviava comunque lo strumento, e l'API rifiutava ogni richiesta che lo includeva con `API Error: 400 ... tools.N.custom.name: String should have at most 128 characters`.

2478 

2416<h3 id="tool-use-name-over-200-characters">2479<h3 id="tool-use-name-over-200-characters">

2417 tool\_use.name oltre 200 caratteri2480 tool\_use.name oltre 200 caratteri

2418</h3>2481</h3>


3022 3085 

3023Il messaggio appare quando [crei una sessione cloud dal terminale](/docs/it/claude-code-on-the-web#from-terminal-to-cloud) e quando invii un comando che richiede le sessioni cloud, come `/teleport`, `/remote-env` o `/web-setup`. Prima della v2.1.268, l'invio di uno di quei comandi restituiva invece [`Unknown command`](#unknown-command).3086Il messaggio appare quando [crei una sessione cloud dal terminale](/docs/it/claude-code-on-the-web#from-terminal-to-cloud) e quando invii un comando che richiede le sessioni cloud, come `/teleport`, `/remote-env` o `/web-setup`. Prima della v2.1.268, l'invio di uno di quei comandi restituiva invece [`Unknown command`](#unknown-command).

3024 3087 

3025Si tratta di una policy dell'organizzazione lato server, quindi non può essere sovrascritta da impostazioni locali, variabili d'ambiente o flag della CLI.3088Se invece il messaggio indica una credenziale che questa sessione sta usando e termina con `Cloud sessions use your claude.ai login.`, consulta [Cloud sessions use your claude.ai login](#cloud-sessions-use-your-claude-ai-login). Se Claude Code non è riuscito affatto a caricare la policy della tua organizzazione, vedi invece [un messaggio diverso](#couldnt-verify-your-organizations-policy-for-cloud-sessions).

3026 

3027Se Claude Code non ha ancora caricato la policy della tua organizzazione o non riesce a recuperarla, quei comandi rispondono invece con `Couldn't verify your organization's policy for cloud sessions. Check your network connection, then restart Claude Code and try again.`.

3028 3089 

3029**Cosa fare:**3090**Cosa fare:**

3030 3091 

3031* Chiedi a un [Owner](/docs/it/server-managed-settings#access-control) della tua organizzazione di abilitare le sessioni cloud nelle impostazioni di amministrazione di Claude Code su [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)3092* Chiedi a un [Owner](/docs/it/server-managed-settings#access-control) della tua organizzazione di abilitare le sessioni cloud nelle impostazioni di amministrazione di Claude Code su [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)

3032* Se il messaggio dice che non è stato possibile verificare la policy, controlla la connessione di rete, quindi riavvia Claude Code e riprova3093 

3094<h3 id="cloud-sessions-use-your-claude-ai-login">

3095 Cloud sessions use your claude.ai login

3096</h3>

3097 

3098Quando il [rifiuto della policy](#cloud-sessions-are-disabled-by-your-organizations-policy) indica una credenziale che questa sessione sta usando e termina con questa frase, Claude Code ha controllato la policy sulle sessioni cloud dell'organizzazione che ha emesso quella credenziale. Quell'organizzazione può essere diversa da quella a cui appartiene il tuo accesso a claude.ai:

3099 

3100```text theme={null}

3101Cloud sessions are disabled by your organization's policy. This session is using ANTHROPIC_API_KEY, so Claude Code checked the policy for the organization that key belongs to. Cloud sessions use your claude.ai login.

3102```

3103 

3104L'ultima frase significa che le sessioni cloud vengono eseguite con il tuo accesso a claude.ai anziché con quella credenziale. Questa forma appare quando avvii, riprendi o invii un messaggio a una sessione cloud dalla tua shell, ad esempio con `--cloud` o `--teleport`. Prima della v2.1.296, anche in questo caso Claude Code stampava la forma che ti invita a contattare l'amministratore della tua organizzazione.

3105 

3106<h3 id="couldnt-verify-your-organizations-policy-for-cloud-sessions">

3107 Couldn't verify your organization's policy for cloud sessions

3108</h3>

3109 

3110Questi messaggi indicano che Claude Code non è riuscito a caricare la policy della tua organizzazione, che controlla prima di creare, riprendere o inviare un messaggio a una [sessione cloud](/docs/it/claude-code-on-the-web). Finché la richiesta della policy non è terminata, il messaggio è:

3111 

3112```text theme={null}

3113Couldn't verify your organization's policy for cloud sessions. Check your network connection and try again.

3114```

3115 

3116All'interno di una sessione, anche un comando che richiede le sessioni cloud, come `/teleport` o `/web-setup`, restituisce questo messaggio. Lo fa anche dove la tua shell stamperebbe una forma `Cloud sessions aren't available:`, e la sua seconda frase è `Check your network connection, then restart Claude Code and try again.`

3117 

3118Una volta che la richiesta della policy è fallita, il messaggio indica cosa non ha funzionato. Questo vale quando avvii, riprendi o invii un messaggio a una sessione cloud dalla tua shell con un flag come `--cloud` o `--teleport`. Senza un percorso verso l'API, il messaggio è:

3119 

3120```text theme={null}

3121Cloud sessions aren't available: couldn't reach api.anthropic.com to load your organization's policy. Check your network or proxy.

3122```

3123 

3124Altri errori seguono la stessa apertura con la propria causa, ad esempio un proxy che ha rifiutato la richiesta con HTTP 403, un errore del server o credenziali che l'API non ha accettato. Quando l'API non ha accettato una credenziale che questa sessione usa al posto del tuo accesso a claude.ai, ad esempio una variabile d'ambiente `ANTHROPIC_API_KEY`, il messaggio può anche indicarla e suggerire di rimuoverla:

3125 

3126```text theme={null}

3127Cloud sessions aren't available: api.anthropic.com didn't accept this session's credentials when Claude Code asked for your organization's policy. Cloud sessions use your claude.ai login. ANTHROPIC_API_KEY is set, so this session is using API-key auth — unset it (or run in a shell without it) to use cloud sessions.

3128```

3129 

3130Prima della v2.1.296, anche questi errori stampavano il messaggio `Couldn't verify`.

3131 

3132**Cosa fare:**

3133 

3134* Per il messaggio `Couldn't verify`, controlla la tua connessione di rete e riprova. All'interno di una sessione, riavvia prima Claude Code

3135* Per un messaggio `Cloud sessions aren't available:`, fai ciò che richiede la causa indicata, ad esempio controllare il proxy o rimuovere la credenziale indicata, poi esegui di nuovo il comando

3136 

3137<h3 id="nothing-was-stashed-because-a-folder-replaced-a-tracked-file">

3138 Nessuno stash eseguito perché una cartella ha sostituito un file tracciato

3139</h3>

3140 

3141Questo messaggio significa che una cartella nel tuo checkout ora si trova dove prima c'era un file o un collegamento tracciato da git. Compare dopo che scegli l'opzione di stash mentre porti una [sessione cloud](/docs/it/claude-code-on-the-web#from-cloud-to-terminal) nel tuo terminale, ad esempio con `claude --teleport` o `/teleport`. Eseguire lo stash di quello stato potrebbe eliminare i file all'interno della cartella, quindi Claude Code rifiuta lo stash e lascia invariati il checkout e l'indice:

3142 

3143```text wrap theme={null}

3144Error: Nothing was stashed: "f" is now a folder in place of a tracked file or link, and stashing could delete what's in it for good. Commit the change or move the folder somewhere else, then try again.

3145```

3146 

3147**Cosa fare:**

3148 

3149* Esegui il commit della modifica o sposta la cartella altrove, come indica il messaggio, poi esegui di nuovo il teleport

3033 3150 

3034<h3 id="the-json-schema-value-is-not-a-valid-json-schema">3151<h3 id="the-json-schema-value-is-not-a-valid-json-schema">

3035 Il valore di `--json-schema` non è un JSON Schema valido3152 Il valore di `--json-schema` non è un JSON Schema valido


3427 3544 

3428Claude 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: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:

3429 3546 

3430* `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 ciascuna modalità di permesso e come pre-approvare un comando con `allowed-tools`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`

3431* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: il frontmatter della skill richiede bash su una macchina che ne è priva. Installa Git for Windows oppure modifica il frontmatter in `shell: powershell`. Consulta [How injected commands run](/docs/it/skills#how-injected-commands-run)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)

3432 3549 

3433**Cosa fare:**3550**Cosa fare:**

3434 3551 


3577 3694 

3578* **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 sopra3695* **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

3579* **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>`)``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>`)``

3580* **Hai passato un branch base che non era presente nel tuo clone**: Claude Code ne ha eseguito il fetch da origin prima del confronto. Il suggerimento riporta ``<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 base recuperato tramite fetch, e su un clone completo quel comando non riesce con `fatal: --unshallow on a complete repository does not make sense`.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`.

3581 3698 

3582**Cosa fare:**3699**Cosa fare:**

3583 3700 


3835 Claude Code couldn't restart3952 Claude Code couldn't restart

3836</h3>3953</h3>

3837 3954 

3838Claude Code si stava riavviando, ad esempio per passare al rendering a schermo intero o tornare da esso dopo che hai eseguito [`/tui`](/docs/it/fullscreen#enable-fullscreen-rendering). Ha chiuso la sessione ma non è riuscito ad avviare il nuovo processo, quindi ha stampato questo messaggio ed è terminato con stato 1:3955Quando questo messaggio dice che la tua conversazione è salvata, la conversazione è su disco e puoi riprenderla da dove si era interrotta. Claude Code si stava riavviando, ad esempio per passare al rendering a schermo intero o tornare da esso dopo che hai eseguito [`/tui`](/docs/it/fullscreen#enable-fullscreen-rendering), e non è riuscito ad avviare il nuovo processo, quindi è uscito con stato 1:

3839 3956 

3840```text theme={null}3957```text theme={null}

3841Claude Code couldn't restart. Your conversation is saved. Start Claude Code again and run /resume to pick it up.3958Claude Code couldn't restart. Your conversation is saved. Start Claude Code again and run /resume to pick it up.


3845 3962 

3846**Cosa fare:**3963**Cosa fare:**

3847 3964 

3848* Esegui di nuovo `claude` nella tua shell dalla stessa directory. Se il messaggio diceva che la conversazione è salvata, esegui [`/resume`](/docs/it/sessions#resume-a-session) nella nuova sessione e selezionala3965* Esegui di nuovo `claude` nella tua shell. Se il messaggio diceva che la tua conversazione è salvata, esegui [`/resume`](/docs/it/sessions#resume-a-session) nella nuova sessione e seleziona la conversazione. Se non è nell'elenco, [estendi il selettore delle sessioni](/docs/it/sessions#where-the-session-picker-looks)

3849* Se i riavvii continuano a non riuscire, avvia Claude Code dalla tua shell con [`claude --debug-file claude-debug.log`](/docs/it/cli-reference#cli-flags). Se un riavvio da quella sessione non riesce, `claude-debug.log` nella directory da cui sei partito registra una riga `Failed to relaunch:` con l'errore del sistema operativo. Includi quella riga quando [segnali il problema](#report-an-error)3966* Se i riavvii continuano a non riuscire, avvia Claude Code dalla tua shell con [`claude --debug-file claude-debug.log`](/docs/it/cli-reference#cli-flags). Se un riavvio da quella sessione non riesce, `claude-debug.log` nella directory da cui sei partito registra una riga `Failed to relaunch:` con l'errore del sistema operativo. Includi quella riga quando [segnali il problema](#report-an-error)

3850 3967 

3851<h3 id="couldnt-open-claude-desktop">3968<h3 id="couldnt-open-claude-desktop">


5366* Accorciare il frontmatter `description` dei vostri file di agente, o chiedere a Claude di tagliarli per voi.5483* Accorciare il frontmatter `description` dei vostri file di agente, o chiedere a Claude di tagliarli per voi.

5367* Rimuovere i file di agente che non usate più.5484* Rimuovere i file di agente che non usate più.

5368 5485 

5486<h3 id="hook-needs-quotes-around-a-path-with-a-space">

5487 Hook needs quotes around a path with a space

5488</h3>

5489 

5490Questa notifica nella vista della conversazione significa che lo script di un hook non è stato eseguito perché il suo percorso contiene uno spazio e non è racchiuso tra virgolette. Si tratta di un hook [`asyncRewake`](/docs/it/hooks#run-hooks-in-the-background) in forma shell. Nel suo `command`, un interprete come `python3` è seguito da un segnaposto di percorso senza virgolette, e il percorso risolto contiene uno spazio.

5491 

5492La notifica inizia con il nome dell'evento dell'hook e nomina lo script:

5493 

5494```text theme={null}

5495Stop hook needs quotes around a path with a space (check.py)

5496```

5497 

5498**Cosa fare:**

5499 

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\""`.

5501 

5369<h3 id="a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved">5502<h3 id="a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved">

5370 Una skill, un comando o un workflow non è stato caricato perché il suo nome è riservato5503 Una skill, un comando o un workflow non è stato caricato perché il suo nome è riservato

5371</h3>5504</h3>


5386 5519 

5387Prima della v2.1.282, Claude Code caricava skills e comandi con questi nomi.5520Prima della v2.1.282, Claude Code caricava skills e comandi con questi nomi.

5388 5521 

5522<h3 id="skill-or-command-name-refused">

5523 Skill or command name refused

5524</h3>

5525 

5526Questo avviso di avvio significa che Claude Code ha rifiutato il nome di almeno una [skill o di un comando personalizzato](/docs/it/skills), che quindi non è stato caricato oppure è stato caricato senza il suo campo `name`:

5527 

5528```text theme={null}

55291 skill or command name refused: run with --debug to see which ([names]), rename, then restart — a name may not hold hidden, direction-changing or blank-like characters, < or >, or be over 256 characters

5530```

5531 

5532* **Non caricato**: Claude Code ha rifiutato il nome con cui va una skill o un comando, come il nome della sua directory oppure il nome o la sottocartella di un file di comando. Manca dal menu `/` e Claude non può invocarlo. La sua riga nel log di debug riporta `<name> is not offered`.

5533* **Campo `name` ignorato**: Claude Code ha rifiutato il frontmatter `name` di una skill. La skill viene comunque caricata, ma il menu `/` non mostra il valore di `name` e digitarlo non invoca la skill. La sua riga nel log di debug riporta `<name value> is not shown for <skill>`.

5534 

5535**Cosa fare:**

5536 

5537* Avvia Claude Code con `claude --debug` dalla tua shell e cerca `[names]` nel [log di debug](/docs/it/debug-your-config). Ogni nome conteggiato dall'avviso ha lì una riga. La riga riporta alcuni caratteri nascosti come codici, ad esempio `\u{200B}` per uno spazio a larghezza zero, così puoi vedere dove si trovano.

5538* Rimuovi i [caratteri che il nome di una skill non può contenere](/docs/it/skills#characters-a-skill-name-cant-hold) rinominando la cartella o il file oppure modificando la riga `name:`, oppure accorcia un nome che supera i 256 caratteri. Poi riavvia la sessione, a meno che il file non si trovi in una directory che Claude Code [monitora per le modifiche](/docs/it/skills#live-change-detection). Per una skill di un plugin che non hai scritto tu, chiedi all'autore del plugin di rinominarla.

5539 

5389<h3 id="workspace-has-not-been-trusted">5540<h3 id="workspace-has-not-been-trusted">

5390 Lo spazio di lavoro non è stato considerato attendibile5541 Lo spazio di lavoro non è stato considerato attendibile

5391</h3>5542</h3>

Details

220</table>220</table>

221 221 

222<span id="fn1" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>1</sup> Su Google Cloud's Agent Platform, la ricerca web è disponibile per Opus 4, Sonnet 4, Haiku 4.5 e i modelli successivi.<br />222<span id="fn1" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>1</sup> Su Google Cloud's Agent Platform, la ricerca web è disponibile per Opus 4, Sonnet 4, Haiku 4.5 e i modelli successivi.<br />

223<span id="fn2" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>2</sup> Su questi provider, la modalità auto supporta solo Claude Sonnet 5 o successivi, Opus 4.7 o successivi, Haiku 5.5 e i modelli Fable. Consulta [Configurazione della modalità auto](/docs/it/auto-mode-config). Per la modalità di permesso con cui si avvia una sessione su questi provider, consulta [Con quale modalità si avvia una sessione](/docs/it/permission-modes#which-mode-a-session-starts-in). Dalla v2.1.158 alla v2.1.206, la modalità auto su questi provider richiedeva anche l'impostazione di `CLAUDE_CODE_ENABLE_AUTO_MODE=1`; la v2.1.207 ha rimosso il requisito.<br />223<span id="fn2" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>2</sup> Su questi provider, la modalità auto supporta solo Claude Sonnet 5 o successivi, Opus 4.7 o successivi, Haiku 5.5 e i modelli Fable. Consulta [Configurazione della modalità auto](/docs/it/auto-mode-config). Per la modalità di permesso con cui si avvia una sessione su questi provider, consulta [Con quale modalità si avvia una sessione](/docs/it/permission-modes#which-mode-a-session-starts-in).<br />

224<span id="fn3" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>3</sup> Soggetto al tuo accordo con il provider cloud.<br />224<span id="fn3" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>3</sup> Soggetto al tuo accordo con il provider cloud.<br />

225<span id="fn4" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>4</sup> Solo dashboard e API. [Metriche di contribuzione](/docs/it/analytics#enable-contribution-metrics) richiede un'organizzazione Team o Enterprise su claude.ai.<br />225<span id="fn4" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>4</sup> Solo dashboard e API. [Metriche di contribuzione](/docs/it/analytics#enable-contribution-metrics) richiede un'organizzazione Team o Enterprise su claude.ai.<br />

226<span id="fn5" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>5</sup> Richiede Claude Code v2.1.224 o successivo su macOS e Linux, incluso Linux all'interno di WSL 2. Su Windows nativo, richiede Claude Code v2.1.234 o successivo. Con autenticazione tramite chiave API, la messaggistica è solo sulla stessa macchina. Su Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform e Microsoft Foundry, la messaggistica è solo sulla stessa macchina e richiede Claude Code v2.1.248 o successivo. Claude può trovare le tue [sessioni cloud](/docs/it/claude-code-on-the-web) e le tue sessioni su altre macchine solo da una sessione connessa a [Remote Control](/docs/it/remote-control). Per connetterti, hai bisogno di un accesso claude.ai e degli altri [requisiti di Remote Control](/docs/it/remote-control#requirements). Consulta [Messaggi alle sessioni su altre macchine](/docs/it/cross-session-messaging#message-sessions-on-other-machines).226<span id="fn5" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>5</sup> Richiede Claude Code v2.1.224 o successivo su macOS e Linux, incluso Linux all'interno di WSL 2. Su Windows nativo, richiede Claude Code v2.1.234 o successivo. Con autenticazione tramite chiave API, la messaggistica è solo sulla stessa macchina. Su Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform e Microsoft Foundry, la messaggistica è solo sulla stessa macchina e richiede Claude Code v2.1.248 o successivo. Claude può trovare le tue [sessioni cloud](/docs/it/claude-code-on-the-web) e le tue sessioni su altre macchine solo da una sessione connessa a [Remote Control](/docs/it/remote-control). Per connetterti, hai bisogno di un accesso claude.ai e degli altri [requisiti di Remote Control](/docs/it/remote-control#requirements). Consulta [Messaggi alle sessioni su altre macchine](/docs/it/cross-session-messaging#message-sessions-on-other-machines).

Details

282 282 

283 **Costo del contesto:** Basso fino a quando non vengono utilizzate. Le skills solo utente hanno costo zero fino a quando non vengono invocate.283 **Costo del contesto:** Basso fino a quando non vengono utilizzate. Le skills solo utente hanno costo zero fino a quando non vengono invocate.

284 284 

285 **Nei subagents:** Le skills funzionano diversamente nei subagents. Invece del caricamento su richiesta, le skills elencate nel campo `skills:` dell'agente vengono completamente precaricate nel suo contesto all'avvio. I subagents possono comunque scoprire e invocare skills di progetto, utente e plugin non elencate attraverso lo strumento Skill.285 **Nei subagent:** Le skill funzionano diversamente nei subagent. Invece del caricamento su richiesta, le skill elencate nel campo `skills` del subagent vengono completamente precaricate nel suo contesto all'avvio. I subagent possono comunque scoprire e invocare skill di progetto, utente e plugin non elencate attraverso lo strumento Skill.

286 286 

287 <Tip>Utilizza `disable-model-invocation: true` per le skill con effetti collaterali. Questo risparmia contesto e assicura che vengano eseguite solo quando le richiami per nome.</Tip>287 <Tip>Utilizza `disable-model-invocation: true` per le skill con effetti collaterali. Questo risparmia contesto e assicura che vengano eseguite solo quando le richiami per nome.</Tip>

288 </Tab>288 </Tab>


310 <Tab title="Subagents">310 <Tab title="Subagents">

311 **Quando:** Su richiesta, quando voi o Claude ne generate uno per un compito.311 **Quando:** Su richiesta, quando voi o Claude ne generate uno per un compito.

312 312 

313 **Cosa si carica:** Contesto fresco e isolato contenente:313 **Cosa si carica:** Contesto nuovo e isolato contenente:

314 314 

315 * Il prompt di sistema dell'agente, non il prompt di sistema di Claude Code315 * Il prompt di sistema dell'agente, non il prompt di sistema di Claude Code

316 * Contenuto completo delle skills elencate nel campo `skills:` dell'agente316 * Contenuto completo delle skill elencate nel campo `skills:` dell'agente

317 * CLAUDE.md e stato git, eccetto gli agenti Explore e Plan integrati [che omettono entrambi](/docs/it/sub-agents#what-loads-at-startup), e un agente la cui definizione imposta [`omitClaudeMd`](/docs/it/sub-agents#supported-frontmatter-fields) salta i file CLAUDE.md utente, progetto e locale317 * CLAUDE.md e stato git. Gli agenti integrati Explore e Plan [non partono con nessuno dei due](/docs/it/sub-agents#what-loads-at-startup), e un agente la cui definizione imposta [`omitClaudeMd`](/docs/it/sub-agents#supported-frontmatter-fields) parte senza i file CLAUDE.md utente, di progetto e locale.

318 * Qualsiasi contesto che l'agente principale passa nel prompt318 * Qualsiasi contesto che l'agente principale passa nel prompt

319 319 

320 Per un [fork](/docs/it/sub-agents#fork-the-current-conversation), Claude Code carica la conversazione del genitore fino a quel momento, il prompt di sistema e gli strumenti invece.320 Per un [fork](/docs/it/sub-agents#fork-the-current-conversation), Claude Code carica la conversazione del genitore fino a quel momento, il prompt di sistema e gli strumenti invece.

Details

22 22 

23| Funzionalità | Supporto GHES | Note |23| Funzionalità | Supporto GHES | Note |

24| :- | :- | :- |24| :- | :- | :- |

25| Sessioni cloud | ✅ Supportato | Un proprietario connette l'istanza GHES una volta; gli sviluppatori utilizzano `claude --cloud` o [claude.ai/code](https://claude.ai/code) come al solito |25| Sessioni cloud | ✅ Supportato | Un proprietario connette l'istanza GHES una volta; gli sviluppatori utilizzano `claude --cloud` o [claude.ai/code](https://claude.ai/code) |

26| Code Review | ✅ Supportato | Stesse revisioni automatiche dei PR di github.com |26| Code Review | ✅ Supportato | Stesse revisioni automatiche dei PR di github.com |

27| Claude Security | ✅ Supportato | Disponibile in beta pubblica per i piani Enterprise su [claude.ai/security](https://claude.ai/security) |27| Claude Security | ✅ Supportato | Disponibile in beta pubblica per i piani Enterprise su [claude.ai/security](https://claude.ai/security) |

28| Sessioni Teleport | ✅ Supportato | Sposta le sessioni tra cloud e terminale con `--teleport` |28| Sessioni Teleport | ✅ Supportato | Sposta le sessioni tra cloud e terminale con `--teleport` |


35 Configurazione amministratore35 Configurazione amministratore

36</h2>36</h2>

37 37 

38Un Owner connette la tua istanza GHES a Claude Code una volta. Dopo di che, gli sviluppatori della tua organizzazione possono utilizzare i repository GHES senza alcuna configurazione aggiuntiva. Hai bisogno del ruolo Owner o Primary Owner nella tua organizzazione Claude e del permesso di creare GitHub App sulla tua istanza GHES.38Un Owner connette la tua istanza GHES a Claude Code una volta. Hai bisogno del ruolo Owner o Primary Owner nella tua organizzazione Claude e del permesso di creare GitHub App sulla tua istanza GHES.

39 39 

40La configurazione guidata genera un manifesto GitHub App e ti reindirizza alla tua istanza GHES per creare l'app in un clic. Se il tuo ambiente blocca il flusso di reindirizzamento, è disponibile una [configurazione manuale alternativa](#manual-setup).40La configurazione guidata genera un manifesto GitHub App e ti reindirizza alla tua istanza GHES per creare l'app in un clic. Se il tuo ambiente blocca il flusso di reindirizzamento, è disponibile una [configurazione manuale alternativa](#manual-setup).

41 41 


103 Flusso di lavoro dello sviluppatore103 Flusso di lavoro dello sviluppatore

104</h2>104</h2>

105 105 

106Una volta che il tuo amministratore ha connesso l'istanza GHES, non è necessaria alcuna configurazione lato sviluppatore. Claude Code rileva automaticamente il nome host GHES dal git remote nella tua directory di lavoro.106Claude Code rileva automaticamente il nome host GHES dal git remote nella tua directory di lavoro.

107 107 

108Clona un repository dalla tua istanza GHES come faresti normalmente, sostituendo `github.example.com` e il percorso del repository con il tuo nome host GHES e il repository:108Clona un repository dalla tua istanza GHES come faresti normalmente, sostituendo `github.example.com` e il percorso del repository con il tuo nome host GHES e il repository:

109 109 


228 228 

229Se `claude --cloud` fallisce con un errore di clone, verifica che un Owner abbia completato la configurazione per la tua istanza GHES e che l'app GitHub sia installata sul repository su cui stai lavorando. Chiedi all'Owner che ha connesso l'istanza di confermare che il nome host registrato nelle impostazioni di Claude corrisponda al nome host nel tuo git remote.229Se `claude --cloud` fallisce con un errore di clone, verifica che un Owner abbia completato la configurazione per la tua istanza GHES e che l'app GitHub sia installata sul repository su cui stai lavorando. Chiedi all'Owner che ha connesso l'istanza di confermare che il nome host registrato nelle impostazioni di Claude corrisponda al nome host nel tuo git remote.

230 230 

231Se la sessione si interrompe con "Authentication failed while accessing the repository", potresti non aver connesso il tuo account GitHub Enterprise. Connettilo dal selettore di repository su [claude.ai/code](https://claude.ai/code), quindi avvia una nuova sessione.

232 

231<h3 id="marketplace-add-fails-with-a-policy-error">233<h3 id="marketplace-add-fails-with-a-policy-error">

232 L'aggiunta del marketplace fallisce con un errore di policy234 L'aggiunta del marketplace fallisce con un errore di policy

233</h3>235</h3>

Details

261* Per utilizzare Haiku per le attività in background, imposta `ANTHROPIC_DEFAULT_HAIKU_MODEL` su un ID modello disponibile nel tuo progetto.261* Per utilizzare Haiku per le attività in background, imposta `ANTHROPIC_DEFAULT_HAIKU_MODEL` su un ID modello disponibile nel tuo progetto.

262 262 

263<Warning>263<Warning>

264 I modelli Opus hanno un prezzo per token più elevato rispetto ai modelli Sonnet, quindi una distribuzione che non fissa un modello primario viene fatturata alla tariffa Opus una volta che si aggiorna a v2.1.207 o successiva. Per mantenere Sonnet 4.5 come modello primario, imposta `ANTHROPIC_MODEL` al suo ID modello completo. Una distribuzione che indirizza il valore predefinito con `ANTHROPIC_DEFAULT_SONNET_MODEL` e non imposta `ANTHROPIC_DEFAULT_OPUS_MODEL` mantiene il suo modello Sonnet indirizzato come predefinito.264 I modelli Opus hanno un prezzo per token più elevato rispetto ai modelli Sonnet, quindi se non fissi un modello primario, ti viene fatturata la tariffa Opus. Per utilizzare Sonnet 4.5 come modello primario, imposta `ANTHROPIC_MODEL` al suo ID modello completo. Una distribuzione che indirizza il valore predefinito con `ANTHROPIC_DEFAULT_SONNET_MODEL` e non imposta `ANTHROPIC_DEFAULT_OPUS_MODEL` mantiene il suo modello Sonnet indirizzato come predefinito.

265</Warning>265</Warning>

266 266 

267Prima della v2.1.280, il modello primario su Google Cloud's Agent Platform era predefinito a Opus 5 e l'alias `opus` si risolveva in Opus 5 da v2.1.219. Su v2.1.207 attraverso v2.1.218, il modello primario su Google Cloud's Agent Platform era predefinito a Opus 4.8 e l'alias `opus` si risolveva in Opus 4.8. Prima della v2.1.207, il modello primario era predefinito a Sonnet 4.5, l'alias `opus` si risolveva in Opus 4.6, e le attività in background utilizzavano sempre il modello primario.267Prima della v2.1.280, il modello primario su Google Cloud's Agent Platform era predefinito a Opus 5 e l'alias `opus` si risolveva in Opus 5 da v2.1.219. Su v2.1.207 attraverso v2.1.218, il modello primario su Google Cloud's Agent Platform era predefinito a Opus 4.8 e l'alias `opus` si risolveva in Opus 4.8.

268 268 

269Per personalizzare ulteriormente i modelli:269Per personalizzare ulteriormente i modelli:

270 270 

headless.md +6 −6

Details

38 Inizia più velocemente con la modalità bare38 Inizia più velocemente con la modalità bare

39</h3>39</h3>

40 40 

41Aggiungi `--bare` per ridurre il tempo di avvio saltando l'auto-discovery di hook, skill, comandi personalizzati, [subagent](/docs/it/sub-agents), plugin installati, server MCP, memoria automatica e CLAUDE.md. Senza di esso, `claude -p` carica lo stesso [contesto](/docs/it/how-claude-code-works#the-context-window) che una sessione interattiva avrebbe, incluso tutto ciò che è configurato nella directory di lavoro o in `~/.claude`.41Aggiungi `--bare` per ridurre il tempo di avvio saltando l'auto-discovery di hook, skill, comandi personalizzati, [subagent](/docs/it/sub-agents), plugin installati, server MCP, memoria automatica e CLAUDE.md. Senza di esso, `claude -p` li rileva e li carica come farebbe una sessione interattiva, incluso tutto ciò che è configurato nella directory di lavoro o in `~/.claude`.

42 42 

43La modalità bare è utile per CI e script dove hai bisogno dello stesso risultato su ogni macchina. Un hook nel `~/.claude` di un collega o un server MCP nel `.mcp.json` del progetto non verranno eseguiti, perché la modalità bare non li legge mai. Una directory che nomini con `--add-dir` è un'eccezione parziale: la modalità bare carica le skill dalla sua cartella `.claude/skills/`, ma salta comunque le sue cartelle `.claude/commands/` e `.claude/agents/`. [Skill da directory aggiuntive](/docs/it/skills#skills-from-additional-directories) copre ciò che viene e non viene caricato.43La modalità bare è utile per CI e script dove hai bisogno dello stesso risultato su ogni macchina. Un hook nel `~/.claude` di un collega o un server MCP nel `.mcp.json` del progetto non verranno eseguiti, perché la modalità bare non li legge mai. Una directory che nomini con `--add-dir` è un'eccezione parziale: la modalità bare carica le skill dalla sua cartella `.claude/skills/`, ma salta comunque le sue cartelle `.claude/commands/` e `.claude/agents/`. [Skill da directory aggiuntive](/docs/it/skills#skills-from-additional-directories) copre ciò che viene e non viene caricato.

44 44 


184 --json-schema '{"type":"object","properties":{"functions":{"type":"array","items":{"type":"string"}}},"required":["functions"]}'184 --json-schema '{"type":"object","properties":{"functions":{"type":"array","items":{"type":"string"}}},"required":["functions"]}'

185```185```

186 186 

187Se il valore non è un JSON Schema valido, `claude` esce con `Error: --json-schema is not a valid JSON Schema` seguito dalla diagnostica del validatore. Claude Code accetta schemi che utilizzano la parola chiave `format`, come `"format": "email"`, ma tratta `format` come un'annotazione e non la applica. Prima della v2.1.205, Claude Code ignorava silenziosamente uno schema non valido e restituiva testo non strutturato, e trattava qualsiasi schema contenente `format` come non valido.187Se il valore non è un JSON Schema valido, `claude` esce con `Error: --json-schema is not a valid JSON Schema` seguito dalla diagnostica del validatore. Claude Code accetta schemi che utilizzano la parola chiave `format`, come `"format": "email"`, ma tratta `format` come un'annotazione e non la applica.

188 188 

189<Tip>189<Tip>

190 Utilizza uno strumento come [jq](https://jqlang.org/) per analizzare la risposta ed estrarre campi specifici:190 Utilizza uno strumento come [jq](https://jqlang.org/) per analizzare la risposta ed estrarre campi specifici:


281L'evento `system/init` segnala i metadati della sessione inclusi il modello, gli strumenti, i server MCP e i plugin caricati. È il primo evento nel flusso a meno che non lo precedano eventi di avvio:281L'evento `system/init` segnala i metadati della sessione inclusi il modello, gli strumenti, i server MCP e i plugin caricati. È il primo evento nel flusso a meno che non lo precedano eventi di avvio:

282 282 

283* Eventi `plugin_install`, quando [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/docs/it/env-vars) è impostato.283* Eventi `plugin_install`, quando [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/docs/it/env-vars) è impostato.

284* [Eventi `hook_started`, `hook_progress` e `hook_response`](/docs/it/agent-sdk/typescript#sdkhookstartedmessage), mentre un hook [`SessionStart`](/docs/it/hooks#sessionstart) o [`Setup`](/docs/it/hooks#setup) configurato viene eseguito. Questi vengono trasmessi man mano che l'hook li produce. Claude Code dalla v2.1.169 alla v2.1.203 li consegnava in un unico batch dopo il completamento dell'hook, comunque prima di `system/init`; la v2.1.204 ha ripristinato la consegna in tempo reale.284* [Eventi `hook_started`, `hook_progress` e `hook_response`](/docs/it/agent-sdk/typescript#sdkhookstartedmessage), mentre un hook [`SessionStart`](/docs/it/hooks#sessionstart) o [`Setup`](/docs/it/hooks#setup) configurato viene eseguito. Questi vengono trasmessi man mano che l'hook li produce.

285 285 

286L'evento contiene anche un array `capabilities` opzionale di stringhe che denominano i comportamenti del protocollo che questa versione di Claude Code implementa, come `interrupt_receipt_v1` o `interrupt_cancel_queued_v1`. Controllalo per rilevare le funzionalità invece di confrontare le stringhe di versione, e ignora i valori che non riconosci. Il campo richiede Claude Code v2.1.205 o successivo ed è assente dalle versioni precedenti. Consulta [`SDKSystemMessage`](/docs/it/agent-sdk/typescript#sdksystemmessage) per l'elenco delle capacità.286L'evento contiene anche un array `capabilities` opzionale di stringhe che denominano i comportamenti del protocollo che questa versione di Claude Code implementa, come `interrupt_receipt_v1` o `interrupt_cancel_queued_v1`. Controllalo per rilevare le funzionalità invece di confrontare le stringhe di versione, e ignora i valori che non riconosci. Consulta [`SDKSystemMessage`](/docs/it/agent-sdk/typescript#sdksystemmessage) per l'elenco delle capacità.

287 287 

288<h4 id="fail-ci-when-a-plugin-or-mcp-server-doesn’t-load">288<h4 id="fail-ci-when-a-plugin-or-mcp-server-doesn’t-load">

289 Far fallire CI quando un plugin o un server MCP non si carica289 Far fallire CI quando un plugin o un server MCP non si carica


388 388 

389 * Le [skill](/docs/it/skills) richiamate dall'utente e i comandi personalizzati funzionano. Includi `/skill-name` nella stringa del prompt e Claude Code lo espande prima di eseguire.389 * Le [skill](/docs/it/skills) richiamate dall'utente e i comandi personalizzati funzionano. Includi `/skill-name` nella stringa del prompt e Claude Code lo espande prima di eseguire.

390 * I comandi integrati che funzionano solo nell'interfaccia del terminale, come `/login`, non sono disponibili.390 * I comandi integrati che funzionano solo nell'interfaccia del terminale, come `/login`, non sono disponibili.

391 * `/model`, `/effort`, `/fast`, `/color` e `/rename` accettano il valore come argomento, ad esempio `/model sonnet`, e `/mcp` senza argomento stampa un riepilogo testuale dello stato dei server. Queste forme richiedono Claude Code v2.1.205 o successivo e seguono le [note di disponibilità](/docs/it/commands#all-commands) di ogni comando.391 * `/model`, `/effort`, `/fast`, `/color` e `/rename` accettano il valore come argomento, ad esempio `/model sonnet`, e `/mcp` senza argomento stampa un riepilogo testuale dello stato dei server. Queste forme seguono le [note di disponibilità](/docs/it/commands#all-commands) di ogni comando.

392 * Per modificare un'impostazione, passa `key=value` a `/config`, ad esempio `/config thinking=false`.392 * Per modificare un'impostazione, passa `key=value` a `/config`, ad esempio `/config thinking=false`.

393 * `/output-style <style>` cambia gli [stili di output](/docs/it/output-styles) e `/output-style` da solo li elenca. Richiede Claude Code v2.1.269 o successivo.393 * `/output-style <style>` cambia gli [stili di output](/docs/it/output-styles) e `/output-style` da solo li elenca. Richiede Claude Code v2.1.269 o successivo.

394</Note>394</Note>


407 407 

408Nello script, `"$1"` rappresenta il primo argomento che passi sulla riga di comando. Esegui `bash review.sh 123` e la shell sostituisce `"$1"` con `123`, in modo che lo script recuperi il diff per la PR 123. Claude Code stampa la revisione come JSON, con il testo nel campo `result`.408Nello script, `"$1"` rappresenta il primo argomento che passi sulla riga di comando. Esegui `bash review.sh 123` e la shell sostituisce `"$1"` con `123`, in modo che lo script recuperi il diff per la PR 123. Claude Code stampa la revisione come JSON, con il testo nel campo `result`.

409 409 

410Consulta i [flag del prompt di sistema](/docs/it/cli-reference#system-prompt-flags) per ulteriori opzioni incluso `--system-prompt` per sostituire completamente il prompt predefinito.410Consulta i [flag del prompt di sistema](/docs/it/cli-reference#system-prompt-flags) per ulteriori opzioni incluso `--system-prompt` per sostituire completamente il prompt predefinito. Se lo sostituisci, l'esecuzione si avvia anche senza lo [snapshot dello stato git](/docs/it/settings-reference#includegitinstructions).

411 411 

412<h3 id="continue-conversations">412<h3 id="continue-conversations">

413 Continuare le conversazioni413 Continuare le conversazioni

hipaa-setup.md +1 −0

Details

228| `--cloud`, `/teleport` e [Remote Control](/docs/it/remote-control) vengono rifiutati | Le [sessioni cloud](/docs/it/claude-code-on-the-web) e Remote Control sono disattivati |228| `--cloud`, `/teleport` e [Remote Control](/docs/it/remote-control) vengono rifiutati | Le [sessioni cloud](/docs/it/claude-code-on-the-web) e Remote Control sono disattivati |

229| `/feedback` e `/bug` non sono disponibili | L'invio di feedback è disattivato |229| `/feedback` e `/bug` non sono disponibili | L'invio di feedback è disattivato |

230| Claude non può pubblicare un [artefatto](/docs/it/artifacts) | La pubblicazione degli artefatti è disattivata |230| Claude non può pubblicare un [artefatto](/docs/it/artifacts) | La pubblicazione degli artefatti è disattivata |

231| Gli strumenti MCP vengono caricati nel contesto fin dall'inizio | [MCP Tool Search](/docs/it/mcp#configure-tool-search) è disattivato. Né `ENABLE_TOOL_SEARCH` né le impostazioni gestite lo riattivano |

231| Un server MCP o un hook che legge `ANTHROPIC_API_KEY` smette di autenticarsi | Claude Code [rimuove le credenziali Anthropic](#anthropic-credentials-in-commands-hooks-and-mcp-servers) dai processi che avvia |232| Un server MCP o un hook che legge `ANTHROPIC_API_KEY` smette di autenticarsi | Claude Code [rimuove le credenziali Anthropic](#anthropic-credentials-in-commands-hooks-and-mcp-servers) dai processi che avvia |

232| Le restrizioni rimangono dopo un `/login` a un'organizzazione diversa | Lo stato HIPAA dura fino al riavvio di Claude Code |233| Le restrizioni rimangono dopo un `/login` a un'organizzazione diversa | Lo stato HIPAA dura fino al riavvio di Claude Code |

233 234 

hooks.md +385 −359

Details

827 827 

828Il codice di uscita del tuo hook dice a Claude Code se continuare con l'azione che ha attivato l'hook, come una chiamata a uno strumento o un prompt. Un'esecuzione che termina ha uno di tre risultati:828Il codice di uscita del tuo hook dice a Claude Code se continuare con l'azione che ha attivato l'hook, come una chiamata a uno strumento o un prompt. Un'esecuzione che termina ha uno di tre risultati:

829 829 

830* **Successo**: il tuo hook esce con 0. Claude Code applica tutti i campi di [output JSON](#json-output) che il tuo hook ha stampato, e l'azione procede a meno che quei campi non la blocchino o la neghino.830* **Successo**: il tuo hook esce con 0. Claude Code applica tutti i campi di [output JSON](#json-output) che il tuo hook ha stampato, e l'azione procede a meno che quei campi non la blocchino o la neghino. [Hook che avviano un processo in background](#hooks-that-start-a-background-process) descrive l'eccezione.

831* **Errore bloccante**: il tuo hook esce con 2. Sugli [eventi che possono bloccare](#exit-code-2-behavior-per-event), Claude Code interrompe l'azione.831* **Errore bloccante**: il tuo hook esce con 2. Sugli [eventi che possono bloccare](#exit-code-2-behavior-per-event), Claude Code interrompe l'azione.

832* **Errore non bloccante**: il tuo hook esce con qualsiasi altro codice, oppure fallisce in qualche altro modo, ad esempio non avviandosi o stampando JSON non valido. L'azione procede, e su eventi come `PreToolUse` vedi un avviso `<hook name> hook error` nella trascrizione. Se vuoi che un hook fallito blocchi l'azione, imposta [`onFailure: "block"`](#block-the-action-when-a-hook-fails).832* **Errore non bloccante**: il tuo hook esce con qualsiasi altro codice, oppure fallisce in qualche altro modo, ad esempio non avviandosi o stampando JSON non valido. L'azione procede, e su eventi come `PreToolUse` vedi un avviso `<hook name> hook error` nella trascrizione. Se vuoi che un hook fallito blocchi l'azione, imposta [`onFailure: "block"`](#block-the-action-when-a-hook-fails).

833 833 


932* Un hook `command`, `http` o `mcp_tool` scaduto non blocca la chiamata allo strumento. La chiamata continua attraverso il normale [flusso dei permessi](/docs/it/permissions), quindi non contare su un hook bloccato perché agisca da controllo. Per bloccare la chiamata quando un hook `command` o `http` va in timeout, imposta [`onFailure: "block"`](#block-the-action-when-a-hook-fails).932* Un hook `command`, `http` o `mcp_tool` scaduto non blocca la chiamata allo strumento. La chiamata continua attraverso il normale [flusso dei permessi](/docs/it/permissions), quindi non contare su un hook bloccato perché agisca da controllo. Per bloccare la chiamata quando un hook `command` o `http` va in timeout, imposta [`onFailure: "block"`](#block-the-action-when-a-hook-fails).

933* Un [hook di callback dell'Agent SDK](/docs/it/agent-sdk/hooks) che supera il suo timeout [blocca la chiamata allo strumento](#pretooluse).933* Un [hook di callback dell'Agent SDK](/docs/it/agent-sdk/hooks) che supera il suo timeout [blocca la chiamata allo strumento](#pretooluse).

934 934 

935<h4 id="hooks-that-start-a-background-process">

936 Hook che avviano un processo in background

937</h4>

938 

939Se il tuo command hook prende la sua decisione in un processo in background ed esce, un deny che quel processo stampa dopo che Claude Code ha smesso di leggere non blocca la chiamata allo strumento. Per un hook che non è [async](#run-hooks-in-the-background), Claude Code finisce di leggere l'output dell'hook poco dopo l'uscita del processo stesso dell'hook.

940 

941Stampa la decisione prima di avviare un processo in background, e reindirizza lo stdout e lo stderr di quel processo. Se il tuo script stampa un allow e poi avvia un processo in background senza reindirizzarne lo stdout e lo stderr, Claude Code blocca la chiamata allo strumento. L'errore dell'hook include `refusing to honor the suspect capture`.

942 

943Questo script di hook `PreToolUse` stampa la decisione con `policy-check.sh`, poi carica le metriche in background:

944 

945```bash theme={null}

946#!/bin/bash

947"$CLAUDE_PROJECT_DIR"/.claude/hooks/policy-check.sh || exit $?

948"$CLAUDE_PROJECT_DIR"/.claude/hooks/upload-metrics.sh >/dev/null 2>&1 &

949```

950 

951Il resto dello script fa quanto segue:

952 

953* **`|| exit $?`**: rende il codice di uscita del controllo quello dell'hook stesso, così un controllo che esce con 2 per negare blocca comunque. Altrimenti l'hook esce con il codice dell'ultima riga, che è 0.

954* **`>/dev/null 2>&1 &`**: esegue `upload-metrics.sh` in background con il suo output reindirizzato, così non mantiene aperto l'output dell'hook.

955 

956Per provare lo script, fai uscire `policy-check.sh` con 2, poi attiva una chiamata a uno strumento a cui corrisponde l'hook. La chiamata allo strumento viene bloccata.

957 

935<h4 id="block-the-action-when-a-hook-fails">958<h4 id="block-the-action-when-a-hook-fails">

936 Bloccare l'azione quando un hook fallisce959 Bloccare l'azione quando un hook fallisce

937</h4>960</h4>


1242Per esempi estesi, tra cui la convalida dei comandi Bash, il filtraggio dei prompt e gli script di approvazione automatica, consulta [What you can automate](/docs/it/hooks-guide#what-you-can-automate) nella guida e l'[implementazione di riferimento del validatore di comandi Bash](https://github.com/anthropics/claude-code/blob/main/examples/hooks/bash_command_validator_example.py).1265Per esempi estesi, tra cui la convalida dei comandi Bash, il filtraggio dei prompt e gli script di approvazione automatica, consulta [What you can automate](/docs/it/hooks-guide#what-you-can-automate) nella guida e l'[implementazione di riferimento del validatore di comandi Bash](https://github.com/anthropics/claude-code/blob/main/examples/hooks/bash_command_validator_example.py).

1243 1266 

1244<h2 id="hook-events">1267<h2 id="hook-events">

1245 Eventi hook1268 Eventi degli hook

1246</h2>1269</h2>

1247 1270 

1248Ogni evento corrisponde a un punto del ciclo di vita di Claude Code in cui gli hook possono essere eseguiti. Le sezioni seguenti sono ordinate secondo il ciclo di vita: dalla configurazione della sessione, attraverso il ciclo agentico, fino alla fine della sessione. Ogni sezione descrive quando l'evento viene attivato, quali matcher supporta, l'input JSON che riceve e come controllare il comportamento tramite l'output.1271Ogni evento corrisponde a un punto del ciclo di vita di Claude Code in cui gli hook possono essere eseguiti. Le sezioni seguenti sono ordinate secondo il ciclo di vita: dalla configurazione della sessione, attraverso il ciclo agentico, fino alla fine della sessione. Ogni sezione descrive quando si attiva l'evento, quali matcher supporta, l'input JSON che riceve e come controllare il comportamento tramite l'output.

1249 1272 

1250<h3 id="sessionstart">1273<h3 id="sessionstart">

1251 SessionStart1274 SessionStart

1252</h3>1275</h3>

1253 1276 

1254Viene eseguito quando Claude Code avvia una nuova sessione o riprende una sessione esistente. È utile per caricare il contesto di sviluppo, come le issue esistenti o le modifiche recenti al tuo codebase, o per impostare le variabili d'ambiente. Per un contesto statico che non richiede uno script, usa invece [CLAUDE.md](/docs/it/memory).1277Viene eseguito quando Claude Code avvia una nuova sessione o riprende una sessione esistente. Utile per caricare contesto di sviluppo come issue esistenti o modifiche recenti al tuo codebase, o per impostare variabili d'ambiente. Per un contesto statico che non richiede uno script, usa invece [CLAUDE.md](/docs/it/memory).

1255 1278 

1256SessionStart viene eseguito in ogni sessione, quindi mantieni questi hook veloci. Sono supportati solo gli hook `type: "command"` e `type: "mcp_tool"`. Consulta [Campi degli hook per strumenti MCP](#mcp-tool-hook-fields) per sapere quando vengono eseguiti gli hook `mcp_tool`.1279SessionStart viene eseguito a ogni sessione, quindi mantieni questi hook veloci. Sono supportati solo gli hook `type: "command"` e `type: "mcp_tool"`. Consulta [Campi degli hook di strumenti MCP](#mcp-tool-hook-fields) per sapere quando vengono eseguiti gli hook `mcp_tool`.

1257 1280 

1258Il valore del matcher corrisponde al modo in cui è stata avviata la sessione:1281Il valore del matcher corrisponde al modo in cui è stata avviata la sessione:

1259 1282 

1260| Matcher | Quando viene attivato |1283| Matcher | Quando si attiva |

1261| :- | :- |1284| :- | :- |

1262| `startup` | Nuova sessione |1285| `startup` | Nuova sessione |

1263| `resume` | `--resume`, `--continue` o `/resume` |1286| `resume` | `--resume`, `--continue` o `/resume` |


1267 1290 

1268Prima della v2.1.214, le sessioni derivate riportavano come origine `"resume"`.1291Prima della v2.1.214, le sessioni derivate riportavano come origine `"resume"`.

1269 1292 

1270Quando avvii una sessione interattiva, riprendi una conversazione all'avvio con `--continue` o `--resume`, oppure esegui `/clear`, gli hook SessionStart vengono eseguiti in background. Puoi digitare subito, e una conversazione ripresa appare senza attendere gli hook. La prima risposta di Claude attende comunque il completamento degli hook, così il loro contesto raggiunge Claude.1293Quando avvii una sessione interattiva, riprendi una conversazione all'avvio con `--continue` o `--resume`, oppure esegui `/clear`, gli hook SessionStart vengono eseguiti in background. Puoi digitare subito, e una conversazione che hai ripreso appare senza attendere gli hook. La prima risposta di Claude attende comunque che gli hook terminino, così il loro contesto raggiunge Claude.

1271 1294 

1272Quando cambi conversazione con `/resume` all'interno di una sessione, il cambio attende invece il completamento degli hook. Se esegui `/clear` o passi a un'altra conversazione mentre gli hook in background sono ancora in esecuzione, nulla di ciò che restituiscono viene applicato alla sessione.1295Quando cambi conversazione con `/resume` all'interno di una sessione, il cambio attende invece che gli hook terminino. Se esegui `/clear` o passi a un'altra conversazione mentre gli hook in background sono ancora in esecuzione, nulla di ciò che restituiscono si applica alla sessione.

1273 1296 

1274La stessa attesa si applica all'avvio, anche per una sessione ripresa: un prompt che invii mentre gli hook SessionStart sono ancora in esecuzione non raggiunge Claude finché non terminano.1297La stessa attesa si applica all'avvio, inclusa una sessione ripresa: un prompt che invii mentre gli hook SessionStart sono ancora in esecuzione non raggiunge Claude finché non terminano.

1275 1298 

1276Durante entrambe le attese, premi `Esc` per riportare il prompt nell'input senza inviarlo. Gli hook continuano a essere eseguiti.1299Durante entrambe le attese, premi `Esc` per riportare il prompt nell'input senza inviarlo. Gli hook continuano l'esecuzione.

1277 1300 

1278<h4 id="sessionstart-input">1301<h4 id="sessionstart-input">

1279 Input di SessionStart1302 Input di SessionStart

1280</h4>1303</h4>

1281 1304 

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

1283 1306 

1284| Campo | Descrizione |1307| Campo | Descrizione |

1285| :- | :- |1308| :- | :- |


1290 1313 

1291Una sessione a cui non hai dato un nome può comunque avere un [titolo generato](/docs/it/sessions#name-your-sessions). Quel titolo non è un titolo personalizzato e non appare in `session_title`.1314Una sessione a cui non hai dato un nome può comunque avere un [titolo generato](/docs/it/sessions#name-your-sessions). Quel titolo non è un titolo personalizzato e non appare in `session_title`.

1292 1315 

1293Quando `source` è `"resume"` o `"fork"` e la trascrizione contiene almeno una risposta di Claude, gli hook SessionStart ricevono anche i quattro campi seguenti. Il tuo hook può usarli per riportare quanto costa riprendere una conversazione inattiva prima della prima richiesta, ad esempio in un [`systemMessage`](#json-output). Questi campi richiedono Claude Code v2.1.251 o successiva.1316Quando `source` è `"resume"` o `"fork"` e la trascrizione contiene almeno una risposta di Claude, gli hook SessionStart ricevono anche i quattro campi seguenti. Il tuo hook può usarli per segnalare quanto costa riprendere una conversazione datata prima della prima richiesta, ad esempio in un [`systemMessage`](#json-output). Questi campi richiedono Claude Code v2.1.251 o successivo.

1294 1317 

1295| Campo | Descrizione |1318| Campo | Descrizione |

1296| :- | :- |1319| :- | :- |

1297| `seconds_since_last_response` | Secondi di tempo reale trascorsi dall'ultima risposta nella trascrizione ripresa |1320| `seconds_since_last_response` | Secondi di tempo reale trascorsi dall'ultima risposta nella trascrizione ripresa |

1298| `context_tokens` | Token che la prima richiesta della sessione ripresa invia di nuovo come prompt |1321| `context_tokens` | Token che la prima richiesta della sessione ripresa reinvia come prompt |

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

1300| `estimated_cache_write_usd` | Costo stimato in dollari USA per scrivere `context_tokens` nella cache del prompt sul modello della sessione, esclusa la risposta |1323| `estimated_cache_write_usd` | Costo stimato in dollari USA della scrittura di `context_tokens` nella cache del prompt sul modello della sessione, esclusa la risposta |

1301 1324 

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

1303 1326 


1320 Controllo delle decisioni di SessionStart1343 Controllo delle decisioni di SessionStart

1321</h4>1344</h4>

1322 1345 

1323Un hook SessionStart può aggiungere contesto per Claude, fornire il primo messaggio dell'utente, impostare il titolo della sessione, monitorare file e ricaricare le skill. Restituisci il campo corrispondente a ciascuna di queste azioni, oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook:1346Un hook SessionStart può aggiungere contesto per Claude, fornire il primo messaggio utente, impostare il titolo della sessione, osservare file e ricaricare le skill. Restituisci il campo per ciascuna di queste azioni, oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook:

1324 1347 

1325| Campo | Descrizione |1348| Campo | Descrizione |

1326| :- | :- |1349| :- | :- |

1327| `additionalContext` | Stringa aggiunta al contesto di Claude all'inizio della conversazione, prima del primo prompt. Consulta [Aggiungere contesto per Claude](#add-context-for-claude) per sapere come viene consegnato il testo e cosa inserirvi |1350| `additionalContext` | Stringa aggiunta al contesto di Claude all'inizio della conversazione, prima del primo prompt. Consulta [Aggiungere contesto per Claude](#add-context-for-claude) per sapere come viene consegnato il testo e cosa inserirvi |

1328| `initialUserMessage` | Stringa usata come primo messaggio dell'utente della sessione, in [modalità non interattiva](/docs/it/headless) con il flag `-p`. Diventa il primo turno anche se non passi alcun prompt. Un prompt che passi lo segue come turno successivo |1351| `initialUserMessage` | Stringa usata come primo messaggio utente della sessione, in [modalità non interattiva](/docs/it/headless) con il flag `-p`. Diventa il primo turno anche se non passi alcun prompt. Un prompt che passi segue come turno successivo |

1329| `sessionTitle` | Imposta il titolo della sessione, con lo stesso effetto di `/rename`. Si applica quando `source` è `"startup"`, `"resume"` o `"fork"` |1352| `sessionTitle` | Imposta il titolo della sessione, con lo stesso effetto di `/rename`. Si applica quando `source` è `"startup"`, `"resume"` o `"fork"` |

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

1331| `reloadSkills` | Booleano. Quando è `true`, Claude Code analizza di nuovo le directory delle [skill](/docs/it/skills) e dei comandi dopo il completamento degli hook SessionStart. Consulta [Ricaricare le skill installate da un hook](#reload-skills-that-a-hook-installs) |1354| `reloadSkills` | Booleano. Quando è `true`, Claude Code riesamina le directory delle [skill](/docs/it/skills) e dei comandi dopo il completamento degli hook SessionStart. Consulta [Ricaricare le skill installate da un hook](#reload-skills-that-a-hook-installs) |

1332 1355 

1333Questo output aggiunge contesto e assegna un nome alla sessione:1356Questo output aggiunge contesto e assegna un nome alla sessione:

1334 1357 


1342}1365}

1343```1366```

1344 1367 

1345Un hook che aggiunge solo contesto può stamparlo senza costruire JSON, perché Claude Code aggiunge lo [stdout in testo semplice](#exit-code-0) di un hook SessionStart al contesto di Claude.1368Un hook che aggiunge solo contesto può stamparlo senza costruire JSON, perché Claude Code aggiunge al contesto di Claude lo [stdout in testo semplice](#exit-code-0) di un hook SessionStart.

1346 1369 

1347Se l'hook SessionStart del tuo plugin fornisce `initialUserMessage` o `sessionTitle`, installa il plugin prima dell'avvio della sessione. Claude Code ignora entrambi i campi provenienti da un plugin la cui installazione termina dopo che gli hook SessionStart sono stati eseguiti.1370Se l'hook SessionStart del tuo plugin fornisce `initialUserMessage` o `sessionTitle`, installa il plugin prima dell'avvio della sessione. Claude Code ignora entrambi i campi provenienti da un plugin la cui installazione termina dopo l'esecuzione degli hook SessionStart.

1348 1371 

1349<h4 id="reload-skills-that-a-hook-installs">1372<h4 id="reload-skills-that-a-hook-installs">

1350 Ricaricare le skill installate da un hook1373 Ricaricare le skill installate da un hook

1351</h4>1374</h4>

1352 1375 

1353Per rendere disponibili nella stessa sessione le skill installate da un hook SessionStart, restituisci `reloadSkills`. Il rilevamento delle skill viene normalmente eseguito prima che gli hook SessionStart terminino, quindi senza questo campo i file che un hook scrive in `~/.claude/skills/` o `.claude/skills/` possono mancare quando viene eseguito il primo prompt.1376Per rendere disponibili nella stessa sessione le skill installate da un hook SessionStart, restituisci `reloadSkills`. Il rilevamento delle skill viene normalmente eseguito prima che gli hook SessionStart terminino, quindi senza di esso i file che un hook scrive in `~/.claude/skills/` o `.claude/skills/` possono mancare quando viene eseguito il primo prompt.

1354 1377 

1355Questo esempio sincronizza un repository di skill condiviso e richiede la nuova analisi:1378Questo esempio sincronizza un repository di skill condiviso e richiede il nuovo esame:

1356 1379 

1357```bash theme={null}1380```bash theme={null}

1358#!/bin/bash1381#!/bin/bash


1371 1394 

1372Gli hook SessionStart hanno accesso alla variabile d'ambiente `CLAUDE_ENV_FILE`, che fornisce un percorso di file in cui puoi rendere persistenti le variabili d'ambiente per i comandi shell che Claude esegue più avanti nella sessione.1395Gli hook SessionStart hanno accesso alla variabile d'ambiente `CLAUDE_ENV_FILE`, che fornisce un percorso di file in cui puoi rendere persistenti le variabili d'ambiente per i comandi shell che Claude esegue più avanti nella sessione.

1373 1396 

1374Per impostare singole variabili d'ambiente, scrivi istruzioni `export` in `CLAUDE_ENV_FILE`. Usa l'accodamento (`>>`) per preservare le variabili impostate da altri hook:1397Per impostare singole variabili d'ambiente, scrivi istruzioni `export` in `CLAUDE_ENV_FILE`. Usa l'aggiunta in coda (`>>`) per preservare le variabili impostate da altri hook:

1375 1398 

1376```bash theme={null}1399```bash theme={null}

1377#!/bin/bash1400#!/bin/bash


1385exit 01408exit 0

1386```1409```

1387 1410 

1388Per catturare tutte le modifiche all'ambiente dai comandi di configurazione, confronta le variabili esportate prima e dopo:1411Per catturare tutte le modifiche all'ambiente provenienti dai comandi di configurazione, confronta le variabili esportate prima e dopo:

1389 1412 

1390```bash theme={null}1413```bash theme={null}

1391#!/bin/bash1414#!/bin/bash


1404exit 01427exit 0

1405```1428```

1406 1429 

1407Ogni comando Bash esegue il contenuto del file come codice shell prima del comando stesso, quindi una riga al suo interno può usare qualsiasi cosa Bash valuti, come il riferimento a `$PATH` in `export PATH="$PATH:./node_modules/.bin"`.1430Ogni comando Bash esegue il contenuto del file come codice shell prima del comando stesso, quindi una riga lì può usare qualsiasi cosa Bash valuti, come il riferimento a `$PATH` in `export PATH="$PATH:./node_modules/.bin"`.

1408 1431 

1409<a id="persisted-variables-in-powershell-commands" />1432<a id="persisted-variables-in-powershell-commands" />

1410 1433 


1412 Variabili persistenti nei comandi PowerShell1435 Variabili persistenti nei comandi PowerShell

1413</h5>1436</h5>

1414 1437 

1415Anche i comandi [PowerShell](/docs/it/tools-reference#powershell-tool) ricevono le variabili da `CLAUDE_ENV_FILE`, in Claude Code v2.1.296 o successiva, ma PowerShell non esegue mai il file. Claude Code legge invece le assegnazioni dal file e le copia nell'ambiente del comando PowerShell. Lo fa solo quando ogni riga è di uno dei tipi seguenti, considerando ciò che ogni hook di questa sessione ha scritto e qualsiasi script a cui hai [impostato `CLAUDE_ENV_FILE`](/docs/it/env-vars) prima dell'avvio:1438Anche i comandi [PowerShell](/docs/it/tools-reference#powershell-tool) ricevono le variabili da `CLAUDE_ENV_FILE`, in Claude Code v2.1.296 o successivo, ma PowerShell non esegue mai il file. Claude Code legge invece le assegnazioni dal file e le copia nell'ambiente del comando PowerShell. Lo fa solo quando ogni riga è di uno dei tipi seguenti, considerando ciò che ogni hook di questa sessione ha scritto e qualsiasi script su cui hai [impostato `CLAUDE_ENV_FILE`](/docs/it/env-vars) prima dell'avvio:

1416 1439 

1417* Una riga vuota o un commento `#`1440* Una riga vuota o un commento `#`

1418* Un'unica assegnazione all'inizio della riga, scritta `export NAME=value`, `declare -x NAME=value` o `NAME=value`, con un valore che Bash userebbe esattamente come scritto, composto da una qualsiasi combinazione di queste parti: testo senza virgolette che usa solo lettere, cifre e i caratteri `_ @ % + = : , . / -`, testo tra virgolette singole e testo tra virgolette doppie in cui ogni `$`, backtick o `"` al suo interno è preceduto da una barra rovesciata di escape1441* Un'assegnazione all'inizio della riga, scritta `export NAME=value`, `declare -x NAME=value` o `NAME=value`, con un valore che Bash userebbe esattamente come scritto, composto da qualsiasi combinazione di queste parti: testo senza virgolette che usa solo lettere, cifre e i caratteri `_ @ % + = : , . / -`, testo tra virgolette singole e testo tra virgolette doppie in cui ogni `$`, backtick o `"` al suo interno è preceduto da una barra rovesciata di escape

1419 1442 

1420Se una qualsiasi riga è di un altro tipo, come `export PATH="$PATH:./node_modules/.bin"` con il suo `$PATH` senza escape, un comando `source` o le stringhe `$'...'` stampate da `direnv export bash`, i comandi PowerShell non ricevono nessuna delle variabili e `claude --debug` registra `Session environment is not all plain assignments`. I comandi Bash le ricevono comunque tutte. Su Windows, inoltre, i comandi PowerShell non ricevono una variabile il cui valore contiene `/` o `\`, perché Git Bash e Windows scrivono i percorsi in modo diverso. Un comando PowerShell in [sandbox](/docs/it/sandboxing) non riceve nessuna delle variabili.1443Se una qualsiasi riga è di un altro tipo, come `export PATH="$PATH:./node_modules/.bin"` con il suo `$PATH` senza escape, un comando `source` o le stringhe `$'...'` che `direnv export bash` stampa, i comandi PowerShell non ricevono nessuna delle variabili e `claude --debug` registra `Session environment is not all plain assignments`. I comandi Bash le ricevono comunque tutte. Su Windows, i comandi PowerShell non ricevono inoltre una variabile il cui valore contiene `/` o `\`, perché Git Bash e Windows scrivono i percorsi in modo diverso. Un comando PowerShell in [sandbox](/docs/it/sandboxing) non riceve nessuna delle variabili.

1421 1444 

1422<Note>1445<Note>

1423 `CLAUDE_ENV_FILE` è disponibile per gli hook SessionStart, [Setup](#setup), [CwdChanged](#cwdchanged) e [FileChanged](#filechanged). Gli altri eventi hook non hanno accesso a questa variabile, e nemmeno un hook eseguito in PowerShell, sia tramite [`"shell": "powershell"`](#command-hook-fields) sia per impostazione predefinita su Windows senza Git Bash.1446 `CLAUDE_ENV_FILE` è disponibile per gli hook SessionStart, [Setup](#setup), [CwdChanged](#cwdchanged) e [FileChanged](#filechanged). Gli altri eventi degli hook non hanno accesso a questa variabile, e nemmeno un hook eseguito in PowerShell, sia tramite [`"shell": "powershell"`](#command-hook-fields) sia per impostazione predefinita su Windows senza Git Bash.

1424</Note>1447</Note>

1425 1448 

1426<h3 id="setup">1449<h3 id="setup">

1427 Setup1450 Setup

1428</h3>1451</h3>

1429 1452 

1430Viene attivato solo quando avvii Claude Code con `--init-only`, oppure con `--init` o `--maintenance` in [modalità non interattiva](/docs/it/headless) con il flag `-p`. Non viene attivato al normale avvio. Usalo per l'installazione una tantum di dipendenze o per una pulizia pianificata che attivi esplicitamente da CI o da script, separatamente dal normale avvio della sessione. Per l'inizializzazione per sessione, usa invece [SessionStart](#sessionstart).1453Si attiva solo quando avvii Claude Code con `--init-only`, oppure con `--init` o `--maintenance` in [modalità non interattiva](/docs/it/headless) con il flag `-p`. Non si attiva durante il normale avvio. Usalo per l'installazione una tantum di dipendenze o per la pulizia pianificata che attivi esplicitamente da CI o da script, separatamente dal normale avvio della sessione. Per l'inizializzazione di ogni sessione, usa invece [SessionStart](#sessionstart).

1431 1454 

1432Il valore del matcher corrisponde al flag CLI che ha attivato l'hook:1455Il valore del matcher corrisponde al flag della CLI che ha attivato l'hook:

1433 1456 

1434| Matcher | Quando viene attivato |1457| Matcher | Quando si attiva |

1435| :- | :- |1458| :- | :- |

1436| `init` | `claude --init-only` o `claude -p --init` |1459| `init` | `claude --init-only` o `claude -p --init` |

1437| `maintenance` | `claude -p --maintenance` |1460| `maintenance` | `claude -p --maintenance` |


1440 1463 

1441Quando avvii o continui una conversazione con `-p`, devi anche fornire un prompt, come argomento o tramite pipe su stdin. Puoi omettere il prompt quando un hook `SessionStart` fornisce [`initialUserMessage`](#sessionstart-decision-control) o quando riprendi una sessione con una [chiamata a uno strumento differita](#defer-a-tool-call-for-later).1464Quando avvii o continui una conversazione con `-p`, devi anche fornire un prompt, come argomento o tramite pipe su stdin. Puoi omettere il prompt quando un hook `SessionStart` fornisce [`initialUserMessage`](#sessionstart-decision-control) o quando riprendi una sessione con una [chiamata a uno strumento differita](#defer-a-tool-call-for-later).

1442 1465 

1443In caso di successo, `--init-only` non stampa nulla nel terminale. Per confermare che gli hook sono stati eseguiti, avvia con `claude --debug-file <path> --init-only`, sostituendo `<path>` con il percorso di un file di log, e controlla nel log le voci degli hook Setup e SessionStart.1466In caso di successo, `--init-only` non stampa nulla sul terminale. Per verificare che gli hook siano stati eseguiti, avvia con `claude --debug-file <path> --init-only`, sostituendo `<path>` con la posizione di un file di log, e controlla nel log le voci degli hook Setup e SessionStart.

1444 1467 

1445Poiché Setup non viene attivato a ogni avvio, un plugin che necessita di una dipendenza installata non può basarsi solo su Setup. Lo schema pratico consiste nel verificare la dipendenza al primo utilizzo e installarla se manca, ad esempio con un hook o una skill che verifica la presenza di `${CLAUDE_PLUGIN_DATA}/node_modules` ed esegue `npm install` se assente. Consulta la [directory dei dati persistenti](/docs/it/plugins/components#path-variables-and-persistent-data) per sapere dove archiviare le dipendenze installate. Se distribuisci il tuo plugin tramite un marketplace, potresti non aver bisogno di questo schema: Claude Code [installa automaticamente le dipendenze dei pacchetti Node.js idonee](/docs/it/plugins/loading#node-js-package-dependencies) quando memorizza il plugin nella cache.1468Poiché Setup non si attiva a ogni avvio, un plugin che necessita dell'installazione di una dipendenza non può basarsi solo su Setup. Lo schema pratico è verificare la dipendenza al primo utilizzo e installarla se manca, ad esempio un hook o una skill che verifica la presenza di `${CLAUDE_PLUGIN_DATA}/node_modules` ed esegue `npm install` se assente. Consulta la [directory dei dati persistenti](/docs/it/plugins/components#path-variables-and-persistent-data) per sapere dove archiviare le dipendenze installate. Se distribuisci il tuo plugin tramite un marketplace, potresti non aver bisogno di questo schema: Claude Code [installa automaticamente le dipendenze idonee dei pacchetti Node.js](/docs/it/plugins/loading#node-js-package-dependencies) quando memorizza il plugin nella cache.

1446 1469 

1447<h4 id="setup-input">1470<h4 id="setup-input">

1448 Input di Setup1471 Input di Setup


1464 Controllo delle decisioni di Setup1487 Controllo delle decisioni di Setup

1465</h4>1488</h4>

1466 1489 

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

1468 1491 

1469Gli hook Setup hanno accesso a `CLAUDE_ENV_FILE`. Le variabili scritte in quel file persistono nei successivi comandi Bash della sessione, come negli [hook SessionStart](#persist-environment-variables). Su `Setup` vengono eseguiti solo gli hook `type: "command"`. Un hook `type: "mcp_tool"` su `Setup` viene sempre saltato, come descritto in [Campi degli hook per strumenti MCP](#mcp-tool-hook-fields).1492Gli hook Setup hanno accesso a `CLAUDE_ENV_FILE`. Le variabili scritte in quel file persistono nei successivi comandi Bash della sessione, come negli [hook SessionStart](#persist-environment-variables). Su `Setup` vengono eseguiti solo gli hook `type: "command"`. Un hook `type: "mcp_tool"` su `Setup` viene sempre saltato, come descritto in [Campi degli hook di strumenti MCP](#mcp-tool-hook-fields).

1470 1493 

1471<h3 id="instructionsloaded">1494<h3 id="instructionsloaded">

1472 InstructionsLoaded1495 InstructionsLoaded

1473</h3>1496</h3>

1474 1497 

1475Viene attivato quando un file `CLAUDE.md` o `.claude/rules/*.md` viene caricato nel contesto. Questo evento viene attivato all'avvio della sessione per i file caricati immediatamente e di nuovo in seguito quando i file vengono caricati in modo differito, ad esempio quando Claude accede a una sottodirectory che contiene un `CLAUDE.md` annidato o quando le regole condizionali con frontmatter `paths:` corrispondono. L'hook non supporta il blocco né il controllo delle decisioni. Viene eseguito in modo asincrono per scopi di osservabilità.1498Si attiva quando un file `CLAUDE.md` o `.claude/rules/*.md` viene caricato nel contesto. Questo evento si attiva all'avvio della sessione per i file caricati subito e di nuovo più tardi quando i file vengono caricati in modo differito, ad esempio quando Claude accede a una sottodirectory che contiene un `CLAUDE.md` annidato o quando le regole condizionali con frontmatter `paths:` corrispondono. L'hook non supporta il blocco né il controllo delle decisioni. Viene eseguito in modo asincrono a scopo di osservabilità.

1476 1499 

1477Questo evento non viene attivato quando Claude [legge direttamente `AGENTS.md`](/docs/it/memory#agents-md) tramite l'impostazione **Project instructions**. Viene invece attivato quando un `CLAUDE.md` importa il tuo `AGENTS.md`, con `load_reason` impostato su `include` come per qualsiasi altro file importato, e quando `CLAUDE.md` è un collegamento simbolico a esso, come un normale caricamento di `CLAUDE.md`.1500Questo evento non si attiva quando Claude [legge direttamente `AGENTS.md`](/docs/it/memory#agents-md) tramite l'impostazione **Project instructions**. Si attiva invece quando un `CLAUDE.md` importa il tuo `AGENTS.md`, con `load_reason` impostato su `include` come per qualsiasi altro file importato, e quando `CLAUDE.md` è un collegamento simbolico ad esso, come un normale caricamento di `CLAUDE.md`.

1478 1501 

1479Il matcher viene confrontato con `load_reason`. Ad esempio, usa `"matcher": "session_start"` per attivarlo solo per i file caricati all'avvio della sessione, oppure `"matcher": "path_glob_match|nested_traversal"` per attivarlo solo per i caricamenti differiti.1502Il matcher viene confrontato con `load_reason`. Ad esempio, usa `"matcher": "session_start"` per attivarlo solo per i file caricati all'avvio della sessione, oppure `"matcher": "path_glob_match|nested_traversal"` per attivarlo solo per i caricamenti differiti.

1480 1503 


1488| :- | :- |1511| :- | :- |

1489| `file_path` | Percorso assoluto del file di istruzioni caricato |1512| `file_path` | Percorso assoluto del file di istruzioni caricato |

1490| `memory_type` | Ambito del file: `"User"`, `"Project"`, `"Local"` o `"Managed"` |1513| `memory_type` | Ambito del file: `"User"`, `"Project"`, `"Local"` o `"Managed"` |

1491| `load_reason` | Perché il file è stato caricato: `"session_start"`, `"nested_traversal"`, `"path_glob_match"`, `"include"` o `"compact"`. Il valore `"compact"` viene attivato quando i file di istruzioni vengono ricaricati dopo un evento di compattazione |1514| `load_reason` | Motivo per cui il file è stato caricato: `"session_start"`, `"nested_traversal"`, `"path_glob_match"`, `"include"` o `"compact"`. Il valore `"compact"` si attiva quando i file di istruzioni vengono ricaricati dopo un evento di compattazione |

1492| `globs` | Pattern glob di percorso dal frontmatter `paths:` del file, se presenti. Presente solo per i caricamenti `path_glob_match` |1515| `globs` | Pattern glob di percorso dal frontmatter `paths:` del file, se presenti. Presente solo per i caricamenti `path_glob_match` |

1493| `trigger_file_path` | Percorso del file il cui accesso ha attivato questo caricamento, per i caricamenti differiti |1516| `trigger_file_path` | Percorso del file il cui accesso ha attivato questo caricamento, per i caricamenti differiti |

1494| `parent_file_path` | Percorso del file di istruzioni padre che ha incluso questo, per i caricamenti `include` |1517| `parent_file_path` | Percorso del file di istruzioni padre che ha incluso questo, per i caricamenti `include` |


1509 Controllo delle decisioni di InstructionsLoaded1532 Controllo delle decisioni di InstructionsLoaded

1510</h4>1533</h4>

1511 1534 

1512Gli hook InstructionsLoaded non hanno controllo delle decisioni. Non possono bloccare né modificare il caricamento delle istruzioni. Claude Code scarta i loro [campi di output JSON](#json-output), come `systemMessage` e `continue`. Usa questo evento per il logging di audit, il monitoraggio della conformità o l'osservabilità.1535Gli hook InstructionsLoaded non hanno controllo delle decisioni. Non possono bloccare né modificare il caricamento delle istruzioni. Claude Code scarta i loro [campi di output JSON](#json-output), come `systemMessage` e `continue`. Usa questo evento per log di audit, monitoraggio della conformità o osservabilità.

1513 1536 

1514<h3 id="userpromptsubmit">1537<h3 id="userpromptsubmit">

1515 UserPromptSubmit1538 UserPromptSubmit

1516</h3>1539</h3>

1517 1540 

1518Viene eseguito quando viene inviato un prompt, prima che Claude lo elabori. Ti consente1541Viene eseguito quando viene inviato un prompt, prima che Claude lo elabori. Questo ti permette

1519di aggiungere contesto aggiuntivo in base al prompt/alla conversazione, di convalidare i prompt o1542di aggiungere contesto aggiuntivo in base al prompt/alla conversazione, convalidare i prompt o

1520di bloccare determinati tipi di prompt.1543bloccare determinati tipi di prompt.

1521 1544 

1522Gli hook `UserPromptSubmit` non vengono attivati solo sui prompt che digiti. Claude Code li esegue anche quando:1545Gli hook `UserPromptSubmit` non si attivano solo sui prompt che digiti. Claude Code li esegue anche quando:

1523 1546 

1524* Si attiva un'[attività pianificata](/docs/it/scheduled-tasks), inclusa un'iterazione di `/loop`1547* Si attiva un'[attività pianificata](/docs/it/scheduled-tasks), inclusa un'iterazione di `/loop`

1525* Un [subagent in background](/docs/it/sub-agents#run-subagents-in-foreground-or-background) riferisce alla sessione che lo ha avviato1548* Un [subagent in background](/docs/it/sub-agents#run-subagents-in-foreground-or-background) riferisce alla sessione che lo ha avviato

1526* Un'[altra sessione invia un messaggio](/docs/it/cross-session-messaging) alla tua conversazione principale1549* Un [messaggio inviato da un'altra sessione](/docs/it/cross-session-messaging) arriva alla tua conversazione principale

1527 1550 

1528Gli hook `UserPromptSubmit` hanno un timeout predefinito di 30 secondi per i tipi `command`, `http` e `mcp_tool`, più breve del valore predefinito di 600 secondi per quei tipi nella maggior parte degli altri eventi. Poiché questo hook viene eseguito prima di ogni prompt e blocca l'elaborazione del modello finché non termina, un hook bloccato paralizza la sessione. Se il tuo hook ha bisogno di più tempo, imposta il campo `timeout` nella voce dell'hook.1551Gli hook `UserPromptSubmit` hanno un timeout predefinito di 30 secondi per i tipi `command`, `http` e `mcp_tool`, più breve del valore predefinito di 600 secondi per quei tipi nella maggior parte degli altri eventi. Poiché questo hook viene eseguito prima di ogni prompt e blocca l'elaborazione del modello finché non termina, un hook bloccato blocca la sessione. Se il tuo hook ha bisogno di più tempo, imposta il campo `timeout` nella voce dell'hook.

1529 1552 

1530Fatta eccezione per un hook di comando che esegui con [`async: true`](#run-hooks-in-the-background), un hook `UserPromptSubmit` di comando, HTTP o strumento MCP che raggiunge il suo timeout viene annullato e il suo output, incluso qualsiasi `additionalContext`, viene scartato. Il prompt raggiunge comunque Claude senza quel contesto. Per bloccare invece il prompt, imposta [`onFailure: "block"`](#block-the-action-when-a-hook-fails) su un hook di comando o HTTP. La trascrizione mostra un avviso che indica l'hook, il timeout scattato e il fatto che l'output è stato scartato.1553Fatta eccezione per un hook di comando che esegui con [`async: true`](#run-hooks-in-the-background), un hook `UserPromptSubmit` di comando, HTTP o di strumento MCP che raggiunge il suo timeout viene annullato e il suo output, incluso qualsiasi `additionalContext`, viene scartato. Il prompt raggiunge comunque Claude senza quel contesto. Per bloccare invece il prompt, imposta [`onFailure: "block"`](#block-the-action-when-a-hook-fails) su un hook di comando o HTTP. La trascrizione mostra un avviso che indica l'hook, il timeout scattato e che l'output è stato scartato.

1531 1554 

1532Un [hook di callback dell'Agent SDK](/docs/it/agent-sdk/hooks) su `UserPromptSubmit` che raggiunge il timeout blocca il prompt con un messaggio che indica l'hook e il timeout, perché lì un callback può fungere da controllo di policy che non deve fallire in modo permissivo. La sessione continua. Prima della v2.1.208, un timeout di callback su quell'evento terminava il turno con un errore di esecuzione.1555Un [hook di callback dell'Agent SDK](/docs/it/agent-sdk/hooks) su `UserPromptSubmit` che raggiunge il suo timeout blocca il prompt con un messaggio che indica l'hook e il timeout, perché lì un callback può fungere da controllo di policy che non deve fallire in modo permissivo. La sessione continua. Prima della v2.1.208, un timeout di callback su quell'evento terminava il turno con un errore di esecuzione.

1533 1556 

1534<h4 id="userpromptsubmit-input">1557<h4 id="userpromptsubmit-input">

1535 Input di UserPromptSubmit1558 Input di UserPromptSubmit


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

1562* **JSON con `additionalContext`**: usa il formato JSON riportato sotto per un maggiore controllo. Il campo `additionalContext` viene aggiunto come contesto1585* **JSON con `additionalContext`**: usa il formato JSON riportato sotto per un maggiore controllo. Il campo `additionalContext` viene aggiunto come contesto

1563 1586 

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

1565 1588 

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

1567 1590 


1571| `reason` | Mostrato all'utente quando `decision` è `"block"`. Non viene aggiunto al contesto |1594| `reason` | Mostrato all'utente quando `decision` è `"block"`. Non viene aggiunto al contesto |

1572| `additionalContext` | Stringa aggiunta al contesto di Claude insieme al prompt inviato. Consulta [Aggiungere contesto per Claude](#add-context-for-claude) |1595| `additionalContext` | Stringa aggiunta al contesto di Claude insieme al prompt inviato. Consulta [Aggiungere contesto per Claude](#add-context-for-claude) |

1573| `sessionTitle` | Imposta il titolo della sessione. Usalo per assegnare automaticamente un nome alle sessioni in base al contenuto del prompt |1596| `sessionTitle` | Imposta il titolo della sessione. Usalo per assegnare automaticamente un nome alle sessioni in base al contenuto del prompt |

1574| `suppressOriginalPrompt` | Se `true` quando l'hook blocca il prompt, esclude il testo del prompt dal messaggio di blocco. Consulta [Cosa lascia un prompt bloccato](#what-a-blocked-prompt-leaves-behind) |1597| `suppressOriginalPrompt` | Se è `true` quando l'hook blocca il prompt, omette il testo del prompt dal messaggio di blocco. Consulta [Cosa lascia dietro di sé un prompt bloccato](#what-a-blocked-prompt-leaves-behind) |

1575 1598 

1576Un hook che blocca uscendo con 2 segue lo stesso percorso di `reason`: il messaggio di blocco mostra all'utente il testo di stderr, che non viene aggiunto al contesto.1599Un hook che blocca uscendo con 2 viene instradato allo stesso modo di `reason`: il messaggio di blocco mostra all'utente il testo di stderr, che non viene aggiunto al contesto.

1577 1600 

1578```json theme={null}1601```json theme={null}

1579{1602{


1589```1612```

1590 1613 

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

1592 Cosa lascia un prompt bloccato1615 Cosa lascia dietro di sé un prompt bloccato

1593</h4>1616</h4>

1594 1617 

1595Un prompt bloccato non raggiunge mai Claude, ma il suo testo non viene rimosso ovunque. Per impostazione predefinita, il messaggio di blocco mostrato all'utente termina con `Original prompt:` seguito dal testo inviato, e Claude Code scrive quel messaggio nel file di trascrizione della sessione su disco. Per escludere il testo dal messaggio, stampa un JSON con `"suppressOriginalPrompt": true` all'interno di `hookSpecificOutput`. Funziona sia che l'hook blocchi con `decision: "block"` sia uscendo con 2.1618Un prompt bloccato non raggiunge mai Claude, ma il suo testo non viene rimosso ovunque. Per impostazione predefinita, il messaggio di blocco mostrato all'utente termina con `Original prompt:` seguito dal testo inviato, e Claude Code scrive quel messaggio nel file della trascrizione della sessione su disco. Per omettere il testo dal messaggio, stampa JSON con `"suppressOriginalPrompt": true` all'interno di `hookSpecificOutput`. Funziona sia che l'hook blocchi con `decision: "block"` sia che esca con 2.

1596 1619 

1597`suppressOriginalPrompt` modifica solo il messaggio di blocco. Il testo inviato può comunque comparire in file locali come la trascrizione della sessione e la cronologia dei tuoi prompt, quindi un hook di blocco non è un modo per tenere un segreto fuori dal disco. Per limitare o rimuovere quei file, consulta [Archiviazione in testo semplice](/docs/it/claude-directory#plaintext-storage) e [Cancellare i dati locali](/docs/it/claude-directory#clear-local-data).1620`suppressOriginalPrompt` modifica solo il messaggio di blocco. Il testo inviato può comunque apparire in file locali come la trascrizione della sessione e la cronologia dei prompt, quindi un hook di blocco non è un modo per tenere un segreto lontano dal disco. Per limitare o rimuovere quei file, consulta [Archiviazione in testo semplice](/docs/it/claude-directory#plaintext-storage) e [Cancellare i dati locali](/docs/it/claude-directory#clear-local-data).

1598 1621 

1599<h3 id="userpromptexpansion">1622<h3 id="userpromptexpansion">

1600 UserPromptExpansion1623 UserPromptExpansion


1602 1625 

1603Viene eseguito quando un comando digitato dall'utente si espande in un prompt prima di raggiungere Claude. Usalo per impedire l'invocazione diretta di comandi specifici, inserire contesto per una particolare skill o registrare quali comandi invocano gli utenti. Ad esempio, un hook che corrisponde a `deploy` può bloccare `/deploy` a meno che non sia presente un file di approvazione, oppure un hook che corrisponde a una skill di revisione può aggiungere la checklist di revisione del team come `additionalContext`.1626Viene eseguito quando un comando digitato dall'utente si espande in un prompt prima di raggiungere Claude. Usalo per impedire l'invocazione diretta di comandi specifici, inserire contesto per una particolare skill o registrare quali comandi invocano gli utenti. Ad esempio, un hook che corrisponde a `deploy` può bloccare `/deploy` a meno che non sia presente un file di approvazione, oppure un hook che corrisponde a una skill di revisione può aggiungere la checklist di revisione del team come `additionalContext`.

1604 1627 

1605Questo evento copre il percorso che `PreToolUse` non copre: un hook `PreToolUse` che corrisponde allo strumento `Skill` viene attivato solo quando Claude chiama lo strumento, ma digitare direttamente `/skillname` aggira `PreToolUse`. `UserPromptExpansion` viene attivato su quel percorso diretto.1628Questo evento copre il percorso che `PreToolUse` non copre: un hook `PreToolUse` che corrisponde allo strumento `Skill` si attiva solo quando Claude chiama lo strumento, ma digitare direttamente `/skillname` aggira `PreToolUse`. `UserPromptExpansion` si attiva su quel percorso diretto.

1606 1629 

1607Corrisponde su `command_name`. Lascia vuoto il matcher per attivarlo su ogni comando di tipo prompt.1630Corrisponde su `command_name`. Lascia il matcher vuoto per attivarlo su ogni comando di tipo prompt.

1608 1631 

1609<h4 id="userpromptexpansion-input">1632<h4 id="userpromptexpansion-input">

1610 Input di UserPromptExpansion1633 Input di UserPromptExpansion


1639| `reason` | Mostrato all'utente quando `decision` è `"block"` |1662| `reason` | Mostrato all'utente quando `decision` è `"block"` |

1640| `additionalContext` | Stringa aggiunta al contesto di Claude insieme al prompt espanso. Consulta [Aggiungere contesto per Claude](#add-context-for-claude) |1663| `additionalContext` | Stringa aggiunta al contesto di Claude insieme al prompt espanso. Consulta [Aggiungere contesto per Claude](#add-context-for-claude) |

1641 1664 

1642Un hook che blocca uscendo con 2 segue lo stesso percorso di `reason`: il messaggio di blocco mostra all'utente il testo di stderr.1665Un hook che blocca uscendo con 2 viene instradato allo stesso modo di `reason`: il messaggio di blocco mostra all'utente il testo di stderr.

1643 1666 

1644```json theme={null}1667```json theme={null}

1645{1668{


1656 MessageDisplay1679 MessageDisplay

1657</h3>1680</h3>

1658 1681 

1659Viene eseguito mentre un messaggio dell'assistente viene trasmesso sullo schermo. Claude Code mostra il messaggio a incrementi: ogni volta che un gruppo di righe appena completate è pronto per essere visualizzato, l'hook viene eseguito una volta con quelle righe e Claude Code visualizza al loro posto il testo sostitutivo dell'hook. Un messaggio lungo produce diverse chiamate; un messaggio breve può produrne solo una.1682Viene eseguito mentre un messaggio dell'assistente viene trasmesso sullo schermo. Claude Code visualizza il messaggio in incrementi: ogni volta che un gruppo di righe appena completate è pronto per il rendering, l'hook viene eseguito una volta con quelle righe e Claude Code visualizza al loro posto il testo sostitutivo dell'hook. Un messaggio lungo produce diverse chiamate; un messaggio breve può produrne solo una.

1660 1683 

1661Usa MessageDisplay per:1684Usa MessageDisplay per:

1662 1685 

1663* rimuovere il markdown per una visualizzazione minimale1686* rimuovere il markdown per una visualizzazione minimale

1664* trasformare il testo che un'applicazione dell'Agent SDK mostra ai suoi utenti1687* trasformare il testo che un'applicazione Agent SDK mostra ai suoi utenti

1665* oscurare chiavi API o nomi host interni dalle risposte di Claude1688* oscurare chiavi API o nomi host interni dalle risposte di Claude

1666 1689 

1667Claude Code trattiene ogni gruppo finché il tuo hook non restituisce un risultato, quindi mantieni l'hook veloce. Se l'hook fallisce o va in timeout, Claude Code visualizza il testo originale. Il timeout predefinito per questo evento è di 10 secondi; se il tuo hook ha bisogno di più tempo, imposta il campo `timeout` nella voce dell'hook.1690Claude Code trattiene ogni gruppo finché il tuo hook non restituisce un risultato, quindi mantieni l'hook veloce. Se l'hook fallisce o va in timeout, Claude Code visualizza il testo originale. Il timeout predefinito per questo evento è di 10 secondi; se il tuo hook ha bisogno di più tempo, imposta il campo `timeout` nella voce dell'hook.

1668 1691 

1669MessageDisplay riguarda solo la visualizzazione: il testo sostitutivo cambia solo ciò che viene mostrato sullo schermo. La trascrizione e ciò che vede Claude mantengono il testo originale, quindi Claude non vede mai la sostituzione, e la modalità verbose mostra l'originale. L'hook riceve solo il testo dei messaggi dell'assistente, quindi i risultati degli strumenti e il testo che digiti vengono visualizzati invariati.1692MessageDisplay riguarda solo la visualizzazione: il testo sostitutivo cambia solo ciò che viene mostrato sullo schermo. La trascrizione e ciò che vede Claude mantengono il testo originale, quindi Claude non vede mai la sostituzione, e la modalità verbose mostra l'originale. L'hook riceve solo il testo dei messaggi dell'assistente, quindi i risultati degli strumenti e il testo che digiti vengono visualizzati senza modifiche.

1670 1693 

1671MessageDisplay non supporta i matcher e viene attivato per ogni messaggio dell'assistente che trasmette testo; i messaggi senza testo, come le risposte composte solo da chiamate a strumenti, non lo attivano.1694MessageDisplay non supporta i matcher e si attiva per ogni messaggio dell'assistente che trasmette testo; i messaggi senza testo, come le risposte composte solo da chiamate a strumenti, non lo attivano.

1672 1695 

1673Nelle esecuzioni non interattive, incluse le query dell'Agent SDK e `claude -p`, MessageDisplay viene eseguito una volta per messaggio dell'assistente anziché una volta per gruppo di righe. L'unica chiamata arriva dopo il completamento del messaggio e contiene il testo completo del messaggio: `index` è `0`, `final` è `true` e `delta` contiene l'intero messaggio. Un hook che raccoglie il testo `delta` per ogni messaggio riceve lo stesso testo totale in entrambe le modalità.1696Nelle esecuzioni non interattive, incluse le query dell'Agent SDK e `claude -p`, MessageDisplay viene eseguito una volta per messaggio dell'assistente anziché una volta per gruppo di righe. L'unica chiamata arriva dopo il completamento del messaggio e contiene l'intero testo del messaggio: `index` è `0`, `final` è `true` e `delta` contiene l'intero messaggio. Un hook che raccoglie il testo di `delta` per ogni messaggio riceve lo stesso testo complessivo in entrambe le modalità.

1674 1697 

1675<h4 id="messagedisplay-input">1698<h4 id="messagedisplay-input">

1676 Input di MessageDisplay1699 Input di MessageDisplay

1677</h4>1700</h4>

1678 1701 

1679Oltre ai [campi di input comuni](#common-input-fields), gli hook MessageDisplay ricevono gli identificatori del turno e del messaggio, la posizione di questa chiamata all'interno del messaggio e il nuovo testo in `delta`. I confini dei gruppi dipendono da come viene trasmesso il testo, quindi usa `index` e `final` per tracciare l'avanzamento all'interno di un messaggio anziché aspettarti che le righe siano raggruppate in un modo particolare.1702Oltre ai [campi di input comuni](#common-input-fields), gli hook MessageDisplay ricevono gli identificatori del turno e del messaggio, la posizione di questa chiamata all'interno del messaggio e il nuovo testo in `delta`. I confini dei gruppi dipendono da come viene trasmesso il testo, quindi usa `index` e `final` per monitorare l'avanzamento in un messaggio anziché aspettarti che le righe siano raggruppate in un modo particolare.

1680 1703 

1681| Campo | Descrizione |1704| Campo | Descrizione |

1682| :- | :- |1705| :- | :- |


1684| `message_id` | UUID del messaggio dell'assistente visualizzato. Stabile in tutti i gruppi dello stesso messaggio. Non è l'id `msg_…` dell'API, quindi non può essere correlato con gli id dei messaggi della trascrizione |1707| `message_id` | UUID del messaggio dell'assistente visualizzato. Stabile in tutti i gruppi dello stesso messaggio. Non è l'id `msg_…` dell'API, quindi non può essere correlato con gli id dei messaggi della trascrizione |

1685| `index` | Indice a base zero di questo gruppo all'interno del messaggio |1708| `index` | Indice a base zero di questo gruppo all'interno del messaggio |

1686| `final` | `true` sull'ultimo gruppo del messaggio. Ogni messaggio ha esattamente un gruppo finale |1709| `final` | `true` sull'ultimo gruppo del messaggio. Ogni messaggio ha esattamente un gruppo finale |

1687| `delta` | Le righe appena completate dal gruppo precedente, inclusi i caratteri di nuova riga finali. Sempre righe intere, tranne il gruppo finale, che può terminare a metà riga. Nelle esecuzioni interattive, il delta del gruppo finale è vuoto quando il messaggio termina con una nuova riga, quindi considera `final`, e non un delta non vuoto, come segnale di fine messaggio. Nelle esecuzioni dell'Agent SDK e di `claude -p`, l'unica chiamata contiene l'intero messaggio |1710| `delta` | Le righe appena completate dal gruppo precedente, inclusi i caratteri di nuova riga finali. Sempre righe intere, tranne il gruppo finale che può terminare a metà riga. Nelle esecuzioni interattive, il delta del gruppo finale è vuoto quando il messaggio termina con una nuova riga, quindi considera `final`, e non un delta non vuoto, come segnale di fine messaggio. Nelle esecuzioni dell'Agent SDK e di `claude -p`, l'unica chiamata contiene l'intero messaggio |

1688 1711 

1689```json theme={null}1712```json theme={null}

1690{1713{


1712 1735 

1713Gli hook MessageDisplay non hanno controllo delle decisioni. Non possono bloccare il messaggio né modificare ciò che viene archiviato nella trascrizione o inviato a Claude. Claude Code agisce su `displayContent` dal loro output JSON e scarta `systemMessage` e `continue`.1736Gli hook MessageDisplay non hanno controllo delle decisioni. Non possono bloccare il messaggio né modificare ciò che viene archiviato nella trascrizione o inviato a Claude. Claude Code agisce su `displayContent` dal loro output JSON e scarta `systemMessage` e `continue`.

1714 1737 

1715Questo esempio rimuove la formattazione markdown dalle risposte di Claude per una visualizzazione in testo semplice. Lo script legge ogni gruppo da stdin, rimuove da `delta` i marcatori del grassetto e i backtick del codice inline, e restituisce il risultato come `displayContent`.1738Questo esempio rimuove la formattazione markdown dalle risposte di Claude per una visualizzazione in testo semplice. Lo script legge ogni gruppo da stdin, rimuove i marcatori del grassetto e i backtick del codice inline da `delta` e restituisce il risultato come `displayContent`.

1716 1739 

1717<Tabs>1740<Tabs>

1718 <Tab title="macOS/Linux">1741 <Tab title="macOS/Linux">


1771 }1794 }

1772 ```1795 ```

1773 1796 

1774 Il flag `-NoProfile` salta il caricamento del tuo profilo PowerShell in modo che l'hook si avvii rapidamente, e `-ExecutionPolicy Bypass` consente a PowerShell di eseguire il file di script locale.1797 Il flag `-NoProfile` salta il caricamento del tuo profilo PowerShell così l'hook si avvia rapidamente, e `-ExecutionPolicy Bypass` consente a PowerShell di eseguire il file di script locale.

1775 1798 

1776 Salva questo script in `.claude/hooks/plain-display.ps1` nel tuo progetto:1799 Salva questo script in `.claude/hooks/plain-display.ps1` nel tuo progetto:

1777 1800 


1788 </Tab>1811 </Tab>

1789</Tabs>1812</Tabs>

1790 1813 

1791I gruppi senza markdown passano invariati. Se lo script fallisce, ad esempio perché `jq` manca, Claude Code visualizza il testo originale e segnala l'errore solo nell'[output di debug](#debug-hooks), non nella sessione.1814I gruppi senza markdown passano senza modifiche. Se lo script fallisce, ad esempio perché manca `jq`, Claude Code visualizza il testo originale e segnala il fallimento solo nell'[output di debug](#debug-hooks), non nella sessione.

1792 1815 

1793<h3 id="pretooluse">1816<h3 id="pretooluse">

1794 PreToolUse1817 PreToolUse

1795</h3>1818</h3>

1796 1819 

1797Viene eseguito dopo che Claude ha creato i parametri dello strumento e prima di elaborare la chiamata allo strumento. Corrisponde a qualsiasi nome di strumento tranne `EndConversation`: strumenti integrati come `Bash`, `PowerShell`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `Workflow`, `WebFetch`, `WebSearch`, `AskUserQuestion` e `ExitPlanMode`, e qualsiasi [nome di strumento MCP](#match-mcp-tools).1820Viene eseguito dopo che Claude ha creato i parametri dello strumento e prima dell'elaborazione della chiamata allo strumento. Corrisponde a qualsiasi nome di strumento eccetto `EndConversation`: strumenti integrati come `Bash`, `PowerShell`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `Workflow`, `WebFetch`, `WebSearch`, `AskUserQuestion` e `ExitPlanMode`, e qualsiasi [nome di strumento MCP](#match-mcp-tools).

1798 1821 

1799Per eseguire un hook quando un file specifico cambia su disco, indipendentemente da chi lo ha scritto, usa [FileChanged](#filechanged) anziché far corrispondere per nome gli strumenti di modifica dei file. A differenza di PreToolUse, Claude Code esegue gli hook FileChanged dopo la modifica, e questi non hanno controllo delle decisioni, quindi non possono bloccare la scrittura.1822Per eseguire un hook quando un file specifico cambia su disco, indipendentemente da chi lo ha scritto, usa [FileChanged](#filechanged) invece di far corrispondere per nome gli strumenti di modifica dei file. A differenza di PreToolUse, Claude Code esegue gli hook FileChanged dopo la modifica, e non hanno controllo delle decisioni, quindi non possono bloccare la scrittura.

1800 1823 

1801<Warning>1824<Warning>

1802 PreToolUse viene eseguito solo quando Claude chiama uno strumento. I file a cui [fai riferimento con `@` nel tuo prompt](/docs/it/common-workflows#reference-files-and-directories) vengono aggiunti senza alcuna chiamata a uno strumento: Claude Code inserisce il loro contenuto durante la costruzione del prompt, quindi per essi non viene attivato alcun hook PreToolUse, inclusi gli hook che corrispondono a `Read`. Per impedire che percorsi specifici vengano referenziati con `@`, usa invece una [regola di negazione `Read`](/docs/it/permissions#read-and-edit).1825 PreToolUse viene eseguito solo quando Claude chiama uno strumento. Per impostazione predefinita, i file che [referenzi con `@` nel tuo prompt](/docs/it/common-workflows#reference-files-and-directories) vengono aggiunti senza alcuna chiamata a uno strumento. Claude Code ne inserisce il contenuto durante la costruzione del prompt, quindi nessun hook PreToolUse si attiva per essi, inclusi gli hook che corrispondono a `Read`. PreToolUse inoltre non si attiva per [`EndConversation`](/docs/it/tools-reference#endconversation-tool-behavior).

1803 1826 

1804 PreToolUse inoltre non viene attivato per [`EndConversation`](/docs/it/tools-reference#endconversation-tool-behavior).1827 Puoi bloccare percorsi specifici dai riferimenti `@`, oppure disattivare l'inserimento:

1828 

1829 * **Bloccare percorsi specifici**: aggiungi una [regola di negazione `Read`](/docs/it/permissions#read-and-edit) per essi

1830 * **Disattivare l'inserimento**: imposta [`CLAUDE_CODE_DISABLE_FILE_MENTIONS=1`](/docs/it/env-vars#variables) nella tua shell, nelle impostazioni utente o nelle impostazioni gestite. Claude riceve quindi i percorsi menzionati con una nota che gli chiede di leggerli usando i suoi strumenti per i file. Se lo fa, i tuoi hook PreToolUse corrispondenti vengono eseguiti. La variabile richiede Claude Code v2.1.299 o successivo, e Claude Code la ignora nelle impostazioni di progetto e locali.

1805</Warning>1831</Warning>

1806 1832 

1807Usa il [controllo delle decisioni di PreToolUse](#pretooluse-decision-control) per consentire, negare, chiedere o differire la chiamata allo strumento.1833Usa il [controllo delle decisioni di PreToolUse](#pretooluse-decision-control) per consentire, negare, chiedere conferma o differire la chiamata allo strumento.

1808 1834 

1809Un [hook di callback dell'Agent SDK](/docs/it/agent-sdk/hooks) su `PreToolUse` che supera il timeout blocca la chiamata allo strumento, e Claude riceve un risultato di errore che indica il timeout. Una negazione esplicita restituita da un altro hook ha comunque la precedenza.1835Un [hook di callback dell'Agent SDK](/docs/it/agent-sdk/hooks) su `PreToolUse` che supera il suo timeout blocca la chiamata allo strumento, e Claude riceve un risultato di errore che indica il timeout. Una negazione esplicita restituita da un altro hook ha comunque la precedenza.

1810 1836 

1811<h4 id="pretooluse-input">1837<h4 id="pretooluse-input">

1812 Input di PreToolUse1838 Input di PreToolUse


1814 1840 

1815Oltre ai [campi di input comuni](#common-input-fields), gli hook PreToolUse ricevono `tool_name`, `tool_input` e `tool_use_id`.1841Oltre ai [campi di input comuni](#common-input-fields), gli hook PreToolUse ricevono `tool_name`, `tool_input` e `tool_use_id`.

1816 1842 

1817Per uno [strumento MCP](#match-mcp-tools), l'input contiene anche `mcp_server`, un oggetto con il `name` del server e un `source` che indica da dove proviene la definizione del server. I valori di `source` includono `plugin`, `sdk` e ambiti di configurazione come `user` e `project`. [`McpServerProvenance`](/docs/it/agent-sdk/typescript#mcpserverprovenance) nel riferimento dell'Agent SDK li elenca tutti e spiega come trattare un valore che non riconosci. Basa le decisioni di fiducia su `source` anziché su `name` o sul prefisso del nome dello strumento `mcp__<server>__`. Il campo `mcp_server` richiede Claude Code v2.1.274 o successiva.1843Per uno [strumento MCP](#match-mcp-tools), l'input contiene anche `mcp_server`, un oggetto con il `name` del server e un `source` che indica da dove proviene la definizione del server. I valori di `source` includono `plugin`, `sdk` e ambiti di configurazione come `user` e `project`. [`McpServerProvenance`](/docs/it/agent-sdk/typescript#mcpserverprovenance) nel riferimento dell'Agent SDK li elenca tutti e spiega come trattarne uno che non riconosci. Basa le decisioni di fiducia su `source` anziché su `name` o sul prefisso del nome dello strumento `mcp__<server>__`. Il campo `mcp_server` richiede Claude Code v2.1.274 o successivo.

1818 1844 

1819Per gli strumenti di file `Write`, `Edit` e `Read`, `tool_input.file_path` è sempre assoluto:1845Per gli strumenti di file `Write`, `Edit` e `Read`, `tool_input.file_path` è sempre assoluto:

1820 1846 

1821* Claude Code espande `~` e i percorsi relativi prima dell'esecuzione degli hook, quindi un hook che corrisponde sui percorsi non può essere aggirato tramite `~` o una scrittura relativa dello stesso percorso1847* Claude Code espande `~` e i percorsi relativi prima dell'esecuzione degli hook, quindi un hook che effettua la corrispondenza sui percorsi non può essere aggirato tramite `~` o una scrittura relativa dello stesso percorso

1822* Su Windows, il percorso arriva con separatori backslash, anche quando il tuo hook viene eseguito in Git Bash dove `$PWD` appare come `/c/project`1848* Su Windows, il percorso arriva con separatori a barra rovesciata, anche quando il tuo hook viene eseguito in Git Bash, dove `$PWD` appare come `/c/project`

1823* Un confronto scritto con le barre normali, come un controllo su `/src/`, non corrisponde mai a un percorso con backslash, e la chiamata allo strumento procede come se l'hook non avesse nulla da bloccare1849* Un confronto scritto con barre normali, come un controllo su `/src/`, non corrisponde mai a un percorso con barre rovesciate, e la chiamata allo strumento procede come se l'hook non avesse nulla da bloccare

1824* Normalizza i separatori prima del confronto: `FILE_PATH="${FILE_PATH//\\//}"` in Bash, oppure `file_path.replace("\\", "/")` in Python, poi fai corrispondere un segmento di percorso come `/src/` anziché ancorare con `^`, poiché il percorso è assoluto1850* Normalizza i separatori prima del confronto: `FILE_PATH="${FILE_PATH//\\//}"` in Bash, oppure `file_path.replace("\\", "/")` in Python, poi fai corrispondere un segmento di percorso come `/src/` anziché ancorare con `^`, dato che il percorso è assoluto

1825 1851 

1826Una chiamata `Write` su Windows fornisce:1852Una chiamata `Write` su Windows fornisce:

1827 1853 


1854| `timeout` | number | `120000` | Timeout facoltativo in millisecondi. I valori superiori al [massimo](/docs/it/tools-reference#bash-tool-behavior) vengono ridotti al massimo anziché rifiutati |1880| `timeout` | number | `120000` | Timeout facoltativo in millisecondi. I valori superiori al [massimo](/docs/it/tools-reference#bash-tool-behavior) vengono ridotti al massimo anziché rifiutati |

1855| `run_in_background` | boolean | `false` | Se eseguire il comando in background |1881| `run_in_background` | boolean | `false` | Se eseguire il comando in background |

1856 1882 

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

1858 1884 

1859Il tuo [hook PostToolUse](#posttooluse) riceve quindi i file modificati in `tool_response.bashEditDiff`. L'elenco copre ciò che è cambiato nel repository durante l'esecuzione del comando. I file ignorati da Git e i file nei submodule non sono elencati. Richiede Claude Code v2.1.269 o successiva.1885Il tuo [hook PostToolUse](#posttooluse) riceve quindi i file modificati in `tool_response.bashEditDiff`. L'elenco copre ciò che è cambiato nel repository durante l'esecuzione del comando. I file ignorati da Git e i file nei submodule non sono elencati. Richiede Claude Code v2.1.269 o successivo.

1860 1886 

1861<Note>1887<Note>

1862 L'elenco è fornito al meglio delle possibilità ed è in beta pubblica. Claude Code può non rilevare una modifica, includere un file che un altro processo ha modificato nello stesso momento o fermarsi ai propri limiti di dimensione. La struttura del campo potrebbe cambiare. Usa l'elenco per capire cosa rivedere, non per applicare una policy.1888 L'elenco è fornito al meglio delle possibilità ed è in beta pubblica. Claude Code può non rilevare una modifica, includere un file che un altro processo ha modificato nello stesso momento o fermarsi ai suoi limiti di dimensione. La struttura del campo può cambiare. Usa l'elenco per trovare cosa rivedere, non per applicare una policy.

1863</Note>1889</Note>

1864 1890 

1865`changedFiles` e `files` elencano ciò che il comando ha modificato; i campi rimanenti indicano quanto è completo e affidabile quell'elenco.1891`changedFiles` e `files` elencano ciò che il comando ha modificato; i campi rimanenti indicano quanto è completo e affidabile quell'elenco.


1871| `moreFiles` | number | `2` | Numero di file modificati senza diff in `files` |1897| `moreFiles` | number | `2` | Numero di file modificati senza diff in `files` |

1872| `unavailable` | boolean | `true` | Impostato quando il diff è incompleto o non è stato possibile ottenerlo |1898| `unavailable` | boolean | `true` | Impostato quando il diff è incompleto o non è stato possibile ottenerlo |

1873| `skipped` | boolean | `true` | Impostato per un comando Git che sposta l'albero di lavoro, come `git checkout` o `git stash`, per cui Claude Code non calcola alcun diff |1899| `skipped` | boolean | `true` | Impostato per un comando Git che sposta l'albero di lavoro, come `git checkout` o `git stash`, per cui Claude Code non calcola alcun diff |

1874| `shared` | boolean | `true` | Impostato quando un'altra chiamata allo strumento Bash, ad esempio quella di un subagent, è stata eseguita nello stesso repository nello stesso momento, per cui alcune modifiche elencate potrebbero appartenere a quel comando |1900| `shared` | boolean | `true` | Impostato quando un'altra chiamata allo strumento Bash, come quella di un subagent, è stata eseguita nello stesso repository nello stesso momento, quindi alcune modifiche elencate potrebbero appartenere a quel comando |

1875 1901 

1876<a id="powershell" />1902<a id="powershell" />

1877 1903 


1890| `timeout` | number | `120000` | Timeout facoltativo in millisecondi |1916| `timeout` | number | `120000` | Timeout facoltativo in millisecondi |

1891| `run_in_background` | boolean | `false` | Se eseguire il comando in background |1917| `run_in_background` | boolean | `false` | Se eseguire il comando in background |

1892 1918 

1893Usa `Bash|PowerShell` negli hook che ispezionano i comandi shell, così coprono entrambi gli strumenti:1919Fai corrispondere `Bash|PowerShell` negli hook che ispezionano i comandi shell, in modo che coprano entrambi gli strumenti:

1894 1920 

1895* Su Windows, ovunque lo strumento PowerShell sia abilitato, Claude tratta PowerShell come shell principale e instrada i comandi shell attraverso di essa.1921* Su Windows, ovunque sia abilitato lo strumento PowerShell, Claude tratta PowerShell come shell principale e vi instrada i comandi shell.

1896* Su Windows senza Git Bash, lo strumento viene abilitato automaticamente e Claude Code non registra affatto lo strumento Bash.1922* Su Windows senza Git Bash, lo strumento viene abilitato automaticamente e Claude Code non registra affatto lo strumento Bash.

1897* Un hook che corrisponde solo a `Bash` non viene mai attivato in quel caso.1923* Un hook che corrisponde solo a `Bash` non si attiva mai lì.

1898 1924 

1899<h5 id="write">1925<h5 id="write">

1900 Write1926 Write


1968| :- | :- | :- | :- |1994| :- | :- | :- | :- |

1969| `url` | string | `"https://example.com/api"` | URL da cui recuperare il contenuto |1995| `url` | string | `"https://example.com/api"` | URL da cui recuperare il contenuto |

1970| `prompt` | string | `"Extract the API endpoints"` | Prompt da eseguire sul contenuto recuperato |1996| `prompt` | string | `"Extract the API endpoints"` | Prompt da eseguire sul contenuto recuperato |

1971| `offset` | number | `100000` | Numero facoltativo di caratteri da saltare dall'inizio della pagina. Claude lo imposta per continuare a leggere una pagina lunga. Richiede Claude Code v2.1.290 o successiva |1997| `offset` | number | `100000` | Numero facoltativo di caratteri da saltare dall'inizio della pagina. Claude lo imposta per continuare a leggere una pagina lunga. Richiede Claude Code v2.1.290 o successivo |

1972 1998 

1973<h5 id="websearch">1999<h5 id="websearch">

1974 WebSearch2000 WebSearch


1979| Campo | Tipo | Esempio | Descrizione |2005| Campo | Tipo | Esempio | Descrizione |

1980| :- | :- | :- | :- |2006| :- | :- | :- | :- |

1981| `query` | string | `"react hooks best practices"` | Query di ricerca |2007| `query` | string | `"react hooks best practices"` | Query di ricerca |

1982| `allowed_domains` | array | `["docs.example.com"]` | Facoltativo: include solo i risultati da questi domini |2008| `allowed_domains` | array | `["docs.example.com"]` | Facoltativo: include solo i risultati di questi domini |

1983| `blocked_domains` | array | `["spam.example.com"]` | Facoltativo: esclude i risultati da questi domini |2009| `blocked_domains` | array | `["spam.example.com"]` | Facoltativo: esclude i risultati di questi domini |

1984 2010 

1985<h5 id="agent">2011<h5 id="agent">

1986 Agent2012 Agent


1993| `prompt` | string | `"Find all API endpoints"` | L'attività che l'agente deve svolgere |2019| `prompt` | string | `"Find all API endpoints"` | L'attività che l'agente deve svolgere |

1994| `description` | string | `"Find API endpoints"` | Breve descrizione dell'attività |2020| `description` | string | `"Find API endpoints"` | Breve descrizione dell'attività |

1995| `subagent_type` | string | `"Explore"` | Tipo di agente specializzato da usare |2021| `subagent_type` | string | `"Explore"` | Tipo di agente specializzato da usare |

1996| `model` | string | `"sonnet"` | Alias di modello facoltativo per sovrascrivere il valore predefinito |2022| `model` | string | `"sonnet"` | Alias di modello facoltativo per sovrascrivere quello predefinito |

1997 2023 

1998Quando una chiamata Agent in primo piano termina, il tuo [hook PostToolUse](#posttooluse) riceve il risultato del subagent e la telemetria dell'esecuzione in `tool_response`. Leggi questi campi per ispezionare l'esecuzione; per i totali di token e costi tra i subagent, usa i [contatori di token e costi](/docs/it/monitoring-usage#token-counter) filtrati su `query_source` `"subagent"`, poiché `totalTokens` e `usage` coprono solo la richiesta finale:2024Quando una chiamata Agent in primo piano termina, il tuo [hook PostToolUse](#posttooluse) riceve il risultato del subagent e la telemetria dell'esecuzione in `tool_response`. Leggi questi campi per ispezionare l'esecuzione; per i totali di token e costi tra i subagent, usa i [contatori di token e costi](/docs/it/monitoring-usage#token-counter) filtrati su `query_source` `"subagent"`, poiché `totalTokens` e `usage` coprono solo la richiesta finale:

1999 2025 

2000| Campo | Tipo | Esempio | Descrizione |2026| Campo | Tipo | Esempio | Descrizione |

2001| :- | :- | :- | :- |2027| :- | :- | :- | :- |

2002| `status` | string | `"completed"` | `"completed"` per i subagent in primo piano, `"async_launched"` per i subagent in background. Per impostazione predefinita i subagent vengono eseguiti in background, quindi anche una chiamata Agent che omette `run_in_background` produce `"async_launched"` |2028| `status` | string | `"completed"` | `"completed"` per i subagent in primo piano, `"async_launched"` per i subagent in background. I subagent vengono eseguiti in background per impostazione predefinita, quindi anche una chiamata Agent che omette `run_in_background` produce `"async_launched"` |

2003| `agentId` | string | `"a4d2c8f1e0b3a297"` | Identificatore dell'esecuzione del subagent |2029| `agentId` | string | `"a4d2c8f1e0b3a297"` | Identificatore dell'esecuzione del subagent |

2004| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | I blocchi di testo finali del subagent oppure, per un subagent il cui report passa attraverso `SubagentHandback`, una breve nota su quella consegna al loro posto |2030| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | I blocchi di testo finali del subagent oppure, per un subagent il cui resoconto passa attraverso `SubagentHandback`, una breve nota su quella consegna al loro posto |

2005| `resolvedModel` | string | `"claude-sonnet-4-5"` | Modello con cui il subagent è partito, che può differire dal modello richiesto |2031| `resolvedModel` | string | `"claude-sonnet-4-5"` | Modello con cui il subagent è partito, che può differire dal modello richiesto |

2006| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | Modelli usati in ordine, con le ripetizioni consecutive compresse; impostato solo quando il modello è stato cambiato durante l'esecuzione. Richiede Claude Code v2.1.212 o successiva |2032| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | Modelli usati in ordine, con le ripetizioni consecutive compresse; impostato solo quando il modello è stato cambiato durante l'esecuzione. Richiede Claude Code v2.1.212 o successivo |

2007| `totalTokens` | number | `12450` | Numero di token dalla richiesta API finale del subagent: token di input, output e cache combinati. Non è un totale sull'intera esecuzione |2033| `totalTokens` | number | `12450` | Numero di token dalla richiesta API finale del subagent: token di input, di output e di cache combinati. Non è un totale sull'intera esecuzione |

2008| `totalDurationMs` | number | `48211` | Durata in tempo reale dell'esecuzione del subagent |2034| `totalDurationMs` | number | `48211` | Durata in tempo reale dell'esecuzione del subagent |

2009| `totalToolUseCount` | number | `7` | Numero di chiamate a strumenti effettuate dal subagent |2035| `totalToolUseCount` | number | `7` | Numero di chiamate agli strumenti effettuate dal subagent |

2010| `usage` | object | `{"input_tokens": 8320, ...}` | Suddivisione per tipo dei token della richiesta API finale: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |2036| `usage` | object | `{"input_tokens": 8320, ...}` | Ripartizione per tipo dei token della richiesta API finale: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |

2011 2037 

2012Su Claude Code v2.1.271 o successiva, un subagent che viene eseguito con lo strumento [`SubagentHandback`](/docs/it/tools-reference), che Claude Code fornisce in [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode), consegna il suo report tramite quello strumento anziché restituirlo come testo. Il campo `content` del suo risultato `completed` contiene allora una breve nota su quella consegna anziché il report stesso. Per leggere il report, fai corrispondere un hook `PreToolUse` o `PostToolUse` su `SubagentHandback` e leggi `tool_input.message`.2038In Claude Code v2.1.271 o successivo, un subagent eseguito con lo strumento [`SubagentHandback`](/docs/it/tools-reference), che Claude Code fornisce in [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode), consegna il suo resoconto tramite quello strumento anziché restituirlo come testo. Il campo `content` del suo risultato `completed` contiene quindi una breve nota su quella consegna anziché il resoconto stesso. Per leggere il resoconto, fai corrispondere un hook `PreToolUse` o `PostToolUse` su `SubagentHandback` e leggi `tool_input.message`.

2013 2039 

2014Per i subagent in background, lo strumento restituisce un risultato quando l'attività passa in background, quindi `tool_response` non contiene campi di utilizzo: un avvio in background restituisce immediatamente, e un'attività in primo piano che Claude Code sposta in background durante l'esecuzione restituisce in corrispondenza di quella transizione. Contiene `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile` e `resolvedModel`.2040Per i subagent in background, lo strumento restituisce un risultato quando l'attività passa in background, quindi `tool_response` non contiene campi di utilizzo: un avvio in background restituisce immediatamente, e un'attività in primo piano che Claude Code sposta in background durante l'esecuzione restituisce al momento di quella transizione. Contiene `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile` e `resolvedModel`.

2015 2041 

2016In una risposta `completed`, `resolvedModel` indica il modello con cui il subagent è partito, che può differire dal valore `model` in `tool_input`, ad esempio quando si applica `availableModels` o un altro override. In una risposta `async_launched`, `resolvedModel` indica il modello in uso quando l'agente è passato in background, quindi un cambio avvenuto prima del passaggio in background viene riflesso lì. `modelsUsed` e il comportamento di `resolvedModel` al momento del passaggio in background richiedono Claude Code v2.1.212 o successiva.2042In una risposta `completed`, `resolvedModel` indica il modello con cui il subagent è partito, che può differire dal valore `model` in `tool_input`, ad esempio quando si applica `availableModels` o un altro override. In una risposta `async_launched`, `resolvedModel` indica il modello in uso quando l'agente è passato in background, quindi un cambio avvenuto prima del passaggio in background vi si riflette. `modelsUsed` e il comportamento di `resolvedModel` al momento del passaggio in background richiedono Claude Code v2.1.212 o successivo.

2017 2043 

2018<a id="askuserquestion" />2044<a id="askuserquestion" />

2019 2045 


2032 ExitPlanMode2058 ExitPlanMode

2033</h5>2059</h5>

2034 2060 

2035Presenta un piano e chiede all'utente di approvarlo prima che Claude esca dal [plan mode](/docs/it/permission-modes#analyze-before-you-edit-with-plan-mode). Claude scrive il piano in un file su disco prima di chiamare lo strumento, quindi il `tool_input` letterale del modello è in genere vuoto. Claude Code inserisce il contenuto del piano e il percorso del file prima di passare l'input agli hook.2061Presenta un piano e chiede all'utente di approvarlo prima che Claude esca dal [plan mode](/docs/it/permission-modes#analyze-before-you-edit-with-plan-mode). Claude scrive il piano in un file su disco prima di chiamare lo strumento, quindi il `tool_input` letterale proveniente dal modello è tipicamente vuoto. Claude Code inserisce il contenuto del piano e il percorso del file prima di passare l'input agli hook.

2036 2062 

2037| Campo | Tipo | Esempio | Descrizione |2063| Campo | Tipo | Esempio | Descrizione |

2038| :- | :- | :- | :- |2064| :- | :- | :- | :- |


2040| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | Percorso del file del piano. Inserito |2066| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | Percorso del file del piano. Inserito |

2041| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | Deprecato. Claude Code accetta il campo ma lo ignora. Prima della v2.1.205, conteneva i permessi basati su prompt che Claude richiedeva per implementare il piano |2067| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | Deprecato. Claude Code accetta il campo ma lo ignora. Prima della v2.1.205, conteneva i permessi basati su prompt che Claude richiedeva per implementare il piano |

2042 2068 

2043In `PostToolUse`, `tool_response` è un oggetto con i campi `plan` e `filePath` che contengono il piano approvato, più alcuni flag di stato interni. Leggi `tool_response.plan` per il contenuto del piano anziché rileggere il file dal disco.2069In `PostToolUse`, `tool_response` è un oggetto con i campi `plan` e `filePath` che contengono il piano approvato, più flag di stato interni. Leggi `tool_response.plan` per il contenuto del piano anziché rileggere il file dal disco.

2044 2070 

2045<h4 id="pretooluse-decision-control">2071<h4 id="pretooluse-decision-control">

2046 Controllo delle decisioni di PreToolUse2072 Controllo delle decisioni di PreToolUse

2047</h4>2073</h4>

2048 2074 

2049Gli hook `PreToolUse` possono controllare se una chiamata a uno strumento procede. A differenza di altri hook che usano un campo `decision` di primo livello, PreToolUse restituisce la sua decisione all'interno di un oggetto `hookSpecificOutput`. Questo gli offre un controllo più ricco: quattro esiti (allow, deny, ask o defer) più la possibilità di modificare l'input dello strumento prima dell'esecuzione.2075Gli hook `PreToolUse` possono controllare se una chiamata a uno strumento procede. A differenza di altri hook che usano un campo `decision` di primo livello, PreToolUse restituisce la sua decisione all'interno di un oggetto `hookSpecificOutput`. Questo gli conferisce un controllo più ricco: quattro esiti (consentire, negare, chiedere conferma o differire) più la possibilità di modificare l'input dello strumento prima dell'esecuzione.

2050 2076 

2051| Campo | Descrizione |2077| Campo | Descrizione |

2052| :- | :- |2078| :- | :- |

2053| `permissionDecision` | `"allow"` salta la richiesta di permesso, tranne per le [azioni che nessuna modalità approva automaticamente](/docs/it/permission-modes#actions-no-mode-auto-approves), per le [letture da percorsi di rete](/docs/it/permissions#network-paths), e per `AskUserQuestion` ed `ExitPlanMode`, che richiedono [`updatedInput` abbinato](#allow-with-updatedinput). `"deny"` impedisce la chiamata allo strumento. `"ask"` chiede all'utente di confermare. `"defer"` esce in modo ordinato così che lo strumento possa essere ripreso in seguito. Le [regole di negazione e di richiesta](/docs/it/permissions#manage-permissions) vengono comunque valutate indipendentemente da ciò che l'hook restituisce |2079| `permissionDecision` | `"allow"` salta la richiesta di permesso, tranne per le [azioni che nessuna modalità approva automaticamente](/docs/it/permission-modes#actions-no-mode-auto-approves), per le [letture da percorsi di rete](/docs/it/permissions#network-paths) e per `AskUserQuestion` e `ExitPlanMode`, che richiedono [`updatedInput` abbinato](#allow-with-updatedinput). `"deny"` impedisce la chiamata allo strumento. `"ask"` chiede all'utente di confermare. `"defer"` esce in modo ordinato così lo strumento può essere ripreso più tardi. Le [regole di negazione e di richiesta di conferma](/docs/it/permissions#manage-permissions) vengono comunque valutate indipendentemente da ciò che l'hook restituisce |

2054| `permissionDecisionReason` | Per `"ask"`, mostrato all'utente nella richiesta di permesso. Quando Claude Code [nega la chiamata](/docs/it/headless#turn-off-permission-prompts-in-unattended-runs) in un'esecuzione `-p` in cui nessuno può rispondere a quella richiesta, Claude legge invece il motivo nel risultato dello strumento. Per `"deny"`, mostrato a Claude. Per `"allow"` e `"defer"`, scritto solo nel [log di debug](#debug-hooks) |2080| `permissionDecisionReason` | Per `"ask"`, mostrato all'utente nella richiesta di permesso. Quando Claude Code [nega la chiamata](/docs/it/headless#turn-off-permission-prompts-in-unattended-runs) in un'esecuzione `-p` in cui nessuno può rispondere a quella richiesta, Claude legge invece il motivo nel risultato dello strumento. Per `"deny"`, mostrato a Claude. Per `"allow"` e `"defer"`, scritto solo nel [log di debug](#debug-hooks) |

2055| `updatedInput` | Modifica i parametri di input dello strumento prima dell'esecuzione. Sostituisce l'intero oggetto di input, quindi includi i campi invariati insieme a quelli modificati. Claude Code valuta le regole di permesso e l'[idoneità al passaggio automatico in background](/docs/it/tools-reference#foreground-commands-that-move-to-the-background) di un comando Bash rispetto all'input restituito dal tuo hook, non all'input inviato da Claude. Combinalo con `"allow"` per approvare automaticamente, oppure con `"ask"` per mostrare l'input modificato all'utente. Per `"defer"`, viene ignorato |2081| `updatedInput` | Modifica i parametri di input dello strumento prima dell'esecuzione. Sostituisce l'intero oggetto di input, quindi includi i campi non modificati insieme a quelli modificati. Claude Code valuta le regole di permesso e l'[idoneità al passaggio automatico in background](/docs/it/tools-reference#foreground-commands-that-move-to-the-background) di un comando Bash sull'input restituito dal tuo hook, non sull'input inviato da Claude. Combinalo con `"allow"` per approvare automaticamente, oppure con `"ask"` per mostrare all'utente l'input modificato. Per `"defer"`, ignorato |

2056| `additionalContext` | Stringa aggiunta al contesto di Claude insieme al risultato dello strumento. Ignorata quando `permissionDecision` è `"defer"`. Consulta [Aggiungere contesto per Claude](#add-context-for-claude) |2082| `additionalContext` | Stringa aggiunta al contesto di Claude insieme al risultato dello strumento. Ignorata quando `permissionDecision` è `"defer"`. Consulta [Aggiungere contesto per Claude](#add-context-for-claude) |

2057 2083 

2058Quando più hook PreToolUse restituiscono decisioni diverse, la precedenza è `deny` > `defer` > `ask` > `allow`.2084Quando più hook PreToolUse restituiscono decisioni diverse, l'ordine di precedenza è `deny` > `defer` > `ask` > `allow`.

2059 2085 

2060Un hook che blocca uscendo con 2 segue lo stesso percorso di `"deny"`: Claude vede il messaggio di stderr come motivo della negazione.2086Un hook che blocca uscendo con 2 viene instradato allo stesso modo di `"deny"`: Claude vede il messaggio di stderr come motivo della negazione.

2061 2087 

2062Quando un hook restituisce `"ask"`, la richiesta di permesso mostrata all'utente include un'etichetta che identifica la provenienza dell'hook: `[settings]` per un hook da qualsiasi file di impostazioni o dal frontmatter di un agente, `[plugin:<name>]` per l'hook di un plugin, oppure `[skill]` per un hook dal frontmatter di una skill. Questo aiuta gli utenti a capire quale fonte di configurazione sta richiedendo la conferma.2088Quando un hook restituisce `"ask"`, la richiesta di permesso mostrata all'utente include un'etichetta che identifica la provenienza dell'hook: `[settings]` per un hook da qualsiasi file di impostazioni o dal frontmatter di un agente, `[plugin:<name>]` per l'hook di un plugin, oppure `[skill]` per un hook dal frontmatter di una skill. Questo aiuta gli utenti a capire quale fonte di configurazione sta richiedendo la conferma.

2063 2089 

2064Un `"ask"` di un hook forza una richiesta di permesso anche in [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode): il classificatore può comunque negare la chiamata allo strumento, ma non può approvarla silenziosamente. Prima della v2.1.211, il classificatore poteva approvare un comando Bash eseguito fuori dalla [sandbox](/docs/it/sandboxing) senza mostrare la richiesta voluta dall'hook; il classificatore applicava comunque le proprie regole di sicurezza a quel comando, e un `"deny"` di un hook veniva sempre rispettato.2090Un `"ask"` di un hook forza una richiesta di permesso anche in [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode): il classificatore può comunque negare la chiamata allo strumento, ma non può approvarla silenziosamente. Prima della v2.1.211, il classificatore poteva approvare un comando Bash eseguito al di fuori della [sandbox](/docs/it/sandboxing) senza mostrare la richiesta richiesta dall'hook; il classificatore applicava comunque a quel comando le proprie regole di sicurezza, e un `"deny"` di un hook veniva sempre rispettato.

2065 2091 

2066```json theme={null}2092```json theme={null}

2067{2093{


2078```2104```

2079 2105 

2080<Note>2106<Note>

2081 In precedenza PreToolUse usava i campi di primo livello `decision` e `reason`, ma questi sono deprecati per questo evento. Usa invece `hookSpecificOutput.permissionDecision` e `hookSpecificOutput.permissionDecisionReason`. I valori deprecati `"approve"` e `"block"` corrispondono rispettivamente a `"allow"` e `"deny"`. Altri eventi come PostToolUse e Stop continuano a usare `decision` e `reason` di primo livello come formato corrente.2107 In precedenza PreToolUse usava i campi di primo livello `decision` e `reason`, ma questi sono deprecati per questo evento. Usa invece `hookSpecificOutput.permissionDecision` e `hookSpecificOutput.permissionDecisionReason`. I valori deprecati `"approve"` e `"block"` corrispondono rispettivamente a `"allow"` e `"deny"`. Altri eventi come PostToolUse e Stop continuano a usare `decision` e `reason` di primo livello come formato attuale.

2082</Note>2108</Note>

2083 2109 

2084<h4 id="allow-with-updatedinput">2110<h4 id="allow-with-updatedinput">

2085 Strumenti che richiedono l'interazione dell'utente2111 Strumenti che richiedono l'interazione dell'utente

2086</h4>2112</h4>

2087 2113 

2088`AskUserQuestion` e `ExitPlanMode` richiedono l'interazione dell'utente. In [modalità non interattiva](/docs/it/headless) con il flag `-p`, Claude Code li offre solo quando l'esecuzione dispone di un [host dei permessi](/docs/it/headless#turn-off-permission-prompts-in-unattended-runs) che riceva la richiesta, come un callback `canUseTool` dell'Agent SDK.2114`AskUserQuestion` e `ExitPlanMode` richiedono l'interazione dell'utente. In [modalità non interattiva](/docs/it/headless) con il flag `-p`, Claude Code li offre solo quando l'esecuzione ha un [host dei permessi](/docs/it/headless#turn-off-permission-prompts-in-unattended-runs) che riceva la richiesta, come un callback `canUseTool` dell'Agent SDK.

2089 2115 

2090Un hook `PreToolUse` soddisfa quel requisito quando fa quanto segue:2116Un hook `PreToolUse` soddisfa questo requisito quando fa quanto segue:

2091 2117 

20921. Legge l'input dello strumento da stdin21181. Legge l'input dello strumento da stdin

20932. Raccoglie la risposta tramite la tua interfaccia utente21192. Raccoglie la risposta tramite la tua interfaccia utente

20943. Restituisce `permissionDecision: "allow"` insieme a un `updatedInput` che contiene la risposta, così lo strumento viene eseguito senza chiedere21203. Restituisce `permissionDecision: "allow"` insieme a `updatedInput` contenente la risposta, così lo strumento viene eseguito senza chiedere conferma

2095 2121 

2096Restituire solo `"allow"` non è sufficiente per questi strumenti.2122Restituire solo `"allow"` non è sufficiente per questi strumenti.

2097 2123 

2098Per `AskUserQuestion`, restituisci l'array `questions` originale e aggiungi un oggetto [`answers`](#askuserquestion) che associa il testo di ogni domanda alla risposta scelta. Questo output risponde a una domanda con `React`:2124Per `AskUserQuestion`, restituisci l'array `questions` originale e aggiungi un oggetto [`answers`](#askuserquestion) che associa il testo di ciascuna domanda alla risposta scelta. Questo output risponde a una domanda con `React`:

2099 2125 

2100```json theme={null}2126```json theme={null}

2101{2127{


2117}2143}

2118```2144```

2119 2145 

2120Uno strumento MCP che il suo server contrassegna con [`_meta["anthropic/requiresUserInteraction"]`](/docs/it/mcp#require-approval-for-a-specific-tool) è più restrittivo: un hook non può saltare la sua richiesta di approvazione con `"allow"`, con o senza `updatedInput`, perché Claude Code non può confermare che l'hook abbia raccolto l'interazione di cui lo strumento ha bisogno.2146Uno strumento MCP che il suo server contrassegna con [`_meta["anthropic/requiresUserInteraction"]`](/docs/it/mcp#require-approval-for-a-specific-tool) è più restrittivo: un hook non può saltare la sua richiesta di approvazione con `"allow"`, con o senza `updatedInput`, perché Claude Code non può verificare che l'hook abbia raccolto l'interazione di cui lo strumento ha bisogno.

2121 2147 

2122<h4 id="defer-a-tool-call-for-later">2148<h4 id="defer-a-tool-call-for-later">

2123 Differire una chiamata a uno strumento2149 Differire una chiamata a uno strumento

2124</h4>2150</h4>

2125 2151 

2126`"defer"` è pensato per le integrazioni che eseguono `claude -p` come sottoprocesso e leggono il suo output JSON, come un'app dell'Agent SDK o un'interfaccia utente personalizzata costruita su Claude Code. Consente a quel processo chiamante di mettere in pausa Claude a una chiamata a uno strumento, raccogliere input tramite la propria interfaccia e riprendere da dove si era interrotto. Claude Code rispetta questo valore solo in [modalità non interattiva](/docs/it/headless) con il flag `-p`. Nelle sessioni interattive registra un avviso e ignora il risultato dell'hook.2152`"defer"` è pensato per le integrazioni che eseguono `claude -p` come sottoprocesso e ne leggono l'output JSON, come un'app Agent SDK o un'interfaccia utente personalizzata costruita su Claude Code. Consente a quel processo chiamante di mettere in pausa Claude a una chiamata a uno strumento, raccogliere input tramite la propria interfaccia e riprendere da dove si era interrotto. Claude Code rispetta questo valore solo in [modalità non interattiva](/docs/it/headless) con il flag `-p`. Nelle sessioni interattive registra un avviso e ignora il risultato dell'hook.

2127 2153 

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

2129 2155 

21301. Claude chiama `AskUserQuestion`. L'hook `PreToolUse` viene attivato.21561. Claude chiama `AskUserQuestion`. L'hook `PreToolUse` si attiva.

21312. L'hook restituisce `permissionDecision: "defer"`. Lo strumento non viene eseguito. Il processo esce con `stop_reason: "tool_deferred"` e la chiamata allo strumento in sospeso viene conservata nella trascrizione.21572. L'hook restituisce `permissionDecision: "defer"`. Lo strumento non viene eseguito. Il processo esce con `stop_reason: "tool_deferred"` e la chiamata allo strumento in sospeso viene preservata nella trascrizione.

21323. Il processo chiamante legge `deferred_tool_use` dal risultato dell'SDK, presenta la domanda nella propria interfaccia utente e attende una risposta.21583. Il processo chiamante legge `deferred_tool_use` dal risultato dell'SDK, presenta la domanda nella propria interfaccia utente e attende una risposta.

21334. Il processo chiamante esegue `claude -p --resume <session-id>` con lo stesso host dei permessi. La stessa chiamata allo strumento attiva di nuovo `PreToolUse`.21594. Il processo chiamante esegue `claude -p --resume <session-id>` con lo stesso host dei permessi. La stessa chiamata allo strumento attiva di nuovo `PreToolUse`.

21345. L'hook restituisce `permissionDecision: "allow"` con la risposta in `updatedInput`. Lo strumento viene eseguito e Claude continua.21605. L'hook restituisce `permissionDecision: "allow"` con la risposta in `updatedInput`. Lo strumento viene eseguito e Claude continua.

2135 2161 

2136Il campo `deferred_tool_use` contiene `id`, `name` e `input` dello strumento. L'`input` è costituito dai parametri generati da Claude per la chiamata allo strumento, acquisiti prima dell'esecuzione:2162Il campo `deferred_tool_use` contiene `id`, `name` e `input` dello strumento. L'`input` sono i parametri che Claude ha generato per la chiamata allo strumento, catturati prima dell'esecuzione:

2137 2163 

2138```json theme={null}2164```json theme={null}

2139{2165{


2149}2175}

2150```2176```

2151 2177 

2152Non esiste alcun timeout né limite di nuovi tentativi. La sessione rimane su disco finché non la riprendi, salvo la pulizia di conservazione di [`cleanupPeriodDays`](/docs/it/settings-reference#cleanupperioddays), che elimina i file di sessione dopo 30 giorni per impostazione predefinita, secondo le [regole della pulizia di conservazione](/docs/it/claude-directory#cleaned-up-automatically). Se la risposta non è pronta quando riprendi, l'hook può restituire di nuovo `"defer"` e il processo esce allo stesso modo. Il processo chiamante decide quando interrompere il ciclo restituendo infine `"allow"` o `"deny"` dall'hook.2178Non esiste alcun timeout né limite di nuovi tentativi. La sessione rimane su disco finché non la riprendi, fatto salvo il ciclo di pulizia per la conservazione di [`cleanupPeriodDays`](/docs/it/settings-reference#cleanupperioddays), che per impostazione predefinita elimina i file di sessione dopo 30 giorni, secondo le [regole del ciclo di pulizia](/docs/it/claude-directory#cleaned-up-automatically). Se la risposta non è pronta quando riprendi, l'hook può restituire di nuovo `"defer"` e il processo esce allo stesso modo. Il processo chiamante decide quando interrompere il ciclo restituendo infine `"allow"` o `"deny"` dall'hook.

2153 2179 

2154`"defer"` funziona solo quando Claude effettua una singola chiamata a uno strumento nel turno. Se Claude effettua più chiamate a strumenti contemporaneamente, `"defer"` viene ignorato con un avviso e lo strumento procede attraverso il normale flusso dei permessi. Il vincolo esiste perché la ripresa può rieseguire un solo strumento: non c'è modo di differire una chiamata di un gruppo senza lasciare irrisolte le altre.2180`"defer"` funziona solo quando Claude effettua una singola chiamata a uno strumento nel turno. Se Claude effettua più chiamate agli strumenti contemporaneamente, `"defer"` viene ignorato con un avviso e lo strumento procede attraverso il normale flusso dei permessi. Il vincolo esiste perché la ripresa può rieseguire un solo strumento: non c'è modo di differire una chiamata di un gruppo senza lasciare le altre irrisolte.

2155 2181 

2156Se lo strumento differito non è più disponibile quando riprendi, il processo esce con `stop_reason: "tool_deferred_unavailable"` e `is_error: true` prima che l'hook venga attivato. Questo accade quando un server MCP che forniva lo strumento non è connesso per la sessione ripresa. Il payload `deferred_tool_use` è comunque incluso, così puoi identificare quale strumento è venuto a mancare.2182Se lo strumento differito non è più disponibile quando riprendi, il processo esce con `stop_reason: "tool_deferred_unavailable"` e `is_error: true` prima che l'hook si attivi. Questo accade quando un server MCP che forniva lo strumento non è connesso per la sessione ripresa. Il payload `deferred_tool_use` viene comunque incluso così puoi identificare quale strumento è venuto a mancare.

2157 2183 

2158<Note>2184<Note>

2159 Per riprendere una sessione differita in plan mode, passa [`--permission-prompt-tool`](/docs/it/cli-reference#cli-flags) insieme a `--resume`, in modo che Claude Code possa presentare il piano per l'approvazione. Per le altre condizioni, consulta [Riprendere in plan mode con `-p`](/docs/it/sessions#resume-in-plan-mode-with-p). Richiede Claude Code v2.1.246 o successiva.2185 Per riprendere una sessione differita in plan mode, passa [`--permission-prompt-tool`](/docs/it/cli-reference#cli-flags) insieme a `--resume` in modo che Claude Code possa presentare il piano per l'approvazione. Per le altre condizioni, consulta [Riprendere in plan mode con `-p`](/docs/it/sessions#resume-in-plan-mode-with-p). Richiede Claude Code v2.1.246 o successivo.

2160 2186 

2161 Quando riprendi con `-p`, Claude Code non ripristina nessun'altra modalità di permesso memorizzata. Avvia l'esecuzione nella modalità di permesso in cui partirebbe una nuova esecuzione `claude -p`, quindi passa di nuovo `--permission-mode` o `--dangerously-skip-permissions` se la sessione differita ne usava uno. Quando riprendi con `claude --resume <session-id>` senza `-p`, Claude Code ripristina la modalità di permesso memorizzata, con le eccezioni elencate in [modalità di permesso alla ripresa](/docs/it/sessions#permission-mode-on-resume).2187 Quando riprendi con `-p`, Claude Code non ripristina nessun'altra modalità di permesso memorizzata. Avvia l'esecuzione nella modalità di permesso in cui partirebbe una nuova esecuzione `claude -p`, quindi passa di nuovo `--permission-mode` o `--dangerously-skip-permissions` se la sessione differita ne usava uno. Quando riprendi con `claude --resume <session-id>` senza `-p`, Claude Code ripristina la modalità di permesso memorizzata, con le eccezioni elencate in [modalità di permesso alla ripresa](/docs/it/sessions#permission-mode-on-resume).

2162</Note>2188</Note>


2178 Input di PermissionRequest2204 Input di PermissionRequest

2179</h4>2205</h4>

2180 2206 

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

2182 2208 

2183L'array `permission_suggestions` non è un elenco esatto delle opzioni che vedi, perché ogni finestra di dialogo dei permessi costruisce le proprie opzioni. Alcune finestre di dialogo, come quella per le modifiche ai file, non leggono affatto l'array e ricavano le loro opzioni dalla richiesta stessa. Una finestra di dialogo che lo legge può comunque nascondere un'opzione il cui suggerimento resta nell'array, ad esempio quando [`allowManagedPermissionRulesOnly`](/docs/it/settings-reference#allowmanagedpermissionrulesonly) nasconde le opzioni di salvataggio delle regole. Può anche offrire opzioni che non hanno alcuna voce di suggerimento, come [**Yes, and switch to auto mode**](/docs/it/permission-modes#switch-permission-modes), che cambia direttamente la modalità di permesso anziché tramite un aggiornamento dei permessi.2209L'array `permission_suggestions` non è un elenco esatto delle opzioni che vedi, perché ogni finestra di dialogo dei permessi costruisce le proprie opzioni. Alcune finestre di dialogo, come quella per le modifiche ai file, non leggono affatto l'array e ricavano le proprie opzioni dalla richiesta stessa. Una finestra di dialogo che lo legge può comunque nascondere un'opzione il cui suggerimento rimane nell'array, ad esempio quando [`allowManagedPermissionRulesOnly`](/docs/it/settings-reference#allowmanagedpermissionrulesonly) nasconde le opzioni per salvare le regole. Può anche offrire opzioni che non hanno una voce di suggerimento, come [**Yes, and switch to auto mode**](/docs/it/permission-modes#switch-permission-modes), che cambia direttamente la modalità di permesso anziché tramite un aggiornamento dei permessi.

2184 2210 

2185Gli hook PreToolUse vengono eseguiti prima di ogni chiamata a uno strumento, che richieda o meno un permesso. Gli hook PermissionRequest vengono eseguiti solo quando Claude Code sta per chiederti il permesso, oppure quando altrimenti negherebbe automaticamente una chiamata che non può mostrare una richiesta. Nessuno dei due eventi viene attivato per [`EndConversation`](/docs/it/tools-reference#endconversation-tool-behavior).2211Gli hook PreToolUse vengono eseguiti prima di ogni chiamata a uno strumento, che richieda o meno un permesso. Gli hook PermissionRequest vengono eseguiti solo quando Claude Code sta per chiederti un permesso, o quando altrimenti negherebbe automaticamente una chiamata che non può mostrare una richiesta. Nessuno dei due eventi si attiva per [`EndConversation`](/docs/it/tools-reference#endconversation-tool-behavior).

2186 2212 

2187```json theme={null}2213```json theme={null}

2188{2214{


2211 Controllo delle decisioni di PermissionRequest2237 Controllo delle decisioni di PermissionRequest

2212</h4>2238</h4>

2213 2239 

2214Gli hook `PermissionRequest` possono consentire o negare le richieste di permesso. Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, il tuo script di hook può restituire un oggetto `decision` con questi campi specifici dell'evento:2240Gli hook `PermissionRequest` possono consentire o negare le richieste di permesso. Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, lo script del tuo hook può restituire un oggetto `decision` con questi campi specifici dell'evento:

2215 2241 

2216| Campo | Descrizione |2242| Campo | Descrizione |

2217| :- | :- |2243| :- | :- |

2218| `behavior` | `"allow"` concede il permesso, `"deny"` lo nega. Le [regole di negazione e di richiesta](/docs/it/permissions#manage-permissions) vengono comunque valutate, quindi un hook che restituisce `"allow"` non sovrascrive una regola di negazione corrispondente |2244| `behavior` | `"allow"` concede il permesso, `"deny"` lo nega. Le [regole deny e ask](/docs/it/permissions#manage-permissions) vengono comunque valutate, quindi un hook che restituisce `"allow"` non sovrascrive una regola deny corrispondente |

2219| `updatedInput` | Solo per `"allow"`: modifica i parametri di input dello strumento prima dell'esecuzione. Sostituisce l'intero oggetto di input, quindi includi i campi invariati insieme a quelli modificati. L'input modificato viene rivalutato rispetto alle regole di negazione e di richiesta |2245| `updatedInput` | Solo per `"allow"`: modifica i parametri di input dello strumento prima dell'esecuzione. Sostituisce l'intero oggetto di input, quindi includi i campi invariati insieme a quelli modificati. L'input modificato viene rivalutato rispetto alle regole deny e ask |

2220| `updatedPermissions` | Solo per `"allow"`: array di [voci di aggiornamento dei permessi](#permission-update-entries) da applicare, come l'aggiunta di una regola di consenso o la modifica della modalità di permesso della sessione |2246| `updatedPermissions` | Solo per `"allow"`: array di [voci di aggiornamento dei permessi](#permission-update-entries) da applicare, come l'aggiunta di una regola allow o la modifica della modalità di permesso della sessione |

2221| `message` | Solo per `"deny"`: comunica a Claude perché il permesso è stato negato |2247| `message` | Solo per `"deny"`: indica a Claude perché il permesso è stato negato |

2222| `interrupt` | Solo per `"deny"`: se `true`, ferma Claude |2248| `interrupt` | Solo per `"deny"`: se `true`, arresta Claude |

2223 2249 

2224Un hook che esce con codice 2 senza un oggetto `decision` lascia invariato il flusso dei permessi, e il suo stderr viene scartato. Per concedere o negare la richiesta, restituisci l'oggetto `decision`.2250Un hook che termina con codice 2 senza un oggetto `decision` lascia invariato il flusso dei permessi, e il suo stderr viene scartato. Per concedere o negare la richiesta, restituisci l'oggetto `decision`.

2225 2251 

2226```json theme={null}2252```json theme={null}

2227{2253{


2241 Voci di aggiornamento dei permessi2267 Voci di aggiornamento dei permessi

2242</h4>2268</h4>

2243 2269 

2244Il campo di output `updatedPermissions` e il [campo di input `permission_suggestions`](#permissionrequest-input) usano entrambi lo stesso array di oggetti voce. Ogni voce ha un `type` che determina i suoi altri campi e una `destination` che controlla dove viene scritta la modifica.2270Il campo di output `updatedPermissions` e il [campo di input `permission_suggestions`](#permissionrequest-input) usano entrambi lo stesso array di oggetti voce. Ogni voce ha un `type` che determina gli altri campi e una `destination` che controlla dove viene scritta la modifica.

2245 2271 

2246| `type` | Campi | Effetto |2272| `type` | Campi | Effetto |

2247| :- | :- | :- |2273| :- | :- | :- |


2253| `removeDirectories` | `directories`, `destination` | Rimuove directory di lavoro |2279| `removeDirectories` | `directories`, `destination` | Rimuove directory di lavoro |

2254 2280 

2255<Note>2281<Note>

2256 `setMode` con `bypassPermissions` ha effetto solo se hai avviato la sessione con la modalità bypass già disponibile: `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions` oppure `permissions.defaultMode: "bypassPermissions"` nelle [impostazioni utente, in `--settings` o nelle impostazioni gestite](/docs/it/settings-reference#permissions-defaultmode). Altrimenti l'aggiornamento non ha alcun effetto. L'aggiornamento non ha effetto neanche quando [`permissions.disableBypassPermissionsMode`](/docs/it/permissions#managed-settings) disabilita la modalità, o quando la sessione si avvia in [modalità limitata](/docs/it/cli-reference#cli-flags).2282 `setMode` con `bypassPermissions` ha effetto solo se hai avviato la sessione con la modalità bypass già disponibile: `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions` oppure `permissions.defaultMode: "bypassPermissions"` nelle [impostazioni utente, `--settings` o impostazioni gestite](/docs/it/settings-reference#permissions-defaultmode). Altrimenti l'aggiornamento non ha alcun effetto. L'aggiornamento non ha effetto neanche quando [`permissions.disableBypassPermissionsMode`](/docs/it/permissions#managed-settings) disabilita la modalità, o quando la sessione si avvia in [modalità con restrizioni](/docs/it/cli-reference#cli-flags).

2257 2283 

2258 `bypassPermissions` non viene mai salvato in modo persistente come `defaultMode`, indipendentemente dalla `destination`.2284 `bypassPermissions` non viene mai salvato come `defaultMode`, indipendentemente da `destination`.

2259</Note>2285</Note>

2260 2286 

2261Il campo `destination` di ogni voce determina se la modifica resta in memoria o viene salvata in modo persistente in un file di impostazioni.2287Il campo `destination` di ogni voce determina se la modifica rimane in memoria o viene salvata in un file di impostazioni.

2262 2288 

2263| `destination` | Scrive in |2289| `destination` | Scrive in |

2264| :- | :- |2290| :- | :- |

2265| `session` | solo in memoria, scartata quando la sessione termina |2291| `session` | solo in memoria, scartato al termine della sessione |

2266| `localSettings` | `.claude/settings.local.json` |2292| `localSettings` | `.claude/settings.local.json` |

2267| `projectSettings` | `.claude/settings.json` |2293| `projectSettings` | `.claude/settings.json` |

2268| `userSettings` | `~/.claude/settings.json` |2294| `userSettings` | `~/.claude/settings.json` |


2280Usa una corrispondenza più ampia quando il nome dello strumento non è il filtro giusto:2306Usa una corrispondenza più ampia quando il nome dello strumento non è il filtro giusto:

2281 2307 

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

2283* Per eseguire un hook quando un file specifico cambia su disco, indipendentemente da chi lo abbia scritto, usa [FileChanged](#filechanged). Claude Code non esegue un hook `PostToolUse` con corrispondenza `Edit|Write` quando un comando `Bash` o un processo esterno a Claude Code riscrive lo stesso file.2309* Per eseguire un hook quando un file specifico cambia su disco, indipendentemente da chi l'ha scritto, usa [FileChanged](#filechanged). Claude Code non esegue un hook `PostToolUse` che corrisponde a `Edit|Write` quando un comando `Bash` o un processo esterno a Claude Code riscrive lo stesso file.

2284 2310 

2285<h4 id="posttooluse-input">2311<h4 id="posttooluse-input">

2286 Input di PostToolUse2312 Input di PostToolUse

2287</h4>2313</h4>

2288 2314 

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

2290 2316 

2291```json theme={null}2317```json theme={null}

2292{2318{


2317 Controllo delle decisioni di PostToolUse2343 Controllo delle decisioni di PostToolUse

2318</h4>2344</h4>

2319 2345 

2320Gli hook `PostToolUse` possono fornire feedback a Claude dopo l'esecuzione dello strumento. Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, il tuo script di hook può restituire questi campi specifici dell'evento:2346Gli hook `PostToolUse` possono fornire un feedback a Claude dopo l'esecuzione dello strumento. Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, lo script del tuo hook può restituire questi campi specifici dell'evento:

2321 2347 

2322| Campo | Descrizione |2348| Campo | Descrizione |

2323| :- | :- |2349| :- | :- |

2324| `decision` | `"block"` aggiunge il `reason` accanto al risultato dello strumento. Claude vede comunque l'output originale; per sostituirlo, usa `updatedToolOutput` |2350| `decision` | `"block"` aggiunge il `reason` accanto al risultato dello strumento. Claude vede comunque l'output originale; per sostituirlo, usa `updatedToolOutput` |

2325| `reason` | Spiegazione mostrata a Claude quando `decision` è `"block"` |2351| `reason` | Spiegazione mostrata a Claude quando `decision` è `"block"` |

2326| `additionalContext` | Stringa aggiunta al contesto di Claude insieme al risultato dello strumento. Consulta [Aggiungere contesto per Claude](#add-context-for-claude) |2352| `additionalContext` | Stringa aggiunta al contesto di Claude insieme al risultato dello strumento. Vedi [Aggiungere contesto per Claude](#add-context-for-claude) |

2327| `classifierContext` | Breve nota sul risultato di questa chiamata destinata al classificatore della [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode) anziché a Claude. Consulta [Annotare un risultato per il classificatore della modalità auto](#annotate-a-result-for-the-auto-mode-classifier). Richiede Claude Code v2.1.236 o successiva |2353| `classifierContext` | Breve nota sul risultato di questa chiamata destinata al classificatore della [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode) anziché a Claude. Vedi [Annotare un risultato per il classificatore della modalità auto](#annotate-a-result-for-the-auto-mode-classifier). Richiede Claude Code v2.1.236 o successivo |

2328| `updatedToolOutput` | Sostituisce l'output dello strumento con il valore fornito prima che venga inviato a Claude. Il valore deve corrispondere alla struttura dell'output dello strumento |2354| `updatedToolOutput` | Sostituisce l'output dello strumento con il valore fornito prima che venga inviato a Claude. Il valore deve corrispondere alla struttura dell'output dello strumento |

2329| `updatedMCPToolOutput` | Sostituisce l'output solo per gli [strumenti MCP](#match-mcp-tools). Preferisci `updatedToolOutput`, che funziona per tutti gli strumenti |2355| `updatedMCPToolOutput` | Sostituisce l'output solo per gli [strumenti MCP](#match-mcp-tools). Preferisci `updatedToolOutput`, che funziona per tutti gli strumenti |

2330 2356 


2346```2372```

2347 2373 

2348<Warning>2374<Warning>

2349 `updatedToolOutput` modifica solo ciò che vede Claude. Lo strumento è già stato eseguito quando l'hook si attiva, quindi eventuali file scritti, comandi eseguiti o richieste di rete inviate hanno già avuto effetto. Anche la telemetria, come gli span degli strumenti OpenTelemetry e gli eventi di analisi, acquisisce l'output originale prima dell'esecuzione dell'hook. Per impedire o modificare una chiamata a uno strumento prima che venga eseguita, usa invece un hook [PreToolUse](#pretooluse).2375 `updatedToolOutput` cambia solo ciò che vede Claude. Lo strumento è già stato eseguito quando l'hook si attiva, quindi eventuali file scritti, comandi eseguiti o richieste di rete inviate hanno già avuto effetto. Anche la telemetria, come gli span degli strumenti OpenTelemetry e gli eventi di analisi, acquisisce l'output originale prima che l'hook venga eseguito. Per impedire o modificare una chiamata a uno strumento prima che venga eseguita, usa invece un hook [PreToolUse](#pretooluse).

2350 2376 

2351 Il valore sostitutivo deve corrispondere alla struttura dell'output dello strumento. Gli strumenti integrati restituiscono oggetti strutturati anziché semplici stringhe. Ad esempio, `Bash` restituisce un oggetto con i campi `stdout`, `stderr`, `interrupted` e `isImage`. Per gli strumenti integrati, un valore che non corrisponde allo schema di output dello strumento viene ignorato e viene usato l'output originale. L'output degli strumenti MCP viene passato senza validazione dello schema. Rimuovere dettagli di errore di cui Claude ha bisogno può indurlo a procedere sulla base di un presupposto errato.2377 Il valore sostitutivo deve corrispondere alla struttura dell'output dello strumento. Gli strumenti integrati restituiscono oggetti strutturati anziché semplici stringhe. Ad esempio, `Bash` restituisce un oggetto con i campi `stdout`, `stderr`, `interrupted` e `isImage`. Per gli strumenti integrati, un valore che non corrisponde allo schema di output dello strumento viene ignorato e viene usato l'output originale. L'output degli strumenti MCP viene passato senza validazione dello schema. Rimuovere dettagli sugli errori di cui Claude ha bisogno può portarlo a procedere sulla base di un presupposto errato.

2352</Warning>2378</Warning>

2353 2379 

2354<h4 id="annotate-a-result-for-the-auto-mode-classifier">2380<h4 id="annotate-a-result-for-the-auto-mode-classifier">

2355 Annotare un risultato per il classificatore della modalità auto2381 Annotare un risultato per il classificatore della modalità auto

2356</h4>2382</h4>

2357 2383 

2358Restituisci `classifierContext` per inviare una breve nota sul risultato della chiamata allo strumento al classificatore della [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode) anziché a Claude. Il classificatore [non riceve mai i risultati degli strumenti in sé](/docs/it/permission-modes#how-the-classifier-evaluates-actions), quindi questo campo è il modo supportato per comunicargli qualcosa su ciò che una chiamata ha restituito prima che esamini le azioni successive. Il campo richiede Claude Code v2.1.236 o successiva.2384Restituisci `classifierContext` per inviare una breve nota sul risultato della chiamata allo strumento al classificatore della [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode) anziché a Claude. Il classificatore [non riceve mai i risultati degli strumenti in sé](/docs/it/permission-modes#how-the-classifier-evaluates-actions), quindi questo campo è il modo supportato per comunicargli qualcosa su ciò che una chiamata ha restituito prima che esamini le azioni successive. Il campo richiede Claude Code v2.1.236 o successivo.

2359 2385 

2360L'esempio seguente indica al classificatore da dove proviene l'output di una query:2386L'esempio seguente indica al classificatore da dove proviene l'output di una query:

2361 2387 


2371Il peso che il classificatore attribuisce alla nota dipende da dove hai configurato l'hook:2397Il peso che il classificatore attribuisce alla nota dipende da dove hai configurato l'hook:

2372 2398 

2373* **Hook configurati in Claude Code**: per gli hook provenienti da file di impostazioni, plugin, skill e frontmatter degli agenti, il classificatore tratta la nota come contesto non verificato fornito dall'applicazione. La nota non stabilisce mai l'intento dell'utente e, se afferma che hai approvato o richiesto qualcosa, il classificatore verifica tale affermazione confrontandola con i tuoi messaggi nella conversazione2399* **Hook configurati in Claude Code**: per gli hook provenienti da file di impostazioni, plugin, skill e frontmatter degli agenti, il classificatore tratta la nota come contesto non verificato fornito dall'applicazione. La nota non stabilisce mai l'intento dell'utente e, se afferma che hai approvato o richiesto qualcosa, il classificatore verifica tale affermazione confrontandola con i tuoi messaggi nella conversazione

2374* **Callback in-process dell'Agent SDK**: quando un'applicazione che incorpora Claude Code registra l'hook come [callback del TypeScript SDK](/docs/it/agent-sdk/hooks) e restituisce la nota durante la sessione attiva, il classificatore può considerare come intento dell'utente una dichiarazione dell'utente riportata nella nota. Tale dichiarazione può soddisfare un requisito di consenso che il classificatore accetterebbe da un messaggio che invii tu, ma non rimuove mai un blocco che nemmeno un tuo messaggio potrebbe rimuovere. Dopo la ripresa di una sessione, Claude Code tratta le note ripristinate come contesto non verificato. Quando hook di entrambi i gruppi annotano la stessa chiamata, il classificatore tratta la nota combinata come non verificata2400* **Callback in-process dell'Agent SDK**: quando un'applicazione che incorpora Claude Code registra l'hook come [callback del TypeScript SDK](/docs/it/agent-sdk/hooks) e restituisce la nota durante la sessione attiva, il classificatore può considerare come intento dell'utente una dichiarazione dell'utente riportata nella nota. Tale dichiarazione può soddisfare un requisito di consenso che il classificatore accetterebbe da un messaggio inviato da te, ma non rimuove mai un blocco che neanche un tuo messaggio potrebbe rimuovere. Dopo la ripresa di una sessione, Claude Code tratta le note ripristinate come contesto non verificato. Quando hook di entrambi i gruppi annotano la stessa chiamata, il classificatore tratta la nota combinata come non verificata

2375 2401 

2376Claude Code applica questi limiti quando consegna la nota:2402Claude Code applica questi limiti quando consegna la nota:

2377 2403 

2378* **Lunghezza**: Claude Code limita le note per una singola chiamata a uno strumento a 2.000 caratteri e tronca il resto. Il limite è condiviso tra tutti gli hook che rispondono a quella chiamata2404* **Lunghezza**: Claude Code limita le note per una singola chiamata a uno strumento a 2.000 caratteri e tronca il resto. Il limite è condiviso tra tutti gli hook che rispondono a quella chiamata

2379* **Solo risposte sincrone**: Claude Code ignora il campo nella risposta di un hook che [viene eseguito in background](#run-hooks-in-the-background), perché quella risposta arriva dopo che Claude Code ha registrato il risultato dello strumento2405* **Solo risposte sincrone**: Claude Code ignora il campo nella risposta di un hook che [viene eseguito in background](#run-hooks-in-the-background), perché tale risposta arriva dopo che Claude Code ha registrato il risultato dello strumento

2380* **Chiamate che il classificatore non registra**: la trascrizione del classificatore omette le consultazioni di sola lettura, come le letture di file e le ricerche. Claude Code scarta una nota associata a una di queste chiamate2406* **Chiamate che il classificatore non registra**: la trascrizione del classificatore omette le ricerche di sola lettura, come le letture di file e le ricerche. Claude Code scarta una nota associata a una di queste chiamate

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

2382 2408 

2383<Warning>2409<Warning>

2384 Il classificatore legge il contenuto che inserisci in `classifierContext` come informazione proveniente dall'applicazione che ospita la sessione, quindi non copiarvi output di strumenti non attendibili o testo di terze parti. Limita la nota a una breve affermazione su questa singola chiamata, come un fatto sulla sua origine o una dichiarazione dell'utente in merito; non usare il campo per consegnare messaggi non correlati o un flusso di eventi.2410 Il classificatore legge il contenuto che inserisci in `classifierContext` come informazione proveniente dall'applicazione che ospita la sessione, quindi non copiarci output di strumenti non attendibili o testo di terze parti. Limita la nota a una breve affermazione su questa singola chiamata, come un fatto sulla sua origine o una dichiarazione dell'utente al riguardo; non usare il campo per consegnare messaggi non correlati o un flusso di eventi.

2385</Warning>2411</Warning>

2386 2412 

2387<h3 id="posttoolusefailure">2413<h3 id="posttoolusefailure">

2388 PostToolUseFailure2414 PostToolUseFailure

2389</h3>2415</h3>

2390 2416 

2391Viene eseguito quando uno strumento che ha iniziato l'esecuzione fallisce: lo strumento ha generato un errore, oppure uno strumento MCP ha restituito un risultato di errore. Usalo per registrare i fallimenti, inviare avvisi o fornire feedback correttivo a Claude.2417Viene eseguito quando uno strumento che ha iniziato l'esecuzione fallisce: lo strumento ha generato un errore, oppure uno strumento MCP ha restituito un risultato di errore. Usalo per registrare i fallimenti, inviare avvisi o fornire un feedback correttivo a Claude.

2392 2418 

2393Corrisponde sul nome dello strumento, con gli stessi valori di PreToolUse.2419Corrisponde sul nome dello strumento, con gli stessi valori di PreToolUse.

2394 2420 

2395<Note>2421<Note>

2396 Questo evento non si attiva per le chiamate agli strumenti rifiutate prima dell'esecuzione: un nome di strumento sconosciuto, un input che non supera la validazione dello schema o quella specifica dello strumento, oppure un rifiuto del permesso. I rifiuti per validazione vengono restituiti come risultati `tool_use_error` e avvengono prima dell'esecuzione degli hook, quindi non attivano né `PreToolUse` né `PostToolUseFailure`. I rifiuti del permesso attivano `PreToolUse` ma non questo evento; consulta [PermissionDenied](#permissiondenied).2422 Questo evento non si attiva per le chiamate agli strumenti rifiutate prima dell'esecuzione: un nome di strumento sconosciuto, un input che non supera la validazione dello schema o la validazione specifica dello strumento, oppure un permesso negato. I rifiuti per validazione vengono restituiti come risultati `tool_use_error` e avvengono prima dell'esecuzione degli hook, quindi non attivano né `PreToolUse` né `PostToolUseFailure`. I permessi negati attivano `PreToolUse` ma non questo evento; vedi [PermissionDenied](#permissiondenied).

2397</Note>2423</Note>

2398 2424 

2399<h4 id="posttoolusefailure-input">2425<h4 id="posttoolusefailure-input">


2424| Campo | Descrizione |2450| Campo | Descrizione |

2425| :- | :- |2451| :- | :- |

2426| `error` | Stringa che descrive cosa è andato storto. Il formato dipende dallo strumento che ha fallito |2452| `error` | Stringa che descrive cosa è andato storto. Il formato dipende dallo strumento che ha fallito |

2427| `is_interrupt` | Booleano facoltativo. True quando il fallimento ha raggiunto Claude Code come interruzione anziché come errore segnalato dallo strumento. Annullare uno strumento in esecuzione non attiva questo hook; il risultato dello strumento contiene invece il messaggio di interruzione |2453| `is_interrupt` | Booleano facoltativo. True quando il fallimento ha raggiunto Claude Code come interruzione anziché come errore segnalato dallo strumento. L'annullamento di uno strumento in esecuzione non attiva questo hook; il risultato dello strumento contiene invece il messaggio di interruzione |

2428| `duration_ms` | Facoltativo. Tempo di esecuzione dello strumento in millisecondi. Esclude il tempo trascorso nelle richieste di permesso e negli hook PreToolUse |2454| `duration_ms` | Facoltativo. Tempo di esecuzione dello strumento in millisecondi. Esclude il tempo trascorso nelle richieste di permesso e negli hook PreToolUse |

2429 2455 

2430La stringa `error` è generalmente lo stesso testo che Claude riceve come risultato dello strumento fallito. Il suo formato varia in base allo strumento e al tipo di fallimento. Basa il tuo hook su `tool_name`, `is_interrupt` e sulla prima riga `Exit code N`; tratta il resto della stringa come testo di visualizzazione, non come un formato stabile.2456La stringa `error` è generalmente lo stesso testo che Claude riceve come risultato dello strumento fallito. Il suo formato varia in base allo strumento e al tipo di fallimento. Basa il tuo hook su `tool_name`, `is_interrupt` e sulla prima riga `Exit code N`; tratta il resto della stringa come testo da visualizzare, non come un formato stabile.

2431 2457 

2432* Per Bash e PowerShell, un comando che è stato eseguito ed è terminato produce una prima riga `Exit code N`, seguita da qualsiasi output prodotto dal comando come un unico blocco con stdout e stderr intercalati2458* Per Bash e PowerShell, un comando che è stato eseguito ed è terminato produce una prima riga `Exit code N`, seguita dall'eventuale output prodotto dal comando come un unico blocco con stdout e stderr intercalati

2433* Un payload può anche contenere un semplice messaggio di fallimento senza riga del codice di uscita, quando Claude Code non è riuscito ad avviare il processo della shell stesso2459* Un payload può anche contenere un semplice messaggio di fallimento senza la riga del codice di uscita, quando Claude Code non è riuscito ad avviare il processo della shell stesso

2434* Claude Code tronca al centro le stringhe lunghe attorno a un marcatore `... [N characters truncated] ...` e può inserire righe proprie, come `Command timed out after 2m 0s`2460* Claude Code tronca al centro le stringhe lunghe attorno a un indicatore `... [N characters truncated] ...` e può inserire righe proprie, come `Command timed out after 2m 0s`

2435 2461 

2436<h4 id="posttoolusefailure-decision-control">2462<h4 id="posttoolusefailure-decision-control">

2437 Controllo delle decisioni di PostToolUseFailure2463 Controllo delle decisioni di PostToolUseFailure

2438</h4>2464</h4>

2439 2465 

2440Gli hook `PostToolUseFailure` possono fornire contesto a Claude dopo il fallimento di uno strumento. Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, il tuo script di hook può restituire questi campi specifici dell'evento:2466Gli hook `PostToolUseFailure` possono fornire contesto a Claude dopo il fallimento di uno strumento. Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, lo script del tuo hook può restituire questi campi specifici dell'evento:

2441 2467 

2442| Campo | Descrizione |2468| Campo | Descrizione |

2443| :- | :- |2469| :- | :- |

2444| `additionalContext` | Stringa aggiunta al contesto di Claude insieme all'errore. Consulta [Aggiungere contesto per Claude](#add-context-for-claude) |2470| `additionalContext` | Stringa aggiunta al contesto di Claude insieme all'errore. Vedi [Aggiungere contesto per Claude](#add-context-for-claude) |

2445 2471 

2446```json theme={null}2472```json theme={null}

2447{2473{


2456 PostToolBatch2482 PostToolBatch

2457</h3>2483</h3>

2458 2484 

2459Viene eseguito una volta dopo che ogni chiamata a uno strumento in un batch è stata risolta, prima che Claude Code invii la richiesta successiva al modello. `PostToolUse` si attiva una volta per strumento, il che significa che si attiva in modo concorrente quando Claude effettua chiamate agli strumenti in parallelo. `PostToolBatch` si attiva esattamente una volta con l'intero batch, quindi è il posto giusto per iniettare contesto che dipende dall'insieme di strumenti eseguiti anziché da un singolo strumento. Non esiste un matcher per questo evento.2485Viene eseguito una volta dopo che ogni chiamata a uno strumento in un batch è stata risolta, prima che Claude Code invii la richiesta successiva al modello. `PostToolUse` si attiva una volta per strumento, il che significa che si attiva in modo concorrente quando Claude effettua chiamate agli strumenti in parallelo. `PostToolBatch` si attiva esattamente una volta con l'intero batch, quindi è il punto giusto per inserire contesto che dipende dall'insieme degli strumenti eseguiti anziché da un singolo strumento. Non esiste un matcher per questo evento.

2460 2486 

2461<h4 id="posttoolbatch-input">2487<h4 id="posttoolbatch-input">

2462 Input di PostToolBatch2488 Input di PostToolBatch


2488}2514}

2489```2515```

2490 2516 

2491`tool_response` contiene lo stesso contenuto che il modello riceve nel blocco `tool_result` corrispondente. Il valore è una stringa serializzata o un array di blocchi di contenuto, esattamente come lo ha emesso lo strumento. Per `Read`, ciò significa testo con il numero di riga come prefisso anziché il contenuto grezzo del file. Le risposte possono essere grandi, quindi analizza solo i campi di cui hai bisogno.2517`tool_response` contiene lo stesso contenuto che il modello riceve nel blocco `tool_result` corrispondente. Il valore è una stringa serializzata o un array di blocchi di contenuto, esattamente come lo strumento lo ha emesso. Per `Read`, ciò significa testo preceduto dai numeri di riga anziché il contenuto grezzo del file. Le risposte possono essere grandi, quindi analizza solo i campi di cui hai bisogno.

2492 2518 

2493<Note>2519<Note>

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

2495</Note>2521</Note>

2496 2522 

2497<h4 id="posttoolbatch-decision-control">2523<h4 id="posttoolbatch-decision-control">

2498 Controllo delle decisioni di PostToolBatch2524 Controllo delle decisioni di PostToolBatch

2499</h4>2525</h4>

2500 2526 

2501Gli hook `PostToolBatch` possono iniettare contesto per Claude. Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, il tuo script di hook può restituire questi campi specifici dell'evento:2527Gli hook `PostToolBatch` possono inserire contesto per Claude. Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, lo script del tuo hook può restituire questi campi specifici dell'evento:

2502 2528 

2503| Campo | Descrizione |2529| Campo | Descrizione |

2504| :- | :- |2530| :- | :- |

2505| `additionalContext` | Stringa di contesto iniettata una volta prima della chiamata successiva al modello. Consulta [Aggiungere contesto per Claude](#add-context-for-claude) per i dettagli sulla consegna, su cosa inserirvi e su come le sessioni riprese gestiscono i valori passati |2531| `additionalContext` | Stringa di contesto inserita una volta prima della successiva chiamata al modello. Vedi [Aggiungere contesto per Claude](#add-context-for-claude) per i dettagli sulla consegna, cosa inserirvi e come le sessioni riprese gestiscono i valori passati |

2506 2532 

2507```json theme={null}2533```json theme={null}

2508{2534{


2513}2539}

2514```2540```

2515 2541 

2516Restituire `decision: "block"` o `continue: false` arresta il ciclo agentico prima della chiamata successiva al modello. Il messaggio di blocco proviene dal `reason` o dallo `stopReason` JSON, oppure da stderr con uscita 2. Lo vedi come avviso nella trascrizione, e rimane nella conversazione, quindi Claude lo vede quando la conversazione continua.2542Restituire `decision: "block"` o `continue: false` arresta il ciclo agentico prima della successiva chiamata al modello. Il messaggio di blocco proviene dal `reason` o dallo `stopReason` JSON, oppure dallo stderr con codice di uscita 2. Lo vedi come avviso nella trascrizione, e rimane nella conversazione, quindi Claude lo vede quando la conversazione continua.

2517 2543 

2518<h3 id="permissiondenied">2544<h3 id="permissiondenied">

2519 PermissionDenied2545 PermissionDenied

2520</h3>2546</h3>

2521 2547 

2522Viene eseguito quando la [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode) rifiuta una chiamata a uno strumento, anche quando la rifiuta senza un verdetto del classificatore perché [un controllo di sicurezza separato dalla modalità auto ha rifiutato la richiesta del classificatore stesso](/docs/it/errors#auto-mode-cannot-determine-the-safety-of-an-action) o la sua risposta non è stata interpretabile. Questo hook si attiva solo in modalità auto: non viene eseguito quando rifiuti manualmente una finestra di dialogo di permesso, quando un hook `PreToolUse` blocca una chiamata o quando corrisponde una regola `deny`. Usalo per registrare i rifiuti, modificare la configurazione o comunicare al modello che può riprovare la chiamata allo strumento.2548Viene eseguito quando la [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode) nega una chiamata a uno strumento, anche quando la nega senza un verdetto del classificatore perché [un controllo di sicurezza separato dalla modalità auto ha rifiutato la richiesta del classificatore stesso](/docs/it/errors#auto-mode-cannot-determine-the-safety-of-an-action) o la sua risposta non è stata analizzata correttamente. Questo hook si attiva solo in modalità auto: non viene eseguito quando neghi manualmente una finestra di dialogo dei permessi, quando un hook `PreToolUse` blocca una chiamata o quando una regola `deny` corrisponde. Usalo per registrare i rifiuti, regolare la configurazione o indicare al modello che può riprovare la chiamata allo strumento.

2523 2549 

2524Corrisponde sul nome dello strumento, con gli stessi valori di PreToolUse.2550Corrisponde sul nome dello strumento, con gli stessi valori di PreToolUse.

2525 2551 


2548 2574 

2549| Campo | Descrizione |2575| Campo | Descrizione |

2550| :- | :- |2576| :- | :- |

2551| `reason` | Il motivo del rifiuto. Per un verdetto del classificatore, nella maggior parte delle sessioni indica la regola corrispondente tra parentesi quadre, come `[Data Exfiltration]`; consulta [Esaminare i rifiuti](/docs/it/auto-mode-config#review-denials) per le altre forme. Per un [rifiuto senza verdetto](#permissiondenied-decision-control), inizia con `Auto mode could not evaluate this action and is blocking it for safety`. Per un rifiuto dovuto all'indisponibilità del modello classificatore, è il testo fisso `Classifier unavailable` |2577| `reason` | Il motivo del rifiuto. Per un verdetto del classificatore, nella maggior parte delle sessioni indica la regola corrispondente tra parentesi quadre, come `[Data Exfiltration]`; vedi [Esaminare i rifiuti](/docs/it/auto-mode-config#review-denials) per le altre forme. Per un [rifiuto senza verdetto](#permissiondenied-decision-control), inizia con `Auto mode could not evaluate this action and is blocking it for safety`. Per un rifiuto dovuto all'indisponibilità del modello del classificatore, è il testo fisso `Classifier unavailable` |

2552 2578 

2553<h4 id="permissiondenied-decision-control">2579<h4 id="permissiondenied-decision-control">

2554 Controllo delle decisioni di PermissionDenied2580 Controllo delle decisioni di PermissionDenied

2555</h4>2581</h4>

2556 2582 

2557Gli hook PermissionDenied possono comunicare al modello che può riprovare la chiamata allo strumento rifiutata. Restituisci un oggetto JSON con `hookSpecificOutput.retry` impostato su `true`:2583Gli hook PermissionDenied possono indicare al modello che può riprovare la chiamata allo strumento negata. Restituisci un oggetto JSON con `hookSpecificOutput.retry` impostato su `true`:

2558 2584 

2559```json theme={null}2585```json theme={null}

2560{2586{


2565}2591}

2566```2592```

2567 2593 

2568Quando `retry` è `true`, Claude Code aggiunge un messaggio alla conversazione che comunica al modello che può riprovare la chiamata allo strumento. Claude Code non annulla il rifiuto stesso. Se il tuo hook non restituisce JSON, o restituisce `retry: false`, il rifiuto resta valido e il modello riceve il messaggio di rifiuto originale.2594Quando `retry` è `true`, Claude Code aggiunge alla conversazione un messaggio che indica al modello che può riprovare la chiamata allo strumento. Claude Code non annulla il rifiuto in sé. Se il tuo hook non restituisce JSON, o restituisce `retry: false`, il rifiuto resta valido e il modello riceve il messaggio di rifiuto originale.

2569 2595 

2570Claude Code ignora `retry: true` quando il classificatore non ha prodotto [alcun verdetto sull'azione](/docs/it/errors#auto-mode-cannot-determine-the-safety-of-an-action): la sua risposta non è stata interpretabile, oppure un controllo di sicurezza separato dalla modalità auto ha rifiutato la richiesta del classificatore stesso. Per questi rifiuti, Claude Code indica già al modello nel messaggio di rifiuto se riprovare più tardi o andare avanti.2596Claude Code ignora `retry: true` quando il classificatore non ha prodotto [alcun verdetto sull'azione](/docs/it/errors#auto-mode-cannot-determine-the-safety-of-an-action): la sua risposta non è stata analizzata correttamente, oppure un controllo di sicurezza separato dalla modalità auto ha rifiutato la richiesta del classificatore stesso. Per questi rifiuti, Claude Code indica già al modello nel messaggio di rifiuto se riprovare più tardi o andare avanti.

2571 2597 

2572<h3 id="notification">2598<h3 id="notification">

2573 Notification2599 Notification


2575 2601 

2576Viene eseguito quando Claude Code invia notifiche. Corrisponde sul tipo di notifica. Ometti il matcher per eseguire gli hook per tutti i tipi di notifica.2602Viene eseguito quando Claude Code invia notifiche. Corrisponde sul tipo di notifica. Ometti il matcher per eseguire gli hook per tutti i tipi di notifica.

2577 2603 

2578Ricevi questi eventi di hook anche con le notifiche desktop disattivate: l'impostazione `preferredNotifChannel`, incluso `notifications_disabled`, cambia solo il modo in cui vieni avvisato, non se il tuo hook viene eseguito.2604Ricevi questi eventi hook anche con le notifiche desktop disattivate: l'impostazione `preferredNotifChannel`, incluso `notifications_disabled`, cambia solo il modo in cui vieni avvisato, non se il tuo hook viene eseguito.

2579 2605 

2580| Matcher | Quando si attiva |2606| Matcher | Quando si attiva |

2581| :- | :- |2607| :- | :- |

2582| `permission_prompt` | Claude ha bisogno che tu approvi l'uso di uno strumento o la [richiesta di rete](/docs/it/sandboxing#network-isolation) di un comando in sandbox, e la richiesta è in attesa da circa sei secondi |2608| `permission_prompt` | Claude ha bisogno che tu approvi l'uso di uno strumento o la [richiesta di rete](/docs/it/sandboxing#network-isolation) di un comando in sandbox, e la richiesta è in attesa da circa sei secondi |

2583| `idle_prompt` | Claude ha finito di rispondere circa 60 secondi fa e da allora non hai digitato nulla |2609| `idle_prompt` | Claude ha finito di rispondere circa 60 secondi fa e da allora non hai digitato nulla |

2584| `auth_success` | L'autenticazione viene completata |2610| `auth_success` | L'autenticazione viene completata |

2585| `elicitation_dialog` | Un server MCP apre un modulo di elicitazione e non digiti da circa sei secondi |2611| `elicitation_dialog` | Un server MCP apre un modulo di elicitation e non digiti da circa sei secondi |

2586| `elicitation_url_dialog` | Un server MCP ti chiede di aprire un URL nel browser e non digiti da circa sei secondi |2612| `elicitation_url_dialog` | Un server MCP ti chiede di aprire un URL nel browser e non digiti da circa sei secondi |

2587| `elicitation_complete` | Un server MCP segnala che un'[elicitazione in modalità URL](#elicitation-input) è completata |2613| `elicitation_complete` | Un server MCP segnala che un'[elicitation in modalità URL](#elicitation-input) è completata |

2588| `elicitation_response` | Una risposta di elicitazione MCP viene inviata al server |2614| `elicitation_response` | Una risposta di elicitation MCP viene inviata al server |

2589| `agent_needs_input` | Una sessione in background inizia ad attendere un tuo input mentre la [vista agenti](/docs/it/agent-view) è aperta in un terminale. Si attiva anche quando una sessione del terminale ti mostra una [domanda di configurazione del terminale di un membro di un team di agenti](/docs/it/agent-teams#choose-a-display-mode) o l'avviso della modalità auto sugli [addebiti per le richieste del classificatore](/docs/it/auto-mode-classifier-billing) e non digiti da circa sei secondi |2615| `agent_needs_input` | Una sessione in background inizia ad attendere un tuo input mentre la [vista agenti](/docs/it/agent-view) è aperta in un terminale. Si attiva anche quando una sessione del terminale ti mostra la [domanda di configurazione del terminale di un compagno di un team di agenti](/docs/it/agent-teams#choose-a-display-mode) o l'avviso della modalità auto sugli [addebiti per le richieste del classificatore](/docs/it/auto-mode-classifier-billing) e non digiti da circa sei secondi |

2590| `agent_completed` | Una sessione in background termina o fallisce. Si attiva solo mentre la [vista agenti](/docs/it/agent-view) è aperta in un terminale |2616| `agent_completed` | Una sessione in background termina o fallisce. Si attiva solo mentre la [vista agenti](/docs/it/agent-view) è aperta in un terminale |

2591| `quota_auto_resume_fired` | Claude Code riprende la tua attività dopo che un limite di utilizzo di claude.ai l'aveva messa in pausa: al momento del ripristino, oppure prima quando qualcosa che fai in Claude Code durante l'attesa, come aggiungere crediti di utilizzo, passare a un piano superiore o cambiare modello, rende di nuovo disponibile l'utilizzo, con l'[eccezione relativa all'impostazione del modello](/docs/it/interactive-mode#wait-for-a-usage-limit-to-reset) |2617| `quota_auto_resume_fired` | Claude Code prosegue il tuo task dopo che un limite di utilizzo di claude.ai lo aveva messo in pausa: al ripristino, o prima quando qualcosa che fai in Claude Code durante l'attesa, come aggiungere crediti di utilizzo, eseguire l'upgrade del piano o cambiare modello, rende di nuovo disponibile l'utilizzo, con l'[eccezione relativa all'impostazione del modello](/docs/it/interactive-mode#wait-for-a-usage-limit-to-reset) |

2592| `quota_auto_resume_stale` | Un limite di utilizzo di claude.ai è stato ripristinato mentre il tuo computer era in sospensione per più di circa 30 minuti. Claude Code attende che tu prema `Enter` invece di continuare. Dopo una sospensione più breve continua e attiva invece `quota_auto_resume_fired` |2618| `quota_auto_resume_stale` | Un limite di utilizzo di claude.ai si è ripristinato mentre il tuo computer era in stop per più di circa 30 minuti. Claude Code attende che tu prema `Enter` invece di proseguire. Dopo uno stop più breve prosegue e attiva invece `quota_auto_resume_fired` |

2593| `quota_auto_resume_disabled` | Claude Code termina l'attesa per un limite di utilizzo di claude.ai senza riprendere la tua attività: [`autoContinueAtUsageLimit`](/docs/it/settings-reference#autocontinueatusagelimit) è stato disattivato o il ripristino si è spostato a più di 24 ore di distanza durante un'attesa avviata da Claude Code in autonomia, l'attività ripresa ha continuato a raggiungere il limite, oppure la ripresa è stata bloccata prima di raggiungere il modello. Non si attiva quando premi `Esc` o `Ctrl+C`, o scegli **Don't continue automatically** |2619| `quota_auto_resume_disabled` | Claude Code termina l'attesa per un limite di utilizzo di claude.ai senza proseguire il tuo task: [`autoContinueAtUsageLimit`](/docs/it/settings-reference#autocontinueatusagelimit) è stato disattivato o il ripristino si è spostato di oltre 24 ore durante un'attesa avviata autonomamente da Claude Code, il task proseguito ha continuato a raggiungere il limite, oppure la prosecuzione è stata bloccata prima di raggiungere il modello. Non si attiva quando premi `Esc` o `Ctrl+C`, o scegli **Don't continue automatically** |

2594 2620 

2595I tipi `quota_auto_resume_fired`, `quota_auto_resume_stale` e `quota_auto_resume_disabled` richiedono Claude Code v2.1.234 o successiva.2621I tipi `quota_auto_resume_fired`, `quota_auto_resume_stale` e `quota_auto_resume_disabled` richiedono Claude Code v2.1.234 o successivo.

2596 2622 

2597Nelle sessioni del terminale, `permission_prompt` per la richiesta di rete di un comando in sandbox richiede Claude Code v2.1.246 o successiva.2623Nelle sessioni del terminale, `permission_prompt` per la richiesta di rete di un comando in sandbox richiede Claude Code v2.1.246 o successivo.

2598 2624 

2599`agent_needs_input` per la domanda di configurazione del terminale di un membro del team richiede Claude Code v2.1.248 o successiva.2625`agent_needs_input` per la domanda di configurazione del terminale di un compagno di team richiede Claude Code v2.1.248 o successivo.

2600 2626 

2601<Note>2627<Note>

2602 I tipi `permission_prompt`, `idle_prompt`, `elicitation_dialog` ed `elicitation_url_dialog` condividono la tempistica con le notifiche desktop, quindi nelle sessioni del terminale li vedi solo quando sembri essere lontano dal terminale:2628 I tipi `permission_prompt`, `idle_prompt`, `elicitation_dialog` e `elicitation_url_dialog` condividono la tempistica con le notifiche desktop, quindi nelle sessioni del terminale li vedi solo quando sembri lontano dal terminale:

2603 2629 

2604 * Aspettati `permission_prompt` quando non digiti da circa sei secondi. Il timer parte quando appare la richiesta di permesso, e ogni pressione di tasto lo rinvia. Per eseguire un hook immediatamente quando Claude chiede il permesso di usare uno strumento, usa invece [PermissionRequest](#permissionrequest).2630 * Aspettati `permission_prompt` una volta che non digiti da circa sei secondi. Il timer parte quando compare la richiesta di permesso e ogni pressione di tasto lo rinvia. Per eseguire un hook immediatamente quando Claude chiede il permesso di usare uno strumento, usa invece [PermissionRequest](#permissionrequest).

2605 * Aspettati `idle_prompt` circa 60 secondi dopo che Claude ha finito di rispondere, e solo se da allora non hai digitato e nessun agente in background, come un [subagent](/docs/it/sub-agents) in background, è ancora in esecuzione. Claude Code non invia `idle_prompt` mentre attende il ripristino di un limite di utilizzo di claude.ai. Quando l'attesa termina da sola, si attiva invece uno dei tipi `quota_auto_resume_*`.2631 * Aspettati `idle_prompt` circa 60 secondi dopo che Claude ha finito di rispondere, e solo se da allora non hai digitato nulla e nessun agente in background, come un [subagent](/docs/it/sub-agents) in background, è ancora in esecuzione. Claude Code non invia `idle_prompt` mentre attende il ripristino di un limite di utilizzo di claude.ai. Quando l'attesa termina da sola, si attiva invece uno dei tipi `quota_auto_resume_*`.

2606 * Aspettati `elicitation_dialog` per un modulo di elicitazione, o `elicitation_url_dialog` per una richiesta di URL nel browser, quando non digiti da circa sei secondi. Entrambi condividono la stessa soglia di sei secondi di `permission_prompt`: il timer parte quando appare la finestra di dialogo, e ogni pressione di tasto lo rinvia.2632 * Aspettati `elicitation_dialog` per un modulo di elicitation, o `elicitation_url_dialog` per una richiesta di URL nel browser, una volta che non digiti da circa sei secondi. Entrambi condividono la stessa soglia di sei secondi di `permission_prompt`: il timer parte quando compare la finestra di dialogo e ogni pressione di tasto lo rinvia.

2607 2633 

2608 Una richiesta di permesso o un'elicitazione che arriva mentre un'altra finestra di dialogo è sullo schermo mantiene la stessa soglia di sei secondi, calcolata dal momento in cui arriva la richiesta. La sua notifica può raggiungerti mentre la richiesta è ancora in attesa dietro la finestra di dialogo aperta.2634 Una richiesta di permesso o un'elicitation che arriva mentre sullo schermo è presente un'altra finestra di dialogo mantiene la stessa soglia di sei secondi, calcolata dal momento in cui arriva la richiesta. La sua notifica può raggiungerti mentre la richiesta è ancora in attesa dietro la finestra di dialogo aperta.

2609</Note>2635</Note>

2610 2636 

2611Claude Code calcola la tempistica di `permission_prompt` in modo diverso nelle sessioni in cui invia le richieste di permesso alla [callback `canUseTool`](/docs/it/agent-sdk/user-input) dell'Agent SDK, che è il modo in cui Claude Desktop e l'estensione VS Code ospitano Claude Code:2637Claude Code gestisce la tempistica di `permission_prompt` in modo diverso nelle sessioni in cui invia le richieste di permesso alla [callback `canUseTool`](/docs/it/agent-sdk/user-input) dell'Agent SDK, che è il modo in cui Claude Desktop e l'estensione VS Code ospitano Claude Code:

2612 2638 

2613* Aspettati `permission_prompt` circa sei secondi dopo che Claude chiede il permesso. Claude Code non lo rinvia mentre digiti.2639* Aspettati `permission_prompt` circa sei secondi dopo che Claude chiede il permesso. Claude Code non lo rinvia mentre digiti.

2614* Se tu o un hook [PermissionRequest](#permissionrequest) rispondete prima, Claude Code non esegue `permission_prompt`.2640* Se tu o un hook [PermissionRequest](#permissionrequest) rispondete prima, Claude Code non esegue `permission_prompt`.


2649 Input di Notification2675 Input di Notification

2650</h4>2676</h4>

2651 2677 

2652Oltre ai [campi di input comuni](#common-input-fields), gli hook Notification ricevono `message` con il testo della notifica, un `title` facoltativo e `notification_type`, che indica quale tipo si è attivato.2678Oltre ai [campi di input comuni](#common-input-fields), gli hook Notification ricevono `message` con il testo della notifica, un `title` facoltativo e `notification_type` che indica quale tipo si è attivato.

2653 2679 

2654```json theme={null}2680```json theme={null}

2655{2681{


2669 SubagentStart2695 SubagentStart

2670</h3>2696</h3>

2671 2697 

2672Viene eseguito quando Claude genera un subagent con lo strumento Agent, quando Claude [riprende un subagent](/docs/it/sub-agents#resume-subagents), e ogni volta che un membro in-process di un [team di agenti](/docs/it/agent-teams) gestisce un nuovo messaggio. Supporta i matcher per filtrare in base al nome del tipo di agente. Per gli agenti integrati, è il nome dell'agente, come `general-purpose`, `Explore` o `Plan`. Per i [subagent personalizzati](/docs/it/sub-agents), è il campo `name` del frontmatter dell'agente, non il nome del file.2698Viene eseguito quando Claude avvia un subagent con lo strumento Agent, quando Claude [riprende un subagent](/docs/it/sub-agents#resume-subagents) e ogni volta che un compagno in-process di un [team di agenti](/docs/it/agent-teams) gestisce un nuovo messaggio. Supporta i matcher per filtrare in base al nome del tipo di agente. Per gli agenti integrati, è il nome dell'agente come `general-purpose`, `Explore` o `Plan`. Per i [subagent personalizzati](/docs/it/sub-agents), è il campo `name` del frontmatter dell'agente, non il nome del file.

2673 2699 

2674Per i subagent forniti da un [plugin](/docs/it/plugins/overview), il tipo di agente è l'identificatore con ambito del plugin, come `my-plugin:reviewer`, non il semplice nome del frontmatter. I due punti collocano un nome con ambito del plugin sul percorso delle espressioni regolari, quindi ancora il matcher con `^` e `$` per una corrispondenza esatta: `^my-plugin:reviewer$`.2700Per i subagent forniti da un [plugin](/docs/it/plugins/overview), il tipo di agente è l'identificatore con ambito del plugin, come `my-plugin:reviewer`, non il semplice nome del frontmatter. I due punti fanno sì che un nome con ambito del plugin venga trattato come espressione regolare, quindi ancora il matcher con `^` e `$` per una corrispondenza esatta: `^my-plugin:reviewer$`.

2675 2701 

2676<h4 id="subagentstart-input">2702<h4 id="subagentstart-input">

2677 Input di SubagentStart2703 Input di SubagentStart


2690}2716}

2691```2717```

2692 2718 

2693Gli hook SubagentStart non possono bloccare la creazione del subagent, ma possono iniettare contesto nel subagent. Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, puoi restituire:2719Gli hook SubagentStart non possono bloccare la creazione del subagent, ma possono inserire contesto nel subagent. Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, puoi restituire:

2694 2720 

2695| Campo | Descrizione |2721| Campo | Descrizione |

2696| :- | :- |2722| :- | :- |

2697| `additionalContext` | Stringa aggiunta al contesto del subagent all'inizio della sua conversazione, prima del suo primo prompt. Consulta [Aggiungere contesto per Claude](#add-context-for-claude) |2723| `additionalContext` | Stringa aggiunta al contesto del subagent all'inizio della sua conversazione, prima del suo primo prompt. Vedi [Aggiungere contesto per Claude](#add-context-for-claude) |

2698 2724 

2699```json theme={null}2725```json theme={null}

2700{2726{


2705}2731}

2706```2732```

2707 2733 

2708Quando l'hook viene eseguito di nuovo per lo stesso subagent, Claude Code inietta il contesto restituito solo quando il contesto del subagent non contiene già la copia di un'esecuzione precedente. La copia iniettata all'avvio rimane al suo posto, lasciando intatta la [cache del prompt](/docs/it/prompt-caching#subagents-and-the-cache) del subagent. Dopo che la [compattazione automatica](/docs/it/sub-agents#auto-compaction) scarta quella copia, Claude Code inietta di nuovo il contesto dell'esecuzione successiva.2734Quando l'hook viene eseguito di nuovo per lo stesso subagent, Claude Code inserisce il contesto restituito solo se il contesto del subagent non contiene già la copia di un'esecuzione precedente. La copia inserita all'avvio resta al suo posto, lasciando intatta la [prompt cache](/docs/it/prompt-caching#subagents-and-the-cache) del subagent. Dopo che la [compattazione automatica](/docs/it/sub-agents#auto-compaction) scarta quella copia, Claude Code inserisce di nuovo il contesto dell'esecuzione successiva.

2709 2735 

2710<h3 id="subagentstop">2736<h3 id="subagentstop">

2711 SubagentStop2737 SubagentStop


2717 Input di SubagentStop2743 Input di SubagentStop

2718</h4>2744</h4>

2719 2745 

2720Oltre ai [campi di input comuni](#common-input-fields), gli hook SubagentStop ricevono `stop_hook_active`, `agent_id`, `agent_type`, `agent_transcript_path` e `last_assistant_message`. Il campo `agent_type` è il valore usato per il filtraggio del matcher. Il `transcript_path` è la trascrizione della sessione principale, mentre `agent_transcript_path` è la trascrizione del subagent stesso, archiviata in una cartella annidata `subagents/`. Il campo `last_assistant_message` contiene il contenuto testuale della risposta finale del subagent, così gli hook possono accedervi senza analizzare il file della trascrizione.2746Oltre ai [campi di input comuni](#common-input-fields), gli hook SubagentStop ricevono `stop_hook_active`, `agent_id`, `agent_type`, `agent_transcript_path` e `last_assistant_message`. Il campo `agent_type` è il valore usato per il filtraggio del matcher. Il `transcript_path` è la trascrizione della sessione principale, mentre `agent_transcript_path` è la trascrizione del subagent stesso, archiviata in una cartella annidata `subagents/`. Il campo `last_assistant_message` contiene il testo della risposta finale del subagent, così gli hook possono accedervi senza analizzare il file della trascrizione.

2721 2747 

2722Non tutti gli eventi SubagentStop provengono da un subagent generato da Claude. Claude Code esegue anche agenti interni per alcune delle sue funzionalità, come i [suggerimenti di prompt](/docs/it/interactive-mode#prompt-suggestions) e le [domande laterali `/btw`](/docs/it/interactive-mode#side-questions-with-%2Fbtw), e SubagentStop si attiva anche quando uno di questi termina. Per questi eventi, `agent_type` è il nome dell'agente con cui viene eseguita la sessione stessa, come quello impostato con [`--agent`](/docs/it/cli-reference#cli-flags) o con l'[impostazione `agent`](/docs/it/settings-reference#agent), ed è una stringa vuota quando la sessione viene eseguita senza.2748Non tutti gli eventi SubagentStop provengono da un subagent avviato da Claude. Claude Code esegue anche agenti interni per alcune delle proprie funzionalità, come i [suggerimenti di prompt](/docs/it/interactive-mode#prompt-suggestions) e le [domande laterali con `/btw`](/docs/it/interactive-mode#side-questions-with-%2Fbtw), e SubagentStop si attiva anche quando uno di questi termina. Per questi eventi, `agent_type` è il nome dell'agente con cui viene eseguita la sessione stessa, come quello impostato con [`--agent`](/docs/it/cli-reference#cli-flags) o con l'[impostazione `agent`](/docs/it/settings-reference#agent), ed è una stringa vuota quando la sessione viene eseguita senza di esso.

2723 2749 

2724Un `matcher` che nomina tipi di agente non corrisponde a un `agent_type` vuoto. Un hook il cui matcher è omesso, `""` o `"*"`, oppure è un'espressione regolare che corrisponde a una stringa vuota, viene eseguito anche per gli eventi con un `agent_type` vuoto.2750Un `matcher` che specifica tipi di agente non corrisponde a un `agent_type` vuoto. Un hook il cui matcher è omesso, `""` o `"*"`, oppure è un'espressione regolare che corrisponde a una stringa vuota, viene eseguito anche per gli eventi con un `agent_type` vuoto.

2725 2751 

2726Su Claude Code v2.1.271 o successiva, un subagent eseguito con lo strumento [`SubagentHandback`](/docs/it/tools-reference) consegna il proprio resoconto tramite quello strumento prima di fermarsi. Il campo `last_assistant_message` contiene quindi il testo conclusivo del subagent, se presente, che non è il resoconto consegnato. Il resoconto è l'input `message` di quella chiamata, che un hook `PreToolUse` o `PostToolUse` con corrispondenza su `SubagentHandback` riceve come `tool_input.message`.2752Su Claude Code v2.1.271 o successivo, un subagent eseguito con lo strumento [`SubagentHandback`](/docs/it/tools-reference) consegna il proprio report tramite quello strumento prima di arrestarsi. Il campo `last_assistant_message` contiene quindi l'eventuale testo conclusivo del subagent, che non è il report consegnato. Il report è l'input `message` di quella chiamata, che un hook `PreToolUse` o `PostToolUse` con corrispondenza su `SubagentHandback` riceve come `tool_input.message`.

2727 2753 

2728Gli hook SubagentStop ricevono anche gli array `background_tasks` e `session_crons` descritti in [Input di Stop](#stop-input). Entrambi gli array hanno come ambito la sessione padre, non il subagent.2754Gli hook SubagentStop ricevono anche gli array `background_tasks` e `session_crons` descritti in [Input di Stop](#stop-input). Entrambi gli array hanno come ambito la sessione padre, non il subagent.

2729 2755 


2744}2770}

2745```2771```

2746 2772 

2747Gli hook SubagentStop usano lo stesso formato di controllo delle decisioni degli [hook Stop](#stop-decision-control), incluso `hookSpecificOutput.additionalContext` con `hookEventName` impostato su `"SubagentStop"`, per un feedback non di errore che mantiene in esecuzione il subagent. Restituire `decision: "block"` con un `reason` mantiene in esecuzione il subagent e consegna `reason` al subagent come sua istruzione successiva. Un hook che blocca uscendo con 2 consegna il suo messaggio stderr nello stesso modo. Per iniettare contesto nella sessione padre dopo che un subagent ha restituito il controllo, usa invece un hook [`PostToolUse`](#posttooluse) sullo strumento `Agent`.2773Gli hook SubagentStop usano lo stesso formato di controllo delle decisioni degli [hook Stop](#stop-decision-control), incluso `hookSpecificOutput.additionalContext` con `hookEventName` impostato su `"SubagentStop"`, per un feedback non di errore che mantiene in esecuzione il subagent. Restituire `decision: "block"` con un `reason` mantiene in esecuzione il subagent e consegna `reason` al subagent come sua istruzione successiva. Un hook che blocca terminando con codice 2 consegna il proprio messaggio stderr allo stesso modo. Per inserire contesto nella sessione padre dopo che un subagent ha restituito il risultato, usa invece un hook [`PostToolUse`](#posttooluse) sullo strumento `Agent`.

2748 2774 

2749<h3 id="taskcreated">2775<h3 id="taskcreated">

2750 TaskCreated2776 TaskCreated

2751</h3>2777</h3>

2752 2778 

2753Viene eseguito quando un'attività viene creata tramite lo strumento `TaskCreate`. Usalo per imporre convenzioni di denominazione, richiedere descrizioni delle attività o impedire la creazione di determinate attività. In una [sessione senza gli strumenti Task](/docs/it/tools-reference#task-tool-availability), questo evento non si attiva.2779Viene eseguito quando un task viene creato tramite lo strumento `TaskCreate`. Usalo per imporre convenzioni di denominazione, richiedere descrizioni dei task o impedire la creazione di determinati task. In una [sessione senza gli strumenti Task](/docs/it/tools-reference#task-tool-availability), questo evento non si attiva.

2754 2780 

2755Gli hook TaskCreated non supportano i matcher e si attivano a ogni occorrenza.2781Gli hook TaskCreated non supportano i matcher e si attivano a ogni occorrenza.

2756 2782 


2776 2802 

2777| Campo | Descrizione |2803| Campo | Descrizione |

2778| :- | :- |2804| :- | :- |

2779| `task_id` | Identificatore dell'attività in fase di creazione |2805| `task_id` | Identificatore del task in fase di creazione |

2780| `task_subject` | Titolo dell'attività |2806| `task_subject` | Titolo del task |

2781| `task_description` | Descrizione dettagliata dell'attività. Può essere assente |2807| `task_description` | Descrizione dettagliata del task. Può essere assente |

2782| `teammate_name` | Nome del membro del team che crea l'attività. Può essere assente |2808| `teammate_name` | Nome del compagno di team che crea il task. Può essere assente |

2783| `team_name` | Deprecato. Nome del team derivato dalla sessione; verrà rimosso in una versione futura |2809| `team_name` | Deprecato. Nome del team derivato dalla sessione; verrà rimosso in una versione futura |

2784| `agent_id` | In questo evento, il [campo di input comune](#common-input-fields) identifica il subagent o il [membro del team in-process](/docs/it/agent-teams#choose-a-display-mode) che crea l'attività. Può essere assente. Richiede Claude Code v2.1.290 o successiva |2810| `agent_id` | In questo evento, il [campo di input comune](#common-input-fields) identifica il subagent o il [compagno di team in-process](/docs/it/agent-teams#choose-a-display-mode) che crea il task. Può essere assente. Richiede Claude Code v2.1.290 o successivo |

2785 2811 

2786<h4 id="taskcreated-decision-control">2812<h4 id="taskcreated-decision-control">

2787 Controllo delle decisioni di TaskCreated2813 Controllo delle decisioni di TaskCreated


2792* **Codice di uscita 2**: Claude Code restituisce il testo di stderr come messaggio.2818* **Codice di uscita 2**: Claude Code restituisce il testo di stderr come messaggio.

2793* **JSON `{"decision": "block", "reason": "..."}`**: Claude Code restituisce `reason` come messaggio.2819* **JSON `{"decision": "block", "reason": "..."}`**: Claude Code restituisce `reason` come messaggio.

2794 2820 

2795Questo esempio blocca le attività i cui oggetti non seguono il formato richiesto:2821Questo esempio blocca i task i cui oggetti non seguono il formato richiesto:

2796 2822 

2797```bash theme={null}2823```bash theme={null}

2798#!/bin/bash2824#!/bin/bash


2811 TaskCompleted2837 TaskCompleted

2812</h3>2838</h3>

2813 2839 

2814Viene eseguito quando un'attività viene contrassegnata come completata. Si attiva in due situazioni: quando un agente qualsiasi contrassegna esplicitamente un'attività come completata tramite lo strumento TaskUpdate, oppure quando un membro di un [team di agenti](/docs/it/agent-teams) termina il proprio turno con attività in corso. Usalo per imporre criteri di completamento, come il superamento dei test o dei controlli lint, prima che un'attività possa essere chiusa.2840Viene eseguito quando un task sta per essere contrassegnato come completato. Si attiva in due situazioni: quando un qualsiasi agente contrassegna esplicitamente un task come completato tramite lo strumento TaskUpdate, oppure quando un compagno di un [team di agenti](/docs/it/agent-teams) termina il proprio turno con task in corso. Usalo per imporre criteri di completamento, come il superamento dei test o dei controlli lint, prima che un task possa essere chiuso.

2815 2841 

2816Gli hook TaskCompleted non supportano i matcher e si attivano a ogni occorrenza.2842Gli hook TaskCompleted non supportano i matcher e si attivano a ogni occorrenza.

2817 2843 


2838 2864 

2839| Campo | Descrizione |2865| Campo | Descrizione |

2840| :- | :- |2866| :- | :- |

2841| `task_id` | Identificatore dell'attività in fase di completamento |2867| `task_id` | Identificatore del task in fase di completamento |

2842| `task_subject` | Titolo dell'attività |2868| `task_subject` | Titolo del task |

2843| `task_description` | Descrizione dettagliata dell'attività. Può essere assente |2869| `task_description` | Descrizione dettagliata del task. Può essere assente |

2844| `teammate_name` | Nome del membro del team che completa l'attività. Può essere assente |2870| `teammate_name` | Nome del compagno di team che completa il task. Può essere assente |

2845| `team_name` | Deprecato. Nome del team derivato dalla sessione; verrà rimosso in una versione futura |2871| `team_name` | Deprecato. Nome del team derivato dalla sessione; verrà rimosso in una versione futura |

2846| `agent_id` | In questo evento, il [campo di input comune](#common-input-fields) identifica il subagent o il [membro del team in-process](/docs/it/agent-teams#choose-a-display-mode) che completa l'attività. Può essere assente. Richiede Claude Code v2.1.290 o successiva |2872| `agent_id` | In questo evento, il [campo di input comune](#common-input-fields) identifica il subagent o il [compagno di team in-process](/docs/it/agent-teams#choose-a-display-mode) che completa il task. Può essere assente. Richiede Claude Code v2.1.290 o successivo |

2847 2873 

2848<h4 id="taskcompleted-decision-control">2874<h4 id="taskcompleted-decision-control">

2849 Controllo delle decisioni di TaskCompleted2875 Controllo delle decisioni di TaskCompleted

2850</h4>2876</h4>

2851 2877 

2852Gli hook TaskCompleted supportano due modi per controllare il completamento delle attività:2878Gli hook TaskCompleted supportano due modi per controllare il completamento dei task:

2853 2879 

2854* **Codice di uscita 2**: l'attività non viene contrassegnata come completata e il messaggio di stderr viene restituito al modello come feedback.2880* **Codice di uscita 2**: il task non viene contrassegnato come completato e il messaggio stderr viene restituito al modello come feedback.

2855* **JSON `{"continue": false, "stopReason": "..."}`**: quando l'evento è stato attivato da un membro del team che termina il proprio turno, arresta completamente il membro del team, in modo analogo al comportamento dell'hook `Stop`. Lo `stopReason` viene mostrato all'utente. Quando l'evento è stato attivato dallo strumento `TaskUpdate`, Claude Code ignora `continue: false`; il codice di uscita 2 blocca comunque il completamento.2881* **JSON `{"continue": false, "stopReason": "..."}`**: quando l'evento è stato attivato da un compagno di team che termina il proprio turno, arresta completamente il compagno di team, in modo analogo al comportamento dell'hook `Stop`. Lo `stopReason` viene mostrato all'utente. Quando l'evento è stato attivato dallo strumento `TaskUpdate`, Claude Code ignora `continue: false`; il codice di uscita 2 blocca comunque il completamento.

2856 2882 

2857Questo esempio esegue i test e blocca il completamento dell'attività se falliscono:2883Questo esempio esegue i test e blocca il completamento del task se falliscono:

2858 2884 

2859```bash theme={null}2885```bash theme={null}

2860#!/bin/bash2886#!/bin/bash


2875</h3>2901</h3>

2876 2902 

2877Viene eseguito quando l'agente principale di Claude Code ha finito di rispondere. Non viene eseguito se2903Viene eseguito quando l'agente principale di Claude Code ha finito di rispondere. Non viene eseguito se

2878l'arresto è avvenuto a causa di un'interruzione da parte dell'utente. Gli errori API attivano invece2904l'arresto è avvenuto a causa di un'interruzione da parte dell'utente. Gli errori API attivano

2879[StopFailure](#stopfailure).2905invece [StopFailure](#stopfailure).

2880 2906 

2881<Tip>2907<Tip>

2882 Il comando [`/goal`](/docs/it/goal) è una scorciatoia integrata per un hook Stop basato su prompt con ambito di sessione. Usalo quando vuoi che Claude continui a lavorare verso una condizione senza scrivere la configurazione dell'hook.2908 Il comando [`/goal`](/docs/it/goal) è una scorciatoia integrata per un hook Stop basato su prompt con ambito di sessione. Usalo quando vuoi che Claude continui a lavorare verso una condizione senza scrivere la configurazione dell'hook.


2886 Input di Stop2912 Input di Stop

2887</h4>2913</h4>

2888 2914 

2889Oltre ai [campi di input comuni](#common-input-fields), gli hook Stop ricevono `stop_hook_active`, `last_assistant_message`, `background_tasks` e `session_crons`. Il campo `stop_hook_active` è `true` quando Claude Code sta già continuando a causa di un hook stop. Controlla questo valore o elabora la trascrizione per evitare di bloccare su una condizione che non si risolverà mai.2915Oltre ai [campi di input comuni](#common-input-fields), gli hook Stop ricevono `stop_hook_active`, `last_assistant_message`, `background_tasks` e `session_crons`. Il campo `stop_hook_active` è `true` quando Claude Code sta già proseguendo a seguito di uno stop hook. Controlla questo valore o elabora la trascrizione per evitare di bloccare su una condizione che non si risolverà mai.

2890 2916 

2891Claude Code applica un limite di 8 continuazioni consecutive: dopo che gli hook stop hanno fatto continuare il turno otto volte di seguito, Claude Code sovrascrive il blocco successivo e termina il turno. Il conteggio delle continuazioni consecutive si azzera ogni volta che Claude chiama uno strumento. Per aumentare il limite, imposta [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/it/env-vars).2917Claude Code applica un limite di 8 prosecuzioni consecutive: dopo che gli stop hook hanno fatto proseguire il turno otto volte di seguito, Claude Code sovrascrive il blocco successivo e termina il turno. Il conteggio delle prosecuzioni consecutive si azzera ogni volta che Claude chiama uno strumento. Per aumentare il limite, imposta [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/it/env-vars).

2892 2918 

2893Il campo `last_assistant_message` contiene il contenuto testuale della risposta finale di Claude, così gli hook possono accedervi senza analizzare il file della trascrizione. Per gli hook che agiscono sul turno appena completato, come gli hook di lettura ad alta voce o di notifica, usa questo campo anziché leggere `transcript_path`: non è garantito che il file della trascrizione includa il messaggio finale al momento di Stop in tutte le versioni.2919Il campo `last_assistant_message` contiene il testo della risposta finale di Claude, così gli hook possono accedervi senza analizzare il file della trascrizione. Per gli hook che agiscono sul turno appena completato, come gli hook di lettura ad alta voce o di notifica, usa questo campo anziché leggere `transcript_path`: non è garantito che il file della trascrizione includa il messaggio finale al momento di Stop in tutte le versioni.

2894 2920 

2895Gli array `background_tasks` e `session_crons` permettono agli hook di distinguere tra "la sessione è terminata" e "la sessione è in pausa in attesa che un lavoro in background la riattivi". Entrambi gli array sono presenti quando il registro delle attività è raggiungibile e sono vuoti quando non c'è nulla in corso o pianificato.2921Gli array `background_tasks` e `session_crons` permettono agli hook di distinguere tra "la sessione è terminata" e "la sessione è in pausa in attesa che un lavoro in background la riattivi". Entrambi gli array sono presenti quando il registro dei task è raggiungibile e sono vuoti quando non c'è nulla in corso o pianificato.

2896 2922 

2897Ogni voce in `background_tasks` descrive un'attività in corso e usa questi campi:2923Ogni voce in `background_tasks` descrive un task in corso e usa questi campi:

2898 2924 

2899| Campo | Descrizione |2925| Campo | Descrizione |

2900| :- | :- |2926| :- | :- |

2901| `id` | Identificatore dell'attività |2927| `id` | Identificatore del task |

2902| `type` | Etichetta descrittiva del tipo di attività, come `shell`, `subagent`, `monitor`, `workflow`, `teammate`, `cloud session` o `MCP task`. Ogni etichetta identifica quale funzionalità di Claude Code ha creato l'attività. Ricade sul discriminante grezzo per i tipi non riconosciuti |2928| `type` | Etichetta descrittiva del tipo di task, come `shell`, `subagent`, `monitor`, `workflow`, `teammate`, `cloud session` o `MCP task`. Ogni etichetta identifica quale funzionalità di Claude Code ha creato il task. Per i tipi non riconosciuti, ripiega sul discriminante grezzo |

2903| `status` | Stato attuale dell'attività |2929| `status` | Stato attuale del task |

2904| `description` | Descrizione in testo libero, limitata a 1000 caratteri con un marcatore `… [+N chars]` nella stringa quando viene troncata |2930| `description` | Descrizione in testo libero, limitata a 1000 caratteri con un indicatore `… [+N chars]` nella stringa quando viene troncata |

2905| `command` | Riga di comando della shell, limitata a 1000 caratteri. Presente solo per le attività `shell` |2931| `command` | Riga di comando della shell, limitata a 1000 caratteri. Presente solo per i task `shell` |

2906| `agent_type` | Nome del tipo di subagent. Presente solo per le attività `subagent` |2932| `agent_type` | Nome del tipo di subagent. Presente solo per i task `subagent` |

2907| `server` | Nome del server MCP. Presente solo per le attività `monitor` e `MCP task` |2933| `server` | Nome del server MCP. Presente solo per i task `monitor` e `MCP task` |

2908| `tool` | Nome dello strumento MCP. Presente solo per le attività `monitor` e `MCP task` |2934| `tool` | Nome dello strumento MCP. Presente solo per i task `monitor` e `MCP task` |

2909| `name` | Nome del workflow. Presente solo per le attività `workflow` |2935| `name` | Nome del workflow. Presente solo per i task `workflow` |

2910 2936 

2911Ogni voce in `session_crons` descrive un risveglio pianificato con ambito di sessione, proveniente da `CronCreate`, `ScheduleWakeup` e `/loop`:2937Ogni voce in `session_crons` descrive una riattivazione pianificata con ambito di sessione, proveniente da `CronCreate`, `ScheduleWakeup` e `/loop`:

2912 2938 

2913| Campo | Descrizione |2939| Campo | Descrizione |

2914| :- | :- |2940| :- | :- |

2915| `id` | Identificatore dell'attività cron |2941| `id` | Identificatore del task cron |

2916| `schedule` | Espressione cron, ad esempio `0 9 * * 1-5` |2942| `schedule` | Espressione cron, ad esempio `0 9 * * 1-5` |

2917| `recurring` | `false` per i risvegli singoli la cui pianificazione codifica un unico momento di attivazione, `true` per le attività che si riattivano a ogni corrispondenza |2943| `recurring` | `false` per le riattivazioni singole la cui pianificazione codifica un unico momento di attivazione, `true` per i task che si riattivano a ogni corrispondenza |

2918| `prompt` | Prompt inviato quando il cron si attiva, limitato a 1000 caratteri con lo stesso marcatore `… [+N chars]` |2944| `prompt` | Prompt inviato quando il cron si attiva, limitato a 1000 caratteri con lo stesso indicatore `… [+N chars]` |

2919 2945 

2920Questo esempio mostra un input di Stop con un'attività shell in corso e un cron ricorrente:2946Questo esempio mostra un input di Stop con un task shell in corso e un cron ricorrente:

2921 2947 

2922```json theme={null}2948```json theme={null}

2923{2949{


2952 Controllo delle decisioni di Stop2978 Controllo delle decisioni di Stop

2953</h4>2979</h4>

2954 2980 

2955Gli hook `Stop` e `SubagentStop` possono controllare se Claude continua. Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, il tuo script di hook può restituire questi campi specifici dell'evento:2981Gli hook `Stop` e `SubagentStop` possono controllare se Claude prosegue. Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, lo script del tuo hook può restituire questi campi specifici dell'evento:

2956 2982 

2957| Campo | Descrizione |2983| Campo | Descrizione |

2958| :- | :- |2984| :- | :- |

2959| `decision` | `"block"` impedisce a Claude di fermarsi. Omettilo per consentire a Claude di fermarsi |2985| `decision` | `"block"` impedisce a Claude di arrestarsi. Omettilo per consentire a Claude di arrestarsi |

2960| `reason` | Obbligatorio quando `decision` è `"block"`. Indica a Claude perché dovrebbe continuare |2986| `reason` | Obbligatorio quando `decision` è `"block"`. Indica a Claude perché deve proseguire |

2961| `hookSpecificOutput.additionalContext` | Feedback non di errore per Claude. La conversazione continua così Claude può agire di conseguenza, ma a differenza di `decision: "block"` viene mostrato nella trascrizione come feedback dell'hook anziché come errore dell'hook |2987| `hookSpecificOutput.additionalContext` | Feedback non di errore per Claude. La conversazione prosegue in modo che Claude possa agire di conseguenza, ma a differenza di `decision: "block"` viene mostrato nella trascrizione come feedback dell'hook anziché come errore dell'hook |

2962 2988 

2963Un hook che blocca uscendo con 2 segue lo stesso percorso di `reason`: Claude riceve il messaggio di stderr come spiegazione del motivo per cui dovrebbe continuare.2989Un hook che blocca terminando con codice 2 viene instradato allo stesso modo di `reason`: Claude riceve il messaggio stderr come spiegazione del motivo per cui deve proseguire.

2964 2990 

2965```json theme={null}2991```json theme={null}

2966{2992{


2969}2995}

2970```2996```

2971 2997 

2972Usa `additionalContext` quando l'hook funziona come previsto e fornisce indicazioni a Claude, come "esegui la suite di test prima di finire". Mantiene attiva la conversazione tramite le stesse protezioni dai cicli di `decision: "block"`, ovvero l'input `stop_hook_active` e il limite di 8 continuazioni consecutive, ma la trascrizione lo etichetta come `Stop hook feedback` e non viene mostrata alcuna notifica di errore dell'hook:2998Usa `additionalContext` quando l'hook funziona come previsto e fornisce indicazioni a Claude, come "esegui la suite di test prima di terminare". Mantiene attiva la conversazione con le stesse protezioni contro i cicli di `decision: "block"`, ovvero l'input `stop_hook_active` e il limite di 8 prosecuzioni consecutive, ma la trascrizione lo etichetta come `Stop hook feedback` e non viene mostrata alcuna notifica di errore dell'hook:

2973 2999 

2974```json theme={null}3000```json theme={null}

2975{3001{


3010}3036}

3011```3037```

3012 3038 

3013Gli hook StopFailure non hanno controllo delle decisioni. Vengono eseguiti solo a scopo di notifica e di log.3039Gli hook StopFailure non hanno controllo delle decisioni. Vengono eseguiti solo a scopo di notifica e di registrazione nei log.

3014 3040 

3015<h3 id="teammateidle">3041<h3 id="teammateidle">

3016 TeammateIdle3042 TeammateIdle

3017</h3>3043</h3>

3018 3044 

3019Viene eseguito quando un membro di un [team di agenti](/docs/it/agent-teams) sta per diventare inattivo dopo aver terminato il proprio turno. Usalo per imporre controlli di qualità prima che un membro del team smetta di lavorare, come richiedere il superamento dei controlli lint o verificare che i file di output esistano.3045Viene eseguito quando un compagno di un [team di agenti](/docs/it/agent-teams) sta per diventare inattivo dopo aver terminato il proprio turno. Usalo per imporre controlli di qualità prima che un compagno di team smetta di lavorare, ad esempio richiedendo il superamento dei controlli lint o verificando l'esistenza dei file di output.

3020 3046 

3021Gli hook TeammateIdle non supportano i matcher e si attivano a ogni occorrenza.3047Gli hook TeammateIdle non supportano i matcher e si attivano a ogni occorrenza.

3022 3048 


3040 3066 

3041| Campo | Descrizione |3067| Campo | Descrizione |

3042| :- | :- |3068| :- | :- |

3043| `teammate_name` | Nome del membro del team che sta per diventare inattivo |3069| `teammate_name` | Nome del compagno di team che sta per diventare inattivo |

3044| `team_name` | Deprecato. Nome del team derivato dalla sessione; verrà rimosso in una versione futura |3070| `team_name` | Deprecato. Nome del team derivato dalla sessione; verrà rimosso in una versione futura |

3045| `agent_id` | In questo evento, il [campo di input comune](#common-input-fields) identifica il [membro del team in-process](/docs/it/agent-teams#choose-a-display-mode) che sta per diventare inattivo. Può essere assente. Richiede Claude Code v2.1.290 o successiva |3071| `agent_id` | In questo evento, il [campo di input comune](#common-input-fields) identifica il [compagno di team in-process](/docs/it/agent-teams#choose-a-display-mode) che sta per diventare inattivo. Può essere assente. Richiede Claude Code v2.1.290 o successivo |

3046 3072 

3047<h4 id="teammateidle-decision-control">3073<h4 id="teammateidle-decision-control">

3048 Controllo delle decisioni di TeammateIdle3074 Controllo delle decisioni di TeammateIdle

3049</h4>3075</h4>

3050 3076 

3051Gli hook TeammateIdle supportano due modi per controllare il comportamento dei membri del team:3077Gli hook TeammateIdle supportano due modi per controllare il comportamento del compagno di team:

3052 3078 

3053* **Codice di uscita 2**: il membro del team riceve il messaggio di stderr come feedback e continua a lavorare invece di diventare inattivo.3079* **Codice di uscita 2**: il compagno di team riceve il messaggio stderr come feedback e continua a lavorare invece di diventare inattivo.

3054* **JSON `{"continue": false, "stopReason": "..."}`**: arresta completamente il membro del team, in modo analogo al comportamento dell'hook `Stop`. Lo `stopReason` viene mostrato all'utente.3080* **JSON `{"continue": false, "stopReason": "..."}`**: arresta completamente il compagno di team, in modo analogo al comportamento dell'hook `Stop`. Lo `stopReason` viene mostrato all'utente.

3055 3081 

3056Questo esempio verifica che un artefatto di build esista prima di consentire a un membro del team di diventare inattivo:3082Questo esempio verifica che esista un artefatto di build prima di consentire a un compagno di team di diventare inattivo:

3057 3083 

3058```bash theme={null}3084```bash theme={null}

3059#!/bin/bash3085#!/bin/bash


3070 ConfigChange3096 ConfigChange

3071</h3>3097</h3>

3072 3098 

3073Viene eseguito quando un file di configurazione cambia durante una sessione. Usalo per controllare le modifiche alle impostazioni, applicare criteri di sicurezza o bloccare modifiche non autorizzate ai file di configurazione.3099Viene eseguito quando un file di configurazione cambia durante una sessione. Usalo per verificare le modifiche alle impostazioni, applicare policy di sicurezza o bloccare modifiche non autorizzate ai file di configurazione.

3074 3100 

3075Claude Code esegue gli hook ConfigChange quando cambia un file di impostazioni, un file di criteri gestiti o un file di skill. Per i criteri gestiti, li esegue solo quando cambia `managed-settings.json` o un file in `managed-settings.d/`. Applica le [impostazioni gestite dal server](/docs/it/server-managed-settings) e le modifiche alle preferenze gestite di macOS o ai criteri del registro di Windows senza eseguirli. Su WSL con [`wslInheritsWindowsSettings`](/docs/it/settings-reference#wslinheritswindowssettings), applica anche un file di impostazioni gestite lato Windows modificato durante il proprio polling dei criteri senza eseguirli.3101Claude Code esegue gli hook ConfigChange quando cambia un file di impostazioni, un file di policy gestita o un file di skill. Per la policy gestita, li esegue solo quando cambia `managed-settings.json` o un file in `managed-settings.d/`. Applica le [impostazioni gestite dal server](/docs/it/server-managed-settings) e le modifiche alle preferenze gestite di macOS o alle policy del registro di Windows senza eseguirli. Su WSL con [`wslInheritsWindowsSettings`](/docs/it/settings-reference#wslinheritswindowssettings), applica anche un file di impostazioni gestite lato Windows modificato durante il proprio polling delle policy, senza eseguirli.

3076 3102 

3077Il matcher filtra in base all'origine della configurazione:3103Il matcher filtra in base all'origine della configurazione:

3078 3104 


3084| `policy_settings` | Cambia `managed-settings.json` o un file in `managed-settings.d/` |3110| `policy_settings` | Cambia `managed-settings.json` o un file in `managed-settings.d/` |

3085| `skills` | Cambia un file di skill in `.claude/skills/` |3111| `skills` | Cambia un file di skill in `.claude/skills/` |

3086 3112 

3087Questo esempio registra tutte le modifiche alla configurazione per il controllo di sicurezza:3113Questo esempio registra tutte le modifiche alla configurazione per la verifica della sicurezza:

3088 3114 

3089```json theme={null}3115```json theme={null}

3090{3116{


3139}3165}

3140```3166```

3141 3167 

3142Le modifiche `policy_settings` non possono essere bloccate. Gli hook si attivano comunque per le origini `policy_settings` quando cambia un file di impostazioni gestite sulla macchina, quindi puoi usarli per registrare queste modifiche, ma qualsiasi decisione di blocco viene ignorata. Ciò garantisce che le impostazioni gestite dall'azienda abbiano sempre effetto. Claude Code non esegue gli hook `ConfigChange` quando le [impostazioni gestite dal server](/docs/it/server-managed-settings) arrivano o vengono aggiornate.3168Le modifiche `policy_settings` non possono essere bloccate. Gli hook si attivano comunque per le origini `policy_settings` quando cambia un file di impostazioni gestite sulla macchina, quindi puoi usarli per registrare tali modifiche, ma qualsiasi decisione di blocco viene ignorata. Ciò garantisce che le impostazioni gestite dall'azienda abbiano sempre effetto. Claude Code non esegue gli hook `ConfigChange` quando le [impostazioni gestite dal server](/docs/it/server-managed-settings) arrivano o vengono aggiornate.

3143 3169 

3144Claude Code agisce sulla decisione di blocco dall'output JSON di un hook ConfigChange e scarta `systemMessage` e `continue`. Una modifica bloccata non mostra alcun messaggio né a te né a Claude, sia che tu blocchi con `reason` sia con stderr e uscita 2. Claude Code scrive solo una riga nel log di debug.3170Claude Code applica la decisione di blocco dall'output JSON di un hook ConfigChange e scarta `systemMessage` e `continue`. Una modifica bloccata non mostra alcun messaggio né a te né a Claude, sia che tu blocchi con `reason` sia con stderr e codice di uscita 2. Claude Code scrive solo una riga nel log di debug.

3145 3171 

3146<h3 id="cwdchanged">3172<h3 id="cwdchanged">

3147 CwdChanged3173 CwdChanged


3174 Output di CwdChanged3200 Output di CwdChanged

3175</h4>3201</h4>

3176 3202 

3177Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, gli hook CwdChanged possono restituire `watchPaths` per impostare dinamicamente quali percorsi di file vengono monitorati da [FileChanged](#filechanged):3203Oltre ai [campi di output JSON](#json-output) disponibili per tutti gli hook, gli hook CwdChanged possono restituire `watchPaths` per impostare dinamicamente quali percorsi di file vengono osservati da [FileChanged](#filechanged):

3178 3204 

3179| Campo | Descrizione |3205| Campo | Descrizione |

3180| :- | :- |3206| :- | :- |

3181| `watchPaths` | Array di percorsi assoluti. Sostituisce l'attuale elenco di monitoraggio dinamico. I percorsi della configurazione del tuo `matcher` vengono sempre monitorati. Restituire un array vuoto cancella l'elenco dinamico, il che è tipico quando si entra in una nuova directory |3207| `watchPaths` | Array di percorsi assoluti. Sostituisce l'attuale elenco dinamico dei percorsi osservati. I percorsi della tua configurazione `matcher` vengono sempre osservati. Restituire un array vuoto cancella l'elenco dinamico, cosa tipica quando si entra in una nuova directory |

3182 3208 

3183Gli hook CwdChanged non hanno controllo delle decisioni. Non possono bloccare il cambio di directory.3209Gli hook CwdChanged non hanno controllo delle decisioni. Non possono bloccare il cambio di directory.

3184 3210 


3188 DirectoryAdded3214 DirectoryAdded

3189</h3>3215</h3>

3190 3216 

3191Viene eseguito dopo che aggiungi una directory di lavoro a sessione in corso con il comando `/add-dir`, oppure dopo che un client SDK ne aggiunge una con la richiesta di controllo `register_repo_root`. Usalo per preparare un repository appena aggiunto, ad esempio installandone le dipendenze.3217Viene eseguito dopo che aggiungi una directory di lavoro a sessione in corso con il comando `/add-dir`, o dopo che un client SDK ne aggiunge una con la richiesta di controllo `register_repo_root`. Usalo per preparare un repository appena aggiunto, ad esempio installandone le dipendenze.

3192 3218 

3193Claude Code non attiva questo evento quando:3219Claude Code non attiva questo evento quando:

3194 3220 

3195* Passi una directory con il flag di avvio `--add-dir`; [SessionStart](#sessionstart) copre quelle directory3221* Passi una directory con il flag di avvio `--add-dir`; [SessionStart](#sessionstart) copre queste directory

3196* Aggiungi una directory nella scheda Workspace di `/permissions`3222* Aggiungi una directory nella scheda Workspace di `/permissions`

3197* Aggiungi una directory che è già una directory di lavoro o si trova al suo interno3223* Aggiungi una directory che è già una directory di lavoro o si trova all'interno di una

3198 3224 

3199Claude Code attiva DirectoryAdded dopo aver aggiornato lo stato della sandbox e dei permessi, quindi gli strumenti in sandbox vedono già la nuova directory quando il tuo hook viene eseguito. I comandi degli hook stessi vengono eseguiti senza sandbox.3225Claude Code attiva DirectoryAdded dopo aver aggiornato lo stato della sandbox e dei permessi, quindi gli strumenti in sandbox vedono già la nuova directory quando il tuo hook viene eseguito. I comandi degli hook stessi vengono eseguiti fuori dalla sandbox.

3200 3226 

3201Claude Code non attende l'hook: l'aggiunta viene completata immediatamente e l'hook viene eseguito in background con il timeout predefinito di 600 secondi.3227Claude Code non attende l'hook: l'aggiunta viene completata immediatamente e l'hook viene eseguito in background con il timeout predefinito di 600 secondi.

3202 3228 

3203Il matcher filtra in base a come è stata aggiunta la directory:3229Il matcher filtra in base al modo in cui è stata aggiunta la directory:

3204 3230 

3205| Matcher | Quando si attiva |3231| Matcher | Quando si attiva |

3206| :- | :- |3232| :- | :- |


3215 3241 

3216| Campo | Descrizione |3242| Campo | Descrizione |

3217| :- | :- |3243| :- | :- |

3218| `directory` | Percorso assoluto della directory che è stata aggiunta |3244| `directory` | Percorso assoluto della directory aggiunta |

3219| `source` | Come è stata aggiunta la directory, `"slash_command"` per `/add-dir` o `"register_repo_root"` per la richiesta di controllo dell'SDK |3245| `source` | Il modo in cui è stata aggiunta la directory: `"slash_command"` per `/add-dir` o `"register_repo_root"` per la richiesta di controllo dell'SDK |

3220 3246 

3221```json theme={null}3247```json theme={null}

3222{3248{


3229}3255}

3230```3256```

3231 3257 

3232Gli hook DirectoryAdded non hanno controllo delle decisioni. Non possono bloccare l'aggiunta, che è già stata completata quando l'hook viene eseguito. Claude Code scarta il campo `continue` dal loro output JSON e gestisce il resto in modo diverso in base all'origine:3258Gli hook DirectoryAdded non hanno controllo delle decisioni. Non possono bloccare l'aggiunta, che è già completata quando l'hook viene eseguito. Claude Code scarta il campo `continue` dal loro output JSON e gestisce il resto in modo diverso a seconda dell'origine:

3233 3259 

3234* `slash_command`: Claude Code consegna il `systemMessage` dell'hook a Claude come contesto al turno successivo della conversazione, anziché mostrarlo a te. Nella trascrizione appare il conteggio degli hook falliti. L'output completo degli errori va nel log di debug3260* `slash_command`: Claude Code consegna il `systemMessage` dell'hook a Claude come contesto nel turno successivo della conversazione, anziché mostrarlo a te. Nella trascrizione compare il conteggio degli hook falliti. L'output completo dei fallimenti va nel log di debug

3235* `register_repo_root`: Claude Code scrive l'output di `systemMessage` e l'output degli errori solo nel log di debug3261* `register_repo_root`: Claude Code scrive l'output di `systemMessage` e l'output dei fallimenti solo nel log di debug

3236 3262 

3237<h3 id="filechanged">3263<h3 id="filechanged">

3238 FileChanged3264 FileChanged

3239</h3>3265</h3>

3240 3266 

3241Viene eseguito quando un file monitorato cambia su disco. Claude Code rileva le modifiche con un watcher del filesystem, non ispezionando le chiamate agli strumenti, quindi esegue l'hook indipendentemente da cosa abbia modificato il file: una chiamata allo strumento `Edit` o `Write`, uno script che Claude esegue con `Bash` o un processo completamente esterno a Claude Code. Un uso comune è ricaricare le variabili d'ambiente quando cambiano i file di configurazione del progetto.3267Viene eseguito quando un file monitorato cambia sul disco. Claude Code rileva le modifiche con un watcher del filesystem, non esaminando le chiamate agli strumenti, quindi esegue l'hook indipendentemente da cosa abbia modificato il file: una chiamata allo strumento `Edit` o `Write`, uno script che Claude esegue con `Bash` o un processo completamente esterno a Claude Code. Un uso comune è ricaricare le variabili d'ambiente quando cambiano i file di configurazione del progetto.

3242 3268 

3243Il `matcher` per questo evento ha due ruoli:3269Il `matcher` per questo evento ha due ruoli:

3244 3270 

3245* **Costruire l'elenco di monitoraggio**: il valore viene suddiviso su `|` e ogni segmento viene registrato come nome di file letterale nella directory di lavoro, quindi `".envrc|.env"` monitora esattamente quei due file. I pattern regex non sono utili qui: un valore come `^\.env` monitorerebbe un file chiamato letteralmente `^\.env`.3271* **Creare l'elenco dei file monitorati**: il valore viene suddiviso in corrispondenza di `|` e ogni segmento viene registrato come nome di file letterale nella directory di lavoro, quindi `".envrc|.env"` monitora esattamente quei due file. I pattern regex non sono utili qui: un valore come `^\.env` monitorerebbe un file chiamato letteralmente `^\.env`.

3246* **Filtrare quali hook vengono eseguiti**: quando un file monitorato cambia, lo stesso valore filtra quali gruppi di hook vengono eseguiti usando le [regole standard dei matcher](#matcher-patterns) sul nome base del file modificato.3272* **Filtrare quali hook vengono eseguiti**: quando un file monitorato cambia, lo stesso valore filtra quali gruppi di hook vengono eseguiti usando le [regole standard del matcher](#matcher-patterns) sul basename del file modificato.

3247 3273 

3248Questo esempio normalizza i fine riga in `data.csv` dopo qualsiasi modifica, inclusa la riscrittura del file da parte di un comando `Bash` o di uno script esterno:3274Questo esempio normalizza i fine riga in `data.csv` dopo qualsiasi modifica, incluso un comando `Bash` o uno script esterno che riscrive il file:

3249 3275 

3250```json theme={null}3276```json theme={null}

3251{3277{


3265}3291}

3266```3292```

3267 3293 

3268L'hook legge il percorso assoluto del file modificato dal campo `file_path` dell'[input JSON](#filechanged-input) su stdin. Il suo controllo con `grep` verifica la stessa cosa che `perl` rimuove, un CR alla fine di una riga, quindi l'esecuzione successiva a una normalizzazione termina senza toccare il file. Un controllo meno rigoroso entra in un ciclo infinito, perché `perl -i` riscrive il file anche quando non sostituisce nulla e Claude Code esegue di nuovo l'hook dopo ogni riscrittura. Salva questo script in `/path/to/normalize-line-endings.sh` e rendilo eseguibile:3294L'hook legge il percorso assoluto del file modificato dal campo `file_path` dell'[input JSON](#filechanged-input) su stdin. Il suo controllo con `grep` verifica la stessa cosa che `perl` rimuove, un CR alla fine di una riga, quindi l'esecuzione successiva a una normalizzazione termina senza toccare il file. Un controllo meno preciso entra in un ciclo infinito, perché `perl -i` riscrive il file anche quando non sostituisce nulla e Claude Code esegue di nuovo l'hook dopo ogni riscrittura. Salva questo script in `/path/to/normalize-line-endings.sh` e rendilo eseguibile:

3269 3295 

3270```bash theme={null}3296```bash theme={null}

3271#!/bin/bash3297#!/bin/bash


3277 3303 

3278Per verificare che l'hook funzioni, chiedi a Claude di aggiungere una riga CRLF a `data.csv` con un comando `Bash`. Claude Code esegue l'hook e il file finisce con fine riga LF.3304Per verificare che l'hook funzioni, chiedi a Claude di aggiungere una riga CRLF a `data.csv` con un comando `Bash`. Claude Code esegue l'hook e il file finisce con fine riga LF.

3279 3305 

3280Per monitorare file che non puoi nominare in anticipo, restituisci [`watchPaths`](#filechanged-output) da un hook per aggiornare dinamicamente l'elenco di monitoraggio. Claude Code avvia il watcher solo quando qualcosa nomina un file da monitorare, quindi inizializza l'elenco con un gruppo FileChanged il cui matcher nomina almeno un file, oppure con un hook [SessionStart](#sessionstart-decision-control) o [CwdChanged](#cwdchanged) che restituisce `watchPaths`. Il matcher filtra comunque quali gruppi di hook vengono eseguiti quando un file monitorato cambia, quindi assegna al gruppo che gestisce i percorsi dinamici un matcher omesso, che corrisponde a ogni file monitorato e non aggiunge nulla all'elenco di monitoraggio. Anche un matcher `"*"` corrisponde a ogni file, ma Claude Code lo registra nell'elenco di monitoraggio come qualsiasi altro valore, come un file letterale chiamato `*`.3306Per monitorare file che non puoi nominare in anticipo, restituisci [`watchPaths`](#filechanged-output) da un hook per aggiornare dinamicamente l'elenco dei file monitorati. Claude Code avvia il watcher solo quando qualcosa indica un file da monitorare, quindi inizializza l'elenco con un gruppo FileChanged il cui matcher nomina almeno un file, oppure con un hook [SessionStart](#sessionstart-decision-control) o [CwdChanged](#cwdchanged) che restituisce `watchPaths`. Il matcher filtra comunque quali gruppi di hook vengono eseguiti quando un file monitorato cambia, quindi ometti il matcher nel gruppo che gestisce i percorsi dinamici: così corrisponde a ogni file monitorato e non aggiunge nulla all'elenco. Anche un matcher `"*"` corrisponde a ogni file, ma Claude Code lo registra nell'elenco dei file monitorati come qualsiasi altro valore, cioè come un file chiamato letteralmente `*`.

3281 3307 

3282Gli hook FileChanged hanno accesso a [`CLAUDE_ENV_FILE`](#persist-environment-variables). Le variabili scritte in quel file persistono nei comandi Bash successivi fino al successivo evento [CwdChanged](#cwdchanged), quando Claude Code le cancella.3308Gli hook FileChanged hanno accesso a [`CLAUDE_ENV_FILE`](#persist-environment-variables). Le variabili scritte in quel file persistono nei comandi Bash successivi fino al prossimo evento [CwdChanged](#cwdchanged), quando Claude Code le cancella.

3283 3309 

3284<h4 id="filechanged-input">3310<h4 id="filechanged-input">

3285 Input di FileChanged3311 Input di FileChanged


3289 3315 

3290| Campo | Descrizione |3316| Campo | Descrizione |

3291| :- | :- |3317| :- | :- |

3292| `file_path` | Percorso assoluto del file che è cambiato |3318| `file_path` | Percorso assoluto del file modificato |

3293| `event` | Cosa è successo: `"change"` per un file modificato, `"add"` per un file creato o `"unlink"` per un file eliminato |3319| `event` | Cosa è successo: `"change"` per un file modificato, `"add"` per un file creato o `"unlink"` per un file eliminato |

3294 3320 

3295```json theme={null}3321```json theme={null}


3311 3337 

3312| Campo | Descrizione |3338| Campo | Descrizione |

3313| :- | :- |3339| :- | :- |

3314| `watchPaths` | Array di percorsi assoluti. Sostituisce l'attuale elenco di monitoraggio dinamico. I percorsi della configurazione del tuo `matcher` vengono sempre monitorati. Usalo quando il tuo script di hook scopre file aggiuntivi da monitorare in base al file modificato |3340| `watchPaths` | Array di percorsi assoluti. Sostituisce l'elenco dinamico corrente dei file monitorati. I percorsi dalla configurazione del tuo `matcher` vengono sempre monitorati. Usalo quando lo script del tuo hook individua file aggiuntivi da monitorare in base al file modificato |

3315 3341 

3316Gli hook FileChanged non hanno controllo delle decisioni. Non possono impedire che la modifica del file avvenga.3342Gli hook FileChanged non hanno controllo decisionale. Non possono impedire che la modifica del file avvenga.

3317 3343 

3318Claude Code legge `watchPaths` e `systemMessage` dal loro output JSON e scarta `continue`. Nelle sessioni interattive, mostra il `systemMessage` come breve notifica nel terminale. Il messaggio non raggiunge il flusso di messaggi dell'SDK.3344Claude Code legge `watchPaths` e `systemMessage` dal loro output JSON e scarta `continue`. Nelle sessioni interattive, mostra `systemMessage` come una breve notifica nel terminale. Il messaggio non raggiunge lo stream di messaggi dell'SDK.

3319 3345 

3320<h3 id="worktreecreate">3346<h3 id="worktreecreate">

3321 WorktreeCreate3347 WorktreeCreate


3324Viene eseguito quando Claude Code crea un worktree in casi come questi:3350Viene eseguito quando Claude Code crea un worktree in casi come questi:

3325 3351 

3326* Avvii una sessione con `claude --worktree`3352* Avvii una sessione con `claude --worktree`

3327* Claude crea un worktree durante una sessione e vi si sposta con lo strumento [`EnterWorktree`](/docs/it/tools-reference)3353* Claude crea un worktree durante una sessione e ci passa con lo strumento [`EnterWorktree`](/docs/it/tools-reference)

3328* Un [subagent usa `isolation: "worktree"`](/docs/it/sub-agents#choose-the-subagent-scope)3354* Un [subagent usa `isolation: "worktree"`](/docs/it/sub-agents#choose-the-subagent-scope)

3329* Un [workflow](/docs/it/workflows#migrate-many-files-in-parallel) esegue un agente nel proprio worktree3355* Un [workflow](/docs/it/workflows#migrate-many-files-in-parallel) esegue un agente nel proprio worktree

3330* Claude Code isola una [sessione in background](/docs/it/agent-view#how-file-edits-are-isolated) nel proprio worktree3356* Claude Code isola una [sessione in background](/docs/it/agent-view#how-file-edits-are-isolated) nel proprio worktree

3331* [`claude remote-control`](/docs/it/remote-control#start-a-remote-control-session) in modalità `worktree` avvia una sessione nel proprio worktree3357* [`claude remote-control`](/docs/it/remote-control#start-a-remote-control-session) in modalità `worktree` avvia una sessione nel proprio worktree

3332 3358 

3333Quando Claude esegue `git worktree add` tramite lo strumento Bash invece di chiamare `EnterWorktree`, il tuo hook WorktreeCreate non viene eseguito. Per ispezionare o bloccare quel comando, aggiungi un hook [`PreToolUse`](#pretooluse) con il matcher `Bash`.3359Quando Claude esegue `git worktree add` tramite lo strumento Bash invece di chiamare `EnterWorktree`, il tuo hook WorktreeCreate non viene eseguito. Per esaminare o bloccare quel comando, aggiungi un hook [`PreToolUse`](#pretooluse) con il matcher `Bash`.

3334 3360 

3335Per impostazione predefinita Claude Code crea la copia di lavoro isolata con `git worktree`. Configurare un hook WorktreeCreate sostituisce quel comportamento Git predefinito, permettendoti di usare un sistema di controllo versione diverso come SVN, Perforce o Mercurial.3361Per impostazione predefinita Claude Code crea la copia di lavoro isolata con `git worktree`. Configurare un hook WorktreeCreate sostituisce quel comportamento predefinito di git, permettendoti di usare un diverso sistema di controllo versione come SVN, Perforce o Mercurial.

3336 3362 

3337Poiché l'hook sostituisce interamente il comportamento predefinito, [`.worktreeinclude`](/docs/it/worktrees#copy-gitignored-files-into-worktrees) non viene elaborato. Se devi copiare file di configurazione locali come `.env` nel nuovo worktree, fallo all'interno del tuo script hook.3363Poiché l'hook sostituisce interamente il comportamento predefinito, [`.worktreeinclude`](/docs/it/worktrees#copy-gitignored-files-into-worktrees) non viene elaborato. Se devi copiare file di configurazione locali come `.env` nel nuovo worktree, fallo all'interno dello script del tuo hook.

3338 3364 

3339L'hook deve restituire il percorso della directory del worktree creato. Claude Code usa questo percorso come directory di lavoro per la sessione isolata. Consulta [Output di WorktreeCreate](#worktreecreate-output) per sapere come ciascun tipo di hook restituisce il percorso.3365L'hook deve restituire il percorso della directory del worktree creato. Claude Code usa questo percorso come directory di lavoro per la sessione isolata. Consulta [Output di WorktreeCreate](#worktreecreate-output) per sapere come ogni tipo di hook restituisce il percorso.

3340 3366 

3341Claude Code agisce in base al successo dell'hook e al percorso restituito, e scarta `systemMessage` e `continue`.3367Claude Code agisce in base all'esito positivo dell'hook e al percorso restituito, e scarta `systemMessage` e `continue`.

3342 3368 

3343Questo esempio crea una copia di lavoro SVN e stampa il percorso che Claude Code dovrà usare. Sostituisci l'URL del repository con il tuo:3369Questo esempio crea una copia di lavoro SVN e stampa il percorso che Claude Code deve usare. Sostituisci l'URL del repository con il tuo:

3344 3370 

3345```json theme={null}3371```json theme={null}

3346{3372{


3359}3385}

3360```3386```

3361 3387 

3362L'hook legge il `name` del worktree dall'input JSON su stdin, esegue il checkout di una copia nuova in una nuova directory e stampa il percorso della directory. L'`echo` sull'ultima riga è ciò che Claude Code legge come percorso del worktree. Reindirizza qualsiasi altro output su stderr in modo che non interferisca con il percorso.3388L'hook legge il `name` del worktree dall'input JSON su stdin, esegue il checkout di una copia nuova in una nuova directory e stampa il percorso della directory. L'`echo` nell'ultima riga è ciò che Claude Code legge come percorso del worktree. Reindirizza qualsiasi altro output su stderr in modo che non interferisca con il percorso.

3363 3389 

3364<h4 id="worktreecreate-input">3390<h4 id="worktreecreate-input">

3365 Input di WorktreeCreate3391 Input di WorktreeCreate


3381 Output di WorktreeCreate3407 Output di WorktreeCreate

3382</h4>3408</h4>

3383 3409 

3384Gli hook WorktreeCreate non usano il modello decisionale standard allow/block. Al contrario, è il successo o il fallimento dell'hook a determinare l'esito. L'hook deve restituire il percorso della directory del worktree creato:3410Gli hook WorktreeCreate non usano il modello decisionale standard allow/block. L'esito dipende invece dal successo o dal fallimento dell'hook. L'hook deve restituire il percorso della directory del worktree creato:

3385 3411 

3386* **Hook di comando** (`type: "command"`): stampa il percorso come ultima riga non vuota di stdout. Claude Code rimuove i codici di escape ANSI prima di leggere quella riga, quindi i banner di avvio della shell stampati prima del tuo `echo` vengono ignorati. Reindirizza qualsiasi altro output dell'hook su stderr.3412* **Hook di tipo command** (`type: "command"`): stampa il percorso come ultima riga non vuota di stdout. Claude Code rimuove i codici di escape ANSI prima di leggere quella riga, quindi i banner di avvio della shell stampati prima del tuo `echo` vengono ignorati. Reindirizza qualsiasi altro output dell'hook su stderr.

3387* **Hook HTTP** (`type: "http"`): restituisci `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }` nel corpo della risposta.3413* **Hook HTTP** (`type: "http"`): restituisci `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }` nel corpo della risposta.

3388 3414 

3389Se l'hook fallisce o non produce alcun percorso, la creazione del worktree fallisce con un errore.3415Se l'hook fallisce o non produce alcun percorso, la creazione del worktree fallisce con un errore.

3390 3416 

3391Claude Code risolve un percorso relativo rispetto alla directory in cui è stato eseguito l'hook, riducendo gli eventuali segmenti `.` o `..` al suo interno. Se il percorso risultante non è una directory in cui Claude Code può entrare, la sessione stampa un errore che indica il percorso ed esce con codice 1.3417Claude Code risolve un percorso relativo rispetto alla directory in cui è stato eseguito l'hook, comprimendo eventuali segmenti `.` o `..` al suo interno. Se il percorso risultante non è una directory in cui Claude Code può entrare, la sessione stampa un errore che indica il percorso ed esce con codice 1.

3392 3418 

3393Claude Code rifiuta un percorso assoluto che contiene segmenti `.` o `..`, e qualsiasi percorso che passa attraverso un collegamento simbolico sotto la radice del repository, perché un collegamento simbolico sottoposto a commit nel repository potrebbe reindirizzare il worktree al di fuori di esso. L'errore indica il componente rifiutato. Restituisci un percorso normalizzato che non passi attraverso un collegamento simbolico all'interno del repository. Prima della v2.1.216, la creazione del worktree seguiva il percorso dell'hook senza questo controllo.3419Claude Code rifiuta un percorso assoluto che contiene segmenti `.` o `..`, e qualsiasi percorso che passa attraverso un collegamento simbolico sotto la radice del repository, perché un collegamento simbolico di cui è stato fatto il commit nel repository potrebbe reindirizzare il worktree al di fuori di esso. L'errore indica il componente rifiutato. Restituisci un percorso normalizzato che non passi attraverso un collegamento simbolico all'interno del repository. Prima della v2.1.216, la creazione del worktree seguiva il percorso dell'hook senza questo controllo.

3394 3420 

3395<h3 id="worktreeremove">3421<h3 id="worktreeremove">

3396 WorktreeRemove3422 WorktreeRemove


3402* Esci da una sessione worktree interattiva a cui non hai [dato un nome](/docs/it/sessions#name-your-sessions), Claude Code non trova file modificati o non tracciati e rimuove il worktree senza chiedertelo3428* Esci da una sessione worktree interattiva a cui non hai [dato un nome](/docs/it/sessions#name-your-sessions), Claude Code non trova file modificati o non tracciati e rimuove il worktree senza chiedertelo

3403* Elimini una [sessione in background](/docs/it/agent-view#what-deleting-a-session-removes) che viene eseguita nel worktree3429* Elimini una [sessione in background](/docs/it/agent-view#what-deleting-a-session-removes) che viene eseguita nel worktree

3404* Chiedi a Claude di uscire e rimuovere il worktree durante una sessione, e Claude lo rimuove con lo strumento [`ExitWorktree`](/docs/it/tools-reference)3430* Chiedi a Claude di uscire e rimuovere il worktree durante una sessione, e Claude lo rimuove con lo strumento [`ExitWorktree`](/docs/it/tools-reference)

3405* Una sessione che [`claude remote-control`](/docs/it/remote-control#start-a-remote-control-session) ha avviato in modalità `worktree` termina senza arresti anomali, e Claude Code non trova file modificati o non tracciati né nuovi commit nel suo worktree3431* Una sessione avviata da [`claude remote-control`](/docs/it/remote-control#start-a-remote-control-session) in modalità `worktree` termina senza arresti anomali, e Claude Code non trova file modificati o non tracciati né nuovi commit nel suo worktree

3406* Arresti `claude remote-control` mentre le sessioni che ha avviato in modalità `worktree` sono ancora in esecuzione, e Claude Code non trova file modificati o non tracciati né nuovi commit nei loro worktree3432* Arresti `claude remote-control` mentre le sessioni che ha avviato in modalità `worktree` sono ancora in esecuzione, e Claude Code non trova file modificati o non tracciati né nuovi commit nei loro worktree

3407 3433 

3408Quando un subagent o un agente di un workflow termina, Claude Code mantiene il worktree che il tuo hook WorktreeCreate ha creato per esso e non esegue il tuo hook WorktreeRemove. Rimuovi tu stesso quei worktree quando il lavoro è terminato.3434Quando un subagent o un agente di un workflow termina, Claude Code mantiene il worktree che il tuo hook WorktreeCreate ha creato per esso e non esegue il tuo hook WorktreeRemove. Rimuovi tu stesso quei worktree quando il lavoro è finito.

3409 3435 

3410Claude Code non ti chiede conferma prima che il tuo hook venga eseguito per una chiamata a `ExitWorktree` o per una pulizia di `claude remote-control`. `ExitWorktree` si rifiuta di rimuovere un worktree creato da un hook a meno che la chiamata non passi [`discard_changes: true`](/docs/it/agent-sdk/typescript#exitworktree), il che rende il tuo hook l'ultimo controllo su quel percorso.3436Claude Code non ti chiede conferma prima che il tuo hook venga eseguito per una chiamata `ExitWorktree` o per una pulizia di `claude remote-control`. `ExitWorktree` si rifiuta di rimuovere un worktree creato da un hook a meno che la chiamata non passi [`discard_changes: true`](/docs/it/agent-sdk/typescript#exitworktree), il che rende il tuo hook l'ultimo controllo su quel percorso.

3411 3437 

3412Claude Code usa git per cercare file modificati o non tracciati, quindi non ne trova nessuno in un worktree che non è un checkout git né si trova all'interno di uno, anche quando la directory contiene lavoro non sottoposto a commit. Controlla la presenza di tale lavoro nel tuo hook WorktreeRemove prima che elimini qualsiasi cosa.3438Claude Code usa git per cercare file modificati o non tracciati, quindi non ne trova nessuno in un worktree che non è un checkout git né si trova all'interno di uno, anche quando la directory contiene lavoro non sottoposto a commit. Verifica la presenza di quel lavoro nel tuo hook WorktreeRemove prima che elimini qualcosa.

3413 3439 

3414Per i worktree basati su Git, Claude Code gestisce la pulizia automaticamente con `git worktree remove`. Se hai configurato un hook WorktreeCreate, abbinalo a un hook WorktreeRemove per controllare la pulizia:3440Per i worktree basati su git, Claude Code gestisce la pulizia automaticamente con `git worktree remove`. Se hai configurato un hook WorktreeCreate, abbinalo a un hook WorktreeRemove per controllare la pulizia:

3415 3441 

3416* **Nessun hook WorktreeRemove**: Claude Code ripiega su Git per una rimozione all'uscita o tramite `ExitWorktree`, e mantiene il worktree quando è `claude remote-control` a eseguire la pulizia:3442* **Nessun hook WorktreeRemove**: Claude Code ripiega su git per una rimozione all'uscita o tramite `ExitWorktree`, e mantiene il worktree quando `claude remote-control` esegue la pulizia:

3417 * **Esci da una sessione in un worktree, oppure Claude chiama `ExitWorktree`**: Claude Code rimuove il percorso restituito dal tuo hook WorktreeCreate come farebbe `git worktree remove --force`, quindi un worktree riconosciuto da Git viene rimosso. Un worktree che Git non riconosce, ad esempio uno che il tuo hook ha creato con un sistema di controllo versione diverso da Git, rimane su disco.3443 * **Esci da una sessione worktree, oppure Claude chiama `ExitWorktree`**: Claude Code rimuove il percorso restituito dal tuo hook WorktreeCreate come farebbe `git worktree remove --force`, quindi un worktree riconosciuto da git viene rimosso. Un worktree che git non riconosce, ad esempio uno creato dal tuo hook con un sistema di controllo versione diverso da git, rimane sul disco.

3418 * **`claude remote-control` rimuove il worktree di una sessione**: il worktree rimane su disco e il terminale in cui è in esecuzione `claude remote-control` mostra `worktree removal failed, kept: <path>`.3444 * **`claude remote-control` ripulisce il worktree di una sessione**: il worktree rimane sul disco, e il terminale che esegue `claude remote-control` mostra `worktree removal failed, kept: <path>`.

3419 * **Elimini una sessione in background**: consulta [Cosa rimuove l'eliminazione di una sessione](/docs/it/agent-view#what-deleting-a-session-removes).3445 * **Elimini una sessione in background**: consulta [Cosa rimuove l'eliminazione di una sessione](/docs/it/agent-view#what-deleting-a-session-removes).

3420* **L'hook esce con 0**: il worktree viene considerato rimosso. Claude Code non legge nient'altro dall'hook, quindi assicurati che il tuo hook abbia eliminato la directory.3446* **L'hook esce con 0**: il worktree è considerato rimosso. Claude Code non legge nient'altro dall'hook, quindi assicurati che il tuo hook abbia eliminato la directory.

3421* **L'hook esce con un codice diverso da zero**: la rimozione fallisce se la directory in `worktree_path` esiste ancora in seguito, e il worktree rimane su disco senza fallback git. Un hook che ha eliminato la directory prima di uscire con un codice diverso da zero viene considerato come rimosso. Per sapere come viene segnalato il fallimento, consulta [Input di WorktreeRemove](#worktreeremove-input).3447* **L'hook esce con un codice diverso da zero**: la rimozione fallisce se la directory in `worktree_path` esiste ancora dopo l'esecuzione, e il worktree rimane sul disco senza alcun fallback su git. Un hook che ha eliminato la directory prima di uscire con un codice diverso da zero è considerato come rimosso. Per sapere come viene segnalato l'errore, consulta [Input di WorktreeRemove](#worktreeremove-input).

3422 3448 

3423Claude Code non elimina mai un branch appartenente a un worktree creato da un hook, perché conosce solo il percorso restituito dal tuo hook WorktreeCreate. Se il tuo hook WorktreeCreate crea un branch, eliminalo nel tuo hook WorktreeRemove.3449Claude Code non elimina mai un branch appartenente a un worktree creato da un hook, perché conosce solo il percorso restituito dal tuo hook WorktreeCreate. Se il tuo hook WorktreeCreate crea un branch, eliminalo nel tuo hook WorktreeRemove.

3424 3450 

3425Claude Code scarta i [campi di output JSON](#json-output) di un hook WorktreeRemove, come `systemMessage` e `continue`.3451Claude Code scarta i [campi di output JSON](#json-output) di un hook WorktreeRemove, come `systemMessage` e `continue`.

3426 3452 

3427Per l'eliminazione di una sessione in background, Claude Code verifica il percorso del worktree memorizzato prima di eseguire l'hook e rifiuta un percorso che è un collegamento simbolico o che ne attraversa uno sotto la root del repository. In quel caso, l'hook viene eseguito per un worktree che contiene ancora file solo quando confermi l'eliminazione nella [vista degli agenti](/docs/it/agent-view#what-deleting-a-session-removes); per un worktree di questo tipo, [`claude rm`](/docs/it/agent-view#manage-sessions-from-the-shell) mantiene invece la sessione e il worktree. Prima della v2.1.216, l'hook veniva eseguito sul percorso memorizzato senza questi controlli.3453Per l'eliminazione di una sessione in background, Claude Code verifica il percorso del worktree memorizzato prima di eseguire l'hook e rifiuta un percorso che è un collegamento simbolico o che passa attraverso uno di essi sotto la radice del repository. In quel caso, l'hook viene eseguito per un worktree che contiene ancora file solo quando confermi l'eliminazione nella [vista agenti](/docs/it/agent-view#what-deleting-a-session-removes); per un worktree di questo tipo, [`claude rm`](/docs/it/agent-view#manage-sessions-from-the-shell) mantiene invece la sessione e il worktree. Prima della v2.1.216, l'hook veniva eseguito sul percorso memorizzato senza questi controlli.

3428 3454 

3429Claude Code passa il percorso restituito da WorktreeCreate come `worktree_path` nell'input dell'hook. Questo esempio legge quel percorso e rimuove la directory:3455Claude Code passa il percorso restituito da WorktreeCreate come `worktree_path` nell'input dell'hook. Questo esempio legge quel percorso e rimuove la directory:

3430 3456 


3461}3487}

3462```3488```

3463 3489 

3464Il codice di uscita di un hook WorktreeRemove decide l'esito. Quando un hook esce con un codice diverso da zero e la directory in `worktree_path` esiste ancora in seguito, la rimozione fallisce:3490Il codice di uscita di un hook WorktreeRemove determina l'esito. Quando un hook esce con un codice diverso da zero e la directory in `worktree_path` esiste ancora dopo l'esecuzione, la rimozione fallisce:

3465 3491 

3466* Il worktree rimane su disco, e il comando e lo stderr dell'hook finiscono nel [log di debug](#debug-hooks).3492* Il worktree rimane sul disco, e il comando e lo stderr dell'hook finiscono nel [log di debug](#debug-hooks).

3467* Se stavi eliminando una sessione in background, anche la sessione rimane. Il messaggio di rifiuto nella [vista agente](/docs/it/agent-view#what-deleting-a-session-removes) riporta come è terminato l'hook, ad esempio `exited 1`, cita l'inizio del suo stderr e indica se eliminare di nuovo la sessione rimuove comunque la directory.3493* Se stavi eliminando una sessione in background, anche la sessione rimane. Il messaggio di rifiuto nella [vista agenti](/docs/it/agent-view#what-deleting-a-session-removes) riporta come è terminato l'hook, ad esempio `exited 1`, cita l'inizio del suo stderr e indica se eliminando di nuovo la sessione la directory viene comunque rimossa.

3468* Se `claude remote-control` stava rimuovendo il worktree di una sessione, il terminale in cui è in esecuzione mostra `worktree removal failed, kept: <path>`.3494* Se `claude remote-control` stava ripulendo il worktree di una sessione, il terminale che lo esegue mostra `worktree removal failed, kept: <path>`.

3469 3495 

3470<h3 id="precompact">3496<h3 id="precompact">

3471 PreCompact3497 PreCompact

3472</h3>3498</h3>

3473 3499 

3474Viene eseguito prima che Claude Code stia per eseguire un'operazione di compattazione.3500Viene eseguito prima che Claude Code esegua un'operazione di compattazione.

3475 3501 

3476Il valore del matcher indica se la compattazione è stata attivata manualmente o automaticamente:3502Il valore del matcher indica se la compattazione è stata attivata manualmente o automaticamente:

3477 3503 

3478| Matcher | Quando si attiva |3504| Matcher | Quando si attiva |

3479| :- | :- |3505| :- | :- |

3480| `manual` | `/compact` |3506| `manual` | `/compact` |

3481| `auto` | Compattazione automatica quando la conversazione raggiunge la [finestra di compattazione automatica](/docs/it/model-config#set-the-auto-compact-window) |3507| `auto` | Compattazione automatica quando la conversazione raggiunge la [finestra di compattazione automatica](/docs/it/model-config#set-the-auto-compact-window), e [compattazione in caso di inattività](/docs/it/settings-reference#idlecompaction) |

3482 3508 

3483Esci con codice 2 per bloccare la compattazione. Per un `/compact` manuale, il messaggio stderr viene mostrato all'utente. Puoi anche bloccare restituendo JSON con `"decision": "block"`.3509Esci con codice 2 per bloccare la compattazione. Per un `/compact` manuale, il messaggio stderr viene mostrato all'utente. Puoi anche bloccare restituendo un JSON con `"decision": "block"`.

3484 3510 

3485Bloccare la compattazione automatica ha effetti diversi a seconda di quando si attiva. Se la compattazione è stata attivata in modo proattivo prima del limite di contesto, Claude Code la salta e la conversazione continua senza compattazione. Se la compattazione è stata attivata per recuperare da un errore di limite di contesto già restituito dall'API, l'errore sottostante emerge e la richiesta corrente fallisce.3511Bloccare la compattazione automatica ha effetti diversi a seconda di quando si attiva. Se la compattazione è stata attivata in modo preventivo prima del limite di contesto, Claude Code la salta e la conversazione continua senza essere compattata. Se la compattazione è stata attivata per recuperare da un errore di limite di contesto già restituito dall'API, l'errore sottostante emerge e la richiesta corrente fallisce.

3486 3512 

3487Claude Code scarta i campi `systemMessage` e `continue` di un hook PreCompact.3513Claude Code scarta i campi `systemMessage` e `continue` di un hook PreCompact.

3488 3514 


3507 PostCompact3533 PostCompact

3508</h3>3534</h3>

3509 3535 

3510Viene eseguito dopo che Claude Code ha completato un'operazione di compattazione. Usa questo evento per reagire al nuovo stato compattato, ad esempio per registrare il riepilogo generato o aggiornare uno stato esterno. Claude Code scarta i campi `systemMessage` e `continue` di un hook PostCompact.3536Viene eseguito dopo che Claude Code completa un'operazione di compattazione. Usa questo evento per reagire al nuovo stato compattato, ad esempio per registrare il riepilogo generato o aggiornare uno stato esterno. Claude Code scarta i campi `systemMessage` e `continue` di un hook PostCompact.

3511 3537 

3512Si applicano gli stessi valori del matcher di `PreCompact`:3538Si applicano gli stessi valori del matcher di `PreCompact`:

3513 3539 

3514| Matcher | Quando si attiva |3540| Matcher | Quando si attiva |

3515| :- | :- |3541| :- | :- |

3516| `manual` | Dopo `/compact` |3542| `manual` | Dopo `/compact` |

3517| `auto` | Dopo la compattazione automatica quando la conversazione raggiunge la [finestra di compattazione automatica](/docs/it/model-config#set-the-auto-compact-window) |3543| `auto` | Dopo la compattazione automatica quando la conversazione raggiunge la [finestra di compattazione automatica](/docs/it/model-config#set-the-auto-compact-window), e dopo la [compattazione in caso di inattività](/docs/it/settings-reference#idlecompaction) |

3518 3544 

3519<h4 id="postcompact-input">3545<h4 id="postcompact-input">

3520 Input di PostCompact3546 Input di PostCompact


3533}3559}

3534```3560```

3535 3561 

3536Gli hook PostCompact non hanno controllo decisionale. Non possono influire sul risultato della compattazione, ma possono eseguire attività successive.3562Gli hook PostCompact non hanno controllo decisionale. Non possono influenzare il risultato della compattazione ma possono eseguire attività successive.

3537 3563 

3538<h3 id="premodelswitch">3564<h3 id="premodelswitch">

3539 PreModelSwitch3565 PreModelSwitch


3544PreModelSwitch richiede Claude Code v2.1.251 o successiva. Claude Code lo esegue per queste richieste:3570PreModelSwitch richiede Claude Code v2.1.251 o successiva. Claude Code lo esegue per queste richieste:

3545 3571 

3546* `/model <name>` e il selettore di `/model`3572* `/model <name>` e il selettore di `/model`

3547* Il selettore di modello `Option+P` o `Alt+P`3573* Il selettore di modelli `Option+P` o `Alt+P`

3548* L'impostazione Model in `/config`3574* L'impostazione Model in `/config`

3549* L'attivazione della [modalità veloce](/docs/it/fast-mode) quando questa cambia il modello della sessione3575* L'attivazione della [modalità veloce](/docs/it/fast-mode) quando questa cambia il modello della sessione

3550* Una richiesta `set_model`, o un cambio di modello in una richiesta `apply_flag_settings`, da un host dell'[Agent SDK](/docs/it/agent-sdk/typescript#query-object) o da [Remote Control](/docs/it/remote-control)3576* Una richiesta `set_model`, o un cambio di modello in una richiesta `apply_flag_settings`, da un host dell'[Agent SDK](/docs/it/agent-sdk/typescript#query-object) o da [Remote Control](/docs/it/remote-control)

3551 3577 

3552Claude Code non esegue gli hook PreModelSwitch per i cambi che effettua autonomamente, come un [fallback automatico del modello](/docs/it/model-config#automatic-model-fallback) o il ripristino del modello quando riprendi una sessione. Queste modifiche raggiungono solo [PostModelSwitch](#postmodelswitch).3578Claude Code non esegue gli hook PreModelSwitch per i cambi che effettua autonomamente, come un [fallback automatico del modello](/docs/it/model-config#automatic-model-fallback) o il ripristino del modello quando riprendi una sessione. Queste modifiche raggiungono solo [PostModelSwitch](#postmodelswitch).

3553 3579 

3554Claude Code confronta il matcher con il nome canonico del modello a cui la sessione sta passando, ignorando un eventuale suffisso `[1m]`. Un alias come `opus`, un ID di modello con data e un ID specifico del provider come un ID di modello Amazon Bedrock corrispondono tutti all'unico nome canonico in cui si risolvono, quindi `claude-opus-5` copre ogni grafia di Opus 5.3580Claude Code confronta il matcher con il nome canonico del modello a cui la sessione sta passando, ignorando qualsiasi suffisso `[1m]`. Un alias come `opus`, un ID di modello con data e un ID specifico del provider come un ID di modello Amazon Bedrock corrispondono tutti all'unico nome canonico a cui si risolvono, quindi `claude-opus-5` copre ogni variante di scrittura di Opus 5.

3555 3581 

3556Quando Claude Code non riesce a determinare un nome canonico per la destinazione, ad esempio un ID di modello personalizzato noto solo al tuo [gateway LLM](/docs/it/llm-gateway), esegue ogni hook PreModelSwitch indipendentemente dal matcher. Un hook che blocca dovrebbe quindi controllare `to_model` dal proprio input anziché affidarsi solo al matcher.3582Quando Claude Code non riesce a determinare un nome canonico per il modello di destinazione, ad esempio un ID di modello personalizzato che solo il tuo [gateway LLM](/docs/it/llm-gateway) conosce, esegue ogni hook PreModelSwitch indipendentemente dal matcher. Un hook che blocca dovrebbe quindi controllare `to_model` dal suo input invece di affidarsi solo al matcher.

3557 3583 

3558Scrivi il matcher come nome esatto, come elenco separato da `|` come `claude-opus-4-6|claude-opus-5`, o come espressione regolare come `.*opus.*`. Questo esempio usa un matcher con nome esatto e controlla anche `to_model` dall'input dell'hook, quindi rifiuta un cambio a Opus 4.6 uscendo con codice 2 e lascia passare qualsiasi altra destinazione:3584Scrivi il matcher come nome esatto, come elenco separato da `|` come `claude-opus-4-6|claude-opus-5`, o come espressione regolare come `.*opus.*`. Questo esempio usa un matcher con nome esatto e controlla anche `to_model` dall'input dell'hook, quindi rifiuta un passaggio a Opus 4.6 uscendo con codice 2 e lascia passare qualsiasi altra destinazione:

3559 3585 

3560<Tabs>3586<Tabs>

3561 <Tab title="macOS/Linux">3587 <Tab title="macOS/Linux">


3581 </Tab>3607 </Tab>

3582 3608 

3583 <Tab title="Windows (PowerShell)">3609 <Tab title="Windows (PowerShell)">

3584 Registra un hook di comando che esegue uno script tramite PowerShell:3610 Registra un hook di tipo command che esegue uno script tramite PowerShell:

3585 3611 

3586 ```json theme={null}3612 ```json theme={null}

3587 {3613 {


3627 Input di PreModelSwitch3653 Input di PreModelSwitch

3628</h4>3654</h4>

3629 3655 

3630Oltre ai [campi di input comuni](#common-input-fields), gli hook PreModelSwitch ricevono i campi in questa tabella. Gli ultimi cinque descrivono quanto costa reinviare la conversazione al nuovo modello, così un hook può mostrare quella cifra prima che il cambio avvenga.3656Oltre ai [campi di input comuni](#common-input-fields), gli hook PreModelSwitch ricevono i campi di questa tabella. Gli ultimi cinque descrivono quanto costa reinviare la conversazione al nuovo modello, così un hook può mostrare quella cifra prima che il cambio avvenga.

3631 3657 

3632| Campo | Tipo | Descrizione |3658| Campo | Tipo | Descrizione |

3633| :- | :- | :- |3659| :- | :- | :- |

3634| `from_model` | string | ID del modello da cui parte il cambio |3660| `from_model` | string | ID del modello da cui parte il cambio |

3635| `to_model` | string | ID del modello a cui porta il cambio. Il matcher viene confrontato con il nome canonico di questo modello |3661| `to_model` | string | ID del modello verso cui avviene il cambio. Il matcher si confronta con il nome canonico di questo modello |

3636| `requested_model` | string o `null` | Il modello indicato dalla richiesta: un alias come `opus`, un ID di modello completo, oppure `null` quando la richiesta era per il modello predefinito |3662| `requested_model` | string o `null` | Il modello indicato dalla richiesta: un alias come `opus`, un ID di modello completo, oppure `null` quando la richiesta era per il modello predefinito |

3637| `source` | string | Da dove proviene la richiesta: `"command"` per `/model <name>`, l'impostazione Model in `/config` o l'attivazione della modalità veloce; `"picker"` per un selettore di modello; `"sdk"` per una richiesta `set_model`, o un cambio di modello in una richiesta `apply_flag_settings`, da un host dell'Agent SDK o da Remote Control |3663| `source` | string | Da dove proviene la richiesta: `"command"` per `/model <name>`, l'impostazione Model in `/config` o l'attivazione della modalità veloce; `"picker"` per un selettore di modelli; `"sdk"` per una richiesta `set_model`, o un cambio di modello in una richiesta `apply_flag_settings`, da un host dell'Agent SDK o da Remote Control |

3638| `context_tokens` | number | Token che la richiesta successiva reinvia come prompt: i token di input, lettura dalla cache, creazione della cache e output dell'ultima risposta nella conversazione principale, combinati. `0` prima della prima risposta |3664| `context_tokens` | number | Token che la richiesta successiva reinvia come prompt: i token di input, di lettura dalla cache, di creazione della cache e di output dell'ultima risposta nella conversazione principale, sommati. `0` prima della prima risposta |

3639| `prompt_cache_warm` | boolean | Indica se la cache del prompt del modello corrente è probabilmente ancora calda, il che significa che il cambio la perde |3665| `prompt_cache_warm` | boolean | Se la cache del prompt del modello corrente è probabilmente ancora calda, il che significa che il cambio la fa perdere |

3640| `cache_ttl` | string | [Durata della cache del prompt](/docs/it/prompt-caching#cache-lifetime) che Claude Code richiede per questa sessione: `"5m"` o `"1h"` |3666| `cache_ttl` | string | [Durata della cache del prompt](/docs/it/prompt-caching#cache-lifetime) che Claude Code richiede per questa sessione: `"5m"` o `"1h"` |

3641| `estimated_cache_write_usd` | number | Costo stimato in dollari USA della scrittura di `context_tokens` nella cache del prompt su `to_model` alla tariffa di `cache_ttl`, esclusa la risposta successiva. Il server potrebbe non dover rimemorizzare nella cache l'intero contesto, quindi consideralo una stima |3667| `estimated_cache_write_usd` | number | Costo stimato in dollari USA della scrittura di `context_tokens` nella cache del prompt su `to_model` alla tariffa di `cache_ttl`, esclusa la risposta successiva. Il server potrebbe non dover rimemorizzare nella cache l'intero contesto, quindi consideralo una stima |

3642| `pricing` | string | Come Claude Code ha calcolato il prezzo di `estimated_cache_write_usd`: `"configured"` alle tariffe della tua organizzazione quando le ha configurate, `"catalog"` al prezzo di listino, oppure `"default"` quando `to_model` non ha un prezzo noto e Claude Code ha ipotizzato una tariffa predefinita |3668| `pricing` | string | Come Claude Code ha calcolato il prezzo di `estimated_cache_write_usd`: `"configured"` alle tariffe della tua organizzazione quando le ha configurate, `"catalog"` al prezzo di listino, oppure `"default"` quando `to_model` non ha un prezzo noto e Claude Code ha assunto una tariffa predefinita |

3643 3669 

3644Questo esempio mostra l'input per `/model opus` in una sessione che usa Sonnet 5:3670Questo esempio mostra l'input per `/model opus` in una sessione che usa Sonnet 5:

3645 3671 


3667 3693 

3668Gli hook `PreModelSwitch` possono annullare il cambio, chiedere all'utente di confermarlo o lasciarlo procedere. Il codice di uscita 2 o un `decision: "block"` di primo livello annulla il cambio.3694Gli hook `PreModelSwitch` possono annullare il cambio, chiedere all'utente di confermarlo o lasciarlo procedere. Il codice di uscita 2 o un `decision: "block"` di primo livello annulla il cambio.

3669 3695 

3670Per un controllo più preciso, restituisci `permissionDecision` e `permissionDecisionReason` in un oggetto `hookSpecificOutput`, come per [PreToolUse](#pretooluse-decision-control). `PreModelSwitch` accetta `"allow"`, `"deny"` e `"ask"`. Non accetta `"defer"`, `updatedInput` né `additionalContext`. La tabella seguente descrive entrambi i campi:3696Per un controllo più preciso, restituisci `permissionDecision` e `permissionDecisionReason` in un oggetto `hookSpecificOutput`, come in [PreToolUse](#pretooluse-decision-control). `PreModelSwitch` accetta `"allow"`, `"deny"` e `"ask"`. Non accetta `"defer"`, `updatedInput` o `additionalContext`. La tabella seguente descrive entrambi i campi:

3671 3697 

3672| Campo | Descrizione |3698| Campo | Descrizione |

3673| :- | :- |3699| :- | :- |

3674| `permissionDecision` | `"allow"` procede e salta la [conferma che Claude Code mostra mentre la cache del prompt è calda](/docs/it/prompt-caching#switching-models). `"deny"` annulla il cambio. `"ask"` chiede all'utente di confermarlo |3700| `permissionDecision` | `"allow"` procede e salta la [conferma che Claude Code mostra mentre la cache del prompt è calda](/docs/it/prompt-caching#switching-models). `"deny"` annulla il cambio. `"ask"` chiede all'utente di confermarlo |

3675| `permissionDecisionReason` | Per `"deny"`, viene mostrato all'utente come motivo del blocco del cambio, oppure restituito come errore per una richiesta `set_model`. Per `"ask"`, viene mostrato nella richiesta di conferma. Ignorato per `"allow"` |3701| `permissionDecisionReason` | Per `"deny"`, viene mostrato all'utente come motivo per cui il cambio è stato bloccato, oppure restituito come errore per una richiesta `set_model`. Per `"ask"`, viene mostrato nella richiesta di conferma. Ignorato per `"allow"` |

3676 3702 

3677Solo `/model` in una sessione interattiva può mostrare la richiesta `"ask"`. Su ogni altra superficie, inclusa la modalità non interattiva con il flag `-p`, `/config` e le richieste `set_model`, Claude Code tratta `"ask"` come un rifiuto.3703Solo `/model` in una sessione interattiva può mostrare la richiesta di conferma di `"ask"`. Su ogni altra superficie, inclusa la modalità non interattiva con il flag `-p`, `/config` e le richieste `set_model`, Claude Code tratta `"ask"` come un rifiuto.

3678 3704 

3679Questo esempio chiede all'utente di confermare e cita il numero di token da `context_tokens`:3705Questo esempio chiede all'utente di confermare e cita il numero di token da `context_tokens`:

3680 3706 


3688}3714}

3689```3715```

3690 3716 

3691Quando più hook PreModelSwitch restituiscono decisioni diverse, la precedenza è `deny` > `ask` > `allow`.3717Quando più hook PreModelSwitch restituiscono decisioni diverse, l'ordine di precedenza è `deny` > `ask` > `allow`.

3692 3718 

3693Claude Code mostra all'utente qualsiasi `systemMessage` restituito dal tuo hook indipendentemente dalla decisione, quindi un hook che riporta i costi può restituire `{"systemMessage": "..."}` e uscire con 0.3719Claude Code mostra all'utente qualsiasi `systemMessage` restituito dal tuo hook indipendentemente dalla decisione, quindi un hook che riporta i costi può restituire `{"systemMessage": "..."}` e uscire con 0.

3694 3720 

3695Un hook PreModelSwitch che non risponde prima del suo timeout blocca il cambio. Per sapere cosa fa un timeout negli altri eventi, consulta [Timeout](#timeouts). Il timeout predefinito per questo evento è di 30 secondi. `PreModelSwitch` esegue solo hook `command`, `http` e `mcp_tool`, quindi i valori predefiniti di `prompt` e `agent` non si applicano.3721Un hook PreModelSwitch che non risponde prima del suo timeout blocca il cambio. Per sapere cosa comporta un timeout negli altri eventi, consulta [Timeout](#timeouts). Il timeout predefinito per questo evento è di 30 secondi. `PreModelSwitch` esegue solo hook `command`, `http` e `mcp_tool`, quindi i valori predefiniti di `prompt` e `agent` non si applicano.

3696 3722 

3697Un hook che esce con un codice diverso da 0 o 2 e non stampa alcuna decisione JSON è un errore non bloccante, come descritto in [Altri codici di uscita](#other-exit-codes).3723Un hook che esce con un codice diverso da 0 o 2 e non stampa alcuna decisione JSON è un errore non bloccante, come descritto in [Altri codici di uscita](#other-exit-codes).

3698 3724 


3700 PostModelSwitch3726 PostModelSwitch

3701</h3>3727</h3>

3702 3728 

3703Viene eseguito dopo che il modello della sessione è cambiato. Usalo per dare a Claude indicazioni specifiche per il modello senza modificare ogni CLAUDE.md, ad esempio un'istruzione a livello di organizzazione che si applica su determinati modelli.3729Viene eseguito dopo che il modello della sessione è cambiato. Usalo per dare a Claude indicazioni specifiche per il modello senza modificare ogni CLAUDE.md, ad esempio un'istruzione valida per tutta l'organizzazione che si applica a determinati modelli.

3704 3730 

3705PostModelSwitch richiede Claude Code v2.1.251 o successiva. Non può bloccare, perché il modello è già cambiato. Claude Code esegue gli hook PostModelSwitch dopo uno qualsiasi di questi cambiamenti:3731PostModelSwitch richiede Claude Code v2.1.251 o successiva. Non può bloccare, perché il modello è già cambiato. Claude Code esegue gli hook PostModelSwitch dopo una qualsiasi di queste modifiche:

3706 3732 

3707* Un cambio richiesto da te o da un client3733* Un cambio richiesto da te o da un client

3708* Un [fallback automatico del modello](/docs/it/model-config#automatic-model-fallback), che cambia il modello della sessione3734* Un [fallback automatico del modello](/docs/it/model-config#automatic-model-fallback), che cambia il modello della sessione

3709* Un'impostazione come [`opusplan`](/docs/it/model-config#opusplan-model-setting) che entra o esce dal plan mode3735* Un'impostazione come [`opusplan`](/docs/it/model-config#opusplan-model-setting) che entra o esce dal plan mode

3710* Claude Code che ripristina il modello quando riprendi una sessione3736* Il ripristino del modello da parte di Claude Code quando riprendi una sessione

3711 3737 

3712Claude Code non esegue gli hook PostModelSwitch quando un modello di una [catena di modelli di fallback](/docs/it/model-config#fallback-model-chains) gestisce un turno, perché quella sostituzione dura un solo turno e lascia invariato il modello della sessione.3738Claude Code non esegue gli hook PostModelSwitch quando un modello di una [catena di modelli di fallback](/docs/it/model-config#fallback-model-chains) gestisce un turno, perché quella sostituzione dura un turno e lascia invariato il modello della sessione.

3713 3739 

3714Il matcher segue le stesse regole di [PreModelSwitch](#premodelswitch): Claude Code lo confronta con il nome canonico del modello a cui la sessione è passata.3740Il matcher segue le stesse regole di [PreModelSwitch](#premodelswitch): Claude Code lo confronta con il nome canonico del modello a cui la sessione è passata.

3715 3741 


3733}3759}

3734```3760```

3735 3761 

3736Per verificare che l'hook funzioni, passa a un modello Opus da una sessione che usa un modello diverso, ad esempio esegui `/model opus` da una sessione Sonnet, quindi chiedi a Claude quali indicazioni ha sul modello corrente.3762Per verificare che l'hook funzioni, passa a un modello Opus da una sessione che usa un modello diverso, ad esempio esegui `/model opus` da una sessione Sonnet, poi chiedi a Claude quali indicazioni ha riguardo al modello corrente.

3737 3763 

3738<h4 id="postmodelswitch-input">3764<h4 id="postmodelswitch-input">

3739 Input di PostModelSwitch3765 Input di PostModelSwitch

3740</h4>3766</h4>

3741 3767 

3742Gli hook PostModelSwitch ricevono gli stessi campi di [PreModelSwitch](#premodelswitch-input), con `hook_event_name` impostato su `"PostModelSwitch"` e due ulteriori valori di `source`: `"auto"` per un fallback automatico o un'altra modifica che Claude Code ha effettuato autonomamente, e `"resume"` per il modello ripristinato quando riprendi una sessione.3768Gli hook PostModelSwitch ricevono gli stessi campi di [PreModelSwitch](#premodelswitch-input), con `hook_event_name` impostato su `"PostModelSwitch"` e due valori aggiuntivi di `source`: `"auto"` per un fallback automatico o un'altra modifica effettuata autonomamente da Claude Code, e `"resume"` per il modello ripristinato quando riprendi una sessione.

3743 3769 

3744`requested_model` è `null` quando `source` è `"auto"`. Quando `source` è `"resume"`, è l'impostazione del modello salvata che Claude Code ha ripristinato.3770`requested_model` è `null` quando `source` è `"auto"`. Quando `source` è `"resume"`, è l'impostazione del modello salvata che Claude Code ha ripristinato.

3745 3771 


3760</h3>3786</h3>

3761 3787 

3762Viene eseguito quando una sessione di Claude Code termina. Utile per attività di pulizia, per registrare le statistiche3788Viene eseguito quando una sessione di Claude Code termina. Utile per attività di pulizia, per registrare le statistiche

3763della sessione o salvare lo stato della sessione. Supporta i matcher per filtrare in base al motivo di uscita.3789della sessione o per salvare lo stato della sessione. Supporta i matcher per filtrare in base al motivo dell'uscita.

3764 3790 

3765Il campo `reason` nell'input dell'hook indica perché la sessione è terminata:3791Il campo `reason` nell'input dell'hook indica perché la sessione è terminata:

3766 3792 


3771| `logout` | L'utente è uscito dall'account |3797| `logout` | L'utente è uscito dall'account |

3772| `prompt_input_exit` | L'utente è uscito mentre l'input del prompt era visibile |3798| `prompt_input_exit` | L'utente è uscito mentre l'input del prompt era visibile |

3773| `other` | Altri motivi di uscita |3799| `other` | Altri motivi di uscita |

3774| `bypass_permissions_disabled` | Rimosso nella v2.1.234; Claude Code non lo invia. Rimuovilo dai tuoi matcher `SessionEnd` |3800| `bypass_permissions_disabled` | Rimosso nella v2.1.234; Claude Code non lo invia. Eliminalo dai tuoi matcher `SessionEnd` |

3775 3801 

3776<h4 id="sessionend-input">3802<h4 id="sessionend-input">

3777 Input di SessionEnd3803 Input di SessionEnd


3789}3815}

3790```3816```

3791 3817 

3792Gli hook SessionEnd non hanno controllo decisionale. Non possono bloccare la terminazione della sessione, ma possono eseguire attività di pulizia. Claude Code scarta i loro [campi di output JSON](#json-output), come `systemMessage`.3818Gli hook SessionEnd non hanno controllo decisionale. Non possono bloccare la chiusura della sessione ma possono eseguire attività di pulizia. Claude Code scarta i loro [campi di output JSON](#json-output), come `systemMessage`.

3793 3819 

3794Gli hook SessionEnd hanno un timeout predefinito di 1,5 secondi. Si applica quando esci, esegui `/clear` o cambi sessione con `/resume` interattivo. Puoi concedere più tempo a un hook in due modi:3820Gli hook SessionEnd hanno un timeout predefinito di 1,5 secondi. Si applica quando esci, esegui `/clear` o cambi sessione con `/resume` interattivo. Puoi concedere più tempo a un hook in due modi:

3795 3821 

3796* **`timeout` per hook**: imposta `timeout` nella configurazione di quell'hook. Il budget complessivo aumenta automaticamente fino al `timeout` per hook più alto nei tuoi file di impostazioni, fino a 60 secondi. Se aumenti il budget in questo modo, un hook senza un proprio `timeout` mantiene comunque il valore predefinito. I timeout impostati sugli hook forniti dai plugin non aumentano il budget.3822* **`timeout` per singolo hook**: imposta `timeout` nella configurazione di quell'hook. Il budget complessivo aumenta automaticamente per corrispondere al `timeout` per singolo hook più alto nei tuoi file di impostazioni, fino a 60 secondi. Se aumenti il budget in questo modo, un hook senza un proprio `timeout` mantiene comunque il valore predefinito. I timeout impostati sugli hook forniti dai plugin non aumentano il budget.

3797* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**: imposta questa variabile d'ambiente in millisecondi per sovrascrivere esplicitamente il budget. Il valore impostato diventa anche il timeout per ogni hook senza un proprio `timeout`.3823* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**: imposta questa variabile d'ambiente in millisecondi per sovrascrivere esplicitamente il budget. Il valore che imposti diventa anche il timeout per ogni hook senza un proprio `timeout`.

3798 3824 

3799Questo esempio imposta il budget a 5 secondi:3825Questo esempio imposta il budget a 5 secondi:

3800 3826 


3808 Elicitation3834 Elicitation

3809</h3>3835</h3>

3810 3836 

3811Viene eseguito quando un server MCP richiede l'input dell'utente durante un'attività. Per impostazione predefinita, Claude Code mostra una finestra di dialogo interattiva a cui l'utente risponde. Gli hook possono intercettare questa richiesta e rispondere in modo programmatico, saltando completamente la finestra di dialogo.3837Viene eseguito quando un server MCP richiede un input all'utente durante un'attività. Per impostazione predefinita, Claude Code mostra una finestra di dialogo interattiva a cui l'utente risponde. Gli hook possono intercettare questa richiesta e rispondere in modo programmatico, saltando del tutto la finestra di dialogo.

3812 3838 

3813Per un hook completo con la relativa voce di impostazioni e lo script, consulta [Rispondere a una richiesta di modulo da uno script](#answer-a-form-request-from-a-script).3839Per un hook completo con la relativa voce delle impostazioni e lo script, consulta [Rispondere a una richiesta di modulo da uno script](#answer-a-form-request-from-a-script).

3814 3840 

3815Il campo matcher viene confrontato con il nome del server MCP.3841Il campo matcher viene confrontato con il nome del server MCP.

3816 3842 


3818 Input di Elicitation3844 Input di Elicitation

3819</h4>3845</h4>

3820 3846 

3821Oltre ai [campi di input comuni](#common-input-fields), gli hook Elicitation ricevono `mcp_server_name`, `message` e i campi opzionali `mode`, `url`, `elicitation_id` e `requested_schema`.3847Oltre ai [campi di input comuni](#common-input-fields), gli hook Elicitation ricevono `mcp_server_name`, `message` e i campi facoltativi `mode`, `url`, `elicitation_id` e `requested_schema`.

3822 3848 

3823Per l'elicitation in modalità modulo, il caso più comune:3849Per l'elicitation in modalità form, il caso più comune:

3824 3850 

3825```json theme={null}3851```json theme={null}

3826{3852{


3840}3866}

3841```3867```

3842 3868 

3843Per l'elicitation in modalità URL, usata per l'autenticazione basata su browser:3869Per l'elicitation in modalità URL, usata per l'autenticazione tramite browser:

3844 3870 

3845```json theme={null}3871```json theme={null}

3846{3872{


3859 Output di Elicitation3885 Output di Elicitation

3860</h4>3886</h4>

3861 3887 

3862Un hook Elicitation può rispondere alla richiesta al posto dell'utente, rifiutarla o annullarla, oppure lasciarla alla finestra di dialogo. Per rispondere, rifiutare o annullare, esci con 0 e stampa un oggetto `hookSpecificOutput` con un `action`. Il server riceve la tua risposta e non compare alcuna finestra di dialogo. Ogni riga di questa tabella mostra cosa restituire per un esito e cosa riceve il server MCP:3888Un hook Elicitation può rispondere alla richiesta al posto dell'utente, rifiutarla o annullarla, oppure lasciarla alla finestra di dialogo. Per rispondere, rifiutare o annullare, esci con 0 e stampa un oggetto `hookSpecificOutput` con un `action`. Il server riceve la tua risposta e non appare alcuna finestra di dialogo. Ogni riga di questa tabella mostra cosa restituire per un determinato esito e cosa riceve il server MCP:

3863 3889 

3864| Per | Restituisci | Il server riceve |3890| Per | Restituisci | Il server riceve |

3865| :- | :- | :- |3891| :- | :- | :- |


3868| Annullare la richiesta | `"action": "cancel"` | `cancel` |3894| Annullare la richiesta | `"action": "cancel"` | `cancel` |

3869| Lasciare la richiesta all'utente | Nessun output, con codice di uscita 0 | La risposta dell'utente dalla [finestra di dialogo](/docs/it/mcp#respond-to-mcp-elicitation-requests) |3895| Lasciare la richiesta all'utente | Nessun output, con codice di uscita 0 | La risposta dell'utente dalla [finestra di dialogo](/docs/it/mcp#respond-to-mcp-elicitation-requests) |

3870 3896 

3871Questo output risponde alla richiesta in modalità modulo mostrata in [Input di Elicitation](#elicitation-input). Le chiavi in `content` sono i nomi delle proprietà dal `requested_schema` di quella richiesta:3897Questo output risponde alla richiesta in modalità form mostrata in [Input di Elicitation](#elicitation-input). Le chiavi in `content` sono i nomi delle proprietà dal `requested_schema` di quella richiesta:

3872 3898 

3873```json theme={null}3899```json theme={null}

3874{3900{


3897 3923 

3898Per una richiesta in modalità URL, un hook che restituisce `accept` salta la finestra di dialogo, quindi l'URL non viene mai aperto.3924Per una richiesta in modalità URL, un hook che restituisce `accept` salta la finestra di dialogo, quindi l'URL non viene mai aperto.

3899 3925 

3900Claude Code scarta `reason`, `systemMessage` e `continue` dall'output JSON di un hook Elicitation, qualunque `action` tu restituisca.3926Claude Code scarta `reason`, `systemMessage` e `continue` dall'output JSON di un hook Elicitation, qualunque sia l'`action` che restituisci.

3901 3927 

3902<h4 id="other-ways-to-decline-an-elicitation">3928<h4 id="other-ways-to-decline-an-elicitation">

3903 Altri modi per rifiutare un'elicitation3929 Altri modi per rifiutare un'elicitation


3921 3947 

3922Né l'utente né il server vedono perché il tuo hook ha rifiutato, perché Claude Code non mostra il tuo stderr né il tuo `reason`.3948Né l'utente né il server vedono perché il tuo hook ha rifiutato, perché Claude Code non mostra il tuo stderr né il tuo `reason`.

3923 3949 

3924Claude Code ignorava un `decision` di primo livello dagli hook `Elicitation` ed `ElicitationResult` dalla v2.1.105 fino alla correzione nella v2.1.284.3950Claude Code ha ignorato un `decision` di primo livello dagli hook `Elicitation` ed `ElicitationResult` dalla v2.1.105 fino alla correzione nella v2.1.284.

3925 3951 

3926<h4 id="answer-a-form-request-from-a-script">3952<h4 id="answer-a-form-request-from-a-script">

3927 Rispondere a una richiesta di modulo da uno script3953 Rispondere a una richiesta di modulo da uno script

3928</h4>3954</h4>

3929 3955 

3930Questo esempio risponde a una domanda ricorrente al posto dell'utente. Un server MCP chiamato `issue-tracker` chiede una chiave di progetto in un modulo, e l'hook inserisce `DOCS`. Lo script accetta quando `project_key` è l'unico campo del modulo. Per qualsiasi altra richiesta non stampa nulla, quindi compare la finestra di dialogo.3956Questo esempio risponde a una domanda ricorrente al posto dell'utente. Un server MCP chiamato `issue-tracker` chiede una chiave di progetto in un modulo, e l'hook inserisce `DOCS`. Lo script accetta quando `project_key` è l'unico campo del modulo. Per qualsiasi altra richiesta non stampa nulla, quindi appare la finestra di dialogo.

3931 3957 

3932<Tabs>3958<Tabs>

3933 <Tab title="macOS/Linux">3959 <Tab title="macOS/Linux">

3934 Registra un hook di comando per l'evento nel tuo file di impostazioni, con il nome del server come matcher:3960 Registra un hook di tipo command per l'evento nel tuo file di impostazioni, con il nome del server come matcher:

3935 3961 

3936 ```json theme={null}3962 ```json theme={null}

3937 {3963 {


3966 </Tab>3992 </Tab>

3967 3993 

3968 <Tab title="Windows (PowerShell)">3994 <Tab title="Windows (PowerShell)">

3969 Registra un hook di comando che esegue lo script tramite PowerShell, con il nome del server come matcher:3995 Registra un hook di tipo command che esegue lo script tramite PowerShell, con il nome del server come matcher:

3970 3996 

3971 ```json theme={null}3997 ```json theme={null}

3972 {3998 {


4012 </Tab>4038 </Tab>

4013</Tabs>4039</Tabs>

4014 4040 

4015Per verificare che l'hook funzioni, avvia Claude Code con `claude --debug` e assegna a Claude un'attività che porti il server a chiedere la chiave di progetto. Non compare alcuna finestra di dialogo, e il [log di debug](#debug-hooks) contiene una riga che termina con `Elicitation resolved by hook: {"action":"accept","content":{"project_key":"DOCS"}}`.4041Per verificare che l'hook funzioni, avvia Claude Code con `claude --debug` e dai a Claude un'attività che porti il server a chiedere la chiave di progetto. Non appare alcuna finestra di dialogo, e il [log di debug](#debug-hooks) contiene una riga che termina con `Elicitation resolved by hook: {"action":"accept","content":{"project_key":"DOCS"}}`.

4016 4042 

4017<h3 id="elicitationresult">4043<h3 id="elicitationresult">

4018 ElicitationResult4044 ElicitationResult


4028 Input di ElicitationResult4054 Input di ElicitationResult

4029</h4>4055</h4>

4030 4056 

4031Oltre ai [campi di input comuni](#common-input-fields), gli hook ElicitationResult ricevono `mcp_server_name`, `action` e i campi opzionali `mode`, `elicitation_id` e `content`.4057Oltre ai [campi di input comuni](#common-input-fields), gli hook ElicitationResult ricevono `mcp_server_name`, `action` e i campi facoltativi `mode`, `elicitation_id` e `content`.

4032 4058 

4033```json theme={null}4059```json theme={null}

4034{4060{


4047 Output di ElicitationResult4073 Output di ElicitationResult

4048</h4>4074</h4>

4049 4075 

4050Un hook ElicitationResult può lasciar passare la risposta dell'utente, modificarne i valori o bloccarla. Per modificare o bloccare la risposta, esci con 0 e stampa un oggetto `hookSpecificOutput` con un `action`. Ogni riga di questa tabella mostra cosa restituire per un esito e cosa riceve il server MCP:4076Un hook ElicitationResult può lasciar passare la risposta dell'utente, modificarne i valori o bloccarla. Per modificare o bloccare la risposta, esci con 0 e stampa un oggetto `hookSpecificOutput` con un `action`. Ogni riga di questa tabella mostra cosa restituire per un determinato esito e cosa riceve il server MCP:

4051 4077 

4052| Per | Restituisci | Il server riceve |4078| Per | Restituisci | Il server riceve |

4053| :- | :- | :- |4079| :- | :- | :- |

4054| Lasciar passare la risposta | Nessun output, con codice di uscita 0 | La risposta dell'utente, invariata |4080| Lasciar passare la risposta | Nessun output, con codice di uscita 0 | La risposta dell'utente, invariata |

4055| Modificare i valori inviati | `"action": "accept"`, con i nuovi valori in `content` | `accept` con il tuo `content` al posto dei valori dell'utente |4081| Modificare i valori inviati | `"action": "accept"`, con i nuovi valori in `content` | `accept` con il tuo `content` al posto dei valori dell'utente |

4056| Bloccare la risposta | `"action": "decline"` | `decline`, senza i valori dell'utente |4082| Bloccare la risposta | `"action": "decline"` | `decline`, senza i valori dell'utente |

4057| Annullare la richiesta | `"action": "cancel"` | `cancel`, insieme ai valori inviati dall'utente. Per non inviarli, restituisci `"decline"` |4083| Annullare la richiesta | `"action": "cancel"` | `cancel`, insieme ai valori inviati dall'utente. Per non trasmetterli, restituisci `"decline"` |

4058 4084 

4059Questo output modifica la risposta mostrata in [Input di ElicitationResult](#elicitationresult-input), così il server riceve `alice@example.com` dove l'utente ha inviato `alice`:4085Questo output modifica la risposta mostrata in [Input di ElicitationResult](#elicitationresult-input), così il server riceve `alice@example.com` dove l'utente ha inviato `alice`:

4060 4086 


4070}4096}

4071```4097```

4072 4098 

4073Il tuo `content` sostituisce l'intero oggetto `content` dell'utente, quindi includi i campi che non stai modificando. Restituisci `action` insieme a esso, perché Claude Code ignora un `hookSpecificOutput` che non ha `action`.4099Il tuo `content` sostituisce l'intero oggetto `content` dell'utente, quindi includi i campi che non stai modificando. Restituisci anche `action`, perché Claude Code ignora un `hookSpecificOutput` privo di `action`.

4074 4100 

4075Gli hook ElicitationResult vengono eseguiti anche quando l'utente rifiuta o annulla, e il tuo `action` sostituisce il suo. Verifica che l'`action` dell'input sia `accept` prima di restituire `accept`, altrimenti il tuo hook trasforma una richiesta rifiutata in una accettata. Questo script apporta la stessa modifica quando l'utente ha accettato, mantiene gli altri campi e altrimenti non stampa nulla:4101Gli hook ElicitationResult vengono eseguiti anche quando l'utente rifiuta o annulla, e il tuo `action` sostituisce il suo. Verifica che l'`action` dell'input sia `accept` prima di restituire `accept`, altrimenti il tuo hook trasforma una richiesta rifiutata in una accettata. Questo script applica la stessa modifica quando l'utente ha accettato, mantiene gli altri campi e non stampa nulla negli altri casi:

4076 4102 

4077```bash theme={null}4103```bash theme={null}

4078#!/bin/bash4104#!/bin/bash


4096 4122 

4097Anche il codice di uscita 2 e un `"decision": "block"` di primo livello bloccano la risposta. [Altri modi per rifiutare un'elicitation](#other-ways-to-decline-an-elicitation) spiega quale ha effetto quando un hook li combina, cosa vede l'utente e quali versioni ignoravano `decision`.4123Anche il codice di uscita 2 e un `"decision": "block"` di primo livello bloccano la risposta. [Altri modi per rifiutare un'elicitation](#other-ways-to-decline-an-elicitation) spiega quale ha effetto quando un hook li combina, cosa vede l'utente e quali versioni ignoravano `decision`.

4098 4124 

4099Claude Code scarta `reason`, `systemMessage` e `continue` dall'output JSON di un hook ElicitationResult, qualunque `action` tu restituisca.4125Claude Code scarta `reason`, `systemMessage` e `continue` dall'output JSON di un hook ElicitationResult, qualunque sia l'`action` che restituisci.

4100 4126 

4101<h2 id="prompt-based-hooks">4127<h2 id="prompt-based-hooks">

4102 Hook basati su prompt4128 Hook basati su prompt


4351* **Da sola su stdout**: quando la risposta è l'unico testo su stdout, può estendersi su più righe, come l'output formattato di `jq`. L'estensione su più righe richiede Claude Code v2.1.295 o versioni successive.4377* **Da sola su stdout**: quando la risposta è l'unico testo su stdout, può estendersi su più righe, come l'output formattato di `jq`. L'estensione su più righe richiede Claude Code v2.1.295 o versioni successive.

4352* **Su una riga a sé stante**: un hook asincrono può stampare altro testo su stdout quando la risposta sta da sola su una riga, ad esempio con `jq -c`.4378* **Su una riga a sé stante**: un hook asincrono può stampare altro testo su stdout quando la risposta sta da sola su una riga, ad esempio con `jq -c`.

4353 4379 

4354Claude Code convalida quella risposta JSON rispetto allo stesso [schema di output](#json-output) degli hook sincroni e scarta qualsiasi campo il cui valore ha il tipo errato, come un `systemMessage` che non è una stringa, invece di consegnarlo. Eseguire con `--debug` per vedere un avviso che nomina ogni campo scartato. Prima della v2.1.202, l'output JSON malformato da un hook asincrono poteva causare l'arresto della sessione e l'arresto si ripeteva ogni volta che la sessione veniva ripresa.4380Claude Code convalida quella risposta JSON rispetto allo stesso [schema di output](#json-output) degli hook sincroni e scarta qualsiasi campo il cui valore ha il tipo errato, come un `systemMessage` che non è una stringa, invece di consegnarlo. Esegui con `--debug` per vedere un avviso che nomina ogni campo scartato.

4355 4381 

4356Le notifiche di completamento degli hook asincroni sono soppresse per impostazione predefinita. Per vederle, abilitare la modalità verbose con `Ctrl+O` o avviare Claude Code con `--verbose`.4382Le notifiche di completamento degli hook asincroni sono soppresse per impostazione predefinita. Per vederle, abilitare la modalità verbose con `Ctrl+O` o avviare Claude Code con `--verbose`.

4357 4383 

Details

491 491 

492Per disattivare i suggerimenti di prompt in tutta un'organizzazione, impostate `promptSuggestionEnabled` su `false` nelle [impostazioni gestite](/docs/it/managed-settings). Impostate anche `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` su `false` sotto la chiave [`env`](/docs/it/settings-reference#env) gestita in modo che gli utenti non possano riattivarli con la propria variabile di ambiente.492Per disattivare i suggerimenti di prompt in tutta un'organizzazione, impostate `promptSuggestionEnabled` su `false` nelle [impostazioni gestite](/docs/it/managed-settings). Impostate anche `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` su `false` sotto la chiave [`env`](/docs/it/settings-reference#env) gestita in modo che gli utenti non possano riattivarli con la propria variabile di ambiente.

493 493 

494<h2 id="you-should-know-suggestions">

495 Suggerimenti You should know

496</h2>

497 

498"You should know" cerca una cosa che dovresti sapere ma che potresti esserti perso, come un compromesso che Claude ha scelto senza segnalarlo o un risultato che potrebbe essere errato. Quando ne trova una, mostra una breve nota sopra l'input del prompt:

499 

500```text theme={null}

501✦ Heads up · There was a change to how folder sharing starts in June, which may have bumped usage metrics artificially.

502 1: Learn more 2: Knew this already 0: Dismiss

503```

504 

505È uno dei [mod integrati](/docs/it/plugins/mods/overview#mods-built-into-claude-code) di Claude Code, un plugin integrato in Claude Code che è disattivato per impostazione predefinita. Richiede Claude Code v2.1.287 o versioni successive.

506 

507Mentre è attivo, un agente secondario rilegge la conversazione di tanto in tanto mentre Claude lavora su un'attività più lunga. L'agente secondario è una richiesta separata allo stesso modello e non ha strumenti, quindi non può leggere file, eseguire comandi o modificare ciò che fa Claude.

508 

509Se il mod è disponibile per la tua organizzazione, `/plugin` lo elenca quando ti connetti direttamente alla Claude API con un account claude.ai o una chiave API della Console. Non lo elenca quando ti connetti tramite un [gateway LLM](/docs/it/llm-gateway) o un [gateway delle app Claude](/docs/it/claude-apps-gateway), oppure quando ottieni la tua chiave da un [`apiKeyHelper`](/docs/it/settings-reference#apikeyhelper). Anche con una connessione diretta, queste sessioni non lo elencano:

510 

511* Una sessione che [non recupera i flag di funzionalità](/docs/it/env-vars#features-that-need-feature-flag-fetching) da cui dipende il mod, ad esempio una con `DISABLE_TELEMETRY` impostato

512* Una [prima sessione dopo un'installazione o un aggiornamento](/docs/it/env-vars#first-session-after-an-install-or-upgrade) i cui flag non sono ancora arrivati

513 

514Per attivarlo, esegui questo comando nel prompt di Claude Code:

515 

516```text theme={null}

517/plugin enable cc-plugin-you-should-know@builtin

518```

519 

520Dove `/plugin` non elenca il mod, il comando di attivazione risponde `Plugin "cc-plugin-you-should-know@builtin" is not installed in this project`.

521 

522<h3 id="cost-of-checks">

523 Costo dei controlli

524</h3>

525 

526Mentre il mod è attivo, i controlli sono richieste in background allo stesso modello utilizzato dalla tua sessione e vengono conteggiati nei limiti di utilizzo del tuo piano o nei tuoi costi API. Ogni controllo invia ciò che è già nel contesto di Claude, ovvero la conversazione fino a quel momento con i risultati degli strumenti, seguita dalle istruzioni proprie del mod e dal testo delle tue note recenti. La parte della conversazione viene letta dal [prompt caching](/docs/it/prompt-caching) della sessione alle stesse condizioni della successiva richiesta di Claude. Le istruzioni, che ammontano a diverse migliaia di token, e la risposta dell'agente secondario vengono fatturate per intero a ogni controllo.

527 

528Per osservare i controlli mentre avvengono, imposta [`CLAUDE_CODE_YOU_SHOULD_KNOW_DEBUG=1`](/docs/it/env-vars) nella tua shell prima di avviare Claude Code.

529 

530<h3 id="answer-a-note">

531 Rispondere a una nota

532</h3>

533 

534Digita da sola la cifra della scelta in un input del prompt vuoto. Una nota offre queste scelte:

535 

536* **Learn more**: apre una breve spiegazione sotto la nota, con le proprie scelte:

537 * **Understood**: la chiude e contrassegna l'argomento come noto

538 * **Chat in main session**: cita la nota nel tuo input del prompt così puoi aggiungere una domanda e inviarla a Claude

539 * **Dismiss**: la chiude senza contrassegnare l'argomento come noto

540* **Knew this already**: chiude la nota e contrassegna l'argomento come noto.

541* **Dismiss**: chiude la nota.

542 

543L'agente principale non vede una nota a meno che tu non la invii con **Chat in main session**.

544 

545Claude Code conserva le tue note recenti e gli argomenti che hai contrassegnato come noti in un file il cui nome inizia con `cc-plugin-you-should-know` in `~/.claude/plugins/store/`. Ogni controllo, in questa sessione e in quelle successive, li elenca all'agente secondario come elementi da non ripetere. Claude Code elimina il file dopo che è trascorso [`cleanupPeriodDays`](/docs/it/settings-reference#cleanupperioddays) senza che una sessione lo abbia letto o scritto. Per cancellarli prima, elimina quel file mentre nessuna sessione è in esecuzione.

546 

547<h3 id="turn-off-you-should-know">

548 Disattivare You should know

549</h3>

550 

551Per disattivare You should know, usa uno dei seguenti metodi:

552 

553* Nel prompt di Claude Code, esegui `/plugin disable cc-plugin-you-should-know@builtin`, oppure disattivalo dalla scheda **Installed** di `/plugin`

554* Dopo aver scelto **Dismiss** su una nota senza aprire prima **Learn more**, scegli **Turn off suggestions** sulla riga `Dismissed.`, che scompare dopo 20 secondi

555 

494<h2 id="emoji-shortcodes">556<h2 id="emoji-shortcodes">

495 Scorciatoie emoji557 Scorciatoie emoji

496</h2>558</h2>

Details

257 257 

258Elenca le directory in `sparsePaths`, non i singoli file. I file a livello di radice come `package.json`, `tsconfig.base.json` e i file di lock vengono sempre controllati insieme alle directory che elenchi. Le directory a livello di radice non lo sono, quindi includi `.claude` nell'elenco se vuoi che il `.claude/settings.json` della radice del repository, `.claude/rules/` e le skills siano disponibili dentro il worktree. Per skills di progetto, agenti e comandi, vedi [Cosa i worktrees condividono con il checkout principale](/docs/it/worktrees#what-worktrees-share-with-the-main-checkout).258Elenca le directory in `sparsePaths`, non i singoli file. I file a livello di radice come `package.json`, `tsconfig.base.json` e i file di lock vengono sempre controllati insieme alle directory che elenchi. Le directory a livello di radice non lo sono, quindi includi `.claude` nell'elenco se vuoi che il `.claude/settings.json` della radice del repository, `.claude/rules/` e le skills siano disponibili dentro il worktree. Per skills di progetto, agenti e comandi, vedi [Cosa i worktrees condividono con il checkout principale](/docs/it/worktrees#what-worktrees-share-with-the-main-checkout).

259 259 

260Sparse checkout richiede a git di abilitare `extensions.worktreeConfig` nel `.git/config` condiviso del repository mentre esiste un worktree sparse. Claude Code rimuove quella voce dopo che l'ultimo worktree viene rimosso, ma solo se Claude Code l'ha aggiunta. Non rimuove mai un valore che hai impostato tu stesso. Prima della v2.1.207, la voce rimaneva dopo che l'ultimo worktree veniva rimosso, e gli strumenti basati su go-git come `tea` non riuscivano ad aprire il repository finché non eseguivi `git config --unset extensions.worktreeConfig`.260Sparse checkout richiede a git di abilitare `extensions.worktreeConfig` nel `.git/config` condiviso del repository mentre esiste un worktree sparse. Claude Code rimuove quella voce dopo che l'ultimo worktree viene rimosso, ma solo se Claude Code l'ha aggiunta. Non rimuove mai un valore che hai impostato tu stesso.

261 261 

262Per evitare di duplicare directory di grandi dimensioni come `node_modules` tra i worktrees, abbina `sparsePaths` con `symlinkDirectories` nello stesso `.claude/settings.json`:262Per evitare di duplicare directory di grandi dimensioni come `node_modules` tra i worktrees, abbina `sparsePaths` con `symlinkDirectories` nello stesso `.claude/settings.json`:

263 263 

Details

518 518 

519Mettere la credenziale del gateway in `ANTHROPIC_FOUNDRY_API_KEY`; viene inviata al gateway come intestazione `x-api-key`. Un gateway che si aspetta un bearer token può prendere [`ANTHROPIC_FOUNDRY_AUTH_TOKEN`](/docs/it/env-vars) invece. Claude Code invia quel valore come intestazione `Authorization: Bearer`, e ha la precedenza su `ANTHROPIC_FOUNDRY_API_KEY` quando entrambi sono impostati. Richiede Claude Code v2.1.203 o successivo.519Mettere la credenziale del gateway in `ANTHROPIC_FOUNDRY_API_KEY`; viene inviata al gateway come intestazione `x-api-key`. Un gateway che si aspetta un bearer token può prendere [`ANTHROPIC_FOUNDRY_AUTH_TOKEN`](/docs/it/env-vars) invece. Claude Code invia quel valore come intestazione `Authorization: Bearer`, e ha la precedenza su `ANTHROPIC_FOUNDRY_API_KEY` quando entrambi sono impostati. Richiede Claude Code v2.1.203 o successivo.

520 520 

521Per un gateway che inietta la sua intestazione `Authorization`, impostare `CLAUDE_CODE_SKIP_FOUNDRY_AUTH=1` e lasciare entrambe le variabili di credenziale non impostate. Claude Code invia quindi richieste senza una credenziale Azure e preserva l'intestazione `Authorization` fornita, ad esempio attraverso `ANTHROPIC_CUSTOM_HEADERS`. Prima della v2.1.203, `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` senza una chiave API lasciava il client Microsoft Foundry incapace di inviare richieste.521Per un gateway che inietta una propria intestazione `Authorization`, imposta `CLAUDE_CODE_SKIP_FOUNDRY_AUTH=1` e lascia entrambe le variabili di credenziale non impostate. Claude Code invia quindi le richieste senza una credenziale Azure e preserva l'intestazione `Authorization` che fornisci, ad esempio tramite `ANTHROPIC_CUSTOM_HEADERS`.

522 522 

523<Tabs>523<Tabs>

524 <Tab title="Bash o Zsh">524 <Tab title="Bash o Zsh">

Details

168| :- | :- |168| :- | :- |

169| `x-claude-code-request-class` | Che tipo di richiesta è questa: `main` per un turno della conversazione principale, `subagent` per un turno di un [subagent](/docs/it/sub-agents), `workflow` per un agente in esecuzione all'interno di un flusso di lavoro, `compaction` per la richiesta di riepilogo che compatta una conversazione, o `auxiliary` per richieste laterali come titoli di sessione, classificatori e riepiloghi. Inviato su ogni richiesta |169| `x-claude-code-request-class` | Che tipo di richiesta è questa: `main` per un turno della conversazione principale, `subagent` per un turno di un [subagent](/docs/it/sub-agents), `workflow` per un agente in esecuzione all'interno di un flusso di lavoro, `compaction` per la richiesta di riepilogo che compatta una conversazione, o `auxiliary` per richieste laterali come titoli di sessione, classificatori e riepiloghi. Inviato su ogni richiesta |

170| `x-claude-code-agent-type` | Il tipo di subagent che ha emesso la richiesta: un nome di tipo di agente integrato come `Explore`, `Plan` o `general-purpose`, o `custom` per un agente definito dall'utente, `teammate` per un membro del [team di agenti](/docs/it/agent-teams) in esecuzione nel processo del leader, o `fork` per un [fork](/docs/it/sub-agents#fork-the-current-conversation). Presente solo sui turni propri di un subagent; la compattazione o le richieste laterali di un subagent mantengono l'ID dell'agente ma non portano alcun tipo. Un nome di agente scelto dall'utente non viene mai inviato |170| `x-claude-code-agent-type` | Il tipo di subagent che ha emesso la richiesta: un nome di tipo di agente integrato come `Explore`, `Plan` o `general-purpose`, o `custom` per un agente definito dall'utente, `teammate` per un membro del [team di agenti](/docs/it/agent-teams) in esecuzione nel processo del leader, o `fork` per un [fork](/docs/it/sub-agents#fork-the-current-conversation). Presente solo sui turni propri di un subagent; la compattazione o le richieste laterali di un subagent mantengono l'ID dell'agente ma non portano alcun tipo. Un nome di agente scelto dall'utente non viene mai inviato |

171| `x-claude-code-compaction` | Presente sulla richiesta che riepiloga la conversazione durante una [compattazione](/docs/it/prompt-caching#compacting-the-conversation). Il valore dice cosa l'ha attivata: `auto` quando la finestra di contesto si avvicinava alla capacità, `manual` per `/compact`, o `reactive` quando l'API ha rifiutato una richiesta come troppo lunga. Assente su ogni altra richiesta |171| `x-claude-code-compaction` | Presente sulla richiesta che riepiloga la conversazione durante una [compattazione](/docs/it/prompt-caching#compacting-the-conversation). Il valore dice cosa l'ha attivata: `auto` quando la finestra di contesto si avvicinava alla capacità, `manual` per `/compact`, o `reactive` quando l'API ha rifiutato una richiesta come troppo lunga. Il valore è `auto` anche per la [compattazione per inattività](/docs/it/settings-reference#idlecompaction). Assente su ogni altra richiesta |

172| `x-claude-code-context-compacted` | Presente una volta, sulla prima richiesta di conversazione principale dopo una compattazione, con gli stessi valori di `x-claude-code-compaction`. Il prefisso della conversazione prima di questa richiesta non viene più utilizzato, quindi una cache basata su di esso può essere eliminata |172| `x-claude-code-context-compacted` | Presente una volta, sulla prima richiesta di conversazione principale dopo una compattazione, con gli stessi valori di `x-claude-code-compaction`. Il prefisso della conversazione prima di questa richiesta non viene più utilizzato, quindi una cache basata su di esso può essere eliminata |

173| `x-claude-code-prev-tool-durations` | Tempo di esecuzione misurato delle chiamate di strumento i cui risultati questa richiesta porta, come `<name>=<ms>;<name>=<ms>`, ad esempio `Bash=742;Read=9`. Inviato sulla richiesta successiva della stessa conversazione dopo un batch di chiamate di strumento, dalla sessione principale o da un subagent |173| `x-claude-code-prev-tool-durations` | Tempo di esecuzione misurato delle chiamate di strumento i cui risultati questa richiesta porta, come `<name>=<ms>;<name>=<ms>`, ad esempio `Bash=742;Read=9`. Inviato sulla richiesta successiva della stessa conversazione dopo un batch di chiamate di strumento, dalla sessione principale o da un subagent |

174| `x-claude-code-prompt-id` | UUID casuale che identifica il prompt dell'utente a cui una richiesta serve. Le richieste che servono un prompt condividono il valore, inclusi i turni dei subagent che il prompt ha avviato. Le richieste non attribuite a un prompt lo omettono. Usarlo per raggruppare le richieste di una sessione per prompt. Richiede Claude Code v2.1.283 o successivo |174| `x-claude-code-prompt-id` | UUID casuale che identifica il prompt dell'utente a cui una richiesta serve. Le richieste che servono un prompt condividono il valore, inclusi i turni dei subagent che il prompt ha avviato. Le richieste non attribuite a un prompt lo omettono. Usarlo per raggruppare le richieste di una sessione per prompt. Richiede Claude Code v2.1.283 o successivo |


291 291 

292Su Claude Code v2.1.227 o successivo, la vostra organizzazione può mantenere [MCP tool search](/docs/it/mcp#scale-with-mcp-tool-search) attivo sotto questa variabile attraverso [managed settings](/docs/it/managed-settings). Ciò che Claude Code invia con questo override in atto dipende da come vi connettete:292Su Claude Code v2.1.227 o successivo, la vostra organizzazione può mantenere [MCP tool search](/docs/it/mcp#scale-with-mcp-tool-search) attivo sotto questa variabile attraverso [managed settings](/docs/it/managed-settings). Ciò che Claude Code invia con questo override in atto dipende da come vi connettete:

293 293 

294* Su una connessione diretta, o attraverso un gateway impostato con `ANTHROPIC_BASE_URL`, Claude Code continua a inviare l'intestazione beta di ricerca degli strumenti, i campi dello strumento `defer_loading`, e i blocchi `tool_reference`, e rimuove il resto294* Su una connessione diretta senza la configurazione HIPAA, o attraverso un gateway impostato con `ANTHROPIC_BASE_URL`, Claude Code continua a inviare l'intestazione beta di ricerca degli strumenti, i campi dello strumento `defer_loading` e i blocchi `tool_reference`

295* Su un provider cloud, o accedendo attraverso un [gateway delle app Claude](/docs/it/claude-apps-gateway), l'override non ha effetto295* Su un provider cloud, o accedendo attraverso un [gateway delle app Claude](/docs/it/claude-apps-gateway), l'override non ha effetto

296* In una sessione che [riceve la configurazione HIPAA](/docs/it/hipaa-setup#check-how-developers-sign-in-and-connect), l'override non ha effetto e la ricerca degli strumenti rimane disattivata

296 297 

297L'insieme delle capacità che Claude Code invia cresce nei rilasci. Per le stringhe di intestazione beta attuali, vedere il [riferimento delle intestazioni beta](https://platform.claude.com/docs/en/api/beta-headers); testare il vostro gateway contro i nuovi rilasci di Claude Code piuttosto che bloccare a un elenco osservato.298L'insieme delle capacità che Claude Code invia cresce nei rilasci. Per le stringhe di intestazione beta attuali, vedere il [riferimento delle intestazioni beta](https://platform.claude.com/docs/en/api/beta-headers); testare il vostro gateway contro i nuovi rilasci di Claude Code piuttosto che bloccare a un elenco osservato.

298 299 

mcp.md +78 −49

Details

90 90 

91Quando si configurano server MCP tramite JSON in `.mcp.json`, `~/.claude.json`, o `claude mcp add-json`, il campo `type` accetta `streamable-http` come alias per `http`. La specifica MCP utilizza il nome `streamable-http` per questo trasporto, quindi le configurazioni copiate dalla documentazione del server funzionano senza modifiche.91Quando si configurano server MCP tramite JSON in `.mcp.json`, `~/.claude.json`, o `claude mcp add-json`, il campo `type` accetta `streamable-http` come alias per `http`. La specifica MCP utilizza il nome `streamable-http` per questo trasporto, quindi le configurazioni copiate dalla documentazione del server funzionano senza modifiche.

92 92 

93Una voce JSON che ha un `url` ma nessun `type` è un errore di configurazione, perché Claude Code legge una voce senza `type` come server stdio. Claude Code salta quel server e segnala `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`. Prima della v2.1.202, Claude Code segnalava questa configurazione errata come `command: expected string, received undefined`.93Una voce JSON che ha un `url` ma nessun `type` è un errore di configurazione, perché Claude Code legge una voce senza `type` come server stdio. Claude Code salta quel server e segnala `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`.

94 94 

95Solo un'applicazione host SDK, come un'applicazione [Agent SDK](/docs/it/agent-sdk/mcp) o l'[app desktop](/docs/it/desktop), può registrare un server in-process `"type": "sdk"`. Claude Code salta una voce `"type": "sdk"` in `.mcp.json`, `~/.claude.json`, o nelle impostazioni e segnala `Skipped — MCP server "<name>" declares type "sdk", which only an SDK host application can register`.95Solo un'applicazione host SDK, come un'applicazione [Agent SDK](/docs/it/agent-sdk/mcp) o l'[app desktop](/docs/it/desktop), può registrare un server in-process `"type": "sdk"`. Claude Code salta una voce `"type": "sdk"` in `.mcp.json`, `~/.claude.json`, o nelle impostazioni e segnala `Skipped — MCP server "<name>" declares type "sdk", which only an SDK host application can register`.

96 96 


128 128 

129Claude Code imposta `CLAUDE_PROJECT_DIR` nell'ambiente del server avviato sulla radice del progetto, in modo che il tuo server possa risolvere i percorsi relativi al progetto senza dipendere dalla directory di lavoro. Questa è la stessa directory che gli hook ricevono nella loro variabile `CLAUDE_PROJECT_DIR`. Leggila dall'interno del processo del tuo server, ad esempio `process.env.CLAUDE_PROJECT_DIR` in Node o `os.environ["CLAUDE_PROJECT_DIR"]` in Python.129Claude Code imposta `CLAUDE_PROJECT_DIR` nell'ambiente del server avviato sulla radice del progetto, in modo che il tuo server possa risolvere i percorsi relativi al progetto senza dipendere dalla directory di lavoro. Questa è la stessa directory che gli hook ricevono nella loro variabile `CLAUDE_PROJECT_DIR`. Leggila dall'interno del processo del tuo server, ad esempio `process.env.CLAUDE_PROJECT_DIR` in Node o `os.environ["CLAUDE_PROJECT_DIR"]` in Python.

130 130 

131`CLAUDE_PROJECT_DIR` è la radice stabile del progetto e non cambia quando aggiungi o rimuovi directory di lavoro a metà sessione. Un server che limita il proprio accesso al file system a un insieme di directory consentite dovrebbe invece implementare la richiesta MCP `roots/list`. Claude Code risponde a `roots/list` con la directory di avvio della sessione più ogni [directory di lavoro aggiuntiva](/docs/it/permissions#working-directories) che hai concesso con `--add-dir`, `/add-dir`, o l'impostazione `additionalDirectories`. Claude Code invia `notifications/roots/list_changed` quando quell'insieme cambia. Prima della v2.1.203, `roots/list` restituiva solo la directory di avvio e Claude Code non inviava `notifications/roots/list_changed`.131`CLAUDE_PROJECT_DIR` è la radice stabile del progetto e non cambia quando aggiungi o rimuovi directory di lavoro a metà sessione. Un server che limita il proprio accesso al file system a un insieme di directory consentite dovrebbe invece implementare la richiesta MCP `roots/list`. Claude Code risponde a `roots/list` con la directory di avvio della sessione più ogni [directory di lavoro aggiuntiva](/docs/it/permissions#working-directories) che hai concesso con `--add-dir`, `/add-dir`, o l'impostazione `additionalDirectories`. Claude Code invia `notifications/roots/list_changed` quando quell'insieme cambia.

132 132 

133Questa variabile è impostata nell'ambiente del server, non nell'ambiente di Claude Code stesso, quindi farvi riferimento tramite l'espansione `${VAR}` nel `command` o negli `args` di una voce `.mcp.json` con ambito di progetto o di una voce server con ambito locale o utente in `~/.claude.json` richiede un valore predefinito come `${CLAUDE_PROJECT_DIR:-.}`. Le configurazioni MCP fornite da plugin sostituiscono `${CLAUDE_PROJECT_DIR}` direttamente e non hanno bisogno del valore predefinito.133Questa variabile è impostata nell'ambiente del server, non nell'ambiente di Claude Code stesso, quindi farvi riferimento tramite l'espansione `${VAR}` nel `command` o negli `args` di una voce `.mcp.json` con ambito di progetto o di una voce server con ambito locale o utente in `~/.claude.json` richiede un valore predefinito come `${CLAUDE_PROJECT_DIR:-.}`. Le configurazioni MCP fornite da plugin sostituiscono `${CLAUDE_PROJECT_DIR}` direttamente e non hanno bisogno del valore predefinito.

134 134 


154 `--env` accetta più coppie `KEY=value`. Se il nome del server viene direttamente dopo `--env`, la CLI legge il nome come un'altra coppia e lo rifiuta, quindi posiziona almeno un'altra opzione, come `--transport stdio`, tra `--env` e il nome del server.154 `--env` accetta più coppie `KEY=value`. Se il nome del server viene direttamente dopo `--env`, la CLI legge il nome come un'altra coppia e lo rifiuta, quindi posiziona almeno un'altra opzione, come `--transport stdio`, tra `--env` e il nome del server.

155</Note>155</Note>

156 156 

157<h4 id="how-claude-code-stops-a-stdio-server">

158 Come Claude Code arresta un server stdio

159</h4>

160 

161Quando Claude Code disconnette un server stdio, ad esempio al termine della tua sessione, invia un segnale al processo del server e attende brevemente che termini prima di forzarne l'arresto. Se il tuo server salva lo stato o rimuove i file di lock all'arresto, gestisci il segnale per la tua piattaforma e completa le operazioni entro quel tempo:

162 

163* **Su macOS e Linux**: Claude Code invia `SIGINT`, poi `SIGTERM` se il processo è ancora in esecuzione 100 millisecondi dopo, poi `SIGKILL` dopo altri 400 millisecondi.

164* **Su Windows**: Claude Code chiude lo stdin del server, poi termina l'albero dei processi del server se il processo è ancora in esecuzione 300 millisecondi dopo.

165 

166Prima della v2.1.296, Claude Code su Windows terminava subito l'albero dei processi del server, senza chiudere prima lo stdin né attendere.

167 

157<h3 id="option-4-add-a-remote-websocket-server">168<h3 id="option-4-add-a-remote-websocket-server">

158 Opzione 4: Aggiungere un server WebSocket remoto169 Opzione 4: Aggiungere un server WebSocket remoto

159</h3>170</h3>


415 Cadute a metà sessione di un server remoto426 Cadute a metà sessione di un server remoto

416</h4>427</h4>

417 428 

418Claude Code riconnette un server remoto caduto con backoff esponenziale: fino a cinque tentativi, partendo da un ritardo di un secondo e raddoppiandolo ogni volta. Quello che vedi dipende da come stai eseguendo Claude Code:429Claude Code tenta prima di riconnettere un server remoto caduto fino a cinque volte con backoff esponenziale, partendo da un ritardo di un secondo e raddoppiandolo ogni volta:

419 430 

420* **In una sessione interattiva**: `/mcp` mostra il server come in sospeso mentre Claude Code si riconnette. Dopo cinque tentativi falliti, Claude Code contrassegna il server come in errore, o come bisognoso di autenticazione quando il server deve essere autorizzato di nuovo. Quando lo contrassegna come in errore, vedi una notifica `MCP server "<name>" disconnected · open /mcp to reconnect`. Puoi riprovare manualmente da `/mcp`.431* **In una sessione interattiva**: `/mcp` mostra il server come in sospeso mentre Claude Code si riconnette. Dopo cinque tentativi falliti, Claude Code contrassegna il server come in errore, o come bisognoso di autenticazione quando il server deve essere autorizzato di nuovo. Quando lo contrassegna come in errore, vedi una notifica `MCP server "<name>" disconnected · open /mcp to reconnect`. Puoi riprovare manualmente da `/mcp`.

421* **Nelle esecuzioni [`claude -p`](/docs/it/headless) e nelle sessioni [Agent SDK](/docs/it/agent-sdk/overview)**: Claude Code si riconnette con la stessa pianificazione, senza un pannello `/mcp` che mostri i tentativi.432* **Nelle esecuzioni [`claude -p`](/docs/it/headless) e nelle sessioni [Agent SDK](/docs/it/agent-sdk/overview)**: Claude Code esegue gli stessi cinque tentativi, senza un pannello `/mcp` che li mostri. Quando i tentativi di un server HTTP o SSE falliscono con un errore transitorio, continua a riprovare in background per circa mezz'ora al massimo, e il server e i suoi strumenti tornano disponibili quando un nuovo tentativo riesce a connettersi.

422 433 

423<h4 id="failed-first-connections">434<h4 id="failed-first-connections">

424 Prime connessioni fallite435 Prime connessioni fallite


479 490 

480Il `timeout` per server è un limite rigido di tempo reale per ogni chiamata a uno strumento, e le notifiche di avanzamento dal server non lo estendono. I valori inferiori a 1000 vengono ignorati e si usa come fallback `MCP_TOOL_TIMEOUT`, o il suo valore predefinito di circa 28 ore quando quella variabile non è impostata. Per un server HTTP, SSE o [connettore claude.ai](/docs/it/mcp#use-mcp-servers-from-claude-ai) c'è anche un secondo timer per richiesta, che copre ogni richiesta fino al primo byte della risposta del server. Claude Code imposta quel timer sul maggiore di tre valori: 60 secondi, il timeout degli strumenti che si applica al server, e `MCP_TIMEOUT`. Il valore predefinito di 28 ore di un `MCP_TOOL_TIMEOUT` non impostato non entra in quel confronto, e un valore inferiore a 60 secondi non accorcia il timer. I server stdio e WebSocket non hanno un timer per richiesta.491Il `timeout` per server è un limite rigido di tempo reale per ogni chiamata a uno strumento, e le notifiche di avanzamento dal server non lo estendono. I valori inferiori a 1000 vengono ignorati e si usa come fallback `MCP_TOOL_TIMEOUT`, o il suo valore predefinito di circa 28 ore quando quella variabile non è impostata. Per un server HTTP, SSE o [connettore claude.ai](/docs/it/mcp#use-mcp-servers-from-claude-ai) c'è anche un secondo timer per richiesta, che copre ogni richiesta fino al primo byte della risposta del server. Claude Code imposta quel timer sul maggiore di tre valori: 60 secondi, il timeout degli strumenti che si applica al server, e `MCP_TIMEOUT`. Il valore predefinito di 28 ore di un `MCP_TOOL_TIMEOUT` non impostato non entra in quel confronto, e un valore inferiore a 60 secondi non accorcia il timer. I server stdio e WebSocket non hanno un timer per richiesta.

481 492 

482Un `timeout` per server di almeno 1000 agisce anche come limite minimo per il timeout di inattività descritto di seguito: Claude Code non interrompe mai per inattività le chiamate agli strumenti di quel server prima del `timeout` per server. Richiede Claude Code v2.1.203 o successivo.493Un `timeout` per server di almeno 1000 agisce anche come limite minimo per il timeout di inattività descritto di seguito: Claude Code non interrompe mai per inattività le chiamate agli strumenti di quel server prima del `timeout` per server.

483 494 

484Una chiamata a uno strumento di un server MCP che non invia alcuna risposta né alcuna notifica di avanzamento per tutta la finestra di inattività si interrompe con un errore invece di attendere il limite di tempo reale. Il timeout di inattività si applica a ogni tipo di server tranne i server IDE e i server in-process SDK. La finestra di inattività è per impostazione predefinita di cinque minuti per i server HTTP, SSE, WebSocket e [connettore claude.ai](#use-mcp-servers-from-claude-ai), e di 30 minuti per i server stdio. Prima della v2.1.203, i server stdio erano esenti dal timeout di inattività.495Una chiamata a uno strumento di un server MCP che non invia alcuna risposta né alcuna notifica di avanzamento per tutta la finestra di inattività si interrompe con un errore invece di attendere il limite di tempo reale. Il timeout di inattività si applica a ogni tipo di server tranne i server IDE e i server in-process SDK. La finestra di inattività è per impostazione predefinita di cinque minuti per i server HTTP, SSE, WebSocket e [connettore claude.ai](#use-mcp-servers-from-claude-ai), e di 30 minuti per i server stdio.

485 496 

486Imposta la variabile d'ambiente [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/it/env-vars) in millisecondi per modificare la finestra di inattività, o impostala su `0` per disabilitare il controllo.497Imposta la variabile d'ambiente [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/it/env-vars) in millisecondi per modificare la finestra di inattività, o impostala su `0` per disabilitare il controllo.

487 498 


493 504 

494Una chiamata a uno strumento MCP nella conversazione principale che è ancora in esecuzione dopo due minuti viene spostata in un'attività in background invece di bloccare la sessione. Claude riceve immediatamente l'ID dell'attività e continua a lavorare, e il risultato arriva come notifica dell'attività quando la chiamata si conclude. Lo spostamento automatico in background richiede Claude Code v2.1.212 o successivo.505Una chiamata a uno strumento MCP nella conversazione principale che è ancora in esecuzione dopo due minuti viene spostata in un'attività in background invece di bloccare la sessione. Claude riceve immediatamente l'ID dell'attività e continua a lavorare, e il risultato arriva come notifica dell'attività quando la chiamata si conclude. Lo spostamento automatico in background richiede Claude Code v2.1.212 o successivo.

495 506 

496L'attività appare in [`/tasks`](/docs/it/commands#all-commands), dove puoi anche fermarla, e non sopravvive all'uscita dalla sessione. La voce dell'attività mostra l'ultimo avanzamento segnalato dal server.507L'attività appare in [`/tasks`](/docs/it/commands#all-commands), dove puoi anche fermarla, e non sopravvive all'uscita dalla sessione. La voce dell'attività mostra l'ultimo avanzamento segnalato dal server. Se fermi l'attività, Claude Code annulla la chiamata e comunica a Claude che non arriverà alcun risultato. Fermarla non garantisce che il server si fermi: potrebbe aver già svolto parte del lavoro, o potrebbe comunque completarlo.

497 508 

498I limiti per chiamata si applicano comunque mentre la chiamata viene eseguita in background: il limite di tempo reale impostato dal `timeout` per server o da [`MCP_TOOL_TIMEOUT`](/docs/it/env-vars), e il timeout di inattività impostato da [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/it/env-vars).509I limiti per chiamata si applicano comunque mentre la chiamata viene eseguita in background: il limite di tempo reale impostato dal `timeout` per server o da [`MCP_TOOL_TIMEOUT`](/docs/it/env-vars), e il timeout di inattività impostato da [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/it/env-vars).

499 510 


793 --header "Authorization: Bearer YOUR_GITHUB_PAT"804 --header "Authorization: Bearer YOUR_GITHUB_PAT"

794```805```

795 806 

796Sostituisci `YOUR_GITHUB_PAT` con il tuo token di accesso personale. Il comando `claude mcp add` salva la configurazione senza convalidare le credenziali, quindi un valore segnaposto è accettato qui ma il server non riesce a connettersi in seguito. Per verificare la connessione, esegui `/mcp` e controlla che il server mostri `connected`. Un server con credenziali errate mostra `failed`, e il dettaglio dell'errore include lo stato HTTP che il server ha restituito, come un 401.807Sostituisci `YOUR_GITHUB_PAT` con il tuo token di accesso personale. Il comando `claude mcp add` salva la configurazione senza convalidare le credenziali, quindi un valore segnaposto è accettato qui ma il server non riesce a connettersi in seguito. Per verificare la connessione, esegui `/mcp` e controlla che la riga del server mostri un segno di spunta. Un server con credenziali errate mostra invece una ✘, e il suo [dettaglio dell'errore](#server-status-detail) include lo stato HTTP che il server ha restituito, come un 401.

797 808 

798Quindi lavora con GitHub:809Quindi lavora con GitHub:

799 810 


820 --dsn "postgresql://readonly:pass@prod.db.com:5432/analytics"831 --dsn "postgresql://readonly:pass@prod.db.com:5432/analytics"

821```832```

822 833 

823Per confermare che il server si avvia, esegui `/mcp` e controlla che `db` mostri `connected`.834Per confermare che il server si avvia, esegui `/mcp` e controlla che la riga `db` mostri un segno di spunta.

824 835 

825Quindi interroga il tuo database naturalmente:836Quindi interroga il tuo database naturalmente:

826 837 


849* Per un server il cui header `Authorization` hai configurato, in `headers` o tramite un [`headersHelper`](#use-dynamic-headers-for-custom-authentication), un `401` o `403` durante la connessione non contrassegna il server, perché la credenziale da correggere è quella che hai configurato. Claude Code segnala invece la connessione come non riuscita. Se hai impostato quell'header da un riferimento `${VAR}`, verifica se quella variabile è una che Claude Code [legge come vuota](#credential-variables-that-read-as-empty).860* Per un server il cui header `Authorization` hai configurato, in `headers` o tramite un [`headersHelper`](#use-dynamic-headers-for-custom-authentication), un `401` o `403` durante la connessione non contrassegna il server, perché la credenziale da correggere è quella che hai configurato. Claude Code segnala invece la connessione come non riuscita. Se hai impostato quell'header da un riferimento `${VAR}`, verifica se quella variabile è una che Claude Code [legge come vuota](#credential-variables-that-read-as-empty).

850* Per un connettore [consegnato a una sessione cloud](#how-connectors-reach-claude-code), Claude Code non esegue un flusso di accesso, perché il proxy della sessione si autentica al connettore con l'autorizzazione che hai concesso in claude.ai. Quando un connettore lì ha bisogno di autorizzazione di nuovo, riconnettilo su [claude.ai/customize/connectors](https://claude.ai/customize/connectors) piuttosto che dalla sessione.861* Per un connettore [consegnato a una sessione cloud](#how-connectors-reach-claude-code), Claude Code non esegue un flusso di accesso, perché il proxy della sessione si autentica al connettore con l'autorizzazione che hai concesso in claude.ai. Quando un connettore lì ha bisogno di autorizzazione di nuovo, riconnettilo su [claude.ai/customize/connectors](https://claude.ai/customize/connectors) piuttosto che dalla sessione.

851 862 

852Quando una richiesta a un server OAuth a cui hai già effettuato l'accesso restituisce `401 Unauthorized`, Claude Code aggiorna il token archiviato, si riconnette e ritenta la richiesta una volta. Contrassegna il server in `/mcp` solo se anche quel tentativo non riesce. Prima della v2.1.206, un aggiornamento del token che non riusciva per un motivo transitorio, come un errore di rete, contrassegnava un server OAuth come richiedente autenticazione per il resto della sessione anche se il suo token di aggiornamento era ancora valido.863Quando una richiesta a un server OAuth a cui hai già effettuato l'accesso restituisce `401 Unauthorized`, Claude Code aggiorna il token archiviato, si riconnette e ritenta la richiesta una volta. Contrassegna il server in `/mcp` solo se anche quel tentativo non riesce.

853 864 

854Quando il server rifiuta il token di aggiornamento archiviato, Claude Code mostra immediatamente un avviso che punta a `/mcp`. Apri `/mcp` e seleziona **Re-authenticate** sul server per accedere di nuovo prima che la prossima chiamata dello strumento non riesca.865Quando il server rifiuta il token di aggiornamento archiviato, Claude Code mostra immediatamente un avviso che punta a `/mcp`. Apri `/mcp` e seleziona **Re-authenticate** sul server per accedere di nuovo prima che la prossima chiamata a uno strumento non riesca.

855 866 

856Un server personalizzato che restituisce un header `WWW-Authenticate` che punta al suo server di autorizzazione ottiene la stessa scoperta automatica di qualsiasi altro server remoto.867Un server personalizzato che restituisce un header `WWW-Authenticate` che punta al suo server di autorizzazione ottiene la stessa scoperta automatica di qualsiasi altro server remoto.

857 868 


859 870 

860L'avviso annuncia ogni server una volta e lo esclude dal conteggio ai successivi avvii fino a quando quel server non si è connesso e ha bisogno di accesso di nuovo. `/mcp` elenca comunque ogni server che ha bisogno di accesso.871L'avviso annuncia ogni server una volta e lo esclude dal conteggio ai successivi avvii fino a quando quel server non si è connesso e ha bisogno di accesso di nuovo. `/mcp` elenca comunque ogni server che ha bisogno di accesso.

861 872 

862In modalità non interattiva non c'è un pannello `/mcp`, quindi Claude Code non può eseguire il flusso OAuth per te. Quando un server configurato richiede l'autenticazione durante un'esecuzione `claude -p` o Agent SDK con [ricerca degli strumenti](#scale-with-mcp-tool-search) abilitata, che è l'impostazione predefinita, Claude Code comunica a Claude che gli strumenti del server non sono disponibili fino a quando non lo autorizzi. Claude può quindi nominare il server che richiede l'accesso. Completa l'accesso da una sessione interattiva con `/mcp` o `claude mcp login <name>`.873Un'esecuzione `claude -p` o Agent SDK non ha un pannello `/mcp`, quindi lì Claude Code non può eseguire il flusso OAuth. Per utilizzare un server che richiede l'autenticazione, completa prima l'accesso da una sessione interattiva: esegui `/mcp` nella sessione, oppure `claude mcp login <name>` nella tua shell. Quando un server configurato richiede l'autenticazione durante un'esecuzione `claude -p` o Agent SDK con la [ricerca degli strumenti](#scale-with-mcp-tool-search) abilitata, Claude Code comunica a Claude che gli strumenti del server non sono disponibili fino a quando non lo autorizzi.

863 874 

864Se hai configurato `headers.Authorization` per il server e il server rifiuta quell'header, Claude Code segnala la connessione come non riuscita invece di ricorrere a OAuth. Verifica che il token sia valido per l'endpoint MCP, oppure rimuovi l'header per utilizzare il flusso OAuth.875Se hai configurato `headers.Authorization` per il server e il server rifiuta quell'header, Claude Code segnala la connessione come non riuscita invece di ricorrere a OAuth. Verifica che il token sia valido per l'endpoint MCP, oppure rimuovi l'header per utilizzare il flusso OAuth.

865 876 


975 </Tab>986 </Tab>

976 987 

977 <Tab title="CI / env var">988 <Tab title="CI / env var">

978 Imposta il segreto tramite variabile di ambiente per saltare il prompt interattivo:989 Imposta il segreto tramite variabile d'ambiente per saltare il prompt interattivo:

979 990 

980 ```bash theme={null}991 ```bash theme={null}

981 MCP_CLIENT_SECRET=your-secret claude mcp add --transport http \992 MCP_CLIENT_SECRET=your-secret claude mcp add --transport http \


995 Suggerimenti:1006 Suggerimenti:

996 1007 

997 * Il segreto client viene archiviato in modo sicuro nel tuo portachiavi di sistema (macOS) o in un file di credenziali, non nella tua configurazione1008 * Il segreto client viene archiviato in modo sicuro nel tuo portachiavi di sistema (macOS) o in un file di credenziali, non nella tua configurazione

998 * Puoi impostare il segreto client solo quando aggiungi il server. Quando ti autentichi con `claude mcp login` o da `/mcp`, Claude Code utilizza il segreto archiviato e non richiede uno o legge `MCP_CLIENT_SECRET`1009 * Puoi impostare il segreto client solo quando aggiungi il server. Quando ti autentichi con `claude mcp login` o da `/mcp`, Claude Code utilizza il segreto archiviato e non ne chiede uno né legge `MCP_CLIENT_SECRET`

999 * Per aggiungere o modificare il segreto in seguito, rimuovi il server con `claude mcp remove <name>`, quindi aggiungilo di nuovo con `--client-secret` e lo stesso `--scope`1010 * Per aggiungere o modificare il segreto in seguito, rimuovi il server con `claude mcp remove <name>`, quindi aggiungilo di nuovo con `--client-secret` e lo stesso `--scope`

1000 * Se il server utilizza un client OAuth pubblico senza segreto, utilizza solo `--client-id` senza `--client-secret`1011 * Se il server utilizza un client OAuth pubblico senza segreto, utilizza solo `--client-id` senza `--client-secret`

1001 * Questi flag si applicano solo ai trasporti HTTP e SSE. Non hanno effetto sui server stdio1012 * Questi flag si applicano solo ai trasporti HTTP e SSE. Non hanno effetto sui server stdio


1024}1035}

1025```1036```

1026 1037 

1027L'URL deve utilizzare `https://`. L'`scopes_supported` dell'URL dei metadati sovrascrive gli ambiti che il server upstream pubblicizza.1038L'URL deve utilizzare `https://`. Il `scopes_supported` dell'URL dei metadati sovrascrive gli scope che il server upstream pubblicizza.

1028 1039 

1029<h3 id="restrict-oauth-scopes">1040<h3 id="restrict-oauth-scopes">

1030 Limita gli ambiti OAuth1041 Limita gli scope OAuth

1031</h3>1042</h3>

1032 1043 

1033Imposta `oauth.scopes` per fissare gli ambiti che Claude Code richiede durante il flusso di autorizzazione. Questo è il modo supportato per limitare un server MCP a un sottoinsieme approvato dal team di sicurezza quando il server di autorizzazione upstream pubblicizza più ambiti di quelli che desideri concedere. Il valore è una singola stringa separata da spazi, corrispondente al formato del parametro `scope` in RFC 6749 §3.3.1044Imposta `oauth.scopes` per fissare gli scope che Claude Code richiede durante il flusso di autorizzazione. Questo è il modo supportato per limitare un server MCP a un sottoinsieme approvato dal team di sicurezza quando il server di autorizzazione upstream pubblicizza più scope di quelli che desideri concedere. Il valore è una singola stringa separata da spazi, corrispondente al formato del parametro `scope` in RFC 6749 §3.3.

1034 1045 

1035```json theme={null}1046```json theme={null}

1036{1047{


1046}1057}

1047```1058```

1048 1059 

1049`oauth.scopes` ha la precedenza sia su `authServerMetadataUrl` che sugli ambiti che il server scopre su `/.well-known`. Lascialo non impostato per consentire al server MCP di determinare l'insieme di ambiti richiesti.1060`oauth.scopes` ha la precedenza sia su `authServerMetadataUrl` che sugli scope che il server scopre su `/.well-known`. Lascialo non impostato per consentire al server MCP di determinare l'insieme di scope richiesti.

1050 1061 

1051Quando `oauth.scopes` non è impostato, Claude Code non richiede il catalogo completo di `scopes_supported` dai metadati del server di autorizzazione scoperti automaticamente. I metadati recuperati da un `authServerMetadataUrl` configurato forniscono comunque il loro `scopes_supported` come scope richiesti.1062Quando `oauth.scopes` non è impostato, Claude Code non richiede il catalogo completo di `scopes_supported` dai metadati del server di autorizzazione scoperti automaticamente. I metadati recuperati da un `authServerMetadataUrl` configurato forniscono comunque il loro `scopes_supported` come scope richiesti.

1052 1063 

1053Se il server di autorizzazione pubblicizza `offline_access` in `scopes_supported`, Claude Code lo aggiunge agli ambiti fissati in modo che il token di accesso possa essere aggiornato senza un nuovo accesso al browser.1064Se il server di autorizzazione pubblicizza `offline_access` in `scopes_supported`, Claude Code lo aggiunge agli scope fissati in modo che il token di accesso possa essere aggiornato senza un nuovo accesso dal browser.

1054 1065 

1055Se il server successivamente restituisce un 403 `insufficient_scope` per una chiamata di strumento, la chiamata non riesce con un messaggio [`needs additional permissions`](/docs/it/errors#mcp-server-needs-you-to-sign-in-again) che nomina l'ambito che il server richiede. Il server viene mostrato come richiedente autenticazione in `/mcp`.1066Se il server successivamente restituisce un 403 `insufficient_scope` per una chiamata a uno strumento, la chiamata non riesce con un messaggio [`needs additional permissions`](/docs/it/errors#mcp-server-needs-you-to-sign-in-again) che nomina lo scope che il server richiede. Il server viene mostrato come richiedente autenticazione in `/mcp`.

1056 1067 

1057Se quell'ambito non è nei tuoi `oauth.scopes` fissati, aggiungilo, quindi esegui `/mcp` e autentica di nuovo il server. Claude Code richiede gli ambiti fissati piuttosto che l'ambito che il server ha nominato, quindi se ti autentichi di nuovo senza aggiungerlo, il token che ottieni ancora non lo ha.1068Se quello scope non è nei tuoi `oauth.scopes` fissati, aggiungilo, quindi esegui `/mcp` e autentica di nuovo il server. Claude Code richiede gli scope fissati piuttosto che lo scope che il server ha nominato, quindi se ti autentichi di nuovo senza aggiungerlo, il token che ottieni ancora non lo ha.

1058 1069 

1059<h3 id="use-dynamic-headers-for-custom-authentication">1070<h3 id="use-dynamic-headers-for-custom-authentication">

1060 Utilizza intestazioni dinamiche per l'autenticazione personalizzata1071 Utilizza intestazioni dinamiche per l'autenticazione personalizzata

1061</h3>1072</h3>

1062 1073 

1063Se il tuo server MCP utilizza uno schema di autenticazione diverso da OAuth, come Kerberos, token di breve durata o un SSO interno, utilizza `headersHelper` per generare intestazioni di richiesta al momento della connessione. Claude Code esegue il comando e unisce il suo output alle intestazioni di connessione.1074Se il tuo server MCP utilizza uno schema di autenticazione diverso da OAuth, come Kerberos, token di breve durata o un SSO interno, utilizza `headersHelper` per generare intestazioni di richiesta al momento della connessione. Claude Code esegue il comando ed esegue il merge del suo output nelle intestazioni di connessione.

1064 1075 

1065```json theme={null}1076```json theme={null}

1066{1077{


1097 1108 

1098Claude Code esegue l'helper di nuovo ad ogni connessione, all'avvio della sessione e alla riconnessione, una volta che la [regola di fiducia per i server di ambito progetto e locale](#trust-a-folder-before-its-headershelper-runs) lo consente. Non memorizza il risultato nella cache, quindi il tuo script è responsabile di qualsiasi riutilizzo di token.1109Claude Code esegue l'helper di nuovo ad ogni connessione, all'avvio della sessione e alla riconnessione, una volta che la [regola di fiducia per i server di ambito progetto e locale](#trust-a-folder-before-its-headershelper-runs) lo consente. Non memorizza il risultato nella cache, quindi il tuo script è responsabile di qualsiasi riutilizzo di token.

1099 1110 

1100Se una chiamata di strumento restituisce `401 Unauthorized` o `403 Forbidden`, Claude Code esegue automaticamente di nuovo l'helper secondo la stessa regola, si riconnette con le intestazioni aggiornate e ritenta la chiamata una volta. Claude Code contrassegna il server come richiedente autenticazione in `/mcp` solo se anche quel tentativo non riesce.1111Se una chiamata a uno strumento restituisce `401 Unauthorized` o `403 Forbidden`, Claude Code esegue automaticamente di nuovo l'helper secondo la stessa regola, si riconnette con le intestazioni aggiornate e ritenta la chiamata una volta. Claude Code contrassegna il server come richiedente autenticazione in `/mcp` solo se anche quel tentativo non riesce.

1101 1112 

1102Quando l'output dell'helper include un header `Authorization`, Claude Code utilizza quella credenziale come autenticazione del server e non ricorre a OAuth per il server.1113Quando l'output dell'helper include un header `Authorization`, Claude Code utilizza quella credenziale come autenticazione del server e non ricorre a OAuth per il server.

1103 1114 

1104Se il server rifiuta la credenziale dell'helper durante la connessione, Claude Code segnala la connessione come non riuscita piuttosto che contrassegnare il server come richiedente autenticazione. Correggi la credenziale che il tuo helper restituisce, quindi riconnettiti da `/mcp` per eseguire di nuovo l'helper.1115Se il server rifiuta la credenziale dell'helper durante la connessione, Claude Code segnala la connessione come non riuscita piuttosto che contrassegnare il server come richiedente autenticazione. Correggi la credenziale che il tuo helper restituisce, quindi riconnettiti da `/mcp` per eseguire di nuovo l'helper.

1105 1116 

1106Claude Code imposta queste variabili di ambiente quando esegue l'helper:1117Claude Code imposta queste variabili d'ambiente quando esegue l'helper:

1107 1118 

1108| Variabile | Valore |1119| Variabile | Valore |

1109| :- | :- |1120| :- | :- |


1111| `CLAUDE_CODE_MCP_SERVER_URL` | l'URL del server MCP |1122| `CLAUDE_CODE_MCP_SERVER_URL` | l'URL del server MCP |

1112| `CLAUDE_PLUGIN_ROOT` | la directory radice del plugin. Impostato solo quando un [plugin](/docs/it/plugins/components#mcp-servers) fornisce il server |1123| `CLAUDE_PLUGIN_ROOT` | la directory radice del plugin. Impostato solo quando un [plugin](/docs/it/plugins/components#mcp-servers) fornisce il server |

1113 1124 

1114Utilizza questi per scrivere un singolo script helper che serve più server MCP.1125Utilizza queste variabili per scrivere un singolo script helper che serve più server MCP.

1115 1126 

1116Un `headersHelper` fornito da un plugin non può fare riferimento ai valori [`${user_config.*}`](/docs/it/plugins/manifest-reference#user-configuration) del plugin, perché il comando viene eseguito attraverso una shell. Claude Code segnala il server come non configurato correttamente con un [errore](/docs/it/errors#plugin-command-references-user-config) e non sostituisce il valore. Metti `${user_config.KEY}` nel campo `headers` del server, che non viene analizzato dalla shell, oppure fai in modo che lo script helper legga il valore da un file di configurazione. Prima della v2.1.207, `headersHelper` sostituiva i valori `${user_config.*}`.1127Un `headersHelper` fornito da un plugin non può fare riferimento ai valori [`${user_config.*}`](/docs/it/plugins/manifest-reference#user-configuration) del plugin, perché il comando viene eseguito attraverso una shell. Claude Code segnala il server come non configurato correttamente con un [errore](/docs/it/errors#plugin-command-references-user-config) e non sostituisce il valore. Metti `${user_config.KEY}` nel campo `headers` del server, che non viene analizzato dalla shell, oppure fai in modo che lo script helper legga il valore da un file di configurazione. Prima della v2.1.207, `headersHelper` sostituiva i valori `${user_config.*}`.

1117 1128 


1218 </Step>1229 </Step>

1219</Steps>1230</Steps>

1220 1231 

1221I nomi dei server aggiunti tramite i comandi `claude mcp` possono contenere solo lettere, numeri, trattini e caratteri di sottolineatura. Claude Desktop non applica questa restrizione, quindi un server Claude Desktop il cui nome contiene qualsiasi altro carattere, come uno spazio, non può essere importato. L'importazione segnala ogni nome che rifiuta e continua comunque a importare gli altri server che hai selezionato. Prima della versione 2.1.205, il primo nome non valido interrompeva l'importazione e nessuno dei server selezionati veniva aggiunto.1232I nomi dei server aggiunti tramite i comandi `claude mcp` possono contenere solo lettere, numeri, trattini e caratteri di sottolineatura. Claude Desktop non applica questa restrizione, quindi un server Claude Desktop il cui nome contiene qualsiasi altro carattere, come uno spazio, non può essere importato. L'importazione segnala ogni nome che rifiuta e continua comunque a importare gli altri server che hai selezionato.

1222 1233 

1223<Tip>1234<Tip>

1224 Suggerimenti:1235 Suggerimenti:


1395 Suggerimenti:1406 Suggerimenti:

1396 1407 

1397 * In Claude Desktop, prova a chiedere a Claude di leggere file in una directory, fare modifiche e altro ancora.1408 * In Claude Desktop, prova a chiedere a Claude di leggere file in una directory, fare modifiche e altro ancora.

1398 * Questo server MCP espone solo gli strumenti di Claude Code al tuo client MCP, quindi il tuo client è responsabile dell'implementazione della conferma dell'utente per le singole chiamate di strumenti.1409 * Questo server MCP espone solo gli strumenti di Claude Code al tuo client MCP, quindi il tuo client è responsabile dell'implementazione della conferma dell'utente per le singole chiamate agli strumenti.

1399</Tip>1410</Tip>

1400 1411 

1412Quando il testo JSON nel risultato di una chiamata allo strumento Bash o PowerShell include un campo `backgroundOutputPath`, la chiamata ha lasciato il suo comando in esecuzione [in background](/docs/it/tools-reference#background-commands), ad esempio quando la chiamata ha impostato `run_in_background: true` o il comando ha raggiunto il suo timeout. Il campo fornisce il percorso del file di output del comando. Nulla notifica il tuo client quando il comando termina, e il file non riceve alcuna riga di chiusura quando ciò accade, quindi leggendo il file vedi l'output scritto fino a quel momento. Per rilevare la fine, aggiungi un marcatore in coda al comando, ad esempio `npm test; echo DONE`, e cercalo nel file. Il campo `backgroundOutputPath` richiede Claude Code v2.1.295 o successivo.

1413 

1401<h2 id="mcp-output-limits-and-warnings">1414<h2 id="mcp-output-limits-and-warnings">

1402 Limiti di output MCP e avvisi1415 Limiti di output MCP e avvisi

1403</h2>1416</h2>


1409* **Limite predefinito**: il massimo predefinito è 25.000 token1422* **Limite predefinito**: il massimo predefinito è 25.000 token

1410* **Ambito**: la variabile d'ambiente si applica agli strumenti che non dichiarano il proprio limite. Gli strumenti che impostano [`anthropic/maxResultSizeChars`](#raise-the-limit-for-a-specific-tool) utilizzano invece quel valore per il contenuto di testo, indipendentemente dal valore impostato per `MAX_MCP_OUTPUT_TOKENS`. Gli strumenti che restituiscono dati di immagine sono comunque soggetti a `MAX_MCP_OUTPUT_TOKENS`1423* **Ambito**: la variabile d'ambiente si applica agli strumenti che non dichiarano il proprio limite. Gli strumenti che impostano [`anthropic/maxResultSizeChars`](#raise-the-limit-for-a-specific-tool) utilizzano invece quel valore per il contenuto di testo, indipendentemente dal valore impostato per `MAX_MCP_OUTPUT_TOKENS`. Gli strumenti che restituiscono dati di immagine sono comunque soggetti a `MAX_MCP_OUTPUT_TOKENS`

1411* **Oltre il limite**: quando un risultato riuscito senza contenuto di immagine supera il limite di token, Claude Code lo salva in un file e lo sostituisce nella conversazione con un messaggio che nomina il percorso del file, in modo che Claude legga il file quando ha bisogno del contenuto. Il file si trova nella directory `tool-results` della sessione sotto [`~/.claude/projects/`](/docs/it/claude-directory#cleaned-up-automatically).1424* **Oltre il limite**: quando un risultato riuscito senza contenuto di immagine supera il limite di token, Claude Code lo salva in un file e lo sostituisce nella conversazione con un messaggio che nomina il percorso del file, in modo che Claude legga il file quando ha bisogno del contenuto. Il file si trova nella directory `tool-results` della sessione sotto [`~/.claude/projects/`](/docs/it/claude-directory#cleaned-up-automatically).

1412* **Dimensione della risposta dai server HTTP e SSE**: Claude Code smette di leggere una risposta da un server [HTTP](#option-1-add-a-remote-http-server) o [SSE](#option-2-add-a-remote-sse-server) non appena un singolo corpo di risposta JSON, o un singolo evento di un flusso di eventi, supera i 16 MB dopo la decompressione. La richiesta a cui quella risposta risponde non riesce. Se gestisci il server, restituisci meno dati per risposta per rimanere sotto il limite, ad esempio impaginando i risultati1425* **Dimensione della risposta dai server HTTP e SSE**: quando una risposta da un server [HTTP](#option-1-add-a-remote-http-server) o [SSE](#option-2-add-a-remote-sse-server) supera i 16 MiB, Claude Code smette di leggerla e la richiesta non riesce. Il limite si applica dopo la decompressione a un singolo corpo di risposta JSON o a un singolo evento di un flusso di eventi. Se gestisci il server, restituisci meno dati per risposta per rimanere sotto il limite, ad esempio impaginando i risultati

1426* **Dimensione dei messaggi dai server WebSocket**: quando un server [WebSocket](#option-4-add-a-remote-websocket-server) invia un singolo messaggio di oltre 16 MiB, Claude Code [chiude la connessione](#mid-session-drops-of-a-remote-server) e le chiamate in corso su quel server non riescono. Se gestisci il server, restituisci meno dati per messaggio per rimanere sotto il limite

1413 1427 

1414Una chiamata che Claude Code ha [spostato in un'attività in background](#automatic-backgrounding-of-long-tool-calls) riporta il proprio risultato tramite la notifica dell'attività. A una chiamata che si completa in primo piano si applicano altri due limiti:1428Una chiamata che Claude Code ha [spostato in un'attività in background](#automatic-backgrounding-of-long-tool-calls) riporta il proprio risultato tramite la notifica dell'attività. A una chiamata che si completa in primo piano si applicano altri due limiti:

1415 1429 


1483 1497 

1484La [gestione del combinatore a livello di root](#tool-input-schemas-with-a-root-level-combinator) è separata e mantiene il suo comportamento quando il recupero dei flag è disattivato o i flag non sono mai arrivati.1498La [gestione del combinatore a livello di root](#tool-input-schemas-with-a-root-level-combinator) è separata e mantiene il suo comportamento quando il recupero dei flag è disattivato o i flag non sono mai arrivati.

1485 1499 

1500<h2 id="tools-with-names-longer-than-128-characters">

1501 Strumenti con nomi più lunghi di 128 caratteri

1502</h2>

1503 

1504Se `/mcp` elenca uno strumento che Claude non riesce a chiamare, verifica se il nome completo dello strumento supera i 128 caratteri. Esegui `/mcp` nella tua sessione e seleziona lo strumento per vederne il nome completo, ad esempio `mcp__<server>__<tool>`. Claude Code esclude uno strumento MCP dagli strumenti che invia a Claude quando il suo nome completo supera i 128 caratteri. La Claude API rifiuta una richiesta che include uno strumento di questo tipo, quindi escluderlo permette agli altri strumenti del server di continuare a funzionare.

1505 

1506Per il messaggio che indica lo strumento e i modi per abbreviarne il nome completo, consulta [MCP tool name over 128 characters](/docs/it/errors#mcp-tool-name-over-128-characters).

1507 

1486<h2 id="require-approval-for-a-specific-tool">1508<h2 id="require-approval-for-a-specific-tool">

1487 Richiedere l'approvazione per uno strumento specifico1509 Richiedere l'approvazione per uno strumento specifico

1488</h2>1510</h2>


1584La ricerca di strumenti mantiene basso l'utilizzo del contesto MCP rimandando le definizioni degli strumenti fino a quando Claude non ne ha bisogno. Solo i nomi degli strumenti e le istruzioni del server si caricano all'inizio della sessione, quindi aggiungere più server MCP ha un impatto minimo sulla finestra di contesto. Claude Code non impone un limite fisso di strumenti per server; il limite pratico è il budget della finestra di contesto.1606La ricerca di strumenti mantiene basso l'utilizzo del contesto MCP rimandando le definizioni degli strumenti fino a quando Claude non ne ha bisogno. Solo i nomi degli strumenti e le istruzioni del server si caricano all'inizio della sessione, quindi aggiungere più server MCP ha un impatto minimo sulla finestra di contesto. Claude Code non impone un limite fisso di strumenti per server; il limite pratico è il budget della finestra di contesto.

1585 1607 

1586<Note>1608<Note>

1587 La ricerca di strumenti non è supportata su Microsoft Foundry [distribuzioni ospitate su Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options), che la rifiutano lato server: Claude Code rileva il rifiuto e carica gli strumenti MCP in anticipo per quella distribuzione. [`ENABLE_TOOL_SEARCH`](#configure-tool-search) non può ignorare questo, poiché il rifiuto proviene dalla distribuzione stessa.1609 La ricerca di strumenti non è supportata sui [deploy di Microsoft Foundry ospitati su Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options), che la rifiutano lato server: Claude Code rileva il rifiuto e carica invece gli strumenti MCP in anticipo per quel deploy. [`ENABLE_TOOL_SEARCH`](#configure-tool-search) non può sovrascrivere questo comportamento, poiché il rifiuto proviene dal deploy stesso.

1588</Note>1610</Note>

1589 1611 

1590<span id="for-mcp-server-authors" />1612<span id="for-mcp-server-authors" />


1593 Ricerca di strumenti per gli autori di server MCP1615 Ricerca di strumenti per gli autori di server MCP

1594</h3>1616</h3>

1595 1617 

1596Se state creando un server MCP, il campo delle istruzioni del server diventa più utile con la ricerca di strumenti abilitata. Le istruzioni del server aiutano Claude a capire quando cercare i vostri strumenti, in modo simile a come funzionano le [skills](/docs/it/skills).1618Se stai creando un server MCP, il campo delle istruzioni del server diventa più utile con la ricerca di strumenti abilitata. Le istruzioni del server aiutano Claude a capire quando cercare i tuoi strumenti, in modo simile a come funzionano le [skill](/docs/it/skills).

1619 

1620Aggiungi istruzioni del server chiare e descrittive che spieghino:

1621 

1622* Quale categoria di attività gestiscono i tuoi strumenti

1623* Quando Claude dovrebbe cercare i tuoi strumenti

1624* Capacità chiave che il tuo server fornisce

1625 

1626Claude Code tronca una descrizione di strumento o le istruzioni del server che superano questi limiti predefiniti, e Claude vede solo il testo prima del taglio:

1597 1627 

1598Aggiungete istruzioni del server chiare e descrittive che spieghino:1628* **Istruzioni del server e descrizione di uno strumento caricato in anticipo**: 4.096 caratteri

1629* **Descrizione di uno strumento che Claude carica tramite la ricerca di strumenti**: 16.384 caratteri

1599 1630 

1600* Quale categoria di attività gestiscono i vostri strumenti1631Mantieni concise le descrizioni e le istruzioni e metti i dettagli critici all'inizio. Quando la ricerca di strumenti confronta la query di Claude con la descrizione di uno strumento, legge solo la parte entro il limite più breve, quindi metti all'inizio anche le parole che Claude cercherebbe. Uno strumento viene caricato in anticipo e mantiene il limite più breve ogni volta che non è rimandato, ad esempio quando [la ricerca di strumenti è disattivata](#configure-tool-search), quando lo strumento è [contrassegnato per il caricamento anticipato](#per-tool-alwaysload) o quando il suo server è [esentato dal rinvio](#exempt-a-server-from-deferral).

1601* Quando Claude dovrebbe cercare i vostri strumenti

1602* Capacità chiave che il vostro server fornisce

1603 1632 

1604Claude Code tronca ciascuna descrizione di strumento e le istruzioni di ciascun server a 2.048 caratteri per impostazione predefinita. Mantenetele concise e mettete i dettagli critici all'inizio.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.

1605 1634 

1606Per modificare il limite per ogni server MCP nella vostra sessione, impostate [`CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH`](/docs/it/env-vars#variables) a un numero di caratteri. Questa variabile richiede Claude Code v2.1.280 o successivo.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.

1607 1636 

1608<h4 id="per-tool-alwaysload">1637<h4 id="per-tool-alwaysload">

1609 Contrassegnare uno strumento da caricare in anticipo o da mantenere rimandato1638 Contrassegnare uno strumento da caricare in anticipo o da mantenere rimandato


1632 Configurare la ricerca di strumenti1661 Configurare la ricerca di strumenti

1633</h3>1662</h3>

1634 1663 

1635La ricerca di strumenti è abilitata per impostazione predefinita: gli strumenti MCP vengono rimandati e scoperti su richiesta. Claude Code la disabilita quando `ANTHROPIC_BASE_URL` punta a un host non di prima parte, poiché la maggior parte dei proxy non inoltrano i blocchi `tool_reference`. Impostate `ENABLE_TOOL_SEARCH` esplicitamente per ignorare quel fallback.1664La ricerca di strumenti è abilitata per impostazione predefinita: gli strumenti MCP vengono rimandati e scoperti su richiesta. Claude Code la disabilita quando `ANTHROPIC_BASE_URL` punta a un host non di prima parte, poiché la maggior parte dei proxy non inoltra i blocchi `tool_reference`. Imposta `ENABLE_TOOL_SEARCH` esplicitamente per sovrascrivere quel fallback.

1636 1665 

1637L'impostazione [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/it/env-vars) mantiene la ricerca di strumenti disattivata. Non potete ignorarla impostando `ENABLE_TOOL_SEARCH` voi stessi. La vostra organizzazione può mantenere la ricerca di strumenti attiva tramite [impostazioni gestite](/docs/it/managed-settings), su Claude Code v2.1.227 o successivo. [Disabilitare le capacità pre-release](/docs/it/llm-gateway-protocol#disable-pre-release-capabilities) copre dove si applica l'override e cosa fa la variabile.1666L'impostazione [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/it/env-vars) mantiene la ricerca di strumenti disattivata. Non puoi sovrascriverla impostando tu stesso `ENABLE_TOOL_SEARCH`. Su Claude Code v2.1.227 o successivo, la tua organizzazione può mantenere attiva la ricerca di strumenti anche con questa variabile impostata, tramite le [impostazioni gestite](/docs/it/managed-settings). In una sessione che [riceve la configurazione HIPAA](/docs/it/hipaa-setup#check-how-developers-sign-in-and-connect), la ricerca di strumenti è disattivata, e né `ENABLE_TOOL_SEARCH` né le impostazioni gestite la riattivano. [Disabilitare le capacità pre-release](/docs/it/llm-gateway-protocol#disable-pre-release-capabilities) spiega dove si applica l'override e cosa rimuove la variabile.

1638 1667 

1639La ricerca di strumenti richiede un modello che supporti i blocchi `tool_reference`: Claude Sonnet 4.5, Claude Haiku 4.5, Claude Opus 4.5 e modelli successivi. Consultate [la compatibilità dei modelli nella documentazione API](https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool#model-compatibility) per l'elenco attuale.1668Claude Code usa la ricerca di strumenti su Claude Opus 4, Claude Sonnet 4, Claude Haiku 4.5 e modelli successivi, oppure su Opus 4.5, Sonnet 4.5, Haiku 4.5 e modelli successivi su Google Cloud's Agent Platform. Sui modelli precedenti, Claude Code carica tutti gli strumenti MCP in anticipo, e `ENABLE_TOOL_SEARCH=true` non sovrascrive questo comportamento.

1640 1669 

1641Su Google Cloud's Agent Platform, Claude Code decide in base alla generazione del modello:1670Su Google Cloud's Agent Platform, Claude Code decide in base alla generazione del modello:

1642 1671 

1643* **Claude Opus 4.5, Sonnet 4.5, Haiku 4.5 e successivi**: la ricerca di strumenti è attiva per impostazione predefinita, come su Anthropic API.1672* **Claude Opus 4.5, Sonnet 4.5, Haiku 4.5 e successivi**: la ricerca di strumenti è attiva per impostazione predefinita, come su Anthropic API.

1644* **Modelli precedenti di Agent Platform**: Claude Code carica tutti gli strumenti MCP in anticipo, perché i loro stack di servizio rifiutano l'intestazione beta richiesta. `ENABLE_TOOL_SEARCH=true` non ignora questo.1673* **Modelli precedenti di Agent Platform**: Claude Code carica tutti gli strumenti MCP in anticipo, perché i loro stack di servizio rifiutano l'intestazione beta richiesta. `ENABLE_TOOL_SEARCH=true` non sovrascrive questo comportamento.

1645 1674 

1646Prima della v2.1.221, Claude Code disabilitava la ricerca di strumenti per tutti i modelli su Google Cloud's Agent Platform a meno che non impostaste `ENABLE_TOOL_SEARCH=true`.1675Prima della v2.1.221, Claude Code disabilitava la ricerca di strumenti per tutti i modelli su Google Cloud's Agent Platform a meno che non impostassi `ENABLE_TOOL_SEARCH=true`.

1647 1676 

1648Controllate il comportamento della ricerca di strumenti con la variabile di ambiente `ENABLE_TOOL_SEARCH`:1677Controlla il comportamento della ricerca di strumenti con la variabile d'ambiente `ENABLE_TOOL_SEARCH`:

1649 1678 

1650| Valore | Comportamento |1679| Valore | Comportamento |

1651| :- | :- |1680| :- | :- |

1652| (non impostato) | Tutti gli strumenti MCP rimandati e caricati su richiesta. Ritorna al caricamento anticipato su modelli di Google Cloud's Agent Platform precedenti alla generazione Claude 4.5, quando `ANTHROPIC_BASE_URL` è un host non di prima parte, o su una distribuzione Microsoft Foundry ospitata su Azure |1681| (non impostato) | Tutti gli strumenti MCP rimandati e caricati su richiesta. Ripiega sul caricamento anticipato sui modelli precedenti a Opus 4 e Sonnet 4, sui modelli di Google Cloud's Agent Platform precedenti a Opus 4.5, Sonnet 4.5 e Haiku 4.5, quando `ANTHROPIC_BASE_URL` è un host non di prima parte, o su un deploy di Microsoft Foundry ospitato su Azure |

1653| `true` | Tutti gli strumenti MCP rimandati, tranne su una distribuzione Microsoft Foundry ospitata su Azure, dove il rifiuto lato server forza comunque il caricamento anticipato, e su modelli di Google Cloud's Agent Platform precedenti alla generazione Claude 4.5, dove Claude Code continua a caricare gli strumenti in anticipo. Claude Code invia l'intestazione beta attraverso i proxy e le richieste falliscono su proxy che non supportano i blocchi `tool_reference` |1682| `true` | Gli strumenti MCP restano rimandati quando `ANTHROPIC_BASE_URL` è un host non di prima parte. Gli altri fallback del caso (non impostato) si applicano comunque. Claude Code invia l'intestazione beta attraverso i proxy e le richieste falliscono sui proxy che non supportano i blocchi `tool_reference` |

1654| `auto` | Modalità soglia: Claude Code carica gli strumenti che altrimenti rimanda in anticipo mentre le loro definizioni totalizzano meno del 10% della finestra di contesto, e rimanda tutti una volta che le definizioni raggiungono il 10% |1683| `auto` | Modalità soglia: Claude Code carica in anticipo gli strumenti che altrimenti rimanderebbe finché le loro definizioni totalizzano meno del 10% della finestra di contesto, e li rimanda tutti una volta che le definizioni raggiungono il 10% |

1655| `auto:N` | Modalità soglia con una percentuale personalizzata, dove `N` è 0-100. Ad esempio, `auto:5` per il 5% |1684| `auto:N` | Modalità soglia con una percentuale personalizzata, dove `N` è 0-100. Ad esempio, `auto:5` per il 5% |

1656| `false` | Tutti gli strumenti MCP caricati in anticipo, nessun rinvio |1685| `false` | Tutti gli strumenti MCP caricati in anticipo, nessun rinvio |

1657 1686 


1663ENABLE_TOOL_SEARCH=false claude1692ENABLE_TOOL_SEARCH=false claude

1664```1693```

1665 1694 

1666Oppure impostate il valore nel campo `env` di [settings.json](/docs/it/settings-reference#env).1695Oppure imposta il valore nel [campo `env` di settings.json](/docs/it/settings-reference#env).

1667 1696 

1668Potete anche disabilitare lo strumento `ToolSearch` specificamente:1697Puoi anche disabilitare specificamente lo strumento `ToolSearch`:

1669 1698 

1670```json theme={null}1699```json theme={null}

1671{1700{


1681 1710 

1682Se gli strumenti di un server dovrebbero essere sempre visibili a Claude senza un passaggio di ricerca, imposta `alwaysLoad` a `true` nella configurazione di quel server. Gli strumenti del server vengono quindi caricati nel contesto indipendentemente dall'impostazione `ENABLE_TOOL_SEARCH`. Usa questa opzione per un piccolo numero di strumenti di cui Claude ha bisogno a ogni turno, poiché ogni strumento caricato in anticipo consuma contesto che altrimenti sarebbe disponibile per la tua conversazione.1711Se gli strumenti di un server dovrebbero essere sempre visibili a Claude senza un passaggio di ricerca, imposta `alwaysLoad` a `true` nella configurazione di quel server. Gli strumenti del server vengono quindi caricati nel contesto indipendentemente dall'impostazione `ENABLE_TOOL_SEARCH`. Usa questa opzione per un piccolo numero di strumenti di cui Claude ha bisogno a ogni turno, poiché ogni strumento caricato in anticipo consuma contesto che altrimenti sarebbe disponibile per la tua conversazione.

1683 1712 

1684La seguente voce `.mcp.json` esentera un server HTTP mentre lascia gli altri server rimandati:1713La seguente voce `.mcp.json` esenta un server HTTP lasciando rimandati gli altri server:

1685 1714 

1686```json theme={null}1715```json theme={null}

1687{1716{


1697 1726 

1698Il campo `alwaysLoad` è disponibile su tutti i tipi di server.1727Il campo `alwaysLoad` è disponibile su tutti i tipi di server.

1699 1728 

1700L'impostazione `alwaysLoad: true` fa anche sì che l'avvio attenda gli strumenti del server, limitato al timeout di connessione standard di 5 secondi, poiché devono essere presenti quando viene costruito il primo prompt. Un server remoto con una voce [`cached`](#server-status-detail) valida fornisce i suoi strumenti dalla cache senza connettersi, quindi non ritarda l'avvio. Gli altri server si connettono in background per impostazione predefinita; impostate [`MCP_CONNECTION_NONBLOCKING=0`](/docs/it/env-vars) per far sì che l'avvio li attenda anche.1729L'impostazione `alwaysLoad: true` fa anche sì che l'avvio attenda gli strumenti del server, entro il timeout di connessione standard di 5 secondi, poiché devono essere presenti quando viene costruito il primo prompt. Un server remoto con una [voce `cached`](#server-status-detail) valida fornisce i suoi strumenti dalla cache senza connettersi, quindi non ritarda l'avvio. Gli altri server si connettono in background per impostazione predefinita; imposta [`MCP_CONNECTION_NONBLOCKING=0`](/docs/it/env-vars) per far sì che l'avvio attenda anche loro.

1701 1730 

1702<h3 id="defer-a-servers-tools">1731<h3 id="defer-a-servers-tools">

1703 Rimandare gli strumenti di un server1732 Rimandare gli strumenti di un server

memory.md +3 −3

Details

258 258 

259Claude Code utilizza non espanso qualsiasi modello che supererebbe il budget, e le sue parentesi graffe letterali non corrispondono a nessun file. Prima della v2.1.217, un valore `paths` con molti gruppi tra parentesi graffe bloccava o causava l'arresto anomalo della CLI all'avvio.259Claude Code utilizza non espanso qualsiasi modello che supererebbe il budget, e le sue parentesi graffe letterali non corrispondono a nessun file. Prima della v2.1.217, un valore `paths` con molti gruppi tra parentesi graffe bloccava o causava l'arresto anomalo della CLI all'avvio.

260 260 

261La sintassi glob tratta `[` come l'inizio di un'espressione tra parentesi quadre come `[abc]`. Un modello con un `[` che non può essere letto come un'espressione tra parentesi quadre, come `photos [2024/**`, non è valido: non corrisponde a nulla, e gli altri modelli della regola continuano a funzionare. Per far corrispondere un `[` letterale in un nome di file, applica l'escape come in `photos \[2024/**`. Prima della v2.1.207, un modello non valido causava il fallimento dello strumento Read per ogni file su cui la regola veniva valutata, invece di non corrispondere a nulla.261La sintassi glob tratta `[` come l'inizio di un'espressione tra parentesi quadre come `[abc]`. Un modello con un `[` che non può essere letto come un'espressione tra parentesi quadre, come `photos [2024/**`, non è valido: non corrisponde a nulla, e gli altri modelli della regola continuano a funzionare. Per far corrispondere un `[` letterale in un nome di file, applica l'escape come in `photos \[2024/**`.

262 262 

263<h4 id="rules-frontmatter-reference">263<h4 id="rules-frontmatter-reference">

264 Riferimento frontmatter delle regole264 Riferimento frontmatter delle regole


413 413 

414* **All'inizio della sessione**: ogni `AGENTS.md` e `.claude/AGENTS.md` nella vostra directory di lavoro e nelle directory sopra di essa. In una sessione interattiva vedete una riga come `no CLAUDE.md found; AGENTS.md loaded: /home/you/repo/AGENTS.md` nella conversazione414* **All'inizio della sessione**: ogni `AGENTS.md` e `.claude/AGENTS.md` nella vostra directory di lavoro e nelle directory sopra di essa. In una sessione interattiva vedete una riga come `no CLAUDE.md found; AGENTS.md loaded: /home/you/repo/AGENTS.md` nella conversazione

415* **Mentre Claude lavora nelle sottodirectory**: un `AGENTS.md` di una sottodirectory, quando Claude apre un file lì con lo strumento Read e quella sottodirectory non ha nessuno dei tre file `CLAUDE.md` propri415* **Mentre Claude lavora nelle sottodirectory**: un `AGENTS.md` di una sottodirectory, quando Claude apre un file lì con lo strumento Read e quella sottodirectory non ha nessuno dei tre file `CLAUDE.md` propri

416* **All'interno di ogni `AGENTS.md`**: gli import [`@path`](#import-additional-files) sono espansi, i pattern [`claudeMdExcludes`](#exclude-specific-claude-md-files) si applicano, e i subagent che [saltano le istruzioni del progetto](/docs/it/sub-agents#what-loads-at-startup) saltano anche questi file416* **All'interno di ogni `AGENTS.md`**: gli [import `@path`](#import-additional-files) vengono espansi, i pattern [`claudeMdExcludes`](#exclude-specific-claude-md-files) si applicano, e i subagent che [partono senza le istruzioni del progetto](/docs/it/sub-agents#what-loads-at-startup) partono anche senza questi file

417* **Non letto**: `AGENTS.local.md`, `AGENTS.override.md`, o qualsiasi cosa sotto una directory `.agents/`417* **Non letto**: `AGENTS.local.md`, `AGENTS.override.md`, o qualsiasi cosa sotto una directory `.agents/`

418 418 

419<Note>419<Note>


692 692 

693Se uno dei tuoi file di istruzioni supera la lunghezza consigliata, vedrai un avviso all'avvio e quando esegui `/status`. Vedrai anche un avviso quando i file che sono ciascuno entro quella lunghezza si sommano oltre un limite combinato all'inizio della sessione. Ogni CLAUDE.md, file di regole e importazione `@path` conta come un file separato.693Se uno dei tuoi file di istruzioni supera la lunghezza consigliata, vedrai un avviso all'avvio e quando esegui `/status`. Vedrai anche un avviso quando i file che sono ciascuno entro quella lunghezza si sommano oltre un limite combinato all'inizio della sessione. Ogni CLAUDE.md, file di regole e importazione `@path` conta come un file separato.

694 694 

695Il controllo [`/doctor`](/docs/it/commands#all-commands) propone riduzioni per un CLAUDE.md archiviato: taglia il contenuto che Claude può derivare dalla base di codice, come layout di directory, elenchi di dipendenze e panoramiche dell'architettura, e mantiene i rischi, la logica e le convenzioni che differiscono dai valori predefiniti dello strumento. Il controllo di riduzione richiede Claude Code v2.1.206 o successivo.695Il controllo [`/doctor`](/docs/it/commands#all-commands) propone riduzioni per un CLAUDE.md archiviato: taglia il contenuto che Claude può derivare dal codebase, come layout di directory, elenchi di dipendenze e panoramiche dell'architettura, e mantiene i rischi, la logica e le convenzioni che differiscono dai valori predefiniti dello strumento.

696 696 

697<h3 id="instructions-seem-lost-after-/compact">697<h3 id="instructions-seem-lost-after-/compact">

698 Le istruzioni sembrano perse dopo `/compact`698 Le istruzioni sembrano perse dopo `/compact`

Details

160 Usa un token bearer160 Usa un token bearer

161</h4>161</h4>

162 162 

163Claude Code invia il valore di `ANTHROPIC_FOUNDRY_AUTH_TOKEN` su ogni richiesta come intestazione `Authorization: Bearer`. Utilizza questa opzione quando un altro processo, come un'applicazione host o uno script di accesso, ha già ottenuto un token di accesso per te. Richiede Claude Code v2.1.203 o successivo.163Claude Code invia il valore di `ANTHROPIC_FOUNDRY_AUTH_TOKEN` su ogni richiesta come intestazione `Authorization: Bearer`. Utilizza questa opzione quando un altro processo, come un'applicazione host o uno script di accesso, ha già ottenuto un token di accesso per te.

164 164 

165Imposta la variabile su un token bearer emesso da Microsoft Entra ID per la tua risorsa:165Imposta la variabile su un token bearer emesso da Microsoft Entra ID per la tua risorsa:

166 166 

model-config.md +3 −0

Details

867* **Per tutti i modelli**: imposta [`autoCompactWindow`](/docs/it/settings-reference#autocompactwindow) in un file di impostazioni, ad esempio `"autoCompactWindow": 200000` in `~/.claude/settings.json`. Una finestra che hai salvato per un modello con `/autocompact` ha la precedenza su questa chiave nello stesso file per quel modello.867* **Per tutti i modelli**: imposta [`autoCompactWindow`](/docs/it/settings-reference#autocompactwindow) in un file di impostazioni, ad esempio `"autoCompactWindow": 200000` in `~/.claude/settings.json`. Una finestra che hai salvato per un modello con `/autocompact` ha la precedenza su questa chiave nello stesso file per quel modello.

868* **Per un singolo avvio**: passa [`--autocompact`](/docs/it/cli-reference#cli-flags) all'avvio di Claude Code. Il flag sovrascrive l'impostazione salvata per tale avvio senza modificarla, e `claude --autocompact auto` esegue la sessione alla finestra ottimizzata anche se l'impostazione salvata ha un valore. A differenza di `/autocompact`, il flag non è prevenuto da un ambito di impostazioni con priorità più alta, come le impostazioni gestite.868* **Per un singolo avvio**: passa [`--autocompact`](/docs/it/cli-reference#cli-flags) all'avvio di Claude Code. Il flag sovrascrive l'impostazione salvata per tale avvio senza modificarla, e `claude --autocompact auto` esegue la sessione alla finestra ottimizzata anche se l'impostazione salvata ha un valore. A differenza di `/autocompact`, il flag non è prevenuto da un ambito di impostazioni con priorità più alta, come le impostazioni gestite.

869* **In script e ambienti cloud**: imposta [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/it/env-vars). Mentre è impostata, ha la precedenza sul comando, sul flag e sull'impostazione, e `/autocompact` segnala l'override invece di modificare la finestra.869* **In script e ambienti cloud**: imposta [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/it/env-vars). Mentre è impostata, ha la precedenza sul comando, sul flag e sull'impostazione, e `/autocompact` segnala l'override invece di modificare la finestra.

870* **Per un singolo subagent**: consulta [Impostare la finestra di compattazione automatica per un singolo subagent](/docs/it/sub-agents#subagent-auto-compact-window).

870 871 

871Il comando e il flag accettano una dimensione della finestra da 100K a 1M token, in una qualsiasi di queste forme:872Il comando e il flag accettano una dimensione della finestra da 100K a 1M token, in una qualsiasi di queste forme:

872 873 


888* I modelli in esecuzione con una finestra nativa di 1M si compattano prima che la finestra si riempia, a circa 967K token per impostazione predefinita. Questi includono i modelli Fable, Sonnet 5 e versioni successive, Haiku 5.5 e Opus 4.7 e versioni successive. Dietro un `ANTHROPIC_BASE_URL` personalizzato, consulta [la finestra di contesto dietro un gateway](#context-window-behind-a-gateway)889* I modelli in esecuzione con una finestra nativa di 1M si compattano prima che la finestra si riempia, a circa 967K token per impostazione predefinita. Questi includono i modelli Fable, Sonnet 5 e versioni successive, Haiku 5.5 e Opus 4.7 e versioni successive. Dietro un `ANTHROPIC_BASE_URL` personalizzato, consulta [la finestra di contesto dietro un gateway](#context-window-behind-a-gateway)

889* Le sessioni su un ID modello che Claude Code non riconosce, come un alias [LLM gateway](/docs/it/llm-gateway), si compattano alla finestra di contesto che Claude Code assume per l'ID; consulta [Correggere la finestra per un gateway o un ID modello personalizzato](#correct-the-window-for-a-gateway-or-custom-model-id)890* Le sessioni su un ID modello che Claude Code non riconosce, come un alias [LLM gateway](/docs/it/llm-gateway), si compattano alla finestra di contesto che Claude Code assume per l'ID; consulta [Correggere la finestra per un gateway o un ID modello personalizzato](#correct-the-window-for-a-gateway-or-custom-model-id)

890 891 

892Consulta l'impostazione [`idleCompaction`](/docs/it/settings-reference#idlecompaction) per sapere quando Claude Code compatta anche una conversazione che lasci inattiva.

893 

891<h3 id="correct-the-window-for-a-gateway-or-custom-model-id">894<h3 id="correct-the-window-for-a-gateway-or-custom-model-id">

892 Correggere la finestra per un gateway o un ID modello personalizzato895 Correggere la finestra per un gateway o un ID modello personalizzato

893</h3>896</h3>

Details

641 641 

642* `prompt.id`: UUID che correla un prompt dell'utente con tutti gli eventi successivi fino al prompt successivo. Vedi [Attributi di correlazione degli eventi](#event-correlation-attributes).642* `prompt.id`: UUID che correla un prompt dell'utente con tutti gli eventi successivi fino al prompt successivo. Vedi [Attributi di correlazione degli eventi](#event-correlation-attributes).

643* `workspace.host_paths`: directory dell'area di lavoro host selezionate nell'app desktop, come array di stringhe643* `workspace.host_paths`: directory dell'area di lavoro host selezionate nell'app desktop, come array di stringhe

644* `workflow.run_id`: identificatore di esecuzione, con prefisso `wf_`, sugli eventi API e degli strumenti emessi da agenti che appartengono a un'esecuzione dello strumento [Workflow](/docs/it/workflows). Il filtraggio degli eventi per un `workflow.run_id` ricostruisce le richieste API e i risultati degli strumenti di quella esecuzione. L'identificatore copre gli agenti che lo script del workflow genera e tutti gli agenti che questi generano a loro volta, ad esempio le invocazioni di skill. Corrisponde all'identificatore di esecuzione riportato nel risultato dello strumento Workflow. Assente su tutti gli altri eventi. Richiede Claude Code v2.1.202 o successivo644* `workflow.run_id`: identificatore dell'esecuzione, con prefisso `wf_`, negli eventi API e degli strumenti emessi dagli agenti che appartengono a un'esecuzione dello strumento [Workflow](/docs/it/workflows). Filtrando gli eventi per un singolo `workflow.run_id` si ricostruiscono le richieste API e i risultati degli strumenti di quell'esecuzione. L'identificatore copre gli agenti generati dallo script del workflow e gli eventuali agenti generati a loro volta da questi, come le invocazioni di skill. Corrisponde all'identificatore dell'esecuzione riportato nel risultato dello strumento Workflow. Assente in tutti gli altri eventi.

645* `workflow.name`: nome del workflow, il `meta.name` dello script, emesso insieme a `workflow.run_id`. I nomi dei workflow incorporati appaiono letteralmente quando l'esecuzione esegue lo script incorporato non modificato. I nomi creati dall'utente, incluse le copie modificate degli script incorporati, vengono sostituiti con `custom` a meno che `OTEL_LOG_TOOL_DETAILS=1` non sia impostato. Richiede Claude Code v2.1.202 o successivo645* `workflow.name`: nome del workflow, il `meta.name` del suo script, emesso insieme a `workflow.run_id`. I nomi dei workflow integrati appaiono testualmente quando l'esecuzione usa lo script integrato non modificato. I nomi definiti dall'utente, incluse le copie modificate degli script integrati, vengono sostituiti con `custom` a meno che non sia impostato `OTEL_LOG_TOOL_DETAILS=1`.

646 646 

647<h4 id="repository-attributes">647<h4 id="repository-attributes">

648 Attributi del repository648 Attributi del repository


1075 Evento di cambio della modalità di autorizzazione1075 Evento di cambio della modalità di autorizzazione

1076</h4>1076</h4>

1077 1077 

1078Registrato quando la modalità di autorizzazione cambia, ad esempio dal ciclo Shift+Tab, dall'uscita dalla modalità piano, o da un controllo del gate della modalità automatica.1078Registrato quando la modalità di permesso cambia, ad esempio scorrendo le modalità con `Shift+Tab`, uscendo dal plan mode o in seguito a un controllo della modalità auto.

1079 1079 

1080**Nome evento**: `claude_code.permission_mode_changed`1080**Nome evento**: `claude_code.permission_mode_changed`

1081 1081 


1374* `pre_tokens`: Conteggio approssimativo dei token prima della compattazione1374* `pre_tokens`: Conteggio approssimativo dei token prima della compattazione

1375* `post_tokens`: Conteggio approssimativo dei token dopo la compattazione1375* `post_tokens`: Conteggio approssimativo dei token dopo la compattazione

1376* `error`: Messaggio di errore quando la compattazione ha fallito1376* `error`: Messaggio di errore quando la compattazione ha fallito

1377* `precompute_reuse`: Impostato solo quando `trigger` è `"manual"`. La compattazione automatica può preparare un riepilogo in background prima che la finestra di contesto si riempia, e questo attributo registra se `/compact` ha riutilizzato quel riepilogo preparato. `"hit"` significa che è stato riutilizzato; `"miss_custom_instructions"`, `"miss_hook"` e `"miss_not_ready"` indicano il motivo per cui è stato invece calcolato un nuovo riepilogo1377* `precompute_reuse`: Impostato solo quando `trigger` è `"manual"` o per una [compattazione in inattività](/docs/it/settings-reference#idlecompaction), che riporta `trigger` come `"auto"`. La compattazione automatica può preparare un riepilogo in background prima che la finestra di contesto si riempia, e questo attributo registra se la compattazione ha riutilizzato quel riepilogo preparato. `"hit"` indica che è stato riutilizzato; `"miss_custom_instructions"`, `"miss_hook"` e `"miss_not_ready"` indicano il motivo per cui è stato invece calcolato un nuovo riepilogo

1378 1378 

1379<h4 id="subagent-completed-event">1379<h4 id="subagent-completed-event">

1380 Evento di completamento del subagent1380 Evento di completamento del subagent

Details

209| :- | :- | :- | :- |209| :- | :- | :- | :- |

210| Scadenza del primo byte | Nessun header di risposta arriva dopo che Claude Code invia la richiesta | API Anthropic diretta e [Claude Platform on AWS](/docs/it/claude-platform-on-aws), incluso attraverso un proxy HTTPS, ma non quando `ANTHROPIC_BASE_URL` o `ANTHROPIC_AWS_BASE_URL` le instradano attraverso un [gateway](/docs/it/gateways). Opt-in su Amazon Bedrock con `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`; non viene eseguito su Google Cloud's Agent Platform o Microsoft Foundry | 180 secondi sull'API Anthropic diretta, 300 secondi altrove, più un secondo per ogni 32KB del corpo della richiesta |210| Scadenza del primo byte | Nessun header di risposta arriva dopo che Claude Code invia la richiesta | API Anthropic diretta e [Claude Platform on AWS](/docs/it/claude-platform-on-aws), incluso attraverso un proxy HTTPS, ma non quando `ANTHROPIC_BASE_URL` o `ANTHROPIC_AWS_BASE_URL` le instradano attraverso un [gateway](/docs/it/gateways). Opt-in su Amazon Bedrock con `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`; non viene eseguito su Google Cloud's Agent Platform o Microsoft Foundry | 180 secondi sull'API Anthropic diretta, 300 secondi altrove, più un secondo per ogni 32KB del corpo della richiesta |

211| Watchdog a livello di evento | Nessun evento di risposta viene analizzato. Su connessioni in cui viene eseguito il watchdog a livello di byte, i byte in arrivo, inclusi i ping keep-alive, ripristinano anche questo watchdog, per circa cinque minuti senza un evento analizzato | Ogni provider | 300 secondi |211| Watchdog a livello di evento | Nessun evento di risposta viene analizzato. Su connessioni in cui viene eseguito il watchdog a livello di byte, i byte in arrivo, inclusi i ping keep-alive, ripristinano anche questo watchdog, per circa cinque minuti senza un evento analizzato | Ogni provider | 300 secondi |

212| Watchdog a livello di byte | Nessun byte arriva sul filo, inclusi i ping keep-alive SSE | API Anthropic diretta, [Claude Platform on AWS](/docs/it/claude-platform-on-aws), e [gateway](/docs/it/gateways) connessioni, incluso un `ANTHROPIC_BASE_URL` personalizzato. Opt-in su risposte Amazon Bedrock `vnd.amazon.eventstream` con `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`; non viene eseguito su Google Cloud's Agent Platform o Microsoft Foundry | 180 secondi sull'API Anthropic diretta. Attraverso un `ANTHROPIC_BASE_URL` personalizzato, 180 secondi quando Claude Code ha [recuperato i feature flag](/docs/it/env-vars#features-that-need-feature-flag-fetching) e 300 secondi quando non lo ha fatto. 300 secondi altrove |212| Watchdog a livello di byte | Nessun byte arriva sul filo, inclusi i ping keep-alive SSE | API Anthropic diretta, [Claude Platform on AWS](/docs/it/claude-platform-on-aws) e connessioni tramite [gateway](/docs/it/gateways), incluso un `ANTHROPIC_BASE_URL` personalizzato. Opt-in su risposte Amazon Bedrock `vnd.amazon.eventstream` con `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`; non viene eseguito su Google Cloud's Agent Platform o Microsoft Foundry | 180 secondi sull'API Anthropic diretta. 300 secondi su Claude Platform on AWS, su Amazon Bedrock, in una sessione [Claude apps gateway](/docs/it/claude-apps-gateway) e attraverso un `ANTHROPIC_BASE_URL` personalizzato |

213| Timeout di inattività del corpo | Nessun byte arriva per 5 minuti | Provider diversi dall'API Anthropic diretta, Claude Platform on AWS, e Amazon Bedrock con `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` impostato, a meno che [`API_FORCE_IDLE_TIMEOUT`](/docs/it/env-vars) non lo modifichi | 5 minuti |213| Timeout di inattività del corpo | Nessun byte arriva per 5 minuti | Provider diversi dall'API Anthropic diretta, Claude Platform on AWS, e Amazon Bedrock con `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` impostato, a meno che [`API_FORCE_IDLE_TIMEOUT`](/docs/it/env-vars) non lo modifichi | 5 minuti |

214 214 

215Se si imposta `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`, il watchdog a livello di byte sostituisce il timeout di inattività del corpo su Bedrock piuttosto che essere eseguito insieme ad esso. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` governa quindi anche quanto a lungo uno stream Bedrock può rimanere silenzioso prima che Claude Code consideri la connessione come morta, entro i limiti elencati di seguito. I byte in arrivo ancora non ripristinano il watchdog a livello di evento su Bedrock. Con la registrazione di debug attivata, ogni stream Bedrock registra quindi un messaggio di debug che inizia con `wire-heartbeat: _chunkTimes absent`.215Se si imposta `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`, il watchdog a livello di byte sostituisce il timeout di inattività del corpo su Bedrock piuttosto che essere eseguito insieme ad esso. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` governa quindi anche quanto a lungo uno stream Bedrock può rimanere silenzioso prima che Claude Code consideri la connessione come morta, entro i limiti elencati di seguito. I byte in arrivo ancora non ripristinano il watchdog a livello di evento su Bedrock. Con la registrazione di debug attivata, ogni stream Bedrock registra quindi un messaggio di debug che inizia con `wire-heartbeat: _chunkTimes absent`.

Details

239 * **[Sessioni Remote Control](/docs/it/remote-control)** sulla tua macchina locale: Manual, Accept edits, Plan e Auto per una sessione che hai avviato tu stesso, e non puoi selezionare Bypass permissions dall'app. Per usare Auto, la sessione deve soddisfare i [requisiti di disponibilità](#eliminate-prompts-with-auto-mode) della modalità auto. Per un thread di progetto in esecuzione sul tuo computer, consulta [Esegui un thread sul tuo computer](/docs/it/claude-projects#run-a-thread-on-your-own-computer).239 * **[Sessioni Remote Control](/docs/it/remote-control)** sulla tua macchina locale: Manual, Accept edits, Plan e Auto per una sessione che hai avviato tu stesso, e non puoi selezionare Bypass permissions dall'app. Per usare Auto, la sessione deve soddisfare i [requisiti di disponibilità](#eliminate-prompts-with-auto-mode) della modalità auto. Per un thread di progetto in esecuzione sul tuo computer, consulta [Esegui un thread sul tuo computer](/docs/it/claude-projects#run-a-thread-on-your-own-computer).

240 * Ad eccezione di Bypass permissions, il menu a discesa mostra la modalità di permesso in cui si trova la sessione locale, inclusa una impostata dal terminale. Si aggiorna quando la modalità di permesso cambia nell'app o nel terminale.240 * Ad eccezione di Bypass permissions, il menu a discesa mostra la modalità di permesso in cui si trova la sessione locale, inclusa una impostata dal terminale. Si aggiorna quando la modalità di permesso cambia nell'app o nel terminale.

241 * Le sessioni ospitate dall'[app desktop](/docs/it/desktop) o dall'[estensione VS Code](/docs/it/vs-code) segnalano i cambiamenti della modalità di permesso a claude.ai man mano che avvengono, come le sessioni ospitate in un terminale.241 * Le sessioni ospitate dall'[app desktop](/docs/it/desktop) o dall'[estensione VS Code](/docs/it/vs-code) segnalano i cambiamenti della modalità di permesso a claude.ai man mano che avvengono, come le sessioni ospitate in un terminale.

242 * Prima della v2.1.202, le sessioni connesse con `/remote-control` o `claude --remote-control` non segnalavano affatto la loro modalità di permesso, quindi claude.ai e l'app mobile potevano mostrare una modalità di permesso in cui la sessione non si trovava. La discrepanza riguardava solo l'etichetta. Claude Code generava le richieste di permesso dalla modalità di permesso effettiva della sessione, e queste apparivano comunque nell'app per l'approvazione.

243 242 

244 Per Remote Control, la macchina locale che esegue la sessione deve essere connessa con il tuo account claude.ai; le chiavi API non sono supportate. Puoi anche impostare la modalità di autorizzazione iniziale al lancio di quella sessione locale:243 Per Remote Control, la macchina locale che esegue la sessione deve essere connessa con il tuo account claude.ai; le chiavi API non sono supportate. Puoi anche impostare la modalità di autorizzazione iniziale al lancio di quella sessione locale:

245 244 


352 351 

353Per impedire agli sviluppatori di utilizzare la modalità auto, imposta `disableAutoMode` su `"disable"` nelle [impostazioni gestite](/docs/it/managed-settings). Questo rimuove `auto` dal ciclo `Shift+Tab`, e una sessione avviata con `--permission-mode auto` inizia invece in Manual. Una sessione già in esecuzione in modalità auto la lascia quando l'impostazione raggiunge quella sessione da una [fonte distribuita dall'amministratore](/docs/it/managed-settings#which-managed-source-claude-code-uses), e mostra `auto mode disabled by settings`. Prima della v2.1.251, una sessione in esecuzione manteneva la modalità auto fino al termine.352Per impedire agli sviluppatori di utilizzare la modalità auto, imposta `disableAutoMode` su `"disable"` nelle [impostazioni gestite](/docs/it/managed-settings). Questo rimuove `auto` dal ciclo `Shift+Tab`, e una sessione avviata con `--permission-mode auto` inizia invece in Manual. Una sessione già in esecuzione in modalità auto la lascia quando l'impostazione raggiunge quella sessione da una [fonte distribuita dall'amministratore](/docs/it/managed-settings#which-managed-source-claude-code-uses), e mostra `auto mode disabled by settings`. Prima della v2.1.251, una sessione in esecuzione manteneva la modalità auto fino al termine.

354 353 

355Dalla v2.1.158 alla v2.1.206, la modalità auto era disattivata su questi provider fino a quando non impostavi `CLAUDE_CODE_ENABLE_AUTO_MODE=1`, e Claude Code ignorava `defaultMode: "auto"` su questi provider a meno che non fosse impostata anche la variabile. La variabile è ancora accettata per compatibilità e non ha effetto dalla v2.1.207 in poi.

356 

357<h3 id="server-side-classifier-review">354<h3 id="server-side-classifier-review">

358 Revisione del classificatore lato server355 Revisione del classificatore lato server

359</h3>356</h3>


408* Avvio di un ciclo di agente autonomo che viene eseguito senza approvazione umana o sandbox, come uno avviato con `--dangerously-skip-permissions` o `--no-sandbox`. Questo include l'esecuzione di un agente di terze parti o di un harness di eval con isolamento e approvazione per azione disabilitati, come un runner avviato con `--yes-always`405* Avvio di un ciclo di agente autonomo che viene eseguito senza approvazione umana o sandbox, come uno avviato con `--dangerously-skip-permissions` o `--no-sandbox`. Questo include l'esecuzione di un agente di terze parti o di un harness di eval con isolamento e approvazione per azione disabilitati, come un runner avviato con `--yes-always`

409* Azioni del browser di [Claude in Chrome](/docs/it/chrome) che potrebbero inviare contenuto della pagina, cookie o credenziali off-origin406* Azioni del browser di [Claude in Chrome](/docs/it/chrome) che potrebbero inviare contenuto della pagina, cookie o credenziali off-origin

410* Eliminazione di file in `/tmp`, `$TMPDIR`, o un'altra directory di scratch o cache condivisa tramite wildcard, glob o filtro di età anziché tramite un percorso specifico indicato407* Eliminazione di file in `/tmp`, `$TMPDIR`, o un'altra directory di scratch o cache condivisa tramite wildcard, glob o filtro di età anziché tramite un percorso specifico indicato

411* Inclusione di dettagli sensibili nel contenuto inviato, caricato, pubblicato o scritto ad altre persone o sistemi condivisi, quando il tuo messaggio non ha autorizzato quei dettagli per quel destinatario. I corpi di PR e issue, i messaggi di commit e i commenti contano come questo tipo di contenuto in uscita quando il repository è al di fuori del confine di fiducia o è pubblico, inclusi i repository pubblici della tua organizzazione; i percorsi di file interni, i nomi in codice, i dati attivi di risposte API come email o identificatori di account, e gli identificatori di infrastruttura contano come dettagli sensibili. I dati personali attivi provenienti da una risposta API in un corpo di PR o issue, come un indirizzo email, un identificatore di account o di organizzazione, o una metrica di utilizzo, richiedono che tu nomini quei dettagli e il destinatario indipendentemente dalla visibilità del repository o dal confine di fiducia. Quel controllo richiede Claude Code v2.1.203 o successivo408* Inclusione di dettagli sensibili nel contenuto inviato, caricato, pubblicato o scritto ad altre persone o sistemi condivisi, quando il tuo messaggio non ha autorizzato quei dettagli per quel destinatario. I corpi di PR e issue, i messaggi di commit e i commenti contano come questo tipo di contenuto in uscita quando il repository è al di fuori del confine di fiducia o è pubblico, inclusi i repository pubblici della tua organizzazione; i percorsi di file interni, i nomi in codice, i dati attivi di risposte API come email o identificatori di account, e gli identificatori di infrastruttura contano come dettagli sensibili. I dati personali attivi provenienti da una risposta API in un corpo di PR o issue, come un indirizzo email, un identificatore di account o di organizzazione, o una metrica di utilizzo, richiedono che tu nomini quei dettagli e il destinatario indipendentemente dalla visibilità del repository o dal confine di fiducia

412* Invio di sequenze di tasti al pannello tmux di Claude Code stesso per pilotare la sua stessa interfaccia, che il classificatore tratta come Claude che modifica i propri permessi o la propria supervisione409* Invio di sequenze di tasti al pannello tmux di Claude Code stesso per pilotare la sua stessa interfaccia, che il classificatore tratta come Claude che modifica i propri permessi o la propria supervisione

413* Commentare, eliminare o forzare il superamento di un test o di un'asserzione che protegge un comportamento di sicurezza, come autenticazione, controllo degli accessi, convalida dell'input o sandboxing410* Commentare, eliminare o forzare il superamento di un test o di un'asserzione che protegge un comportamento di sicurezza, come autenticazione, controllo degli accessi, convalida dell'input o sandboxing

414* Eliminazione o smantellamento di una risorsa con stato che Claude non ha creato nella sessione, quando non si applica nessuna regola di eliminazione più specifica e non hai nominato quella risorsa411* Eliminazione o smantellamento di una risorsa con stato che Claude non ha creato nella sessione, quando non si applica nessuna regola di eliminazione più specifica e non hai nominato quella risorsa

415* Reindirizzamento di un URL di base API, endpoint proxy, ricevitore webhook o mirror di registry verso un host di terze parti non adatto al compito, anche nei file di esempio come `.env.example`412* Reindirizzamento di un URL di base API, endpoint proxy, ricevitore webhook o mirror di registry verso un host di terze parti non adatto al compito, anche nei file di esempio come `.env.example`

416* Modifica della destinazione dei push con `git remote set-url` o `git remote add`, a meno che tu non abbia nominato il nuovo remote413* Modifica della destinazione dei push con `git remote set-url` o `git remote add`, a meno che tu non abbia nominato il nuovo remote

417* Push di segreti o dati personali o affidati a un repository noto come pubblico, o push lì di materiale confidenziale che non fa parte del lavoro proprio di quel repository. L'argomento proprio di un repository di dotfiles è l'unica eccezione per i dati personali o affidati, e il contenuto di un repository privato che raggiunge qualsiasi superficie pubblica viene bloccato allo stesso modo; entrambi i perfezionamenti richiedono Claude Code v2.1.203 o successivo. Prima della v2.1.203, i dati personali erano raggruppati con il materiale confidenziale e bloccati solo quando non facevano parte del lavoro proprio di quel repository. Quando la visibilità di un repository non è stabilita, il classificatore non blocca solo per questo motivo; valuta invece il contenuto rispetto alle altre regole414* Push di segreti o dati personali o affidati a un repository noto come pubblico, o push lì di materiale confidenziale che non fa parte del lavoro proprio di quel repository. L'argomento proprio di un repository di dotfiles è l'unica eccezione per i dati personali o affidati, e il contenuto di un repository privato che raggiunge qualsiasi superficie pubblica viene bloccato allo stesso modo. Quando la visibilità di un repository non è stabilita, il classificatore non blocca solo per questo motivo; valuta invece il contenuto rispetto alle altre regole

418* Apertura di una pull request verso un repository o un'organizzazione diversi, fork con `gh repo fork`, o push a un repository di terze parti, a meno che tu non abbia nominato quel target esterno415* Apertura di una pull request verso un repository o un'organizzazione diversi, fork con `gh repo fork`, o push a un repository di terze parti, a meno che tu non abbia nominato quel target esterno

419 

420Diverse di queste categorie dipendono da voci di [ambiente](/docs/it/auto-mode-config#define-trusted-infrastructure), come target remoti sensibili e ambiti IaC protetti, che puoi restringere a nomi concreti.

421 

422Claude Code v2.1.203 e successivi bloccano anche questi per impostazione predefinita:

423 

424* Contenuto proveniente da un archivio locale sensibile, o da un file il cui nome, percorso o tipo lo identifica come sensibile, che finisce in un commit, un push, il testo di una PR o issue, un gist o paste, o una pubblicazione di pacchetto, a meno che tu non abbia nominato sia la fonte che la destinazione. Le trascrizioni di sessione e i log di conversazione, le cartelle nascoste di credenziali e configurazione come chiavi SSH, credenziali cloud, profili del browser e cronologia della shell, e gli export di dati utente contano tutti, e il fatto che il repository sia privato non rimuove il blocco416* Contenuto proveniente da un archivio locale sensibile, o da un file il cui nome, percorso o tipo lo identifica come sensibile, che finisce in un commit, un push, il testo di una PR o issue, un gist o paste, o una pubblicazione di pacchetto, a meno che tu non abbia nominato sia la fonte che la destinazione. Le trascrizioni di sessione e i log di conversazione, le cartelle nascoste di credenziali e configurazione come chiavi SSH, credenziali cloud, profili del browser e cronologia della shell, e gli export di dati utente contano tutti, e il fatto che il repository sia privato non rimuove il blocco

425 

426Claude Code v2.1.205 e successivi bloccano anche questi per impostazione predefinita:

427 

428* Scrittura nelle trascrizioni di sessione di Claude Code, i file di cronologia `.jsonl` sotto `~/.claude/projects/` o la directory di configurazione che hai configurato, direttamente o tramite un comando della shell. La regola copre anche le righe di metadati che Claude Code aggiunge a ogni voce della trascrizione per i propri controlli. La lettura di una trascrizione non è bloccata417* Scrittura nelle trascrizioni di sessione di Claude Code, i file di cronologia `.jsonl` sotto `~/.claude/projects/` o la directory di configurazione che hai configurato, direttamente o tramite un comando della shell. La regola copre anche le righe di metadati che Claude Code aggiunge a ogni voce della trascrizione per i propri controlli. La lettura di una trascrizione non è bloccata

429* Un'eliminazione forzata ricorsiva come `rm -rf "$VAR"` o `Remove-Item -Recurse -Force $dir` il cui target è una variabile della shell non assegnata in nessun punto della conversazione che il classificatore vede, o un glob radicato in tale variabile. Il valore proveniva solo dall'output di un comando precedente, che il classificatore non riceve mai, quindi il classificatore non può verificare il target dell'eliminazione rispetto alle altre regole di eliminazione. Il blocco viene rimosso quando nomini il percorso esatto da eliminare, o quando Claude riesegue l'eliminazione con il percorso letterale risolto scritto nel comando. Le eliminazioni il cui target il classificatore può risolvere non sono interessate.418* Un'eliminazione forzata ricorsiva come `rm -rf "$VAR"` o `Remove-Item -Recurse -Force $dir` il cui target è una variabile della shell non assegnata in nessun punto della conversazione che il classificatore vede, o un glob radicato in tale variabile. Il valore proveniva solo dall'output di un comando precedente, che il classificatore non riceve mai, quindi il classificatore non può verificare il target dell'eliminazione rispetto alle altre regole di eliminazione. Il blocco viene rimosso quando nomini il percorso esatto da eliminare, o quando Claude riesegue l'eliminazione con il percorso letterale risolto scritto nel comando. Le eliminazioni il cui target il classificatore può risolvere non sono interessate.

430 419 

431 Un glob direttamente sotto la variabile, come in `rm -rf "$VAR"/*`, è invece un [percorso critico](#critical-paths). I target di `Remove-Item` che sono un `*` isolato o terminano in `/*` o `\*` non raggiungono mai il classificatore: Claude Code li [nega direttamente](#remove-item-in-powershell).420 Un glob direttamente sotto la variabile, come in `rm -rf "$VAR"/*`, è invece un [percorso critico](#critical-paths). I target di `Remove-Item` che sono un `*` isolato o terminano in `/*` o `\*` non raggiungono mai il classificatore: Claude Code li [nega direttamente](#remove-item-in-powershell).

432 421 

422Diverse di queste categorie dipendono da voci di [ambiente](/docs/it/auto-mode-config#define-trusted-infrastructure), come target remoti sensibili e ambiti IaC protetti, che puoi restringere a nomi concreti.

423 

433Claude Code v2.1.257 e successivi bloccano anche questi per impostazione predefinita:424Claude Code v2.1.257 e successivi bloccano anche questi per impostazione predefinita:

434 425 

435* Richiesta di credenziali all'endpoint dei metadati dell'istanza cloud, come `169.254.169.254`, o autenticazione esplicita di una chiamata a cloud, cluster o registry con l'identità dell'account di servizio o del nodo della macchina stessa426* Richiesta di credenziali all'endpoint dei metadati dell'istanza cloud, come `169.254.169.254`, o autenticazione esplicita di una chiamata a cloud, cluster o registry con l'identità dell'account di servizio o del nodo della macchina stessa


449* Installazione di dipendenze dichiarate nei tuoi file di lock o manifest440* Installazione di dipendenze dichiarate nei tuoi file di lock o manifest

450* Lettura di `.env` e invio di credenziali all'API corrispondente441* Lettura di `.env` e invio di credenziali all'API corrispondente

451* Richieste HTTP di sola lettura442* Richieste HTTP di sola lettura

452* Push a qualsiasi branch del repository in cui stai lavorando, incluso il branch predefinito. Un branch non predefinito il cui nome lo identifica come target di deploy o pubblicazione, come `production` o `gh-pages`, non è coperto: il classificatore valuta un push lì in modo autonomo. Il contenuto del push viene comunque controllato rispetto alle altre regole, le [regole `permissions.deny`](/docs/it/permissions#manage-permissions) possono comunque bloccare i comandi push [così come sono scritti](/docs/it/permissions#bash-rule-limits) in ogni modalità, e la protezione dei branch del remote si applica comunque. Prima della v2.1.211, solo i push al branch da cui eri partito, ai branch creati da Claude, e i push di routine al branch predefinito erano consentiti per impostazione predefinita, e prima della v2.1.203 qualsiasi push diretto al branch predefinito era bloccato443* Push a qualsiasi branch del repository in cui stai lavorando, incluso il branch predefinito. Un branch non predefinito il cui nome lo identifica come target di deploy o pubblicazione, come `production` o `gh-pages`, non è coperto: il classificatore valuta un push lì in modo autonomo. Il contenuto del push viene comunque controllato rispetto alle altre regole, le [regole `permissions.deny`](/docs/it/permissions#manage-permissions) possono comunque bloccare i comandi push [così come sono scritti](/docs/it/permissions#bash-rule-limits) in ogni modalità, e la protezione dei branch del remote si applica comunque. Prima della v2.1.211, solo i push al branch da cui eri partito, ai branch creati da Claude, e i push di routine al branch predefinito erano consentiti per impostazione predefinita

453* Eliminazione dei job esatti che Claude ha creato in precedenza nella stessa sessione444* Eliminazione dei job esatti che Claude ha creato in precedenza nella stessa sessione

454* Lettura, revisione o scrittura di codice, configurazioni e modelli di minaccia relativi alla sicurezza come parte del tuo compito445* Lettura, revisione o scrittura di codice, configurazioni e modelli di minaccia relativi alla sicurezza come parte del tuo compito

455* Messaggi tra agenti che lavorano insieme nella stessa sessione multi-agente446* Messaggi tra agenti che lavorano insieme nella stessa sessione multi-agente

permissions.md +8 −3

Details

384 384 

385Le regole `Edit` si applicano a tutti gli strumenti integrati che modificano i file. Claude fa il possibile per applicare le regole `Read` a tutti gli strumenti integrati che leggono file, come Grep e Glob, alle menzioni `@file` nei tuoi prompt e alla selezione e al contesto dei file aperti che un [IDE](/docs/it/vs-code#the-built-in-ide-mcp-server) connesso condivide con Claude.385Le regole `Edit` si applicano a tutti gli strumenti integrati che modificano i file. Claude fa il possibile per applicare le regole `Read` a tutti gli strumenti integrati che leggono file, come Grep e Glob, alle menzioni `@file` nei tuoi prompt e alla selezione e al contesto dei file aperti che un [IDE](/docs/it/vs-code#the-built-in-ide-mcp-server) connesso condivide con Claude.

386 386 

387Una regola deny `Read(path)` si applica anche ai percorsi di immagini che incolli in un prompt e alle directory che menzioni con @:

388 

389* **Percorso di un'immagine**: quando incolli il percorso di un'immagine o trascini un file immagine nel tuo prompt nel terminale e la regola corrisponde a quel percorso, Claude Code non allega l'immagine. Se ciò che incolli non contiene altre immagini, il percorso rimane nel tuo prompt come testo.

390* **Directory**: l'[elenco che Claude riceve](/docs/it/common-workflows#reference-files-and-directories) omette i nomi di file e directory a cui corrisponde la regola.

391 

392Claude Code controlla i percorsi di immagini incollati e gli elenchi delle directory dalla v2.1.290 in poi.

393 

387Una regola deny `Read` blocca anche gli [strumenti Edit e Write](/docs/it/errors#file-is-covered-by-a-read-deny-rule) sullo stesso percorso, inclusa la creazione di un nuovo file in quella posizione. NotebookEdit non è coperto, quindi aggiungi una regola deny `Edit` per i percorsi che nessuno strumento deve modificare. Il controllo richiede Claude Code v2.1.208 o successiva per le modifiche, e v2.1.228 o successiva per le scritture.394Una regola deny `Read` blocca anche gli [strumenti Edit e Write](/docs/it/errors#file-is-covered-by-a-read-deny-rule) sullo stesso percorso, inclusa la creazione di un nuovo file in quella posizione. NotebookEdit non è coperto, quindi aggiungi una regola deny `Edit` per i percorsi che nessuno strumento deve modificare. Il controllo richiede Claude Code v2.1.208 o successiva per le modifiche, e v2.1.228 o successiva per le scritture.

388 395 

389Claude Code controlla i permessi sui file solo rispetto alle regole `Edit(path)` e `Read(path)`. Se invece scrivi una regola di percorso per `Write`, `NotebookEdit`, `Glob` o lo strumento legacy `MultiEdit`, Claude Code accetta la regola ma non la consulta mai e [mostra un avviso all'avvio](/docs/it/errors#is-not-matched-by-file-permission-checks), tranne nel caso di una regola `Glob` passata in `--allowedTools`. Usa `Edit(docs/**)` al posto di `Write(docs/**)`, `NotebookEdit(docs/**)` o `MultiEdit(docs/**)`, e `Read(docs/**)` al posto di `Glob(docs/**)`. Claude Code non mostra avvisi per una regola con il solo nome dello strumento e senza percorso, come una regola deny per `Write`; applica quella regola a livello di strumento ovunque. Richiede Claude Code v2.1.210 o successiva.396Claude Code controlla i permessi sui file solo rispetto alle regole `Edit(path)` e `Read(path)`. Se invece scrivi una regola di percorso per `Write`, `NotebookEdit`, `Glob` o lo strumento legacy `MultiEdit`, Claude Code accetta la regola ma non la consulta mai e [mostra un avviso all'avvio](/docs/it/errors#is-not-matched-by-file-permission-checks), tranne nel caso di una regola `Glob` passata in `--allowedTools`. Usa `Edit(docs/**)` al posto di `Write(docs/**)`, `NotebookEdit(docs/**)` o `MultiEdit(docs/**)`, e `Read(docs/**)` al posto di `Glob(docs/**)`. Claude Code non mostra avvisi per una regola con il solo nome dello strumento e senza percorso, come una regola deny per `Write`; applica quella regola a livello di strumento ovunque. Richiede Claude Code v2.1.210 o successiva.


467 Nei pattern gitignore, `*` corrisponde all'interno di un singolo segmento di percorso e può comparire in qualsiasi posizione del pattern, mentre `**` corrisponde attraverso più directory.474 Nei pattern gitignore, `*` corrisponde all'interno di un singolo segmento di percorso e può comparire in qualsiasi posizione del pattern, mentre `**` corrisponde attraverso più directory.

468</Note>475</Note>

469 476 

470Quando approvi un percorso di file con "Sì, non chiedere più", Claude Code applica l'escape ai caratteri speciali dei pattern gitignore presenti in quel percorso, come `[`, `]` e `*`, in modo che la regola generata corrisponda solo al percorso letterale che hai approvato. Le regole che scrivi tu non vengono sottoposte a escape. Prima della v2.1.202, Claude Code salvava il percorso senza escape, quindi una regola generata per una directory chiamata `[2024-06] Reports` poteva non corrispondere al proprio percorso o corrispondere a directory sorelle non previste.477Quando approvi un percorso di file con "Sì, non chiedere più", Claude Code applica l'escape ai caratteri speciali dei pattern gitignore presenti in quel percorso, come `[`, `]` e `*`, in modo che la regola generata corrisponda solo al percorso letterale che hai approvato. Le regole che scrivi tu non vengono sottoposte a escape.

471 478 

472Non è necessario applicare l'escape alle parentesi tonde in un percorso, quindi `Edit(./Finance (2024)/**)` corrisponde alla cartella `Finance (2024)` così come è scritta.479Non è necessario applicare l'escape alle parentesi tonde in un percorso, quindi `Edit(./Finance (2024)/**)` corrisponde alla cartella `Finance (2024)` così come è scritta.

473 480 


805 L'eccezione della directory di configurazione salta solo il passaggio di trust. `~/.claude/settings.local.json` è ancora [ambito locale](/docs/it/settings#compare-the-scope-of-each-settings-file), quindi Claude Code lo legge solo in sessioni che avviate nella vostra directory home stessa, non in ogni progetto. Per applicare regole di autorizzazione su tutti i vostri progetti, aggiungetele alle vostre impostazioni utente invece: `~/.claude/settings.json`, o `$CLAUDE_CONFIG_DIR/settings.json` quando `CLAUDE_CONFIG_DIR` è impostato.812 L'eccezione della directory di configurazione salta solo il passaggio di trust. `~/.claude/settings.local.json` è ancora [ambito locale](/docs/it/settings#compare-the-scope-of-each-settings-file), quindi Claude Code lo legge solo in sessioni che avviate nella vostra directory home stessa, non in ogni progetto. Per applicare regole di autorizzazione su tutti i vostri progetti, aggiungetele alle vostre impostazioni utente invece: `~/.claude/settings.json`, o `$CLAUDE_CONFIG_DIR/settings.json` quando `CLAUDE_CONFIG_DIR` è impostato.

806</Note>813</Note>

807 814 

808Prima della v2.1.207, Claude Code applicava le regole di un file non tracciato prima che accettassi la finestra di dialogo.

809 

810<h3 id="what-runs-before-you-trust-a-folder">815<h3 id="what-runs-before-you-trust-a-folder">

811 Cosa viene eseguito prima di fidarsi di una cartella816 Cosa viene eseguito prima di fidarsi di una cartella

812</h3>817</h3>

plugin-evals.md +36 −5

Details

441 441 

442| Codice di uscita | Significato |442| Codice di uscita | Significato |

443| :- | :- |443| :- | :- |

444| 0 | Ogni caso ha ottenuto un punteggio pari o superiore a `--threshold` e ogni file di caso è stato caricato |444| 0 | La suite è stata superata: ogni caso ha ottenuto un punteggio pari o superiore a `--threshold` e nient'altro ha fatto fallire l'esecuzione |

445| 1 | Un caso ha ottenuto un punteggio inferiore alla soglia, un file di caso non è stato caricato, non sono stati trovati casi, un'esecuzione non poteva essere avviata, la directory del plugin non è attendibile e `--trust-plugin` non è stato passato, o un'opzione non era valida |445| 1 | Un caso ha ottenuto un punteggio inferiore alla soglia, un file di caso non è stato caricato, non sono stati trovati casi, un'esecuzione non poteva essere avviata, o un'esecuzione [è terminata con un errore API](#runs-ended-on-an-api-error). Restituito anche quando la directory del plugin non è attendibile e `--trust-plugin` non è stato passato, un'opzione non era valida, o il risultato `--json` non poteva essere scritto |

446| 2 | Esecuzione parziale: il limite `--max-cost-usd` è stato raggiunto, o la tua credenziale è stata rifiutata prima o alla prima esecuzione. `results.json` è ancora scritto con `partial: true` e il motivo |446| 2 | Esecuzione parziale: il limite `--max-cost-usd` è stato raggiunto, o la tua credenziale è stata rifiutata prima o alla prima esecuzione. `results.json` è ancora scritto con `partial: true` e il motivo |

447| 130 | Interrotto. I risultati parziali sono scritti |447| 130 | Interrotto. I risultati parziali sono scritti |

448| 143 | Terminato, come da un timeout CI |448| 143 | Terminato, come da un timeout CI |


501| `cases[].name` | Nome del caso |501| `cases[].name` | Nome del caso |

502| `cases[].aggregates.score` | Punteggio medio dell'esecuzione with-arm per il caso |502| `cases[].aggregates.score` | Punteggio medio dell'esecuzione with-arm per il caso |

503| `cases[].aggregates.delta` | Punteggio with-arm meno punteggio without-arm. Omesso quando gli arm non sono comparabili |503| `cases[].aggregates.delta` | Punteggio with-arm meno punteggio without-arm. Omesso quando gli arm non sono comparabili |

504| `cases[].arms.with[].error` | `null`, o perché un'esecuzione è terminata anormalmente, come `timed out after 300s`. Un'esecuzione che è iniziata ma è terminata male è ancora valutata su quello che ha prodotto, quindi un errore non nullo non implica punteggio 0 |504| `cases[].arms.with[].error` | `null`, o perché un'esecuzione è terminata anormalmente, come `timed out after 300s`. Alcune di queste esecuzioni vengono comunque valutate su quello che hanno prodotto, quindi un errore non nullo non implica punteggio 0. Un'esecuzione che [è terminata con un errore API](#runs-ended-on-an-api-error) ottiene punteggio 0 senza valutazione |

505| `cases[].arms.with[].aborted` | Presente quando un [mock](#mock-mcp-servers) ha fermato l'esecuzione tramite `expect:`, `abort_when` o il [budget di chiamate dell'agent-mock](#mock-call-budget-exceeded), con `server`, `tool`, e `reason`. L'esecuzione ottiene un punteggio 0 e `error` rimane `null` |505| `cases[].arms.with[].aborted` | Presente quando un [mock](#mock-mcp-servers) ha fermato l'esecuzione tramite `expect:`, `abort_when` o il [budget di chiamate dell'agent-mock](#mock-call-budget-exceeded), con `server`, `tool`, e `reason`. L'esecuzione ottiene un punteggio 0 e `error` rimane `null` |

506| `cases[].arms.with[].skippedPaidGraders` | `true` quando il limite di costo ha saltato i grader judge di questa esecuzione, quindi il suo punteggio non è comparabile |506| `cases[].arms.with[].skippedPaidGraders` | `true` quando il limite di costo ha saltato i grader judge di questa esecuzione, quindi il suo punteggio non è comparabile |

507| `costUsd`, `durationSeconds`, `claudeVersion` | Costo stimato al prezzo di listino incluse le chiamate judge, secondi di parete, e la versione di Claude Code che ha eseguito la suite |507| `costUsd`, `durationSeconds`, `claudeVersion` | Costo stimato al prezzo di listino incluse le chiamate judge, secondi di parete, e la versione di Claude Code che ha eseguito la suite |


722 722 

723Prima di v2.1.283, `claude plugin eval` non controllava la versione di git, e su un git più vecchio la suite veniva eseguita con quei programmi lasciati attivi.723Prima di v2.1.283, `claude plugin eval` non controllava la versione di git, e su un git più vecchio la suite veniva eseguita con quei programmi lasciati attivi.

724 724 

725<h3 id="cannot-be-evaluated-where-sessions-load-it">

726 "cannot be evaluated where sessions load it"

727</h3>

728 

729Hai eseguito `claude plugin eval` nella tua shell con il nome di un plugin installato da un marketplace che hai [aggiunto da un percorso locale](/docs/it/plugins/loading#in-place-and-copied-plugins). Nessuna sessione potrebbe caricare il plugin da quel marketplace ora, quindi il comando si rifiuta con questo messaggio ed esce con codice 1.

730 

731```text theme={null}

732Error: formatter@my-marketplace cannot be evaluated where sessions load it: no session could load it now. Its marketplace is a folder whose catalog could not be read, or lists it no more. Check the marketplace with `claude plugin marketplace list`, or pass ./<dir> to evaluate a directory.

733```

734 

735La frase dopo `no session could load it now.` indica cosa non ha funzionato.

736 

737Esegui `claude plugin marketplace list` nella tua shell e correggi ciò che il messaggio indica. Ad esempio, ripristina la directory del marketplace o reinserisci la voce del plugin nel suo catalogo. Per valutare il sorgente del plugin senza il marketplace, passa la sua directory come target, ad esempio `claude plugin eval ./plugins/formatter`.

738 

725<h3 id="no-eval-cases-found">739<h3 id="no-eval-cases-found">

726 "No eval cases found"740 "No eval cases found"

727</h3>741</h3>


772 L'esecuzione esce 1 ma i risultati sembrano bene786 L'esecuzione esce 1 ma i risultati sembrano bene

773</h3>787</h3>

774 788 

775Il `--threshold` predefinito è 1.0, quindi il comando esce 1 quando qualsiasi caso ottiene un punteggio inferiore a perfetto. Imposta una soglia che corrisponda al punteggio che richiedi. L'uscita 1 copre anche un file di caso che non è stato caricato, che viene riportato su stderr sopra la tabella.789Quando ogni caso ha ottenuto un punteggio pari o superiore a `--threshold` e il comando esce comunque con 1, una riga su stderr indica la causa, anche con `--json`. Ad esempio, un file di caso non è stato caricato, oppure alcune esecuzioni [sono terminate con un errore API](#runs-ended-on-an-api-error). Per le altre cause, vedi i [codici di uscita](#run-evals-in-ci).

790 

791Il `--threshold` predefinito è 1.0, quindi il comando esce 1 quando qualsiasi caso ottiene un punteggio inferiore a perfetto. Imposta una soglia che corrisponda al punteggio che richiedi.

776 792 

777<h3 id="json-output-path-must-end-in-json">793<h3 id="json-output-path-must-end-in-json">

778 `--json output path must end in .json`794 `--json output path must end in .json`


786 802 

787Quel grader è escluso dal punteggio per design in un'esecuzione a due arm, e il suo campo `scored` è `false`. Vedi [Punteggio rispetto alla baseline senza plugin](#compare-against-a-no-plugin-baseline).803Quel grader è escluso dal punteggio per design in un'esecuzione a due arm, e il suo campo `scored` è `false`. Vedi [Punteggio rispetto alla baseline senza plugin](#compare-against-a-no-plugin-baseline).

788 804 

805<h3 id="runs-ended-on-an-api-error">

806 "ended on an API error and scored 0 without grading"

807</h3>

808 

809Questo avviso su stderr significa che l'API ha risposto all'ultima richiesta di almeno un'esecuzione con un errore HTTP, come un rate limit o un limite di utilizzo del piano. Un'esecuzione del genere ottiene punteggio 0 senza risultati dei grader, e il comando esce con un codice diverso da zero indipendentemente dai punteggi e da `--threshold`.

810 

811Per risolvere, trova l'errore di ogni esecuzione interessata e risolvi la causa che riporta, poi esegui di nuovo la suite:

812 

813* **Senza `--json`**: l'errore si trova alla fine della riga di avanzamento dell'esecuzione, dopo `error:`

814* **Con `--json`**: l'errore si trova nel [risultato JSON](#json-result), in `cases[].arms.with[].error` o `cases[].arms.without[].error`

815 

816Il conteggio include anche le esecuzioni [baseline](#the-no-plugin-baseline). I loro punteggi non decidono mai se un caso passa, quindi ogni caso può passare mentre il comando fallisce comunque. In un'esecuzione a due arm, `W/OUT` e `Δ` del caso interessato vengono stampati come `—`. Per un limite di utilizzo o un rate limit, vedi [Le esecuzioni falliscono con un errore di limite di utilizzo o di rate limit a metà strada](#runs-fail-with-a-usage-limit-or-rate-limit-error-partway-through).

817 

818Prima di v2.1.299, un'esecuzione del genere veniva valutata su ciò che aveva prodotto.

819 

789<h3 id="runs-fail-with-a-usage-limit-or-rate-limit-error-partway-through">820<h3 id="runs-fail-with-a-usage-limit-or-rate-limit-error-partway-through">

790 Le esecuzioni falliscono con un errore di limite di utilizzo o limite di velocità a metà strada821 Le esecuzioni falliscono con un errore di limite di utilizzo o limite di velocità a metà strada

791</h3>822</h3>

792 823 

793Se il tuo account raggiunge il limite di utilizzo del piano o un limite di velocità API mentre una suite è in esecuzione, ogni esecuzione successiva termina con quell'errore, viene valutata su quello che ha prodotto, e di solito ottiene un punteggio 0. La suite finisce comunque e non è contrassegnata `partial`, quindi il risultato può sembrare una regressione. Controlla la colonna `NOTES` o `cases[].arms.with[].error` nel JSON per il messaggio di limite prima di fidarti dei punteggi, poi riesegui dopo che il limite si ripristina, con `--runs 1` o un filtro `--case` se hai bisogno di rimanere sotto di esso.824Le esecuzioni che terminano con un errore di limite di utilizzo o di rate limit [ottengono punteggio 0 senza valutazione](#runs-ended-on-an-api-error), e il comando esce con un codice diverso da zero. La suite finisce comunque e non è contrassegnata `partial`. Riesegui dopo che il limite si ripristina, con `--runs 1` o un filtro `--case` se hai bisogno di rimanere sotto di esso.

794 825 

795<h3 id="mock-call-budget-exceeded">826<h3 id="mock-call-budget-exceeded">

796 "mock call budget exceeded"827 "mock call budget exceeded"

Details

523 523 

524| Codice di uscita | Significato |524| Codice di uscita | Significato |

525| :- | :- |525| :- | :- |

526| `0` | Ogni caso soddisfa la soglia |526| `0` | La suite è stata superata: ogni caso soddisfa la soglia e nient'altro ha fatto fallire l'esecuzione |

527| `1` | Un caso fallito, un errore di caricamento o una directory plugin non attendibile |527| `1` | Un caso fallito, un errore di caricamento, una directory plugin non attendibile, un'esecuzione che [è terminata con un errore API](/docs/it/plugin-evals#runs-ended-on-an-api-error), o un'altra causa elencata in [Esegui evals in CI](/docs/it/plugin-evals#run-evals-in-ci) |

528| `2` | Un'esecuzione parziale |528| `2` | Un'esecuzione parziale |

529| `130` | Interrotto |529| `130` | Interrotto |

530| `143` | Terminato |530| `143` | Terminato |

Details

752 752 

753Il frontmatter di un agente del plugin segue queste regole:753Il frontmatter di un agente del plugin segue queste regole:

754 754 

755* **Campi supportati**: `name`, `description`, `model`, `effort`, `maxTurns`, `tools`, `disallowedTools`, `skills`, `memory`, `background`, `omitClaudeMd`, `isolation`, `color`, e la chiave `cacheTtl` di `experimental`. L'unico valore `isolation` valido è `"worktree"`. Vedere [campi frontmatter supportati](/docs/it/sub-agents#supported-frontmatter-fields) per quello che fa ciascuno755* **Campi supportati**: `name`, `description`, `model`, `effort`, `maxTurns`, `autoCompactWindow`, `tools`, `disallowedTools`, `skills`, `memory`, `background`, `omitClaudeMd`, `isolation`, `color`, e la chiave `cacheTtl` di `experimental`. L'unico valore `isolation` valido è `"worktree"`. Consulta [campi frontmatter supportati](/docs/it/sub-agents#supported-frontmatter-fields) per quello che fa ciascuno

756* **Campi ignorati**: `permissionMode`, `hooks`, `mcpServers`, e `initialPrompt`. Un file agente non può aggiungere hook o server MCP da solo, quindi aggiungili come plugin [hooks](#hooks) e [server MCP](#mcp-servers) invece756* **Campi ignorati**: `permissionMode`, `hooks`, `mcpServers`, e `initialPrompt`. Un file agente non può aggiungere hook o server MCP da solo, quindi aggiungili come plugin [hooks](#hooks) e [server MCP](#mcp-servers) invece

757* **Frontmatter che non analizza**: l'agente carica comunque con ogni campo ignorato. È denominato dopo il file, e la sua descrizione legge `Agent from my-plugin plugin`. Esegui [`claude plugin validate`](/docs/it/plugins/cli-reference#plugin-validate) nella shell per trovare questi file757* **Frontmatter che non analizza**: l'agente carica comunque con ogni campo ignorato. È denominato dopo il file, e la sua descrizione legge `Agent from my-plugin plugin`. Esegui [`claude plugin validate`](/docs/it/plugins/cli-reference#plugin-validate) nella shell per trovare questi file

758 758 

Details

237 237 

238Quando un utente disinstalla l'ultimo plugin che vincola una dipendenza, la dipendenza non è più vincolata a un intervallo di versione e riprende a tracciare la sua voce del marketplace al prossimo aggiornamento.238Quando un utente disinstalla l'ultimo plugin che vincola una dipendenza, la dipendenza non è più vincolata a un intervallo di versione e riprende a tracciare la sua voce del marketplace al prossimo aggiornamento.

239 239 

240<h3 id="dependencies-when-your-plugin-loads-from-claude-ai">

241 Dipendenze quando il tuo plugin viene caricato da claude.ai

242</h3>

243 

244Quando un utente attiva il tuo plugin per il proprio account claude.ai, Claude Code lo carica come `<name>@synced`, [senza marketplace](/docs/it/plugins/loading#synced-plugins). Per quella copia del tuo plugin, Claude Code considera soddisfatta una voce di dipendenza che nomina un marketplace quando l'utente dispone di uno di questi:

245 

246* **La dipendenza dal suo marketplace**: installata dal marketplace indicato nella tua voce e abilitata. Claude Code controlla un intervallo `version` nella tua voce rispetto alla versione della copia installata.

247* **Un plugin claude.ai con lo stesso nome**: abilitato dal proprio account claude.ai. Claude Code controlla un intervallo `version` nella tua voce rispetto alla `version` di quel plugin, e un plugin che non dichiara alcuna `version` supera il controllo.

248 

249Se dici agli utenti di attivare il tuo plugin da claude.ai, di' loro di attivare lì anche la dipendenza, oppure di installarla dal suo marketplace.

250 

251Un plugin claude.ai soddisfa la voce solo quando anche il tuo plugin viene caricato da claude.ai.

252 

240<h2 id="see-also">253<h2 id="see-also">

241 Vedi anche254 Vedi anche

242</h2>255</h2>

Details

48* **Nomi del marketplace della comunità**: `claude-community`, `claude-plugins-community` e `healthcare`. Riservati secondo la stessa regola dei nomi ufficiali.48* **Nomi del marketplace della comunità**: `claude-community`, `claude-plugins-community` e `healthcare`. Riservati secondo la stessa regola dei nomi ufficiali.

49* **Nomi della directory dei plugin**: `anthropic-plugin-directory` e `claude-plugin-directory`. Riservati secondo la stessa regola dei nomi ufficiali.49* **Nomi della directory dei plugin**: `anthropic-plugin-directory` e `claude-plugin-directory`. Riservati secondo la stessa regola dei nomi ufficiali.

50* **Nomi che impersonano un marketplace ufficiale**: nomi come `official-claude-plugins` o `claude-plugins-v2`, e qualsiasi nome contenente un carattere non ASCII. L'errore è `Marketplace name impersonates an official Anthropic/Claude marketplace`. Un carattere di controllo o di formattazione bidirezionale in un nome segnala anche `Marketplace name cannot contain control or bidirectional-formatting characters`. Un marketplace già registrato con tale nome smette di caricarsi, insieme ai suoi plugin.50* **Nomi che impersonano un marketplace ufficiale**: nomi come `official-claude-plugins` o `claude-plugins-v2`, e qualsiasi nome contenente un carattere non ASCII. L'errore è `Marketplace name impersonates an official Anthropic/Claude marketplace`. Un carattere di controllo o di formattazione bidirezionale in un nome segnala anche `Marketplace name cannot contain control or bidirectional-formatting characters`. Un marketplace già registrato con tale nome smette di caricarsi, insieme ai suoi plugin.

51* <span id="reserved-name-spellings" />**Un'altra ortografia di un nome riservato**: un nome che differisce da un nome riservato solo per un punto finale, o per un simbolo diverso da un trattino al posto di un trattino, quindi `claude.code.plugins` conta come `claude-code-plugins`. L'aggiunta del marketplace non riesce con [`is another spelling of "<reserved>", a reserved marketplace name`](/docs/it/errors#marketplace-name-is-another-spelling-of-a-reserved-name), e un marketplace già registrato sotto uno smette di caricarsi. Questo controllo richiede Claude Code v2.1.280 o successivo.51* <span id="reserved-name-spellings" />**Un'altra ortografia di un nome riservato**: un nome che differisce da un nome riservato solo per un punto finale, o per un simbolo diverso da un carattere di sottolineatura al posto di un trattino, quindi `claude.code.plugins` conta come `claude-code-plugins`. L'aggiunta del marketplace non riesce con [`is another spelling of "<reserved>", a reserved marketplace name`](/docs/it/errors#marketplace-name-is-another-spelling-of-a-reserved-name), e un marketplace già registrato sotto uno smette di caricarsi. Questo controllo richiede Claude Code v2.1.280 o successivo.

52* **Nomi che Claude Code utilizza per i plugin che non provengono da un marketplace**: `inline` per i plugin caricati con [`--plugin-dir`](/docs/it/cli-reference), `builtin` per i plugin integrati, `skills-dir` per i plugin caricati automaticamente da [`.claude/skills/`](/docs/it/skills) e `synced` per i plugin sincronizzati dal proprio account claude.ai. Anche `claude-plugin-test` è riservato. `skills-dir` appare anche come `{"source": "skills-dir"}` in `strictKnownMarketplaces` e `blockedMarketplaces`, descritto in [Source values valid only in policy lists](#source-values-valid-only-in-policy-lists).52* **Nomi che Claude Code utilizza per i plugin che non provengono da un marketplace**: `inline` per i plugin caricati con [`--plugin-dir`](/docs/it/cli-reference), `builtin` per i plugin integrati, `skills-dir` per i plugin caricati automaticamente da [`.claude/skills/`](/docs/it/skills) e `synced` per i plugin sincronizzati dal proprio account claude.ai. Anche `claude-plugin-test` è riservato. `skills-dir` appare anche come `{"source": "skills-dir"}` in `strictKnownMarketplaces` e `blockedMarketplaces`, descritto in [Source values valid only in policy lists](#source-values-valid-only-in-policy-lists).

53* **`npm`, `pip`, `uv`, `cargo`, `github` e `gh`**: riservati in qualsiasi maiuscola. Questo controllo richiede Claude Code v2.1.275 o successivo.53* **`npm`, `pip`, `uv`, `cargo`, `github` e `gh`**: riservati in qualsiasi maiuscola. Questo controllo richiede Claude Code v2.1.275 o successivo.

54* **Nomi di membri presenti in ogni oggetto JavaScript**: `constructor`, `hasOwnProperty`, `isPrototypeOf`, `propertyIsEnumerable`, `toLocaleString`, `toString` e `valueOf`. `claude plugin marketplace add` rifiuta un marketplace che ne utilizza uno con [`Claude Code reserves this name and cannot register a marketplace under it`](/docs/it/plugins/troubleshooting#claude-code-reserves-this-name). Questo controllo richiede Claude Code v2.1.296 o successivo.54* **Nomi di membri presenti in ogni oggetto JavaScript**: `constructor`, `hasOwnProperty`, `isPrototypeOf`, `propertyIsEnumerable`, `toLocaleString`, `toString` e `valueOf`. `claude plugin marketplace add` rifiuta un marketplace che ne utilizza uno con [`Claude Code reserves this name and cannot register a marketplace under it`](/docs/it/plugins/troubleshooting#claude-code-reserves-this-name). Questo controllo richiede Claude Code v2.1.296 o successivo.

Details

252 252 

253Per bloccare un prompt, restituisci `{ drop: 'the reason' }` senza chiamare `next`. Il testo torna nel campo di input del prompt dell'utente, che vede `Prompt dropped by a hook:` seguito dal tuo motivo, quindi rivolgi il motivo all'utente. Se il tuo hook restituisce un `drop` dopo che la sua chiamata a `next(e)` ha lasciato passare il prompt, il turno viene comunque eseguito e l'hook [non riesce](#handle-a-hook-that-fails) con un messaggio che include `a drop after its next() was answered`.253Per bloccare un prompt, restituisci `{ drop: 'the reason' }` senza chiamare `next`. Il testo torna nel campo di input del prompt dell'utente, che vede `Prompt dropped by a hook:` seguito dal tuo motivo, quindi rivolgi il motivo all'utente. Se il tuo hook restituisce un `drop` dopo che la sua chiamata a `next(e)` ha lasciato passare il prompt, il turno viene comunque eseguito e l'hook [non riesce](#handle-a-hook-that-fails) con un messaggio che include `a drop after its next() was answered`.

254 254 

255[Altri eventi](/docs/it/plugins/mods/reference#prompts-and-what-claude-reads) coprono il resto di ciò che Claude legge: `prompt.section` per ogni sezione del prompt di sistema, `prompt.context` per il contesto inviato con il primo messaggio e `skill.prompt` per il testo di una skill. Il testo di questi hook che cambia tra una richiesta e l'altra [invalida la cache dei prompt](/docs/it/prompt-caching).255[Altri eventi](/docs/it/plugins/mods/reference#prompts-and-what-claude-reads) coprono il resto di ciò che Claude legge: `prompt.section` per ogni sezione del prompt di sistema, `prompt.context` per il contesto inviato con il primo messaggio e `skill.prompt` per il testo di una skill. Il testo di questi hook che cambia tra una richiesta e l'altra [invalida la cache dei prompt](/docs/it/prompt-caching). In un hook `skill.prompt` puoi anche leggere [da quale plugin o file proviene la skill](/docs/it/plugins/mods/reference#skill-prompt-fields).

256 256 

257<h3 id="follow-a-turn">257<h3 id="follow-a-turn">

258 Seguire un turno258 Seguire un turno

Details

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. 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: 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:

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


263| `cc-plugin-plugin-authoring` | Fornisce a Claude la [skill `plugin-authoring`](/docs/it/plugins/mods/create#ask-claude-for-a-mod) per scrivere mod. Contiene una skill e nessun codice di mod. | A meno che Anthropic non abbia disattivato da remoto i mod installati | Disabilitalo in `/plugin` |263| `cc-plugin-plugin-authoring` | Fornisce a Claude la [skill `plugin-authoring`](/docs/it/plugins/mods/create#ask-claude-for-a-mod) per scrivere mod. Contiene una skill e nessun codice di mod. | A meno che Anthropic non abbia disattivato da remoto i mod installati | Disabilitalo in `/plugin` |

264| `cc-plugin-sec-default` | Protegge ciò che la tua organizzazione gestisce dai mod installati da un utente | [Dove viene caricata la protezione](/docs/it/plugins/mods/admin#know-what-happens-by-default) | Non puoi. Un amministratore [imposta l'ordine](/docs/it/plugins/mods/admin#install-your-organizations-mods) nelle impostazioni gestite |264| `cc-plugin-sec-default` | Protegge ciò che la tua organizzazione gestisce dai mod installati da un utente | [Dove viene caricata la protezione](/docs/it/plugins/mods/admin#know-what-happens-by-default) | Non puoi. Un amministratore [imposta l'ordine](/docs/it/plugins/mods/admin#install-your-organizations-mods) nelle impostazioni gestite |

265| `cc-plugin-telemetry` | Invia i record di analisi registrati da Claude Code e dai suoi mod integrati | Ovunque siano attive le analisi di Claude Code | Disabilitalo in `/plugin`, oppure disattiva le analisi, ad esempio con [`DISABLE_TELEMETRY`](/docs/it/env-vars) |265| `cc-plugin-telemetry` | Invia i record di analisi registrati da Claude Code e dai suoi mod integrati | Ovunque siano attive le analisi di Claude Code | Disabilitalo in `/plugin`, oppure disattiva le analisi, ad esempio con [`DISABLE_TELEMETRY`](/docs/it/env-vars) |

266| `cc-plugin-you-should-know` | Esegue un agente secondario che ti copre le spalle mentre Claude lavora su attività più lunghe. Quando trova qualcosa che vale la pena sapere e che potresti perderti, ti mostra una nota sopra il prompt. | Disabilitato per impostazione predefinita. Elencato in `/plugin` -> **Installed** -> **Show disabled** se disponibile per la tua organizzazione. Abilitalo con [`/plugin enable cc-plugin-you-should-know@builtin`](/docs/it/plugins/cli-reference#plugin-in-a-session). | Disabilitalo in `/plugin` |266| `cc-plugin-you-should-know` | [You should know](/docs/it/interactive-mode#you-should-know-suggestions): un agente secondario mostra una nota sopra il prompt quando trova qualcosa che potresti esserti perso | Disattivato finché non lo [attivi](/docs/it/interactive-mode#you-should-know-suggestions) | Disabilitalo in `/plugin` |

267 267 

268Le impostazioni e i flag che bloccano i mod installati, come `disableAllHooks`, `--bare` e `--safe-mode`, non bloccano i mod integrati.268Le impostazioni e i flag che bloccano i mod installati, come `disableAllHooks`, `--bare` e `--safe-mode`, non bloccano i mod integrati.

269 269 

Details

43| `next.origin` | `{ plugin, tier }` di chi ha generato l'evento. Claude Code stesso è `{ plugin: 'engine', tier: 'core' }`. Il `tier` di un mod è il suo gruppo di priorità nell'[ordine in cui vengono eseguiti i mod](/docs/it/plugins/mods/events#the-order-mods-run-in): `prepend`, `user`, `append` o `builtin`. |43| `next.origin` | `{ plugin, tier }` di chi ha generato l'evento. Claude Code stesso è `{ plugin: 'engine', tier: 'core' }`. Il `tier` di un mod è il suo gruppo di priorità nell'[ordine in cui vengono eseguiti i mod](/docs/it/plugins/mods/events#the-order-mods-run-in): `prepend`, `user`, `append` o `builtin`. |

44| `next.budget` | Il limite di tempo dell'hook in millisecondi: `next.budget.ms` è il limite complessivo e `next.budget.remainingMs` è il tempo rimanente in quel momento |44| `next.budget` | Il limite di tempo dell'hook in millisecondi: `next.budget.ms` è il limite complessivo e `next.budget.remainingMs` è il tempo rimanente in quel momento |

45| `next.to(e, tier)` | Salta a un tier successivo, che può essere `append`, `builtin` o `core`. `next.to(e, 'append')` salta i mod installati da un utente. Solo un mod in `prependPlugins` o `appendPlugins` può chiamarlo. |45| `next.to(e, tier)` | Salta a un tier successivo, che può essere `append`, `builtin` o `core`. `next.to(e, 'append')` salta i mod installati da un utente. Solo un mod in `prependPlugins` o `appendPlugins` può chiamarlo. |

46| `next.error` | Solo in un gestore `.catch`. `kind` è `throw` o `timeout` quando l'hook non è riuscito, e `message` è il testo dell'errore. `kind` è `re-entry` quando l'hook è stato saltato perché l'evento proveniva dall'interno di una delle sue chiamate all'API dei mod, e `cause` è `lent` se a generare quell'evento è stato un metodo che un altro mod aggiunge all'API dei mod. `re-entry` e `cause` richiedono Claude Code v2.1.292 o versioni successive. |46| `next.error` | Solo in un gestore `.catch`. `kind` è `throw` o `timeout` quando l'hook non è riuscito, e `message` è il testo dell'errore. `kind` è `re-entry` quando l'hook è stato saltato perché l'evento proveniva dall'interno di una chiamata all'API dei mod effettuata da quell'hook o dal codice del tuo mod al di fuori dei suoi hook. `re-entry` richiede Claude Code v2.1.292 o versioni successive. |

47| `next.error.cause` | Impostato solo quando `kind` è `re-entry`. `rewritten` se un hook `tool.call` o [`PreToolUse`](/docs/it/hooks#pretooluse) ha modificato la chiamata all'API dei mod da cui proveniva l'evento, oppure se un hook `agent.spawn` ha modificato un agente avviato da quella chiamata. `lent` quando a generare quell'evento è stato un metodo che un altro mod aggiunge all'API dei mod, a meno che non si applichi anche `rewritten`. `lent` richiede Claude Code v2.1.292 o versioni successive e `rewritten` v2.1.300 o versioni successive. |

47| `next.called` | Solo in un gestore `.catch`. `true` quando l'hook aveva chiamato `next`. |48| `next.called` | Solo in un gestore `.catch`. `true` quando l'hook aveva chiamato `next`. |

48 49 

49<h2 id="events">50<h2 id="events">


97| [`skill.prompt`](/docs/it/plugins/mods/events#rewrite-or-add-to-a-prompt) | Il testo di una skill viene espanso per Claude | `{ text }` |98| [`skill.prompt`](/docs/it/plugins/mods/events#rewrite-or-add-to-a-prompt) | Il testo di una skill viene espanso per Claude | `{ text }` |

98| `attribution.text` | Claude Code compone il testo di attribuzione di un commit o di una pull request | `{ text }` |99| `attribution.text` | Claude Code compone il testo di attribuzione di un commit o di una pull request | `{ text }` |

99 100 

101<h4 id="skill-prompt-fields">

102 Campi di origine e frontmatter su `skill.prompt`

103</h4>

104 

105In un hook `skill.prompt`, puoi leggere questi campi insieme al nome della skill in `e.skill` e al testo che Claude legge in `e.text`:

106 

107| Campo | Tipo | Cosa contiene |

108| :- | :- | :- |

109| `e.source` | string | Chi fornisce la skill: `policySettings`, `userSettings` o `projectSettings` per una skill rispettivamente nella [posizione](/docs/it/skills#where-skills-live) enterprise, personale o di progetto. Le altre origini restituiscono una parola come `plugin`, `mcp`, `syncedSkills` o `built-in`. |

110| `e.pluginName` | string | Il nome del plugin, per una skill il cui `e.source` è `plugin` |

111| `e.path` | string | Il percorso assoluto del file `SKILL.md` della skill, o del suo file `.md` per una skill scritta come [file di comando](/docs/it/skills#where-skills-live). Assente quando la skill non ha alcun file su questa macchina, come nel caso di una skill integrata. |

112| `e.frontmatter` | object | Il frontmatter del file della skill, come dati semplici |

113| `e.frontmatterProblem` | string | Il motivo per cui in `e.frontmatter` manca il frontmatter del file o una delle sue chiavi, come in `is a list or a single value, not a table`. Assente quando `e.frontmatter` contiene l'intero frontmatter o quando la skill non ne ha. |

114 

115Un hook può passare un `text` o un `frontmatter` modificato a `next`: gli hook successivi leggono entrambi e Claude legge il `text` finale. Un hook che modifica qualsiasi altro campo [non riesce](/docs/it/plugins/mods/events#handle-a-hook-that-fails).

116 

117Su `skill.prompt`, `e.source`, `e.pluginName`, `e.path`, `e.frontmatter` e `e.frontmatterProblem` richiedono Claude Code v2.1.299 o versioni successive.

118 

100<h3 id="commands-and-configuration">119<h3 id="commands-and-configuration">

101 Comandi e configurazione120 Comandi e configurazione

102</h3>121</h3>

Details

31* [**Skills**](/docs/it/plugins/components#skills): istruzioni `SKILL.md` che Claude carica quando rilevante, e che puoi anche eseguire come comando31* [**Skills**](/docs/it/plugins/components#skills): istruzioni `SKILL.md` che Claude carica quando rilevante, e che puoi anche eseguire come comando

32* [**Agenti**](/docs/it/plugins/components#agents): definizioni di subagenti a cui Claude può delegare32* [**Agenti**](/docs/it/plugins/components#agents): definizioni di subagenti a cui Claude può delegare

33* [**Hooks**](/docs/it/plugins/components#hooks): comandi che Claude Code esegue in punti del suo ciclo di vita, come dopo ogni modifica33* [**Hooks**](/docs/it/plugins/components#hooks): comandi che Claude Code esegue in punti del suo ciclo di vita, come dopo ogni modifica

34* [**Un modulo hooks**](/docs/it/plugins/mods/overview): hook scritti come funzioni JavaScript, che possono anche disegnare riquadri e aggiungere comandi. Un plugin che ne ha uno è chiamato mod34* [**Un modulo degli hook**](/docs/it/plugins/mods/overview): hook scritti come funzioni JavaScript, che possono anche disegnare riquadri e aggiungere comandi. Un plugin che ne ha uno è chiamato mod. Alcuni mod sono [integrati in Claude Code](/docs/it/plugins/mods/overview#mods-built-into-claude-code).

35* [**Server MCP**](/docs/it/plugins/components#mcp-servers): server di strumenti a cui Claude Code si connette mentre il plugin è abilitato35* [**Server MCP**](/docs/it/plugins/components#mcp-servers): server di strumenti a cui Claude Code si connette mentre il plugin è abilitato

36 36 

37Questo diagramma mostra un plugin denominato `my-plugin` che contiene uno di ciascuno di questi componenti, e cosa ottieni da ogni file una volta che il plugin si carica.37Questo diagramma mostra un plugin denominato `my-plugin` che contiene uno di ciascuno di questi componenti, e cosa ottieni da ogni file una volta che il plugin si carica.

Details

693| Message | Meaning | How to resolve |693| Message | Meaning | How to resolve |

694| :- | :- | :- |694| :- | :- | :- |

695| `Dependency "<dep>" is not installed` | Una dipendenza dichiarata non è installata. | Installala nella shell con `claude plugin install <dep>@<marketplace>`, oppure disinstalla il plugin. Se il marketplace della dipendenza non è ancora registrato, aggiungilo ed esegui `/reload-plugins` nella sessione, che installa le dipendenze mancanti che riesce a risolvere. |695| `Dependency "<dep>" is not installed` | Una dipendenza dichiarata non è installata. | Installala nella shell con `claude plugin install <dep>@<marketplace>`, oppure disinstalla il plugin. Se il marketplace della dipendenza non è ancora registrato, aggiungilo ed esegui `/reload-plugins` nella sessione, che installa le dipendenze mancanti che riesce a risolvere. |

696| `"<name>@synced" is loaded from your claude.ai account but meets a marketplace dependency only for other claude.ai plugins`, all'interno del messaggio `is not installed` | La dipendenza indica un marketplace, e un plugin con quel nome viene caricato dal tuo account claude.ai. Il plugin che dichiara la dipendenza non viene caricato da claude.ai, quindi il plugin di claude.ai non la soddisfa. | Nella shell, esegui `claude plugin install <dep>@<marketplace>` per installare la dipendenza dal suo marketplace. La copia del marketplace viene quindi caricata al posto di quella di claude.ai. |

696| `Dependency "<dep>" is disabled` | La dipendenza è installata ma disattivata. | Abilita la dipendenza, oppure disinstalla il plugin che ne ha bisogno. |697| `Dependency "<dep>" is disabled` | La dipendenza è installata ma disattivata. | Abilita la dipendenza, oppure disinstalla il plugin che ne ha bisogno. |

697| `Requires "<dep>" <range>, installed <version>` | La versione della dipendenza installata è al di fuori dell'intervallo dichiarato dal plugin. | Aggiorna la dipendenza a una versione compresa nell'intervallo, oppure disinstalla il plugin. |698| `Requires "<dep>" <range>, installed <version>` | La versione della dipendenza installata è al di fuori dell'intervallo dichiarato dal plugin. | Aggiorna la dipendenza a una versione compresa nell'intervallo, oppure disinstalla il plugin. |

698| `<Plugin or Dependency> "<name>" has conflicting version requirements` | Nessuna versione soddisfa tutti gli intervalli che la vincolano. Il messaggio elenca gli intervalli. | Disinstalla o aggiorna uno dei plugin in conflitto, oppure chiedi all'autore upstream di ampliare il vincolo. |699| `<Plugin or Dependency> "<name>" has conflicting version requirements` | Nessuna versione soddisfa tutti gli intervalli che la vincolano. Il messaggio elenca gli intervalli. | Disinstalla o aggiorna uno dei plugin in conflitto, oppure chiedi all'autore upstream di ampliare il vincolo. |


700| `... has no git tag satisfying <range>` | Il repository della dipendenza non ha alcun tag `<name>--v*` nell'intervallo. | Verifica che l'upstream contrassegni le release con quella convenzione, oppure allenta l'intervallo. |701| `... has no git tag satisfying <range>` | Il repository della dipendenza non ha alcun tag `<name>--v*` nell'intervallo. | Verifica che l'upstream contrassegni le release con quella convenzione, oppure allenta l'intervallo. |

701| `Dependency "<dep>" (required by <plugin>) is in <marketplace>, which is not in the allowlist` | La dipendenza si trova in un marketplace diverso e la risoluzione tra marketplace è disattivata per impostazione predefinita. | Installa tu stesso la dipendenza nello stesso ambito, nella shell con `claude plugin install <dep>@<marketplace>` più il `--scope` in cui stai installando il plugin, quindi riprova. |702| `Dependency "<dep>" (required by <plugin>) is in <marketplace>, which is not in the allowlist` | La dipendenza si trova in un marketplace diverso e la risoluzione tra marketplace è disattivata per impostazione predefinita. | Installa tu stesso la dipendenza nello stesso ambito, nella shell con `claude plugin install <dep>@<marketplace>` più il `--scope` in cui stai installando il plugin, quindi riprova. |

702 703 

703Per visualizzarli a livello di programmazione, esegui `claude plugin list --json` nella shell. I plugin con problemi hanno un campo `errors` con i messaggi e un campo `errorDetails` con un `type` per ciascuno: le prime due righe corrispondono a `dependency-unsatisfied` e la terza a `dependency-version-unsatisfied`.704Per visualizzarli a livello di programmazione, esegui `claude plugin list --json` nella shell. I plugin con problemi hanno un campo `errors` con i messaggi e un campo `errorDetails` con un `type` per ciascuno: le prime tre righe corrispondono a `dependency-unsatisfied` e la quarta a `dependency-version-unsatisfied`.

704 705 

705<h2 id="plugin-installed-but-not-working">706<h2 id="plugin-installed-but-not-working">

706 Plugin installed but not working707 Plugin installed but not working

Details

211 La compattazione funziona a tuo favore quando il contesto che scarta è contenuto che non ti serve più. Per scegliere quando il suo sovraccarico accade, esegui `/compact` a una pausa naturale nel tuo lavoro, ad esempio tra le attività, invece di aspettare che la compattazione automatica si attivi a metà attività. Se sei andato su un percorso che vuoi abbandonare completamente, [`/rewind`](#rewinding-the-conversation) a un turno precedente. Il riavvolgimento tronca a un prefisso che è già memorizzato nella cache, piuttosto che costruirne uno nuovo come fa la compattazione.211 La compattazione funziona a tuo favore quando il contesto che scarta è contenuto che non ti serve più. Per scegliere quando il suo sovraccarico accade, esegui `/compact` a una pausa naturale nel tuo lavoro, ad esempio tra le attività, invece di aspettare che la compattazione automatica si attivi a metà attività. Se sei andato su un percorso che vuoi abbandonare completamente, [`/rewind`](#rewinding-the-conversation) a un turno precedente. Il riavvolgimento tronca a un prefisso che è già memorizzato nella cache, piuttosto che costruirne uno nuovo come fa la compattazione.

212</Tip>212</Tip>

213 213 

214Se lasci inattiva una conversazione lunga in una sessione del terminale mentre usa il [TTL di un'ora](#which-ttl-each-request-gets), Claude Code può compattarla poco prima che la cache scada. Per disattivare la compattazione in caso di inattività, imposta [`idleCompaction`](/docs/it/settings-reference#idlecompaction) su `false`, il che richiede Claude Code v2.1.290 o successiva.

215 

214<h3 id="accumulating-many-images">216<h3 id="accumulating-many-images">

215 Accumulo di molte immagini217 Accumulo di molte immagini

216</h3>218</h3>

Details

261 261 

262I controlli biometrici vengono eseguiti sul dispositivo attraverso il sistema operativo o il browser, lo stesso meccanismo dell'accesso con passkey. Anthropic non riceve né archivia mai impronte digitali, dati facciali o altre informazioni biometriche. Solo la chiave pubblica del dispositivo e i metadati di base come il nome visualizzato, la piattaforma e l'ora di registrazione vengono archiviati.262I controlli biometrici vengono eseguiti sul dispositivo attraverso il sistema operativo o il browser, lo stesso meccanismo dell'accesso con passkey. Anthropic non riceve né archivia mai impronte digitali, dati facciali o altre informazioni biometriche. Solo la chiave pubblica del dispositivo e i metadati di base come il nome visualizzato, la piattaforma e l'ora di registrazione vengono archiviati.

263 263 

264L'impostazione si applica a Remote Control sia in Claude Code sia in [Cowork](https://claude.com/docs/cowork/overview). Questa pagina tratta la parte relativa a Claude Code. La chat Claude regolare, Claude Code nel terminale e l'utilizzo dell'API non sono interessati.264L'impostazione si applica a Remote Control in Claude Code e all'accesso Computer in [Cowork](https://claude.com/docs/cowork/overview). Questa pagina tratta la parte relativa a Claude Code. La chat Claude regolare, Claude Code nel terminale e l'utilizzo dell'API non sono interessati.

265 265 

266<h3 id="enable-trusted-devices-for-your-organization">266<h3 id="enable-trusted-devices-for-your-organization">

267 Abilita Dispositivi affidabili per un'organizzazione Team o Enterprise267 Abilita Dispositivi affidabili per un'organizzazione Team o Enterprise

routines.md +28 −15

Details

52 52 

53Il modulo di creazione configura il prompt della routine, i repository, l'ambiente, i connector e i trigger.53Il modulo di creazione configura il prompt della routine, i repository, l'ambiente, i connector e i trigger.

54 54 

55Le routine vengono eseguite autonomamente come sessioni cloud complete di Claude Code: non c'è un selettore di modalità di autorizzazione e la sessione esegue comandi shell, utilizza [skills](/docs/it/skills) impegnate nel repository clonato e chiama qualsiasi connector incluso, il tutto senza fermarsi per l'approvazione a parte alcune azioni di [artifact](/docs/it/artifacts).55Le routine vengono eseguite autonomamente come sessioni cloud complete di Claude Code: non c'è un selettore di modalità di permesso e la sessione esegue comandi shell, utilizza le [skill](/docs/it/skills) di cui è stato fatto il commit nel repository clonato e chiama qualsiasi connettore incluso, il tutto senza fermarsi per l'approvazione a parte alcune [azioni sugli artefatti](#when-a-run-publishes-an-artifact-without-asking).

56 56 

57Ciò che una routine può raggiungere è determinato dai repository che selezioni, dall'[ambiente](/docs/it/cloud-environments) accesso di rete e variabili, e dai connector che includi. Delimita ognuno di questi a ciò di cui la routine ha effettivamente bisogno.57Ciò che una routine può raggiungere è determinato dai repository che selezioni, dall'[ambiente](/docs/it/cloud-environments) accesso di rete e variabili, e dai connector che includi. Delimita ognuno di questi a ciò di cui la routine ha effettivamente bisogno.

58 58 

59Quando la pianificazione della routine o **Run now** avvia un'esecuzione, Claude ripubblica un artifact esistente senza chiedere solo quando tutti questi elementi sono veri:

60 

61* Puoi modificare l'artifact e appartiene alla tua organizzazione

62* L'artifact non è condiviso pubblicamente

63* Se l'artifact è condiviso con persone specifiche o la tua organizzazione, i suoi visualizzatori non vedono automaticamente ogni nuova versione

64* La pubblicazione contiene solo la pagina, senza file di supporto o altro aggiunto, e non forza una versione più recente

65* La pagina non contiene alcun grant che vada oltre la pagina, come [connector calls](/docs/it/artifacts#pull-live-data-with-mcp-connectors)

66 

67In ogni altro caso, inclusa la pubblicazione di un nuovo artifact, Claude chiede prima. Quando il lavoro di una routine è mantenere una pagina aggiornata, dagli un artifact che hai già pubblicato.

68 

69Le routine appartengono al tuo account claude.ai individuale. Non sono condivise con i compagni di squadra e i loro run contano rispetto ai [limiti e all'utilizzo](#usage-and-limits) del tuo account. Tutto ciò che una routine fa attraverso la tua identità GitHub connessa o i connector appare come te: i commit e le pull request portano il tuo utente GitHub e i messaggi Slack, i ticket Linear o altre azioni del connector utilizzano i tuoi account collegati per quei servizi.59Le routine appartengono al tuo account claude.ai individuale. Non sono condivise con i compagni di squadra e i loro run contano rispetto ai [limiti e all'utilizzo](#usage-and-limits) del tuo account. Tutto ciò che una routine fa attraverso la tua identità GitHub connessa o i connector appare come te: i commit e le pull request portano il tuo utente GitHub e i messaggi Slack, i ticket Linear o altre azioni del connector utilizzano i tuoi account collegati per quei servizi.

70 60 

71<h3 id="create-from-the-web">61<h3 id="create-from-the-web">


93 Scegli un [cloud environment](/docs/it/cloud-environments) per la routine. Gli ambienti controllano a cosa ha accesso la sessione cloud:83 Scegli un [cloud environment](/docs/it/cloud-environments) per la routine. Gli ambienti controllano a cosa ha accesso la sessione cloud:

94 84 

95 * **Network access**: imposta il livello di accesso a Internet disponibile durante ogni esecuzione85 * **Network access**: imposta il livello di accesso a Internet disponibile durante ogni esecuzione

96 * **Environment variables**: fornisci valori che Claude può utilizzare durante ogni esecuzione. Sono [visibili a chiunque utilizzi l'ambiente](/docs/it/cloud-environments#what-carries-over-from-your-setup), quindi nei piani Pro e Max archivia invece le chiavi per le API che Claude chiama durante un'esecuzione come [segreti di rete](/docs/it/cloud-environments#add-network-secrets). Quella sezione elenca anche le richieste che non ricevono mai un segreto86 * **Environment variables**: fornisci valori che Claude può utilizzare durante ogni esecuzione. Sono [visibili a chiunque utilizzi l'ambiente](/docs/it/cloud-environments#what-carries-over-from-your-setup), quindi in un ambiente ospitato da Anthropic archivia invece le chiavi per le API che Claude chiama durante un'esecuzione come [segreti di rete](/docs/it/cloud-environments#add-network-secrets). Quella sezione elenca anche le richieste che non ricevono mai un segreto

97 * **Setup script**: installa le dipendenze e gli strumenti di cui la routine ha bisogno. Il risultato è [cached](/docs/it/cloud-environments#environment-caching), quindi lo script non viene rieseguito su ogni sessione87 * **Setup script**: installa le dipendenze e gli strumenti di cui la routine ha bisogno. Il risultato è [cached](/docs/it/cloud-environments#environment-caching), quindi lo script non viene rieseguito su ogni sessione

98 88 

99 Un ambiente **Default** è fornito con accesso di rete **Trusted**, che consente solo l'[elenco predefinito](/docs/it/cloud-environments#default-allowed-domains) di registri di pacchetti, API di provider cloud, registri di container e domini di sviluppo comuni attraverso la rete della sessione. I connector che aggiungi alla routine raggiungono i loro servizi attraverso i server di Anthropic, quindi non hanno bisogno di modifiche all'elenco consentito. Se la tua routine ha bisogno di raggiungere i tuoi servizi direttamente o un dominio al di fuori di tale elenco, modifica l'[accesso di rete](/docs/it/cloud-environments#network-access) dell'ambiente prima di eseguire. Per utilizzare un ambiente separato, [creane uno](/docs/it/cloud-environments#configure-your-environment) prima.89 Un ambiente **Default** è fornito con accesso di rete **Trusted**, che consente solo l'[elenco predefinito](/docs/it/cloud-environments#default-allowed-domains) di registri di pacchetti, API di provider cloud, registri di container e domini di sviluppo comuni attraverso la rete della sessione. I connector che aggiungi alla routine raggiungono i loro servizi attraverso i server di Anthropic, quindi non hanno bisogno di modifiche all'elenco consentito. Se la tua routine ha bisogno di raggiungere i tuoi servizi direttamente o un dominio al di fuori di tale elenco, modifica l'[accesso di rete](/docs/it/cloud-environments#network-access) dell'ambiente prima di eseguire. Per utilizzare un ambiente separato, [creane uno](/docs/it/cloud-environments#configure-your-environment) prima.


182 172 

183Un trigger API fornisce a una routine un endpoint HTTP dedicato. POSTing all'endpoint con il token bearer della routine avvia una nuova sessione e restituisce un URL di sessione. Usalo per collegare Claude Code nei sistemi di avviso, pipeline di distribuzione, strumenti interni o ovunque tu possa fare una richiesta HTTP autenticata.173Un trigger API fornisce a una routine un endpoint HTTP dedicato. POSTing all'endpoint con il token bearer della routine avvia una nuova sessione e restituisce un URL di sessione. Usalo per collegare Claude Code nei sistemi di avviso, pipeline di distribuzione, strumenti interni o ovunque tu possa fare una richiesta HTTP autenticata.

184 174 

185I trigger API vengono aggiunti a una routine esistente dal web. La CLI attualmente non può creare o revocare token.175I trigger API vengono aggiunti a una routine esistente dal web. La CLI attualmente non può creare, rigenerare o eliminare token.

186 176 

187<Steps>177<Steps>

188 <Step title="Apri la routine per la modifica">178 <Step title="Apri la routine per la modifica">


202 </Step>192 </Step>

203</Steps>193</Steps>

204 194 

205Ogni routine ha il suo token, limitato all'attivazione di quella routine sola. Per ruotarlo o revocarlo, torna allo stesso modale e fai clic su **Regenerate** o **Revoke**.195Ogni routine ha il suo token, limitato all'attivazione di quella routine sola. Per disattivare l'accesso API o ruotare il token, torna allo stesso modale:

196 

197* **Disattiva l'accesso API**: fai clic su **Delete token**, l'icona del cestino accanto a **Regenerate**

198* **Ruota il token**: fai clic su **Regenerate**

206 199 

207<h4 id="trigger-a-routine">200<h4 id="trigger-a-routine">

208 Attiva una routine201 Attiva una routine


379 372 

380Per gestire o aggiungere connettori al di fuori del modulo della routine, visitare [claude.ai/customize/connectors](https://claude.ai/customize/connectors) o utilizzare `/schedule update` nella CLI.373Per gestire o aggiungere connettori al di fuori del modulo della routine, visitare [claude.ai/customize/connectors](https://claude.ai/customize/connectors) o utilizzare `/schedule update` nella CLI.

381 374 

375<h3 id="when-a-run-publishes-an-artifact-without-asking">

376 Quando un'esecuzione pubblica un artefatto senza chiedere

377</h3>

378 

379Quando la pianificazione di una routine o **Run now** avvia un'esecuzione, Claude può pubblicare un nuovo [artefatto](/docs/it/artifacts) senza chiedere. Il nuovo artefatto è visibile solo a te finché non lo [condividi](/docs/it/artifacts#share-an-artifact). Se la pubblicazione dichiara capacità di runtime per la pagina, come [chiamate ai connettori](/docs/it/artifacts#pull-live-data-with-mcp-connectors) o [download di file](/docs/it/artifacts#offer-a-file-download), Claude chiede prima.

380 

381In queste esecuzioni, Claude ripubblica un artefatto esistente senza chiedere solo quando tutte queste condizioni sono soddisfatte:

382 

383* Puoi modificare l'artefatto e questo appartiene alla tua organizzazione

384* Se la pubblicazione include più della sola pagina, ad esempio file di supporto, l'artefatto è di tua proprietà

385* L'artefatto non è condiviso pubblicamente

386* Se l'artefatto è condiviso con persone specifiche o con la tua organizzazione, chi lo visualizza non vede automaticamente ogni nuova versione

387* La pubblicazione non sovrascrive forzatamente una versione più recente

388* La pubblicazione non dichiara capacità di runtime per la pagina

389* La pagina esistente non contiene alcuna concessione che vada oltre la pagina stessa, come le [chiamate ai connettori](/docs/it/artifacts#pull-live-data-with-mcp-connectors)

390 

391In tutti gli altri casi, incluse le esecuzioni avviate da un trigger API o GitHub, Claude chiede prima.

392 

393Quando il compito di una routine è mantenere aggiornata una pagina, forniscile un artefatto che hai già pubblicato.

394 

382<h3 id="environments-and-network-access">395<h3 id="environments-and-network-access">

383 Ambienti e accesso alla rete396 Ambienti e accesso alla rete

384</h3>397</h3>


403 </Step>416 </Step>

404 417 

405 <Step title="Modifica il livello di accesso alla rete">418 <Step title="Modifica il livello di accesso alla rete">

406 Nella finestra di dialogo **Edit environment**, imposta **Network access** su **Custom** e inserisci i tuoi domini in **Allowed domains**. Seleziona **Also include default list of common package managers** per mantenere l'[allowlist predefinita](/docs/it/cloud-environments#default-allowed-domains) insieme ai tuoi domini personalizzati. Seleziona invece **Full** per un accesso senza restrizioni.419 Nella finestra di dialogo **Edit cloud environment**, imposta **Network access** su **Custom** e inserisci i tuoi domini in **Allowed domains**. Seleziona **Also include default list of common package managers** per mantenere l'[allowlist predefinita](/docs/it/cloud-environments#default-allowed-domains) insieme ai tuoi domini personalizzati. Seleziona invece **Full** per un accesso senza restrizioni.

407 </Step>420 </Step>

408 421 

409 <Step title="Salvare">422 <Step title="Salvare">

Details

79 79 

80In una sessione in cui lo [strumento Monitor è disponibile](/docs/it/tools-reference#monitor-tool), Claude potrebbe utilizzarlo direttamente quando chiedete un programma `/loop` dinamico. Monitor esegue uno script in background e trasmette ogni riga di output, il che evita completamente il polling ed è spesso più efficiente in termini di token e più reattivo rispetto alla riesecuzione di un prompt a intervalli.80In una sessione in cui lo [strumento Monitor è disponibile](/docs/it/tools-reference#monitor-tool), Claude potrebbe utilizzarlo direttamente quando chiedete un programma `/loop` dinamico. Monitor esegue uno script in background e trasmette ogni riga di output, il che evita completamente il polling ed è spesso più efficiente in termini di token e più reattivo rispetto alla riesecuzione di un prompt a intervalli.

81 81 

82Un ciclo pianificato dinamicamente appare nel vostro [elenco di attività pianificate](#manage-scheduled-tasks) come qualsiasi altra attività, quindi potete elencarla o annullarla nello stesso modo. Le [regole di jitter](#jitter) non si applicano ad esso, ma la [scadenza di sette giorni](#seven-day-expiry) sì.82Un ciclo pianificato dinamicamente appare nel tuo [elenco di attività pianificate](#manage-scheduled-tasks) come qualsiasi altra attività, quindi puoi elencarlo o annullarlo nello stesso modo. L'elenco mostra il suo risveglio in sospeso come un'attività una tantum, quindi un risveglio pianificato per `:00` o `:30` può [essere eseguito un po' in anticipo](#when-a-one-shot-task-runs-early). Anche la [scadenza di sette giorni](#seven-day-expiry) si applica al ciclo.

83 83 

84<span id="loop-provider-differences" />84<span id="loop-provider-differences" />

85 85 


174| Strumento | Scopo |174| Strumento | Scopo |

175| :- | :- |175| :- | :- |

176| `CronCreate` | Pianificare una nuova attività. Accetta un'espressione cron a 5 campi, il prompt da eseguire e se ricorre o si attiva una sola volta. |176| `CronCreate` | Pianificare una nuova attività. Accetta un'espressione cron a 5 campi, il prompt da eseguire e se ricorre o si attiva una sola volta. |

177| `CronList` | Elencare tutte le attività pianificate con i loro ID, pianificazioni e prompt. |177| `CronList` | Elencare le attività pianificate con i loro ID, pianificazioni, [orari della prossima esecuzione](#jitter) e prompt. |

178| `CronDelete` | Annullare un'attività per ID. |178| `CronDelete` | Annullare un'attività per ID. |

179 179 

180Ogni attività pianificata ha un ID di 8 caratteri che potete passare a `CronDelete`. Una sessione può contenere fino a 50 attività pianificate contemporaneamente.180Ogni attività pianificata ha un ID di 8 caratteri che potete passare a `CronDelete`. Una sessione può contenere fino a 50 attività pianificate contemporaneamente.


193 193 

194Un'attività pianificata può essere eseguita in un orario diverso da quello indicato dalla sua pianificazione. Se le attività di ogni sessione venissero eseguite esattamente come pianificato, molte di esse chiamerebbero l'API nello stesso momento, quindi Claude Code sposta l'orario di esecuzione di ogni attività. Le attività ricorrenti vengono eseguite in ritardo, tranne un'attività eseguita ogni cinque minuti, scritta `*/5 * * * *`. Le attività una tantum pianificate allo scoccare dell'ora o della mezz'ora vengono eseguite un po' in anticipo.194Un'attività pianificata può essere eseguita in un orario diverso da quello indicato dalla sua pianificazione. Se le attività di ogni sessione venissero eseguite esattamente come pianificato, molte di esse chiamerebbero l'API nello stesso momento, quindi Claude Code sposta l'orario di esecuzione di ogni attività. Le attività ricorrenti vengono eseguite in ritardo, tranne un'attività eseguita ogni cinque minuti, scritta `*/5 * * * *`. Le attività una tantum pianificate allo scoccare dell'ora o della mezz'ora vengono eseguite un po' in anticipo.

195 195 

196Per vedere quando è prevista la prossima esecuzione di un'attività, leggi la riga sotto la chiamata `CronCreate` di Claude nel tuo terminale. La riga mostra quell'orario dopo la pianificazione, ad esempio `next run 10:21 AM`. Per controllare di nuovo più tardi, [chiedi a Claude di elencare le tue attività](#manage-scheduled-tasks) e cerca `next run` nelle righe sotto la chiamata `CronList`. Gli orari della prossima esecuzione in queste righe richiedono Claude Code v2.1.299 o versioni successive.

197 

196<h4 id="how-late-a-recurring-task-runs">198<h4 id="how-late-a-recurring-task-runs">

197 Quanto in ritardo viene eseguita un'attività ricorrente199 Quanto in ritardo viene eseguita un'attività ricorrente

198</h4>200</h4>

Details

1001. Un runner con capacità libera rivendica la sessione e mantiene un lease su di essa.1001. Un runner con capacità libera rivendica la sessione e mantiene un lease su di essa.

1012. Il runner clona il repository nella sua directory di lavoro e genera un processo Claude Code figlio.1012. Il runner clona il repository nella sua directory di lavoro e genera un processo Claude Code figlio.

1023. Il figlio trasmette gli eventi indietro su HTTPS mentre il runner continua a eseguire il polling; ogni polling aggiorna il lease e funge anche da heartbeat.1023. Il figlio trasmette gli eventi indietro su HTTPS mentre il runner continua a eseguire il polling; ogni polling aggiorna il lease e funge anche da heartbeat.

1034. Se il runner smette di eseguire il polling, il suo lease scade dopo circa 60 secondi, e il server rimette in coda la sessione per un altro runner entro pochi minuti.1034. Se il runner smette di eseguire il polling, il suo lease scade dopo circa 60 secondi. Il server può quindi impiegare alcuni minuti, e a volte di più, per rimettere in coda la sessione per un altro runner.

104 104 

105Il runner assegna a ogni richiesta di polling 10 secondi. Quando una richiesta scade, viene persa o riceve una risposta che il runner non può analizzare, il runner continua a servire le sue sessioni attive e riprova dopo un secondo o due invece di aspettare il prossimo polling programmato. Ad esempio, un proxy di intercettazione che risponde al polling con la sua stessa pagina produce una risposta che il runner non può analizzare. Ogni volta che un'altra richiesta fallisce in uno di questi modi, il runner raddoppia il gap prima del prossimo tentativo, fino a 20 secondi, e accorcia il gap ogni volta che il lease sta per scadere.105Il runner assegna a ogni richiesta di polling 10 secondi. Quando una richiesta scade, viene persa o riceve una risposta che il runner non può analizzare, il runner continua a servire le sue sessioni attive e riprova dopo un secondo o due invece di aspettare il prossimo polling programmato. Ad esempio, un proxy di intercettazione che risponde al polling con la sua stessa pagina produce una risposta che il runner non può analizzare. Ogni volta che un'altra richiesta fallisce in uno di questi modi, il runner raddoppia il gap prima del prossimo tentativo, fino a 20 secondi, e accorcia il gap ogni volta che il lease sta per scadere.

106 106 

Details

40| `CLAUDE_CODE_REMOTE_SLACK_THREAD_TS` | Per una sessione Claude Tag che appartiene a un thread Slack, il timestamp Slack di quel thread, come `1700000000.000100`. Può non essere impostata, e può essere impostata quando `CLAUDE_CODE_REMOTE_SLACK_THREAD_URL` non lo è, quindi controlla ciascuna variabile separatamente. |40| `CLAUDE_CODE_REMOTE_SLACK_THREAD_TS` | Per una sessione Claude Tag che appartiene a un thread Slack, il timestamp Slack di quel thread, come `1700000000.000100`. Può non essere impostata, e può essere impostata quando `CLAUDE_CODE_REMOTE_SLACK_THREAD_URL` non lo è, quindi controlla ciascuna variabile separatamente. |

41| `CLAUDE_SESSION_INGRESS_TOKEN_FILE` | Percorso assoluto a un file per sessione che contiene il JWT della sessione corrente, mantenuto aggiornato negli aggiornamenti dei token. I sottoprocessi della shell lo leggono per il loro header `Authorization` quando scaricano gli allegati che l'utente ha aggiunto alla sessione. `exec` preserva la variabile automaticamente; un wrapper che ricostruisce l'ambiente del figlio deve riportare la variabile, altrimenti i download degli allegati smettono di funzionare silenziosamente. |41| `CLAUDE_SESSION_INGRESS_TOKEN_FILE` | Percorso assoluto a un file per sessione che contiene il JWT della sessione corrente, mantenuto aggiornato negli aggiornamenti dei token. I sottoprocessi della shell lo leggono per il loro header `Authorization` quando scaricano gli allegati che l'utente ha aggiunto alla sessione. `exec` preserva la variabile automaticamente; un wrapper che ricostruisce l'ambiente del figlio deve riportare la variabile, altrimenti i download degli allegati smettono di funzionare silenziosamente. |

42| `CLAUDE_CONFIG_DIR` | Directory di configurazione Claude per sessione, scritta all'inizio della sessione dallo snapshot della configurazione dell'host del runner che il runner acquisisce all'avvio; consulta [Permissions and tool approval](#permissions-and-tool-approval). Le scritture qui sono isolate a questa sessione. La directory rimane sotto `<base-dir>/_sessions/` dopo la fine della sessione a meno che tu non avvii il runner con [`--remove-session-state`](/docs/it/self-hosted-environments-reference#runner-cli-flags); consulta [Reuse a pre-warmed checkout](/docs/it/self-hosted-environments-deploy#reuse-a-pre-warmed-checkout). |42| `CLAUDE_CONFIG_DIR` | Directory di configurazione Claude per sessione, scritta all'inizio della sessione dallo snapshot della configurazione dell'host del runner che il runner acquisisce all'avvio; consulta [Permissions and tool approval](#permissions-and-tool-approval). Le scritture qui sono isolate a questa sessione. La directory rimane sotto `<base-dir>/_sessions/` dopo la fine della sessione a meno che tu non avvii il runner con [`--remove-session-state`](/docs/it/self-hosted-environments-reference#runner-cli-flags); consulta [Reuse a pre-warmed checkout](/docs/it/self-hosted-environments-deploy#reuse-a-pre-warmed-checkout). |

43| `CLAUDE_CODE_REMOTE_MCP_CONFIG` | Percorso a un file in `CLAUDE_CONFIG_DIR` che contiene le definizioni dei server MCP che il piano di controllo di Anthropic ha fornito per questa sessione. Se il tuo wrapper ricostruisce l'ambiente del figlio, riporta questa variabile. Senza di essa, quando il piano di controllo aggiorna i server forniti, il figlio arresta qualsiasi server stdio, HTTP o SSE che il tuo wrapper aggiunge con [`--mcp-config`](/docs/it/cli-reference#cli-flags) e che non è presente nell'aggiornamento. Richiede Claude Code v2.1.299 o successivo. |

43| `ANTHROPIC_BASE_URL` | L'URL di base dell'API che il figlio utilizzerà, fornito dal piano di controllo per sessione e normalmente `https://api.anthropic.com`. Non sovrascriverlo: la credenziale di inferenza della sessione è un token OAuth emesso da Anthropic che altri provider non accettano. |44| `ANTHROPIC_BASE_URL` | L'URL di base dell'API che il figlio utilizzerà, fornito dal piano di controllo per sessione e normalmente `https://api.anthropic.com`. Non sovrascriverlo: la credenziale di inferenza della sessione è un token OAuth emesso da Anthropic che altri provider non accettano. |

44| `CLAUDE_CODE_OAUTH_TOKEN` | Il token di accesso OAuth di breve durata che il figlio utilizza per l'inferenza del modello, limitato solo all'inferenza del modello e al caricamento di file, con una durata di circa 30 minuti. Il runner lo riemette prima della scadenza e fornisce la rotazione sullo stdin del figlio, quindi un wrapper che non [mantiene stdin collegato](#keep-stdin-and-file-descriptor-3-attached) vede solo il valore iniziale. Non fare affidamento sull'allowlist IP della tua organizzazione per limitare l'uso di questo token: trattalo come una credenziale bearer che rimane utilizzabile per circa 30 minuti se trapela, e non registrarlo nei log, non scriverlo su disco né inoltrarlo al di fuori del container della sessione. |45| `CLAUDE_CODE_OAUTH_TOKEN` | Il token di accesso OAuth di breve durata che il figlio utilizza per l'inferenza del modello, limitato solo all'inferenza del modello e al caricamento di file, con una durata di circa 30 minuti. Il runner lo riemette prima della scadenza e fornisce la rotazione sullo stdin del figlio, quindi un wrapper che non [mantiene stdin collegato](#keep-stdin-and-file-descriptor-3-attached) vede solo il valore iniziale. Non fare affidamento sull'allowlist IP della tua organizzazione per limitare l'uso di questo token: trattalo come una credenziale bearer che rimane utilizzabile per circa 30 minuti se trapela, e non registrarlo nei log, non scriverlo su disco né inoltrarlo al di fuori del container della sessione. |

45 46 


51 Assegnare un valore predefinito alle variabili che possono non essere impostate52 Assegnare un valore predefinito alle variabili che possono non essere impostate

52</h3>53</h3>

53 54 

54`CCR_SESSION_ACCOUNT_EMAIL`, `CLAUDE_RUNNER_CLIENT_PLATFORM`, `CLAUDE_CODE_REMOTE_SLACK_THREAD_URL` e `CLAUDE_CODE_REMOTE_SLACK_THREAD_TS` possono ciascuna non essere impostate. Se il tuo script usa `set -u`, Bash si arresta con `unbound variable` quando espande una di esse non impostata, quindi espandile con un valore predefinito, come `${CCR_SESSION_ACCOUNT_EMAIL:-}`.55`CCR_SESSION_ACCOUNT_EMAIL`, `CLAUDE_RUNNER_CLIENT_PLATFORM`, `CLAUDE_CODE_REMOTE_SLACK_THREAD_URL` e `CLAUDE_CODE_REMOTE_SLACK_THREAD_TS` possono ciascuna non essere impostate. Se il tuo script usa `set -u`, Bash si arresta con `unbound variable` quando espande una di esse non impostata, quindi espandile con un valore predefinito, come `"${CCR_SESSION_ACCOUNT_EMAIL:-}"`.

55 56 

56Ovunque una shell espanda il link del thread Slack, adotta queste precauzioni:57<h3 id="quote-the-arguments-and-variables-your-script-expands">

58 Mettere tra virgolette gli argomenti e le variabili che il tuo script espande

59</h3>

60 

61Metti tra virgolette ogni argomento e ogni variabile che il runner passa al tuo wrapper o all'[hook `command`](#command). Alcuni valori contengono caratteri che una shell interpreta, perché contengono JSON, frasi intere o una [regola di permesso](/docs/it/permissions#permission-rule-syntax) come `Bash(npm run test *)`.

57 62 

58* **Mettilo tra virgolette**: il link può contenere caratteri che la shell interpreta, come `?` e `&`, quindi metti la variabile tra virgolette, come in `"${CLAUDE_CODE_REMOTE_SLACK_THREAD_URL:-}"`.63* **Argomenti**: passali come `"$@"`

59* **Tieni il suo valore fuori dalle stringhe di `eval` e `sh -c`**: non sostituire il suo valore in una stringa eseguita da `eval` o `sh -c`, nemmeno tra virgolette. Fai invece in modo che quella stringa faccia riferimento alla variabile.64* **Variabili**: metti ciascuna tra virgolette, come in `"${CLAUDE_CODE_REMOTE_SLACK_THREAD_URL:-}"`. Il link del thread Slack, ad esempio, può contenere `?` e `&`.

65* **Stringhe di `eval` e `sh -c`**: non sostituire un valore in una stringa eseguita da `eval` o `sh -c`, nemmeno tra virgolette. Fai invece in modo che quella stringa faccia riferimento alla variabile.

60 66 

61<h3 id="keep-stdin-and-file-descriptor-3-attached">67<h3 id="keep-stdin-and-file-descriptor-3-attached">

62 Mantenere stdin e il descrittore di file 3 collegati68 Mantenere stdin e il descrittore di file 3 collegati


136| `CLAUDE_RUNNER_SESSION_ID` | ID sessione nel modulo taggato `session_...`, per la registrazione e la correlazione |142| `CLAUDE_RUNNER_SESSION_ID` | ID sessione nel modulo taggato `session_...`, per la registrazione e la correlazione |

137| `CLAUDE_RUNNER_SESSION_UUID` | Lo stesso ID sessione nel modulo UUID canonico |143| `CLAUDE_RUNNER_SESSION_UUID` | Lo stesso ID sessione nel modulo UUID canonico |

138| `CLAUDE_RUNNER_API_BASE_URL` | URL di base dell'API Anthropic per le chiamate limitate alla sessione |144| `CLAUDE_RUNNER_API_BASE_URL` | URL di base dell'API Anthropic per le chiamate limitate alla sessione |

139| `CLAUDE_RUNNER_CLIENT_PLATFORM` | La superficie client che ha creato la sessione, come `web_claude_ai`, `desktop_app` o `ios`. Non impostata quando la sessione non ha una superficie registrata o riconosciuta, quindi fai riferimento a essa come `${CLAUDE_RUNNER_CLIENT_PLATFORM:-}` con `set -u`. Richiede Claude Code v2.1.229 o successivo. |145| `CLAUDE_RUNNER_CLIENT_PLATFORM` | La superficie client che ha creato la sessione, come `web_claude_ai`, `desktop_app` o `ios`. Non impostata quando la sessione non ha una superficie registrata o riconosciuta, quindi fai riferimento a essa come `"${CLAUDE_RUNNER_CLIENT_PLATFORM:-}"` con `set -u`. Richiede Claude Code v2.1.229 o successivo. |

140| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | Il token di accesso della sessione, per le chiamate API limitate alla sessione |146| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | Il token di accesso della sessione, per le chiamate API limitate alla sessione |

141| `GIT_CONFIG_COUNT`, `GIT_CONFIG_KEY_n`, `GIT_CONFIG_VALUE_n` | Impostazioni git che il runner fissa per il git eseguito dal tuo hook. [Configurazione git all'interno degli hook del ciclo di vita](#git-configuration-inside-lifecycle-hooks) le descrive. Richiede Claude Code v2.1.280 o successivo. |147| `GIT_CONFIG_COUNT`, `GIT_CONFIG_KEY_n`, `GIT_CONFIG_VALUE_n` | Impostazioni git che il runner fissa per il git eseguito dal tuo hook. [Configurazione git all'interno degli hook del ciclo di vita](#git-configuration-inside-lifecycle-hooks) le descrive. Richiede Claude Code v2.1.280 o successivo. |

142 148 


159 165 

160L'hook fallisce quando esce con un codice diverso da zero, o esce con 0 senza lasciare un checkout utilizzabile:166L'hook fallisce quando esce con un codice diverso da zero, o esce con 0 senza lasciare un checkout utilizzabile:

161 167 

162* **Un repository a cui la sessione spinge i risultati**: il runner fallisce la sessione e su un'uscita diversa da zero mostra la coda dello stderr dello script all'utente.168* **Un repository a cui la sessione spinge i risultati**: il runner fa fallire la sessione e, in caso di uscita diversa da zero, mostra all'utente la coda dello stderr dello script. Scrivi il motivo nello stderr come un'unica riga breve, scrivilo per ultimo e poi esci con un codice diverso da zero. Non stampare segreti nello stderr e rimuovi `set -x` prima di distribuire l'hook.

163* **Un repository che la sessione legge soltanto**, come un repository aggiunto a una sessione in esecuzione: il runner registra una riga `[runner:warn]` con il dettaglio del fallimento, pubblica un passaggio `Skipped` nella sessione, rimuove ciò che l'hook ha lasciato nel percorso di checkout e continua con i repository rimanenti. Se saltarlo lascia la sessione senza alcun repository, il runner fa comunque fallire la sessione.169* **Un repository che la sessione legge soltanto**, come un repository aggiunto a una sessione in esecuzione: il runner registra una riga `[runner:warn]` con il dettaglio del fallimento, pubblica un passaggio `Skipped` nella sessione, rimuove ciò che l'hook ha lasciato nel percorso di checkout e continua con i repository rimanenti. Se saltarlo lascia la sessione senza alcun repository, il runner fa comunque fallire la sessione.

164 170 

165Quando l'hook ha successo, il runner rimuove il percorso di checkout dopo la fine della sessione.171Quando l'hook ha successo, il runner rimuove il percorso di checkout dopo la fine della sessione.


180| `CLAUDE_RUNNER_WORKSPACE_PATHS` | Percorsi assoluti separati da due punti degli alberi di lavoro della sessione. Vuoto per sessioni senza repository. |186| `CLAUDE_RUNNER_WORKSPACE_PATHS` | Percorsi assoluti separati da due punti degli alberi di lavoro della sessione. Vuoto per sessioni senza repository. |

181| `CLAUDE_RUNNER_DEBUG_LOG_PATH` | Percorso al log di debug della sessione, ancora su disco mentre l'hook viene eseguito |187| `CLAUDE_RUNNER_DEBUG_LOG_PATH` | Percorso al log di debug della sessione, ancora su disco mentre l'hook viene eseguito |

182| `CLAUDE_RUNNER_API_BASE_URL` | URL di base dell'API Anthropic per le chiamate limitate alla sessione |188| `CLAUDE_RUNNER_API_BASE_URL` | URL di base dell'API Anthropic per le chiamate limitate alla sessione |

183| `CLAUDE_RUNNER_CLIENT_PLATFORM` | La superficie client che ha creato la sessione, come `web_claude_ai`, `desktop_app` o `ios`. Non impostata quando la sessione non ha una superficie registrata o riconosciuta, quindi fai riferimento a essa come `${CLAUDE_RUNNER_CLIENT_PLATFORM:-}` con `set -u`. Richiede Claude Code v2.1.229 o successivo. |189| `CLAUDE_RUNNER_CLIENT_PLATFORM` | La superficie client che ha creato la sessione, come `web_claude_ai`, `desktop_app` o `ios`. Non impostata quando la sessione non ha una superficie registrata o riconosciuta, quindi fai riferimento a essa come `"${CLAUDE_RUNNER_CLIENT_PLATFORM:-}"` con `set -u`. Richiede Claude Code v2.1.229 o successivo. |

184| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | Il token di accesso della sessione, per le chiamate API limitate alla sessione |190| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | Il token di accesso della sessione, per le chiamate API limitate alla sessione |

185| `GIT_CONFIG_COUNT`, `GIT_CONFIG_KEY_n`, `GIT_CONFIG_VALUE_n` | Impostazioni git che il runner fissa per il git eseguito dal tuo hook. [Configurazione git all'interno degli hook del ciclo di vita](#git-configuration-inside-lifecycle-hooks) le descrive. Richiede Claude Code v2.1.280 o successivo. |191| `GIT_CONFIG_COUNT`, `GIT_CONFIG_KEY_n`, `GIT_CONFIG_VALUE_n` | Impostazioni git che il runner fissa per il git eseguito dal tuo hook. [Configurazione git all'interno degli hook del ciclo di vita](#git-configuration-inside-lifecycle-hooks) le descrive. Richiede Claude Code v2.1.280 o successivo. |

186 192 


3293. **Usa il contratto del codice di uscita.** Esci con lo stato corrispondente all'esito:3353. **Usa il contratto del codice di uscita.** Esci con lo stato corrispondente all'esito:

330 336 

331 * **Uscita 0**: inviato.337 * **Uscita 0**: inviato.

332 * **Uscita 1**: errore che si può riprovare. La sessione attende e viene riproposta.338 * **Uscita 1, oppure ancora in esecuzione allo scadere di `--hook-timeout`**: errore che si può riprovare. La sessione attende e viene riproposta.

333 * **Uscita 2 o superiore**: errore che non si può riprovare. Alla sessione viene impedito un nuovo spawn finché un utente non le invia un nuovo messaggio o un [Owner](/docs/it/cloud-environments#organization-shared-environments) non seleziona **Retry** su di essa nella scheda **Activity** dell'ambiente.339 * **Uscita 2 o superiore**: errore che non si può riprovare. Alla sessione viene impedito un nuovo spawn finché un utente non le invia un nuovo messaggio o un [Owner](/docs/it/cloud-environments#organization-shared-environments) non seleziona **Retry** su di essa nella scheda **Activity** dell'ambiente.

334 340 

335 In caso di uscita diversa da zero, la parte finale dello stderr dell'hook appare nella scheda **Activity** come motivo dell'errore, quindi scrivi su stderr l'errore su cui si può intervenire e non scriverci mai segreti. In un hook shell, [mantieni riprovabili gli errori transitori](#keep-transient-failures-retryable-in-a-shell-hook).341 In caso di uscita diversa da zero, la parte finale dello stderr dell'hook appare nella scheda **Activity** come motivo dell'errore, quindi scrivi su stderr l'errore su cui si può intervenire e non scriverci mai segreti. In un hook shell, [mantieni riprovabili gli errori transitori](#keep-transient-failures-retryable-in-a-shell-hook).


341 347 

342Una sessione che rimane in coda senza errore di spawn nella scheda **Activity** può significare che l'hook è chiave sull'ID sessione. Per confermare, controllare se la propria piattaforma ha un carico di lavoro per la prima richiesta di spawn di quella sessione e nessuno per le richieste. Se così, chiave il carico di lavoro su `CLAUDE_RUNNER_ORDER_ID` invece.348Una sessione che rimane in coda senza errore di spawn nella scheda **Activity** può significare che l'hook è chiave sull'ID sessione. Per confermare, controllare se la propria piattaforma ha un carico di lavoro per la prima richiesta di spawn di quella sessione e nessuno per le richieste. Se così, chiave il carico di lavoro su `CLAUDE_RUNNER_ORDER_ID` invece.

343 349 

350<h4 id="make-on-demand-runners-exit-when-idle">

351 Fai uscire i runner su richiesta quando sono inattivi

352</h4>

353 

354Per impostazione predefinita, un runner avviato dal tuo hook non esce quando termina il turno della sua sessione, quindi il carico di lavoro che hai inviato continua a essere eseguito. Per far uscire i runner, fai in modo che il tuo hook passi questi [flag del runner](/docs/it/self-hosted-environments-reference#runner-cli-flags):

355 

356| Flag, con un valore di esempio | A chi passarlo | Cosa fa |

357| :- | :- | :- |

358| `--release-idle-session-min 30` | Ogni runner avviato dal tuo hook | Il runner rilascia la sua sessione dopo quel numero di minuti di inattività e poi esce con 0. La sessione riprende quando il suo utente invia il messaggio successivo, ma [il lavoro non ancora inviato con push va perso](/docs/it/self-hosted-environments-deploy#additional-limitations). |

359| `--kill-session-after-min 480` | Ogni runner avviato dal tuo hook | Limita ogni sessione a quel numero di minuti, come protezione per le [sessioni che non vengono considerate inattive](/docs/it/self-hosted-environments-deploy#some-sessions-don’t-count-as-idle), quindi impostalo al di sopra della tua sessione più lunga prevista |

360| `--exit-if-unused-min 60` | I runner standby, che il tuo hook avvia per le richieste di pre-warming | Un runner standby che non prende mai una sessione esce dopo quel numero di minuti. Se imposti [`--min-idle`](/docs/it/self-hosted-environments-reference#orchestrator-cli-flags), ne ottieni uno sostitutivo a meno che lo standby non fosse in eccesso, quindi usa un valore ben superiore al tuo tempo di avvio. |

361 

362Rimuovi il carico di lavoro quando il runner esce, ad esempio impostando `ttlSecondsAfterFinished` su un Kubernetes Job o facendo in modo che lo script di avvio della VM elimini la VM al termine.

363 

344<h4 id="keep-transient-failures-retryable-in-a-shell-hook">364<h4 id="keep-transient-failures-retryable-in-a-shell-hook">

345 Mantieni riprovabili gli errori transitori in un hook shell365 Mantieni riprovabili gli errori transitori in un hook shell

346</h4>366</h4>


484* Il [file MCP gestito](/docs/it/managed-mcp) con ambito enterprise nel suo percorso di sistema standard: `/etc/claude-code/managed-mcp.json` sugli host runner Linux, `/Library/Application Support/ClaudeCode/managed-mcp.json` sugli host macOS. Usalo per flotte bloccate in cui possono essere caricati solo i server elencati dall'amministratore. Consulta [controllo esclusivo con managed-mcp.json](/docs/it/managed-mcp#exclusive-control-with-managed-mcp-json) per le regole di precedenza. Quando questo file si trova sull'host del runner, Claude Code ignora i server MCP che il control plane di Anthropic fornisce a una sessione, inclusi i connettori di claude.ai, e li nomina in un avviso sullo stderr del processo figlio della sessione, che il runner registra al livello di log `debug`. Prima della v2.1.229, quelle sessioni terminavano all'avvio con `You cannot dynamically configure MCP servers when an enterprise MCP config is present`.504* Il [file MCP gestito](/docs/it/managed-mcp) con ambito enterprise nel suo percorso di sistema standard: `/etc/claude-code/managed-mcp.json` sugli host runner Linux, `/Library/Application Support/ClaudeCode/managed-mcp.json` sugli host macOS. Usalo per flotte bloccate in cui possono essere caricati solo i server elencati dall'amministratore. Consulta [controllo esclusivo con managed-mcp.json](/docs/it/managed-mcp#exclusive-control-with-managed-mcp-json) per le regole di precedenza. Quando questo file si trova sull'host del runner, Claude Code ignora i server MCP che il control plane di Anthropic fornisce a una sessione, inclusi i connettori di claude.ai, e li nomina in un avviso sullo stderr del processo figlio della sessione, che il runner registra al livello di log `debug`. Prima della v2.1.229, quelle sessioni terminavano all'avvio con `You cannot dynamically configure MCP servers when an enterprise MCP config is present`.

485* La chiave [`managedMcpServers`](/docs/it/settings-reference#managedmcpservers) nelle [impostazioni gestite](/docs/it/managed-settings) sull'host del runner: fornisce server HTTP e SSE senza assumere il controllo esclusivo, quindi i server delle altre fonti vengono comunque caricati. Richiede Claude Code v2.1.259 o successiva.505* La chiave [`managedMcpServers`](/docs/it/settings-reference#managedmcpservers) nelle [impostazioni gestite](/docs/it/managed-settings) sull'host del runner: fornisce server HTTP e SSE senza assumere il controllo esclusivo, quindi i server delle altre fonti vengono comunque caricati. Richiede Claude Code v2.1.259 o successiva.

486* `<repo>/.mcp.json`: ambito di progetto. Esegui il commit del file nel repository; i suoi server vengono approvati automaticamente nelle sessioni cloud. In una sessione con più repository, [viene caricato al massimo il file di un solo repository](#repository-settings-in-sessions-with-several-repositories).506* `<repo>/.mcp.json`: ambito di progetto. Esegui il commit del file nel repository; i suoi server vengono approvati automaticamente nelle sessioni cloud. In una sessione con più repository, [viene caricato al massimo il file di un solo repository](#repository-settings-in-sessions-with-several-repositories).

507* Un file [`--mcp-config`](/docs/it/cli-reference#cli-flags) passato dal tuo script wrapper: aggiungi il flag dopo `"$@"`, come in `exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@" --mcp-config /etc/claude/mcp.json`. Per mantenere in esecuzione i server di quel file quando i server forniti alla sessione vengono aggiornati a sessione in corso, fai in modo che il tuo wrapper passi l'[ambiente completo](#wrapper-scripts) al processo figlio, come fa `exec`. Prima della v2.1.299, i server stdio, HTTP e SSE in quel file si arrestavano al primo aggiornamento di questo tipo che non li nominava.

487 508 

488Quando la distribuzione dei connettori è abilitata per la tua organizzazione, il control plane di Anthropic fornisce i connettori che hai configurato su claude.ai alle sessioni create in modo interattivo tramite una configurazione MCP fornita dal server, instradata attraverso `api.anthropic.com`. Le sessioni create in modo programmatico, come i [dispatch da CLI](/docs/it/self-hosted-environments-testing#run-the-test-loop), non ricevono i connettori; fornisci loro i server MCP tramite una qualsiasi delle altre fonti elencate in questa sezione. Il token OAuth del processo figlio non include uno scope per recuperare direttamente i connettori, quindi il processo figlio non tenta autonomamente quel recupero; la distribuzione è gestita dal server.509Quando la distribuzione dei connettori è abilitata per la tua organizzazione, il control plane di Anthropic fornisce i connettori che hai configurato su claude.ai alle sessioni create in modo interattivo tramite una configurazione MCP fornita dal server, instradata attraverso `api.anthropic.com`. Le sessioni create in modo programmatico, come i [dispatch da CLI](/docs/it/self-hosted-environments-testing#run-the-test-loop), non ricevono i connettori; fornisci loro i server MCP tramite una qualsiasi delle altre fonti elencate in questa sezione. Il token OAuth del processo figlio non include uno scope per recuperare direttamente i connettori, quindi il processo figlio non tenta autonomamente quel recupero; la distribuzione è gestita dal server.

489 510 

Details

182* Un `credential.helper` che restituisce un token con scope minimo182* Un `credential.helper` che restituisce un token con scope minimo

183* `GIT_SSH_COMMAND` che punta a una chiave con scope ristretto183* `GIT_SSH_COMMAND` che punta a una chiave con scope ristretto

184 184 

185Qualsiasi meccanismo tu configuri deve funzionare senza un prompt, perché il clone integrato del runner e il fetch disabilitano i prompt che git, SSH, e Git Credential Manager mostrerebbero altrimenti:185<span id="git-must-work-without-a-prompt" />Qualsiasi meccanismo tu configuri deve funzionare senza un prompt, perché il clone integrato del runner e il fetch disabilitano i prompt che git, SSH, e Git Credential Manager mostrerebbero altrimenti:

186 186 

187* Il runner imposta `GIT_TERMINAL_PROMPT=0`, in modo che git non chieda un nome utente o una password.187* Il runner imposta `GIT_TERMINAL_PROMPT=0`, in modo che git non chieda un nome utente o una password.

188* Il runner esegue SSH con `BatchMode=yes`, aggiunto al tuo `GIT_SSH_COMMAND` se ne imposti uno, in modo che SSH non chieda una passphrase o una conferma dell'host.188* Il runner esegue SSH con `BatchMode=yes`, aggiunto al tuo `GIT_SSH_COMMAND` se ne imposti uno, in modo che SSH non chieda una passphrase o una conferma dell'host.


212* **Solo github.com**: Anthropic serve una sessione solo quando tutti i suoi repository sono su github.com, e il proxy git non supporta ancora GitHub Enterprise Server. Su un runner con il proxy git, una sessione con un repository su un altro host git [non riesce ad avviarsi](#when-anthropic-doesnt-serve-a-session).212* **Solo github.com**: Anthropic serve una sessione solo quando tutti i suoi repository sono su github.com, e il proxy git non supporta ancora GitHub Enterprise Server. Su un runner con il proxy git, una sessione con un repository su un altro host git [non riesce ad avviarsi](#when-anthropic-doesnt-serve-a-session).

213* **Credenziali solo per i repository della sessione**: Anthropic fornisce le credenziali git per i repository che fanno parte della sessione, non per altri repository sullo stesso host git. Un submodule privato, una dipendenza che il tuo package manager recupera con git o un marketplace di plugin in un altro repository non ricevono alcuna credenziale da Anthropic. Chiedi alle persone che creano le sessioni di [aggiungere ogni repository](/docs/it/web-quickstart#start-a-task) di cui una sessione ha bisogno al momento della creazione.213* **Credenziali solo per i repository della sessione**: Anthropic fornisce le credenziali git per i repository che fanno parte della sessione, non per altri repository sullo stesso host git. Un submodule privato, una dipendenza che il tuo package manager recupera con git o un marketplace di plugin in un altro repository non ricevono alcuna credenziale da Anthropic. Chiedi alle persone che creano le sessioni di [aggiungere ogni repository](/docs/it/web-quickstart#start-a-task) di cui una sessione ha bisogno al momento della creazione.

214* **Solo push di branch**: un push che elimina un branch fallisce, così come un push verso qualsiasi altro tipo di ref, come un tag. Per sapere quali branch un push può aggiornare, vedi [Proxy GitHub](/docs/it/cloud-environments#github-proxy).214* **Solo push di branch**: un push che elimina un branch fallisce, così come un push verso qualsiasi altro tipo di ref, come un tag. Per sapere quali branch un push può aggiornare, vedi [Proxy GitHub](/docs/it/cloud-environments#github-proxy).

215* **Account GitHub collegati**: la persona che ha creato una sessione utente deve aver collegato GitHub su claude.ai, altrimenti la sessione [non si avvia](#creator-has-no-github-connection).215* **Account GitHub collegati**: chiedi a ogni persona che crea sessioni utente con un repository di [collegare GitHub](/docs/it/web-quickstart#connect-github). Senza un proprio collegamento, quelle sessioni [non si avviano](#creator-has-no-github-connection).

216* **`--capacity 1`**: il proxy git richiede una sessione per processo runner, quindi esegui più repliche per il parallelismo. [Attiva il proxy git di Anthropic](#turn-the-anthropic-git-proxy-on) elenca i requisiti.216* **`--capacity 1`**: il proxy git richiede una sessione per processo runner, quindi esegui più repliche per il parallelismo. [Attiva il proxy git di Anthropic](#turn-the-anthropic-git-proxy-on) elenca i requisiti.

217* **Configurazione git globale sostituita**: il runner [elimina e sostituisce la configurazione git globale](#git-proxy-replaces-global-git-config) dell'utente con cui viene eseguito. Eseguilo come utente dedicato o in un container.217* **Configurazione git globale sostituita**: il runner [elimina e sostituisce la configurazione git globale](#git-proxy-replaces-global-git-config) dell'utente con cui viene eseguito. Eseguilo come utente dedicato o in un container.

218* **Credenziali dell'host per i push dell'host**: il push di [`--push-outcome-on-release`](/docs/it/self-hosted-environments-reference#runner-cli-flags) del runner e qualsiasi push effettuato dal tuo [hook `post-session`](/docs/it/self-hosted-environments-configuration#post-session) usano comunque le credenziali git dell'host runner e il suo [percorso di rete verso `github.com`](#github-com-egress-with-the-anthropic-git-proxy). Per quelle credenziali, vedi [Spedisci la configurazione git nella tua immagine](#ship-git-config-in-your-image).218* **Credenziali dell'host per i push dell'host**: il push di [`--push-outcome-on-release`](/docs/it/self-hosted-environments-reference#runner-cli-flags) del runner e qualsiasi push effettuato dal tuo [hook `post-session`](/docs/it/self-hosted-environments-configuration#post-session) usano comunque le credenziali git dell'host runner e il suo [percorso di rete verso `github.com`](#github-com-egress-with-the-anthropic-git-proxy). Tieni quelle credenziali fuori dalla [configurazione git globale](#git-proxy-replaces-global-git-config) e vedi [Spedisci la configurazione git nella tua immagine](#ship-git-config-in-your-image) per i modi in cui fornirle.

219* **Decisione per sessione**: Anthropic decide per ogni sessione sul runner se servire il suo git, e una sessione che non serve non riesce ad avviarsi. [Quando le sessioni non riescono ad avviarsi su un runner con il proxy git](#when-anthropic-doesnt-serve-a-session) ne illustra le cause.219* **Decisione per sessione**: Anthropic decide per ogni sessione sul runner se servire il suo git, e una sessione che non serve non riesce ad avviarsi. [Quando le sessioni non riescono ad avviarsi su un runner con il proxy git](#when-anthropic-doesnt-serve-a-session) ne illustra le cause.

220 220 

221<span id="git-proxy-replaces-global-git-config" />221<span id="git-proxy-replaces-global-git-config" />


356Gli URL dei repository arrivano dal piano di controllo come HTTPS, con il nome host del tuo host git; per GitHub Enterprise, questo è il nome host che hai configurato per l'[integrazione GitHub Enterprise](/docs/it/github-enterprise-server) su claude.ai. Due flag ripetibili riscrivono quegli URL prima del clone:356Gli URL dei repository arrivano dal piano di controllo come HTTPS, con il nome host del tuo host git; per GitHub Enterprise, questo è il nome host che hai configurato per l'[integrazione GitHub Enterprise](/docs/it/github-enterprise-server) su claude.ai. Due flag ripetibili riscrivono quegli URL prima del clone:

357 357 

358* `--git-host-rewrite <from>=<to>`: per split-horizon DNS, dove Anthropic raggiunge il tuo host git tramite un nome host esterno ma i runner devono usarne uno interno358* `--git-host-rewrite <from>=<to>`: per split-horizon DNS, dove Anthropic raggiunge il tuo host git tramite un nome host esterno ma i runner devono usarne uno interno

359* `--git-ssh-rewrite <host>`: per host git che accettano solo SSH, riscrivendo `https://<host>/owner/repo` a `git@<host>:owner/repo`359* `--git-ssh-rewrite <host>`: per host git che accettano solo SSH, o per un host runner che ha solo una chiave SSH. Ad esempio, per clonare i repository di github.com tramite SSH, aggiungi `--git-ssh-rewrite github.com` al comando del runner. Il runner riscrive quindi `https://github.com/owner/repo` in `git@github.com:owner/repo`. SSH deve [connettersi senza un prompt](#git-must-work-without-a-prompt).

360 360 

361La riscrittura dell'host viene eseguita per prima, quindi elenca il nome host interno in `--git-ssh-rewrite` se hai bisogno di entrambi. Per il controllo completo del checkout, usa un [`checkout` lifecycle hook](/docs/it/self-hosted-environments-configuration#checkout).361La riscrittura dell'host viene eseguita per prima, quindi elenca il nome host interno in `--git-ssh-rewrite` se hai bisogno di entrambi. Per il controllo completo del checkout, usa un [`checkout` lifecycle hook](/docs/it/self-hosted-environments-configuration#checkout).

362 362 


578 578 

579Dai al timeout di arresto del tuo host almeno la somma di tre parti: gli `n` minuti che configuri, la grazia post-release, e il drenaggio che [Shutdown timing](#shutdown-timing) descrive. Con le impostazioni predefinite la grazia post-release è di 75 secondi e il drenaggio richiede fino a 80 secondi, quindi concedi `n` minuti più 155 secondi. Il runner stampa questa somma all'avvio ogni volta che `--defer-shutdown-max-min` è impostato.579Dai al timeout di arresto del tuo host almeno la somma di tre parti: gli `n` minuti che configuri, la grazia post-release, e il drenaggio che [Shutdown timing](#shutdown-timing) descrive. Con le impostazioni predefinite la grazia post-release è di 75 secondi e il drenaggio richiede fino a 80 secondi, quindi concedi `n` minuti più 155 secondi. Il runner stampa questa somma all'avvio ogni volta che `--defer-shutdown-max-min` è impostato.

580 580 

581Se il timeout di arresto scade prima che il runner finisca, l'host termina il runner. Le sessioni che ancora tiene non ottengono nessun hook `post-session`. Il runner non si deregistra, e il piano di controllo rimette in coda le sessioni entro pochi minuti. Se non puoi dare al timeout di arresto quella somma, lascia `--defer-shutdown-max-min` non impostato in modo che il runner dreni invece al primo segnale.581Se il timeout di arresto scade prima che il runner finisca, le sessioni che ancora tiene non ottengono nessun hook `post-session`. Il runner non si deregistra, quindi il piano di controllo può impiegare alcuni minuti, e talvolta di più, per rimettere in coda quelle sessioni. Se non puoi dare al timeout di arresto quella somma, lascia `--defer-shutdown-max-min` non impostato in modo che il runner dreni invece al primo segnale.

582 582 

583<h3 id="what-reaches-a-running-post-session-hook">583<h3 id="what-reaches-a-running-post-session-hook">

584 Cosa raggiunge un hook post-session in esecuzione584 Cosa raggiunge un hook post-session in esecuzione


720 720 

721* **Il runner non appare nell'ambiente**: confermare che l'host possa raggiungere `api.anthropic.com` su HTTPS, che il segreto dell'ambiente sia attuale e che l'orologio dell'host sia entro cinque minuti dall'ora reale; uno scostamento maggiore causa il fallimento dell'autenticazione. Il runner registra `[runner:fatal]` con il motivo del rifiuto in caso di errore di autenticazione.721* **Il runner non appare nell'ambiente**: confermare che l'host possa raggiungere `api.anthropic.com` su HTTPS, che il segreto dell'ambiente sia attuale e che l'orologio dell'host sia entro cinque minuti dall'ora reale; uno scostamento maggiore causa il fallimento dell'autenticazione. Il runner registra `[runner:fatal]` con il motivo del rifiuto in caso di errore di autenticazione.

722* **Il runner esce all'avvio con `cannot create or write to base directory`**: il runner non può creare o scrivere in `--base-dir`, che per impostazione predefinita è `/workspace`. Correggere la proprietà della directory o puntare `--base-dir` a un percorso scrivibile, come descritto in [Keep the base directory and capacity identical across runners](#keep-the-base-directory-and-capacity-identical-across-runners). Se il runner registra invece `[runner:fatal]` dicendo che il controllo della directory di base è scaduto, la directory si trova su un mount NFS o CSI bloccato. Controllare l'integrità del mount piuttosto che i permessi. Il runner stampa entrambi questi errori di avvio su stderr prima di aprire `--log-file`, quindi cercarli nel terminale o nei log del container della piattaforma piuttosto che nel file di log. Prima della v2.1.225, il runner non controllava la directory di base all'avvio e questa configurazione errata causava il fallimento delle sessioni dopo il pickup.722* **Il runner esce all'avvio con `cannot create or write to base directory`**: il runner non può creare o scrivere in `--base-dir`, che per impostazione predefinita è `/workspace`. Correggere la proprietà della directory o puntare `--base-dir` a un percorso scrivibile, come descritto in [Keep the base directory and capacity identical across runners](#keep-the-base-directory-and-capacity-identical-across-runners). Se il runner registra invece `[runner:fatal]` dicendo che il controllo della directory di base è scaduto, la directory si trova su un mount NFS o CSI bloccato. Controllare l'integrità del mount piuttosto che i permessi. Il runner stampa entrambi questi errori di avvio su stderr prima di aprire `--log-file`, quindi cercarli nel terminale o nei log del container della piattaforma piuttosto che nel file di log. Prima della v2.1.225, il runner non controllava la directory di base all'avvio e questa configurazione errata causava il fallimento delle sessioni dopo il pickup.

723* **Il runner esce all'avvio con `RegisterRunner failed:` e un errore di certificato TLS**: l'errore può essere, ad esempio, `self signed certificate in certificate chain`. Il runner non considera attendibile l'autorità di certificazione (CA) dietro il certificato che ha ricevuto, come accade dietro un proxy che ispeziona il traffico TLS. Imposta [`NODE_EXTRA_CA_CERTS`](/docs/it/network-config#custom-ca-certificates) nell'ambiente del runner su un file PEM con la CA radice del proxy.

724 

725 Non devi impostarla di nuovo per le sessioni, che la ereditano. Git non la legge: per i clone attraverso quel proxy, imposta anche [`GIT_SSL_CAINFO`](#trust-a-private-certificate-authority-with-anthropic-managed-git).

726* **L'orchestrator registra `poll failed:` con un errore di certificato TLS e continua a riprovare**: l'orchestrator non considera attendibile la CA dietro il certificato che ha ricevuto, come accade dietro un proxy che ispeziona il traffico TLS. Imposta [`NODE_EXTRA_CA_CERTS`](/docs/it/network-config#custom-ca-certificates) nell'ambiente dell'orchestrator su un file PEM con la CA radice del proxy. Impostala anche per i runner avviati dal tuo hook `spawn-runner`.

727 

728 Ad esempio, una riga può terminare con `poll failed: self signed certificate in certificate chain — retrying in 1s`, con le parole della libreria TLS tra i due punti e il trattino. Per verificare la correzione, controlla che `connected` sia `true` nel corpo di [`/healthz`](/docs/it/self-hosted-environments-reference#health-endpoint) dell'orchestrator.

723* **Le sessioni rimangono in coda**: ogni runner online può essere bloccato a un proprietario diverso. Controllare la [metrica](/docs/it/self-hosted-environments-reference#prometheus-metrics) `claude_code_self_hosted_runner_locked_account` di ogni runner o il campo `locked_account` della sua riga di log `[runner:health]` per vedere chi la detiene. Entrambi mostrano l'email del proprietario solo dopo che il runner ha ricevuto un token di sessione con un claim `act.email`, che le sessioni di un agente Claude Tag non hanno mai. Senza il claim, il runner non emette alcuna serie `locked_account` e registra `locked_account=yes`, il che indica che il runner è bloccato ma non a quale proprietario. Aggiungere repliche o attendere che un runner esistente si svuoti e si riavvii. Se l'ambiente utilizza runner on-demand, controllare l'orchestrator; vedere [On-demand runners](/docs/it/self-hosted-environments-configuration#on-demand-runners).729* **Le sessioni rimangono in coda**: ogni runner online può essere bloccato a un proprietario diverso. Controllare la [metrica](/docs/it/self-hosted-environments-reference#prometheus-metrics) `claude_code_self_hosted_runner_locked_account` di ogni runner o il campo `locked_account` della sua riga di log `[runner:health]` per vedere chi la detiene. Entrambi mostrano l'email del proprietario solo dopo che il runner ha ricevuto un token di sessione con un claim `act.email`, che le sessioni di un agente Claude Tag non hanno mai. Senza il claim, il runner non emette alcuna serie `locked_account` e registra `locked_account=yes`, il che indica che il runner è bloccato ma non a quale proprietario. Aggiungere repliche o attendere che un runner esistente si svuoti e si riavvii. Se l'ambiente utilizza runner on-demand, controllare l'orchestrator; vedere [On-demand runners](/docs/it/self-hosted-environments-configuration#on-demand-runners).

724* **Le sessioni falliscono subito dopo la presa in carico**: apri la sessione in claude.ai/code per vedere l'errore. Le cause più comuni sono la mancanza di [credenziali git](#configure-git) nell'immagine del runner e strumenti di build non installati. Su un runner avviato con `--use-anthropic-git-proxy`, consulta [Quando le sessioni non si avviano su un runner con il git proxy](#when-anthropic-doesnt-serve-a-session). Una directory di base non scrivibile arresta il runner all'avvio invece di far fallire le sessioni. Consulta la voce **Il runner esce all'avvio con `cannot create or write to base directory`** in questo elenco.730* **Le sessioni falliscono subito dopo la presa in carico**: apri la sessione in claude.ai/code per vedere l'errore. Le cause più comuni sono la mancanza di [credenziali git](#configure-git) nell'immagine del runner e strumenti di build non installati. Su un runner avviato con `--use-anthropic-git-proxy`, consulta [Quando le sessioni non si avviano su un runner con il git proxy](#when-anthropic-doesnt-serve-a-session). Una directory di base non scrivibile arresta il runner all'avvio invece di far fallire le sessioni. Consulta la voce **Il runner esce all'avvio con `cannot create or write to base directory`** in questo elenco.

725* **Le sessioni non si avviano su un runner che ha impostato `--use-anthropic-git-proxy`**: cerca nel log del runner `access denied by the git proxy`, oppure un errore git che nomina un indirizzo `api.anthropic.com` contenente `/git_proxy/`. Per capire se Anthropic ha servito la sessione e correggere la causa, consulta [Quando le sessioni non si avviano su un runner con il git proxy](#when-anthropic-doesnt-serve-a-session).731* **Le sessioni non si avviano su un runner che ha impostato `--use-anthropic-git-proxy`**: cerca nel log del runner `access denied by the git proxy`, oppure un errore git che nomina un indirizzo `api.anthropic.com` contenente `/git_proxy/`. Per capire se Anthropic ha servito la sessione e correggere la causa, consulta [Quando le sessioni non si avviano su un runner con il git proxy](#when-anthropic-doesnt-serve-a-session).


741 Prima della v2.1.274, il runner smetteva di riprovare un recupero fallito dopo alcuni tentativi e attendeva il prossimo programmato. Un turno fallito non ha attivato un recupero, quindi ogni turno falliva con un 401 fino al prossimo recupero programmato.747 Prima della v2.1.274, il runner smetteva di riprovare un recupero fallito dopo alcuni tentativi e attendeva il prossimo programmato. Un turno fallito non ha attivato un recupero, quindi ogni turno falliva con un 401 fino al prossimo recupero programmato.

742* **Il pod viene terminato durante lo scarico**: aumentare `terminationGracePeriodSeconds` ad almeno il valore che il runner registra all'avvio. Vedere [Shutdown timing](#shutdown-timing).748* **Il pod viene terminato durante lo scarico**: aumentare `terminationGracePeriodSeconds` ad almeno il valore che il runner registra all'avvio. Vedere [Shutdown timing](#shutdown-timing).

743 749 

744Una volta inizializzata la registrazione, il runner scrive il suo log del ciclo di vita, incluse le righe `[runner:fatal]`, su stdout e l'output di debug su stderr, il tutto come righe di testo semplice piuttosto che JSON. Gli errori di avvio descritti nelle voci di troubleshooting sopra stampano su stderr prima di quel punto. Acquisire entrambi i flussi con `--log-file`, che consente anche a `self-hosted-runner doctor` di seguirli, o con la raccolta di log della piattaforma.750Una volta inizializzato il logging, il runner scrive il suo log del ciclo di vita, incluse le righe `[runner:fatal]`, su stdout e l'output di debug su stderr, il tutto come righe di testo semplice anziché JSON. Gli errori relativi alla directory di base descritti nelle voci di risoluzione dei problemi qui sopra vengono stampati su stderr prima di quel momento. Acquisisci entrambi i flussi con `--log-file`, che consente anche a `self-hosted-runner doctor` di seguirli, oppure con la raccolta dei log della tua piattaforma.

745 751 

746Il processo figlio di ogni sessione scrive un log di debug separato. In caso di errore il runner visualizza il log della coda insieme alla sessione in claude.ai/code. A meno che non sia stato avviato il runner con [`--remove-session-state`](/docs/it/self-hosted-environments-reference#runner-cli-flags), mantiene anche il log di una sessione fallita su disco e stampa il suo percorso nel log del runner.752Il processo figlio di ogni sessione scrive un log di debug separato. In caso di errore il runner visualizza il log della coda insieme alla sessione in claude.ai/code. A meno che non sia stato avviato il runner con [`--remove-session-state`](/docs/it/self-hosted-environments-reference#runner-cli-flags), mantiene anche il log di una sessione fallita su disco e stampa il suo percorso nel log del runner.

747 753 

Details

25Il lato claude.ai ha bisogno di:25Il lato claude.ai ha bisogno di:

26 26 

27* **Allow self-hosted environments** attivato da un [Owner](/docs/it/cloud-environments#organization-shared-environments) nella [pagina di amministrazione **Cloud environments**](https://claude.ai/admin-settings/cloud-environments); il pulsante **New** non appare finché non è attivato. Se non hai il ruolo, qualcuno che lo ha può creare l'ambiente e passarti il suo secret; i passaggi del runner e del terminale su questa pagina non richiedono alcun ruolo claude.ai, e dove un passaggio controlla lo stato nell'interfaccia di amministrazione, le proprie righe di log del runner ti danno lo stesso segnale.27* **Allow self-hosted environments** attivato da un [Owner](/docs/it/cloud-environments#organization-shared-environments) nella [pagina di amministrazione **Cloud environments**](https://claude.ai/admin-settings/cloud-environments); il pulsante **New** non appare finché non è attivato. Se non hai il ruolo, qualcuno che lo ha può creare l'ambiente e passarti il suo secret; i passaggi del runner e del terminale su questa pagina non richiedono alcun ruolo claude.ai, e dove un passaggio controlla lo stato nell'interfaccia di amministrazione, le proprie righe di log del runner ti danno lo stesso segnale.

28* Una [connessione GitHub](/docs/it/claude-code-on-the-web#github-authentication-options) per la tua organizzazione, in modo che gli sviluppatori possano selezionare repository quando avviano sessioni.28* Il [connettore GitHub](https://claude.ai/admin-settings/connectors) attivato da un Owner, e la [connessione GitHub](/docs/it/web-quickstart#connect-github) personale di ogni sviluppatore, in modo che possano selezionare repository github.com quando avviano sessioni.

29 29 

30<h3 id="host-and-network">30<h3 id="host-and-network">

31 Host e rete31 Host e rete


34L'host del runner ha bisogno di:34L'host del runner ha bisogno di:

35 35 

36* Un host o container Linux o macOS con HTTPS in uscita verso `api.anthropic.com`, verso `claude.ai` e gli host di download a cui reindirizza per il passaggio di installazione sottostante, e verso il tuo host git per il clone; la [tabella dei requisiti di rete](/docs/it/self-hosted-environments-deploy#network-requirements) ha l'elenco completo. Windows non è supportato come host runner; esegui il runner in un container Linux invece. Le workstation degli sviluppatori non sono interessate, poiché le sessioni iniziano da claude.ai in un browser.36* Un host o container Linux o macOS con HTTPS in uscita verso `api.anthropic.com`, verso `claude.ai` e gli host di download a cui reindirizza per il passaggio di installazione sottostante, e verso il tuo host git per il clone; la [tabella dei requisiti di rete](/docs/it/self-hosted-environments-deploy#network-requirements) ha l'elenco completo. Windows non è supportato come host runner; esegui il runner in un container Linux invece. Le workstation degli sviluppatori non sono interessate, poiché le sessioni iniziano da claude.ai in un browser.

37* Un repository per la sessione di test: uno pubblico, oppure uno che questo host può già clonare tramite il suo URL HTTPS senza che vengano richieste credenziali.37* Un repository per la sessione di test: uno pubblico, oppure uno che questo host può già clonare tramite il suo URL HTTPS senza che vengano richieste credenziali. Una chiave SSH da sola non basta, perché il runner clona l'URL `https://` del repository. Per clonare invece tramite SSH, vedi [Riscrivere gli URL git per reti private](/docs/it/self-hosted-environments-deploy#rewrite-git-urls-for-private-networks).

38* Un orologio sincronizzato all'ora reale, ad esempio con NTP. L'autenticazione fallisce quando l'orologio è più di cinque minuti indietro; vedi [Troubleshooting](/docs/it/self-hosted-environments-deploy#troubleshooting).38* Un orologio sincronizzato all'ora reale, ad esempio con NTP. L'autenticazione fallisce quando l'orologio è più di cinque minuti indietro; vedi [Troubleshooting](/docs/it/self-hosted-environments-deploy#troubleshooting).

39 39 

40<h3 id="software-on-the-runner-host">40<h3 id="software-on-the-runner-host">


105 105 

106 Scegli una directory di base, sostituendo `<writable-dir>` nel comando del runner sottostante con un percorso assoluto che il runner può scrivere o creare. Il runner crea la directory all'avvio, quindi controlla i repository e crea directory per sessione sotto di essa. Senza `--base-dir` usa `/workspace`, che funziona solo se quella directory esiste già ed è scrivibile o avvii il runner come root.106 Scegli una directory di base, sostituendo `<writable-dir>` nel comando del runner sottostante con un percorso assoluto che il runner può scrivere o creare. Il runner crea la directory all'avvio, quindi controlla i repository e crea directory per sessione sotto di essa. Senza `--base-dir` usa `/workspace`, che funziona solo se quella directory esiste già ed è scrivibile o avvii il runner come root.

107 107 

108 Se il runner non può creare o scrivere nel percorso, esce all'avvio con un errore che nomina la directory invece di registrarsi. Vedi [Troubleshooting](/docs/it/self-hosted-environments-deploy#troubleshooting).108 <Warning>

109 Usa una directory dedicata al runner, non la tua directory home o una directory contenente i tuoi cloni. Il runner considera qualsiasi cosa trovi in `<writable-dir>/<repo-owner>/<repo>` come un proprio clone, e può reimpostarlo e sovrascrivere o eliminare i file al suo interno.

110 </Warning>

111 

112 Se il runner non può creare o scrivere nella directory di base, esce all'avvio con un errore che nomina la directory invece di registrarsi. Vedi [Risoluzione dei problemi](/docs/it/self-hosted-environments-deploy#troubleshooting).

109 113 

110 Quindi avvia il runner con `--environment-secret-file` e `--base-dir`:114 Quindi avvia il runner con `--environment-secret-file` e `--base-dir`:

111 115 


113 claude self-hosted-runner --environment-secret-file '/etc/claude/environment-secret' --base-dir '<writable-dir>'117 claude self-hosted-runner --environment-secret-file '/etc/claude/environment-secret' --base-dir '<writable-dir>'

114 ```118 ```

115 119 

116 Il runner registra `Registered: runner_id=<runner-id>` una volta che si è registrato con il tuo ambiente, quindi inizia il polling per il lavoro. Se il runner esce in seguito, riavvialo manualmente. Vedi [Se il runner esce](#if-the-runner-exits) per sapere quando succede.120 Il runner registra `Registered: runner_id=<runner-id>` una volta che si è registrato con il tuo ambiente, quindi inizia il polling per il lavoro. Avviato con questo comando, esce per progettazione dopo aver servito una sessione, non dopo ogni turno. Per servire altre sessioni, avvia di nuovo il runner ogni volta che esce. Vedi [Se il runner esce](#if-the-runner-exits) per sapere quando succede e cosa registra il runner.

117 </Step>121 </Step>

118 122 

119 <Step title="Verifica che il runner appaia">123 <Step title="Verifica che il runner appaia">


121 </Step>125 </Step>

122 126 

123 <Step title="Indirizza una sessione all'ambiente">127 <Step title="Indirizza una sessione all'ambiente">

124 <span id="route-a-session" />Avvia una sessione su claude.ai/code e seleziona il tuo ambiente dal selettore di ambiente, dove gli ambienti self-hosted appaiono insieme a quelli ospitati da Anthropic. Come repository, scegli quello indicato nei [prerequisiti](#host-and-network): un repository pubblico, o uno che questo host può già clonare. Il runner clona con qualsiasi credenziale git che l'host ha già.128 <span id="route-a-session" />Avvia una sessione su claude.ai/code e seleziona il tuo ambiente dal selettore di ambiente, dove gli ambienti self-hosted appaiono insieme a quelli ospitati da Anthropic. Come repository, scegli quello indicato nei [prerequisiti](#host-and-network): un repository pubblico, o uno che questo host può già clonare tramite il suo URL HTTPS senza che vengano richieste credenziali.

125 129 

126 Il prossimo runner disponibile raccoglie la sessione in coda e registra `Picked up session <session-id>` insieme al suo conteggio attivo e alla capacità, in modo che tu possa confermare dall'output del runner stesso quale host ha preso la sessione. Guarda la sessione lavorare e leggi le risposte di Claude su [claude.ai/code](https://claude.ai/code).130 Il prossimo runner disponibile raccoglie la sessione in coda e registra `Picked up session <session-id>` insieme al suo conteggio attivo e alla capacità, in modo che tu possa confermare dall'output del runner stesso quale host ha preso la sessione. Guarda la sessione lavorare e leggi le risposte di Claude su [claude.ai/code](https://claude.ai/code).

127 131 

128 Se la sessione non inizia a lavorare, individua il caso che corrisponde a ciò che vedi:132 <span id="session-doesnt-start" />Se la sessione non inizia a lavorare, individua il caso che corrisponde a ciò che vedi:

129 133 

130 * **La sessione rimane in coda**: vedi [Risoluzione dei problemi](/docs/it/self-hosted-environments-deploy#troubleshooting).134 * **La sessione rimane in coda**: vedi [Risoluzione dei problemi](/docs/it/self-hosted-environments-deploy#troubleshooting).

131 * **La sessione non si avvia a causa di un errore git**: l'errore appare nella sessione e nel log del runner. Se include il messaggio di git `could not read Username for` seguito dall'URL del tuo host git, il runner non aveva credenziali HTTPS per quell'host. Vedi [Configura git](/docs/it/self-hosted-environments-deploy#configure-git), che copre anche le opzioni di credenziale per i repository privati in produzione.135 * **La sessione non si avvia a causa di un errore git**: se l'errore include il messaggio di git `could not read Username for` seguito dall'URL del tuo host git, il runner non aveva credenziali HTTPS per quell'host.

136 * **Fornisci credenziali HTTPS**: vedi [Configura git](/docs/it/self-hosted-environments-deploy#configure-git)

137 * **Clona invece tramite SSH**: se l'host del runner ha già una chiave SSH, vedi [Riscrivi gli URL git per le reti private](/docs/it/self-hosted-environments-deploy#rewrite-git-urls-for-private-networks)

132 </Step>138 </Step>

133</Steps>139</Steps>

134 140 


136 Se il runner esce142 Se il runner esce

137</h3>143</h3>

138 144 

139Se il runner esce durante questa guida rapida, avvialo di nuovo con lo stesso comando. Il runner può uscire da solo:145Se il runner esce durante questa guida rapida, avvialo di nuovo. Il runner può uscire da solo:

140 146 

141* **Sessioni terminate**: il log mostra `[runner:exit] account workload drained — exiting`. Il runner esce per progettazione una volta che le sue sessioni attive finiscono. Vedi [Ciclo di vita del runner](/docs/it/self-hosted-environments#runner-lifecycle).147* **Nulla rimasto in esecuzione**: il log mostra `[runner:exit] account workload drained — exiting`. Il runner [esce per progettazione](/docs/it/self-hosted-environments#runner-lifecycle) quando non sta più eseguendo alcuna sessione, ad esempio:

148 * **Hai archiviato o eliminato la sessione**: avvia di nuovo il runner

149 * **La sessione non è riuscita ad avviarsi**: [correggi la causa](#session-doesnt-start), quindi avvia di nuovo il runner

142* **Contatto perso**: il log mostra una riga `[runner:fatal]` con `runner record gone server-side` o con `poll auth failed`. Se il runner perde il contatto con Anthropic per un po' di tempo, ad esempio perché l'host va in sospensione, può uscire la prossima volta che raggiunge Anthropic.150* **Contatto perso**: il log mostra una riga `[runner:fatal]` con `runner record gone server-side` o con `poll auth failed`. Se il runner perde il contatto con Anthropic per un po' di tempo, ad esempio perché l'host va in sospensione, può uscire la prossima volta che raggiunge Anthropic.

143 151 

144Un turno terminato non chiude la tua sessione di test. Dopo il primo turno la sessione è ancora collegata e il runner è ancora attivo, quindi puoi [inviare alla sessione un messaggio di follow-up](#send-a-follow-up-message-to-a-running-session) senza prima riavviare il runner.152Un turno terminato non chiude la tua sessione di test. Dopo il primo turno la sessione è ancora collegata e il runner è ancora attivo, quindi puoi [inviare alla sessione un messaggio di follow-up](#send-a-follow-up-message-to-a-running-session) senza prima riavviare il runner.

Details

54| `--retire-at <epoch-seconds>` | `SELF_HOSTED_RUNNER_RETIRE_AT` | unset | Ritira il runner a un timestamp Unix assoluto in secondi, per l'infrastruttura che uccide il runner a un'ora nota; [Runner lifecycle](/docs/it/self-hosted-environments#runner-lifecycle) descrive la sequenza di rilascio e come dimensionare il margine. I valori prima del 2001 o dopo l'anno 5138 vengono rifiutati dal flag e ignorati dalla variabile d'ambiente. |54| `--retire-at <epoch-seconds>` | `SELF_HOSTED_RUNNER_RETIRE_AT` | unset | Ritira il runner a un timestamp Unix assoluto in secondi, per l'infrastruttura che uccide il runner a un'ora nota; [Runner lifecycle](/docs/it/self-hosted-environments#runner-lifecycle) descrive la sequenza di rilascio e come dimensionare il margine. I valori prima del 2001 o dopo l'anno 5138 vengono rifiutati dal flag e ignorati dalla variabile d'ambiente. |

55| `--server-auto-mode-lists <mode>` | `SELF_HOSTED_RUNNER_SERVER_AUTO_MODE_LISTS` | `no-allow` | Quali degli elenchi di regole del classificatore della [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode) che il control plane invia con una sessione possono raggiungere quella sessione: `all`, `no-allow` o `none`. Vedi [Elenchi di regole della modalità auto](#auto-mode-rule-lists) per cosa applica ciascun valore. Un valore non valido arresta il runner all'avvio. Richiede Claude Code v2.1.295 o successivo. |55| `--server-auto-mode-lists <mode>` | `SELF_HOSTED_RUNNER_SERVER_AUTO_MODE_LISTS` | `no-allow` | Quali degli elenchi di regole del classificatore della [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode) che il control plane invia con una sessione possono raggiungere quella sessione: `all`, `no-allow` o `none`. Vedi [Elenchi di regole della modalità auto](#auto-mode-rule-lists) per cosa applica ciascun valore. Un valore non valido arresta il runner all'avvio. Richiede Claude Code v2.1.295 o successivo. |

56| `--session-stop-grace-sec <n>` | `SELF_HOSTED_RUNNER_SESSION_STOP_GRACE_MS` | `5` | Quanto tempo aspettare affinché il processo Claude esca correttamente dopo la fine di una sessione, prima di forzare l'uccisione. Aumenta il valore se gli hook `SessionEnd` del figlio hanno bisogno di più tempo. |56| `--session-stop-grace-sec <n>` | `SELF_HOSTED_RUNNER_SESSION_STOP_GRACE_MS` | `5` | Quanto tempo aspettare affinché il processo Claude esca correttamente dopo la fine di una sessione, prima di forzare l'uccisione. Aumenta il valore se gli hook `SessionEnd` del figlio hanno bisogno di più tempo. |

57| `--startup-timeout-min <n>` | `SELF_HOSTED_RUNNER_STARTUP_TIMEOUT_MS` | `15` | Rilascia uno slot di sessione se il figlio non ha segnalato che si è inizializzato entro N minuti dalla generazione. La clonazione avviene prima della generazione, quindi il tempo di clonazione non viene conteggiato. Cancellato dal segnale di init del figlio sul [canale di attività](/docs/it/self-hosted-environments-configuration#keep-stdin-and-file-descriptor-3-attached), non dall'output ordinario, dopo di che `--release-idle-session-min` prende il sopravvento. `0` disabilita. |57| `--startup-timeout-min <n>` | `SELF_HOSTED_RUNNER_STARTUP_TIMEOUT_MS` | `15` | Rilascia uno slot di sessione se il figlio non ha segnalato sul [canale di attività](/docs/it/self-hosted-environments-configuration#keep-stdin-and-file-descriptor-3-attached) di essersi inizializzato entro N minuti. Gli N minuti partono dalla generazione, dopo la clonazione, e ripartono da capo a ogni messaggio `user` o `assistant` che il figlio emette prima di essersi inizializzato o di aver segnalato il proprio stato. Prima della v2.1.299, questo timeout smetteva di applicarsi al primo messaggio di questo tipo della sessione. Per il rilascio dopo il segnale di init, vedi `--release-idle-session-min`. `0` disabilita. |

58| `--trust-workspace [bool]` | `SELF_HOSTED_RUNNER_TRUST_WORKSPACE` | on | Semina la fiducia persistente per i percorsi del repository di ogni sessione in modo che `permissions.allow` e `additionalDirectories` impegnati nel repo siano onorati. Imposta `false` per eliminare le concessioni di autorizzazione impegnate nel repo e configurare le regole di autorizzazione nella `settings.json` della configurazione dell'host; le impostazioni `sandbox.*` impegnate nel repository si applicano comunque in entrambi i casi, motivo per cui la [guardia repo-settings](/docs/it/self-hosted-environments-deploy#harden-your-deployment) le scansiona indipendentemente da questo flag. |58| `--trust-workspace [bool]` | `SELF_HOSTED_RUNNER_TRUST_WORKSPACE` | on | Semina la fiducia persistente per i percorsi del repository di ogni sessione in modo che `permissions.allow` e `additionalDirectories` impegnati nel repo siano onorati. Imposta `false` per eliminare le concessioni di autorizzazione impegnate nel repo e configurare le regole di autorizzazione nella `settings.json` della configurazione dell'host; le impostazioni `sandbox.*` impegnate nel repository si applicano comunque in entrambi i casi, motivo per cui la [guardia repo-settings](/docs/it/self-hosted-environments-deploy#harden-your-deployment) le scansiona indipendentemente da questo flag. |

59| `--use-anthropic-git-proxy` | `CLAUDE_RUNNER_USE_GIT_PROXY=1` | off | Clona i repository su github.com tramite il [proxy git di Anthropic](/docs/it/self-hosted-environments-deploy#use-the-anthropic-git-proxy) invece dell'autenticazione git gestita dal cliente. Richiede `--capacity 1` e git 2.32 o più recente; il runner rifiuta di avviarsi altrimenti. Sostituisce i flag di riscrittura. |59| `--use-anthropic-git-proxy` | `CLAUDE_RUNNER_USE_GIT_PROXY=1` | off | Clona i repository su github.com tramite il [proxy git di Anthropic](/docs/it/self-hosted-environments-deploy#use-the-anthropic-git-proxy) invece dell'autenticazione git gestita dal cliente. Richiede `--capacity 1` e git 2.32 o più recente; il runner rifiuta di avviarsi altrimenti. Sostituisce i flag di riscrittura. |

60 60 


160 160 

161Usa `last_poll_age_ms` come segnale di vivacità nei probe personalizzati; un valore che cresce senza limiti indica che il ciclo di polling è bloccato. Sia `last_poll_at` che `last_poll_age_ms` sono `null` fino al completamento del primo polling.161Usa `last_poll_age_ms` come segnale di vivacità nei probe personalizzati; un valore che cresce senza limiti indica che il ciclo di polling è bloccato. Sia `last_poll_at` che `last_poll_age_ms` sono `null` fino al completamento del primo polling.

162 162 

163L'orchestrator serve il suo `/healthz` sulla sua porta di salute. Il suo endpoint restituisce sempre `200`, e il corpo porta un campo `connected` che segnala se il polling più recente ha avuto successo, più i conteggi della coda di spawn per stato in `queue_counts`. Gated readiness e alerting su `connected` piuttosto che sul codice di stato.163Il `/healthz` dell'orchestrator, sulla sua porta di salute, restituisce sempre `200`. Il corpo porta un campo `connected` che segnala se il polling più recente ha avuto successo, più i conteggi della coda di spawn per stato in `queue_counts`. Per capire perché `connected` è `false`, leggi il campo di primo livello `last_error`, che ogni polling riuscito reimposta a `null`. Basa readiness e alerting su `connected` piuttosto che sul codice di stato.

164 164 

165Quando il [connettore SCM](#scm-connector-flags) è configurato, il corpo `/healthz` dell'orchestrator porta anche `scm_connector_connected` e un oggetto `scm_connector` con `connected`, `last_connected_at`, `last_error`, `reconnects` e `requests_forwarded`. Entrambi i campi sono `null` quando `--scm-connector-host` non è impostato.165Quando il [connettore SCM](#scm-connector-flags) è configurato, il corpo `/healthz` dell'orchestrator porta anche `scm_connector_connected` e un oggetto `scm_connector` con `connected`, `last_connected_at`, `last_error`, `reconnects` e `requests_forwarded`. Entrambi i campi sono `null` quando `--scm-connector-host` non è impostato.

166 166 

Details

692| [`gcpAuthRefresh`](#gcpauthrefresh) | Aggiorna le [credenziali Google Cloud](/docs/it/google-vertex-ai#advanced-credential-configuration) con un tuo comando | Autenticazione e provider | Any file |692| [`gcpAuthRefresh`](#gcpauthrefresh) | Aggiorna le [credenziali Google Cloud](/docs/it/google-vertex-ai#advanced-credential-configuration) con un tuo comando | Autenticazione e provider | Any file |

693| [`hooks`](#hooks) | Esegui i tuoi comandi come [hook](/docs/it/hooks) in determinati punti del ciclo di vita di Claude Code | Hook e automazione | Any file |693| [`hooks`](#hooks) | Esegui i tuoi comandi come [hook](/docs/it/hooks) in determinati punti del ciclo di vita di Claude Code | Hook e automazione | Any file |

694| [`httpHookAllowedEnvVars`](#httphookallowedenvvars) | Limita quali variabili d'ambiente gli [hook HTTP](/docs/it/hooks) possono inserire nelle intestazioni | Hook e automazione | Any file |694| [`httpHookAllowedEnvVars`](#httphookallowedenvvars) | Limita quali variabili d'ambiente gli [hook HTTP](/docs/it/hooks) possono inserire nelle intestazioni | Hook e automazione | Any file |

695| [`idleCompaction`](#idlecompaction) | Impedisci a Claude Code di compattare una conversazione lunga mentre la sessione del terminale è inattiva | Memoria e contesto | Any file |

695| [`includeCoAuthoredBy`](#includecoauthoredby) | Deprecato; usa `attribution` per nascondere o cambiare l'attribuzione di commit e PR | Git e attribuzione | Any file |696| [`includeCoAuthoredBy`](#includecoauthoredby) | Deprecato; usa `attribution` per nascondere o cambiare l'attribuzione di commit e PR | Git e attribuzione | Any file |

696| [`includeGitInstructions`](#includegitinstructions) | Rimuovi le istruzioni integrate su commit e PR dal contesto di Claude | Git e attribuzione | Any file |697| [`includeGitInstructions`](#includegitinstructions) | Rimuovi le istruzioni integrate su commit e PR dal contesto di Claude | Git e attribuzione | Any file |

697| [`inputNeededNotifEnabled`](#inputneedednotifenabled) | Ricevi una [notifica push](/docs/it/remote-control#mobile-push-notifications) quando Claude ti sta aspettando | Remoto, desktop e notifiche | Any file |698| [`inputNeededNotifEnabled`](#inputneedednotifenabled) | Ricevi una [notifica push](/docs/it/remote-control#mobile-push-notifications) quando Claude ti sta aspettando | Remoto, desktop e notifiche | Any file |


1425 * `true`: le sessioni iniziano con ultracode attivo quando i workflow dinamici sono abilitati per te e il tuo modello supporta `xhigh`1426 * `true`: le sessioni iniziano con ultracode attivo quando i workflow dinamici sono abilitati per te e il tuo modello supporta `xhigh`

1426 * `false`: le sessioni iniziano con ultracode disattivato1427 * `false`: le sessioni iniziano con ultracode disattivato

1427* **Default**: non impostato, quindi ultracode è disattivato1428* **Default**: non impostato, quindi ultracode è disattivato

1428* **Per-session overrides**: `/effort ultracode` attiva ultracode per una sessione senza questa chiave, e `/effort ultracode off` lo disattiva per una sessione quando questa chiave è `true`. Il flag `--effort ultracode` lo attiva anche per una sessione, a `xhigh` effort, e richiede Claude Code v2.1.203 o successivo1429* **Per-session overrides**: `/effort ultracode` attiva ultracode per una sessione senza questa chiave, e `/effort ultracode off` lo disattiva per una sessione quando questa chiave è `true`. Il flag `--effort ultracode` lo attiva anche per una sessione, a `xhigh` effort

1429 1430 

1430```json settings.json theme={null}1431```json settings.json theme={null}

1431{1432{


2952}2953}

2953```2954```

2954 2955 

2955Il comando manuale `/compact` continua a funzionare mentre la compattazione automatica è disattivata.2956Il comando manuale `/compact` continua a funzionare mentre la compattazione automatica è disattivata. Se disattivi la compattazione automatica, si disattiva anche la [compattazione durante l'inattività](#idlecompaction).

2956 2957 

2957<h3 id="autocompactwindow">2958<h3 id="autocompactwindow">

2958 `autoCompactWindow`2959 `autoCompactWindow`


3133 * Variabili che cambiano il modo in cui Claude Code si avvia o si sincronizza, come `CLAUDE_CODE_PROCESS_WRAPPER`, `CLAUDE_CODE_SYNC_SKILLS`, `CLAUDE_CODE_SYNC_PLUGINS`, `CLAUDE_CODE_PLUGIN_CACHE_DIR` e `CLAUDE_CODE_PLUGIN_SEED_DIR`.3134 * Variabili che cambiano il modo in cui Claude Code si avvia o si sincronizza, come `CLAUDE_CODE_PROCESS_WRAPPER`, `CLAUDE_CODE_SYNC_SKILLS`, `CLAUDE_CODE_SYNC_PLUGINS`, `CLAUDE_CODE_PLUGIN_CACHE_DIR` e `CLAUDE_CODE_PLUGIN_SEED_DIR`.

3134 * Variabili che impostano i timer di una finestra di dialogo senza risposta: [`CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS`, `CLAUDE_AFK_TIMEOUT_MS` e `CLAUDE_AFK_COUNTDOWN_MS`](/docs/it/env-vars#variables).3135 * Variabili che impostano i timer di una finestra di dialogo senza risposta: [`CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS`, `CLAUDE_AFK_TIMEOUT_MS` e `CLAUDE_AFK_COUNTDOWN_MS`](/docs/it/env-vars#variables).

3135 * [`CLAUDE_CODE_DISABLE_ATTACHMENTS`](/docs/it/env-vars#variables), che disattiva l'elaborazione degli allegati.3136 * [`CLAUDE_CODE_DISABLE_ATTACHMENTS`](/docs/it/env-vars#variables), che disattiva l'elaborazione degli allegati.

3137 * [`CLAUDE_CODE_DISABLE_FILE_MENTIONS`](/docs/it/env-vars#variables), che impedisce a Claude Code di espandere le menzioni `@` di file e directory.

3136 3138 

3137 Prima della v2.1.251, le impostazioni di progetto e locali potevano impostare anche le variabili di questo elenco che scelgono dove Claude Code scrive i propri file o che esportano il contenuto della sessione, tranne `HOME` e `XDG_CONFIG_HOME`. Prima della v2.1.290, potevano impostare anche le variabili dei timer delle finestre di dialogo e `CLAUDE_CODE_DISABLE_ATTACHMENTS`.3139 Prima della v2.1.251, le impostazioni di progetto e locali potevano impostare anche le variabili di questo elenco che scelgono dove Claude Code scrive i propri file o che esportano il contenuto della sessione, tranne `HOME` e `XDG_CONFIG_HOME`. Prima della v2.1.290, potevano impostare anche le variabili dei timer delle finestre di dialogo e `CLAUDE_CODE_DISABLE_ATTACHMENTS`.

3138* Le variabili di identità di cui sono proprietari gli ambienti di hosting di Claude Code, come `CLAUDE_CODE_REMOTE` e `CLAUDE_CODE_ACCOUNT_UUID`, vengono ignorate in ogni file.3140* Le variabili di identità di cui sono proprietari gli ambienti di hosting di Claude Code, come `CLAUDE_CODE_REMOTE` e `CLAUDE_CODE_ACCOUNT_UUID`, vengono ignorate in ogni file.


3163 3165 

3164In un'esecuzione `-p` o in una sessione dell'Agent SDK, Claude Code ignora questa chiave. L'SDK attiva il checkpointing con la sua opzione `enableFileCheckpointing`, e un'esecuzione `-p` semplice richiede `CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING=true`. Consulta [Checkpointing dei file nell'Agent SDK](/docs/it/agent-sdk/file-checkpointing).3166In un'esecuzione `-p` o in una sessione dell'Agent SDK, Claude Code ignora questa chiave. L'SDK attiva il checkpointing con la sua opzione `enableFileCheckpointing`, e un'esecuzione `-p` semplice richiede `CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING=true`. Consulta [Checkpointing dei file nell'Agent SDK](/docs/it/agent-sdk/file-checkpointing).

3165 3167 

3168<h3 id="idlecompaction">

3169 `idleCompaction`

3170</h3>

3171 

3172La compattazione durante l'inattività [compatta](/docs/it/context-window#what-survives-compaction) una conversazione lunga da cui ti sei allontanato, poco prima che la sua cache del prompt scada. Il tuo messaggio successivo invia quindi un riepilogo invece dell'intera conversazione. Quando torni, la conversazione mostra `Compacted while idle, before the prompt cache expired`.

3173 

3174La compattazione durante l'inattività è attiva per impostazione predefinita per le conversazioni che soddisfano tutte queste condizioni:

3175 

3176* **Sessione**: sei in una sessione interattiva del terminale

3177* **Cache del prompt**: la conversazione usa il [TTL di un'ora della cache del prompt](/docs/it/prompt-caching#which-ttl-each-request-gets)

3178* **Feature flag**: Claude Code può [recuperare i feature flag da Anthropic](/docs/it/env-vars#features-that-need-feature-flag-fetching)

3179* **Dimensione**: il contesto della conversazione ha raggiunto la soglia di token, che puoi [modificare](#change-the-idle-compaction-threshold) rispetto al valore predefinito di 200.000

3180* **Tempo di inattività**: sono trascorsi circa 54 minuti dall'ultima richiesta, e in quel momento il tuo computer è attivo

3181 

3182Per disattivare la compattazione durante l'inattività, imposta questa chiave su `false`.

3183 

3184* **Ambito**: [`Any file`](#scopes)

3185* **Tipo**: Boolean

3186 * `true`: Claude Code compatta le conversazioni inattive che soddisfano le condizioni

3187 * `false`: Claude Code non compatta mentre la tua sessione è inattiva

3188* **Predefinito**: `true`

3189* **Override per sessione**: [`DISABLE_AUTO_COMPACT`](/docs/it/env-vars) disattiva la compattazione durante l'inattività insieme alla compattazione automatica

3190 

3191```json settings.json theme={null}

3192{

3193 "idleCompaction": false

3194}

3195```

3196 

3197La chiave richiede Claude Code v2.1.290 o successiva. In una versione precedente, che ignora questa chiave, disattiva [`autoCompactEnabled`](#autocompactenabled) per fermare la compattazione durante l'inattività.

3198 

3199<h4 id="change-the-idle-compaction-threshold">

3200 Modificare la soglia di compattazione durante l'inattività

3201</h4>

3202 

3203Imposta [`CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS`](/docs/it/env-vars) sul numero di token che il contesto di una conversazione deve raggiungere prima che le si applichi la compattazione durante l'inattività. Usa un numero intero positivo. I valori inferiori a `100000` vengono portati a `100000`, la soglia minima.

3204 

3205Con il valore predefinito, una conversazione su una finestra di contesto da 200K si compatta automaticamente prima di raggiungere 200.000 token. Questo esempio abbassa la soglia a 150.000 in modo che quelle conversazioni rientrino:

3206 

3207```json settings.json theme={null}

3208{

3209 "env": {

3210 "CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS": "150000"

3211 }

3212}

3213```

3214 

3166<h3 id="plansdirectory">3215<h3 id="plansdirectory">

3167 `plansDirectory`3216 `plansDirectory`

3168</h3>3217</h3>


4209}4258}

4210```4259```

4211 4260 

4261Se sostituisci il prompt di sistema in [modalità non interattiva](/docs/it/headless) o nell'Agent SDK, la sessione inizia senza lo snapshot anche quando questa chiave è `true`:

4262 

4263* **Esecuzioni con `-p`**: sostituisci il prompt quando passi [`--system-prompt`](/docs/it/cli-reference#system-prompt-flags) o `--system-prompt-file`. Lo sostituisci anche quando esegui un agente personalizzato con il proprio prompt, selezionato con [`--agent`](/docs/it/sub-agents#invoke-subagents-explicitly) o con l'impostazione [`agent`](#agent). Al di fuori della [modalità bare](/docs/it/headless#start-faster-with-bare-mode), per mantenere lo snapshot, esegui senza un agente personalizzato e aggiungi le tue istruzioni con [`--append-system-prompt`](/docs/it/cli-reference#system-prompt-flags) invece di sostituire il prompt.

4264* **[Agent SDK](/docs/it/agent-sdk/modifying-system-prompts)**: sostituisci il prompt con un prompt di sistema personalizzato o con un agente personalizzato per il thread principale. Se non imposti alcun prompt di sistema, l'SDK utilizza il suo default minimo e anche in questo caso la sessione inizia senza lo snapshot. Al di fuori della [modalità bare](/docs/it/headless#start-faster-with-bare-mode), per mantenere lo snapshot, utilizza il preset `claude_code` senza un `agent` personalizzato.

4265 

4212<h3 id="prurltemplate">4266<h3 id="prurltemplate">

4213 `prUrlTemplate`4267 `prUrlTemplate`

4214</h3>4268</h3>


5175 5229 

5176I plugin integrati memorizzano le loro opzioni sotto la stessa chiave con un suffisso `@builtin`. Ad esempio, l'impostazione [**Project instructions**](/docs/it/memory#choose-which-instruction-files-load) che controlla se Claude Code legge i file `AGENTS.md` è `pluginConfigs["cc-plugin-agents-md@builtin"].options.instructionFiles`. Prima di v2.1.285, l'ID del plugin era `agents-md@builtin`. Le versioni successive leggono una voce sotto l'uno o l'altro ID.5230I plugin integrati memorizzano le loro opzioni sotto la stessa chiave con un suffisso `@builtin`. Ad esempio, l'impostazione [**Project instructions**](/docs/it/memory#choose-which-instruction-files-load) che controlla se Claude Code legge i file `AGENTS.md` è `pluginConfigs["cc-plugin-agents-md@builtin"].options.instructionFiles`. Prima di v2.1.285, l'ID del plugin era `agents-md@builtin`. Le versioni successive leggono una voce sotto l'uno o l'altro ID.

5177 5231 

5178Claude Code ignora le voci di progetto e locale perché sostituisce questi valori nelle configurazioni di hook, MCP e LSP del plugin, e un repository clonato non deve essere in grado di fornirli. Prima di v2.1.207, anche le impostazioni di progetto e locale venivano lette.5232Claude Code ignora le voci di progetto e locali perché sostituisce questi valori nelle configurazioni di hook, MCP e LSP del plugin, e un repository clonato non deve poterli fornire.

5179 5233 

5180<h3 id="prependplugins">5234<h3 id="prependplugins">

5181 `prependPlugins`5235 `prependPlugins`


5680}5734}

5681```5735```

5682 5736 

5683Al di fuori di un repository git, un [hook `WorktreeCreate`](/docs/it/worktrees#non-git-version-control) che fallisce rimuove il blocco, così che la sessione possa modificare la directory di lavoro sul posto; questa rimozione richiede Claude Code v2.1.203 o successivo.5737Al di fuori di un repository git, un [hook `WorktreeCreate`](/docs/it/worktrees#non-git-version-control) che fallisce rimuove il blocco, così che la sessione possa modificare la directory di lavoro sul posto.

5684 5738 

5685<h3 id="worktree-location">5739<h3 id="worktree-location">

5686 `worktree.location`5740 `worktree.location`

setup.md +1 −1

Details

226 226 

227Eseguite `claude doctor` per visualizzare il risultato del tentativo di aggiornamento più recente.227Eseguite `claude doctor` per visualizzare il risultato del tentativo di aggiornamento più recente.

228 228 

229Su macOS e Linux, il programma di installazione nativo gestisce il launcher in `~/.local/bin/claude` come un symlink in `~/.local/share/claude/versions/`. Se sostituite quel launcher con il vostro script o symlink, l'aggiornamento automatico e `claude update` lo lasciano in posizione: le nuove versioni si installano comunque nella directory `versions/`, e il vostro launcher decide quale versione viene eseguita. Prima della v2.1.207, l'aggiornatore automatico sostituiva un launcher personalizzato in quel percorso con il suo symlink ad ogni aggiornamento.229Su macOS e Linux, il programma di installazione nativo gestisce il launcher in `~/.local/bin/claude` come un collegamento simbolico in `~/.local/share/claude/versions/`. Se sostituisci quel launcher con il tuo script o collegamento simbolico, l'aggiornamento automatico e `claude update` lo lasciano in posizione: le nuove versioni si installano comunque nella directory `versions/`, e il tuo launcher decide quale versione viene eseguita.

230 230 

231Con un launcher personalizzato, Claude Code mantiene anche ogni versione installata su disco perché non può determinare quale versione il launcher necessita. `claude doctor` segnala un launcher che il programma di installazione nativo non ha creato.231Con un launcher personalizzato, Claude Code mantiene anche ogni versione installata su disco perché non può determinare quale versione il launcher necessita. `claude doctor` segnala un launcher che il programma di installazione nativo non ha creato.

232 232 

skills.md +26 −3

Details

31Per disattivare gli skill raggruppati, utilizzate l'impostazione [`disableBundledSkills`](/docs/it/settings-reference#disablebundledskills).31Per disattivare gli skill raggruppati, utilizzate l'impostazione [`disableBundledSkills`](/docs/it/settings-reference#disablebundledskills).

32 32 

33<Note>33<Note>

34 Il controllo di configurazione [`/doctor`](/docs/it/commands#all-commands) rimane digitabile quando `disableBundledSkills` è attivo, in Claude Code v2.1.205 e successivi. Per nasconderlo, impostate la variabile d'ambiente `DISABLE_DOCTOR_COMMAND` o una voce [`skillOverrides`](#override-skill-visibility-from-settings) di `"doctor": "off"`. Prima della v2.1.205, `/doctor` era un comando built-in piuttosto che uno skill raggruppato.34 Il controllo della configurazione [`/doctor`](/docs/it/commands#all-commands) rimane digitabile quando `disableBundledSkills` è attivo. Per nasconderlo, imposta la variabile d'ambiente `DISABLE_DOCTOR_COMMAND` o una voce [`skillOverrides`](#override-skill-visibility-from-settings) con `"doctor": "off"`.

35</Note>35</Note>

36 36 

37Gli skill raggruppati sono elencati insieme ai comandi built-in nel [riferimento dei comandi](/docs/it/commands), contrassegnati come **Skill** nella colonna Purpose.37Gli skill raggruppati sono elencati insieme ai comandi built-in nel [riferimento dei comandi](/docs/it/commands), contrassegnati come **Skill** nella colonna Purpose.


69 69 

70`/verify` può anche registrare la propria procedura. Quando deve compilare e pilotare la tua app senza una procedura registrata, scrive ciò che ha funzionato in `.claude/skills/verify/SKILL.md` nella radice del repository, oppure nella directory del pacchetto interessato in un monorepo, così le esecuzioni successive e gli altri agenti seguono gli stessi passaggi. Nella radice del repository, la skill registrata sostituisce la skill inclusa `/verify`.70`/verify` può anche registrare la propria procedura. Quando deve compilare e pilotare la tua app senza una procedura registrata, scrive ciò che ha funzionato in `.claude/skills/verify/SKILL.md` nella radice del repository, oppure nella directory del pacchetto interessato in un monorepo, così le esecuzioni successive e gli altri agenti seguono gli stessi passaggi. Nella radice del repository, la skill registrata sostituisce la skill inclusa `/verify`.

71 71 

72Claude modifica il file registrato solo quando ha guidato male un'esecuzione, come un comando che ha fallito o uno step mancante, così potete commit il file senza diff per-sessione. Prima della v2.1.205, lo skill raggruppato ha detto a Claude di incorporare qualsiasi cosa un'esecuzione ha imparato, il che ha causato frequenti conflitti di merge.72Claude modifica il file registrato solo quando ha guidato male un'esecuzione, ad esempio con un comando non riuscito o un passaggio mancante, così puoi fare il commit del file senza diff a ogni sessione.

73 73 

74<h3 id="run-your-checks-before-each-commit">74<h3 id="run-your-checks-before-each-commit">

75 Esegui i tuoi controlli prima di ogni commit75 Esegui i tuoi controlli prima di ogni commit


183* **Cartelle con collegamento simbolico**: una voce `<skill-name>` nella posizione enterprise, personale o di progetto può essere un collegamento simbolico a una directory altrove sul disco. Claude Code legge `SKILL.md` dalla destinazione e carica la skill una sola volta anche se più posizioni puntano alla stessa destinazione. Le skill dei plugin [gestiscono i collegamenti simbolici in modo diverso](/docs/it/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks).183* **Cartelle con collegamento simbolico**: una voce `<skill-name>` nella posizione enterprise, personale o di progetto può essere un collegamento simbolico a una directory altrove sul disco. Claude Code legge `SKILL.md` dalla destinazione e carica la skill una sola volta anche se più posizioni puntano alla stessa destinazione. Le skill dei plugin [gestiscono i collegamenti simbolici in modo diverso](/docs/it/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks).

184* **Nome riservato `synced`**: non chiamare una cartella di skill `synced`, con qualsiasi combinazione di maiuscole e minuscole. Claude Code usa `~/.claude/skills/synced/` per le [skill scaricate da claude.ai](#where-synced-skills-load) e ignora una skill che crei con quel nome nelle posizioni enterprise, personale e di progetto.184* **Nome riservato `synced`**: non chiamare una cartella di skill `synced`, con qualsiasi combinazione di maiuscole e minuscole. Claude Code usa `~/.claude/skills/synced/` per le [skill scaricate da claude.ai](#where-synced-skills-load) e ignora una skill che crei con quel nome nelle posizioni enterprise, personale e di progetto.

185* **Nome riservato `anthropic-skills`**: al di fuori di un plugin, una cartella di skill o un file di comando il cui nome è `anthropic-skills` o inizia con `anthropic-skills:` non viene caricato. Consulta [Nomi riservati alle skill sincronizzate](#names-reserved-for-synced-skills).185* **Nome riservato `anthropic-skills`**: al di fuori di un plugin, una cartella di skill o un file di comando il cui nome è `anthropic-skills` o inizia con `anthropic-skills:` non viene caricato. Consulta [Nomi riservati alle skill sincronizzate](#names-reserved-for-synced-skills).

186* **Caratteri nel nome**: al di fuori di un plugin, una cartella di skill non viene caricata quando il suo nome contiene un carattere come uno spazio a larghezza zero o `<`. Consulta [Caratteri che il nome di una skill non può contenere](#characters-a-skill-name-cant-hold).

186* **File di comando**: un file Markdown in `.claude/commands/` è il formato precedente e funziona ancora. Supporta lo stesso [frontmatter](#frontmatter-reference) tranne `name` e `paths`. Per scoprire il nome da digitare per invocarlo, consulta [Come una skill ottiene il suo nome di comando](#how-a-skill-gets-its-command-name). Per il nuovo lavoro preferisci una skill, poiché le skill supportano anche i [file di supporto](#add-supporting-files).187* **File di comando**: un file Markdown in `.claude/commands/` è il formato precedente e funziona ancora. Supporta lo stesso [frontmatter](#frontmatter-reference) tranne `name` e `paths`. Per scoprire il nome da digitare per invocarlo, consulta [Come una skill ottiene il suo nome di comando](#how-a-skill-gets-its-command-name). Per il nuovo lavoro preferisci una skill, poiché le skill supportano anche i [file di supporto](#add-supporting-files).

187* **Cartella di skill come plugin**: aggiungi un `.claude-plugin/plugin.json` a una cartella di skill e verrà caricata come [plugin](/docs/it/plugins/loading#plugins-shared-through-a-repository) chiamato `<name>@skills-dir`, così potrà includere agenti, hook e server MCP. In `.claude/skills/` di un progetto, questo richiede prima di accettare la finestra di dialogo di attendibilità del workspace.188* **Cartella di skill come plugin**: aggiungi un `.claude-plugin/plugin.json` a una cartella di skill e verrà caricata come [plugin](/docs/it/plugins/loading#plugins-shared-through-a-repository) chiamato `<name>@skills-dir`, così potrà includere agenti, hook e server MCP. In `.claude/skills/` di un progetto, questo richiede prima di accettare la finestra di dialogo di attendibilità del workspace.

188 189 


495 496 

496Per un `SKILL.md` radice del plugin, non c'è directory skill da cui prendere il nome, quindi `name` fornisce l'intero segmento finale. Senza un campo `name`, Claude Code ricade al nome della directory del plugin.497Per un `SKILL.md` radice del plugin, non c'è directory skill da cui prendere il nome, quindi `name` fornisce l'intero segmento finale. Senza un campo `name`, Claude Code ricade al nome della directory del plugin.

497 498 

499<h4 id="characters-a-skill-name-cant-hold">

500 Caratteri che il nome di una skill non può contenere

501</h4>

502 

503Se una skill o un comando personalizzato manca dal menu `/`, o il menu non mostra il `name` del frontmatter di una skill, controlla il nome. Claude Code rifiuta un nome di comando o un `name` del frontmatter che contiene caratteri come questi:

504 

505* Uno spazio a larghezza zero o un carattere di controllo

506* Un carattere per uso privato o non assegnato, come un glifo di un font di icone

507* Un carattere che cambia la direzione del testo circostante

508* Uno spazio vuoto diverso da un singolo spazio normale tra le parole, come uno spazio unificatore, due spazi consecutivi o uno spazio all'inizio o alla fine

509* `<` o `>`

510 

511Un comando personalizzato o una skill non si carica quando Claude Code rifiuta il nome della sua directory o del suo file. Rinomina quella cartella o quel file per rimuovere i caratteri. Una skill si carica comunque quando questi caratteri si trovano solo nel nome della cartella di una skill di plugin o nel suo `name` del frontmatter:

512 

513* **Cartella nella directory `skills/` di un plugin o nei [percorsi `skills`](/docs/it/plugins/components#skills) del suo manifest**: non devi rinominare la cartella. Questi caratteri diventano trattini nel nome del comando della skill, quindi digita il comando con i trattini.

514* **`name` del frontmatter**: il menu `/` non mostra il valore di `name` e digitarlo non invoca la skill. Modifica la riga `name:` per rimuovere i caratteri.

515 

516Per scoprire quale nome Claude Code ha rifiutato, avvialo con [`claude --debug`](/docs/it/cli-reference#cli-flags) dalla tua shell e cerca `[names]` nel [log di debug](/docs/it/debug-your-config). In una sessione interattiva, anche un [avviso all'avvio](/docs/it/errors#skill-or-command-name-refused) ti segnala che alcuni nomi sono stati rifiutati. Dopo una ridenominazione o una modifica di `name:`, riavvia la sessione, a meno che il file non si trovi in una directory che Claude Code [monitora per le modifiche](#live-change-detection).

517 

498<h4 id="available-string-substitutions">518<h4 id="available-string-substitutions">

499 Sostituzioni di stringhe disponibili519 Sostituzioni di stringhe disponibili

500</h4>520</h4>


858| Skill con `context: fork` | Da tipo di agent | Contenuto SKILL.md | CLAUDE.md, per il [startup context](/docs/it/sub-agents#what-loads-at-startup) dell'agent |878| Skill con `context: fork` | Da tipo di agent | Contenuto SKILL.md | CLAUDE.md, per il [startup context](/docs/it/sub-agents#what-loads-at-startup) dell'agent |

859| Subagent con campo `skills` | Corpo markdown del subagent | Messaggio di delega di Claude | Skill precaricate + CLAUDE.md, per il [startup context](/docs/it/sub-agents#what-loads-at-startup) del subagent |879| Subagent con campo `skills` | Corpo markdown del subagent | Messaggio di delega di Claude | Skill precaricate + CLAUDE.md, per il [startup context](/docs/it/sub-agents#what-loads-at-startup) del subagent |

860 880 

861Con `context: fork`, scrivi il compito nella tua skill e scegli un tipo di agent per eseguirlo. Gli agent Explore e Plan built-in [saltano CLAUDE.md e git status](/docs/it/sub-agents#what-loads-at-startup) per mantenere il loro contesto piccolo, quindi una skill forkata che usa `agent: Explore` vede solo il contenuto SKILL.md e il prompt di sistema dell'agent. Per l'inverso, dove definisci un subagent personalizzato che usa le skill come materiale di riferimento, vedi [Subagents](/docs/it/sub-agents#preload-skills-into-subagents).881Con `context: fork`, scrivi il compito nella tua skill e scegli un tipo di agent per eseguirlo. Gli agent Explore e Plan built-in [si avviano senza CLAUDE.md e git status](/docs/it/sub-agents#what-loads-at-startup) per mantenere il loro contesto piccolo. Metti tutto ciò di cui il compito ha bisogno nel tuo SKILL.md. Una skill forkata che usa `agent: Explore` parte con quel contenuto e il prompt di sistema dell'agent, e nessuno dei tuoi file CLAUDE.md.

882 

883Per l'inverso, dove definisci un subagent personalizzato che usa le skill come materiale di riferimento, vedi [Subagents](/docs/it/sub-agents#preload-skills-into-subagents).

862 884 

863<h4 id="example-research-skill-using-explore-agent">885<h4 id="example-research-skill-using-explore-agent">

864 Esempio: Skill di ricerca usando l'agent Explore886 Esempio: Skill di ricerca usando l'agent Explore


12472. Verificate che la skill appaia in `What skills are available?`12692. Verificate che la skill appaia in `What skills are available?`

12483. Provate a riformulare la vostra richiesta per corrispondere più strettamente alla descrizione12703. Provate a riformulare la vostra richiesta per corrispondere più strettamente alla descrizione

12494. Invocatela direttamente con `/skill-name` se la skill è invocabile dall'utente12714. Invocatela direttamente con `/skill-name` se la skill è invocabile dall'utente

12725. Se nemmeno `/skill-name` viene riconosciuto, verifica se Claude Code [ha rifiutato il nome della skill](#characters-a-skill-name-cant-hold)

1250 1273 

1251Se il YAML del frontmatter è malformato, Claude Code carica il corpo della skill con metadati vuoti, quindi `/skill-name` funziona comunque ma Claude non può corrispondere alla vostra `description`. Eseguite con `--debug` per vedere l'errore di parsing.1274Se il YAML del frontmatter è malformato, Claude Code carica il corpo della skill con metadati vuoti, quindi `/skill-name` funziona comunque ma Claude non può corrispondere alla vostra `description`. Eseguite con `--debug` per vedere l'errore di parsing.

1252 1275 

statusline.md +2 −2

Details

1198| `description` | string | Breve descrizione del task, come quella fornita da Claude quando ha avviato il subagent |1198| `description` | string | Breve descrizione del task, come quella fornita da Claude quando ha avviato il subagent |

1199| `label` | string | Breve riepilogo dell'avanzamento del task quando Claude Code ne ha uno, altrimenti lo stesso testo di `description` |1199| `label` | string | Breve riepilogo dell'avanzamento del task quando Claude Code ne ha uno, altrimenti lo stesso testo di `description` |

1200| `startTime` | number | Momento di avvio del task, in millisecondi dall'epoch Unix |1200| `startTime` | number | Momento di avvio del task, in millisecondi dall'epoch Unix |

1201| `model` | string, opzionale | ID del modello risolto su cui viene eseguito il task. Omesso finché il modello non viene risolto. Richiede Claude Code v2.1.205 o successivo |1201| `model` | string, opzionale | ID del modello risolto su cui viene eseguito il task. Omesso finché il modello non viene risolto |

1202| `effort` | string o number, opzionale | Sforzo di ragionamento impostato per il subagent nel suo [frontmatter di definizione](/docs/it/sub-agents#supported-frontmatter-fields) o nell'invocazione individuale: `low`, `medium`, `high`, `xhigh`, `max` oppure un budget di token numerico. Questo è il valore configurato, e lo sforzo che Claude Code applica può essere diverso quando il modello non supporta quel livello. Omesso quando non è impostato alcuno sforzo. Richiede Claude Code v2.1.213 o successivo |1202| `effort` | string o number, opzionale | Sforzo di ragionamento impostato per il subagent nel suo [frontmatter di definizione](/docs/it/sub-agents#supported-frontmatter-fields) o nell'invocazione individuale: `low`, `medium`, `high`, `xhigh`, `max` oppure un budget di token numerico. Questo è il valore configurato, e lo sforzo che Claude Code applica può essere diverso quando il modello non supporta quel livello. Omesso quando non è impostato alcuno sforzo. Richiede Claude Code v2.1.213 o successivo |

1203| `contextWindowSize` | number, opzionale | Finestra di contesto di `model` in token, calcolata nello stesso modo di [`context_window.context_window_size`](#context-window-fields) della riga di stato principale, quindi puoi renderizzare una percentuale per riga da `tokenCount`. Omesso quando lo è `model`. Richiede Claude Code v2.1.205 o successivo |1203| `contextWindowSize` | number, opzionale | Finestra di contesto di `model` in token, calcolata nello stesso modo di [`context_window.context_window_size`](#context-window-fields) della riga di stato principale, quindi puoi renderizzare una percentuale per riga da `tokenCount`. Omesso quando lo è `model` |

1204| `tokenCount` | number | Conteggio corrente dei token del subagent, il valore mostrato dalla riga predefinita |1204| `tokenCount` | number | Conteggio corrente dei token del subagent, il valore mostrato dalla riga predefinita |

1205| `tokenSamples` | array di number | Fino alle ultime 16 letture di `tokenCount`, una per tick di aggiornamento, dalla più vecchia alla più recente e terminando con quella corrente |1205| `tokenSamples` | array di number | Fino alle ultime 16 letture di `tokenCount`, una per tick di aggiornamento, dalla più vecchia alla più recente e terminando con quella corrente |

1206| `cwd` | string | Directory di lavoro del subagent: la sua directory quando viene eseguito in una propria, come un worktree isolato, altrimenti la directory di lavoro della sessione |1206| `cwd` | string | Directory di lavoro del subagent: la sua directory quando viene eseguito in una propria, come un worktree isolato, altrimenti la directory di lavoro della sessione |

sub-agents.md +40 −11

Details

32 32 

33Claude Code include subagent integrati che Claude utilizza automaticamente quando appropriato. Ognuno eredita le autorizzazioni della conversazione principale; la maggior parte viene eseguita con un set di strumenti limitato.33Claude Code include subagent integrati che Claude utilizza automaticamente quando appropriato. Ognuno eredita le autorizzazioni della conversazione principale; la maggior parte viene eseguita con un set di strumenti limitato.

34 34 

35Explore e Plan saltano i vostri file CLAUDE.md e lo snapshot dello stato git per mantenere la ricerca veloce ed economica. Ogni altro subagent integrato e [subagent personalizzato](#configure-subagents) carica entrambi, a meno che la sua definizione non imposti il campo [`omitClaudeMd`](#supported-frontmatter-fields) per saltare i file CLAUDE.md dell'utente, del progetto e locali. Per la suddivisione completa di ciò che raggiunge un subagent, consultate [cosa si carica all'avvio](#what-loads-at-startup).35Explore e Plan si avviano senza i tuoi file CLAUDE.md e senza lo snapshot dello stato git per mantenere la ricerca veloce ed economica. Gli altri subagent integrati e i [subagent personalizzati](#configure-subagents) caricano entrambi, a meno che tu non imposti [`omitClaudeMd`](#supported-frontmatter-fields) nella definizione di un subagent personalizzato per avviarlo senza i file CLAUDE.md dell'utente, del progetto e locali. Per la suddivisione completa di ciò che raggiunge un subagent, consulta [cosa si carica all'avvio](#what-loads-at-startup).

36 36 

37<Tabs>37<Tabs>

38 <Tab title="Explore">38 <Tab title="Explore">


185 185 

186Claude Code scansiona `.claude/agents/` e `~/.claude/agents/` ricorsivamente, quindi può organizzare le definizioni in sottocartelle come `agents/review/` o `agents/research/`. Il percorso della sottodirectory non influisce su come un subagent viene identificato o invocato, perché l'identità proviene solo dal campo frontmatter `name`.186Claude Code scansiona `.claude/agents/` e `~/.claude/agents/` ricorsivamente, quindi può organizzare le definizioni in sottocartelle come `agents/review/` o `agents/research/`. Il percorso della sottodirectory non influisce su come un subagent viene identificato o invocato, perché l'identità proviene solo dal campo frontmatter `name`.

187 187 

188Mantenga i valori `name` univoci in tutto l'albero: se due file all'interno dello stesso `.claude/agents/`, incluse le sue sottocartelle, dichiarano lo stesso nome, Claude Code carica solo uno di essi, scelto dall'ordine di lettura del filesystem piuttosto che da una precedenza documentata. Tra le directory di progetto annidate, la definizione più vicina alla directory di lavoro vince, come descritto sopra. Il controllo di configurazione [`/doctor`](/docs/it/commands#all-commands) segnala i file nello stesso ambito che condividono un nome e propone di rinominare o rimuovere tutti tranne uno. Prima di v2.1.205, `/doctor` apriva una schermata di diagnostica che elencava i duplicati e mostrava quale definizione era attiva.188Mantieni i valori `name` univoci in tutto l'albero: se due file all'interno della stessa directory `.claude/agents/`, incluse le sue sottocartelle, dichiarano lo stesso nome, Claude Code carica solo uno di essi, scelto in base all'ordine di lettura del filesystem anziché in base a una precedenza documentata. Tra le directory di progetto annidate, ha la precedenza la definizione più vicina alla directory di lavoro, come descritto sopra. Il controllo di configurazione [`/doctor`](/docs/it/commands#all-commands) segnala i file nella stessa directory che condividono un nome e propone di rinominarli o rimuoverli tutti tranne uno.

189 189 

190Le directory `agents/` del plugin vengono scansionate anche ricorsivamente. A differenza degli ambiti di progetto e utente, una sottocartella all'interno della directory `agents/` di un plugin diventa parte dell'[identificatore con ambito](#invoke-subagents-explicitly): un file in `agents/review/security.md` nel plugin `my-plugin` si registra come `my-plugin:review:security`.190Le directory `agents/` del plugin vengono scansionate anche ricorsivamente. A differenza degli ambiti di progetto e utente, una sottocartella all'interno della directory `agents/` di un plugin diventa parte dell'[identificatore con ambito](#invoke-subagents-explicitly): un file in `agents/review/security.md` nel plugin `my-plugin` si registra come `my-plugin:review:security`.

191 191 


234Ogni chiave di primo livello nel JSON è il nome di un agente, e il suo valore è la definizione di quell'agente. Non inizi un nome con `-`. Una definizione accetta questi campi:234Ogni chiave di primo livello nel JSON è il nome di un agente, e il suo valore è la definizione di quell'agente. Non inizi un nome con `-`. Una definizione accetta questi campi:

235 235 

236* **`prompt`**: il prompt di sistema dell'agente, equivalente al corpo markdown nei subagent basati su file. `prompt` può essere vuoto. Se seleziona un agente con un `prompt` vuoto e nessun campo `memory` come agente della sessione con `--agent`, il prompt di sistema della sessione rimane invariato. Un `prompt` vuoto richiede Claude Code v2.1.281 o successivo.236* **`prompt`**: il prompt di sistema dell'agente, equivalente al corpo markdown nei subagent basati su file. `prompt` può essere vuoto. Se seleziona un agente con un `prompt` vuoto e nessun campo `memory` come agente della sessione con `--agent`, il prompt di sistema della sessione rimane invariato. Un `prompt` vuoto richiede Claude Code v2.1.281 o successivo.

237* **[Campi frontmatter](#supported-frontmatter-fields)**: `description`, `tools`, `disallowedTools`, `model`, `permissionMode`, `mcpServers`, `hooks`, `maxTurns`, `skills`, `initialPrompt`, `memory`, `effort`, `background`, `omitClaudeMd`, e `isolation`.237* **[Campi del frontmatter](#supported-frontmatter-fields)**: `description`, `tools`, `disallowedTools`, `model`, `permissionMode`, `mcpServers`, `hooks`, `maxTurns`, `autoCompactWindow`, `skills`, `initialPrompt`, `memory`, `effort`, `background`, `omitClaudeMd` e `isolation`.

238* **Campi ignorati**: `color` e `experimental` non vengono accettati qui e vengono ignorati piuttosto che rifiutati.238* **Campi ignorati**: `color` e `experimental` non vengono accettati qui e vengono ignorati piuttosto che rifiutati.

239 239 

240Per quello che Claude Code fa con un valore che non può caricare, e i flag e la variabile di ambiente che saltano quel controllo, consulti [`Invalid --agents configuration`](/docs/it/errors#invalid-agents-configuration).240Per quello che Claude Code fa con un valore che non può caricare, e i flag e la variabile di ambiente che saltano quel controllo, consulti [`Invalid --agents configuration`](/docs/it/errors#invalid-agents-configuration).


285 285 

286Un subagent inizia nella directory di lavoro corrente della conversazione principale. All'interno di un subagent, i comandi `cd` non persistono tra le chiamate dello strumento Bash o PowerShell e non influenzano la directory di lavoro della conversazione principale. Per dare al subagent una copia isolata del repository, imposti [`isolation: worktree`](#supported-frontmatter-fields).286Un subagent inizia nella directory di lavoro corrente della conversazione principale. All'interno di un subagent, i comandi `cd` non persistono tra le chiamate dello strumento Bash o PowerShell e non influenzano la directory di lavoro della conversazione principale. Per dare al subagent una copia isolata del repository, imposti [`isolation: worktree`](#supported-frontmatter-fields).

287 287 

288Un subagent con `isolation: worktree` esegue i suoi comandi Bash e PowerShell all'interno del suo worktree. Un comando la cui directory di lavoro si risolve nel suo checkout principale, ad esempio perché la directory del worktree è stata rimossa mentre il subagent era in esecuzione, fallisce con un errore. Prima di v2.1.203, tale comando potrebbe essere eseguito nel checkout principale.288Un subagent con `isolation: worktree` esegue i suoi comandi Bash e PowerShell all'interno del proprio worktree. Un comando la cui directory di lavoro si risolve invece nel tuo checkout principale, ad esempio perché la directory del worktree è stata rimossa mentre il subagent era in esecuzione, fallisce con un errore.

289 289 

290Questo controllo della directory di lavoro copre l'intero repository contenente la directory da cui ha avviato Claude Code. Quando la sua sessione viene eseguita in un [worktree](/docs/it/worktrees) collegato di sua proprietà, il controllo copre anche il checkout principale da cui quel worktree è collegato. Prima di v2.1.210, il controllo copriva solo la directory di avvio stessa. Un comando la cui directory di lavoro si risolveva altrove nello stesso repository, come la radice del repository quando ha avviato Claude Code da una sottodirectory di monorepo, veniva eseguito lì invece di fallire.290Questo controllo della directory di lavoro copre l'intero repository contenente la directory da cui ha avviato Claude Code. Quando la sua sessione viene eseguita in un [worktree](/docs/it/worktrees) collegato di sua proprietà, il controllo copre anche il checkout principale da cui quel worktree è collegato. Prima di v2.1.210, il controllo copriva solo la directory di avvio stessa. Un comando la cui directory di lavoro si risolveva altrove nello stesso repository, come la radice del repository quando ha avviato Claude Code da una sottodirectory di monorepo, veniva eseguito lì invece di fallire.

291 291 


306 306 

307Configuri un subagent con YAML [frontmatter](/docs/it/glossary#frontmatter) tra marcatori `---` all'inizio del suo file, e scriva il suo prompt di sistema come Markdown dopo la chiusura `---`. Solo `name` e `description` sono obbligatori.307Configuri un subagent con YAML [frontmatter](/docs/it/glossary#frontmatter) tra marcatori `---` all'inizio del suo file, e scriva il suo prompt di sistema come Markdown dopo la chiusura `---`. Solo `name` e `description` sono obbligatori.

308 308 

309I nomi di campo con più parole utilizzano camelCase, come `maxTurns` e `disallowedTools`, e devono corrispondere esattamente alla tabella: Claude Code ignora un campo che non riconosce senza segnalare un errore. Per scoprire perché un file subagent non si è caricato, consulti [File subagent che Claude Code salta](#subagent-files-claude-code-skips).309I nomi di campo composti da più parole utilizzano il camelCase, come `maxTurns` e `disallowedTools`, e devono corrispondere esattamente alla tabella: Claude Code ignora un campo che non riconosce senza segnalare un errore.

310 

311* Per trovare un campo scritto in modo errato in un subagent che è stato caricato, esegui [`claude --debug`](/docs/it/cli-reference#cli-flags) nella tua shell e cerca `does not recognize or apply` nel log di debug in `~/.claude/debug/<session-id>.txt`. Il log di debug indica fino a cinque campi di primo livello nel file del subagent che Claude Code non riconosce, con il nome probabilmente previsto quando un campo supportato è simile. Richiede Claude Code v2.1.296 o successivo.

312* Per scoprire perché un file di subagent non è stato caricato, consulta [File di subagent che Claude Code salta](#subagent-files-claude-code-skips).

310 313 

311| Field | Required | Description |314| Field | Required | Description |

312| :- | :- | :- |315| :- | :- | :- |


317| `model` | No | [Modello](#choose-a-model) da utilizzare: `sonnet`, `opus`, `haiku`, `fable`, un ID modello completo come `claude-opus-5-5`, o `inherit`. Quando lo omette, Claude Code sceglie il modello nell'[ordine del modello subagent](#choose-a-model) |320| `model` | No | [Modello](#choose-a-model) da utilizzare: `sonnet`, `opus`, `haiku`, `fable`, un ID modello completo come `claude-opus-5-5`, o `inherit`. Quando lo omette, Claude Code sceglie il modello nell'[ordine del modello subagent](#choose-a-model) |

318| `permissionMode` | No | [Modalità di permesso](#permission-modes): `default`, `acceptEdits`, `auto`, `dontAsk`, `bypassPermissions`, `plan`, o `manual` come alias di `default`. Ignorato per i [subagent dei plugin](#choose-the-subagent-scope) |321| `permissionMode` | No | [Modalità di permesso](#permission-modes): `default`, `acceptEdits`, `auto`, `dontAsk`, `bypassPermissions`, `plan`, o `manual` come alias di `default`. Ignorato per i [subagent dei plugin](#choose-the-subagent-scope) |

319| `maxTurns` | No | Numero massimo di turni agentici prima che il subagent si fermi. Quando il subagent raggiunge il limite, Claude Code restituisce il suo output contrassegnato come parziale, e Claude può [riprenderlo](#resume-subagents) per continuare. Il contrassegno parziale richiede Claude Code v2.1.246 o successivo |322| `maxTurns` | No | Numero massimo di turni agentici prima che il subagent si fermi. Quando il subagent raggiunge il limite, Claude Code restituisce il suo output contrassegnato come parziale, e Claude può [riprenderlo](#resume-subagents) per continuare. Il contrassegno parziale richiede Claude Code v2.1.246 o successivo |

323| `autoCompactWindow` | No | Riduce la [finestra di compattazione automatica](#subagent-auto-compact-window) per questo subagent a un numero di token compreso tra `100000` e `1000000`. Richiede Claude Code v2.1.296 o successivo |

320| `skills` | No | [Skills](/docs/it/skills) da precaricare nel contesto del subagent all'avvio. Il contenuto completo della skill viene iniettato, non solo la descrizione. I subagent possono ancora invocare skills di progetto, utente e plugin non elencate tramite lo strumento Skill |324| `skills` | No | [Skills](/docs/it/skills) da precaricare nel contesto del subagent all'avvio. Il contenuto completo della skill viene iniettato, non solo la descrizione. I subagent possono ancora invocare skills di progetto, utente e plugin non elencate tramite lo strumento Skill |

321| `mcpServers` | No | [MCP servers](/docs/it/mcp) disponibili per questo subagent. Ogni voce è un nome di server che fa riferimento a un server già configurato (ad esempio, `"slack"`) o una definizione inline con il nome del server come chiave e una [configurazione MCP server](/docs/it/mcp#installing-mcp-servers) completa come valore. Ignorato per [subagent plugin](#choose-the-subagent-scope) |325| `mcpServers` | No | [MCP servers](/docs/it/mcp) disponibili per questo subagent. Ogni voce è un nome di server che fa riferimento a un server già configurato (ad esempio, `"slack"`) o una definizione inline con il nome del server come chiave e una [configurazione MCP server](/docs/it/mcp#installing-mcp-servers) completa come valore. Ignorato per [subagent plugin](#choose-the-subagent-scope) |

322| `hooks` | No | [Lifecycle hooks](#define-hooks-for-subagents) limitati a questo subagent. Ignorato per [subagent plugin](#choose-the-subagent-scope) |326| `hooks` | No | [Lifecycle hooks](#define-hooks-for-subagents) limitati a questo subagent. Ignorato per [subagent plugin](#choose-the-subagent-scope) |

323| `memory` | No | [Ambito di memoria persistente](#enable-persistent-memory): `user`, `project`, o `local`. Abilita l'apprendimento tra sessioni |327| `memory` | No | [Ambito di memoria persistente](#enable-persistent-memory): `user`, `project`, o `local`. Abilita l'apprendimento tra sessioni |

324| `background` | No | Imposta su `true` per mantenere questo subagent in background anche quando Claude chiede di eseguirlo in foreground. Dove [fork mode](#turn-fork-mode-on-or-off) è attivo, Claude Code già esegue i subagent che Claude genera [in background](#run-subagents-in-foreground-or-background) |328| `background` | No | Imposta su `true` per mantenere questo subagent in background anche quando Claude chiede di eseguirlo in foreground. Dove [fork mode](#turn-fork-mode-on-or-off) è attivo, Claude Code già esegue i subagent che Claude genera [in background](#run-subagents-in-foreground-or-background) |

325| `omitClaudeMd` | No | Imposta su `true` per avviare questo subagent senza i file CLAUDE.md utente, progetto e locale; i [file di politica gestita](/docs/it/memory#how-claude-md-files-load) si caricano comunque, tranne per i [subagent gestiti](#choose-the-subagent-scope). Lo usi per i subagent che prendono tutto ciò di cui hanno bisogno dal [prompt di delega](#what-loads-at-startup). Ignorato quando l'agente viene eseguito come agente della sessione principale tramite `--agent` o l'impostazione `agent`. Richiede Claude Code v2.1.271 o successivo |329| `omitClaudeMd` | No | Imposta su `true` per avviare questo subagent senza i file CLAUDE.md utente, di progetto e locali nel suo [contesto iniziale](#what-loads-at-startup); i [file di policy gestiti](/docs/it/memory#how-claude-md-files-load) vengono comunque caricati, tranne per i [subagent gestiti](#choose-the-subagent-scope). Usalo per i subagent che ricevono tutto ciò di cui hanno bisogno dal prompt di delega. Ignorato quando l'agente viene eseguito come agente della sessione principale tramite `--agent` o l'impostazione `agent`. Richiede Claude Code v2.1.271 o successivo |

326| `effort` | No | Livello di sforzo quando questo subagent è attivo. Sovrascrive il livello di sforzo della sessione, ma non la variabile d'ambiente [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/it/env-vars#variables). Opzioni: `low`, `medium`, `high`, `xhigh`, `max`; i livelli disponibili dipendono dal modello. Consulta [Scegliere un livello di sforzo](#choose-an-effort-level) |330| `effort` | No | Livello di sforzo quando questo subagent è attivo. Sovrascrive il livello di sforzo della sessione, ma non la variabile d'ambiente [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/it/env-vars#variables). Opzioni: `low`, `medium`, `high`, `xhigh`, `max`; i livelli disponibili dipendono dal modello. Consulta [Scegliere un livello di sforzo](#choose-an-effort-level) |

327| `isolation` | No | Imposta su `worktree` per eseguire il subagent in un [git worktree](/docs/it/worktrees) temporaneo, dandogli una copia isolata del repository diramata per impostazione predefinita dal suo [ramo predefinito](/docs/it/worktrees#choose-the-base-branch) piuttosto che dall'`HEAD` della sessione principale. Il worktree viene automaticamente pulito se il subagent non apporta modifiche |331| `isolation` | No | Imposta su `worktree` per eseguire il subagent in un [git worktree](/docs/it/worktrees) temporaneo, dandogli una copia isolata del repository diramata per impostazione predefinita dal suo [ramo predefinito](/docs/it/worktrees#choose-the-base-branch) piuttosto che dall'`HEAD` della sessione principale. Il worktree viene automaticamente pulito se il subagent non apporta modifiche |

328| `color` | No | Colore di visualizzazione per il subagent nell'elenco attività e nella trascrizione. Accetta `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, o `cyan` |332| `color` | No | Colore di visualizzazione per il subagent nell'elenco attività e nella trascrizione. Accetta `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, o `cyan` |


914claude --agent code-reviewer918claude --agent code-reviewer

915```919```

916 920 

917A meno che il [prompt dell'agente non sia vuoto](#choose-the-subagent-scope), il prompt di sistema di un subagent personalizzato sostituisce completamente il prompt di sistema predefinito di Claude Code, nello stesso modo di [`--system-prompt`](/docs/it/cli-reference). I file `CLAUDE.md` e la memoria del progetto continuano a essere caricati attraverso il normale flusso di messaggi, anche quando la definizione dell'agente imposta [`omitClaudeMd`](#supported-frontmatter-fields).921A meno che il [prompt dell'agente non sia vuoto](#choose-the-subagent-scope), il prompt di sistema di un subagent personalizzato sostituisce completamente il prompt di sistema predefinito di Claude Code, nello stesso modo di [`--system-prompt`](/docs/it/cli-reference). I file `CLAUDE.md` e la memoria del progetto continuano a essere caricati attraverso il normale flusso di messaggi, anche quando la definizione dell'agente imposta [`omitClaudeMd`](#supported-frontmatter-fields). Se esegui la sessione con `-p` come un agente personalizzato che ha un proprio prompt, la sessione si avvia anche senza lo [snapshot dello stato Git](/docs/it/settings-reference#includegitinstructions).

918 922 

919Il nome dell'agente compare come `@<name>` nell'intestazione di avvio, così puoi verificare che sia attivo.923Il nome dell'agente compare come `@<name>` nell'intestazione di avvio, così puoi verificare che sia attivo.

920 924 


1150* **File CLAUDE.md**: ogni livello della [gerarchia CLAUDE.md](/docs/it/memory#how-claude-md-files-load) caricato dalla conversazione principale, inclusi `~/.claude/CLAUDE.md`, le regole del progetto, `CLAUDE.local.md`, i file di policy gestiti ed eventuali [file `AGENTS.md`](/docs/it/memory#agents-md) caricati come istruzioni del progetto. Gli agenti integrati Explore e Plan li saltano. Un subagent la cui definizione imposta [`omitClaudeMd`](#supported-frontmatter-fields) carica solo i file di policy gestiti, oppure nessuno quando la definizione proviene dalle [impostazioni gestite](#choose-the-subagent-scope).1154* **File CLAUDE.md**: ogni livello della [gerarchia CLAUDE.md](/docs/it/memory#how-claude-md-files-load) caricato dalla conversazione principale, inclusi `~/.claude/CLAUDE.md`, le regole del progetto, `CLAUDE.local.md`, i file di policy gestiti ed eventuali [file `AGENTS.md`](/docs/it/memory#agents-md) caricati come istruzioni del progetto. Gli agenti integrati Explore e Plan li saltano. Un subagent la cui definizione imposta [`omitClaudeMd`](#supported-frontmatter-fields) carica solo i file di policy gestiti, oppure nessuno quando la definizione proviene dalle [impostazioni gestite](#choose-the-subagent-scope).

1151* **Stato Git**: uno snapshot che Claude Code legge dal tuo repository all'avvio del subagent. Per un subagent nel [proprio worktree](/docs/it/worktrees#isolate-subagents-with-worktrees) di quel repository, lo snapshot mostra il branch, lo stato e i commit recenti del worktree. Assente al di fuori di un repository Git o quando lo snapshot è disattivato; consulta [`includeGitInstructions`](/docs/it/settings-reference#includegitinstructions). Explore e Plan lo saltano in ogni caso.1155* **Stato Git**: uno snapshot che Claude Code legge dal tuo repository all'avvio del subagent. Per un subagent nel [proprio worktree](/docs/it/worktrees#isolate-subagents-with-worktrees) di quel repository, lo snapshot mostra il branch, lo stato e i commit recenti del worktree. Assente al di fuori di un repository Git o quando lo snapshot è disattivato; consulta [`includeGitInstructions`](/docs/it/settings-reference#includegitinstructions). Explore e Plan lo saltano in ogni caso.

1152* **Skill precaricate**: il contenuto completo di ogni skill indicata nel [campo `skills`](#preload-skills-into-subagents) dell'agente. Gli agenti integrati non precaricano skill.1156* **Skill precaricate**: il contenuto completo di ogni skill indicata nel [campo `skills`](#preload-skills-into-subagents) dell'agente. Gli agenti integrati non precaricano skill.

1153* **Elenco degli agenti fratelli**: un [promemoria di sistema](/docs/it/glossary#system-reminder) che elenca `main` e ogni altro agente con nome nella sessione, ciascuno un valore `to` valido per [`SendMessage`](#resume-subagents). Richiede Claude Code v2.1.206 o successivo. L'elenco compare solo quando gli strumenti del subagent includono `SendMessage` e almeno un altro agente ha un nome, sia che Claude gliel'abbia dato al momento dell'avvio, sia che venga eseguito come membro di un [team di agenti](/docs/it/agent-teams). È uno snapshot acquisito all'avvio del subagent, quindi gli agenti che ricevono un nome in seguito non compaiono.1157* **Elenco degli agenti fratelli**: un [promemoria di sistema](/docs/it/glossary#system-reminder) che elenca `main` e ogni altro agente con nome nella sessione, ciascuno un valore `to` valido per [`SendMessage`](#resume-subagents). L'elenco compare solo quando gli strumenti del subagent includono `SendMessage` e almeno un altro agente ha un nome, sia che Claude gliel'abbia dato al momento dell'avvio, sia che venga eseguito come membro di un [team di agenti](/docs/it/agent-teams). È uno snapshot acquisito all'avvio del subagent, quindi gli agenti che ricevono un nome in seguito non compaiono.

1154 1158 

1155Per avviare uno dei tuoi subagent senza i file CLAUDE.md utente, di progetto e locali, imposta [`omitClaudeMd: true`](#supported-frontmatter-fields) nel suo frontmatter o nel JSON di `--agents`.1159Per avviare uno dei tuoi subagent senza i file CLAUDE.md utente, di progetto e locali, imposta [`omitClaudeMd: true`](#supported-frontmatter-fields) nel suo frontmatter o nel JSON di `--agents`. Per Explore, Plan e i subagent con `omitClaudeMd`, il `CLAUDE.md` di una sottodirectory e le [regole con ambito di percorso](/docs/it/memory#path-specific-rules) corrispondenti vengono comunque [caricati](/docs/it/memory#how-claude-md-files-load) quando il subagent lavora con file in quella posizione.

1156 1160 

1157La conversazione principale dispone comunque del tuo CLAUDE.md completo quando legge i risultati di questi subagent, quindi la maggior parte delle regole non ha bisogno di arrivare al subagent stesso. Se una regola deve arrivarci, come "ignora la directory `vendor/`", ripetila nel prompt che dai a Claude quando delega.1161La conversazione principale dispone comunque del tuo CLAUDE.md completo quando legge i risultati di questi subagent, quindi la maggior parte delle regole non ha bisogno di arrivare al subagent stesso. Se una regola deve arrivarci, come "ignora la directory `vendor/`", ripetila nel prompt che dai a Claude quando delega.

1158 1162 


1196 1200 

1197Finché [la riga di quel subagent è ancora nel pannello dei subagent](#run-subagents-in-foreground-or-background), scrivi nella sua trascrizione per riprenderlo tu stesso. Dopodiché, un messaggio di Claude può di nuovo riprenderlo automaticamente.1201Finché [la riga di quel subagent è ancora nel pannello dei subagent](#run-subagents-in-foreground-or-background), scrivi nella sua trascrizione per riprenderlo tu stesso. Dopodiché, un messaggio di Claude può di nuovo riprenderlo automaticamente.

1198 1202 

1199La ripresa avvia una nuova esecuzione dell'agente con lo stesso ID, quindi un subagent che era già fallito o completato risulta di nuovo in esecuzione nell'elenco delle attività e negli eventi delle attività dell'Agent SDK. Prima della v2.1.205, continuava a mostrare il precedente stato di fallito o completato mentre l'esecuzione ripresa era in corso.1203La ripresa avvia una nuova esecuzione dell'agente con lo stesso ID, quindi un subagent che era già fallito o completato risulta di nuovo in esecuzione nell'elenco delle attività e negli eventi delle attività dell'Agent SDK.

1200 1204 

1201`SendMessage` verifica che un nome si riferisca ancora allo stesso agente raggiunto in precedenza nella conversazione. Se un agente più recente ha preso quel nome, come un agente in background riavviato che lo ha riutilizzato, Claude Code rifiuta l'invio invece di consegnarlo all'agente sbagliato, e l'errore indica quale agente raggiunge ora quel nome, così Claude può cambiare destinatario. Per raggiungere l'agente precedente mentre è ancora in esecuzione, Claude lo indirizza tramite l'ID agente ricevuto quando lo ha avviato. Il controllo è limitato alla conversazione corrente e si azzera con `/clear`.1205`SendMessage` verifica che un nome si riferisca ancora allo stesso agente raggiunto in precedenza nella conversazione. Se un agente più recente ha preso quel nome, come un agente in background riavviato che lo ha riutilizzato, Claude Code rifiuta l'invio invece di consegnarlo all'agente sbagliato, e l'errore indica quale agente raggiunge ora quel nome, così Claude può cambiare destinatario. Per raggiungere l'agente precedente mentre è ancora in esecuzione, Claude lo indirizza tramite l'ID agente ricevuto quando lo ha avviato. Il controllo è limitato alla conversazione corrente e si azzera con `/clear`.

1202 1206 


1214 Compattazione automatica1218 Compattazione automatica

1215</h4>1219</h4>

1216 1220 

1217I subagent supportano la compattazione automatica con la stessa logica della conversazione principale. La compattazione si attiva alle stesse condizioni, e `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` si applica anche ai subagent. Consulta le [variabili d'ambiente](/docs/it/env-vars) per sapere quando l'override ha effetto.1221I subagent supportano la compattazione automatica. La compattazione si attiva man mano che la finestra di contesto del subagent stesso si riempie, e `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` si applica anche ai subagent. Consulta le [variabili d'ambiente](/docs/it/env-vars) per sapere quando l'override ha effetto.

1218 1222 

1219Gli eventi di compattazione vengono registrati nei file di trascrizione dei subagent:1223Gli eventi di compattazione vengono registrati nei file di trascrizione dei subagent:

1220 1224 


1231 1235 

1232Il valore `preTokens` indica quanti token erano utilizzati prima della compattazione.1236Il valore `preTokens` indica quanti token erano utilizzati prima della compattazione.

1233 1237 

1238<a id="subagent-auto-compact-window" />

1239 

1240<h5 id="set-the-auto-compact-window-for-one-subagent">

1241 Impostare la finestra di compattazione automatica per un singolo subagent

1242</h5>

1243 

1244Per far sì che un subagent si compatti prima di quanto farebbe altrimenti, imposta `autoCompactWindow` nel suo [frontmatter](#supported-frontmatter-fields) su un numero di token compreso tra `100000` e `1000000`. Se imposti [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/it/env-vars#variables) su un intero positivo, il subagent usa invece la finestra di quella variabile e il campo non ha effetto. Richiede Claude Code v2.1.296 o successivo.

1245 

1246Questo frontmatter imposta `autoCompactWindow` su 200.000 token per un subagent che legge file di log lunghi:

1247 

1248```yaml theme={null}

1249---

1250name: log-reader

1251description: Reads long log files and reports the errors it finds

1252autoCompactWindow: 200000

1253---

1254```

1255 

1256Scrivi il valore come un semplice intero, ad esempio `200000`, perché nel frontmatter Claude Code legge `200k` come 200, che è al di fuori dell'intervallo consentito. Il subagent viene comunque caricato e compattato come se il campo fosse assente. Per verificare se Claude Code ha ignorato il tuo valore, esegui `claude --debug` nella tua shell e cerca `invalid autoCompactWindow` nel [log di debug](#supported-frontmatter-fields).

1257 

1258Se il valore rientra nell'intervallo e continui a non vedere alcun cambiamento, verifica queste cause:

1259 

1260* **Il valore non è inferiore alla [finestra di compattazione automatica](/docs/it/model-config#context-window-and-auto-compaction) che il subagent erediterebbe altrimenti**: per compattare prima, imposta un valore inferiore a quella finestra.

1261* **Esegui l'intera sessione come questo subagent con `--agent` o con l'impostazione `agent`**: in quel caso il campo non ha effetto. Per impostare la finestra della sessione, consulta [Impostare la finestra di compattazione automatica](/docs/it/model-config#set-the-auto-compact-window).

1262 

1234<h2 id="fork-the-current-conversation">1263<h2 id="fork-the-current-conversation">

1235 Esegua il fork della conversazione corrente1264 Esegua il fork della conversazione corrente

1236</h2>1265</h2>

Details

44| `ReadMcpResourceTool` | Legge una risorsa MCP specifica per URI | No |44| `ReadMcpResourceTool` | Legge una risorsa MCP specifica per URI | No |

45| `RemoteTrigger` | Crea, aggiorna, esegue ed elenca [Routine](/docs/it/routines) su claude.ai. Supporta il comando `/schedule`. Il [riferimento di input `RemoteTrigger`](/docs/it/agent-sdk/typescript#remotetrigger) documenta ogni azione e le politiche organizzative che rimuovono lo strumento. Le Routine vivono su claude.ai e richiedono un piano Pro, Max, Team o Enterprise, quindi questo strumento non è accessibile da Amazon Bedrock, Claude Platform su AWS, Google Cloud's Agent Platform o Microsoft Foundry | No |45| `RemoteTrigger` | Crea, aggiorna, esegue ed elenca [Routine](/docs/it/routines) su claude.ai. Supporta il comando `/schedule`. Il [riferimento di input `RemoteTrigger`](/docs/it/agent-sdk/typescript#remotetrigger) documenta ogni azione e le politiche organizzative che rimuovono lo strumento. Le Routine vivono su claude.ai e richiedono un piano Pro, Max, Team o Enterprise, quindi questo strumento non è accessibile da Amazon Bedrock, Claude Platform su AWS, Google Cloud's Agent Platform o Microsoft Foundry | No |

46| `ReportFindings` | Segnala i risultati della code review come un elenco strutturato, con un file, un riepilogo e uno scenario di errore per ogni risultato, in modo che Claude Code possa renderizzarli invece di stamparli come testo. Claude lo chiama quando le istruzioni di code review attive glielo indicano. Un risultato può anche includere uno slug `category` opzionale, come `correctness` o `test-coverage`, mostrato accanto alla posizione del file nell'elenco renderizzato | No |46| `ReportFindings` | Segnala i risultati della code review come un elenco strutturato, con un file, un riepilogo e uno scenario di errore per ogni risultato, in modo che Claude Code possa renderizzarli invece di stamparli come testo. Claude lo chiama quando le istruzioni di code review attive glielo indicano. Un risultato può anche includere uno slug `category` opzionale, come `correctness` o `test-coverage`, mostrato accanto alla posizione del file nell'elenco renderizzato | No |

47| `ScheduleWakeup` | Riprogramma l'iterazione successiva di un [`/loop` auto-paced](/docs/it/scheduled-tasks#let-claude-choose-the-interval). Claude lo chiama alla fine di ogni iterazione per scegliere quando viene eseguita la successiva, tra un minuto e un'ora; non lo chiami direttamente. Per terminare il loop invece, Claude lo chiama con `stop: true`, che annulla il wakeup in sospeso. Il campo `stop` richiede Claude Code v2.1.202 o successivo. Il wakeup in sospeso appare in `session_crons` nell'[input Stop hook](/docs/it/hooks#stop-input) | No |47| `ScheduleWakeup` | Riprogramma l'iterazione successiva di un [`/loop` auto-paced](/docs/it/scheduled-tasks#let-claude-choose-the-interval). Claude lo chiama alla fine di ogni iterazione per scegliere quando viene eseguita la successiva, tra un minuto e un'ora; non lo chiami direttamente. Per terminare invece il loop, Claude lo chiama con `stop: true`, che annulla il wakeup in sospeso. Il wakeup in sospeso appare in `session_crons` nell'[input Stop hook](/docs/it/hooks#stop-input) | No |

48| `SendFeedback` | Redige un rapporto di feedback su Claude Code, coprendo un problema di prodotto o il comportamento di Claude stesso nella sessione, e lo mette in coda sulla tua macchina per te da rivedere. Claude Code non invia nulla finché non scegli di inviare la bozza. Vedi [Comportamento dello strumento SendFeedback](#sendfeedback-tool-behavior). Richiede Claude Code v2.1.238 o successivo | No |48| `SendFeedback` | Redige un rapporto di feedback su Claude Code, coprendo un problema di prodotto o il comportamento di Claude stesso nella sessione, e lo mette in coda sulla tua macchina per te da rivedere. Claude Code non invia nulla finché non scegli di inviare la bozza. Vedi [Comportamento dello strumento SendFeedback](#sendfeedback-tool-behavior). Richiede Claude Code v2.1.238 o successivo | No |

49| `SendMessage` | Invia un messaggio a un altro agente: un compagno di squadra del [team di agenti](/docs/it/agent-teams), un [subagent che riprende](/docs/it/sub-agents#resume-subagents) per ID agente o nome, o una delle tue altre sessioni di Claude Code, su questa macchina o oltre. La messaggistica di altre sessioni richiede Claude Code v2.1.224 o successivo. La [messaggistica tra sessioni](/docs/it/cross-session-messaging) copre quali sessioni Claude può raggiungere, [come appare un messaggio quando arriva](/docs/it/cross-session-messaging#what-a-message-looks-like) e [come Claude riceve un avviso quando un'altra sessione diventa inattiva](/docs/it/cross-session-messaging#get-a-notice-when-another-session-goes-idle). Claude può includere un input `summary` opzionale, tipicamente 5-10 parole, che Claude Code mostra come anteprima su una riga. Quando Claude lo omette su un [messaggio di testo semplice](/docs/it/cross-session-messaging#limitations), Claude Code utilizza la prima riga del messaggio come riepilogo. Claude Code tronca un riepilogo più lungo di 200 caratteri con un'ellissi | No |49| `SendMessage` | Invia un messaggio a un altro agente: un compagno di squadra del [team di agenti](/docs/it/agent-teams), un [subagent che riprende](/docs/it/sub-agents#resume-subagents) per ID agente o nome, o una delle tue altre sessioni di Claude Code, su questa macchina o oltre. La messaggistica di altre sessioni richiede Claude Code v2.1.224 o successivo. La [messaggistica tra sessioni](/docs/it/cross-session-messaging) copre quali sessioni Claude può raggiungere, [come appare un messaggio quando arriva](/docs/it/cross-session-messaging#what-a-message-looks-like) e [come Claude riceve un avviso quando un'altra sessione diventa inattiva](/docs/it/cross-session-messaging#get-a-notice-when-another-session-goes-idle). Claude può includere un input `summary` opzionale, tipicamente 5-10 parole, che Claude Code mostra come anteprima su una riga. Quando Claude lo omette su un [messaggio di testo semplice](/docs/it/cross-session-messaging#limitations), Claude Code utilizza la prima riga del messaggio come riepilogo. Claude Code tronca un riepilogo più lungo di 200 caratteri con un'ellissi | No |

50| `SendUserFile` | Ti invia file dalla sessione con una didascalia opzionale, in modo che un rapporto generato, un diagramma, uno screenshot o un artefatto di build raggiunga il tuo dispositivo invece di essere solo menzionato nella trascrizione. L'input `display` opzionale controlla la presentazione: `render` apre il file inline nel client, `attach` mostra solo una scheda di download e, quando non è impostato, il client decide in base al tipo di file. Disponibile quando un client [Remote Control](/docs/it/remote-control) è connesso o in una [sessione cloud](/docs/it/claude-code-on-the-web). La consegna avviene tramite l'infrastruttura ospitata da Anthropic, quindi lo strumento non è disponibile su Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry | No |50| `SendUserFile` | Ti invia file dalla sessione con una didascalia opzionale, in modo che un rapporto generato, un diagramma, uno screenshot o un artefatto di build raggiunga il tuo dispositivo invece di essere solo menzionato nella trascrizione. L'input `display` opzionale controlla la presentazione: `render` apre il file inline nel client, `attach` mostra solo una scheda di download e, quando non è impostato, il client decide in base al tipo di file. Disponibile quando un client [Remote Control](/docs/it/remote-control) è connesso o in una [sessione cloud](/docs/it/claude-code-on-the-web). La consegna avviene tramite l'infrastruttura ospitata da Anthropic, quindi lo strumento non è disponibile su Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry | No |


54| `TaskCreate` | Crea una nuova attività nell'elenco delle attività. Fornito per impostazione predefinita solo sui modelli elencati in [Disponibilità dello strumento Task](#task-tool-availability) e su altri modelli quando accetti | No |54| `TaskCreate` | Crea una nuova attività nell'elenco delle attività. Fornito per impostazione predefinita solo sui modelli elencati in [Disponibilità dello strumento Task](#task-tool-availability) e su altri modelli quando accetti | No |

55| `TaskGet` | Recupera i dettagli completi per un'attività specifica. Fornito per impostazione predefinita solo sui modelli elencati in [Disponibilità dello strumento Task](#task-tool-availability) e su altri modelli quando accetti | No |55| `TaskGet` | Recupera i dettagli completi per un'attività specifica. Fornito per impostazione predefinita solo sui modelli elencati in [Disponibilità dello strumento Task](#task-tool-availability) e su altri modelli quando accetti | No |

56| `TaskList` | Elenca tutte le attività con il loro stato attuale. Fornito per impostazione predefinita solo sui modelli elencati in [Disponibilità dello strumento Task](#task-tool-availability) e su altri modelli quando accetti | No |56| `TaskList` | Elenca tutte le attività con il loro stato attuale. Fornito per impostazione predefinita solo sui modelli elencati in [Disponibilità dello strumento Task](#task-tool-availability) e su altri modelli quando accetti | No |

57| `TaskOutput` | Recupera l'output da un'attività in background. Deprecato a favore di `Read` sul percorso del file di output dell'attività. Quando nessuna attività corrisponde all'ID, l'errore elenca gli agenti di background in esecuzione per ID e descrizione. Prima della v2.1.203, l'errore nominava solo l'ID mancante | No |57| `TaskOutput` | Rimosso nella v2.1.277. In precedenza recuperava l'output da un'attività in background; Claude ora legge invece il [file di output](/docs/it/interactive-mode#how-backgrounding-works) di un'attività in background con `Read` | No |

58| `TaskStop` | Arresta un'attività in background in esecuzione per ID. Accetta anche un compagno di squadra del [team di agenti](/docs/it/agent-teams) o un agente in background con nome, per ID agente o nome. Quando nessuna attività corrisponde all'ID, l'errore elenca gli agenti in background in esecuzione per ID e descrizione, inclusi gli agenti generati da un altro agente. Prima della v2.1.203, l'errore elencava i compagni di squadra in esecuzione e gli agenti con nome ma non gli agenti in background generati da un altro agente, quindi questi non potevano essere identificati o arrestati dalla conversazione principale | No |58| `TaskStop` | Arresta un'attività in background in esecuzione per ID. Accetta anche un [compagno di squadra del team di agenti](/docs/it/agent-teams) o un agente in background con nome, per ID agente o nome. Quando nessuna attività corrisponde all'ID, l'errore elenca gli agenti in background in esecuzione per ID e descrizione, inclusi gli agenti generati da un altro agente | No |

59| `TaskUpdate` | Aggiorna lo stato dell'attività, le dipendenze, i dettagli o elimina le attività. Fornito per impostazione predefinita solo sui modelli elencati in [Disponibilità dello strumento Task](#task-tool-availability) e su altri modelli quando accetti | No |59| `TaskUpdate` | Aggiorna lo stato dell'attività, le dipendenze, i dettagli o elimina le attività. Fornito per impostazione predefinita solo sui modelli elencati in [Disponibilità dello strumento Task](#task-tool-availability) e su altri modelli quando accetti | No |

60| `TodoWrite` | Gestisce l'elenco di controllo delle attività della sessione. Disabilitato per impostazione predefinita a favore di `TaskCreate`, `TaskGet`, `TaskList` e `TaskUpdate`. Imposta `CLAUDE_CODE_ENABLE_TASKS=0` per riabilitarlo nelle [sessioni che hanno gli strumenti di tracciamento delle attività](#task-tool-availability) | No |60| `TodoWrite` | Gestisce l'elenco di controllo delle attività della sessione. Disabilitato per impostazione predefinita a favore di `TaskCreate`, `TaskGet`, `TaskList` e `TaskUpdate`. Imposta `CLAUDE_CODE_ENABLE_TASKS=0` per riabilitarlo nelle [sessioni che hanno gli strumenti di tracciamento delle attività](#task-tool-availability) | No |

61| `ToolSearch` | Cerca e carica strumenti differiti quando la [ricerca di strumenti](/docs/it/mcp#scale-with-mcp-tool-search) è abilitata | No |61| `ToolSearch` | Cerca e carica strumenti differiti quando la [ricerca di strumenti](/docs/it/mcp#scale-with-mcp-tool-search) è abilitata | No |

ultrareview.md +2 −2

Details

149 Traccia una revisione in esecuzione149 Traccia una revisione in esecuzione

150</h2>150</h2>

151 151 

152Una revisione in genere richiede da 5 a 10 minuti. La revisione viene eseguita come attività in background, quindi puoi continuare a lavorare nella tua sessione o avviare altri comandi. Se hai scelto di [pubblicare i risultati nella pull request](#post-findings-to-the-pull-request), mantieni la sessione aperta fino al termine della revisione; se la sessione termina prima, Claude Code non pubblica nulla.152Una revisione in genere richiede da 15 a 25 minuti. La revisione viene eseguita come attività in background, quindi puoi continuare a lavorare nella tua sessione o avviare altri comandi. Se hai scelto di [pubblicare i risultati nella pull request](#post-findings-to-the-pull-request), mantieni la sessione aperta fino al termine della revisione; se la sessione termina prima, Claude Code non pubblica nulla.

153 153 

154Utilizzate `/tasks` per visualizzare le revisioni in esecuzione e completate, aprire la vista dettagli per una revisione o interrompere una revisione in corso. Se interrompete una revisione, Claude Code archivia la sessione cloud e non restituisce risultati parziali.154Utilizzate `/tasks` per visualizzare le revisioni in esecuzione e completate, aprire la vista dettagli per una revisione o interrompere una revisione in corso. Se interrompete una revisione, Claude Code archivia la sessione cloud e non restituisce risultati parziali.

155 155 


216| Destinazione | il vostro diff di lavoro, una pull request, un branch o un percorso | il vostro diff di lavoro o una pull request |216| Destinazione | il vostro diff di lavoro, una pull request, un branch o un percorso | il vostro diff di lavoro o una pull request |

217| Viene eseguito | localmente nella vostra sessione | in una sandbox cloud |217| Viene eseguito | localmente nella vostra sessione | in una sandbox cloud |

218| Profondità | scala con l'argomento effort | flotta multi-agente con verifica indipendente |218| Profondità | scala con l'argomento effort | flotta multi-agente con verifica indipendente |

219| Durata | da secondi a pochi minuti | circa 5-10 minuti |219| Durata | da secondi a pochi minuti | circa 15-25 minuti |

220| Costo | conta verso l'utilizzo normale | run gratuiti, quindi circa $5 a $25 per revisione come crediti di utilizzo |220| Costo | conta verso l'utilizzo normale | run gratuiti, quindi circa $5 a $25 per revisione come crediti di utilizzo |

221| Migliore per | feedback rapido durante l'iterazione | fiducia pre-merge su cambiamenti sostanziali |221| Migliore per | feedback rapido durante l'iterazione | fiducia pre-merge su cambiamenti sostanziali |

222 222 

Details

146 146 

147<Steps>147<Steps>

148 <Step title="Seleziona un repository e un branch">148 <Step title="Seleziona un repository e un branch">

149 Da [claude.ai/code](https://claude.ai/code) o dalla scheda Code nell'app mobile Claude, fai clic sul selettore di repository sotto la casella di input e scegli un repository su cui Claude lavorerà. Ogni repository mostra un selettore di branch. Cambialo per avviare Claude da un branch di funzionalità invece di quello predefinito. Puoi aggiungere più repository per lavorare su di essi in una sessione.149 Da [claude.ai/code](https://claude.ai/code) o dalla scheda Code nell'app mobile Claude, fai clic sul selettore di repository sotto la casella di input e scegli un repository su cui Claude lavorerà. Puoi aggiungere più repository per lavorare su di essi in una sessione.

150 

151 Su claude.ai/code, per avviare Claude da un branch di funzionalità invece di quello predefinito, cambia il branch nel controllo che segue il selettore di repository.

150 </Step>152 </Step>

151 153 

152 <Step title="Scegli una modalità di permesso">154 <Step title="Scegli una modalità di permesso">

workflows.md +4 −4

Details

99| :- | :- |99| :- | :- |

100| `↑` / `↓` | Selezionare una fase o un agente |100| `↑` / `↓` | Selezionare una fase o un agente |

101| `Invio` o `→` | Approfondire la fase selezionata, quindi in un agente per leggere il suo prompt, le recenti chiamate di strumenti e il risultato. Nel dettaglio, `Invio` espande o comprime |101| `Invio` o `→` | Approfondire la fase selezionata, quindi in un agente per leggere il suo prompt, le recenti chiamate di strumenti e il risultato. Nel dettaglio, `Invio` espande o comprime |

102| `Esc` o `←` | Tornare indietro di un livello. Nelle versioni da v2.1.203 a v2.1.205, `←` non è tornato indietro da una fase o un agente; usa `Esc` su quelle versioni |102| `Esc` o `←` | Tornare indietro di un livello |

103| `j` / `k` | Scorrere all'interno del dettaglio dell'agente quando trabocca |103| `j` / `k` | Scorrere all'interno del dettaglio dell'agente quando trabocca |

104| `f` | Filtrare l'elenco degli agenti nella fase selezionata per stato. Premi di nuovo per ciclare |104| `f` | Filtrare l'elenco degli agenti nella fase selezionata per stato. Premi di nuovo per ciclare |

105| `p` | Mettere in pausa o riprendere l'esecuzione |105| `p` | Mettere in pausa o riprendere l'esecuzione |


167/effort ultracode167/effort ultracode

168```168```

169 169 

170Per avviare una sessione con ultracode già attivo, avvia con `claude --effort ultracode`, che imposta anche il livello di sforzo su `xhigh`. Richiede Claude Code v2.1.203 o successivo.170Per avviare una sessione con ultracode già attivo, avvia con `claude --effort ultracode`, che imposta anche il livello di sforzo su `xhigh`.

171 171 

172Per attivarlo dal cursore `/effort`, premi `Tab` per attivare/disattivare il toggle **Ultracode**, quindi `Enter` per applicarlo. [Regola il livello di sforzo](/docs/it/model-config#adjust-effort-level) elenca i percorsi che attivano ultracode.172Per attivarlo dal cursore `/effort`, premi `Tab` per attivare/disattivare il toggle **Ultracode**, quindi `Enter` per applicarlo. [Regola il livello di sforzo](/docs/it/model-config#adjust-effort-level) elenca i percorsi che attivano ultracode.

173 173 


505 505 

506Un workflow genera molti agenti, quindi una singola esecuzione può utilizzare significativamente più token rispetto al lavoro attraverso lo stesso compito in conversazione. Le esecuzioni contano verso l'utilizzo del tuo piano e i limiti di velocità.506Un workflow genera molti agenti, quindi una singola esecuzione può utilizzare significativamente più token rispetto al lavoro attraverso lo stesso compito in conversazione. Le esecuzioni contano verso l'utilizzo del tuo piano e i limiti di velocità.

507 507 

508Per valutare la spesa prima di impegnarsi in un compito di grandi dimensioni, esegui il workflow su una piccola porzione per prima: una directory invece dell'intero repository, o una domanda ristretta invece di una ampia. La vista `/workflows` mostra l'utilizzo dei token di ogni agente mentre l'esecuzione progredisce, e puoi interrompere l'esecuzione lì in qualsiasi momento, solitamente senza perdere il lavoro completato. [Riprendere dopo una pausa](#resume-after-a-pause) copre quello che un'esecuzione interrotta mantiene. I [limiti degli agenti](#behavior-and-limits) del runtime limitano quanti agenti una singola esecuzione può generare, il che limita il costo di uno script fuori controllo. Per mantenere le esecuzioni a meno agenti, scegli la linea guida di dimensione `small` [](#set-a-size-guideline).508Per valutare la spesa prima di impegnarsi in un compito di grandi dimensioni, esegui il workflow su una piccola porzione per prima: una directory invece dell'intero repository, o una domanda ristretta invece di una ampia. La vista `/workflows` mostra l'utilizzo dei token di ogni agente mentre l'esecuzione progredisce, e puoi interrompere l'esecuzione lì in qualsiasi momento, solitamente senza perdere il lavoro completato. [Riprendere dopo una pausa](#resume-after-a-pause) copre quello che un'esecuzione interrotta mantiene. I [limiti degli agenti](#behavior-and-limits) del runtime limitano quanti agenti una singola esecuzione può generare, il che limita il costo di uno script fuori controllo. Per mantenere le esecuzioni a meno agenti, scegli la [linea guida di dimensione](#set-a-size-guideline) `small`.

509 509 

510Claude Code contrassegna anche un'esecuzione che cresce insolitamente grande. Quando un workflow pianifica più di 25 agenti, o il suo totale di token previsto supera 1,5 milioni, la sua linea di progresso nel pannello attività sotto la casella di input mostra un avviso `Large workflow`. L'avviso ti indirizza a [`/workflows`](#watch-the-run), dove puoi interrompere l'esecuzione.510Claude Code contrassegna anche un'esecuzione che cresce insolitamente grande. Quando un workflow pianifica più di 25 agenti, o il suo totale di token previsto supera 1,5 milioni, la sua linea di progresso nel pannello attività sotto la casella di input mostra un avviso `Large workflow`. L'avviso ti indirizza a [`/workflows`](#watch-the-run), dove puoi interrompere l'esecuzione.

511 511 


527 Impostare una linea guida di dimensione527 Impostare una linea guida di dimensione

528</h3>528</h3>

529 529 

530Una linea guida di dimensione dice a Claude quanti agenti mirare quando scrive un workflow dinamico. Claude Code invia la linea guida a Claude come consiglio, non come limite, quindi un prompt che richiede una scala diversa la sostituisce comunque. Richiede Claude Code v2.1.202 o successivo.530Una linea guida di dimensione dice a Claude a quanti agenti puntare quando scrive un workflow dinamico. Claude Code invia la linea guida a Claude come consiglio, non come limite, quindi un prompt che richiede una scala diversa ha comunque la precedenza su di essa.

531 531 

532Ogni valore corrisponde a un conteggio di agenti:532Ogni valore corrisponde a un conteggio di agenti:

533 533